← システム思考に戻る

NVIDIA Shieldを7分で直そう

nvidia-shieldplexandroid-tvhome-lab

うちには2019年モデルのNVIDIA Shieldが2台あります。仕事部屋にPro、リビングにTube。どちらも同じソフトウェアで動いていて、同じPlexサーバーから映画を再生しています。

仕事部屋のほうは、スリープから復帰するたびに、ライブラリを読み込むのに2、3回やり直す必要がありました。リビングのほうでは一度もありません。違いは、Plexアプリのスイッチ一つでした。ルーターでも、ファイアウォールでもなく、スイッチ一つです。

Shieldの問題は、たいていこんな感じです。本体が壊れているわけではありません。今いじっているのとは別のレイヤーに、解決策が隠れています。この記事では、まず問題のあるレイヤーを見つけてから、短い対処を一つ行い、NVIDIA Shieldを直していきましょう。長い手順はリンク先のgistにまとめてあるので、自分で進めても、AIの手を借りても大丈夫です。

テーブルに並んだ2台のストリーミング端末。一方は正常動作と表示され、もう一方は3回の再試行を繰り返している
3回やり直す必要があったのは、右側の端末です。

NVIDIA Shieldを直す前に、問題のあるレイヤーを見つけよう

一覧を読んで、当てはまる症状を選んでみてください。そのセクションだけに進みましょう。

映像のぼやけ、再試行、ホーム画面のもたつき、パンのカクつきと書かれた四方向の案内標識の前に立つ人
症状は四つ。当てはまるのは、そのうち一つです。
  1. 映像がぼやけて見える、またはPlexに間接接続と出る → Plexのセクション、問題1へ。
  2. Plexの読み込みに2、3回の再試行が必要なのはShieldだけで、スマホは問題ない → Plexのセクション、問題2へ。
  3. ホーム画面はもたつくけれど、映画は問題なく再生できる → メニューのもたつきへ。
  4. 映画でカメラが横にパンすると映像がカクつく → 24pのジャダーへ。
  5. Chromeのキャスト先一覧にShieldが出てこない → まずスマホで試してみてください。スマホからキャストできるならShieldは正常で、問題はPC側です。たいていはVPNか仮想ネットワークアダプターが原因です。スリープが原因ではありません。私のテストでは、完全にスリープしているShieldもキャストに応答しました。→ キャストのgist

各gistは、確認項目とコマンドを1ページにまとめ、最後に元に戻す手順を載せています。自分で順に進めてもいいですし、CursorのようなAIコーディングツールで開いて、エージェントにADB経由で作業を任せてもいいですよ。ADBは、パソコンとAndroid端末をつなぐ接続手段です。

メニューのもたつき:一つ無効にして、測って、元に戻そう

「この40個のアプリを削除しよう」という一覧は忘れてください。誰も効果を測っていませんし、アップデートをインストールするアプリまで削除するものもあります。

  1. 設定 → デバイス設定 → 端末情報を開いてください。モデルとビルドをメモしましょう。もたつくのはメニューですか、それとも映画ですか。別々の問題です。
  2. Playストアの更新が終わるまで待ってください。Playストア → プロフィール → アプリとゲームの管理を開きましょう。実行中のダウンロードがない状態になっているはずです。更新中は、何を変えてもShieldが遅く感じられます。
  3. 実際に視聴に使っているアプリを書き出してください。Shield自身の利用統計は、うちの2台とも役に立ちませんでした。どのアプリも最終使用日が1969年になっていたんです。一覧にないものが候補になります。迷ったら残しましょう。
  4. ホームボタンを押して、画面が反応するまでの時間を数えてください。使っていないアプリを一つ選び、設定 → アプリ → すべてのアプリを表示 → [そのアプリ] → 無効にするを開きましょう。無効にするだった場所が、有効にするに変わるはずです。「無効にする」ボタンがありませんか。そこで止めてください。コマンドはgistにあります。(私はSmartTubeが二つ入っていたので、一つだけ残しました。)
使っていないSHIELD BetaのShieldアプリ画面で、無効にする項目が選択されている
選ぶのは「無効にする」の行です。「有効にする」しかなければ、そのアプリはすでに無効になっています。
  1. この三つには、必ず手を触れないでください。com.nvidia.ota(アップデート)、com.google.android.gms(Googleサービス)、com.google.android.apps.mediashell(キャスト)です。それ以外のアプリも、無効にするだけで、アンインストールはしないでください。最初から工場出荷状態にリセットしないこと。MagiskもカスタムROMも使わないでください。
  2. ホームボタンを押して、もう一度数えてみましょう。速くなりましたか。それならそのままに。変わりませんか。有効にするを押して、次のアプリを試してください。一度に変えるのは一つです。
  3. Plexで「バックグラウンドの動作を制限する」という小技は使わなくていいです。2台とも試しましたが、何も変わらなかったので元に戻しました。
