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

提供: ArchWiki
ナビゲーションに移動 検索に移動
(文字列「http://nouveau.freedesktop.org/」を「https://nouveau.freedesktop.org/」に置換)
(同期)
20行目: 20行目:
 
{{note|ドライバーの選択については[[#インストール|インストール]]を見てください。}}
 
{{note|ドライバーの選択については[[#インストール|インストール]]を見てください。}}
   
{| class="wikitable" style="width: 100%"
+
{| class="wikitable" style="width:100%;text-align:center;"
 
|+ VA-API
 
|+ VA-API
 
!
 
!
 
! {{pkg|libva-intel-driver}} [https://github.com/01org/intel-vaapi-driver/blob/master/README]
 
! {{pkg|libva-intel-driver}} [https://github.com/01org/intel-vaapi-driver/blob/master/README]
 
! {{pkg|libva-mesa-driver}}
 
! {{pkg|libva-mesa-driver}}
! {{pkg|libva-vdpau-driver}}
 
 
! [[AMD Catalyst#ビデオアクセラレーション|Catalyst XvBA]]
 
! [[AMD Catalyst#ビデオアクセラレーション|Catalyst XvBA]]
  +
! {{pkg|libva-vdpau-driver}}<br>(VDPAU アダプタ)
 
|-
 
|-
 
! colspan=5 | デコード
 
! colspan=5 | デコード
 
|-
 
|-
 
! MPEG2
 
! MPEG2
| GMA 4500 以降
+
| {{G|GMA 4500 以降}}
  +
| {{G|Radeon HD 4000 以降}}
| <center>?</center>
 
  +
| {{G|Radeon HD 4000 以降}}
| rowspan=7 | <center>VDPAU を参照。</center>
 
  +
| rowspan=5 | VDPAU を参照。
| Radeon HD 4000 以降
 
 
|-
 
|-
 
! MPEG4
 
! MPEG4
| <center></center>
+
| {{R|}}
 
| <center>?</center>
 
| <center>?</center>
| Radeon HD 6000 以降
+
| {{G|Radeon HD 6000 以降}}
 
|-
 
|-
 
! H.264
 
! H.264
| GMA 4500<sup>1</sup>, Ironlake Graphics 以降
+
| {{G|GMA 4500<sup>1</sup>, Ironlake Graphics 以降}}
  +
| {{G|Radeon HD 4000 以降}}
| <center>?</center>
 
| Radeon HD 4000 以降
+
| {{G|Radeon HD 4000 以降}}
 
|-
 
|-
 
! HEVC (H.265)
 
! HEVC (H.265)
| Cherryview/Braswell 以降
+
| {{G|Cherryview/Braswell 以降}}
  +
| {{G|Radeon HD 6000 以降}}
| <center>?</center>
 
  +
| {{R|✗}}
| <center>?</center>
 
 
|-
 
|-
 
! VC1
 
! VC1
| Sandy Bridge Graphics 以降
+
| {{G|Sandy Bridge Graphics 以降}}
  +
| {{G|Radeon HD 4000 以降}}
| <center>?</center>
 
| Radeon HD 4000 以降
+
| {{G|Radeon HD 4000 以降}}
 
|-
 
|-
 
! VP8
 
! VP8
| Broadwell 以降
+
| {{G|Broadwell 以降}}
  +
| ?
| <center>?</center>
 
  +
| {{R|✗}}
| <center>?</center>
 
  +
| rowspan=2 style="background:#faa;" | ✗
 
|-
 
|-
 
! VP9
 
! VP9
| Broxton 以降
+
| {{G|Broxton 以降}}
  +
| ?
| <center>?</center>
 
  +
| {{R|✗}}
| <center>?</center>
 
 
|-
 
|-
 
! colspan=5 | エンコード
 
! colspan=5 | エンコード
 
|-
 
|-
 
! MPEG2
 
! MPEG2
| Ivy Bridge Graphics 以降
+
| {{G|Ivy Bridge Graphics 以降}}
  +
| ?
| <center>?</center>
 
| rowspan=5 | <center></center>
+
| rowspan=5 style="background:#faa;" | ✗
  +
| rowspan=5 style="background:#faa;" | ✗
| <center>✗</center>
 
 
|-
 
|-
 
! H.264
 
! H.264
| Sandy Bridge Graphics 以降
+
| {{G|Sandy Bridge Graphics 以降}}
  +
| {{G|Radeon HD 4000 以降}}
| <center>?</center>
 
| <center>✗</center>
 
 
|-
 
|-
 
! HEVC (H.265)
 
! HEVC (H.265)
| Skylake 以降
+
| {{G|Skylake 以降}}
  +
| ?
| <center>?</center>
 
| <center>?</center>
 
 
|-
 
|-
 
! VP8
 
! VP8
| Cherryview/Braswell 以降
+
| {{G|Cherryview/Braswell 以降}}
  +
| ?
| <center>?</center>
 
| <center>?</center>
 
 
|-
 
|-
 
! VP9
 
! VP9
| Kaby Lake 以降
+
| {{G|Kaby Lake 以降}}
  +
| ?
| <center>?</center>
 
| <center>?</center>
 
 
|-
 
|-
 
|}
 
|}
   
{| class="wikitable" style="width: 100%"
+
{| class="wikitable" style="width:100%;text-align:center;"
 
|+ VDPAU
 
|+ VDPAU
 
!
 
!
 
! {{pkg|mesa-vdpau}}
 
! {{pkg|mesa-vdpau}}
! {{pkg|libvdpau-va-gl}}
 
! {{aur|amdgpu-pro-vdpau}}
 
 
! {{pkg|nvidia-utils}}
 
! {{pkg|nvidia-utils}}
  +
! {{aur|amdgpu-pro-vdpau}}
  +
! {{pkg|libvdpau-va-gl}}<br>(VA-API アダプタ)
 
|-
 
|-
 
|-
 
|-
108行目: 105行目:
 
|-
 
|-
 
! MPEG2
 
! MPEG2
| Radeon 9500 以降, GeForce 8 以降
+
| {{G|Radeon 9500 以降, GeForce 8 以降}}
  +
| {{G|GeForce 8 以降}}
| rowspan=2 | <center>✗<sup>2</sup></center>
 
  +
| rowspan=5 | ?
| <center>?</center>
 
  +
| rowspan=2 style="background:#faa;" | ✗<sup>2</sup>
| GeForce 8 以降
 
 
|-
 
|-
 
! MPEG4
 
! MPEG4
| Radeon HD 6000 以降, GeForce 200 以降
+
| {{G|Radeon HD 6000 以降, GeForce 200 以降}}
  +
| {{G|GeForce 200 以降}}
| <center>?</center>
 
| GeForce 200 以降
 
 
|-
 
|-
 
! H.264
 
! H.264
| Radeon HD 4000 以降, GeForce 8 以降
+
| {{G|Radeon HD 4000 以降, GeForce 8 以降}}
  +
| {{G|GeForce 8 以降}}
| <center>VA-API を参照。</center>
 
  +
| VA-API を参照。
| <center>?</center>
 
| GeForce 8 and newer
 
 
|-
 
|-
 
! HEVC (H.265)
 
! HEVC (H.265)
  +
| {{G|1=[https://cgit.freedesktop.org/mesa/mesa/commit/src/gallium/state_trackers/vdpau/decode.c?id=5609a6986f3eb3c452d66d373b6081df5c6fb34c ✓]}}
| <center>✗</center>
 
| rowspan=2 | <center>✗<sup>2</sup></center>
+
| {{G|GeForce 900<sup>4</sup> 以降}}
  +
| rowspan=4 style="background:#faa;" | ✗<sup>2</sup>
| <center>?</center>
 
| GeForce 900<sup>4</sup> 以降
 
 
|-
 
|-
 
! VC1
 
! VC1
| Radeon HD 4000 以降, GeForce 8<sup>3</sup> 以降
+
| {{G|Radeon HD 4000 以降, GeForce 8<sup>3</sup> 以降}}
  +
| {{G|GeForce 8<sup>3</sup> 以降}}
| <center>?</center>
 
| GeForce 8<sup>3</sup> 以降
 
 
|-
 
|-
 
|}
 
|}
141行目: 134行目:
 
* <sup>3</sup> GeForce 8800 Ultra, 8800 GTX, 8800 GTS (320/640 MB) は[[Wikipedia:Nvidia PureVideo|除外]]。
 
* <sup>3</sup> GeForce 8800 Ultra, 8800 GTX, 8800 GTS (320/640 MB) は[[Wikipedia:Nvidia PureVideo|除外]]。
 
* <sup>4</sup> GeForce GTX 970 と GTX 980 は除外。
 
* <sup>4</sup> GeForce GTX 970 と GTX 980 は除外。
  +
  +
{| class="wikitable" style="text-align:center;"
  +
|+ Nvidia NVDEC/NVENC ([[NVIDIA]] のみ)
  +
!
  +
! デコード (NVDEC)
  +
! エンコード (NVENC)
  +
|-
  +
! MPEG-2
  +
| {{G|✓}}
  +
| {{R|✗}}
  +
|-
  +
! VC-1
  +
| {{G|✓}}
  +
| {{R|✗}}
  +
|-
  +
! H.264
  +
| {{G|✓}}
  +
| {{G|✓}}
  +
|-
  +
! HEVC (H.265)
  +
| {{G|Pascal 以降}}
  +
| {{G|Pascal 以降}}
  +
|-
  +
! VP8
  +
| {{G|Maxwell2 以降}}
  +
| {{R|✗}}
  +
|-
  +
! VP9
  +
| {{G|Pascal 以降}}
  +
| {{R|✗}}
  +
|-
  +
|}
   
 
あなたの GPU でどのプロファイルがサポートされているか知る方法は[[#確認|確認]]を見てください。
 
あなたの GPU でどのプロファイルがサポートされているか知る方法は[[#確認|確認]]を見てください。
148行目: 173行目:
 
=== ソフトウェア ===
 
=== ソフトウェア ===
   
{| class="wikitable" style="width: 100%"
+
{| class="wikitable" style="width:100%;"
 
!
 
!
 
! VA-API
 
! VA-API
 
! VDPAU
 
! VDPAU
  +
! NVDEC/NVENC
 
|-
 
|-
 
! [[GStreamer]]
 
! [[GStreamer]]
| ✓ ({{pkg|gstreamer-vaapi}} を使用、[[GStreamer#ハードウェアアクセラレーション]]を参照)
+
| {{G|✓ ({{pkg|gstreamer-vaapi}} を使用、[[GStreamer#ハードウェアアクセラレーション]]を参照)}}
| ✓ ({{pkg|gst-plugins-bad}} を使用、[[GStreamer#ハードウェアアクセラレーション]]を参照)
+
| {{G|✓ ({{pkg|gst-plugins-bad}} を使用、[[GStreamer#ハードウェアアクセラレーション]]を参照)}}
  +
| {{G|✓ ({{pkg|gst-plugins-bad}} を使用、[[GStreamer#ハードウェアアクセラレーション]]を参照)}}
 
|-
 
|-
 
! [[VLC media player]]
 
! [[VLC media player]]
| ✓ ([[VLC media player#ハードウェアアクセラレーションのサポート]]を参照)
+
| {{G|✓ ([[VLC media player#ハードウェアアクセラレーションのサポート]]を参照)}}
| ✓ ([[VLC media player#ハードウェアアクセラレーションのサポート]]を参照)
+
| {{G|✓ ([[VLC media player#ハードウェアアクセラレーションのサポート]]を参照)}}
  +
| {{R|✗}}
 
|-
 
|-
 
! [[mpv]]
 
! [[mpv]]
| ✓ ([[mpv#ハードウェアデコード]]を参照)
+
| {{G|✓ ([[mpv#ハードウェアデコード]]を参照)}}
| ✓ ([[mpv#ハードウェアデコード]]を参照)
+
| {{G|✓ ([[mpv#ハードウェアデコード]]を参照)}}
  +
| {{G|✓}}
 
|-
 
|-
 
! [[MPlayer]]
 
! [[MPlayer]]
| ✓ ({{aur|mplayer-vaapi}} を使用、[[MPlayer#VA-API を有効にする]]を参照)
+
| {{G|✓ ({{aur|mplayer-vaapi}} を使用、[[MPlayer#VA-API を有効にする]]を参照)}}
| ✓ ([[MPlayer#VDPAU を有効にする]]を参照)
+
| {{G|✓ ([[MPlayer#VDPAU を有効にする]]を参照)}}
  +
| {{R|✗}}
 
|-
 
|-
 
! [[Flash]]
 
! [[Flash]]
| ✓ ({{pkg|libvdpau-va-gl}} を使用、[[Flash#設定]]を参照)
+
| {{G|✓ ({{pkg|libvdpau-va-gl}} を使用、[[Flash#設定]]を参照)}}
| ✓ ([[Flash#設定]]を参照)
+
| {{G|✓ ([[Flash#設定]]を参照)}}
  +
| {{R|✗}}
 
|-
 
|-
 
! [[Kodi]]
 
! [[Kodi]]
| ✓
+
| {{G|}}
| ✓
+
| {{G|}}
  +
| {{G|✓}}
 
|-
 
|-
 
! [[Firefox]]
 
! [[Firefox]]
| colspan=2 | ✗ [https://bugzilla.mozilla.org/show_bug.cgi?id=1210726] [https://bugzilla.mozilla.org/show_bug.cgi?id=1210727] [https://bugzilla.mozilla.org/show_bug.cgi?id=563206]
+
| colspan=2 style="background:#faa; text-align: center;" | ✗ [https://bugzilla.mozilla.org/show_bug.cgi?id=1210726] [https://bugzilla.mozilla.org/show_bug.cgi?id=1210727] [https://bugzilla.mozilla.org/show_bug.cgi?id=563206]
  +
| {{R|✗}}
  +
|-
  +
! [[Chromium]]
  +
| {{Y|[https://chromium-review.googlesource.com/c/chromium/src/+/532294 開発中] ({{AUR|chromium-vaapi}})}}
  +
| {{R|✗}}
  +
| {{R|✗}}
  +
|-
  +
! [[FFmpeg]]
  +
| {{G|✓}}
  +
| {{G|✓}}
  +
| {{G|✓}}
 
|}
 
|}
   
204行目: 247行目:
 
* [[Intel]] GMA 4500 シリーズ以降の GPU が {{pkg|libva-intel-driver}} と {{pkg|mesa}} によってサポートされます。
 
* [[Intel]] GMA 4500 シリーズ以降の GPU が {{pkg|libva-intel-driver}} と {{pkg|mesa}} によってサポートされます。
 
** GMA 4500 でより良いサポートを得るには {{aur|libva-intel-driver-g45-h264}} を使ってください。詳しくは [[Intel#GMA 4500 での H.264 デコーディング]]を参照。
 
** GMA 4500 でより良いサポートを得るには {{aur|libva-intel-driver-g45-h264}} を使ってください。詳しくは [[Intel#GMA 4500 での H.264 デコーディング]]を参照。
  +
** Broadwell, Skylake, Kabylake, Apollolake, Canonlake 向けに新しいユーザーモードドライバーが Intel によって開発されています: {{aur|intel-media-driver}}。
 
* [[Nouveau|NVIDIA]] GeForce 8 シリーズ以降の GPU が {{pkg|libva-vdpau-driver}} によってサポートされます ([[#VDPAU のインストール|VDPAU のインストール]]を参照)。
 
* [[Nouveau|NVIDIA]] GeForce 8 シリーズ以降の GPU が {{pkg|libva-vdpau-driver}} によってサポートされます ([[#VDPAU のインストール|VDPAU のインストール]]を参照)。
   
226行目: 270行目:
 
** [[AMD Catalyst]] は {{pkg|libvdpau-va-gl}} を使用します ([[#VA-API のインストール|VA-API のインストール]]を参照)。
 
** [[AMD Catalyst]] は {{pkg|libvdpau-va-gl}} を使用します ([[#VA-API のインストール|VA-API のインストール]]を参照)。
 
** [[AMDGPU PRO]] は {{AUR|amdgpu-pro-vdpau}} を使用します ([[AMDGPU#AMDGPU PRO]] を参照)。
 
** [[AMDGPU PRO]] は {{AUR|amdgpu-pro-vdpau}} を使用します ([[AMDGPU#AMDGPU PRO]] を参照)。
* [[NVIDIA]] GeForce 400 シリーズ以降の GPU が {{pkg|nvidia-utils}} によってサポートされます。
+
* [[NVIDIA]] GeForce 600 シリーズ以降の GPU が {{pkg|nvidia-utils}} によってサポートされます。
  +
** GeForce 400/500 シリーズは {{pkg|nvidia-390xx-utils}} によってサポートされています。
 
** GeForce 8/9 や GeForce 100-300 シリーズの GPU は {{pkg|nvidia-340xx-utils}} によってサポートされています。
 
** GeForce 8/9 や GeForce 100-300 シリーズの GPU は {{pkg|nvidia-340xx-utils}} によってサポートされています。
   
234行目: 279行目:
 
* ハードウェアアクセラレーションをテストするときは [[mpv#ハードウェアデコード|mpv]] が向いています。
 
* ハードウェアアクセラレーションをテストするときは [[mpv#ハードウェアデコード|mpv]] が向いています。
 
* [[Radeon]] の場合、以下のコマンドでドライバーの名前を確認できます:
 
* [[Radeon]] の場合、以下のコマンドでドライバーの名前を確認できます:
{{hc|$ <nowiki>grep -iE 'vdpau|dri driver' ~/.local/share/xorg/Xorg.0.log</nowiki>|
+
{{hc|$ grep -iE 'vdpau {{!}} dri driver' ~/.local/share/xorg/Xorg.0.log|
 
(II) RADEON(0): [DRI2] DRI driver: radeonsi
 
(II) RADEON(0): [DRI2] DRI driver: radeonsi
 
(II) RADEON(0): [DRI2] VDPAU driver: radeonsi
 
(II) RADEON(0): [DRI2] VDPAU driver: radeonsi
 
}}
 
}}
 
上記の場合、VA-API と VDPAU の両方で {{ic|radeonsi}} が使えます。
 
上記の場合、VA-API と VDPAU の両方で {{ic|radeonsi}} が使えます。
  +
* [[GDM]] を使っている場合は {{ic|journalctl -b {{!}} grep -iE 'vdpau {{!}} dri driver'}} を実行してください。
 
}}
 
}}
   
283行目: 329行目:
 
}}
 
}}
   
あなたのカードを使ってデコードできるフォーマットが ''VAEntrypointVLD'' で、エンコードできるフォーマットが ''VAEntrypointEncSlice'' で示されます。
+
あなたのカードを使ってデコードできるフォーマットが {{ic|VAEntrypointVLD}} で、エンコードできるフォーマットが {{ic|VAEntrypointEncSlice}} で示されます。
   
 
上の例では、以下の行があることから {{ic|i965}} ドライバーが使われていることが確認できます:
 
上の例では、以下の行があることから {{ic|i965}} ドライバーが使われていることが確認できます:
{{bc|libva info: Trying to open /usr/lib/dri/'''i965'''_drv_video.so}}
+
libva info: Trying to open /usr/lib/dri/'''i965'''_drv_video.so
   
 
{{ic|vainfo}} を実行したときに以下のようなエラーが表示される場合:
 
{{ic|vainfo}} を実行したときに以下のようなエラーが表示される場合:
298行目: 344行目:
 
{{pkg|vdpauinfo}} をインストールしてから、以下のコマンドを実行してください。VDPAU ドライバーがロードされていることや、現在の設定が確認できます:
 
{{pkg|vdpauinfo}} をインストールしてから、以下のコマンドを実行してください。VDPAU ドライバーがロードされていることや、現在の設定が確認できます:
   
{{hc|<nowiki>$ vdpauinfo</nowiki>|<nowiki>
+
{{hc|$ vdpauinfo|<nowiki>
 
display: :0 screen: 0
 
display: :0 screen: 0
 
API version: 1
 
API version: 1
339行目: 385行目:
   
 
{{Note|
 
{{Note|
* インストールされているドライバーは {{ic|/usr/lib/dri/}} ディレクトリを見ることで確認できます。{{ic|/usr/lib/vdpau/'''${LIBVA_DRIVER_NAME}'''_drv_video.so}} として使われます。
+
* インストールされているドライバーは {{ic|/usr/lib/dri/}} ディレクトリを見ることで確認できます。{{ic|/usr/lib/dri/'''${LIBVA_DRIVER_NAME}'''_drv_video.so}} として使われます。
 
* 一部のドライバーは互換性を保つために異なる名前を使っていることがあります。{{ic|sha1sum /usr/lib/dri/*}} を実行することで確認できます。
 
* 一部のドライバーは互換性を保つために異なる名前を使っていることがあります。{{ic|sha1sum /usr/lib/dri/*}} を実行することで確認できます。
 
* バージョン 12.0.1 から {{Pkg|libva-mesa-driver}} は {{ic|gallium}} の代わりとして {{ic|radeonsi}} を提供しています。
 
* バージョン 12.0.1 から {{Pkg|libva-mesa-driver}} は {{ic|gallium}} の代わりとして {{ic|radeonsi}} を提供しています。
366行目: 412行目:
   
 
VA-API を使用するようにメディアプレイヤーを設定することで良い結果を得られる可能性があります。[[#ソフトウェア|ソフトウェア]]を参照。
 
VA-API を使用するようにメディアプレイヤーを設定することで良い結果を得られる可能性があります。[[#ソフトウェア|ソフトウェア]]を参照。
  +
  +
=== VAAPI init failed ===
  +
  +
エラーは {{ic|libva: /usr/lib/dri/i965_drv_video.so init failed}} という行で確認できます。[[Wayland]] が正しく認識されていないことが原因で発生します。{{ic|$DISPLAY}} の設定を解除することで mpv, mplayer, VLC などは X11 であると誤認しないようになります。mpv の場合は {{ic|1=--opengl-backend=wayland}} パラメータを追加することでも解決できます。

2018年6月17日 (日) 22:25時点における版

関連記事

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

Linux でハードウェアアクセラレーションを利用する方法は複数存在します:

  • Video Acceleration API (VA-API) はハードウェア支援による動画エンコード・デコードの両方を実現するオープンソースライブラリです。Intel によって開発されました。
  • Video Decode and Presentation API for Unix (VDPAU) は GPU ビデオハードウェアに動画のデコードやポストプロセス処理をオフロードするオープンソースのライブラリです。NVIDIA によって開発されました。
  • X-Video Motion Compensation (XvMC) は動画のデコード処理を動画プログラムから GPU ビデオハードウェアにオフロードできる X.Org サーバーの拡張です。

対応状況

フォーマット

ノート: ドライバーの選択についてはインストールを見てください。
VA-API
libva-intel-driver [1] libva-mesa-driver Catalyst XvBA libva-vdpau-driver
(VDPAU アダプタ)
デコード
MPEG2 GMA 4500 以降 Radeon HD 4000 以降 Radeon HD 4000 以降 VDPAU を参照。
MPEG4
?
Radeon HD 6000 以降
H.264 GMA 45001, Ironlake Graphics 以降 Radeon HD 4000 以降 Radeon HD 4000 以降
HEVC (H.265) Cherryview/Braswell 以降 Radeon HD 6000 以降
VC1 Sandy Bridge Graphics 以降 Radeon HD 4000 以降 Radeon HD 4000 以降
VP8 Broadwell 以降 ?
VP9 Broxton 以降 ?
エンコード
MPEG2 Ivy Bridge Graphics 以降 ?
H.264 Sandy Bridge Graphics 以降 Radeon HD 4000 以降
HEVC (H.265) Skylake 以降 ?
VP8 Cherryview/Braswell 以降 ?
VP9 Kaby Lake 以降 ?
VDPAU
mesa-vdpau nvidia-utils amdgpu-pro-vdpauAUR libvdpau-va-gl
(VA-API アダプタ)
デコード
MPEG2 Radeon 9500 以降, GeForce 8 以降 GeForce 8 以降 ? 2
MPEG4 Radeon HD 6000 以降, GeForce 200 以降 GeForce 200 以降
H.264 Radeon HD 4000 以降, GeForce 8 以降 GeForce 8 以降 VA-API を参照。
HEVC (H.265) GeForce 9004 以降 2
VC1 Radeon HD 4000 以降, GeForce 83 以降 GeForce 83 以降
  • 1 libva-intel-driver-g45-h264AUR パッケージによってサポートされています。
  • 2 バージョン 0.3 現在、VA GL ドライバーは H.264 以外のハードウェアデコーダをサポートしていません。
  • 3 GeForce 8800 Ultra, 8800 GTX, 8800 GTS (320/640 MB) は除外
  • 4 GeForce GTX 970 と GTX 980 は除外。
Nvidia NVDEC/NVENC (NVIDIA のみ)
デコード (NVDEC) エンコード (NVENC)
MPEG-2
VC-1
H.264
HEVC (H.265) Pascal 以降 Pascal 以降
VP8 Maxwell2 以降
VP9 Pascal 以降

あなたの GPU でどのプロファイルがサポートされているか知る方法は確認を見てください。

amdgpu-pro-vdpauAUR パッケージについては AMDGPU#AMDGPU PRO を見てください。

ソフトウェア

VA-API VDPAU NVDEC/NVENC
GStreamer ✓ (gstreamer-vaapi を使用、GStreamer#ハードウェアアクセラレーションを参照) ✓ (gst-plugins-bad を使用、GStreamer#ハードウェアアクセラレーションを参照) ✓ (gst-plugins-bad を使用、GStreamer#ハードウェアアクセラレーションを参照)
VLC media player ✓ (VLC media player#ハードウェアアクセラレーションのサポートを参照) ✓ (VLC media player#ハードウェアアクセラレーションのサポートを参照)
mpv ✓ (mpv#ハードウェアデコードを参照) ✓ (mpv#ハードウェアデコードを参照)
MPlayer ✓ (mplayer-vaapiAUR を使用、MPlayer#VA-API を有効にするを参照) ✓ (MPlayer#VDPAU を有効にするを参照)
Flash ✓ (libvdpau-va-gl を使用、Flash#設定を参照) ✓ (Flash#設定を参照)
Kodi
Firefox [2] [3] [4]
Chromium 開発中 (chromium-vaapiAUR)
FFmpeg

インストール

使用しているビデオカードのメーカーにあわせて適切なドライバーを選択してください:

  • Intel Graphics の場合は VA-API を使用してください。
  • NVIDIA 製のカードの場合は VDPAU を使用してください。
  • AMD 製のカードの場合は両方とも使うことができます (mesa を使用)。

VA-API と VDPAU それぞれに対して以下のドライバーも存在します:

  • libva-vdpau-driver は VDPAU を VA-API のバックエンドとして使用します。
  • libvdpau-va-gl は VA-API を VDPAU のバックエンドとして使用します。

2007年以前のカードについては XvMC を参照してください。

ヒント: 様々な状況に対応するために VA-API と VDPAU の両方をインストール・設定することを推奨します。例えば Flash は VA-API をサポートしていませんが VDPAU の VA-API バックエンドを使用することができます。

VA-API のインストール

オープンソースドライバー:

プロプライエタリドライバー:

VDPAU のインストール

オープンソースドライバー:

プロプライエタリドライバー:

確認

ヒント:
  • ハードウェアアクセラレーションをテストするときは mpv が向いています。
  • Radeon の場合、以下のコマンドでドライバーの名前を確認できます:
$ grep -iE 'vdpau | dri driver' ~/.local/share/xorg/Xorg.0.log
(II) RADEON(0): [DRI2] DRI driver: radeonsi
(II) RADEON(0): [DRI2] VDPAU driver: radeonsi

上記の場合、VA-API と VDPAU の両方で radeonsi が使えます。

  • GDM を使っている場合は journalctl -b | grep -iE 'vdpau | dri driver' を実行してください。

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           :	VAEntrypointEncPicturehttp://img.2chan.net/b/futaba.php?mode=cat
      VAProfileVP8Version0_3          :	VAEntrypointVLD
      VAProfileVP8Version0_3          :	VAEntrypointEncSlice
      VAProfileHEVCMain               :	VAEntrypointVLD
      VAProfileHEVCMain               :	VAEntrypointEncSlice

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

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

libva info: Trying to open /usr/lib/dri/i965_drv_video.so

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 を手動で有効にする必要があります。有効化されているかどうか確認をしてください。

VA-API の設定

VA-API のドライバーは自動で認識されます [6]。使用されているドライバーを確認する方法は確認を見てください。LIBVA_DRIVER_NAME 環境変数を設定することで使用するドライバーを上書きできます:

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

VDPAU の設定

VDPAU で使用されるドライバーは自動的に認識されますが、VDPAU_DRIVER 環境変数を使うことで上書きすることができます。

使用しているビデオドライバーにあわせて適切なドライバーの名前を指定してください:

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

トラブルシューティング

Failed to open VDPAU backend

libvdpau-va-gl を使用している場合に VDPAU_DRIVER を上書きしないと発生するエラーです。何らかの理由で VDPAU が使用するドライバーを正しく認識できていません。VDPAU の設定を見てください。

VA-API を使用するようにメディアプレイヤーを設定することで良い結果を得られる可能性があります。ソフトウェアを参照。

VAAPI init failed

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