「ハードウェアビデオアクセラレーション」の版間の差分
(同期) |
(同期) |
||
(他の1人の利用者による、間の1版が非表示) | |||
12行目: | 12行目: | ||
* [https://gpuopen.com/advanced-media-framework/ Advanced Media Framework SDK] (AMF) は、[[AMDGPU PRO]] を使用してマルチメディア処理のために AMD GPU に「部分的に」アクセスできるようにするオープンソースのフレームワークです。AMD によって開発されました。 |
* [https://gpuopen.com/advanced-media-framework/ Advanced Media Framework SDK] (AMF) は、[[AMDGPU PRO]] を使用してマルチメディア処理のために AMD GPU に「部分的に」アクセスできるようにするオープンソースのフレームワークです。AMD によって開発されました。 |
||
* [[Wikipedia:Nvidia NVDEC|NVDEC]]/[[Wikipedia:Nvidia NVENC|NVENC]] - Fermi 以降の NVIDIA GPU によって使われている、ハードウェアビデオアクセラレーションのためのプロプライエタリ API。 |
* [[Wikipedia:Nvidia NVDEC|NVDEC]]/[[Wikipedia:Nvidia NVENC|NVENC]] - Fermi 以降の NVIDIA GPU によって使われている、ハードウェアビデオアクセラレーションのためのプロプライエタリ API。 |
||
+ | * [https://www.khronos.org/blog/an-introduction-to-vulkan-video Vulkan Video] は、ハードウェアアクセラレートされたビデオエンコードとデコードをサポートするために開発された [[Vulkan]] グラフィックス API の拡張です。 |
||
ドライバとアプリケーションのサポートの包括的な概要については、[[#比較一覧]] を参照してください。 |
ドライバとアプリケーションのサポートの包括的な概要については、[[#比較一覧]] を参照してください。 |
||
18行目: | 19行目: | ||
=== Intel === |
=== Intel === |
||
+ | |||
+ | ==== VA-API ==== |
||
[[Intel Graphics]] オープンソースドライバーは VA-API に対応しています: |
[[Intel Graphics]] オープンソースドライバーは VA-API に対応しています: |
||
25行目: | 28行目: | ||
* 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-git}} によってサポートされています。 |
* [[Wikipedia:Haswell (microarchitecture)#Haswell Refresh|Haswell Refresh]] から Skylake までの VP9 デコードと、Broadwell から Skylake までのハイブリッド VP8 エンコードは {{AUR|intel-hybrid-codec-driver-git}} によってサポートされています。 |
||
+ | |||
− | * Skylake 及びそれ以降は {{Pkg|linux-firmware}} も必要です。 |
||
+ | {{Note|Skylake 及びそれ以降は {{Pkg|linux-firmware}} も必要です。}} |
||
[https://www.intel.com/content/www/us/en/developer/articles/technical/linuxmedia-vaapi.html VAAPI がサポートするハードウェアと機能] もご覧ください。 |
[https://www.intel.com/content/www/us/en/developer/articles/technical/linuxmedia-vaapi.html VAAPI がサポートするハードウェアと機能] もご覧ください。 |
||
+ | |||
+ | ==== Vulkan ==== |
||
+ | |||
+ | ANV オープンソース [[vulkan]] ドライバは、{{Pkg|vulkan-intel}} 経由で Vulkan Video のサポートを提供しています。 |
||
+ | |||
+ | {{Note|Vulkan Video を有効化するには、追加の設定が必要です。[[#Vulkan Video の設定]] を参照してください。}} |
||
+ | |||
+ | ==== Intel Video Processing Library (Intel VPL) ==== |
||
+ | |||
+ | [https://github.com/intel/libvpl Intel VPL] を使用するには、ベースライブラリである {{Pkg|libvpl}} に加えて、以下のランタイム実装のうち少なくとも一つを[[インストール]]してください: |
||
+ | |||
+ | * {{Pkg|vpl-gpu-rt}}: Tiger Lake 及びそれ以降の GPU に対するサポートを提供します |
||
+ | * {{Pkg|intel-media-sdk}} (開発中止): それより古い Intel GPU に対するサポートを提供します |
||
=== NVIDIA === |
=== NVIDIA === |
||
41行目: | 58行目: | ||
* [[Wikipedia:Fermi_(microarchitecture)|Fermi]] 及びそれ以降の GPU における NVDEC [https://developer.download.nvidia.com/assets/cuda/files/NVIDIA_Video_Decoder.pdf] |
* [[Wikipedia:Fermi_(microarchitecture)|Fermi]] 及びそれ以降の GPU における NVDEC [https://developer.download.nvidia.com/assets/cuda/files/NVIDIA_Video_Decoder.pdf] |
||
* [[Wikipedia:Kepler_(microarchitecture)|Kepler]] 及びそれ以降の GPU における NVENC |
* [[Wikipedia:Kepler_(microarchitecture)|Kepler]] 及びそれ以降の GPU における NVENC |
||
+ | * [[Wikipedia:Pascal_(microarchitecture)|Pascal]] 及びそれ以降の GPU における Vulkan Video [https://developer.nvidia.com/vulkan/video/get-started] |
||
=== AMD/ATI === |
=== AMD/ATI === |
||
48行目: | 66行目: | ||
* VA-API は Radeon HD 2000 及びそれ以降の GPU。 |
* VA-API は Radeon HD 2000 及びそれ以降の GPU。 |
||
* VDPAU は Radeon R600 及びそれ以降の GPU。 |
* VDPAU は Radeon R600 及びそれ以降の GPU。 |
||
+ | |||
+ | RADV オープンソース [[vulkan]] ドライバは、{{Pkg|vulkan-radeon}} 経由で Vulkan Video サポートを提供しています。 |
||
+ | |||
+ | {{Note|Vulkan Video を有効化するには、追加の設定が必要です。[[#Vulkan Video の設定]] を参照してください。}} |
||
[[AMDGPU PRO]] プロプライエタリドライバーは AMDGPU ドライバー上で動作し、AMF に加えて VA-API と VDPAU に対応しています。 |
[[AMDGPU PRO]] プロプライエタリドライバーは AMDGPU ドライバー上で動作し、AMF に加えて VA-API と VDPAU に対応しています。 |
||
63行目: | 85行目: | ||
* {{App|nvidia-vaapi-driver|VA-API を提供する [[CUDA]] NVDEC ベースのバックエンド。|https://github.com/elFarto/nvidia-vaapi-driver/|{{Pkg|libva-nvidia-driver}}}} |
* {{App|nvidia-vaapi-driver|VA-API を提供する [[CUDA]] NVDEC ベースのバックエンド。|https://github.com/elFarto/nvidia-vaapi-driver/|{{Pkg|libva-nvidia-driver}}}} |
||
− | {{Note| |
+ | {{Note|{{Pkg|libva-nvidia-driver}} 実装によってハードウェアビデオデコードを使えるようにはなりますが、NVIDIA の電源管理に対する現状の制限により、[https://github.com/elFarto/nvidia-vaapi-driver#upstream-regression CPU によるビデオデコードよりも多くの電力を消費します]。}} |
== 確認 == |
== 確認 == |
||
163行目: | 185行目: | ||
VC1_ADVANCED 4 9216 2048 1152 |
VC1_ADVANCED 4 9216 2048 1152 |
||
... |
... |
||
+ | </nowiki>}} |
||
+ | |||
+ | === Vulkan Video の確認 === |
||
+ | |||
+ | {{pkg|vulkan-tools}} をインストールし、''vulkaninfo'' を使ってビデオ処理拡張が利用可能であるかを確認してください: |
||
+ | |||
+ | {{hc|$ vulkaninfo {{!}} grep VK_KHR_video_|<nowiki> |
||
+ | VK_KHR_video_decode_av1 : extension revision 1 |
||
+ | VK_KHR_video_decode_h264 : extension revision 9 |
||
+ | VK_KHR_video_decode_h265 : extension revision 8 |
||
+ | VK_KHR_video_decode_queue : extension revision 8 |
||
+ | VK_KHR_video_encode_h264 : extension revision 14 |
||
+ | VK_KHR_video_encode_h265 : extension revision 14 |
||
+ | VK_KHR_video_encode_queue : extension revision 12 |
||
+ | VK_KHR_video_maintenance1 : extension revision 1 |
||
+ | VK_KHR_video_queue : extension revision 8 |
||
</nowiki>}} |
</nowiki>}} |
||
218行目: | 256行目: | ||
* ハイブリッド構成 (NVIDIA と AMD の両方のカードが搭載されている) 場合、{{ic|DRI_PRIME}} [[環境変数]]を設定する必要があるかもしれません。詳しくは [[PRIME]] を参照。 |
* ハイブリッド構成 (NVIDIA と AMD の両方のカードが搭載されている) 場合、{{ic|DRI_PRIME}} [[環境変数]]を設定する必要があるかもしれません。詳しくは [[PRIME]] を参照。 |
||
}} |
}} |
||
+ | |||
+ | === Vulkan Video の設定 === |
||
+ | |||
+ | * Intel: {{Pkg|vulkan-intel}} の Vulkan Video サポートは {{ic|1=ANV_VIDEO_DECODE=1}} [[環境変数]]で有効化できます。 |
||
+ | * [[AMD]]: {{Pkg|vulkan-radeon}} の Vulkan Video サポートを有効化するには、{{ic|RADV_PERFTEST}} [[環境変数]]を {{ic|video_decode,video_encode}} に設定してください。 |
||
=== アプリケーションの設定 === |
=== アプリケーションの設定 === |
||
350行目: | 393行目: | ||
! VP9 8bit |
! VP9 8bit |
||
| {{G|Kaby Lake 以降}} |
| {{G|Kaby Lake 以降}} |
||
− | | rowspan=2 {{G| |
+ | | rowspan=2 {{G|Ice Lake 以降}} |
|- |
|- |
||
! VP9 10bit & 12bit |
! VP9 10bit & 12bit |
||
360行目: | 403行目: | ||
|} |
|} |
||
− | + | # GeForce GTX 750 まで。 |
|
− | + | # 代わりに {{aur|libva-intel-driver-g45-h264}} によってサポートされています。 |
|
− | + | # Hybrid VP8 エンコーダと VP9 デコーダは {{AUR|intel-hybrid-codec-driver-git}} によってサポートされています。 |
|
− | + | # MPEG-4 Part 2 は VAAPI の制限のためデフォルトで無効化されています。使用してみるには、{{ic|1=VAAPI_MPEG4_ENABLED=true}} [[環境変数]]を設定してください。 |
|
− | + | # NVIDIA CUDA アダプタコーデックのサポートは活発に開発中であり、これは変更される可能性があります [https://github.com/elFarto/nvidia-vaapi-driver/issues/116]。 |
|
=== VDPAU ドライバ === |
=== VDPAU ドライバ === |
||
426行目: | 469行目: | ||
|} |
|} |
||
− | + | # GeForce GTX 750 まで。 |
|
− | + | # GeForce 8800 Ultra、8800 GTX、8800 GTS (320/640 MB) は[[Wikipedia:Nvidia PureVideo|除く]]。 |
|
− | + | # GeForce GTX 970 と GTX 980 は除く。 |
|
− | + | # NVIDIA の実装は8ビットストリームまでに制限されています [https://forums.developer.nvidia.com/t/vdpau-expose-hevc-main10-support-where-available-on-die/43163] [https://us.download.nvidia.com/XFree86/Linux-x86_64/410.57/README/vdpausupport.html#vdpau-implementation-limits]。 |
|
− | + | # ドライババージョン 510 から [https://www.phoronix.com/scan.php?page=news_item&px=NVIDIA-510-Linux-Beta] |
|
=== NVIDIA ドライバのみ === |
=== NVIDIA ドライバのみ === |
||
472行目: | 515行目: | ||
|} |
|} |
||
− | + | # GM108 は除く (未サポート) |
|
− | + | # GM108 と GP108 は除く (未サポート) |
|
− | + | # A100 は除く (未サポート) |
|
=== アプリケーションサポート === |
=== アプリケーションサポート === |
||
480行目: | 523行目: | ||
{| class="wikitable" |
{| class="wikitable" |
||
! rowspan=2 | アプリケーション |
! rowspan=2 | アプリケーション |
||
− | ! colspan= |
+ | ! colspan=4 | デコード |
− | ! colspan= |
+ | ! colspan=3 | エンコード |
! rowspan=2 | ドキュメント |
! rowspan=2 | ドキュメント |
||
|- |
|- |
||
487行目: | 530行目: | ||
! VDPAU |
! VDPAU |
||
! NVDEC |
! NVDEC |
||
+ | ! Vulkan |
||
! VA-API |
! VA-API |
||
! NVENC |
! NVENC |
||
+ | ! Vulkan |
||
|- |
|- |
||
! [[FFmpeg]] |
! [[FFmpeg]] |
||
+ | | {{Yes}} |
||
+ | | {{Yes}} |
||
| {{Yes}} |
| {{Yes}} |
||
| {{Yes}} |
| {{Yes}} |
||
504行目: | 551行目: | ||
| {{Yes}} |
| {{Yes}} |
||
| {{Yes}} |
| {{Yes}} |
||
+ | | {{Yes}} |
||
+ | | {{No|1=https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7197}} |
||
| [[GStreamer#ハードウェアアクセラレーション]] |
| [[GStreamer#ハードウェアアクセラレーション]] |
||
|- |
|- |
||
510行目: | 559行目: | ||
| {{Yes}} |
| {{Yes}} |
||
| {{No}} |
| {{No}} |
||
+ | | {{No}} |
||
+ | | {{-}} |
||
| {{-}} |
| {{-}} |
||
| {{-}} |
| {{-}} |
||
518行目: | 569行目: | ||
| {{Yes}} |
| {{Yes}} |
||
| {{Yes}} |
| {{Yes}} |
||
+ | | {{Yes}} |
||
+ | | {{-}} |
||
| {{-}} |
| {{-}} |
||
| {{-}} |
| {{-}} |
||
526行目: | 579行目: | ||
| {{Yes}} |
| {{Yes}} |
||
| {{No}} |
| {{No}} |
||
+ | | {{No|1=https://code.videolan.org/videolan/vlc/-/issues/28362}} |
||
+ | | {{-}} |
||
| {{-}} |
| {{-}} |
||
| {{-}} |
| {{-}} |
||
531行目: | 586行目: | ||
|- |
|- |
||
! [[MPlayer]] |
! [[MPlayer]] |
||
− | | {{ |
+ | | {{No}} |
| {{Yes}} |
| {{Yes}} |
||
| {{No}} |
| {{No}} |
||
+ | | {{No}} |
||
+ | | {{-}} |
||
| {{-}} |
| {{-}} |
||
| {{-}} |
| {{-}} |
||
539行目: | 596行目: | ||
|- |
|- |
||
! [[Flash]] |
! [[Flash]] |
||
− | | {{No}}<sup> |
+ | | {{No}}<sup>1</sup> |
− | | {{Yes}}<sup> |
+ | | {{Yes}}<sup>1</sup> |
| {{No}} |
| {{No}} |
||
+ | | {{No}} |
||
+ | | {{-}} |
||
| {{-}} |
| {{-}} |
||
| {{-}} |
| {{-}} |
||
548行目: | 607行目: | ||
! [[Chromium]] |
! [[Chromium]] |
||
| {{Yes}} |
| {{Yes}} |
||
+ | | {{No}} |
||
| {{No}} |
| {{No}} |
||
| {{No}} |
| {{No}} |
||
| {{Yes}} |
| {{Yes}} |
||
+ | | {{No}} |
||
| {{No}} |
| {{No}} |
||
| [[Chromium#ハードウェアビデオアクセラレーション]] |
| [[Chromium#ハードウェアビデオアクセラレーション]] |
||
558行目: | 619行目: | ||
| {{No}} |
| {{No}} |
||
| {{No}} |
| {{No}} |
||
+ | | {{No|1=https://bugzilla.mozilla.org/show_bug.cgi?id=1753129}} |
||
| {{No|1=https://bugzilla.mozilla.org/show_bug.cgi?id=1658900}} |
| {{No|1=https://bugzilla.mozilla.org/show_bug.cgi?id=1658900}} |
||
+ | | {{No}} |
||
| {{No}} |
| {{No}} |
||
| [[Firefox#ハードウェアビデオアクセラレーション]] |
| [[Firefox#ハードウェアビデオアクセラレーション]] |
||
|- |
|- |
||
! [[GNOME/Web]] |
! [[GNOME/Web]] |
||
− | | colspan= |
+ | | colspan=4 {{C|GStreamer}} |
+ | | {{C|?}} |
||
| {{C|?}} |
| {{C|?}} |
||
| {{C|?}} |
| {{C|?}} |
||
569行目: | 633行目: | ||
|} |
|} |
||
+ | # VDPAU は NPAPI プラグインによってのみサポートされています。部分的な VA-API と VDPAU アクセラレーションを提供する、PPAPI プラグインから NPAPI ブラウザへの実験的なアダプタが利用できます。 |
||
− | * <sup>1</sup> VA-API サポートは代わりに {{AUR|mplayer-vaapi}} によって提供されています。 |
||
− | * <sup>2</sup> VDPAU は NPAPI プラグインによってのみサポートされています。部分的な VA-API と VDPAU アクセラレーションを提供する、PPAPI プラグインから NPAPI ブラウザへの実験的なアダプタが利用できます。 |
||
− | {{TranslationStatus|Hardware video acceleration| |
+ | {{TranslationStatus|Hardware video acceleration|2025-04-01|829571}} |
2025年4月1日 (火) 06:25時点における最新版
ハードウェアビデオアクセラレーションにより、ビデオカードで動画をデコード/エンコードすることができ、CPU の負担を下げて電力を節約することができます。
Linux でこれを実現する方法は複数存在します:
- Video Acceleration API (VA-API) はハードウェア支援による動画エンコード・デコードの両方を実現する仕様とオープンソースライブラリです。Intel によって開発されました。
- Video Decode and Presentation API for Unix (VDPAU) は GPU ビデオハードウェアに動画のデコードやポストプロセス処理をオフロードするオープンソースのライブラリです。NVIDIA によって開発されました。
- Advanced Media Framework SDK (AMF) は、AMDGPU PRO を使用してマルチメディア処理のために AMD GPU に「部分的に」アクセスできるようにするオープンソースのフレームワークです。AMD によって開発されました。
- NVDEC/NVENC - Fermi 以降の NVIDIA GPU によって使われている、ハードウェアビデオアクセラレーションのためのプロプライエタリ API。
- Vulkan Video は、ハードウェアアクセラレートされたビデオエンコードとデコードをサポートするために開発された Vulkan グラフィックス API の拡張です。
ドライバとアプリケーションのサポートの包括的な概要については、#比較一覧 を参照してください。
インストール
Intel
VA-API
Intel Graphics オープンソースドライバーは VA-API に対応しています:
- Broadwell (2014) 及びそれ以降の HD Graphics シリーズ (例: Intel Arc) は intel-media-driver によってサポートされています。
- Coffee Lake (2017) までの GMA 4500 (2008) は libva-intel-driver によってサポートされています。
- GMA 4500 の H.264 デコードは libva-intel-driver-g45-h264AUR によってサポートされています。Intel Graphics#GMA 4500 での H.264 デコードのハードウェアアクセラレーション を参照。
- Haswell Refresh から Skylake までの VP9 デコードと、Broadwell から Skylake までのハイブリッド VP8 エンコードは intel-hybrid-codec-driver-gitAUR によってサポートされています。
VAAPI がサポートするハードウェアと機能 もご覧ください。
Vulkan
ANV オープンソース vulkan ドライバは、vulkan-intel 経由で Vulkan Video のサポートを提供しています。
Intel Video Processing Library (Intel VPL)
Intel VPL を使用するには、ベースライブラリである libvpl に加えて、以下のランタイム実装のうち少なくとも一つをインストールしてください:
- vpl-gpu-rt: Tiger Lake 及びそれ以降の GPU に対するサポートを提供します
- intel-media-sdk (開発中止): それより古い Intel GPU に対するサポートを提供します
NVIDIA
Nouveau オープンソースドライバーは VA-API と VDPAU に対応しています:
- GeForce GTX 750 までの GeForce 8 シリーズ及びそれ以降の GPU は mesa によってサポートされています。
- (現在 NVIDIA のバイナリドライバーから抽出される) nouveau-fwAUR ファームウェアパッケージが 必要 です。
NVIDIA プロプライエタリドライバは nvidia-utils によってサポートされています:
- GeForce 8 シリーズ及びそれ以降の GPU における VDPAU
- Fermi 及びそれ以降の GPU における NVDEC [1]
- Kepler 及びそれ以降の GPU における NVENC
- Pascal 及びそれ以降の GPU における Vulkan Video [2]
AMD/ATI
AMD と ATI オープンソースドライバーは mesa によって VA-API と VDPAU をサポートしています:
- VA-API は Radeon HD 2000 及びそれ以降の GPU。
- VDPAU は Radeon R600 及びそれ以降の GPU。
RADV オープンソース vulkan ドライバは、vulkan-radeon 経由で Vulkan Video サポートを提供しています。
AMDGPU PRO プロプライエタリドライバーは AMDGPU ドライバー上で動作し、AMF に加えて VA-API と VDPAU に対応しています。
- Fiji 及びそれ以降の GPU における AMF は amf-amdgpu-proAUR によってサポートされています。
変換レイヤー
- libvdpau-va-gl — OpenGL/VAAPI バックエンドを用いた VDPAU ドライバ。H.264 のみ。
- nvidia-vaapi-driver — VA-API を提供する CUDA NVDEC ベースのバックエンド。
確認
設定せずともシステムが完璧に動作する場合があります。なので、このセクションから読み始めて、システムの確認をすると良いでしょう。
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 ...
Vulkan Video の確認
vulkan-tools をインストールし、vulkaninfo を使ってビデオ処理拡張が利用可能であるかを確認してください:
$ vulkaninfo | grep VK_KHR_video_
VK_KHR_video_decode_av1 : extension revision 1 VK_KHR_video_decode_h264 : extension revision 9 VK_KHR_video_decode_h265 : extension revision 8 VK_KHR_video_decode_queue : extension revision 8 VK_KHR_video_encode_h264 : extension revision 14 VK_KHR_video_encode_h265 : extension revision 14 VK_KHR_video_encode_queue : extension revision 12 VK_KHR_video_maintenance1 : extension revision 1 VK_KHR_video_queue : extension revision 8
設定
ビデオドライバは 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 のデフォルトです。
しかし、これは 設定 を表すものではありません。上記の値は、オーバーライドしたとしても変更されません。
VA-API の設定
LIBVA_DRIVER_NAME
環境変数 を使うことで、VA-API 用に使用するドライバをオーバーライドできます:
- Intel Graphics:
- libva-intel-driver の場合は
i965
を使ってください。 - intel-media-driver の場合は
iHD
を使ってください。
- libva-intel-driver の場合は
- NVIDIA:
- AMD:
- AMDGPU ドライバの場合は
radeonsi
を使ってください。
- AMDGPU ドライバの場合は
VDPAU の設定
VDPAU_DRIVER
環境変数を使うことで、VDPAU 用に使用するドライバをオーバーライドできます。
適切なドライバ名は、あなたのセットアップに依存します:
- Intel graphics の場合、
va_gl
に設定する必要があります。 - オープンソースの AMD ドライバの場合、
radeonsi
に設定してください。 - オープンソースの Nouveau ドライバの場合、
nouveau
に設定してください。 - NVIDIA のプロプライエタリなバージョンの場合、
nvidia
に設定してください。
Vulkan Video の設定
- Intel: vulkan-intel の Vulkan Video サポートは
ANV_VIDEO_DECODE=1
環境変数で有効化できます。 - AMD: vulkan-radeon の Vulkan Video サポートを有効化するには、
RADV_PERFTEST
環境変数をvideo_decode,video_encode
に設定してください。
アプリケーションの設定
マルチメディアフレームワーク:
ビデオプレイヤ:
ウェブブラウザ:
マルチメディア録画/ストリーミング:
トラブルシューティング
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
環境変数を設定してください。[4]
比較一覧
VA-API ドライバ
コーデック | libva-intel-driver [5] | intel-media-driver [6] | mesa [7] [8] | libva-nvidia-driver (NVDEC アダプタ) |
---|---|---|---|---|
デコード | ||||
MPEG-2 | GMA 4500 以降 | Broadwell 以降 | Radeon HD 6000 以降 GeForce 8 以降1 |
#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 | |
VP9 8bit | Broxton 以降 Hybrid: Haswell refresh から Skylake3 |
Broxton/Apollo Lake 以降 | Raven Ridge + Radeon RX 5000 以降 | |
VP9 10bit & 12bit | Kaby Lake 以降 | Kaby Lake 以降 | ||
AV1 8bit & 10bit | No | Tiger Lake 以降 | Radeon RX 6600 以上/以降 | |
エンコード | ||||
MPEG-2 | Ivy Bridge 以降 | Broadwell 以降 Broxton/Apollo Lake を除く |
No | No5 |
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 以降 | Ice Lake 以降 | ||
VP9 10bit & 12bit | No | |||
AV1 8bit & 10bit | Alchemist 以降 | Radeon RX 7900 以上/以降 |
- GeForce GTX 750 まで。
- 代わりに libva-intel-driver-g45-h264AUR によってサポートされています。
- Hybrid VP8 エンコーダと VP9 デコーダは intel-hybrid-codec-driver-gitAUR によってサポートされています。
- MPEG-4 Part 2 は VAAPI の制限のためデフォルトで無効化されています。使用してみるには、
VAAPI_MPEG4_ENABLED=true
環境変数を設定してください。 - NVIDIA CUDA アダプタコーデックのサポートは活発に開発中であり、これは変更される可能性があります [9]。
VDPAU ドライバ
コーデック | 色深度 | mesa [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 |
- GeForce GTX 750 まで。
- GeForce 8800 Ultra、8800 GTX、8800 GTS (320/640 MB) は除く。
- GeForce GTX 970 と GTX 980 は除く。
- NVIDIA の実装は8ビットストリームまでに制限されています [12] [13]。
- ドライババージョン 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 以降 |
- GM108 は除く (未サポート)
- GM108 と GP108 は除く (未サポート)
- A100 は除く (未サポート)
アプリケーションサポート
アプリケーション | デコード | エンコード | ドキュメント | |||||
---|---|---|---|---|---|---|---|---|
VA-API | VDPAU | NVDEC | Vulkan | VA-API | NVENC | Vulkan | ||
FFmpeg | Yes | Yes | Yes | Yes | Yes | Yes | Yes | FFmpeg#ハードウェアビデオアクセラレーション |
GStreamer | Yes | No | Yes | Yes | Yes | Yes | No | GStreamer#ハードウェアアクセラレーション |
Kodi | Yes | Yes | No | No | – | – | – | Kodi#ヒントとテクニック |
mpv | Yes | Yes | Yes | Yes | – | – | – | mpv#ハードウェアデコード |
VLC media player | Yes | Yes | No | No | – | – | – | VLC media player#ハードウェアアクセラレーションのサポート |
MPlayer | No | Yes | No | No | – | – | – | MPlayer#ハードウェアアクセラレーション |
Flash | No1 | Yes1 | No | No | – | – | – | ブラウザプラグイン#Adobe Flash Player |
Chromium | Yes | No | No | No | Yes | No | No | Chromium#ハードウェアビデオアクセラレーション |
Firefox | Yes | No | No | No | No | No | No | Firefox#ハードウェアビデオアクセラレーション |
GNOME/Web | GStreamer | ? | ? | ? | GNOME Web#ビデオ |
- VDPAU は NPAPI プラグインによってのみサポートされています。部分的な VA-API と VDPAU アクセラレーションを提供する、PPAPI プラグインから NPAPI ブラウザへの実験的なアダプタが利用できます。