「ハードウェアビデオアクセラレーション」の版間の差分
同期 |
同期 |
||
| (3人の利用者による、間の8版が非表示) | |||
| 1行目: | 1行目: | ||
[[Category:グラフィック]] |
[[Category:グラフィックス]] |
||
[[Category:X サーバー]] |
[[Category:X サーバー]] |
||
[[en:Hardware video acceleration]] |
[[en:Hardware video acceleration]] |
||
| 10行目: | 10行目: | ||
* [[Wikipedia:Video Acceleration API|Video Acceleration API]] (VA-API) はハードウェア支援による動画エンコード・デコードの両方を実現する仕様とオープンソースライブラリです。Intel によって開発されました。 |
* [[Wikipedia:Video Acceleration API|Video Acceleration API]] (VA-API) はハードウェア支援による動画エンコード・デコードの両方を実現する仕様とオープンソースライブラリです。Intel によって開発されました。 |
||
* [[Wikipedia:VDPAU|Video Decode and Presentation API for Unix]] (VDPAU) は GPU ビデオハードウェアに動画のデコードやポストプロセス処理をオフロードするオープンソースのライブラリです。NVIDIA によって開発されました。 |
* [[Wikipedia:VDPAU|Video Decode and Presentation API for Unix]] (VDPAU) は GPU ビデオハードウェアに動画のデコードやポストプロセス処理をオフロードするオープンソースのライブラリです。NVIDIA によって開発されました。 |
||
* [https://gpuopen.com/advanced-media-framework/ Advanced Media Framework] (AMF) は、 |
* [https://gpuopen.com/advanced-media-framework/ Advanced Media Framework SDK] (AMF) は、マルチメディア処理のために 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 に対応しています: |
||
| 23行目: | 26行目: | ||
* [https://github.com/intel/media-driver/#supported-platforms Broadwell] [[wikipedia:Template:Intel_processor_roadmap|(2014)]] 及びそれ以降の HD Graphics シリーズ (例: Intel Arc) は {{Pkg|intel-media-driver}} によってサポートされています。 |
* [https://github.com/intel/media-driver/#supported-platforms Broadwell] [[wikipedia:Template:Intel_processor_roadmap|(2014)]] 及びそれ以降の HD Graphics シリーズ (例: Intel Arc) は {{Pkg|intel-media-driver}} によってサポートされています。 |
||
* [[wikipedia:Coffee_Lake|Coffee Lake]] (2017) までの GMA 4500 (2008) は {{Pkg|libva-intel-driver}} によってサポートされています。 |
* [[wikipedia:Coffee_Lake|Coffee Lake]] (2017) までの GMA 4500 (2008) は {{Pkg|libva-intel-driver}} によってサポートされています。 |
||
* GMA 4500 の H.264 デコードは {{AUR|libva-intel-driver-g45-h264}} によってサポートされています。[[Intel Graphics#GMA 4500 での H.264 デコードのハードウェアアクセラレーション]] を参照。 |
|||
* [[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-intel}} も必要です。}} |
|||
[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 Video ==== |
|||
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 === |
||
[[Nouveau]] オープンソースドライバーは VA-API |
[[Nouveau]] オープンソースドライバーは VA-API に対応しています: |
||
* GeForce GTX 750 までの GeForce 8 シリーズ及びそれ以降の GPU は {{Pkg| |
* GeForce GTX 750 までの GeForce 8 シリーズ及びそれ以降の GPU は {{Pkg|mesa}} によってサポートされています。 |
||
* (現在 NVIDIA のバイナリドライバーから抽出される) {{AUR|nouveau-fw}} ファームウェアパッケージが [https://nouveau.freedesktop.org/wiki/VideoAcceleration/#firmware 必要] です。 |
* (現在 NVIDIA のバイナリドライバーから抽出される) {{AUR|nouveau-fw}} ファームウェアパッケージが [https://nouveau.freedesktop.org/wiki/VideoAcceleration/#firmware 必要] です。 |
||
[[NVIDIA]] プロプライエタリドライバは {{Pkg|nvidia-utils}} によってサポート |
[[NVIDIA]] プロプライエタリドライバは {{Pkg|nvidia-utils}} によって以下をサポートしています: |
||
* [[Wikipedia:GeForce 8 series|GeForce 8 シリーズ]]及びそれ以降の GPU における VDPAU |
* [[Wikipedia:GeForce 8 series|GeForce 8 シリーズ]]及びそれ以降の GPU における VDPAU |
||
* [[Wikipedia: |
* [[Wikipedia:Fermi (microarchitecture)|Fermi]] 及びそれ以降の GPU における NVDEC [https://developer.download.nvidia.com/assets/cuda/files/NVIDIA_Video_Decoder.pdf] |
||
* [[Wikipedia: |
* [[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 === |
||
[[AMD]] と [[ATI]] オープンソースドライバーは VA-API |
[[AMD]] と [[ATI]] オープンソースドライバーは {{Pkg|mesa}} によって VA-API をサポートしています: |
||
* VA-API は Radeon HD 2000 及びそれ以降の GPU。 |
|||
RADV オープンソース [[vulkan]] ドライバは、{{Pkg|vulkan-radeon}} 経由で Vulkan Video サポートを提供しています。 |
|||
* VDPAU は Radeon R600 及びそれ以降の GPU で {{Pkg|mesa-vdpau}} によってサポートされています。 |
|||
{{Out of date|最新の AMD Media Framework は、オープンソースドライバ以外に追加のプロプライエタリなパッケージをもはや必要としていません。しかし、AUR のパッケージは更新されておらず、オープンな [[AMDGPU]] ドライバを使用する新しい ''amf'' パッケージもアップロードされていません。}} |
|||
[[AMDGPU PRO]] プロプライエタリドライバーは AMDGPU ドライバー上で動作し、AMF に加えて VA-API と VDPAU に対応しています。 |
|||
* [[Wikipedia:Radeon Rx 300 series|Fiji]] 及びそれ以降の GPU における AMF は {{AUR|amf-amdgpu-pro}} によってサポートされています。 |
* [[Wikipedia:Radeon Rx 300 series|Fiji]] 及びそれ以降の GPU における AMF は {{AUR|amf-amdgpu-pro}} によってサポートされています。 |
||
{{Note| |
{{Note| |
||
* 場合によっては、あなたのアプリケーションが [[AMDGPU PRO]] [[Vulkan]] ドライバを使用するように強制する必要があります。 |
|||
* [[Wikipedia:High Efficiency Video Coding|HEVC]] エンコードは [[Wikipedia:Radeon RX 5000 series|Navi]] より古い GPU では利用できない場合があります。 |
* [[Wikipedia:High Efficiency Video Coding|HEVC]] エンコードは [[Wikipedia:Radeon RX 5000 series|Navi]] より古い GPU では利用できない場合があります。 |
||
}} |
}} |
||
=== |
=== 変換レイヤー === |
||
* {{App|libva-vdpau-driver|VA-API を提供する VDPAU ベースのバックエンド。|https://cgit.freedesktop.org/vaapi/vdpau-driver|{{Pkg|libva-vdpau-driver}}, {{AUR|libva-vdpau-driver-chromium}}{{Broken package link|package not found}}, {{AUR|libva-vdpau-driver-vp9-git}}}} |
|||
* {{App|libvdpau-va-gl|OpenGL/VAAPI バックエンドを用いた VDPAU ドライバ。H.264 のみ。|https://github.com/i-rinat/libvdpau-va-gl|{{Pkg|libvdpau-va-gl}}}} |
* {{App|libvdpau-va-gl|OpenGL/VAAPI バックエンドを用いた VDPAU ドライバ。H.264 のみ。|https://github.com/i-rinat/libvdpau-va-gl|{{Pkg|libvdpau-va-gl}}}} |
||
* {{App|nvidia-vaapi-driver|VA-API を提供する [[CUDA]] NVDEC ベースのバックエンド。|https://github.com/elFarto/nvidia-vaapi-driver/|{{Pkg|libva-nvidia-driver}}}} |
* {{App|nvidia-vaapi-driver|VA-API を提供する [[CUDA]] NVDEC ベースのバックエンド。|https://github.com/elFarto/nvidia-vaapi-driver/|{{Pkg|libva-nvidia-driver}}}} |
||
{{Note|{{Pkg|libva-nvidia-driver}} 実装によってハードウェアビデオデコードを使えるようにはなりますが、NVIDIA の電源管理に対する現状の制限により、デフォルトの設定では [https://github.com/elFarto/nvidia-vaapi-driver/issues/74 CPU によるビデオデコードよりも多くの電力を消費します]。 |
|||
{{Note|NVIDIA ドライバの 525 シリーズにはリグレッションがあり、VA-API が機能しなくなります。 [https://github.com/elFarto/nvidia-vaapi-driver/issues/126 nvidia-vaapi-driver#126] 修正されるまでの間、ドライバをバージョン 520 に[[ダウングレード]]するか、[https://github.com/elFarto/nvidia-vaapi-driver#direct-backend 実験的な direct-backend] を使用することができます。}} |
|||
回避策は、NVIDIA ドライババージョン 580.105.08 以降を使用し、環境変数 {{ic|CUDA_DISABLE_PERF_BOOST{{=}}1}} を設定することです。}} |
|||
== 確認 == |
== 確認 == |
||
| 73行目: | 90行目: | ||
* コマンドラインサポートのある [[mpv#ハードウェアデコード|mpv]] は、ハードウェアアクセラレーションをテストするのにぴったりです。{{ic|1=mpv --hwdec=auto ''video_filename''}} のログを見てください。詳細は [https://mpv.io/manual/stable/#options-hwdec hwdec] を参照。 |
* コマンドラインサポートのある [[mpv#ハードウェアデコード|mpv]] は、ハードウェアアクセラレーションをテストするのにぴったりです。{{ic|1=mpv --hwdec=auto ''video_filename''}} のログを見てください。詳細は [https://mpv.io/manual/stable/#options-hwdec hwdec] を参照。 |
||
* AMD、Intel、そして NVIDIA の場合、動画を再生しながら {{Pkg|nvtop}} を使うことで "DEC" (デコーダ) の使用率を確認できます。 |
* AMD、Intel、そして NVIDIA の場合、動画を再生しながら {{Pkg|nvtop}} を使うことで "DEC" (デコーダ) の使用率を確認できます。 |
||
* Intel GPU の場合、{{pkg|intel-gpu-tools}} を使って、{{ic|intel_gpu_top}} を root として実行することで、ビデオプレイバック中に GPU 使用率をモニタできます。ビデオバーが 0% よりも上にあれば、GPU のビデオデコーダ/エンコーダが使用されていることを示します。 |
* Intel GPU の場合、{{pkg|intel-gpu-tools}} を使って、{{ic|intel_gpu_top}} を root として実行することで、ビデオプレイバック中に GPU 使用率をモニタできます。ビデオバーが 0% よりも上にあれば、GPU のビデオデコーダ/エンコーダが使用されていることを示します。([[インテルグラフィックス#試験的な新しい Xe ドライバをテストする|新しい Xe ドライバ]]を使用している場合、{{ic|intel_gpu_top}} が[https://gitlab.freedesktop.org/drm/igt-gpu-tools/-/issues/174 エラーを出します]。確認するには {{ic|gputop}} を実行してみてください。[https://dri.freedesktop.org/docs/drm/gpu/i915.html#intel-gpu-basics vcs (Video Command Streamer) の値]が 0% より大きければ、GPU 動画デコード/エンコードが使用されていることを意味します。) |
||
* AMD GPU の場合、{{Pkg| |
* AMD GPU の場合、{{Pkg|amdgpu_top}} を使用して GPU 使用率をモニタできます。 |
||
* 任意の GPU において、{{Pkg|htop}} のようなツールで CPU 使用率を比較できます。特に、高解像度なビデオ (4k 以上) において、VA-API が有効化されていて動作しているときの CPU 使用率は、ノート PC や他の比較的低電力なデバイスにおいて劇的に低いはずです。 |
* 任意の GPU において、{{Pkg|htop}} のようなツールで CPU 使用率を比較できます。特に、高解像度なビデオ (4k 以上) において、VA-API が有効化されていて動作しているときの CPU 使用率は、ノート PC や他の比較的低電力なデバイスにおいて劇的に低いはずです。 |
||
}} |
}} |
||
| 140行目: | 157行目: | ||
display: :0 screen: 0 |
display: :0 screen: 0 |
||
API version: 1 |
API version: 1 |
||
Information string: |
Information string: OpenGL/VAAPI backend for VDPAU |
||
Video surface: |
Video surface: |
||
| 146行目: | 163行目: | ||
name width height types |
name width height types |
||
------------------------------------------- |
------------------------------------------- |
||
420 4096 4096 NV12 YV12 UYVY YUYV Y8U8V8A8 V8U8Y8A8 NV24 YV24 P010 P016 Y_U_V_444_16 |
|||
420 16384 16384 NV12 YV12 |
|||
422 4096 4096 NV12 YV12 UYVY YUYV Y8U8V8A8 V8U8Y8A8 NV24 YV24 P010 P016 Y_U_V_444_16 |
|||
422 16384 16384 UYVY YUYV |
|||
444 |
444 4096 4096 NV12 YV12 UYVY YUYV Y8U8V8A8 V8U8Y8A8 NV24 YV24 P010 P016 Y_U_V_444_16 |
||
420_16 4096 4096 NV12 YV12 UYVY YUYV Y8U8V8A8 V8U8Y8A8 NV24 YV24 P010 P016 Y_U_V_444_16 |
|||
422_16 4096 4096 NV12 YV12 UYVY YUYV Y8U8V8A8 V8U8Y8A8 NV24 YV24 P010 P016 Y_U_V_444_16 |
|||
444_16 4096 4096 NV12 YV12 UYVY YUYV Y8U8V8A8 V8U8Y8A8 NV24 YV24 P010 P016 Y_U_V_444_16 |
|||
Decoder capabilities: |
Decoder capabilities: |
||
| 155行目: | 175行目: | ||
---------------------------------------------------- |
---------------------------------------------------- |
||
MPEG1 --- not supported --- |
MPEG1 --- not supported --- |
||
MPEG2_SIMPLE |
MPEG2_SIMPLE --- not supported --- |
||
MPEG2_MAIN |
MPEG2_MAIN --- not supported --- |
||
H264_BASELINE |
H264_BASELINE 51 16384 2048 2048 |
||
H264_MAIN |
H264_MAIN 51 16384 2048 2048 |
||
H264_HIGH |
H264_HIGH 51 16384 2048 2048 |
||
VC1_SIMPLE |
VC1_SIMPLE --- not supported --- |
||
VC1_MAIN |
VC1_MAIN --- not supported --- |
||
VC1_ADVANCED |
VC1_ADVANCED --- not supported --- |
||
... |
... |
||
</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>}} |
||
== 設定 == |
== 設定 == |
||
{{Out of date|{{Pkg|mesa}} 25.3.0 以降、オープンソースドライバから VDPAU のサポートが[https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36632 削除されました]。以下の例の {{ic|radeonsi}} ドライバもその対象です。}} |
|||
ビデオドライバは VA-API と VDPAU の両方に対してハードウェアビデオアクセラレーションのサポートを自動的に有効化するはずですが、場合によっては手動で VA-API/VDPAU を手動で設定する必要があります。[[#確認]] セクションを見た場合にのみ、このセクションを読み進めてください。 |
ビデオドライバは VA-API と VDPAU の両方に対してハードウェアビデオアクセラレーションのサポートを自動的に有効化するはずですが、場合によっては手動で VA-API/VDPAU を手動で設定する必要があります。[[#確認]] セクションを見た場合にのみ、このセクションを読み進めてください。 |
||
| 185行目: | 223行目: | ||
=== VA-API の設定 === |
=== VA-API の設定 === |
||
{{ic|LIBVA_DRIVER_NAME}} [[環境変数]] を使うことで、VA-API 用に使用する |
{{ic|LIBVA_DRIVER_NAME}} [[環境変数]] を使うことで、VA-API 用に使用するドライバをオーバーライドできます: |
||
* [[Intel Graphics]]: |
* [[Intel Graphics]]: |
||
| 192行目: | 230行目: | ||
* NVIDIA: |
* NVIDIA: |
||
** [[Nouveau]] の場合は {{ic|nouveau}} を使ってください。 |
** [[Nouveau]] の場合は {{ic|nouveau}} を使ってください。 |
||
** [[NVIDIA]] VDPAU の場合は {{ic|vdpau}} を使ってください。 |
|||
** [[NVIDIA]] NVDEC の場合は {{ic|nvidia}} を使ってください。 |
** [[NVIDIA]] NVDEC の場合は {{ic|nvidia}} を使ってください。 |
||
* AMD: |
* AMD: |
||
| 201行目: | 238行目: | ||
* 一部のドライバーは互換性を保つために異なる名前を使っていることがあります。{{ic|sha1sum /usr/lib/dri/* {{!}} sort}} を実行することで確認できます。 |
* 一部のドライバーは互換性を保つために異なる名前を使っていることがあります。{{ic|sha1sum /usr/lib/dri/* {{!}} sort}} を実行することで確認できます。 |
||
* {{ic|LIBVA_DRIVERS_PATH}} を使うことで VA-API ドライバーのパスを上書きできます。 |
* {{ic|LIBVA_DRIVERS_PATH}} を使うことで VA-API ドライバーのパスを上書きできます。 |
||
* バージョン 12.0.1 から |
* バージョン 12.0.1 から Mesa は {{ic|gallium}} の代わりとして {{ic|radeonsi}} を提供しています。 |
||
}} |
}} |
||
| 210行目: | 247行目: | ||
適切なドライバ名は、あなたのセットアップに依存します: |
適切なドライバ名は、あなたのセットアップに依存します: |
||
* |
* オープンソースの AMD、Intel、Nouveau ドライバの場合、{{ic|va_gl}} に設定する[[#Failed to open VDPAU backend|必要があります]]。 |
||
* オープンソースの AMD ドライバの場合、あなたの GPU に合わせて適切なドライババージョンを設定してください。[[#確認]] を参照。 |
|||
* オープンソースの Nouveau ドライバの場合、{{ic|nouveau}} に設定してください。 |
|||
* NVIDIA のプロプライエタリなバージョンの場合、{{ic|nvidia}} に設定してください。 |
* NVIDIA のプロプライエタリなバージョンの場合、{{ic|nvidia}} に設定してください。 |
||
| 219行目: | 254行目: | ||
* 一部のドライバーは互換性を保つために異なる名前を使っていることがあります。{{ic|sha1sum /usr/lib/vdpau/*}} を実行することで確認できます。 |
* 一部のドライバーは互換性を保つために異なる名前を使っていることがあります。{{ic|sha1sum /usr/lib/vdpau/*}} を実行することで確認できます。 |
||
* ハイブリッド構成 (NVIDIA と AMD の両方のカードが搭載されている) 場合、{{ic|DRI_PRIME}} [[環境変数]]を設定する必要があるかもしれません。詳しくは [[PRIME]] を参照。 |
* ハイブリッド構成 (NVIDIA と AMD の両方のカードが搭載されている) 場合、{{ic|DRI_PRIME}} [[環境変数]]を設定する必要があるかもしれません。詳しくは [[PRIME]] を参照。 |
||
}} |
|||
=== Vulkan Video の設定 === |
|||
* [[インテルグラフィックス]]: {{Pkg|vulkan-intel}} の Vulkan Video サポートは {{ic|1=ANV_DEBUG=video-decode,video-encode}} [[環境変数]]で有効化できます。 |
|||
* [[AMD]]: {{Pkg|vulkan-radeon}} の Vulkan Video サポートは、Mesa 25 以降、VCN 2、3、4+ ではデフォルトで有効化されています。それより古いカードでサポートを強制的に有効化するには、{{ic|RADV_PERFTEST}} [[環境変数]]に {{ic|video_decode,video_encode}} を設定してください。 |
|||
{{Warning| |
|||
一部の古い GPU モデルは [[Mesa]] での Vulkan Video のサポートがありません。そのような GPU で Vulkan Video サポートを強制的に有効化すると、一部のアプリケーションがクラッシュします場合があります (例えば、[https://gitlab.archlinux.org/archlinux/packaging/packages/mpv/-/issues/20#note_340586 mpv])。 |
|||
}} |
}} |
||
| 250行目: | 294行目: | ||
適切なドライバを指すように {{ic|VDPAU_DRIVER}} 変数を設定する必要があります。[[#VDPAU の設定]] を参照。 |
適切なドライバを指すように {{ic|VDPAU_DRIVER}} 変数を設定する必要があります。[[#VDPAU の設定]] を参照。 |
||
{{Pkg|mesa}} 25.3.0 以降、VDPAU のサポートがオープンソースなドライバから[https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36632 削除されました] ({{ic|d3d12}}、{{ic|nouveau}}、{{ic|r600}}、{{ic|radeonsi}}、{{ic|virtio_gpu}})。以前にこれらのドライバを使用していた場合、それらのパッケージを[[#変換レイヤー]]に置き換えるか、VA-API を直接使うようにアプリケーションを設定する必要があります。 |
|||
=== VAAPI init failed === |
=== VAAPI init failed === |
||
| 259行目: | 305行目: | ||
=== AMDGPU ドライバーを使用したビデオデコード時の破損や歪み === |
=== AMDGPU ドライバーを使用したビデオデコード時の破損や歪み === |
||
[[AMDGPU]] ドライバーでビデオデコードの破損または歪みが発生する場合は、{{ic|1=allow_rgb10_configs=false}} |
[[AMDGPU]] ドライバーでビデオデコードの破損または歪みが発生する場合は、{{ic|1=allow_rgb10_configs=false}} [[環境変数]]を設定してください。[https://bugs.freedesktop.org/show_bug.cgi?id=106490] |
||
=== iHD 使用時に vainfo が失敗する === |
|||
以下のエラーが発生する場合: |
|||
{{hc|$ vainfo| |
|||
Trying display: wayland |
|||
Trying display: x11 |
|||
error: can't connect to X server! |
|||
Trying display: drm |
|||
libva error: dlopen of /usr/lib64/dri/iHD_drv_video.so failed: /usr/lib64/dri/iHD_drv_video.so: undefined symbol: _ZN6GmmLib16GmmClientContext9GmmGetAILEv |
|||
vainfo: VA-API version: 1.22 (libva 2.22.0) |
|||
vainfo: Driver version: Intel i965 driver for Intel(R) Coffee Lake - 2.4.1 |
|||
vainfo: Supported profile and entrypoints |
|||
[...] |
|||
}} |
|||
{{AUR|intel-media-driver-legacy}} をレガシーではないパッケージの代わりにインストールしてみてください。これは、{{AUR|intel-compute-runtime-legacy}} とも動作します。[https://aur.archlinux.org/packages/intel-compute-runtime-legacy-bin#comment-1024408] |
|||
== 比較一覧 == |
== 比較一覧 == |
||
| 269行目: | 333行目: | ||
! {{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|intel-media-driver}} [https://github.com/intel/media-driver/blob/master/README.md] |
||
! {{pkg| |
! {{pkg|mesa}} [https://www.x.org/wiki/RadeonFeature/] [https://nouveau.freedesktop.org/wiki/VideoAcceleration/] |
||
! {{pkg|libva-vdpau-driver}} <br> (VDPAU アダプタ) |
|||
! {{Pkg|libva-nvidia-driver}}<br> (NVDEC アダプタ) |
! {{Pkg|libva-nvidia-driver}}<br> (NVDEC アダプタ) |
||
|- |
|- |
||
! colspan= |
! colspan=5 | デコード |
||
|- |
|- |
||
! MPEG-2 |
! MPEG-2 |
||
| {{G|GMA 4500 |
| {{G|GMA 4500 から Ice Lake}} |
||
| {{G|Broadwell |
| {{G|Broadwell 及びそれより新しいもの}} |
||
| {{G|Radeon HD 6000 |
| {{G|Radeon HD 6000 - Radeon RX 6000<br>GeForce 8 から GTX 750}} |
||
| rowspan=6 | [[#VDPAU ドライバ]] を参照 |
|||
| rowspan=10 | [[#NVIDIA ドライバのみ]] を参照 |
| rowspan=10 | [[#NVIDIA ドライバのみ]] を参照 |
||
|- |
|- |
||
! H.263/MPEG-4 Visual<sup> |
! H.263/MPEG-4 Visual<sup>1</sup> |
||
| {{No}} |
| {{No}} |
||
| {{No}} |
| {{No}} |
||
| {{G|Radeon HD 6000 |
| {{G|Radeon HD 6000 - Radeon RX 6000}} |
||
|- |
|- |
||
! VC-1 |
! VC-1 |
||
| {{G|Sandy Bridge |
| {{G|Sandy Bridge から Ice Lake}} |
||
| rowspan=2 {{G|Broadwell |
| rowspan=2 {{G|Broadwell 及びそれより新しいもの}} |
||
| {{G|Radeon HD 2000 |
| {{G|Radeon HD 2000 - Radeon RX 6000<br>GeForce 9300 から GTX 750}} |
||
|- |
|- |
||
! H.264/MPEG-4 AVC |
! H.264/MPEG-4 AVC |
||
| {{G| |
| {{G|Ironlake から Ice Lake}} |
||
| {{G|Radeon HD 2000 |
| {{G|Radeon HD 2000 及びそれより新しいもの<br>GeForce 8 から GTX 750}} |
||
|- |
|- |
||
! H.265/HEVC 8bit |
! H.265/HEVC 8bit |
||
| {{G|Cherryview/Braswell |
| {{G|Cherryview/Braswell から Ice Lake}} |
||
| {{G|Skylake |
| {{G|Skylake and newer}} |
||
| {{G|Radeon R9 Fury |
| {{G|Radeon R9 Fury 及びそれより新しいもの}} |
||
|- |
|- |
||
! H.265/HEVC 10bit |
! H.265/HEVC 10bit |
||
| {{G|Broxton |
| {{G|Broxton から Ice Lake}} |
||
| {{G|Broxton/Apollo Lake |
| {{G|Broxton/Apollo Lake 及びそれより新しいもの}} |
||
| {{G|Radeon 400 |
| {{G|Radeon 400 及びそれより新しいもの}} |
||
|- |
|- |
||
! VP8 |
! VP8 |
||
| {{G|Broadwell |
| {{G|Broadwell から Ice Lake}} |
||
| {{G|Broadwell |
| {{G|Broadwell 及びそれより新しいもの}} |
||
| {{No}} |
|||
| {{No}} |
| {{No}} |
||
|- |
|- |
||
! VP9 8bit |
! VP9 8bit |
||
| {{G|Broxton |
| {{G|Broxton から Ice Lake <br> Hybrid: Haswell refresh から Skylake<sup>2</sup>}} |
||
| {{G|Broxton/Apollo Lake |
| {{G|Broxton/Apollo Lake 及びそれより新しいもの}} |
||
| rowspan=2 {{G|Raven Ridge + Radeon RX 5000 |
| rowspan=2 {{G|Raven Ridge + Radeon RX 5000 及びそれより新しいもの}} |
||
| [[#VDPAU ドライバ]] を参照<sup>5</sup> |
|||
|- |
|- |
||
! VP9 10bit & 12bit |
! VP9 10bit & 12bit |
||
| {{G|Kaby Lake |
| {{G|Kaby Lake から Ice Lake}} |
||
| {{G|Kaby Lake |
| {{G|Kaby Lake 及びそれより新しいもの}} |
||
| rowspan=2 {{No}} |
|||
|- |
|- |
||
! AV1 8bit & 10bit |
! AV1 8bit & 10bit |
||
| {{No}} |
| {{No}} |
||
| {{G|Tiger Lake |
| {{G|Tiger Lake 及びそれより新しいもの}} |
||
| {{G|Radeon RX 6600 以上/ |
| {{G|Radeon RX 6600 以上/それより新しいもの }} |
||
|- |
|- |
||
! colspan= |
! colspan=5 | エンコード |
||
|- |
|- |
||
! MPEG-2 |
! MPEG-2 |
||
| {{G|Ivy Bridge |
| {{G|Ivy Bridge から Ice Lake}} |
||
| {{G|Broadwell |
| {{G|Broadwell 及びそれより新しいもの<br>Broxton/Apollo Lake を除く}} |
||
| {{No}} |
| {{No}} |
||
| rowspan=8 {{ |
| rowspan=8 {{No}}<sup>3</sup> |
||
| rowspan=8 {{No}}<sup>6</sup> |
|||
|- |
|- |
||
! H.264/MPEG-4 AVC |
! H.264/MPEG-4 AVC |
||
| {{G|Sandy Bridge |
| {{G|Sandy Bridge から Ice Lake}} |
||
| {{G|Broadwell |
| {{G|Broadwell 及びそれより新しいもの}} |
||
| {{G|Radeon HD 7000 |
| {{G|Radeon HD 7000 及びそれより新しいもの}} |
||
|- |
|- |
||
! H.265/HEVC 8bit |
! H.265/HEVC 8bit |
||
| {{G|Skylake |
| {{G|Skylake から Ice Lake}} |
||
| {{G|Skylake |
| {{G|Skylake 及びそれより新しいもの}} |
||
| {{G|Radeon 400 |
| {{G|Radeon 400 及びそれより新しいもの}} |
||
|- |
|- |
||
! H.265/HEVC 10bit |
! H.265/HEVC 10bit |
||
| {{G|Kaby Lake |
| {{G|Kaby Lake から Ice Lake}} |
||
| rowspan=2 {{G|Kaby Lake |
| rowspan=2 {{G|Kaby Lake 及びそれより新しいもの}} |
||
| {{G|Raven Ridge + Radeon RX 5000 |
| {{G|Raven Ridge + Radeon RX 5000 及びそれより新しいもの}} |
||
|- |
|- |
||
! VP8 |
! VP8 |
||
| {{G|Cherryview/Braswell |
| {{G|Cherryview/Braswell から Ice Lake <br> Hybrid: Haswell から Skylake<sup>2</sup>}} |
||
| rowspan=3 {{No}} |
| rowspan=3 {{No}} |
||
|- |
|- |
||
! VP9 8bit |
! VP9 8bit |
||
| {{G|Kaby Lake |
| {{G|Kaby Lake から Ice Lake}} |
||
| rowspan=2 {{G| |
| rowspan=2 {{G|Ice Lake 及びそれより新しいもの}} |
||
|- |
|- |
||
! VP9 10bit & 12bit |
! VP9 10bit & 12bit |
||
| 364行目: | 422行目: | ||
|- |
|- |
||
! AV1 8bit & 10bit |
! AV1 8bit & 10bit |
||
| {{G|Alchemist |
| {{G|Alchemist 及びそれより新しいもの}} |
||
| {{G|Radeon RX 7900 以上/ |
| {{G|Radeon RX 7900 以上/それより新しいもの}} |
||
|} |
|} |
||
# VA-API の制限により MPEG-4 Part 2 はデフォルトで無効化されています。それでも使用してみるには、[[環境変数]] {{ic|1=VAAPI_MPEG4_ENABLED=true}} を設定してください。 |
|||
* <sup>1</sup> GeForce GTX 750 まで。 |
|||
# Hybrid VP8 エンコーダと VP9 デコーダは {{AUR|intel-hybrid-codec-driver-git}} によってサポートされています。 |
|||
# NVIDIA CUDA アダプタコーデックのサポートは活発に開発中であり、これは変更される可能性があります [https://github.com/elFarto/nvidia-vaapi-driver/issues/116]。 |
|||
* <sup>3</sup> Hybrid VP8 エンコーダと VP9 エンコーダは {{AUR|intel-hybrid-codec-driver-git}} によってサポートされています。 |
|||
* <sup>4</sup> MPEG-4 Part 2 は VAAPI の制限のためデフォルトで無効化されています。使用してみるには、{{ic|1=VAAPI_MPEG4_ENABLED=true}} [[環境変数]]を設定してください。 |
|||
* <sup>5</sup> 実験的な VP9 サポートは代わりに {{AUR|libva-vdpau-driver-vp9-git}} によって提供されています。 |
|||
* <sup>6</sup> NVIDIA CUDA アダプタコーデックのサポートは活発に開発中であり、これは変更される可能性があります [https://github.com/elFarto/nvidia-vaapi-driver/issues/116]。 |
|||
=== VDPAU ドライバ === |
=== VDPAU ドライバ === |
||
| 380行目: | 435行目: | ||
! コーデック |
! コーデック |
||
! 色深度 |
! 色深度 |
||
! {{pkg|mesa-vdpau}} [https://www.x.org/wiki/RadeonFeature/] [https://nouveau.freedesktop.org/wiki/VideoAcceleration/] |
|||
! {{pkg|nvidia-utils}} |
! {{pkg|nvidia-utils}} |
||
! {{pkg|libvdpau-va-gl}}<br>(VA-API アダプタ) |
! {{pkg|libvdpau-va-gl}}<br>(VA-API アダプタ) |
||
|- |
|- |
||
! colspan= |
! colspan=4 | デコード |
||
|- |
|- |
||
! MPEG-2 |
! MPEG-2 |
||
! 8bit |
! 8bit |
||
| {{G| |
| {{G|GeForce 8 及びそれより新しいもの}} |
||
| {{G|GeForce 8 以降}} |
|||
| rowspan=3 {{No}} |
| rowspan=3 {{No}} |
||
|- |
|- |
||
! H.263/MPEG-4 Visual |
! H.263/MPEG-4 Visual |
||
! 8bit |
! 8bit |
||
| {{G| |
| {{G|GeForce 200 及びそれより新しいもの}} |
||
| {{G|GeForce 200 以降}} |
|||
|- |
|- |
||
! VC-1 |
! VC-1 |
||
! 8bit |
! 8bit |
||
| {{G| |
| {{G|GeForce 8 及びそれより新しいもの<sup>1</sup>}} |
||
| {{G|GeForce 8 以降<sup>2</sup>}} |
|||
|- |
|- |
||
! H.264/MPEG-4 AVC |
! H.264/MPEG-4 AVC |
||
! 8bit |
! 8bit |
||
| {{G| |
| {{G|GeForce 8 及びそれより新しいもの}} |
||
| {{G|GeForce 8 以降}} |
|||
| [[#VA-API ドライバ]] を参照 |
| [[#VA-API ドライバ]] を参照 |
||
|- |
|- |
||
! rowspan=2 | H.265/HEVC |
! rowspan=2 | H.265/HEVC |
||
! 8bit |
! 8bit |
||
| {{G|GeForce 900 及びそれより新しいもの<sup>2</sup>}} |
|||
| {{G|Radeon R9 Fury 以降}} |
|||
| {{G|GeForce 900 以降<sup>3</sup>}} |
|||
| rowspan=6 {{No}} |
| rowspan=6 {{No}} |
||
|- |
|- |
||
! 10bit |
! 10bit |
||
| {{No}}<sup>3</sup> |
|||
| {{G|Radeon 400 以降}} |
|||
| {{No}}<sup>4</sup> |
|||
|- |
|- |
||
! rowspan=2 | VP9 |
! rowspan=2 | VP9 |
||
! 8bit |
! 8bit |
||
| {{G|GeForce 900 及びそれより新しいもの<sup>2</sup>}} |
|||
| rowspan=2 {{G|Raven Ridge + Radeon RX 5000 以降}} |
|||
| {{G|GeForce 900 以降<sup>3</sup>}} |
|||
|- |
|- |
||
! 10bit/12bit |
! 10bit/12bit |
||
| {{No}}<sup> |
| {{No}}<sup>3</sup> |
||
|- |
|- |
||
! rowspan=2 | AV1 |
! rowspan=2 | AV1 |
||
! 8bit |
! 8bit |
||
| {{G|RTX 30 series 及びそれより新しいもの}}<sup>4</sup> |
|||
| rowspan=2 {{G|Radeon RX 6600 以上/以降}} |
|||
| {{G|GeForce 30 以降}}<sup>5</sup> |
|||
|- |
|- |
||
! 10bit |
! 10bit |
||
| {{No}}<sup> |
| {{No}}<sup>3</sup> |
||
|} |
|} |
||
# GeForce 8800 Ultra、8800 GTX、8800 GTS (320/640 MB) は[[Wikipedia:Nvidia PureVideo|除く]]。 |
|||
* <sup>1</sup> GeForce GTX 750 まで。 |
|||
# 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]。 |
|||
* <sup>3</sup> GeForce GTX 970 と GTX 980 は除く。 |
|||
# ドライババージョン 510 から [https://www.phoronix.com/scan.php?page=news_item&px=NVIDIA-510-Linux-Beta] |
|||
* <sup>4</sup> 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]。 |
|||
* <sup>5</sup> ドライババージョン 510 から [https://www.phoronix.com/scan.php?page=news_item&px=NVIDIA-510-Linux-Beta] |
|||
=== NVIDIA ドライバのみ === |
=== NVIDIA ドライバのみ === |
||
| 481行目: | 526行目: | ||
|} |
|} |
||
# GM108 は除く (未サポート) |
|||
# GM108 と GP108 は除く (未サポート) |
|||
# A100 は除く (未サポート) |
|||
=== アプリケーションサポート === |
=== アプリケーションサポート === |
||
| 489行目: | 534行目: | ||
{| class="wikitable" |
{| class="wikitable" |
||
! rowspan=2 | アプリケーション |
! rowspan=2 | アプリケーション |
||
! colspan= |
! colspan=4 | デコード |
||
! colspan= |
! colspan=3 | エンコード |
||
! rowspan=2 | ドキュメント |
! rowspan=2 | ドキュメント |
||
|- |
|- |
||
| 496行目: | 541行目: | ||
! VDPAU |
! VDPAU |
||
! NVDEC |
! NVDEC |
||
! Vulkan |
|||
! VA-API |
! VA-API |
||
! NVENC |
! NVENC |
||
! Vulkan |
|||
|- |
|- |
||
! [[FFmpeg]] |
! [[FFmpeg]] |
||
| {{Yes}} |
|||
| {{Yes}} |
|||
| {{Yes}} |
| {{Yes}} |
||
| {{Yes}} |
| {{Yes}} |
||
| 509行目: | 558行目: | ||
! [[GStreamer]] |
! [[GStreamer]] |
||
| {{Yes}} |
| {{Yes}} |
||
| {{No|1=https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/393}} |
|||
| {{No}} |
|||
| {{Yes}} |
|||
| {{Yes}} |
|||
| {{Yes}} |
| {{Yes}} |
||
| {{Yes}} |
| {{Yes}} |
||
| 519行目: | 570行目: | ||
| {{Yes}} |
| {{Yes}} |
||
| {{No}} |
| {{No}} |
||
| {{No}} |
|||
| {{-}} |
|||
| {{-}} |
| {{-}} |
||
| {{-}} |
| {{-}} |
||
| 527行目: | 580行目: | ||
| {{Yes}} |
| {{Yes}} |
||
| {{Yes}} |
| {{Yes}} |
||
| {{Yes}} |
|||
| {{-}} |
|||
| {{-}} |
| {{-}} |
||
| {{-}} |
| {{-}} |
||
| 535行目: | 590行目: | ||
| {{Yes}} |
| {{Yes}} |
||
| {{No}} |
| {{No}} |
||
| {{No|1=https://code.videolan.org/videolan/vlc/-/issues/28362}} |
|||
| {{-}} |
|||
| {{-}} |
| {{-}} |
||
| {{-}} |
| {{-}} |
||
| 540行目: | 597行目: | ||
|- |
|- |
||
! [[MPlayer]] |
! [[MPlayer]] |
||
| {{ |
| {{No}} |
||
| {{Yes}} |
| {{Yes}} |
||
| {{No}} |
| {{No}} |
||
| {{No}} |
|||
| {{-}} |
|||
| {{-}} |
| {{-}} |
||
| {{-}} |
| {{-}} |
||
| [[MPlayer#ハードウェアアクセラレーション]] |
| [[MPlayer#ハードウェアアクセラレーション]] |
||
|- |
|||
! [[Flash]] |
|||
| {{No}}<sup>2</sup> |
|||
| {{Yes}}<sup>2</sup> |
|||
| {{No}} |
|||
| {{-}} |
|||
| {{-}} |
|||
| [[ブラウザプラグイン#Adobe Flash Player]] |
|||
|- |
|- |
||
! [[Chromium]] |
! [[Chromium]] |
||
| {{Yes}} |
| {{Yes}} |
||
| {{No}} |
|||
| {{No}} |
| {{No}} |
||
| {{No}} |
| {{No}} |
||
| {{Yes}} |
| {{Yes}} |
||
| {{No}} |
|||
| {{No}} |
| {{No}} |
||
| [[Chromium#ハードウェアビデオアクセラレーション]] |
| [[Chromium#ハードウェアビデオアクセラレーション]] |
||
| 567行目: | 620行目: | ||
| {{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|?}} |
||
| 578行目: | 634行目: | ||
|} |
|} |
||
{{TranslationStatus|Hardware video acceleration|2026-02-14|865193}} |
|||
* <sup>1</sup> VA-API サポートは代わりに {{AUR|mplayer-vaapi}} によって提供されています。 |
|||
* <sup>2</sup> VDPAU は NPAPI プラグインによってのみサポートされています。部分的な VA-API と VDPAU アクセラレーションを提供する、PPAPI プラグインから NPAPI ブラウザへの実験的なアダプタが利用できます。 |
|||
{{TranslationStatus|Hardware video acceleration|2023-11-28|793424}} |
|||
2026年2月14日 (土) 07:54時点における最新版
ハードウェアビデオアクセラレーションにより、ビデオカードで動画をデコード/エンコードすることができ、CPU の負担を下げて電力を節約することができます。
Linux でこれを実現する方法は複数存在します:
- Video Acceleration API (VA-API) はハードウェア支援による動画エンコード・デコードの両方を実現する仕様とオープンソースライブラリです。Intel によって開発されました。
- Video Decode and Presentation API for Unix (VDPAU) は GPU ビデオハードウェアに動画のデコードやポストプロセス処理をオフロードするオープンソースのライブラリです。NVIDIA によって開発されました。
- Advanced Media Framework SDK (AMF) は、マルチメディア処理のために 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 によってサポートされています。
- Haswell Refresh から Skylake までの VP9 デコードと、Broadwell から Skylake までのハイブリッド VP8 エンコードは intel-hybrid-codec-driver-gitAUR によってサポートされています。
VAAPI がサポートするハードウェアと機能 もご覧ください。
Vulkan Video
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 に対応しています:
- 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 をサポートしています:
- VA-API は Radeon HD 2000 及びそれ以降の GPU。
RADV オープンソース vulkan ドライバは、vulkan-radeon 経由で Vulkan Video サポートを提供しています。
- Fiji 及びそれ以降の GPU における AMF は amf-amdgpu-proAUR によってサポートされています。
変換レイヤー
- libvdpau-va-gl — OpenGL/VAAPI バックエンドを用いた VDPAU ドライバ。H.264 のみ。
- nvidia-vaapi-driver — VA-API を提供する CUDA NVDEC ベースのバックエンド。
CUDA_DISABLE_PERF_BOOST=1 を設定することです。確認
設定せずともシステムが完璧に動作する場合があります。なので、このセクションから読み始めて、システムの確認をすると良いでしょう。
- コマンドラインサポートのある mpv は、ハードウェアアクセラレーションをテストするのにぴったりです。
mpv --hwdec=auto video_filenameのログを見てください。詳細は hwdec を参照。 - AMD、Intel、そして NVIDIA の場合、動画を再生しながら nvtop を使うことで "DEC" (デコーダ) の使用率を確認できます。
- Intel GPU の場合、intel-gpu-tools を使って、
intel_gpu_topを root として実行することで、ビデオプレイバック中に GPU 使用率をモニタできます。ビデオバーが 0% よりも上にあれば、GPU のビデオデコーダ/エンコーダが使用されていることを示します。(新しい Xe ドライバを使用している場合、intel_gpu_topがエラーを出します。確認するにはgputopを実行してみてください。vcs (Video Command Streamer) の値が 0% より大きければ、GPU 動画デコード/エンコードが使用されていることを意味します。) - AMD GPU の場合、amdgpu_top を使用して GPU 使用率をモニタできます。
- 任意の GPU において、htop のようなツールで CPU 使用率を比較できます。特に、高解像度なビデオ (4k 以上) において、VA-API が有効化されていて動作しているときの CPU 使用率は、ノート PC や他の比較的低電力なデバイスにおいて劇的に低いはずです。
VA-API の確認
VA-API の設定は libva-utils パッケージに含まれている vainfo を実行することで確認できます:
$ vainfo
libva info: VA-API version 0.39.4
libva info: va_getDriverName() returns 0
libva info: Trying to open /usr/lib/dri/i965_drv_video.so
libva info: Found init function __vaDriverInit_0_39
libva info: va_openDriver() returns 0
vainfo: VA-API version: 0.39 (libva 1.7.3)
vainfo: Driver version: Intel i965 driver for Intel(R) Skylake - 1.7.3
vainfo: Supported profile and entrypoints
VAProfileMPEG2Simple : VAEntrypointVLD
VAProfileMPEG2Simple : VAEntrypointEncSlice
VAProfileMPEG2Main : VAEntrypointVLD
VAProfileMPEG2Main : VAEntrypointEncSlice
VAProfileH264ConstrainedBaseline: VAEntrypointVLD
VAProfileH264ConstrainedBaseline: VAEntrypointEncSlice
VAProfileH264ConstrainedBaseline: VAEntrypointEncSliceLP
VAProfileH264Main : VAEntrypointVLD
VAProfileH264Main : VAEntrypointEncSlice
VAProfileH264Main : VAEntrypointEncSliceLP
VAProfileH264High : VAEntrypointVLD
VAProfileH264High : VAEntrypointEncSlice
VAProfileH264High : VAEntrypointEncSliceLP
VAProfileH264MultiviewHigh : VAEntrypointVLD
VAProfileH264MultiviewHigh : VAEntrypointEncSlice
VAProfileH264StereoHigh : VAEntrypointVLD
VAProfileH264StereoHigh : VAEntrypointEncSlice
VAProfileVC1Simple : VAEntrypointVLD
VAProfileVC1Main : VAEntrypointVLD
VAProfileVC1Advanced : VAEntrypointVLD
VAProfileNone : VAEntrypointVideoProc
VAProfileJPEGBaseline : VAEntrypointVLD
VAProfileJPEGBaseline : VAEntrypointEncPicture
VAProfileVP8Version0_3 : VAEntrypointVLD
VAProfileVP8Version0_3 : VAEntrypointEncSlice
VAProfileHEVCMain : VAEntrypointVLD
VAProfileHEVCMain : VAEntrypointEncSlice
あなたのカードを使ってデコードできるフォーマットが VAEntrypointVLD で、エンコードできるフォーマットが VAEntrypointEncSlice で示されます。
上の例では、以下の行があることから i965 ドライバーが使われていることが確認できます:
vainfo: Driver version: Intel i965 driver for Intel(R) Skylake - 1.7.3
vainfo を実行したときに以下のようなエラーが表示される場合:
libva info: va_openDriver() returns -1 vaInitialize failed with error code -1 (unknown libva error),exit
適切なドライバーを設定する必要があります。#VA-API の設定 を見てください。
VDPAU の確認
vdpauinfo をインストールしてから、以下のコマンドを実行してください。VDPAU ドライバーがロードされていることや、現在の設定が確認できます:
$ vdpauinfo
display: :0 screen: 0 API version: 1 Information string: OpenGL/VAAPI backend for VDPAU Video surface: name width height types ------------------------------------------- 420 4096 4096 NV12 YV12 UYVY YUYV Y8U8V8A8 V8U8Y8A8 NV24 YV24 P010 P016 Y_U_V_444_16 422 4096 4096 NV12 YV12 UYVY YUYV Y8U8V8A8 V8U8Y8A8 NV24 YV24 P010 P016 Y_U_V_444_16 444 4096 4096 NV12 YV12 UYVY YUYV Y8U8V8A8 V8U8Y8A8 NV24 YV24 P010 P016 Y_U_V_444_16 420_16 4096 4096 NV12 YV12 UYVY YUYV Y8U8V8A8 V8U8Y8A8 NV24 YV24 P010 P016 Y_U_V_444_16 422_16 4096 4096 NV12 YV12 UYVY YUYV Y8U8V8A8 V8U8Y8A8 NV24 YV24 P010 P016 Y_U_V_444_16 444_16 4096 4096 NV12 YV12 UYVY YUYV Y8U8V8A8 V8U8Y8A8 NV24 YV24 P010 P016 Y_U_V_444_16 Decoder capabilities: name level macbs width height ---------------------------------------------------- MPEG1 --- not supported --- MPEG2_SIMPLE --- not supported --- MPEG2_MAIN --- not supported --- H264_BASELINE 51 16384 2048 2048 H264_MAIN 51 16384 2048 2048 H264_HIGH 51 16384 2048 2048 VC1_SIMPLE --- not supported --- VC1_MAIN --- not supported --- VC1_ADVANCED --- not supported --- ...
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 のデフォルトです。
journalctl -b --grep='vdpau | dri driver' を root として実行してください。しかし、これは 設定 を表すものではありません。上記の値は、オーバーライドしたとしても変更されません。
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 ドライバの場合は
- インストールされているドライバーは
/usr/lib/dri/ディレクトリを見ることで確認できます。/usr/lib/dri/${LIBVA_DRIVER_NAME}_drv_video.soとして使われます。 - 一部のドライバーは互換性を保つために異なる名前を使っていることがあります。
sha1sum /usr/lib/dri/* | sortを実行することで確認できます。 LIBVA_DRIVERS_PATHを使うことで VA-API ドライバーのパスを上書きできます。- バージョン 12.0.1 から Mesa は
galliumの代わりとしてradeonsiを提供しています。
VDPAU の設定
VDPAU_DRIVER 環境変数を使うことで、VDPAU 用に使用するドライバをオーバーライドできます。
適切なドライバ名は、あなたのセットアップに依存します:
- オープンソースの AMD、Intel、Nouveau ドライバの場合、
va_glに設定する必要があります。 - NVIDIA のプロプライエタリなバージョンの場合、
nvidiaに設定してください。
Vulkan Video の設定
- インテルグラフィックス: vulkan-intel の Vulkan Video サポートは
ANV_DEBUG=video-decode,video-encode環境変数で有効化できます。 - AMD: vulkan-radeon の Vulkan Video サポートは、Mesa 25 以降、VCN 2、3、4+ ではデフォルトで有効化されています。それより古いカードでサポートを強制的に有効化するには、
RADV_PERFTEST環境変数にvideo_decode,video_encodeを設定してください。
一部の古い GPU モデルは Mesa での Vulkan Video のサポートがありません。そのような GPU で Vulkan Video サポートを強制的に有効化すると、一部のアプリケーションがクラッシュします場合があります (例えば、mpv)。
アプリケーションの設定
マルチメディアフレームワーク:
ビデオプレイヤ:
ウェブブラウザ:
マルチメディア録画/ストリーミング:
トラブルシューティング
Failed to open VDPAU backend
適切なドライバを指すように VDPAU_DRIVER 変数を設定する必要があります。#VDPAU の設定 を参照。
mesa 25.3.0 以降、VDPAU のサポートがオープンソースなドライバから削除されました (d3d12、nouveau、r600、radeonsi、virtio_gpu)。以前にこれらのドライバを使用していた場合、それらのパッケージを#変換レイヤーに置き換えるか、VA-API を直接使うようにアプリケーションを設定する必要があります。
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 環境変数を設定してください。[3]
iHD 使用時に vainfo が失敗する
以下のエラーが発生する場合:
$ vainfo
Trying display: wayland Trying display: x11 error: can't connect to X server! Trying display: drm libva error: dlopen of /usr/lib64/dri/iHD_drv_video.so failed: /usr/lib64/dri/iHD_drv_video.so: undefined symbol: _ZN6GmmLib16GmmClientContext9GmmGetAILEv vainfo: VA-API version: 1.22 (libva 2.22.0) vainfo: Driver version: Intel i965 driver for Intel(R) Coffee Lake - 2.4.1 vainfo: Supported profile and entrypoints [...]
intel-media-driver-legacyAUR をレガシーではないパッケージの代わりにインストールしてみてください。これは、intel-compute-runtime-legacyAUR とも動作します。[4]
比較一覧
VA-API ドライバ
| コーデック | libva-intel-driver [5] | intel-media-driver [6] | mesa [7] [8] | libva-nvidia-driver (NVDEC アダプタ) |
|---|---|---|---|---|
| デコード | ||||
| MPEG-2 | GMA 4500 から Ice Lake | Broadwell 及びそれより新しいもの | Radeon HD 6000 - Radeon RX 6000 GeForce 8 から GTX 750 |
#NVIDIA ドライバのみ を参照 |
| H.263/MPEG-4 Visual1 | No | No | Radeon HD 6000 - Radeon RX 6000 | |
| VC-1 | Sandy Bridge から Ice Lake | Broadwell 及びそれより新しいもの | Radeon HD 2000 - Radeon RX 6000 GeForce 9300 から GTX 750 | |
| H.264/MPEG-4 AVC | Ironlake から Ice Lake | Radeon HD 2000 及びそれより新しいもの GeForce 8 から GTX 750 | ||
| H.265/HEVC 8bit | Cherryview/Braswell から Ice Lake | Skylake and newer | Radeon R9 Fury 及びそれより新しいもの | |
| H.265/HEVC 10bit | Broxton から Ice Lake | Broxton/Apollo Lake 及びそれより新しいもの | Radeon 400 及びそれより新しいもの | |
| VP8 | Broadwell から Ice Lake | Broadwell 及びそれより新しいもの | No | |
| VP9 8bit | Broxton から Ice Lake Hybrid: Haswell refresh から Skylake2 |
Broxton/Apollo Lake 及びそれより新しいもの | Raven Ridge + Radeon RX 5000 及びそれより新しいもの | |
| VP9 10bit & 12bit | Kaby Lake から Ice Lake | Kaby Lake 及びそれより新しいもの | ||
| AV1 8bit & 10bit | No | Tiger Lake 及びそれより新しいもの | Radeon RX 6600 以上/それより新しいもの | |
| エンコード | ||||
| MPEG-2 | Ivy Bridge から Ice Lake | Broadwell 及びそれより新しいもの Broxton/Apollo Lake を除く |
No | No3 |
| H.264/MPEG-4 AVC | Sandy Bridge から Ice Lake | Broadwell 及びそれより新しいもの | Radeon HD 7000 及びそれより新しいもの | |
| H.265/HEVC 8bit | Skylake から Ice Lake | Skylake 及びそれより新しいもの | Radeon 400 及びそれより新しいもの | |
| H.265/HEVC 10bit | Kaby Lake から Ice Lake | Kaby Lake 及びそれより新しいもの | Raven Ridge + Radeon RX 5000 及びそれより新しいもの | |
| VP8 | Cherryview/Braswell から Ice Lake Hybrid: Haswell から Skylake2 |
No | ||
| VP9 8bit | Kaby Lake から Ice Lake | Ice Lake 及びそれより新しいもの | ||
| VP9 10bit & 12bit | No | |||
| AV1 8bit & 10bit | Alchemist 及びそれより新しいもの | Radeon RX 7900 以上/それより新しいもの | ||
- VA-API の制限により MPEG-4 Part 2 はデフォルトで無効化されています。それでも使用してみるには、環境変数
VAAPI_MPEG4_ENABLED=trueを設定してください。 - Hybrid VP8 エンコーダと VP9 デコーダは intel-hybrid-codec-driver-gitAUR によってサポートされています。
- NVIDIA CUDA アダプタコーデックのサポートは活発に開発中であり、これは変更される可能性があります [9]。
VDPAU ドライバ
| コーデック | 色深度 | nvidia-utils | libvdpau-va-gl (VA-API アダプタ) |
|---|---|---|---|
| デコード | |||
| MPEG-2 | 8bit | GeForce 8 及びそれより新しいもの | No |
| H.263/MPEG-4 Visual | 8bit | GeForce 200 及びそれより新しいもの | |
| VC-1 | 8bit | GeForce 8 及びそれより新しいもの1 | |
| H.264/MPEG-4 AVC | 8bit | GeForce 8 及びそれより新しいもの | #VA-API ドライバ を参照 |
| H.265/HEVC | 8bit | GeForce 900 及びそれより新しいもの2 | No |
| 10bit | No3 | ||
| VP9 | 8bit | GeForce 900 及びそれより新しいもの2 | |
| 10bit/12bit | No3 | ||
| AV1 | 8bit | RTX 30 series 及びそれより新しいもの4 | |
| 10bit | No3 | ||
- GeForce 8800 Ultra、8800 GTX、8800 GTS (320/640 MB) は除く。
- GeForce GTX 970 と GTX 980 は除く。
- NVIDIA の実装は8ビットストリームまでに制限されています [10] [11]。
- ドライババージョン 510 から [12]
NVIDIA ドライバのみ
| コーデック | nvidia-utils [13] | |
|---|---|---|
| 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 | Yes | 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#ハードウェアアクセラレーション |
| Chromium | Yes | No | No | No | Yes | No | No | Chromium#ハードウェアビデオアクセラレーション |
| Firefox | Yes | No | No | No | No | No | No | Firefox#ハードウェアビデオアクセラレーション |
| GNOME/Web | GStreamer | ? | ? | ? | GNOME Web#ビデオ | |||