Plex、Pluto TV、設定、SmartTube Beta、YouTubeが並ぶProjectivyのホーム画面
標準ランチャーが既定のままでも、テレビにはProjectivyの画面を表示できます。

ホーム画面を変えたいですか。まずProjectivyをインストールして、開いてみてください。標準ランチャーを無効にする前に、テレビに表示されることを確認しましょう。ネットでよく紹介されるset-home-activityコマンドは、私のShieldでも「Success」と出ました。でも、標準ランチャーが有効なままでは何も変わりませんでした。アップデートで標準ランチャーが復活することもあります。→ ランチャーのgist

AIに任せてみよう。 残すアプリ一覧のgistをCursorで開き、冒頭のプロンプトの行を貼り付けてください。エージェントが何を視聴しているかを聞き、同意したものだけをADB経由で無効にして、結果を計測します。どの手順も元に戻せます。安全確認に通らなければ、そこで止まります。

自宅のネットワークなのに、Plexが「間接接続」になる、または再試行が必要になる

同じサーバーからスマホやノートパソコンでは問題なく再生できるなら、サーバーは動いています。問題は、Shieldからそこまでの経路です。似た症状になる問題が二つあるので、どちらか確かめましょう。

問題1:映像がぼやける、またはPlexに間接接続と出る。 間接接続とは、Plexがサーバーへ直接たどり着けず、映画をいったんインターネットへ送り、Plex Relay経由で戻している状態です。Relayには速度の上限があるため、画質が落ちます。

  1. Shieldで映画を再生してください。Plexアプリに間接再生の警告が出るなら、問題1です。パソコンでPlex Webアクティビティ → ダッシュボードを開き、再生中のカードをクリックしても確認できます。間接接続と出るか、クライアントのアドレスが127.0.0.1なら、同じ問題です。すでにダイレクト再生で、ローカル接続になっていますか。それなら問題2へ進んでください。
了解と詳細のボタンがある、Plexの間接再生の警告
この警告が出るのはShieldのプレーヤーです。パソコンのダッシュボードのカードではありません。
  1. 設定 → [使っているサーバー] → ネットワーク → 詳細設定を表示 → LANネットワークを開いてください。192.168.1.0/24のように、自宅のネットワーク範囲を入力しましょう(自宅の範囲の調べ方はgistにあります)。空欄だと、Plexはサーバー自身のアドレスしか信頼しません。保存してください。ページを再読み込みしても、値が残っているはずです。項目がありませんか。Plex Passが必要なので、そこで止めてgistを確認してください。
  2. 同じページで、外出先から視聴しないならRelayを有効にするのチェックを外してください。WAN IPをLAN帯域幅として扱うをオンにして、保存しましょう。

設定をクリックしてから、左の一覧で使っているサーバーを選んでください。アドレスバーの/server/と次の/の間にある16進数が、サーバーのIDです。YOUR_SERVER_IDを置き換えて貼り付けましょう。すでにサーバーの設定ページを開いているなら、パスの最後の部分だけ変えても大丈夫です。Plex Media Serverを動かしているPCなら、代わりにhttp://127.0.0.1:32400/webから始められます。

https://app.plex.tv/desktop/#!/settings/server/YOUR_SERVER_ID/status/server-dashboard
https://app.plex.tv/desktop/#!/settings/server/YOUR_SERVER_ID/settings/network
LANネットワークの値が黒塗りで隠され、WAN IPをLAN帯域幅として扱うがオン、Relayを有効にするがオフになっているPlexのネットワーク画面
黒い帯で隠しているのは、実際の自宅ネットワークの範囲です。スクリーンショットを写さず、自宅の値を入力してください。

問題2:Plexで2、3回の再試行が必要なのはShieldだけ。

  1. ShieldでPlex → 設定 → 詳細設定 → 安全でない接続を許可を開き、サーバーと同じネットワーク上を選んでください。常にではありません。ここでの「安全でない」は、自宅内で暗号化しないという意味なので、問題ありません。うちの2台のShieldの違いは、このスイッチ一つだけでした。選択肢はPlexの説明に載っています
  2. 設定 → アプリ → Plex → 強制停止で、Plexを完全に終了してください。開き直して映画を再生しましょう。一度で再生が始まるはずです。ダッシュボードもローカル接続とダイレクト再生の表示になっているはずです。これはPlexがファイルをそのまま送っているという意味です。
  3. まだぼやけていますか。映画の**⋯ → 情報を表示をクリックしてください。私のテスト用ファイルは、わずか1482×620ピクセルでした。元々ないピクセルを設定で増やすことはできません。ダッシュボードにトランスコード**と出ていますか。画像形式の字幕が原因で、トランスコードが必要になっているのかもしれません。その点もgistで扱っています。

