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

提供: ArchWiki
ナビゲーションに移動 検索に移動
(同期)
(同期)
10行目: 10行目:
   
 
Linux でハードウェアアクセラレーションを利用する方法は複数存在します:
 
Linux でハードウェアアクセラレーションを利用する方法は複数存在します:
* '''[https://www.freedesktop.org/wiki/Software/vaapi Video Acceleration API]''' (VA-API) はハードウェア支援による動画エンコード・デコードの両方を実現するオープンソースライブラリです。Intel によって開発されました。
+
* '''[https://www.freedesktop.org/wiki/Software/vaapi/ Video Acceleration API]''' (VA-API) はハードウェア支援による動画エンコード・デコードの両方を実現するオープンソースライブラリです。Intel によって開発されました。
* '''[http://http.download.nvidia.com/XFree86/vdpau/doxygen/html/ Video Decode and Presentation API for Unix]''' (VDPAU) は GPU ビデオハードウェアに動画のデコードやポストプロセス処理をオフロードするオープンソースのライブラリです。NVIDIA によって開発されました。
+
* '''[https://www.freedesktop.org/wiki/Software/VDPAU/ Video Decode and Presentation API for Unix]''' (VDPAU) は GPU ビデオハードウェアに動画のデコードやポストプロセス処理をオフロードするオープンソースのライブラリです。NVIDIA によって開発されました。VDPAU は2015年9月から更新されていません
  +
