Ubuntu 20.04 / 18.04以降でFirefoxのハードウェアビデオアクセラレーション(VA-API)を有効にする

このチュートリアルでは、Firefoxのハードウェアビデオアクセラレーション(VA-API)を有効にして、ビデオカードを使用してビデオをデコード/エンコードして電力を節約する方法を示します。

ハードウェアビデオアクセラレーションは、グラフィックカードでビデオをエンコードおよびデコードするためのコンピュータテクノロジであり、CPUの負荷を軽減して電力を節約します。 そして、CPUと比較して、GPUは通常仕事でより効率的です。

Ubuntu Linuxでこれを実現するには、次のようないくつかの方法があります。

  • Video Acceleration API(VA-API)–Intelによって開発されたオープンソースAPI。
  • ビデオデコードおよびプレゼンテーションAPIfor Unix(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情報を確認します。

無駄な情報

ドライバーとサポートされているプロファイルを出力します。 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サポートを追加しましたが、デフォルトでは有効になっていません。 次の手順をXNUMXつずつ実行することで、手動で有効にできます。

まず、Firefoxを開き、URLバーのabout:configに移動します。 「リスクを受け入れて続行」をクリックします。 次に、次のキーを検索し、それらをXNUMXつずつ有効または無効にします。

  • 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を置き換えます):
    エクスポートLIBVA_DRIVER_NAME = iHD

    次の場合はスキップできます vainfo エラーなしで出力!

  • Diable RDDサンドボックス:
    エクスポートMOZ_DISABLE_RDD_SANDBOX = 1
  • Xorgセッションの場合、Ubuntu 18.04 / Ubuntu20.04のデフォルト:
    エクスポートMOZ_X11_EGL = 1
  • Waylandセッションの場合、Ubuntu21.04以降のデフォルト:
    エクスポートMOZ_ENABLE_WAYLAND = 1

最後に、ログアウトして再度ログインします。Firefoxを開き、ビデオを再生して結果を確認してください。

ハードウェアビデオアクセラレーションが機能しているかどうかを確認します。

ビデオの再生中に、topコマンドを使用して、VA-APIを有効にする前後のCPU使用率を確認できます。 Intel GPUの場合、 intel_gpu_top 継続的に監視するコマンド。

ターミナルを開き、コマンドを実行して最初にツールをインストールします。

sudo apt install intel-gpu-tools

次に、コマンドを実行します。

須藤 intel_gpu_top

Firefoxでビデオの再生を開始すると、VA-APIが機能し始めると、ビデオバーがビジー(0%以上)になっていることがわかります。

AMD GPUの場合、GPUアクティビティを監視するために使用できる別のコマンドラインツール「radeontop」があります。

YouTubeビデオの場合、ビデオコーデックがハードウェアでサポートされていない場合があります。 回避策を試すには、 h264ify or 拡張-h264ify YouTubeがVP264 / VP8の代わりにH.9ビデオをストリーミングするようにする拡張機能。

それで全部です。 楽しい!

原著