「ハードウェアビデオアクセラレーション」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(同期)
(同期)
(同じ利用者による、間の6版が非表示)
24行目: 24行目:
 
* [[wikipedia:Coffee_Lake|Coffee Lake]] (2017) までの GMA 4500 (2008) は {{Pkg|libva-intel-driver}} によってサポートされています。
 
* [[wikipedia:Coffee_Lake|Coffee Lake]] (2017) までの GMA 4500 (2008) は {{Pkg|libva-intel-driver}} によってサポートされています。
 
* GMA 4500 の H.264 デコードは {{AUR|libva-intel-driver-g45-h264}} によってサポートされています。[[Intel Graphics#GMA 4500 での H.264 デコードのハードウェアアクセラレーション]] を参照。
 
* GMA 4500 の H.264 デコードは {{AUR|libva-intel-driver-g45-h264}} によってサポートされています。[[Intel Graphics#GMA 4500 での H.264 デコードのハードウェアアクセラレーション]] を参照。
* [[Wikipedia:Haswell (microarchitecture)#Haswell Refresh|Haswell Refresh]] から Skylake までの VP9 デコードと、Broadwell から Skylake までのハイブリッド VP8 エンコードは {{AUR|intel-hybrid-codec-driver}}{{Broken package link|package not found}} によってサポートされています。
+
* [[Wikipedia:Haswell (microarchitecture)#Haswell Refresh|Haswell Refresh]] から Skylake までの VP9 デコードと、Broadwell から Skylake までのハイブリッド VP8 エンコードは {{AUR|intel-hybrid-codec-driver-git}} によってサポートされています。
 
* Skylake 及びそれ以降は {{Pkg|linux-firmware}} も必要です。
 
* Skylake 及びそれ以降は {{Pkg|linux-firmware}} も必要です。
   
58行目: 58行目:
 
}}
 
}}
   
=== 換レイヤー ===
+
=== 換レイヤー ===
   
* {{App|libva-vdpau-driver|VA-API を提供する VDPAU ベースのバックエンド。|https://cgit.freedesktop.org/vaapi/vdpau-driver|{{Pkg|libva-vdpau-driver}}, {{AUR|libva-vdpau-driver-chromium}}, {{AUR|libva-vdpau-driver-vp9-git}}}}
+
* {{App|libva-vdpau-driver|VA-API を提供する VDPAU ベースのバックエンド。|https://cgit.freedesktop.org/vaapi/vdpau-driver|{{Pkg|libva-vdpau-driver}}{{AUR|libva-vdpau-driver-vp9-git}}}}
 
* {{App|libvdpau-va-gl|OpenGL/VAAPI バックエンドを用いた VDPAU ドライバ。H.264 のみ。|https://github.com/i-rinat/libvdpau-va-gl|{{Pkg|libvdpau-va-gl}}}}
 
* {{App|libvdpau-va-gl|OpenGL/VAAPI バックエンドを用いた VDPAU ドライバ。H.264 のみ。|https://github.com/i-rinat/libvdpau-va-gl|{{Pkg|libvdpau-va-gl}}}}
* {{App|nvidia-vaapi-driver|VA-API を提供する [[CUDA]] NVDEC ベースのバックエンド。|https://github.com/elFarto/nvidia-vaapi-driver/|{{AUR|libva-nvidia-driver}}}}
+
* {{App|nvidia-vaapi-driver|VA-API を提供する [[CUDA]] NVDEC ベースのバックエンド。|https://github.com/elFarto/nvidia-vaapi-driver/|{{Pkg|libva-nvidia-driver}}}}
   
  +
{{Note|
{{Note|NVIDIA ドライバの 525 シリーズにはリグレッションがあり、VA-API が機能しなくなります。 [https://github.com/elFarto/nvidia-vaapi-driver/issues/126 nvidia-vaapi-driver#126] 修正されるまでの間、ドライバをバージョン 520 に[[ダウングレード]]するか、[https://github.com/elFarto/nvidia-vaapi-driver#direct-backend 実験的な direct-backend] を使用することができます。}}
 
  +
* NVIDIA ドライバの 525 シリーズにはリグレッションがあり、VA-API が機能しなくなります。 [https://github.com/elFarto/nvidia-vaapi-driver/issues/126 nvidia-vaapi-driver#126] 修正されるまでの間、ドライバをバージョン 520 に[[ダウングレード]]するか、[https://github.com/elFarto/nvidia-vaapi-driver#direct-backend 実験的な direct-backend] を使用することができます。
  +
* {{Pkg|libva-vdpau-driver}} のコードは数年間、変更されていません。最近のバージョンの NVIDIA ドライバで VLC や OBS を使用するとクラッシュします。[https://github.com/obsproject/obs-studio/issues/8056] NVIDIA 用の変換レイヤーが必要である場合は、代わりに {{Pkg|libva-nvidia-driver}} を使用してください。
  +
}}
   
 
== 確認 ==
 
== 確認 ==
146行目: 149行目:
 
name width height types
 
name width height types
 
-------------------------------------------
 
-------------------------------------------
420 16384 16384 NV12 YV12
+
420 16384 16384 NV12 YV12
422 16384 16384 UYVY YUYV
+
422 16384 16384 UYVY YUYV
444 16384 16384 Y8U8V8A8 V8U8Y8A8
+
444 16384 16384 Y8U8V8A8 V8U8Y8A8
   
 
Decoder capabilities:
 
Decoder capabilities:
225行目: 228行目:
 
マルチメディアフレームワーク:
 
マルチメディアフレームワーク:
   
* [[FFmpeg#ハードウェアアクセラレーション]]
+
* [[FFmpeg#ハードウェアビデオアクセラレーション]]
 
* [[GStreamer#ハードウェアアクセラレーション]]
 
* [[GStreamer#ハードウェアアクセラレーション]]
   
271行目: 274行目:
 
! {{pkg|libva-mesa-driver}} [https://www.x.org/wiki/RadeonFeature/] [https://nouveau.freedesktop.org/wiki/VideoAcceleration/]
 
! {{pkg|libva-mesa-driver}} [https://www.x.org/wiki/RadeonFeature/] [https://nouveau.freedesktop.org/wiki/VideoAcceleration/]
 
! {{pkg|libva-vdpau-driver}} <br> (VDPAU アダプタ)
 
! {{pkg|libva-vdpau-driver}} <br> (VDPAU アダプタ)
! {{aur|libva-nvidia-driver}}<br> (NVDEC アダプタ)
+
! {{Pkg|libva-nvidia-driver}}<br> (NVDEC アダプタ)
 
|-
 
|-
 
! colspan=6 | デコード
 
! colspan=6 | デコード
280行目: 283行目:
 
| {{G|Radeon HD 6000 以降<br>GeForce 8 以降<sup>1</sup>}}
 
| {{G|Radeon HD 6000 以降<br>GeForce 8 以降<sup>1</sup>}}
 
| rowspan=6 | [[#VDPAU ドライバ]] を参照
 
| rowspan=6 | [[#VDPAU ドライバ]] を参照
| rowspan=10 | [[#NVIDIA ドライバのみ]] を参照<sup>7</sup>
+
| rowspan=10 | [[#NVIDIA ドライバのみ]] を参照
 
|-
 
|-
 
! H.263/MPEG-4 Visual<sup>4</sup>
 
! H.263/MPEG-4 Visual<sup>4</sup>
315行目: 318行目:
 
| {{G|Broxton 以降 <br> Hybrid: Haswell refresh から Skylake<sup>3</sup>}}
 
| {{G|Broxton 以降 <br> Hybrid: Haswell refresh から Skylake<sup>3</sup>}}
 
| {{G|Broxton/Apollo Lake 以降}}
 
| {{G|Broxton/Apollo Lake 以降}}
| rowspan=2 {{G|Raven Ridge 以降}}
+
| rowspan=2 {{G|Raven Ridge + Radeon RX 5000 以降}}
 
| [[#VDPAU ドライバ]] を参照<sup>5</sup>
 
| [[#VDPAU ドライバ]] を参照<sup>5</sup>
 
|-
 
|-
326行目: 329行目:
 
| {{No}}
 
| {{No}}
 
| {{G|Tiger Lake 以降}}
 
| {{G|Tiger Lake 以降}}
| {{G|Radeon RX 6000 以降}}
+
| {{G|Radeon RX 6600 以上/以降}}
 
|-
 
|-
 
! colspan=6 | エンコード
 
! colspan=6 | エンコード
334行目: 337行目:
 
| {{G|Broadwell 以降<br>Broxton/Apollo Lake を除く}}
 
| {{G|Broadwell 以降<br>Broxton/Apollo Lake を除く}}
 
| {{No}}
 
| {{No}}
| rowspan=7 {{-}}
+
| rowspan=8 {{-}}
| rowspan=7 {{No}}<sup>6</sup>
+
| rowspan=8 {{No}}<sup>6</sup>
 
|-
 
|-
 
! H.264/MPEG-4 AVC
 
! H.264/MPEG-4 AVC
350行目: 353行目:
 
| {{G|Kaby Lake 以降}}
 
| {{G|Kaby Lake 以降}}
 
| rowspan=2 {{G|Kaby Lake 以降}}
 
| rowspan=2 {{G|Kaby Lake 以降}}
| {{G|Raven Ridge 以降}}
+
| {{G|Raven Ridge + Radeon RX 5000 以降}}
 
|-
 
|-
 
! VP8
 
! VP8
361行目: 364行目:
 
|-
 
|-
 
! VP9 10bit & 12bit
 
! VP9 10bit & 12bit
| {{No}}
+
| rowspan=2 {{No}}
  +
|-
  +
! AV1 8bit & 10bit
  +
| {{G|Alchemist 以降}}
  +
| {{G|Radeon RX 7900 以上/以降}}
 
|}
 
|}
   
 
* <sup>1</sup> GeForce GTX 750 まで。
 
* <sup>1</sup> GeForce GTX 750 まで。
 
* <sup>2</sup> 代わりに {{aur|libva-intel-driver-g45-h264}} によってサポートされています。
 
* <sup>2</sup> 代わりに {{aur|libva-intel-driver-g45-h264}} によってサポートされています。
* <sup>3</sup> Hybrid VP8 エンコーダと VP9 エンコーダは {{AUR|intel-hybrid-codec-driver}}{{Broken package link|package not found}} によってサポートされています。
+
* <sup>3</sup> Hybrid VP8 エンコーダと VP9 エンコーダは {{AUR|intel-hybrid-codec-driver-git}} によってサポートされています。
 
* <sup>4</sup> MPEG-4 Part 2 は VAAPI の制限のためデフォルトで無効化されています。使用してみるには、{{ic|1=VAAPI_MPEG4_ENABLED=true}} [[環境変数]]を設定してください。
 
* <sup>4</sup> MPEG-4 Part 2 は VAAPI の制限のためデフォルトで無効化されています。使用してみるには、{{ic|1=VAAPI_MPEG4_ENABLED=true}} [[環境変数]]を設定してください。
 
* <sup>5</sup> 実験的な VP9 サポートは代わりに {{AUR|libva-vdpau-driver-vp9-git}} によって提供されています。
 
* <sup>5</sup> 実験的な VP9 サポートは代わりに {{AUR|libva-vdpau-driver-vp9-git}} によって提供されています。
 
* <sup>6</sup> NVIDIA CUDA アダプタコーデックのサポートは活発に開発中であり、これは変更される可能性があります [https://github.com/elFarto/nvidia-vaapi-driver/issues/116]。
 
* <sup>6</sup> NVIDIA CUDA アダプタコーデックのサポートは活発に開発中であり、これは変更される可能性があります [https://github.com/elFarto/nvidia-vaapi-driver/issues/116]。
* <sup>7</sup> FireFox 98 以降が必要です [https://github.com/elFarto/nvidia-vaapi-driver/#codec-support]。
 
   
 
=== VDPAU ドライバ ===
 
=== VDPAU ドライバ ===
417行目: 423行目:
 
! rowspan=2 | VP9
 
! rowspan=2 | VP9
 
! 8bit
 
! 8bit
  +
| rowspan=2 {{G|Raven Ridge + Radeon RX 5000 以降}}
| {{No}}
 
 
| {{G|GeForce 900 以降<sup>3</sup>}}
 
| {{G|GeForce 900 以降<sup>3</sup>}}
 
|-
 
|-
 
! 10bit/12bit
 
! 10bit/12bit
| {{No}}
 
 
| {{No}}<sup>4</sup>
 
| {{No}}<sup>4</sup>
 
|-
 
|-
 
! rowspan=2 | AV1
 
! rowspan=2 | AV1
 
! 8bit
 
! 8bit
  +
| rowspan=2 {{G|Radeon RX 6600 以上/以降}}
| {{No}}
 
 
| {{G|GeForce 30 以降}}<sup>5</sup>
 
| {{G|GeForce 30 以降}}<sup>5</sup>
 
|-
 
|-
 
! 10bit
 
! 10bit
| {{No}}
 
 
| {{No}}<sup>4</sup>
 
| {{No}}<sup>4</sup>
 
|}
 
|}
504行目: 508行目:
 
| {{Yes}}
 
| {{Yes}}
 
| {{Yes}}
 
| {{Yes}}
| [[FFmpeg#ハードウェアアクセラレーション]]
+
| [[FFmpeg#ハードウェアビデオアクセラレーション]]
 
|-
 
|-
 
! [[GStreamer]]
 
! [[GStreamer]]
| {{Yes}}<sup>1</sup>
+
| {{Yes}}
 
| {{No}}
 
| {{No}}
 
| {{Yes}}
 
| {{Yes}}
| {{Yes}}<sup>1</sup>
+
| {{Yes}}
 
| {{Yes}}
 
| {{Yes}}
 
| [[GStreamer#ハードウェアアクセラレーション]]
 
| [[GStreamer#ハードウェアアクセラレーション]]
520行目: 524行目:
 
| {{-}}
 
| {{-}}
 
| {{-}}
 
| {{-}}
| [[Kodi#ヒントとテクニック]]
+
| [[Kodi#ヒントとテクニック]]
 
|-
 
|-
 
! [[mpv]]
 
! [[mpv]]
539行目: 543行目:
 
|-
 
|-
 
! [[MPlayer]]
 
! [[MPlayer]]
| {{Yes}}<sup>2</sup>
+
| {{Yes}}<sup>1</sup>
 
| {{Yes}}
 
| {{Yes}}
 
| {{No}}
 
| {{No}}
547行目: 551行目:
 
|-
 
|-
 
! [[Flash]]
 
! [[Flash]]
| {{No}}<sup>3</sup>
+
| {{No}}<sup>2</sup>
| {{Yes}}<sup>3</sup>
+
| {{Yes}}<sup>2</sup>
 
| {{No}}
 
| {{No}}
 
| {{-}}
 
| {{-}}
577行目: 581行目:
 
|}
 
|}
   
  +
* <sup>1</sup> VA-API サポートは代わりに {{AUR|mplayer-vaapi}} によって提供されています。
* <sup>1</sup> GStreamer は VA-API ドライバの[https://blogs.igalia.com/vjaquez/2018/03/28/gstreamer-va-api-troubleshooting/ ホワイトリストを使用します]。ホワイトリストを無視する方法については、[[GStreamer#ドライバのホワイトリストは無視する]] を見てください。
 
  +
* <sup>2</sup> VDPAU は NPAPI プラグインによってのみサポートされています。部分的な VA-API と VDPAU アクセラレーションを提供する、PPAPI プラグインから NPAPI ブラウザへの実験的なアダプタが利用できます。
* <sup>2</sup> VA-API サポートは代わりに {{AUR|mplayer-vaapi}} によって提供されています。
 
* <sup>3</sup> VDPAU は NPAPI プラグインによってのみサポートされています。部分的な VA-API と VDPAU アクセラレーションを提供する、PPAPI プラグインから NPAPI ブラウザへの実験的なアダプタが利用できます。
 
   
{{TranslationStatus|Hardware video acceleration|2023-07-09|782770}}
+
{{TranslationStatus|Hardware video acceleration|2023-12-12|794187}}

2023年12月12日 (火) 08:26時点における版

ハードウェアビデオアクセラレーションにより、ビデオカードで動画をデコード/エンコードすることができ、CPU の負担を下げて電力を節約することができます。

Linux でこれを実現する方法は複数存在します:

  • Video Acceleration API (VA-API) はハードウェア支援による動画エンコード・デコードの両方を実現する仕様とオープンソースライブラリです。Intel によって開発されました。
  • Video Decode and Presentation API for Unix (VDPAU) は GPU ビデオハードウェアに動画のデコードやポストプロセス処理をオフロードするオープンソースのライブラリです。NVIDIA によって開発されました。
  • Advanced Media Framework (AMF) は、AMDGPU PRO を使用してマルチメディア処理のために AMD GPU に「部分的に」アクセスできるようにするオープンソースのフレームワークです。AMD によって開発されました。
  • NVDEC/NVENC - Fermi 以降の NVIDIA GPU によって使われている、ハードウェアビデオアクセラレーションのためのプロプライエタリ API。

ドライバとアプリケーションのサポートの包括的な概要については、#比較一覧 を参照してください。

インストール

Intel

Intel Graphics オープンソースドライバーは VA-API に対応しています:

VAAPI がサポートするハードウェアと機能 もご覧ください。

NVIDIA

Nouveau オープンソースドライバーは VA-API と VDPAU に対応しています:

  • GeForce GTX 750 までの GeForce 8 シリーズ及びそれ以降の GPU は libva-mesa-drivermesa-vdpau によってサポートされています。
  • (現在 NVIDIA のバイナリドライバーから抽出される) nouveau-fwAUR ファームウェアパッケージが 必要 です。

NVIDIA プロプライエタリドライバは nvidia-utils によってサポートされています:

AMD/ATI

AMDATI オープンソースドライバーは VA-API と VDPAU に対応しています:

  • VA-API は Radeon HD 2000 及びそれ以降の GPU で libva-mesa-driver によってサポートされています。
  • VDPAU は Radeon R600 及びそれ以降の GPU で mesa-vdpau によってサポートされています。

AMDGPU PRO プロプライエタリドライバーは AMDGPU ドライバー上で動作し、AMF に加えて VA-API と VDPAU に対応しています。

  • Fiji 及びそれ以降の GPU における AMF は amf-amdgpu-proAUR によってサポートされています。
ノート:
  • 場合によっては、あなたのアプリケーションが AMDGPU PRO Vulkan ドライバを使用するように強制する必要があります。
  • HEVC エンコードは Navi より古い GPU では利用できない場合があります。

変換レイヤー

  • libva-vdpau-driver — VA-API を提供する VDPAU ベースのバックエンド。
https://cgit.freedesktop.org/vaapi/vdpau-driver || libva-vdpau-driverlibva-vdpau-driver-vp9-gitAUR
  • libvdpau-va-gl — OpenGL/VAAPI バックエンドを用いた VDPAU ドライバ。H.264 のみ。
https://github.com/i-rinat/libvdpau-va-gl || libvdpau-va-gl
  • nvidia-vaapi-driver — VA-API を提供する CUDA NVDEC ベースのバックエンド。
https://github.com/elFarto/nvidia-vaapi-driver/ || libva-nvidia-driver
ノート:
  • NVIDIA ドライバの 525 シリーズにはリグレッションがあり、VA-API が機能しなくなります。 nvidia-vaapi-driver#126 修正されるまでの間、ドライバをバージョン 520 にダウングレードするか、実験的な direct-backend を使用することができます。
  • libva-vdpau-driver のコードは数年間、変更されていません。最近のバージョンの NVIDIA ドライバで VLC や OBS を使用するとクラッシュします。[2] NVIDIA 用の変換レイヤーが必要である場合は、代わりに libva-nvidia-driver を使用してください。

確認

設定せずともシステムが完璧に動作する場合があります。なので、このセクションから読み始めて、システムの確認をすると良いでしょう。

ヒント:
  • コマンドラインサポートのある mpv は、ハードウェアアクセラレーションをテストするのにぴったりです。mpv --hwdec=auto video_filename のログを見てください。詳細は hwdec を参照。
  • AMD、Intel、そして NVIDIA の場合、動画を再生しながら nvtop を使うことで "DEC" (デコーダ) の使用率を確認できます。
  • Intel GPU の場合、intel-gpu-tools を使って、intel_gpu_top を root として実行することで、ビデオプレイバック中に GPU 使用率をモニタできます。ビデオバーが 0% よりも上にあれば、GPU のビデオデコーダ/エンコーダが使用されていることを示します。
  • AMD GPU の場合、radeontop を使用して GPU 使用率をモニタできます。intel-gpu-tools とは違い、現在 radeontop でデコード/エンコードの仕様状況を確認する方法はありません [3]
  • 任意の GPU において、htop のようなツールで CPU 使用率を比較できます。特に、高解像度なビデオ (4k 以上) において、VA-API が有効化されていて動作しているときの CPU 使用率は、ノート PC や他の比較的低電力なデバイスにおいて劇的に低いはずです。

VA-API の確認

VA-API の設定は libva-utils パッケージに含まれている vainfo を実行することで確認できます:

$ vainfo
libva info: VA-API version 0.39.4
libva info: va_getDriverName() returns 0
libva info: Trying to open /usr/lib/dri/i965_drv_video.so
libva info: Found init function __vaDriverInit_0_39
libva info: va_openDriver() returns 0
vainfo: VA-API version: 0.39 (libva 1.7.3)
vainfo: Driver version: Intel i965 driver for Intel(R) Skylake - 1.7.3
vainfo: Supported profile and entrypoints
      VAProfileMPEG2Simple            :	VAEntrypointVLD
      VAProfileMPEG2Simple            :	VAEntrypointEncSlice
      VAProfileMPEG2Main              :	VAEntrypointVLD
      VAProfileMPEG2Main              :	VAEntrypointEncSlice
      VAProfileH264ConstrainedBaseline:	VAEntrypointVLD
      VAProfileH264ConstrainedBaseline:	VAEntrypointEncSlice
      VAProfileH264ConstrainedBaseline:	VAEntrypointEncSliceLP
      VAProfileH264Main               :	VAEntrypointVLD
      VAProfileH264Main               :	VAEntrypointEncSlice
      VAProfileH264Main               :	VAEntrypointEncSliceLP
      VAProfileH264High               :	VAEntrypointVLD
      VAProfileH264High               :	VAEntrypointEncSlice
      VAProfileH264High               :	VAEntrypointEncSliceLP
      VAProfileH264MultiviewHigh      :	VAEntrypointVLD
      VAProfileH264MultiviewHigh      :	VAEntrypointEncSlice
      VAProfileH264StereoHigh         :	VAEntrypointVLD
      VAProfileH264StereoHigh         :	VAEntrypointEncSlice
      VAProfileVC1Simple              :	VAEntrypointVLD
      VAProfileVC1Main                :	VAEntrypointVLD
      VAProfileVC1Advanced            :	VAEntrypointVLD
      VAProfileNone                   :	VAEntrypointVideoProc
      VAProfileJPEGBaseline           :	VAEntrypointVLD
      VAProfileJPEGBaseline           :	VAEntrypointEncPicture
      VAProfileVP8Version0_3          :	VAEntrypointVLD
      VAProfileVP8Version0_3          :	VAEntrypointEncSlice
      VAProfileHEVCMain               :	VAEntrypointVLD
      VAProfileHEVCMain               :	VAEntrypointEncSlice

あなたのカードを使ってデコードできるフォーマットが VAEntrypointVLD で、エンコードできるフォーマットが VAEntrypointEncSlice で示されます。

上の例では、以下の行があることから i965 ドライバーが使われていることが確認できます:

vainfo: Driver version: Intel i965 driver for Intel(R) Skylake - 1.7.3

vainfo を実行したときに以下のようなエラーが表示される場合:

libva info: va_openDriver() returns -1
vaInitialize failed with error code -1 (unknown libva error),exit

適切なドライバーを設定する必要があります。#VA-API の設定 を見てください。

VDPAU の確認

vdpauinfo をインストールしてから、以下のコマンドを実行してください。VDPAU ドライバーがロードされていることや、現在の設定が確認できます:

$ vdpauinfo
display: :0   screen: 0
API version: 1
Information string: G3DVL VDPAU Driver Shared Library version 1.0

Video surface:

name   width height types
-------------------------------------------
420    16384 16384  NV12 YV12
422    16384 16384  UYVY YUYV
444    16384 16384  Y8U8V8A8 V8U8Y8A8

Decoder capabilities:

name                        level macbs width height
----------------------------------------------------
MPEG1                          --- not supported ---
MPEG2_SIMPLE                    3  9216  2048  1152
MPEG2_MAIN                      3  9216  2048  1152
H264_BASELINE                  41  9216  2048  1152
H264_MAIN                      41  9216  2048  1152
H264_HIGH                      41  9216  2048  1152
VC1_SIMPLE                      1  9216  2048  1152
VC1_MAIN                        2  9216  2048  1152
VC1_ADVANCED                    4  9216  2048  1152
...

設定

ビデオドライバは VA-API と VDPAU の両方に対してハードウェアビデオアクセラレーションのサポートを自動的に有効化するはずですが、場合によっては手動で VA-API/VDPAU を手動で設定する必要があります。#確認 セクションを見た場合にのみ、このセクションを読み進めてください。

(他に設定が存在しない場合に使用される) デフォルトのドライバ名はシステムによって推測されます。しかし、それらはしばしばトリッキーで、機能しないこともあります。推測された値は Xorg のログファイルに出力されます。ログファイルは、Xorg が rootless の場合は ~/.local/share/xorg/Xorg.0.log、Xorg が root として実行されている場合は /var/log/Xorg.0.log です。ログファイルからある値を検索するには:

$ grep -iE 'vdpau | dri driver' xorg_のログファイル
(II) RADEON(0): [DRI2] DRI driver: radeonsi
(II) RADEON(0): [DRI2] VDPAU driver: radeonsi

この出力の場合、radeonsi が VA-API と VDPAU のデフォルトです。

ノート: GDM を使用している場合、代わりに journalctl -b --grep='vdpau | dri driver' を root として実行してください。

しかし、これは 設定 を表すものではありません。上記の値は、オーバーライドしたとしても変更されません。

VA-API の設定

LIBVA_DRIVER_NAME 環境変数 を使うことで、VA-API 用に使用するドライバをオーバーライドできます:

  • Intel Graphics:
  • NVIDIA:
    • Nouveau の場合は nouveau を使ってください。
    • NVIDIA VDPAU の場合は vdpau を使ってください。
    • NVIDIA NVDEC の場合は nvidia を使ってください。
  • AMD:
    • AMDGPU ドライバの場合は radeonsi を使ってください。
ノート:
  • インストールされているドライバーは /usr/lib/dri/ ディレクトリを見ることで確認できます。/usr/lib/dri/${LIBVA_DRIVER_NAME}_drv_video.so として使われます。
  • 一部のドライバーは互換性を保つために異なる名前を使っていることがあります。sha1sum /usr/lib/dri/* | sort を実行することで確認できます。
  • LIBVA_DRIVERS_PATH を使うことで VA-API ドライバーのパスを上書きできます。
  • バージョン 12.0.1 から libva-mesa-drivergallium の代わりとして radeonsi を提供しています。

VDPAU の設定

VDPAU_DRIVER 環境変数を使うことで、VDPAU 用に使用するドライバをオーバーライドできます。

適切なドライバ名は、あなたのセットアップに依存します:

  • Intel graphics の場合、va_gl に設定する必要があります
  • オープンソースの AMD ドライバの場合、あなたの GPU に合わせて適切なドライババージョンを設定してください。#確認 を参照。
  • オープンソースの Nouveau ドライバの場合、nouveau に設定してください。
  • NVIDIA のプロプライエタリなバージョンの場合、nvidia に設定してください。
ノート:
  • インストールされているドライバーは /usr/lib/vdpau/ ディレクトリを見ることで確認できます。/usr/lib/vdpau/libvdpau_${VDPAU_DRIVER}.so として使われます。
  • 一部のドライバーは互換性を保つために異なる名前を使っていることがあります。sha1sum /usr/lib/vdpau/* を実行することで確認できます。
  • ハイブリッド構成 (NVIDIA と AMD の両方のカードが搭載されている) 場合、DRI_PRIME 環境変数を設定する必要があるかもしれません。詳しくは PRIME を参照。

アプリケーションの設定

マルチメディアフレームワーク:

ビデオプレイヤ:

ウェブブラウザ:

マルチメディア録画/ストリーミング:

トラブルシューティング

Failed to open VDPAU backend

適切なドライバを指すように VDPAU_DRIVER 変数を設定する必要があります。#VDPAU の設定 を参照。

VAAPI init failed

エラーは libva: /usr/lib/dri/i965_drv_video.so init failed という行で確認できます。Wayland が正しく認識されていないことが原因で発生します。$DISPLAY の設定を解除することで mpv, MPlayer, VLC などは X11 であると誤認しないようになります。mpv の場合は --gpu-context=wayland パラメータを追加することでも解決できます。

このエラーは、あなたのハードウェアに合わない VA-API ドライバをインストールした場合にも起こりえます。

AMDGPU ドライバーを使用したビデオデコード時の破損や歪み

AMDGPU ドライバーでビデオデコードの破損または歪みが発生する場合は、allow_rgb10_configs=false環境変数 または driconf として設定します。[4]

比較一覧

VA-API ドライバ

コーデック libva-intel-driver [5] intel-media-driver [6] libva-mesa-driver [7] [8] libva-vdpau-driver
(VDPAU アダプタ)
libva-nvidia-driver
(NVDEC アダプタ)
デコード
MPEG-2 GMA 4500 以降 Broadwell 以降 Radeon HD 6000 以降
GeForce 8 以降1
#VDPAU ドライバ を参照 #NVIDIA ドライバのみ を参照
H.263/MPEG-4 Visual4 No No Radeon HD 6000 以降
VC-1 Sandy Bridge 以降 Broadwell 以降 Radeon HD 2000 以降
GeForce 9300 以降1
H.264/MPEG-4 AVC GMA 45002, Ironlake 以降 Radeon HD 2000 以降
GeForce 8 以降1
H.265/HEVC 8bit Cherryview/Braswell 以降 Skylake 以降 Radeon R9 Fury 以降
H.265/HEVC 10bit Broxton 以降 Broxton/Apollo Lake 以降 Radeon 400 以降
VP8 Broadwell 以降 Broadwell 以降 No No
VP9 8bit Broxton 以降
Hybrid: Haswell refresh から Skylake3
Broxton/Apollo Lake 以降 Raven Ridge + Radeon RX 5000 以降 #VDPAU ドライバ を参照5
VP9 10bit & 12bit Kaby Lake 以降 Kaby Lake 以降 No
AV1 8bit & 10bit No Tiger Lake 以降 Radeon RX 6600 以上/以降
エンコード
MPEG-2 Ivy Bridge 以降 Broadwell 以降
Broxton/Apollo Lake を除く
No No6
H.264/MPEG-4 AVC Sandy Bridge 以降 Broadwell 以降 Radeon HD 7000 以降
H.265/HEVC 8bit Skylake 以降 Skylake 以降 Radeon 400 以降
H.265/HEVC 10bit Kaby Lake 以降 Kaby Lake 以降 Raven Ridge + Radeon RX 5000 以降
VP8 Cherryview/Braswell 以降
Hybrid: Haswell から Skylake3
No
VP9 8bit Kaby Lake 以降 Icelake 以降
VP9 10bit & 12bit No
AV1 8bit & 10bit Alchemist 以降 Radeon RX 7900 以上/以降
  • 1 GeForce GTX 750 まで。
  • 2 代わりに libva-intel-driver-g45-h264AUR によってサポートされています。
  • 3 Hybrid VP8 エンコーダと VP9 エンコーダは intel-hybrid-codec-driver-gitAUR によってサポートされています。
  • 4 MPEG-4 Part 2 は VAAPI の制限のためデフォルトで無効化されています。使用してみるには、VAAPI_MPEG4_ENABLED=true 環境変数を設定してください。
  • 5 実験的な VP9 サポートは代わりに libva-vdpau-driver-vp9-gitAUR によって提供されています。
  • 6 NVIDIA CUDA アダプタコーデックのサポートは活発に開発中であり、これは変更される可能性があります [9]

VDPAU ドライバ

コーデック 色深度 mesa-vdpau [10] [11] nvidia-utils libvdpau-va-gl
(VA-API アダプタ)
デコード
MPEG-2 8bit Radeon R600 以降
GeForce 8 以降1
GeForce 8 以降 No
H.263/MPEG-4 Visual 8bit Radeon HD 6000 以降
GeForce 200 以降1
GeForce 200 以降
VC-1 8bit Radeon HD 2000 以降
GeForce 9300 以降1
GeForce 8 以降2
H.264/MPEG-4 AVC 8bit Radeon HD 2000 以降
GeForce 8 以降1
GeForce 8 以降 #VA-API ドライバ を参照
H.265/HEVC 8bit Radeon R9 Fury 以降 GeForce 900 以降3 No
10bit Radeon 400 以降 No4
VP9 8bit Raven Ridge + Radeon RX 5000 以降 GeForce 900 以降3
10bit/12bit No4
AV1 8bit Radeon RX 6600 以上/以降 GeForce 30 以降5
10bit No4
  • 1 GeForce GTX 750 まで。
  • 2 GeForce 8800 Ultra、8800 GTX、8800 GTS (320/640 MB) は除く
  • 3 GeForce GTX 970 と GTX 980 は除く。
  • 4 NVIDIA の実装は8ビットストリームまでに制限されています [12] [13]
  • 5 ドライババージョン 510 から [14]

NVIDIA ドライバのみ

コーデック nvidia-utils [15]
NVDEC NVENC
MPEG-2 Fermi 以降1 No
VC-1
H.264/MPEG-4 AVC Kepler 以降2
H.265/HEVC 8bit Maxwell (GM206) 以降 Maxwell (2nd Gen) 以降
H.265/HEVC 10bit Pascal 以降
VP8 Maxwell (2nd Gen) 以降 No
VP9 8bit Maxwell (GM206) 以降
VP9 10bit & 12bit Pascal 以降
AV1 8bit & 10bit Ampere 以降3 Ada Lovelace 以降
  • 1 GM108 は除く (未サポート)
  • 2 GM108 と GP108 は除く (未サポート)
  • 3 A100 は除く (未サポート)

アプリケーションサポート

アプリケーション デコード エンコード ドキュメント
VA-API VDPAU NVDEC VA-API NVENC
FFmpeg Yes Yes Yes Yes Yes FFmpeg#ハードウェアビデオアクセラレーション
GStreamer Yes No Yes Yes Yes GStreamer#ハードウェアアクセラレーション
Kodi Yes Yes No Kodi#ヒントとテクニック
mpv Yes Yes Yes mpv#ハードウェアデコード
VLC media player Yes Yes No VLC media player#ハードウェアアクセラレーションのサポート
MPlayer Yes1 Yes No MPlayer#ハードウェアアクセラレーション
Flash No2 Yes2 No ブラウザプラグイン#Adobe Flash Player
Chromium Yes No No Yes No Chromium#ハードウェアビデオアクセラレーション
Firefox Yes No No No No Firefox#ハードウェアビデオアクセラレーション
GNOME/Web GStreamer ? ? GNOME Web#ビデオ
  • 1 VA-API サポートは代わりに mplayer-vaapiAUR によって提供されています。
  • 2 VDPAU は NPAPI プラグインによってのみサポートされています。部分的な VA-API と VDPAU アクセラレーションを提供する、PPAPI プラグインから NPAPI ブラウザへの実験的なアダプタが利用できます。
翻訳ステータス: このページは en:Hardware video acceleration の翻訳バージョンです。最後の翻訳日は 2023-12-12 です。もし英語版に 変更 があれば、翻訳の同期を手伝うことができます。