* [https://developer.nvidia.com/nvidia-video-codec-sdk NVDECODE/NVENCODE] - NVIDIA Fermi, Kepler, Maxwell, Pascal 世代の GPU によって使われているハードウェアビデオアクセラレーションのためのプロプライエタリ API。
* X-Video Motion Compensation ([[XvMC]]) は動画のデコード処理を動画プログラムから GPU ビデオハードウェアにオフロードできる X.Org サーバーの拡張です。
 
  +
  +
2007年以前のビデオカードについては [[XvMC]] を参照してください。
   
 
== 対応状況 ==
 
== 対応状況 ==
   
=== フォマット ===
+
=== ドウェア ===
   
  +
==== VA-API ====
{{note|ドライバーの選択については[[#インストール|インストール]]を見てください。}}
 
   
{| class="wikitable" style="width:100%;text-align:center;"
+
{| class="wikitable" style="text-align:center;"
  +
! コーデック
|+ 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|intel-media-driver}} [https://github.com/intel/media-driver/blob/master/README.md]
! {{pkg|libva-mesa-driver}}
 
  +
! {{pkg|libva-mesa-driver}} [https://www.x.org/wiki/RadeonFeature/] [https://nouveau.freedesktop.org/wiki/VideoAcceleration/]
 
! [[AMD Catalyst#ビデオアクセラレーション|Catalyst XvBA]]
 
! [[AMD Catalyst#ビデオアクセラレーション|Catalyst XvBA]]
! {{pkg|libva-vdpau-driver}}<br>(VDPAU アダプタ)
+
! {{pkg|libva-vdpau-driver}}
  +
(VDPAU アダプタ)
 
|-
 
|-
! colspan=5 | デコード
+
! colspan=6 | デコード
 
|-
 
|-
 
! MPEG2
 
! MPEG2
 
| {{G|GMA 4500 以降}}
 
| {{G|GMA 4500 以降}}
  +
| {{G|Broadwell 以降}}
  +
| {{G|Radeon HD 6000 以降<br>GeForce 8 以降<sup>1</sup>}}
 
| {{G|Radeon HD 4000 以降}}
 
| {{G|Radeon HD 4000 以降}}
  +
| rowspan=6 | [[#VDPAU]] を参照
| {{G|Radeon HD 4000 以降}}
 
| rowspan=5 | VDPAU を参照。
 
 
|-
 
|-
 
! MPEG4
 
! MPEG4
| {{R|✗}}
+
| {{No}}
  +
| {{No}}
| <center>?</center>
 
  +
| {{G|Radeon HD 6000 以降}}
 
| {{G|Radeon HD 6000 以降}}
 
| {{G|Radeon HD 6000 以降}}
 
|-
 
|-
! H.264
+
! AVC (H.264)
| {{G|GMA 4500<sup>1</sup>, Ironlake Graphics 以降}}
+
| {{G|GMA 4500<sup>2</sup>, Ironlake 以降}}
| {{G|Radeon HD 4000 以降}}
+
| {{G|Broadwell 以降}}
  +
| {{G|Radeon HD 2000 以降<br>GeForce 8 以降<sup>1</sup>}}
 
| {{G|Radeon HD 4000 以降}}
 
| {{G|Radeon HD 4000 以降}}
 
|-
 
|-
! HEVC (H.265)
+
! HEVC (H.265) 8bit
 
| {{G|Cherryview/Braswell 以降}}
 
| {{G|Cherryview/Braswell 以降}}
| {{G|Radeon HD 6000 以降}}
+
| {{G|Skylake 以降}}
| {{R|}}
+
| {{G|Radeon R9 Fury 以降}}
  +
| rowspan=2 {{No}}
  +
|-
  +
! HEVC (H.265) 10bit
  +
| {{G|Broxton 以降}}
  +
| {{G|Broxton/Apollo Lake 以降}}
  +
| {{G|Radeon 400 以降}}
 
|-
 
|-
 
! VC1
 
! VC1
| {{G|Sandy Bridge Graphics 以降}}
+
| {{G|Sandy Bridge 以降}}
| {{G|Radeon HD 4000 以降}}
+
| rowspan=2 {{G|Broadwell 以降}}
  +
| {{G|Radeon HD 2000 以降<br>GeForce 9300 以降<sup>1</sup>}}
 
| {{G|Radeon HD 4000 以降}}
 
| {{G|Radeon HD 4000 以降}}
 
|-
 
|-
 
! VP8
 
! VP8
 
| {{G|Broadwell 以降}}
 
| {{G|Broadwell 以降}}
| ?
+
| {{No}}
| {{R|✗}}
+
| rowspan=3 {{No}}
| rowspan=2 style="background:#faa;" | ✗
+
| rowspan=3 {{No}}
 
|-
 
|-
! VP9
+
! VP9 8bit
| {{G|Broxton 以降}}
+
| {{G|Broxton 以降 <br> Hybrid: Haswell から Skylake<sup>3</sup>}}
  +
| {{G|Broxton/Apollo Lake 以降}}
| ?
 
  +
| rowspan=2 {{G|Raven Ridge 以降}}
| {{R|✗}}
 
 
|-
 
|-
  +
! VP9 10bit
! colspan=5 | エンコード
 
  +
| {{G|Kaby Lake 以降}}
  +
| {{G|Kaby Lake 以降}}
  +
|-
  +
! colspan=6 | エンコード
 
|-
 
|-
 
! MPEG2
 
! MPEG2
| {{G|Ivy Bridge Graphics 以降}}
+
| {{G|Ivy Bridge 以降}}
  +
| {{G|Broadwell 以降<br>Broxton/Apollo Lake は除く}}
| ?
 
  +
| {{No}}
| rowspan=5 style="background:#faa;" | ✗
 
| rowspan=5 style="background:#faa;" | ✗
+
| rowspan=7 {{No}}
  +
| rowspan=7 {{No}}
 
|-
 
|-
! H.264
+
! AVC (H.264)
| {{G|Sandy Bridge Graphics 以降}}
+
| {{G|Sandy Bridge 以降}}
| {{G|Radeon HD 4000 以降}}
+
| {{G|Broadwell 以降}}
  +
| {{G|Radeon HD 7000 以降}}
 
|-
 
|-
! HEVC (H.265)
+
! HEVC (H.265) 8bit
 
| {{G|Skylake 以降}}
 
| {{G|Skylake 以降}}
  +
| {{G|Skylake 以降}}
| ?
 
  +
| rowspan=2 {{G|Raven Ridge 以降}}
  +
|-
  +
! HEVC (H.265) 10bit
  +
| {{G|Kaby Lake 以降}}
  +
| rowspan=2 {{G|Cannonlake 以降}}
 
|-
 
|-
 
! VP8
 
! VP8
| {{G|Cherryview/Braswell 以降}}
+
| {{G|Cherryview/Braswell 以降 <br> Hybrid: Haswell から Skylake<sup>3</sup>}}
  +
| rowspan=3 {{No}}
| ?
 
 
|-
 
|-
! VP9
+
! VP9 8bit
 
| {{G|Kaby Lake 以降}}
 
| {{G|Kaby Lake 以降}}
  +
| rowspan=2 {{G|Icelake 以降}}
| ?
 
 
|-
 
|-
  +
! VP9 10bit
  +
| {{No}}
 
|}
 
|}
   
  +
* <sup>1</sup> GeForce GTX 750 まで対応。
{| class="wikitable" style="width:100%;text-align:center;"
 
  +
* <sup>2</sup> {{aur|libva-intel-driver-g45-h264}} パッケージによってサポートされています。
|+ VDPAU
 
  +
* <sup>3</sup> Hybrid VP8 エンコーダ・VP9 デコーダは {{AUR|intel-hybrid-codec-driver}} によってサポートされています [https://github.com/01org/intel-hybrid-driver/blob/master/README]。
!
 
  +
! {{pkg|mesa-vdpau}}
 
  +
==== VDPAU ====
! {{pkg|nvidia-utils}}
 
  +
! {{aur|amdgpu-pro-vdpau}}
 
  +
{{Note|VDPAU は2015年9月から更新されておらず VP8 と VP9 をサポートしていません [https://gitlab.freedesktop.org/vdpau/libvdpau]。}}
  +
  +
{| class="wikitable" style="text-align:center;"
  +
! コーデック
  +
! {{pkg|mesa-vdpau}} [https://www.x.org/wiki/RadeonFeature/] [https://nouveau.freedesktop.org/wiki/VideoAcceleration/]
  +
! {{pkg|nvidia-utils}} [https://www.nvidia.com/page/purevideo_support.html]
 
! {{pkg|libvdpau-va-gl}}<br>(VA-API アダプタ)
 
! {{pkg|libvdpau-va-gl}}<br>(VA-API アダプタ)
|-
 
 
|-
 
|-
 
! colspan=5 | デコード
 
! colspan=5 | デコード
 
|-
 
|-
 
! MPEG2
 
! MPEG2
| {{G|Radeon 9500 以降, GeForce 8 以降}}
+
| {{G|Radeon R300 以降 <br> GeForce 8 以降<sup>1</sup>}}
 
| {{G|GeForce 8 以降}}
 
| {{G|GeForce 8 以降}}
| rowspan=5 | ?
+
| rowspan=2 {{R|No}}
| rowspan=2 style="background:#faa;" | ✗<sup>2</sup>
 
 
|-
 
|-
 
! MPEG4
 
! MPEG4
| {{G|Radeon HD 6000 以降, GeForce 200 以降}}
+
| {{G|Radeon HD 6000 以降 <br> GeForce 200 以降<sup>1</sup>}}
 
| {{G|GeForce 200 以降}}
 
| {{G|GeForce 200 以降}}
 
|-
 
|-
! H.264
+
! AVC (H.264)
| {{G|Radeon HD 4000 以降, GeForce 8 以降}}
+
| {{G|Radeon HD 2000 以降 <br> GeForce 8 以降<sup>1</sup>}}
 
| {{G|GeForce 8 以降}}
 
| {{G|GeForce 8 以降}}
| VA-API を参照
+
| [[#VA-API]] を参照
 
|-
 
|-
! HEVC (H.265)
+
! HEVC (H.265) 8bit
  +
| {{G|Radeon R9 Fury 以降}}
| {{G|1=[https://cgit.freedesktop.org/mesa/mesa/commit/src/gallium/state_trackers/vdpau/decode.c?id=5609a6986f3eb3c452d66d373b6081df5c6fb34c ✓]}}
 
| {{G|GeForce 900<sup>4</sup> 以降}}
+
| {{G|GeForce 900 以降<sup>2</sup>}}
| rowspan=4 style="background:#faa;" | ✗<sup>2</sup>
+
| rowspan=3 {{No}}
 
|-
 
|-
  +
! HEVC (H.265) 10bit
! VC1
 
| {{G|Radeon HD 4000 以降, GeForce 8<sup>3</sup> 以降}}
+
| {{G|Radeon 400 以降}}
| {{G|GeForce 8<sup>3</sup> 以降}}
+
| {{No}}<sup>3</sup>
 
|-
 
|-
  +
! VC1
  +
| {{G|Radeon HD 2000 以降 <br> GeForce 9300 以降<sup>1</sup>}}
  +
| {{G|GeForce 8 以降<sup>4</sup>}}
 
|}
 
|}
   
  +
* <sup>1</sup> GeForce GTX 750 まで対応。
* <sup>1</sup> {{aur|libva-intel-driver-g45-h264}} パッケージによってサポートされています。
 
  +
* <sup>2</sup> GeForce GTX 970 と GTX 980 は除く。
* <sup>2</sup> バージョン 0.3 現在、VA GL ドライバーは H.264 以外のハードウェアデコーダをサポートしていません。
 
  +
* <sup>3</sup> NVIDIA の実装は8ビットストリームまでに制限されています [https://devtalk.nvidia.com/default/topic/940228/vdpau-expose-hevc-main10-support-where-available-on-die/] [https://us.download.nvidia.com/XFree86/Linux-x86_64/410.57/README/vdpausupport.html#vdpau-implementation-limits]。
* <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 8800 Ultra, 8800 GTX, 8800 GTS (320/640 MB)[[Wikipedia:Nvidia PureVideo|く]]
  +
  +
==== NVDECODE/NVENCODE ====
   
 
{| class="wikitable" style="text-align:center;"
 
{| class="wikitable" style="text-align:center;"
  +
! rowspan=2 | コーデック
|+ Nvidia NVDEC/NVENC ([[NVIDIA]] のみ)
 
  +
! colspan=2 | {{Pkg|nvidia-utils}}
!
 
  +
|-
! デコード (NVDEC)
 
  +
! [https://developer.nvidia.com/nvidia-video-codec-sdk#NVDECFeatures デコード]
! エンコード (NVENC)
 
  +
! [https://developer.nvidia.com/nvidia-video-codec-sdk#NVENCFeatures エンコード]
 
|-
 
|-
 
! MPEG-2
 
! MPEG-2
  +
| rowspan=3 {{G|Kepler 以降<sup>1</sup>}}
| {{G|✓}}
 
| {{R|✗}}
+
| rowspan=2 {{No}}
 
|-
 
|-
 
! VC-1
 
! VC-1
| {{G|✓}}
 
| {{R|✗}}
 
 
|-
 
|-
! H.264
+
! AVC (H.264)
| {{G|}}
+
| {{G|Kepler 以降<sup>2</sup>}}
| {{G|✓}}
 
 
|-
 
|-
! HEVC (H.265)
+
! HEVC (H.265) 8bit
| {{G|Pascal 以降}}
+
| rowspan=2 {{G|Maxwell (GM206) 以降}}
  +
| {{G|Maxwell (2nd Gen) 以降}}
  +
|-
  +
! HEVC (H.265) 10bit
 
| {{G|Pascal 以降}}
 
| {{G|Pascal 以降}}
 
|-
 
|-
 
! VP8
 
! VP8
| {{G|Maxwell2 以降}}
+
| {{G|Maxwell (2nd Gen) 以降}}
| {{R|✗}}
+
| rowspan=3 {{No}}
 
|-
 
|-
! VP9
+
! VP9 8bit
| {{G|Pascal 以降}}
+
| {{G|Maxwell (GM206) 以降}}
| {{R|✗}}
 
 
|-
 
|-
  +
! VP9 10bit
  +
| {{G|Pascal 以降}}
 
|}
 
|}
   
  +
* <sup>1</sup> GM108 は除く (未サポート)
あなたの GPU でどのプロファイルがサポートされているか知る方法は[[#確認|確認]]を見てください。
 
  +
* <sup>2</sup> GM108 と GP108 は除く (未サポート)
 
{{aur|amdgpu-pro-vdpau}} パッケージについては [[AMDGPU#AMDGPU PRO]] を見てください。
 
   
 
=== ソフトウェア ===
 
=== ソフトウェア ===
   
{| class="wikitable" style="width:100%;"
+
{| class="wikitable"
 
!
 
!
 
! VA-API
 
! VA-API
 
! VDPAU
 
! VDPAU
  +
! NVDECODE
! NVDEC/NVENC
 
  +
! ドキュメント
  +
|-
  +
! [[FFmpeg]]
  +
| {{Yes}}
  +
| {{Yes}}
  +
| {{Yes}}
  +
| [[FFmpeg#ハードウェアアクセラレーション]]
 
|-
 
|-
 
! [[GStreamer]]
 
! [[GStreamer]]
| {{G|✓ ({{pkg|gstreamer-vaapi}} を使用、[[GStreamer#ハードウェアアクセラレーション]]を参照)}}
+
| {{Yes}} ({{pkg|gstreamer-vaapi}})
| {{G|✓ ({{pkg|gst-plugins-bad}} を使用、[[GStreamer#ハードウェアアクセラレーション]]を参照)}}
+
| {{Yes}} ({{pkg|gst-plugins-bad}})
| {{G|✓ ({{pkg|gst-plugins-bad}} を使用、[[GStreamer#ハードウェアアクセラレーション]]を参照)}}
+
| {{Yes}} ({{pkg|gst-plugins-bad}})
  +
| [[GStreamer#ハードウェアアクセラレーション]]
 
|-
 
|-
! [[VLC media player]]
+
! [[Kodi]]
  +
| {{Yes}}
| {{G|✓ ([[VLC media player#ハードウェアアクセラレーションのサポート]]を参照)}}
 
  +
| {{Yes}}
| {{G|✓ ([[VLC media player#ハードウェアアクセラレーションのサポート]]を参照)}}
 
| {{R|✗}}
+
| {{Yes}}
  +
| [[Kodi#ヒントとテクニック‎]]
 
|-
 
|-
 
! [[mpv]]
 
! [[mpv]]
  +
| {{Yes}}
| {{G|✓ ([[mpv#ハードウェアデコード]]を参照)}}
 
  +
| {{Yes}}
| {{G|✓ ([[mpv#ハードウェアデコード]]を参照)}}
 
| {{G|✓}}
+
| {{Yes}}
  +
| [[mpv#ハードウェアデコード]]
  +
|-
  +
! [[VLC media player]]
  +
| {{Yes}}
  +
| {{Yes}}
  +
| {{No}}
  +
| [[VLC media player#ハードウェアアクセラレーションのサポート]]
 
|-
 
|-
 
! [[MPlayer]]
 
! [[MPlayer]]
| {{G|✓ ({{aur|mplayer-vaapi}} を使用、[[MPlayer#VA-API を有効にする]]を参照)}}
+
| {{Y|{{AUR|mplayer-vaapi}}}}
  +
| {{Yes}}
| {{G|✓ ([[MPlayer#VDPAU を有効にする]]を参照)}}
 
| {{R|✗}}
+
| {{No}}
  +
| [[MPlayer#ハードウェアアクセラレーション]]
 
|-
 
|-
 
! [[Flash]]
 
! [[Flash]]
  +
| {{Y|NPAPI のみ: <br> {{AUR|freshplayerplugin}}}}
| {{G|✓ ({{pkg|libvdpau-va-gl}} を使用、[[Flash#設定]]を参照)}}
 
  +
| {{Y|NPAPI のみ: <br> {{Pkg|flashplugin}} または <br> {{AUR|freshplayerplugin}}}}
| {{G|✓ ([[Flash#設定]]を参照)}}
 
| {{R|✗}}
+
| {{No}}
  +
| [[ブラウザプラグイン#Adobe Flash Player]]
|-
 
! [[Kodi]]
 
| {{G|✓}}
 
| {{G|✓}}
 
| {{G|✓}}
 
|-
 
! [[Firefox]]
 
| 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]]
 
! [[Chromium]]
| {{Y|[https://chromium-review.googlesource.com/c/chromium/src/+/532294 開発中] ({{AUR|chromium-vaapi}})}}
+
| {{Y|{{AUR|chromium-vaapi}}}}
| {{R|✗}}
+
| {{No}}
| {{R|✗}}
+
| {{No}}
  +
| [[Chromium#設定]]
 
|-
 
|-
! [[FFmpeg]]
+
! [[Firefox]]
| {{G|✓}}
+
| {{No}}
| {{G|✓}}
+
| {{No}}
| {{G|✓}}
+
| {{No}}
  +
| [https://bugzilla.mozilla.org/show_bug.cgi?id=1210726 バグレポート]
 
|}
 
|}
  +
  +
{{Tip|VP8/VP9 のハードウェアデコードが使えない場合に YouTube を視聴する際に CPU の使用量を減らしたいときは h264ify 拡張を使ってください ([https://addons.mozilla.org/en-US/firefox/addon/h264ify/ Firefox]/[https://chrome.google.com/webstore/detail/h264ify/aleakchihdccplidncghkekgioiakgal Chromium])。}}
   
 
== インストール ==
 
== インストール ==
   
  +
=== Intel ===
使用しているビデオカードのメーカーにあわせて適切なドライバーを選択してください:
 
  +
  +
[[Intel Graphics]] オープンソースドライバーは VA-API に対応しています:
  +
  +
* CannonLake (あるいは Broadwell) 以降の HD Graphics シリーズは {{Pkg|intel-media-driver}} によってサポートされています。
  +
* Coffee Lake までの GMA 4500 シリーズ以降の GPU は {{Pkg|libva-intel-driver}} によってサポートされています。
  +
* GMA 4500 の H.264 デコードは {{AUR|libva-intel-driver-g45-h264}} によってサポートされています。[[Intel#GMA 4500 での H.264 デコーディング]]を参照。
  +
* Haswell から Skylake までのハイブリッド VP8 エンコードと VP9 デコードは {{AUR|intel-hybrid-codec-driver}} によってサポートされています。
  +
  +
=== NVIDIA ===
   
* Intel Graphics の場合は VA-API を使用してくださ
+
[[Nouveau]] オープンソースドライバーは VA-API と VDPAU に対応しています:
* NVIDIA 製のカードの場合は VDPAU を使用してください。
 
* AMD 製のカードの場合は両方とも使うことができます ({{Pkg|mesa}} を使用)。
 
   
  +
* GeForce GTX 750 までの GeForce 8 シリーズ以降の GPU は {{Pkg|libva-mesa-driver}} と {{Pkg|mesa-vdpau}} によってサポートされています。
VA-API と VDPAU それぞれに対して以下のドライバーも存在します:
 
  +
* NVIDIA のバイナリドライバーから抽出される {{AUR|nouveau-fw}} ファームウェアパッケージが [https://nouveau.freedesktop.org/wiki/VideoAcceleration/#firmware 必要] です。
* {{pkg|libva-vdpau-driver}} は VDPAU を VA-API のバックエンドとして使用します。
 
* {{pkg|libvdpau-va-gl}} は VA-API を VDPAU のバックエンドとして使用します。
 
   
  +
[[NVIDIA]] プロプライエタリドライバーは VDPAU と NVDECODE/NVENCODE に対応しています:
2007年以前のカードについては [[XvMC]] を参照してください。
 
   
  +
* VDPAU は GeForce 8 シリーズ以降で {{Pkg|nvidia-utils}} によってサポートされています。
{{Tip|様々な状況に対応するために VA-API と VDPAU の両方をインストール・設定することを推奨します。例えば [[Flash]] は VA-API をサポートしていませんが VDPAU の VA-API バックエンドを使用することができます。}}
 
  +
* NVDECODE/NVENCODE は Kepler 以降で {{Pkg|nvidia-utils}} によってサポートされています。
   
=== VA-API のインストール ===
+
=== ATI/AMD ===
   
'''オープンソースドライバー''':
+
[[ATI]] と [[AMDGPU]] オープンソースドライバーは VA-API と VDPAU に対応しています:
   
* [[ATI]]/[[AMDGPU]] Radeon 9500 以降の GPU {{pkg|libva-mesa-driver}} と {{pkg|mesa}}、または {{pkg|libva-vdpau-driver}} によってサポートされます ([[#VDPAU のインストール|VDPAU のインストール]]を参照)
+
* VDPAU は Radeon R300 以降の GPU {{Pkg|mesa-vdpau}} によってサポートされています。
* [[Intel]] GMA 4500 シリーズ以降の GPU {{pkg|libva-intel-driver}} と {{pkg|mesa}} によってサポートされます。
+
* VA-API は Radeon HD 2000 以降の GPU {{Pkg|libva-mesa-driver}} によってサポートされています。
** 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 のインストール]]を参照)。
 
   
'''プロプライエタリドライバー''':
+
[[AMD Catalyst]] プロプライエタリドライバーは [[AMD Catalyst#ビデオアクセラレーション|XvBA]] によって VA-API に対応しています。
   
* AMD 製カードはドライバーによっ異なります:
+
[[AMDGPU PRO]] プロプライエタリライバー AMDGPU ドライバー上で動作し、VA-API と VDPAU 対応します
** [[AMD Catalyst]] は [[AMD Catalyst#ビデオアクセラレーション|xvba]] を使用します。
 
** [[AMDGPU PRO]] は {{pkg|libva-vdpau-driver}} と {{AUR|amdgpu-pro-vdpau}} を使用します ([[AMDGPU#AMDGPU PRO]] を参照)。
 
* [[NVIDIA]] GeForce 8 シリーズ以降の GPU が {{pkg|libva-vdpau-driver}} によってサポートされます ([[#VDPAU のインストール|VDPAU のインストール]]を参照)。
 
   
=== VDPAU のンスト ===
+
=== 互換レー ===
   
  +
デバイスドライバーが VA-API をサポートしていない場合に VA-API を使うには:
'''オープンソースドライバー''':
 
   
  +
* {{Pkg|libva-vdpau-driver}} – VDPAU の VA-API バックエンド。
* [[ATI]]/[[AMDGPU]] Radeon 9500 以降の GPU が {{pkg|mesa-vdpau}} によってサポートされます。
 
  +
* {{AUR|libva-vdpau-driver-chromium}} – Chromium で動作するようにパッチが適用された VDPAU の VA-API バックエンド。
* [[Intel]] GMA 4500 シリーズ以降の GPU が {{pkg|libvdpau-va-gl}} によってサポートされます ([[#VA-API のインストール|VA-API のインストール]]を参照)。
 
* [[Nouveau|NVIDIA]] GeForce 8 シリーズ以降の GPU が {{pkg|mesa-vdpau}} によってサポートされます。NVIDIA のバイナリドライバーから抽出したファームウェアが含まれている {{AUR|nouveau-fw}} が必要です [https://nouveau.freedesktop.org/wiki/VideoAcceleration/#firmware]。
 
   
  +
デバイスドライバーが VDPAU をサポートしていない場合に VDPAU を使うには:
'''プロプライエタリドライバー''':
 
   
  +
* {{Pkg|libvdpau-va-gl}} – VA-API の VDPAU バックエンド ([https://github.com/i-rinat/libvdpau-va-gl/issues/67#issuecomment-318470175 H.264 のみサポート])。
* AMD 製カードはドライバーによって異なります:
 
** [[AMD Catalyst]] は {{pkg|libvdpau-va-gl}} を使用します ([[#VA-API のインストール|VA-API のインストール]]を参照)。
 
** [[AMDGPU PRO]] は {{AUR|amdgpu-pro-vdpau}} を使用します ([[AMDGPU#AMDGPU PRO]] を参照)。
 
* [[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}} によってサポートされています。
 
   
 
== 確認 ==
 
== 確認 ==
380行目: 424行目:
 
VA-API のドライバーは自動で認識されます [https://www.freedesktop.org/wiki/Software/vaapi/#driversback-endsthatimplementva-api]。使用されているドライバーを確認する方法は[[#確認|確認]]を見てください。{{ic|LIBVA_DRIVER_NAME}} [[環境変数]]を設定することで使用するドライバーを上書きできます:
 
VA-API のドライバーは自動で認識されます [https://www.freedesktop.org/wiki/Software/vaapi/#driversback-endsthatimplementva-api]。使用されているドライバーを確認する方法は[[#確認|確認]]を見てください。{{ic|LIBVA_DRIVER_NAME}} [[環境変数]]を設定することで使用するドライバーを上書きできます:
   
* Intel Graphics の場合 {{ic|i965}} に設定してください。
+
* [[Intel Graphics]]:
* NVIDIA 製のカードの場合 {{ic|vdpau}} に設定してください。
+
** {{Pkg|libva-intel-driver}} の場合 {{ic|i965}} を使ってください。
* AMD 製のカードの場合 {{ic|radeonsi}} または {{ic|vdpau}} に設定してください。
+
** {{Pkg|intel-media-driver}} の場合は {{ic|iHD}} を使ってください。
  +
* NVIDIA:
  +
** [[Nouveau]] の場合は {{ic|nouveau}} を使ってください。
  +
** [[NVIDIA]] の場合は {{ic|vdpau}} を使ってください。
  +
* ATI/AMD:
  +
** [[AMDGPU]] の場合は {{ic|radeonsi}} を使ってください。
  +
** [[AMD Catalyst]] の場合は {{ic|fglrx}} を使ってください。
   
 
{{Note|
 
{{Note|
 
* インストールされているドライバーは {{ic|/usr/lib/dri/}} ディレクトリを見ることで確認できます。{{ic|/usr/lib/dri/'''${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/*}} を実行することで確認できます。
  +
* {{ic|LIBVA_DRIVERS_PATH}} を使うことで VA-API ドライバーのパスを上書きできます。
 
* バージョン 12.0.1 から {{Pkg|libva-mesa-driver}} は {{ic|gallium}} の代わりとして {{ic|radeonsi}} を提供しています。
 
* バージョン 12.0.1 から {{Pkg|libva-mesa-driver}} は {{ic|gallium}} の代わりとして {{ic|radeonsi}} を提供しています。
 
}}
 
}}
398行目: 449行目:
 
* Intel Graphics や AMD Catalyst の場合 {{ic|va_gl}} に[[#Failed_to_open_VDPAU_backend|設定]]する必要があります。
 
* Intel Graphics や AMD Catalyst の場合 {{ic|va_gl}} に[[#Failed_to_open_VDPAU_backend|設定]]する必要があります。
 
* オープンソースの AMD/ATI ドライバーの場合、使用している GPU にあわせて適切なドライバーを設定してください。[[#確認|確認]]を参照。
 
* オープンソースの AMD/ATI ドライバーの場合、使用している GPU にあわせて適切なドライバーを設定してください。[[#確認|確認]]を参照。
  +
* オープンソースの Nouveau ドライバーの場合は {{ic|nouveau}} に設定してください。
 
* NVIDIA のプロプライエタリドライバーの場合は {{ic|nvidia}} に設定してください。
 
* NVIDIA のプロプライエタリドライバーの場合は {{ic|nvidia}} に設定してください。
   

2018年12月7日 (金) 01:47時点における版

関連記事

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

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

  • Video Acceleration API (VA-API) はハードウェア支援による動画エンコード・デコードの両方を実現するオープンソースライブラリです。Intel によって開発されました。
  • Video Decode and Presentation API for Unix (VDPAU) は GPU ビデオハードウェアに動画のデコードやポストプロセス処理をオフロードするオープンソースのライブラリです。NVIDIA によって開発されました。VDPAU は2015年9月から更新されていません。
  • NVDECODE/NVENCODE - NVIDIA Fermi, Kepler, Maxwell, Pascal 世代の GPU によって使われているハードウェアビデオアクセラレーションのためのプロプライエタリ API。

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

対応状況

ハードウェア

VA-API

コーデック libva-intel-driver [1] intel-media-driver [2] libva-mesa-driver [3] [4] Catalyst XvBA libva-vdpau-driver

(VDPAU アダプタ)

デコード
MPEG2 GMA 4500 以降 Broadwell 以降 Radeon HD 6000 以降
GeForce 8 以降1
Radeon HD 4000 以降 #VDPAU を参照
MPEG4 No No Radeon HD 6000 以降 Radeon HD 6000 以降
AVC (H.264) GMA 45002, Ironlake 以降 Broadwell 以降 Radeon HD 2000 以降
GeForce 8 以降1
Radeon HD 4000 以降
HEVC (H.265) 8bit Cherryview/Braswell 以降 Skylake 以降 Radeon R9 Fury 以降 No
HEVC (H.265) 10bit Broxton 以降 Broxton/Apollo Lake 以降 Radeon 400 以降
VC1 Sandy Bridge 以降 Broadwell 以降 Radeon HD 2000 以降
GeForce 9300 以降1
Radeon HD 4000 以降
VP8 Broadwell 以降 No No No
VP9 8bit Broxton 以降
Hybrid: Haswell から Skylake3
Broxton/Apollo Lake 以降 Raven Ridge 以降
VP9 10bit Kaby Lake 以降 Kaby Lake 以降
エンコード
MPEG2 Ivy Bridge 以降 Broadwell 以降
Broxton/Apollo Lake は除く
No No No
AVC (H.264) Sandy Bridge 以降 Broadwell 以降 Radeon HD 7000 以降
HEVC (H.265) 8bit Skylake 以降 Skylake 以降 Raven Ridge 以降
HEVC (H.265) 10bit Kaby Lake 以降 Cannonlake 以降
VP8 Cherryview/Braswell 以降
Hybrid: Haswell から Skylake3
No
VP9 8bit Kaby Lake 以降 Icelake 以降
VP9 10bit No

VDPAU

ノート: VDPAU は2015年9月から更新されておらず VP8 と VP9 をサポートしていません [6]
コーデック mesa-vdpau [7] [8] nvidia-utils [9] libvdpau-va-gl
(VA-API アダプタ)
デコード
MPEG2 Radeon R300 以降
GeForce 8 以降1
GeForce 8 以降 No
MPEG4 Radeon HD 6000 以降
GeForce 200 以降1
GeForce 200 以降
AVC (H.264) Radeon HD 2000 以降
GeForce 8 以降1
GeForce 8 以降 #VA-API を参照
HEVC (H.265) 8bit Radeon R9 Fury 以降 GeForce 900 以降2 No
HEVC (H.265) 10bit Radeon 400 以降 No3
VC1 Radeon HD 2000 以降
GeForce 9300 以降1
GeForce 8 以降4
  • 1 GeForce GTX 750 まで対応。
  • 2 GeForce GTX 970 と GTX 980 は除く。
  • 3 NVIDIA の実装は8ビットストリームまでに制限されています [10] [11]
  • 4 GeForce 8800 Ultra, 8800 GTX, 8800 GTS (320/640 MB) は除く

NVDECODE/NVENCODE

コーデック nvidia-utils
デコード エンコード
MPEG-2 Kepler 以降1 No
VC-1
AVC (H.264) Kepler 以降2
HEVC (H.265) 8bit Maxwell (GM206) 以降 Maxwell (2nd Gen) 以降
HEVC (H.265) 10bit Pascal 以降
VP8 Maxwell (2nd Gen) 以降 No
VP9 8bit Maxwell (GM206) 以降
VP9 10bit Pascal 以降
  • 1 GM108 は除く (未サポート)
  • 2 GM108 と GP108 は除く (未サポート)

ソフトウェア

VA-API VDPAU NVDECODE ドキュメント
FFmpeg Yes Yes Yes FFmpeg#ハードウェアアクセラレーション
GStreamer Yes (gstreamer-vaapi) Yes (gst-plugins-bad) Yes (gst-plugins-bad) GStreamer#ハードウェアアクセラレーション
Kodi Yes Yes Yes Kodi#ヒントとテクニック‎
mpv Yes Yes Yes mpv#ハードウェアデコード
VLC media player Yes Yes No VLC media player#ハードウェアアクセラレーションのサポート
MPlayer mplayer-vaapiAUR Yes No MPlayer#ハードウェアアクセラレーション
Flash NPAPI のみ:
freshplayerpluginAUR
NPAPI のみ:
flashplugin または
freshplayerpluginAUR
No ブラウザプラグイン#Adobe Flash Player
Chromium chromium-vaapiAUR No No Chromium#設定
Firefox No No No バグレポート
ヒント: VP8/VP9 のハードウェアデコードが使えない場合に YouTube を視聴する際に CPU の使用量を減らしたいときは h264ify 拡張を使ってください (Firefox/Chromium)。

インストール

Intel

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

NVIDIA

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

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

NVIDIA プロプライエタリドライバーは VDPAU と NVDECODE/NVENCODE に対応しています:

  • VDPAU は GeForce 8 シリーズ以降で nvidia-utils によってサポートされています。
  • NVDECODE/NVENCODE は Kepler 以降で nvidia-utils によってサポートされています。

ATI/AMD

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

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

AMD Catalyst プロプライエタリドライバーは XvBA によって VA-API に対応しています。

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

互換レイヤー

デバイスドライバーが VA-API をサポートしていない場合に VA-API を使うには:

デバイスドライバーが VDPAU をサポートしていない場合に 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 のドライバーは自動で認識されます [12]。使用されているドライバーを確認する方法は確認を見てください。LIBVA_DRIVER_NAME 環境変数を設定することで使用するドライバーを上書きできます:

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

VDPAU の設定

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

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

  • Intel Graphics や AMD Catalyst の場合 va_gl設定する必要があります。
  • オープンソースの AMD/ATI ドライバーの場合、使用している GPU にあわせて適切なドライバーを設定してください。確認を参照。
  • オープンソースの Nouveau ドライバーの場合は nouveau に設定してください。
  • 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 パラメータを追加することでも解決できます。