このチュートリアルでは、Firefoxでハードウェアビデオアクセラレーション(VA-API)を有効にする方法を示します。これにより、Firefoxはビデオカードを使用してビデオをデコード/エンコードし、電力を節約します。
ハードウェアビデオアクセラレーションは、ビデオをエンコードおよびデコードするグラフィックカードを作成するコンピューターテクノロジであり、CPUの負荷を軽減して電力を節約します。そして、CPUと比較して、GPUは通常仕事でより効率的です。
Ubuntu Linuxでこれを実現するには、次のようないくつかの方法があります。
- Video Acceleration API(VA-API)–Intelによって開発されたオープンソースAPI。
- ビデオデコードおよびプレゼンテーションAPIforUnix(VDPAU)–NVIDIAによって開発されたオープンソースAPI。
- NVENC / NVDEC –NVIDIA独自のAPI。
VA-APIは、Intel、AMD、およびNVIDIA(オープンソースのNouveauドライバーを介して)GPUをサポートします。また、MPVは、利用可能な場合、デフォルトでビデオ再生にva-apiハードウェアアクセラレーションを使用するなど、ソフトウェアによって広くサポートされています。
VDPAU APIはAMDとNVIDIAの両方をサポートしていますが、FirefoxまたはChromiumではサポートされていません。また、NVENC /NVDECはNVIDIAGPUにのみ使用されますが、通常、ハードウェアビデオアクセラレーションにはVA-APIを使用します。
IntelGPUを介したFirefoxポップアップビデオのエンコード/デコード
VA-APIの確認:
注:VA-APIは、上記のように独自のドライバーを介してNVIDIAでは機能しません。 「AdditionalDrivers」ユーティリティを使用してNVIDIA独自のドライバをインストールした場合、これはNVIDIA Prime設定で「Intel(省電力)」モードを選択した場合にのみ機能します。
VA-APIは、Ubuntuですぐに使用できる場合があります。まず、スタートメニューからターミナルを開くことができます([アクティビティ]をクリックしてターミナルを検索します)。
次に、vainfo
をインストールします コマンドによるパッケージ化:
sudo apt install vainfo
そしてそれを実行してVA-API情報を確認します:
vainfo
ドライバーとサポートされているプロファイルを出力します。 VAEntrypointVLD
この形式のデコードサポートを意味します、VAEntrypointEncSlice
エンコーディングサポートを意味します。
コマンドがエラーを出力した場合は、コマンドを使用してドライバーのインストールを試みることができます:
- NVIDIA nouveauおよびAMDの場合、次のコマンドを実行します:
sudo apt install mesa-va-drivers
- Gen 8以降のIntelハードウェアの場合、次のコマンドでインストールします:
sudo apt install intel-media-va-driver
また、古いIntelハードウェアの場合は、
i965-va-driver
をインストールします。 代わりにaptinstallコマンドを使用します。
環境変数を設定することにより、使用するドライバーを選択できます。たとえば、i965ドライバを使用するには、「exportLIBVA_DRIVER_NAME=i965」を設定します。値は、NVIDIAの場合は「nouveau」、AMDGPUの場合は「radeonsi」に設定することもできます。
FirefoxでVA-APIを有効にする:
Firefoxはバージョン80以降VA-APIサポートを追加しましたが、デフォルトでは有効になっていません。次の手順を1つずつ実行することで、手動で有効にできます。
まず、Firefoxを開き、URLバーのabout:configに移動します。 「リスクを受け入れて続行」をクリックします。次に、次のキーを検索し、それらを1つずつ有効または無効にします。
-
media.ffmpeg.vaapi.enabled
true
に設定 -
media.ffvpx.enabled
false
に設定 。 -
media.rdd-vpx.enabled
false
に設定 。 -
media.navigator.mediadatadecoder_vpx_enabled
true
に設定 。 - ページがクラッシュする場合は、
security.sandbox.content.level
を設定してみてください0
へ 。
次に、環境変数を設定します(現在のユーザーのみ)。ターミナルを開き、コマンドを実行してプロファイルファイルを編集します:
gedit ~/.profile
ファイルが開いたら、最後に次の行を追加します。
- (オプション)上記のようにva-apiドライバーを指定します(それに応じてiHDを置き換えます):
export LIBVA_DRIVER_NAME=iHD
vainfo
の場合、これをスキップできます エラーなしで出力します! - Diable RDDサンドボックス:
export MOZ_DISABLE_RDD_SANDBOX=1
- Xorgセッションの場合、Ubuntu 18.04 / Ubuntu 20.04のデフォルト:
export MOZ_X11_EGL=1
- Waylandセッションの場合、Ubuntu 21.04以降のデフォルト:
export MOZ_ENABLE_WAYLAND=1
最後に、ログアウトして再度ログインします。Firefoxを開いてビデオを再生し、結果を確認してください。
ハードウェアビデオアクセラレーションが機能しているかどうかを確認します:
ビデオの再生中に、topコマンドを使用して、VA-APIを有効にする前後のCPU使用率を確認できます。 Intel GPUの場合、intel_gpu_top
継続的に監視するコマンド。
ターミナルを開き、コマンドを実行して最初にツールをインストールします:
sudo apt install intel-gpu-tools
次に、コマンドを実行します:
sudo intel_gpu_top
Firefoxでビデオの再生を開始すると、VA-APIが機能し始めると、ビデオバーがビジー(0%以上)になっていることがわかります。
AMD GPUの場合、GPUアクティビティを監視するために使用できる別のコマンドラインツール「radeontop」があります。
YouTubeビデオの場合、ビデオコーデックがハードウェアでサポートされていない場合があります。回避策として、h264ifyまたはenhanced-h264ify拡張機能を試して、YouTubeがVP8/VP9ではなくH.264ビデオをストリーミングするようにします。
それで全部です。お楽しみください!
元の記事