「ハードウェアビデオアクセラレーション」の版間の差分
(同期) |
(同期) |
||
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 によって開発されました。 |
− | * '''[ |
+ | * '''[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=" |
+ | {| 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}} |
+ | ! {{pkg|libva-vdpau-driver}} |
+ | (VDPAU アダプタ) |
||
|- |
|- |
||
− | ! colspan= |
+ | ! 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 |
||
− | | {{ |
+ | | {{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> |
+ | | {{G|GMA 4500<sup>2</sup>, Ironlake 以降}} |
− | | {{G| |
+ | | {{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| |
+ | | {{G|Skylake 以降}} |
− | | {{ |
+ | | {{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 |
+ | | {{G|Sandy Bridge 以降}} |
− | | {{G| |
+ | | 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}} |
− | | {{ |
+ | | rowspan=3 {{No}} |
− | | rowspan= |
+ | | 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 |
+ | | {{G|Ivy Bridge 以降}} |
+ | | {{G|Broadwell 以降<br>Broxton/Apollo Lake は除く}} |
||
− | | ? |
||
+ | | {{No}} |
||
− | | rowspan=5 style="background:#faa;" | ✗ |
||
− | | rowspan= |
+ | | rowspan=7 {{No}} |
+ | | rowspan=7 {{No}} |
||
|- |
|- |
||
− | ! H.264 |
+ | ! AVC (H.264) |
− | | {{G|Sandy Bridge |
+ | | {{G|Sandy Bridge 以降}} |
− | | {{G| |
+ | | {{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 |
+ | | {{G|Radeon R300 以降 <br> GeForce 8 以降<sup>1</sup>}} |
| {{G|GeForce 8 以降}} |
| {{G|GeForce 8 以降}} |
||
− | | rowspan= |
+ | | rowspan=2 {{R|No}} |
− | | rowspan=2 style="background:#faa;" | ✗<sup>2</sup> |
||
|- |
|- |
||
! MPEG4 |
! MPEG4 |
||
− | | {{G|Radeon HD 6000 以降 |
+ | | {{G|Radeon HD 6000 以降 <br> GeForce 200 以降<sup>1</sup>}} |
| {{G|GeForce 200 以降}} |
| {{G|GeForce 200 以降}} |
||
|- |
|- |
||
− | ! H.264 |
+ | ! AVC (H.264) |
− | | {{G|Radeon HD |
+ | | {{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> |
+ | | {{G|GeForce 900 以降<sup>2</sup>}} |
− | | rowspan= |
+ | | rowspan=3 {{No}} |
|- |
|- |
||
+ | ! HEVC (H.265) 10bit |
||
− | ! VC1 |
||
− | | {{G|Radeon |
+ | | {{G|Radeon 400 以降}} |
− | | {{ |
+ | | {{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 |
+ | * <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|✓}} |
||
− | | {{ |
+ | | 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| |
+ | | rowspan=2 {{G|Maxwell (GM206) 以降}} |
+ | | {{G|Maxwell (2nd Gen) 以降}} |
||
+ | |- |
||
+ | ! HEVC (H.265) 10bit |
||
| {{G|Pascal 以降}} |
| {{G|Pascal 以降}} |
||
|- |
|- |
||
! VP8 |
! VP8 |
||
− | | {{G| |
+ | | {{G|Maxwell (2nd Gen) 以降}} |
− | | {{ |
+ | | rowspan=3 {{No}} |
|- |
|- |
||
− | ! VP9 |
+ | ! VP9 8bit |
− | | {{G| |
+ | | {{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 |
+ | {| class="wikitable" |
! |
! |
||
! VA-API |
! VA-API |
||
! VDPAU |
! VDPAU |
||
+ | ! NVDECODE |
||
− | ! NVDEC/NVENC |
||
+ | ! ドキュメント |
||
+ | |- |
||
+ | ! [[FFmpeg]] |
||
+ | | {{Yes}} |
||
+ | | {{Yes}} |
||
+ | | {{Yes}} |
||
+ | | [[FFmpeg#ハードウェアアクセラレーション]] |
||
|- |
|- |
||
! [[GStreamer]] |
! [[GStreamer]] |
||
− | | {{ |
+ | | {{Yes}} ({{pkg|gstreamer-vaapi}}) |
− | | {{ |
+ | | {{Yes}} ({{pkg|gst-plugins-bad}}) |
− | | {{ |
+ | | {{Yes}} ({{pkg|gst-plugins-bad}}) |
+ | | [[GStreamer#ハードウェアアクセラレーション]] |
||
|- |
|- |
||
− | ! [[ |
+ | ! [[Kodi]] |
+ | | {{Yes}} |
||
− | | {{G|✓ ([[VLC media player#ハードウェアアクセラレーションのサポート]]を参照)}} |
||
+ | | {{Yes}} |
||
− | | {{G|✓ ([[VLC media player#ハードウェアアクセラレーションのサポート]]を参照)}} |
||
− | | {{ |
+ | | {{Yes}} |
+ | | [[Kodi#ヒントとテクニック]] |
||
|- |
|- |
||
! [[mpv]] |
! [[mpv]] |
||
+ | | {{Yes}} |
||
− | | {{G|✓ ([[mpv#ハードウェアデコード]]を参照)}} |
||
+ | | {{Yes}} |
||
− | | {{G|✓ ([[mpv#ハードウェアデコード]]を参照)}} |
||
− | | {{ |
+ | | {{Yes}} |
+ | | [[mpv#ハードウェアデコード]] |
||
+ | |- |
||
+ | ! [[VLC media player]] |
||
+ | | {{Yes}} |
||
+ | | {{Yes}} |
||
+ | | {{No}} |
||
+ | | [[VLC media player#ハードウェアアクセラレーションのサポート]] |
||
|- |
|- |
||
! [[MPlayer]] |
! [[MPlayer]] |
||
− | | {{ |
+ | | {{Y|{{AUR|mplayer-vaapi}}}} |
+ | | {{Yes}} |
||
− | | {{G|✓ ([[MPlayer#VDPAU を有効にする]]を参照)}} |
||
− | | {{ |
+ | | {{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#設定]]を参照)}} |
||
− | | {{ |
+ | | {{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| |
+ | | {{Y|{{AUR|chromium-vaapi}}}} |
− | | {{ |
+ | | {{No}} |
− | | {{ |
+ | | {{No}} |
+ | | [[Chromium#設定]] |
||
|- |
|- |
||
− | ! [[ |
+ | ! [[Firefox]] |
− | | {{ |
+ | | {{No}} |
− | | {{ |
+ | | {{No}} |
− | | {{ |
+ | | {{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 === |
||
− | + | [[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}} によってサポートされています。 |
||
− | === |
+ | === ATI/AMD === |
− | + | [[ATI]] と [[AMDGPU]] オープンソースドライバーは VA-API と VDPAU に対応しています: |
|
− | * |
+ | * VDPAU は Radeon R300 以降の GPU で {{Pkg|mesa-vdpau}} によってサポートされています。 |
− | * |
+ | * 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 に対応しています。 |
|
− | + | [[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 のインストール]]を参照)。 |
||
− | === |
+ | === 互換レイヤー === |
+ | デバイスドライバーが 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 |
+ | * [[Intel Graphics]]: |
− | * |
+ | ** {{Pkg|libva-intel-driver}} の場合は {{ic|i965}} を使ってください。 |
− | * |
+ | ** {{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 |
- 1 GeForce GTX 750 まで対応。
- 2 libva-intel-driver-g45-h264AUR パッケージによってサポートされています。
- 3 Hybrid VP8 エンコーダ・VP9 デコーダは intel-hybrid-codec-driverAUR によってサポートされています [5]。
VDPAU
コーデック | 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 | バグレポート |
インストール
Intel
Intel Graphics オープンソースドライバーは VA-API に対応しています:
- CannonLake (あるいは Broadwell) 以降の HD Graphics シリーズは intel-media-driver によってサポートされています。
- Coffee Lake までの GMA 4500 シリーズ以降の GPU は libva-intel-driver によってサポートされています。
- GMA 4500 の H.264 デコードは libva-intel-driver-g45-h264AUR によってサポートされています。Intel#GMA 4500 での H.264 デコーディングを参照。
- Haswell から Skylake までのハイブリッド VP8 エンコードと VP9 デコードは intel-hybrid-codec-driverAUR によってサポートされています。
NVIDIA
Nouveau オープンソースドライバーは VA-API と VDPAU に対応しています:
- GeForce GTX 750 までの GeForce 8 シリーズ以降の GPU は libva-mesa-driver と mesa-vdpau によってサポートされています。
- NVIDIA のバイナリドライバーから抽出される nouveau-fwAUR ファームウェアパッケージが 必要 です。
NVIDIA プロプライエタリドライバーは VDPAU と NVDECODE/NVENCODE に対応しています:
- VDPAU は GeForce 8 シリーズ以降で nvidia-utils によってサポートされています。
- NVDECODE/NVENCODE は Kepler 以降で nvidia-utils によってサポートされています。
ATI/AMD
ATI と AMDGPU オープンソースドライバーは 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 を使うには:
- libva-vdpau-driver – VDPAU の VA-API バックエンド。
- libva-vdpau-driver-chromiumAUR – Chromium で動作するようにパッチが適用された VDPAU の VA-API バックエンド。
デバイスドライバーが VDPAU をサポートしていない場合に VDPAU を使うには:
- libvdpau-va-gl – VA-API の VDPAU バックエンド (H.264 のみサポート)。
確認
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 の設定
VA-API のドライバーは自動で認識されます [12]。使用されているドライバーを確認する方法は確認を見てください。LIBVA_DRIVER_NAME
環境変数を設定することで使用するドライバーを上書きできます:
- Intel Graphics:
- libva-intel-driver の場合は
i965
を使ってください。 - intel-media-driver の場合は
iHD
を使ってください。
- libva-intel-driver の場合は
- NVIDIA:
- ATI/AMD:
- AMDGPU の場合は
radeonsi
を使ってください。 - AMD Catalyst の場合は
fglrx
を使ってください。
- AMDGPU の場合は
VDPAU の設定
VDPAU で使用されるドライバーは自動的に認識されますが、VDPAU_DRIVER
環境変数を使うことで上書きすることができます。
使用しているビデオドライバーにあわせて適切なドライバーの名前を指定してください:
- Intel Graphics や AMD Catalyst の場合
va_gl
に設定する必要があります。 - オープンソースの AMD/ATI ドライバーの場合、使用している GPU にあわせて適切なドライバーを設定してください。確認を参照。
- オープンソースの Nouveau ドライバーの場合は
nouveau
に設定してください。 - NVIDIA のプロプライエタリドライバーの場合は
nvidia
に設定してください。
トラブルシューティング
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
パラメータを追加することでも解決できます。