フォーラムでよく勧められるカスタムサーバーアクセスURLは、私のサーバーでは保存できても公開されませんでした。リモートアクセスのマッピングができていなかったためです。gistではそこも確認します。

AIに任せてみよう。 PlexのgistをClaude CodeかCursorで開き、プロンプトの行を貼り付けてください。エージェントがADB経由でShieldのPlex設定を読み、サーバー側で何を変えればいいかを伝え、ダイレクト再生になったことを確認します。Shieldとサーバーが同じネットワーク上にいなければ、そこで止まります。

24pのジャダー:フレームレート切り替えはアプリごとに一つだけ、両方は使わない

映画は通常、1秒に24コマです。ほとんどのテレビは、待機時には60です。Shieldが切り替えないと、カメラがゆっくりパンする場面で映像がカクつきます。これがジャダーです。

  1. カクつきが見える場合だけ行ってください。ほとんどの人は気づきません。
  2. Plexでは、Plex → 設定 → 詳細設定 → リフレッシュレート切り替え → オンです。リビングのShieldではオフになっていたので、合うはずがありませんでした。Kodiにも独自の切り替え機能があります。
Plexの詳細設定で、リフレッシュレート切り替えのオンが丸で囲まれている
これはPlex自身のスイッチです。NVIDIAの「フレームレートを一致させる」は別の画面にあります。
  1. PlexやKodiで、NVIDIAのフレームレートを一致させるまでオンにしないでください。NVIDIAのヘルプページにも、PlexとKodiは自身でフレームレートを合わせると書かれています。フォーラムには「両方オンにしよう」という回答もありますが、やめておきましょう。
  2. ほかのアプリ(Netflix、YouTube)では、NVIDIAのスイッチをクイック設定に追加してください。設定 → デバイス設定 → システム → クイック設定をカスタマイズです。動画を再生し、リモコンの設定ボタンを押して、フレームレートを一致させるを選びましょう。一瞬画面が暗くなるのは正常です。動画が止まるとオフになります。
クイック設定をカスタマイズの画面で、フレームレートを一致させるに矢印が付いている
ファームウェアで項目名から「(beta)」がなくなりました。Plexではなく、NetflixとYouTube用に固定しておきましょう。
  1. 推測で済ませず、確かめましょう。映画の再生中にadb shell "dumpsys display | grep mActiveModeId"を実行してください。モード番号が待機時のもの(うちのテレビは2台とも59.94 Hz)から、23.976 Hzか24 Hzのモードに変わるはずです。テレビの情報ボタンでも確認できます。正しいモードなのに、まだカクつきますか。そこで止めてください。テレビの動きに関する設定やDolby Visionのケースは、gistで扱っています。

AIに任せてみよう。 フレームレートのgistをCodex CLIかCursorで開いてください。エージェントが映画の再生前と再生中の表示モードを取得し、切り替わったかどうかをわかりやすく教えてくれます。

AIに直してもらえる、ほかのShieldの問題

以下のgistはどれも、人でもAIエージェントでも使えます。まず確認し、一つ変え、効果を確かめ、必要なら元に戻す。その流れです。エージェントにはリンクと、冒頭のプロンプトの行を渡してください。

  • アップデートのたびにProjectivyが消えてしまう → ランチャーのgist
  • 安全に残すアプリ一覧を作りたい → 残すアプリ一覧のgist
  • Chromeのキャスト先一覧にShieldが出てこない。WindowsのVPNやHyper-Vアダプターが絡む場合も含む → キャストのgist
  • フレームレートが本当に切り替わったか確かめたい → フレームレートのgist
  • Shieldで使える最速の規格はWi-Fi 5なのか。2019年モデルのShieldはWi-Fi 6に対応していません。本当に改善するなら有線接続です → Wi-Fiのgist

索引のgistをブックマークしておきましょう。安全上のルール、各gistへの案内、自宅のネットワークの数値に置き換えるという注意がまとまっています。

Shieldは2台。同じ家で、同じサーバーを使っています。違いはスイッチ一つだけでした。問題のあるレイヤーを見つけ、一つ変えて、直ったかを確かめましょう。確認作業を自分でやりたくなければ、AIにgistの手順を進めてもらえばいいですよ。

参考資料


購読