「ハードウェアビデオアクセラレーション」の版間の差分
Kusanaginoturugi (トーク | 投稿記録) (序文の変更) |
Kusanaginoturugi (トーク | 投稿記録) (カテゴリを修正) |
||
(2人の利用者による、間の38版が非表示) | |||
1行目: | 1行目: | ||
− | [[Category:グラフィック]] |
+ | [[Category:グラフィックス]] |
[[Category:X サーバー]] |
[[Category:X サーバー]] |
||
[[en:Hardware video acceleration]] |
[[en:Hardware video acceleration]] |
||
− | [[ru: |
+ | [[ru:Hardware video acceleration]] |
[[zh-hans:Hardware video acceleration]] |
[[zh-hans:Hardware video acceleration]] |
||
− | [[ |
+ | [[Wikipedia:Graphics processing unit#GPU accelerated video decoding and encoding|ハードウェアビデオアクセラレーション]]により、ビデオカードで動画をデコード/エンコードすることができ、CPU の負担を下げて電力を節約することができます。 |
Linux でこれを実現する方法は複数存在します: |
Linux でこれを実現する方法は複数存在します: |
||
− | * '''[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。 |
||
+ | * [[Wikipedia:Video Acceleration API|Video Acceleration API]] (VA-API) はハードウェア支援による動画エンコード・デコードの両方を実現する仕様とオープンソースライブラリです。Intel によって開発されました。 |
||
− | 2007年以前のビデオカードについては [[XvMC]] を参照してください。ドライバーとアプリケーションのサポートの包括的な概要については、[[#比較一覧]] を参照してください。 |
||
+ | * [[Wikipedia:VDPAU|Video Decode and Presentation API for Unix]] (VDPAU) は GPU ビデオハードウェアに動画のデコードやポストプロセス処理をオフロードするオープンソースのライブラリです。NVIDIA によって開発されました。 |
||
+ | * [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。 |
||
+ | |||
+ | ドライバとアプリケーションのサポートの包括的な概要については、[[#比較一覧]] を参照してください。 |
||
== インストール == |
== インストール == |
||
19行目: | 21行目: | ||
[[Intel Graphics]] オープンソースドライバーは VA-API に対応しています: |
[[Intel Graphics]] オープンソースドライバーは VA-API に対応しています: |
||
− | * |
+ | * [https://github.com/intel/media-driver/#supported-platforms Broadwell] [[wikipedia:Template:Intel_processor_roadmap|(2014)]] 及びそれ以降の HD Graphics シリーズ (例: Intel Arc) は {{Pkg|intel-media-driver}} によってサポートされています。 |
− | * Coffee Lake までの GMA 4500 |
+ | * [[wikipedia:Coffee_Lake|Coffee Lake]] (2017) までの GMA 4500 (2008) は {{Pkg|libva-intel-driver}} によってサポートされています。 |
− | * GMA 4500 の H.264 デコードは {{AUR|libva-intel-driver-g45-h264}} によってサポートされています。[[Intel#GMA 4500 での H.264 デコー |
+ | * GMA 4500 の H.264 デコードは {{AUR|libva-intel-driver-g45-h264}} によってサポートされています。[[Intel Graphics#GMA 4500 での H.264 デコードのハードウェアアクセラレーション]] を参照。 |
− | * Haswell から Skylake までのハイブリッド VP8 エン |
+ | * [[Wikipedia:Haswell (microarchitecture)#Haswell Refresh|Haswell Refresh]] から Skylake までの VP9 デコードと、Broadwell から Skylake までのハイブリッド VP8 エンコードは {{AUR|intel-hybrid-codec-driver-git}} によってサポートされています。 |
+ | * Skylake 及びそれ以降は {{Pkg|linux-firmware}} も必要です。 |
||
+ | |||
+ | [https://www.intel.com/content/www/us/en/developer/articles/technical/linuxmedia-vaapi.html VAAPI がサポートするハードウェアと機能] もご覧ください。 |
||
=== NVIDIA === |
=== NVIDIA === |
||
28行目: | 33行目: | ||
[[Nouveau]] オープンソースドライバーは VA-API と VDPAU に対応しています: |
[[Nouveau]] オープンソースドライバーは VA-API と VDPAU に対応しています: |
||
− | * GeForce GTX 750 までの GeForce 8 シリーズ以降の GPU は {{Pkg|libva-mesa-driver}} と {{Pkg|mesa-vdpau}} によってサポートされています。 |
+ | * GeForce GTX 750 までの GeForce 8 シリーズ及びそれ以降の GPU は {{Pkg|libva-mesa-driver}} と {{Pkg|mesa-vdpau}} によってサポートされています。 |
− | * NVIDIA のバイナリドライバーから抽出される {{AUR|nouveau-fw}} ファームウェアパッケージが [https://nouveau.freedesktop.org/wiki/VideoAcceleration/#firmware 必要] です。 |
+ | * (現在 NVIDIA のバイナリドライバーから抽出される) {{AUR|nouveau-fw}} ファームウェアパッケージが [https://nouveau.freedesktop.org/wiki/VideoAcceleration/#firmware 必要] です。 |
− | [[NVIDIA]] プロプライエタリドライバ |
+ | [[NVIDIA]] プロプライエタリドライバは {{Pkg|nvidia-utils}} によってサポートされています: |
− | * |
+ | * [[Wikipedia:GeForce 8 series|GeForce 8 シリーズ]]及びそれ以降の GPU における VDPAU |
+ | * [[Wikipedia:Fermi_(microarchitecture)|Fermi]] 及びそれ以降の GPU における NVDEC [https://developer.download.nvidia.com/assets/cuda/files/NVIDIA_Video_Decoder.pdf] |
||
− | * NVDECODE/NVENCODE は Kepler 以降で {{Pkg|nvidia-utils}} によってサポートされています。 |
||
+ | * [[Wikipedia:Kepler_(microarchitecture)|Kepler]] 及びそれ以降の GPU における NVENC |
||
− | === |
+ | === AMD/ATI === |
− | [[ |
+ | [[AMD]] と [[ATI]] オープンソースドライバーは VA-API と VDPAU に対応しています: |
− | * |
+ | * VA-API は Radeon HD 2000 及びそれ以降の GPU で {{Pkg|libva-mesa-driver}} によってサポートされています。 |
− | * |
+ | * VDPAU は Radeon R600 及びそれ以降の GPU で {{Pkg|mesa-vdpau}} によってサポートされています。 |
− | [[ |
+ | [[AMDGPU PRO]] プロプライエタリドライバーは AMDGPU ドライバー上で動作し、AMF に加えて VA-API と VDPAU に対応しています。 |
+ | * [[Wikipedia:Radeon Rx 300 series|Fiji]] 及びそれ以降の GPU における AMF は {{AUR|amf-amdgpu-pro}} によってサポートされています。 |
||
− | [[AMDGPU PRO]] プロプライエタリドライバーは AMDGPU ドライバー上で動作し、VA-API と VDPAU に対応しています。 |
||
+ | {{Note| |
||
− | === 互換レイヤー === |
||
+ | * 場合によっては、あなたのアプリケーションが [[AMDGPU PRO]] [[Vulkan]] ドライバを使用するように強制する必要があります。 |
||
+ | * [[Wikipedia:High Efficiency Video Coding|HEVC]] エンコードは [[Wikipedia:Radeon RX 5000 series|Navi]] より古い GPU では利用できない場合があります。 |
||
+ | }} |
||
+ | === 変換レイヤー === |
||
− | デバイスドライバーが VA-API をサポートしていない場合に VA-API を使うには: |
||
− | * {{ |
+ | * {{App|libva-vdpau-driver|VA-API を提供する VDPAU ベースのバックエンド。|https://cgit.freedesktop.org/vaapi/vdpau-driver|{{Pkg|libva-vdpau-driver}}、{{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}}}} |
||
− | * {{AUR|libva-vdpau-driver-chromium}} – Chromium で動作するようにパッチが適用された VDPAU の VA-API バックエンド。 |
||
+ | * {{App|nvidia-vaapi-driver|VA-API を提供する [[CUDA]] NVDEC ベースのバックエンド。|https://github.com/elFarto/nvidia-vaapi-driver/|{{Pkg|libva-nvidia-driver}}}} |
||
+ | {{Note| |
||
− | デバイスドライバーが VDPAU をサポートしていない場合に VDPAU を使うには: |
||
+ | * 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] を使用することができます。 |
||
− | |||
+ | * {{Pkg|libva-vdpau-driver}} のコードは数年間、変更されていません。最近のバージョンの NVIDIA ドライバで VLC や OBS を使用するとクラッシュします。[https://github.com/obsproject/obs-studio/issues/8056] NVIDIA 用の変換レイヤーが必要である場合は、代わりに {{Pkg|libva-nvidia-driver}} を使用してください。 |
||
− | * {{Pkg|libvdpau-va-gl}} – VA-API の VDPAU バックエンド ([https://github.com/i-rinat/libvdpau-va-gl/issues/67#issuecomment-318470175 H.264 のみサポート])。 |
||
+ | }} |
||
== 確認 == |
== 確認 == |
||
+ | |||
+ | 設定せずともシステムが完璧に動作する場合があります。なので、このセクションから読み始めて、システムの確認をすると良いでしょう。 |
||
{{Tip| |
{{Tip| |
||
− | * ハードウェアアクセラレーションをテストする |
+ | * コマンドラインサポートのある [[mpv#ハードウェアデコード|mpv]] は、ハードウェアアクセラレーションをテストするのにぴったりです。{{ic|1=mpv --hwdec=auto ''video_filename''}} のログを見てください。詳細は [https://mpv.io/manual/stable/#options-hwdec hwdec] を参照。 |
− | * |
+ | * AMD、Intel、そして NVIDIA の場合、動画を再生しながら {{Pkg|nvtop}} を使うことで "DEC" (デコーダ) の使用率を確認できます。 |
+ | * Intel GPU の場合、{{pkg|intel-gpu-tools}} を使って、{{ic|intel_gpu_top}} を root として実行することで、ビデオプレイバック中に GPU 使用率をモニタできます。ビデオバーが 0% よりも上にあれば、GPU のビデオデコーダ/エンコーダが使用されていることを示します。 |
||
− | {{hc|$ grep -iE 'vdpau {{!}} dri driver' ~/.local/share/xorg/Xorg.0.log| |
||
+ | * AMD GPU の場合、{{Pkg|radeontop}} を使用して GPU 使用率をモニタできます。{{pkg|intel-gpu-tools}} とは違い、現在 {{Pkg|radeontop}} でデコード/エンコードの仕様状況を確認する方法はありません [https://github.com/clbr/radeontop/issues/29]。 |
||
− | (II) RADEON(0): [DRI2] DRI driver: radeonsi |
||
+ | * 任意の GPU において、{{Pkg|htop}} のようなツールで CPU 使用率を比較できます。特に、高解像度なビデオ (4k 以上) において、VA-API が有効化されていて動作しているときの CPU 使用率は、ノート PC や他の比較的低電力なデバイスにおいて劇的に低いはずです。 |
||
− | (II) RADEON(0): [DRI2] VDPAU driver: radeonsi |
||
− | }} |
||
− | 上記の場合、VA-API と VDPAU の両方で {{ic|radeonsi}} が使えます。 |
||
− | * [[GDM]] を使っている場合は {{ic|journalctl -b {{!}} grep -iE 'vdpau {{!}} dri driver'}} を実行してください。 |
||
}} |
}} |
||
106行目: | 116行目: | ||
VAProfileNone : VAEntrypointVideoProc |
VAProfileNone : VAEntrypointVideoProc |
||
VAProfileJPEGBaseline : VAEntrypointVLD |
VAProfileJPEGBaseline : VAEntrypointVLD |
||
− | VAProfileJPEGBaseline : |
+ | VAProfileJPEGBaseline : VAEntrypointEncPicture |
VAProfileVP8Version0_3 : VAEntrypointVLD |
VAProfileVP8Version0_3 : VAEntrypointVLD |
||
VAProfileVP8Version0_3 : VAEntrypointEncSlice |
VAProfileVP8Version0_3 : VAEntrypointEncSlice |
||
VAProfileHEVCMain : VAEntrypointVLD |
VAProfileHEVCMain : VAEntrypointVLD |
||
− | VAProfileHEVCMain : VAEntrypointEncSlice |
+ | VAProfileHEVCMain : VAEntrypointEncSlice |
+ | </nowiki>}} |
||
− | }} |
||
あなたのカードを使ってデコードできるフォーマットが {{ic|VAEntrypointVLD}} で、エンコードできるフォーマットが {{ic|VAEntrypointEncSlice}} で示されます。 |
あなたのカードを使ってデコードできるフォーマットが {{ic|VAEntrypointVLD}} で、エンコードできるフォーマットが {{ic|VAEntrypointEncSlice}} で示されます。 |
||
上の例では、以下の行があることから {{ic|i965}} ドライバーが使われていることが確認できます: |
上の例では、以下の行があることから {{ic|i965}} ドライバーが使われていることが確認できます: |
||
+ | |||
− | libva info: Trying to open /usr/lib/dri/'''i965'''_drv_video.so |
||
+ | vainfo: Driver version: Intel '''i965''' driver for Intel(R) Skylake - 1.7.3 |
||
{{ic|vainfo}} を実行したときに以下のようなエラーが表示される場合: |
{{ic|vainfo}} を実行したときに以下のようなエラーが表示される場合: |
||
+ | |||
libva info: va_openDriver() returns -1 |
libva info: va_openDriver() returns -1 |
||
vaInitialize failed with error code -1 (unknown libva error),exit |
vaInitialize failed with error code -1 (unknown libva error),exit |
||
− | 適切なドライバーを設定する必要があります。[[# |
+ | 適切なドライバーを設定する必要があります。[[#VA-API の設定]] を見てください。 |
=== VDPAU の確認 === |
=== VDPAU の確認 === |
||
137行目: | 149行目: | ||
name width height types |
name width height types |
||
------------------------------------------- |
------------------------------------------- |
||
− | 420 16384 16384 NV12 YV12 |
+ | 420 16384 16384 NV12 YV12 |
− | 422 16384 16384 UYVY YUYV |
+ | 422 16384 16384 UYVY YUYV |
− | 444 16384 16384 Y8U8V8A8 V8U8Y8A8 |
+ | 444 16384 16384 Y8U8V8A8 V8U8Y8A8 |
Decoder capabilities: |
Decoder capabilities: |
||
154行目: | 166行目: | ||
VC1_MAIN 2 9216 2048 1152 |
VC1_MAIN 2 9216 2048 1152 |
||
VC1_ADVANCED 4 9216 2048 1152 |
VC1_ADVANCED 4 9216 2048 1152 |
||
+ | ... |
||
− | |||
− | + | </nowiki>}} |
|
== 設定 == |
== 設定 == |
||
+ | |||
− | {{Note|VA-API と VDPAU のどちらでもビデオドライバーは基本的にハードウェアビデオアクセラレーションを自動的に有効化しますが、場合によっては手動で VA-API/VDPAU を手動で有効にする必要があります。有効化されているかどうか[[#確認|確認]]をしてください。}} |
||
+ | ビデオドライバは VA-API と VDPAU の両方に対してハードウェアビデオアクセラレーションのサポートを自動的に有効化するはずですが、場合によっては手動で VA-API/VDPAU を手動で設定する必要があります。[[#確認]] セクションを見た場合にのみ、このセクションを読み進めてください。 |
||
+ | |||
+ | (他に設定が存在しない場合に使用される) デフォルトのドライバ名はシステムによって推測されます。しかし、それらはしばしばトリッキーで、機能しないこともあります。推測された値は [[Xorg]] のログファイルに出力されます。ログファイルは、Xorg が rootless の場合は {{ic|~/.local/share/xorg/Xorg.0.log}}、Xorg が root として実行されている場合は {{ic|/var/log/Xorg.0.log}} です。ログファイルからある値を検索するには: |
||
+ | |||
+ | {{hc|$ grep -iE 'vdpau {{!}} dri driver' ''xorg_のログファイル''| |
||
+ | (II) RADEON(0): [DRI2] DRI driver: radeonsi |
||
+ | (II) RADEON(0): [DRI2] VDPAU driver: radeonsi |
||
+ | }} |
||
+ | |||
+ | この出力の場合、{{ic|radeonsi}} が VA-API と VDPAU のデフォルトです。 |
||
+ | |||
+ | {{Note|[[GDM]] を使用している場合、代わりに {{ic|1=journalctl -b --grep='vdpau {{!}} dri driver'}} を root として実行してください。}} |
||
+ | |||
+ | しかし、これは ''設定'' を表すものではありません。上記の値は、オーバーライドしたとしても変更されません。 |
||
=== VA-API の設定 === |
=== VA-API の設定 === |
||
− | VA-API |
+ | {{ic|LIBVA_DRIVER_NAME}} [[環境変数]] を使うことで、VA-API 用に使用する[https://www.freedesktop.org/wiki/Software/vaapi/#driversback-endsthatimplementva-api ドライバ]をオーバーライドできます: |
* [[Intel Graphics]]: |
* [[Intel Graphics]]: |
||
169行目: | 195行目: | ||
* NVIDIA: |
* NVIDIA: |
||
** [[Nouveau]] の場合は {{ic|nouveau}} を使ってください。 |
** [[Nouveau]] の場合は {{ic|nouveau}} を使ってください。 |
||
− | ** [[NVIDIA]] の場合は {{ic|vdpau}} を使ってください。 |
+ | ** [[NVIDIA]] VDPAU の場合は {{ic|vdpau}} を使ってください。 |
+ | ** [[NVIDIA]] NVDEC の場合は {{ic|nvidia}} を使ってください。 |
||
− | * ATI/AMD: |
||
+ | * AMD: |
||
− | ** [[AMDGPU]] の場合は {{ic|radeonsi}} を使ってください。 |
||
− | ** [[ |
+ | ** [[AMDGPU]] ドライバの場合は {{ic|radeonsi}} を使ってください。 |
{{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/* {{!}} sort}} を実行することで確認できます。 |
* {{ic|LIBVA_DRIVERS_PATH}} を使うことで VA-API ドライバーのパスを上書きできます。 |
* {{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}} を提供しています。 |
||
183行目: | 209行目: | ||
=== VDPAU の設定 === |
=== VDPAU の設定 === |
||
− | + | {{ic|VDPAU_DRIVER}} [[環境変数]]を使うことで、VDPAU 用に使用するドライバをオーバーライドできます。 |
|
+ | 適切なドライバ名は、あなたのセットアップに依存します: |
||
− | 使用しているビデオドライバーにあわせて適切なドライバーの名前を指定してください: |
||
− | * Intel |
+ | * Intel graphics の場合、{{ic|va_gl}} に設定する[[#Failed to open VDPAU backend|必要があります]]。 |
− | * オープンソースの AMD |
+ | * オープンソースの AMD ドライバの場合、あなたの GPU に合わせて適切なドライババージョンを設定してください。[[#確認]] を参照。 |
− | * オープンソースの Nouveau ドライバ |
+ | * オープンソースの Nouveau ドライバの場合、{{ic|nouveau}} に設定してください。 |
− | * NVIDIA のプロプライエタリ |
+ | * NVIDIA のプロプライエタリなバージョンの場合、{{ic|nvidia}} に設定してください。 |
{{Note| |
{{Note| |
||
* インストールされているドライバーは {{ic|/usr/lib/vdpau/}} ディレクトリを見ることで確認できます。{{ic|/usr/lib/vdpau/libvdpau_'''${VDPAU_DRIVER}'''.so}} として使われます。 |
* インストールされているドライバーは {{ic|/usr/lib/vdpau/}} ディレクトリを見ることで確認できます。{{ic|/usr/lib/vdpau/libvdpau_'''${VDPAU_DRIVER}'''.so}} として使われます。 |
||
* 一部のドライバーは互換性を保つために異なる名前を使っていることがあります。{{ic|sha1sum /usr/lib/vdpau/*}} を実行することで確認できます。 |
* 一部のドライバーは互換性を保つために異なる名前を使っていることがあります。{{ic|sha1sum /usr/lib/vdpau/*}} を実行することで確認できます。 |
||
− | * ハイブリッド構成 (NVIDIA と AMD の両方のカードが搭載されている) 場合、{{ic| |
+ | * ハイブリッド構成 (NVIDIA と AMD の両方のカードが搭載されている) 場合、{{ic|DRI_PRIME}} [[環境変数]]を設定する必要があるかもしれません。詳しくは [[PRIME]] を参照。 |
+ | }} |
||
+ | |||
+ | === アプリケーションの設定 === |
||
+ | |||
+ | マルチメディアフレームワーク: |
||
+ | |||
+ | * [[FFmpeg#ハードウェアビデオアクセラレーション]] |
||
+ | * [[GStreamer#ハードウェアアクセラレーション]] |
||
+ | |||
+ | ビデオプレイヤ: |
||
+ | |||
+ | * [[Kodi#ヒントとテクニック]] |
||
+ | * [[MPlayer#ハードウェアアクセラレーション]] |
||
+ | * [[mpv#ハードウェアデコード]] |
||
+ | * [[VLC media player#ハードウェアアクセラレーションのサポート]] |
||
+ | |||
+ | ウェブブラウザ: |
||
+ | |||
+ | * [[Chromium#ハードウェアビデオアクセラレーション]] |
||
+ | * [[Firefox#ハードウェアビデオアクセラレーション]] |
||
+ | * [[GNOME Web#ハードウェアアクセラレーション]] |
||
+ | |||
+ | マルチメディア録画/ストリーミング: |
||
+ | |||
+ | * [[Open Broadcaster Software#ハードウェアアクセラレーション]] |
||
== トラブルシューティング == |
== トラブルシューティング == |
||
201行目: | 252行目: | ||
=== Failed to open VDPAU backend === |
=== Failed to open VDPAU backend === |
||
− | + | 適切なドライバを指すように {{ic|VDPAU_DRIVER}} 変数を設定する必要があります。[[#VDPAU の設定]] を参照。 |
|
− | |||
− | VA-API を使用するようにメディアプレイヤーを設定することで良い結果を得られる可能性があります。[[#ソフトウェア|ソフトウェア]]を参照。 |
||
=== VAAPI init failed === |
=== VAAPI init failed === |
||
− | エラーは {{ic|libva: /usr/lib/dri/i965_drv_video.so init failed}} という行で確認できます。[[Wayland]] が正しく認識されていないことが原因で発生します。{{ic|$DISPLAY}} の設定を解除することで mpv, |
+ | エラーは {{ic|libva: /usr/lib/dri/i965_drv_video.so init failed}} という行で確認できます。[[Wayland]] が正しく認識されていないことが原因で発生します。{{ic|$DISPLAY}} の設定を解除することで mpv, MPlayer, VLC などは X11 であると誤認しないようになります。mpv の場合は {{ic|1=--gpu-context=wayland}} パラメータを追加することでも解決できます。 |
+ | |||
+ | このエラーは、あなたのハードウェアに合わない VA-API ドライバをインストールした場合にも起こりえます。 |
||
=== AMDGPU ドライバーを使用したビデオデコード時の破損や歪み === |
=== AMDGPU ドライバーを使用したビデオデコード時の破損や歪み === |
||
− | [[AMDGPU]] ドライバーでビデオデコードの破損または歪みが発生する場合は、{{ic |
+ | [[AMDGPU]] ドライバーでビデオデコードの破損または歪みが発生する場合は、{{ic|1=allow_rgb10_configs=false}} を [[環境変数]] または {{ic|driconf}} として設定します。[https://bugs.freedesktop.org/show_bug.cgi?id=106490] |
− | == |
+ | == 比較一覧 == |
− | === |
+ | === VA-API ドライバ === |
− | |||
− | ==== VA-API ==== |
||
{| class="wikitable" style="text-align:center;" |
{| class="wikitable" style="text-align:center;" |
||
224行目: | 273行目: | ||
! {{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|libva-mesa-driver}} [https://www.x.org/wiki/RadeonFeature/] [https://nouveau.freedesktop.org/wiki/VideoAcceleration/] |
! {{pkg|libva-mesa-driver}} [https://www.x.org/wiki/RadeonFeature/] [https://nouveau.freedesktop.org/wiki/VideoAcceleration/] |
||
+ | ! {{pkg|libva-vdpau-driver}} <br> (VDPAU アダプタ) |
||
− | ! [[AMD Catalyst#ビデオアクセラレーション|Catalyst XvBA]] |
||
− | ! {{ |
+ | ! {{Pkg|libva-nvidia-driver}}<br> (NVDEC アダプタ) |
− | (VDPAU アダプタ) |
||
|- |
|- |
||
! colspan=6 | デコード |
! colspan=6 | デコード |
||
|- |
|- |
||
− | ! |
+ | ! MPEG-2 |
| {{G|GMA 4500 以降}} |
| {{G|GMA 4500 以降}} |
||
| {{G|Broadwell 以降}} |
| {{G|Broadwell 以降}} |
||
| {{G|Radeon HD 6000 以降<br>GeForce 8 以降<sup>1</sup>}} |
| {{G|Radeon HD 6000 以降<br>GeForce 8 以降<sup>1</sup>}} |
||
+ | | rowspan=6 | [[#VDPAU ドライバ]] を参照 |
||
− | | {{G|Radeon HD 4000 以降}} |
||
− | | rowspan= |
+ | | rowspan=10 | [[#NVIDIA ドライバのみ]] を参照 |
|- |
|- |
||
+ | ! H.263/MPEG-4 Visual<sup>4</sup> |
||
− | ! MPEG4 |
||
| {{No}} |
| {{No}} |
||
| {{No}} |
| {{No}} |
||
− | | {{G|Radeon HD 6000 以降}} |
||
| {{G|Radeon HD 6000 以降}} |
| {{G|Radeon HD 6000 以降}} |
||
|- |
|- |
||
+ | ! VC-1 |
||
− | ! AVC (H.264) |
||
+ | | {{G|Sandy Bridge 以降}} |
||
+ | | rowspan=2 {{G|Broadwell 以降}} |
||
+ | | {{G|Radeon HD 2000 以降<br>GeForce 9300 以降<sup>1</sup>}} |
||
+ | |- |
||
+ | ! H.264/MPEG-4 AVC |
||
| {{G|GMA 4500<sup>2</sup>, Ironlake 以降}} |
| {{G|GMA 4500<sup>2</sup>, Ironlake 以降}} |
||
− | | {{G|Broadwell 以降}} |
||
| {{G|Radeon HD 2000 以降<br>GeForce 8 以降<sup>1</sup>}} |
| {{G|Radeon HD 2000 以降<br>GeForce 8 以降<sup>1</sup>}} |
||
− | | {{G|Radeon HD 4000 以降}} |
||
|- |
|- |
||
− | ! |
+ | ! H.265/HEVC 8bit |
| {{G|Cherryview/Braswell 以降}} |
| {{G|Cherryview/Braswell 以降}} |
||
| {{G|Skylake 以降}} |
| {{G|Skylake 以降}} |
||
| {{G|Radeon R9 Fury 以降}} |
| {{G|Radeon R9 Fury 以降}} |
||
− | | rowspan=2 {{No}} |
||
|- |
|- |
||
− | ! |
+ | ! H.265/HEVC 10bit |
| {{G|Broxton 以降}} |
| {{G|Broxton 以降}} |
||
| {{G|Broxton/Apollo Lake 以降}} |
| {{G|Broxton/Apollo Lake 以降}} |
||
| {{G|Radeon 400 以降}} |
| {{G|Radeon 400 以降}} |
||
− | |- |
||
− | ! VC1 |
||
− | | {{G|Sandy Bridge 以降}} |
||
− | | rowspan=2 {{G|Broadwell 以降}} |
||
− | | {{G|Radeon HD 2000 以降<br>GeForce 9300 以降<sup>1</sup>}} |
||
− | | {{G|Radeon HD 4000 以降}} |
||
|- |
|- |
||
! VP8 |
! VP8 |
||
+ | | {{G|Broadwell 以降}} |
||
| {{G|Broadwell 以降}} |
| {{G|Broadwell 以降}} |
||
| {{No}} |
| {{No}} |
||
− | | |
+ | | {{No}} |
− | | rowspan=3 {{No}} |
||
|- |
|- |
||
! VP9 8bit |
! VP9 8bit |
||
− | | {{G|Broxton 以降 <br> Hybrid: Haswell から Skylake<sup>3</sup>}} |
+ | | {{G|Broxton 以降 <br> Hybrid: Haswell refresh から Skylake<sup>3</sup>}} |
| {{G|Broxton/Apollo Lake 以降}} |
| {{G|Broxton/Apollo Lake 以降}} |
||
− | | rowspan=2 {{G|Raven Ridge 以降}} |
+ | | rowspan=2 {{G|Raven Ridge + Radeon RX 5000 以降}} |
+ | | [[#VDPAU ドライバ]] を参照<sup>5</sup> |
||
|- |
|- |
||
− | ! VP9 10bit |
+ | ! VP9 10bit & 12bit |
| {{G|Kaby Lake 以降}} |
| {{G|Kaby Lake 以降}} |
||
| {{G|Kaby Lake 以降}} |
| {{G|Kaby Lake 以降}} |
||
+ | | rowspan=2 {{No}} |
||
+ | |- |
||
+ | ! AV1 8bit & 10bit |
||
+ | | {{No}} |
||
+ | | {{G|Tiger Lake 以降}} |
||
+ | | {{G|Radeon RX 6600 以上/以降}} |
||
|- |
|- |
||
! colspan=6 | エンコード |
! colspan=6 | エンコード |
||
|- |
|- |
||
− | ! |
+ | ! MPEG-2 |
| {{G|Ivy Bridge 以降}} |
| {{G|Ivy Bridge 以降}} |
||
− | | {{G|Broadwell 以降<br>Broxton/Apollo Lake |
+ | | {{G|Broadwell 以降<br>Broxton/Apollo Lake を除く}} |
| {{No}} |
| {{No}} |
||
− | | rowspan= |
+ | | rowspan=8 {{-}} |
− | | rowspan= |
+ | | rowspan=8 {{No}}<sup>6</sup> |
|- |
|- |
||
− | ! |
+ | ! H.264/MPEG-4 AVC |
| {{G|Sandy Bridge 以降}} |
| {{G|Sandy Bridge 以降}} |
||
| {{G|Broadwell 以降}} |
| {{G|Broadwell 以降}} |
||
| {{G|Radeon HD 7000 以降}} |
| {{G|Radeon HD 7000 以降}} |
||
|- |
|- |
||
− | ! |
+ | ! H.265/HEVC 8bit |
| {{G|Skylake 以降}} |
| {{G|Skylake 以降}} |
||
| {{G|Skylake 以降}} |
| {{G|Skylake 以降}} |
||
− | | |
+ | | {{G|Radeon 400 以降}} |
|- |
|- |
||
− | ! |
+ | ! H.265/HEVC 10bit |
| {{G|Kaby Lake 以降}} |
| {{G|Kaby Lake 以降}} |
||
− | | rowspan=2 {{G| |
+ | | rowspan=2 {{G|Kaby Lake 以降}} |
+ | | {{G|Raven Ridge + Radeon RX 5000 以降}} |
||
|- |
|- |
||
! VP8 |
! VP8 |
||
312行目: | 363行目: | ||
| rowspan=2 {{G|Icelake 以降}} |
| rowspan=2 {{G|Icelake 以降}} |
||
|- |
|- |
||
− | ! VP9 10bit |
+ | ! VP9 10bit & 12bit |
− | | {{No}} |
+ | | rowspan=2 {{No}} |
+ | |- |
||
+ | ! AV1 8bit & 10bit |
||
+ | | {{G|Alchemist 以降}} |
||
+ | | {{G|Radeon RX 7900 以上/以降}} |
||
|} |
|} |
||
− | * <sup>1</sup> GeForce GTX 750 まで |
+ | * <sup>1</sup> GeForce GTX 750 まで。 |
− | * <sup>2</sup> {{aur|libva-intel-driver-g45-h264}} |
+ | * <sup>2</sup> 代わりに {{aur|libva-intel-driver-g45-h264}} によってサポートされています。 |
− | * <sup>3</sup> Hybrid VP8 エンコーダ |
+ | * <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 ドライバ === |
|
− | |||
− | {{Note|VDPAU は2015年9月から更新されておらず VP8 と VP9 をサポートしていません [https://gitlab.freedesktop.org/vdpau/libvdpau]。}} |
||
{| class="wikitable" style="text-align:center;" |
{| class="wikitable" style="text-align:center;" |
||
! コーデック |
! コーデック |
||
+ | ! 色深度 |
||
! {{pkg|mesa-vdpau}} [https://www.x.org/wiki/RadeonFeature/] [https://nouveau.freedesktop.org/wiki/VideoAcceleration/] |
! {{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=5 | デコード |
! colspan=5 | デコード |
||
|- |
|- |
||
− | ! |
+ | ! MPEG-2 |
+ | ! 8bit |
||
− | | {{G|Radeon R300 以降 <br> GeForce 8 以降<sup>1</sup>}} |
||
+ | | {{G|Radeon R600 以降 <br> GeForce 8 以降<sup>1</sup>}} |
||
| {{G|GeForce 8 以降}} |
| {{G|GeForce 8 以降}} |
||
− | | rowspan= |
+ | | rowspan=3 {{No}} |
|- |
|- |
||
+ | ! H.263/MPEG-4 Visual |
||
− | ! MPEG4 |
||
+ | ! 8bit |
||
| {{G|Radeon HD 6000 以降 <br> GeForce 200 以降<sup>1</sup>}} |
| {{G|Radeon HD 6000 以降 <br> GeForce 200 以降<sup>1</sup>}} |
||
| {{G|GeForce 200 以降}} |
| {{G|GeForce 200 以降}} |
||
|- |
|- |
||
+ | ! VC-1 |
||
− | ! AVC (H.264) |
||
+ | ! 8bit |
||
+ | | {{G|Radeon HD 2000 以降 <br> GeForce 9300 以降<sup>1</sup>}} |
||
+ | | {{G|GeForce 8 以降<sup>2</sup>}} |
||
+ | |- |
||
+ | ! H.264/MPEG-4 AVC |
||
+ | ! 8bit |
||
| {{G|Radeon HD 2000 以降 <br> GeForce 8 以降<sup>1</sup>}} |
| {{G|Radeon HD 2000 以降 <br> GeForce 8 以降<sup>1</sup>}} |
||
| {{G|GeForce 8 以降}} |
| {{G|GeForce 8 以降}} |
||
− | | [[#VA-API]] を参照 |
+ | | [[#VA-API ドライバ]] を参照 |
|- |
|- |
||
− | ! |
+ | ! rowspan=2 | H.265/HEVC |
+ | ! 8bit |
||
| {{G|Radeon R9 Fury 以降}} |
| {{G|Radeon R9 Fury 以降}} |
||
− | | {{G|GeForce 900 以降<sup> |
+ | | {{G|GeForce 900 以降<sup>3</sup>}} |
− | | rowspan= |
+ | | rowspan=6 {{No}} |
|- |
|- |
||
− | ! |
+ | ! 10bit |
| {{G|Radeon 400 以降}} |
| {{G|Radeon 400 以降}} |
||
− | | {{No}}<sup> |
+ | | {{No}}<sup>4</sup> |
|- |
|- |
||
+ | ! rowspan=2 | VP9 |
||
− | ! VC1 |
||
+ | ! 8bit |
||
− | | {{G|Radeon HD 2000 以降 <br> GeForce 9300 以降<sup>1</sup>}} |
||
− | | {{G| |
+ | | rowspan=2 {{G|Raven Ridge + Radeon RX 5000 以降}} |
+ | | {{G|GeForce 900 以降<sup>3</sup>}} |
||
+ | |- |
||
+ | ! 10bit/12bit |
||
+ | | {{No}}<sup>4</sup> |
||
+ | |- |
||
+ | ! rowspan=2 | AV1 |
||
+ | ! 8bit |
||
+ | | rowspan=2 {{G|Radeon RX 6600 以上/以降}} |
||
+ | | {{G|GeForce 30 以降}}<sup>5</sup> |
||
+ | |- |
||
+ | ! 10bit |
||
+ | | {{No}}<sup>4</sup> |
||
|} |
|} |
||
− | * <sup>1</sup> GeForce GTX 750 まで |
+ | * <sup>1</sup> GeForce GTX 750 まで。 |
− | * <sup>2</sup> GeForce |
+ | * <sup>2</sup> GeForce 8800 Ultra、8800 GTX、8800 GTS (320/640 MB) は[[Wikipedia:Nvidia PureVideo|除く]]。 |
+ | * <sup>3</sup> GeForce GTX 970 と GTX 980 は除く。 |
||
− | * <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>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>4</sup> GeForce 8800 Ultra, 8800 GTX, 8800 GTS (320/640 MB) は[[Wikipedia:Nvidia PureVideo|除く]]。 |
||
+ | * <sup>5</sup> ドライババージョン 510 から [https://www.phoronix.com/scan.php?page=news_item&px=NVIDIA-510-Linux-Beta] |
||
− | + | === NVIDIA ドライバのみ === |
|
{| class="wikitable" style="text-align:center;" |
{| class="wikitable" style="text-align:center;" |
||
! rowspan=2 | コーデック |
! rowspan=2 | コーデック |
||
− | ! colspan=2 | {{Pkg|nvidia-utils}} |
+ | ! colspan=2 | {{Pkg|nvidia-utils}} [https://developer.nvidia.com/nvidia-video-codec-sdk] |
|- |
|- |
||
+ | ! 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| |
+ | | rowspan=3 {{G|Fermi 以降<sup>1</sup>}} |
| rowspan=2 {{No}} |
| rowspan=2 {{No}} |
||
|- |
|- |
||
! VC-1 |
! VC-1 |
||
|- |
|- |
||
− | ! |
+ | ! H.264/MPEG-4 AVC |
| {{G|Kepler 以降<sup>2</sup>}} |
| {{G|Kepler 以降<sup>2</sup>}} |
||
|- |
|- |
||
− | ! |
+ | ! H.265/HEVC 8bit |
| rowspan=2 {{G|Maxwell (GM206) 以降}} |
| rowspan=2 {{G|Maxwell (GM206) 以降}} |
||
| {{G|Maxwell (2nd Gen) 以降}} |
| {{G|Maxwell (2nd Gen) 以降}} |
||
|- |
|- |
||
− | ! |
+ | ! H.265/HEVC 10bit |
| {{G|Pascal 以降}} |
| {{G|Pascal 以降}} |
||
|- |
|- |
||
397行目: | 476行目: | ||
| {{G|Maxwell (GM206) 以降}} |
| {{G|Maxwell (GM206) 以降}} |
||
|- |
|- |
||
− | ! VP9 10bit |
+ | ! VP9 10bit & 12bit |
| {{G|Pascal 以降}} |
| {{G|Pascal 以降}} |
||
+ | |- |
||
+ | ! AV1 8bit & 10bit |
||
+ | | {{G|Ampere 以降<sup>3</sup>}} |
||
+ | | {{G|Ada Lovelace 以降}} |
||
|} |
|} |
||
* <sup>1</sup> GM108 は除く (未サポート) |
* <sup>1</sup> GM108 は除く (未サポート) |
||
* <sup>2</sup> GM108 と GP108 は除く (未サポート) |
* <sup>2</sup> GM108 と GP108 は除く (未サポート) |
||
+ | * <sup>3</sup> A100 は除く (未サポート) |
||
+ | === アプリケーションサポート === |
||
− | === ソフトウェア === |
||
{| class="wikitable" |
{| class="wikitable" |
||
+ | ! rowspan=2 | アプリケーション |
||
− | ! |
||
+ | ! colspan=3 | デコード |
||
+ | ! colspan=2 | エンコード |
||
+ | ! rowspan=2 | ドキュメント |
||
+ | |- |
||
! VA-API |
! VA-API |
||
! VDPAU |
! VDPAU |
||
+ | ! NVDEC |
||
− | ! NVDECODE |
||
+ | ! VA-API |
||
− | ! ドキュメント |
||
+ | ! NVENC |
||
|- |
|- |
||
! [[FFmpeg]] |
! [[FFmpeg]] |
||
417行目: | 506行目: | ||
| {{Yes}} |
| {{Yes}} |
||
| {{Yes}} |
| {{Yes}} |
||
+ | | {{Yes}} |
||
− | | [[FFmpeg#ハードウェアアクセラレーション]] |
||
+ | | {{Yes}} |
||
+ | | [[FFmpeg#ハードウェアビデオアクセラレーション]] |
||
|- |
|- |
||
! [[GStreamer]] |
! [[GStreamer]] |
||
− | | {{Yes}} |
+ | | {{Yes}} |
+ | | {{No}} |
||
− | | {{Yes}} ({{pkg|gst-plugins-bad}}) |
||
− | | {{Yes}} |
+ | | {{Yes}} |
+ | | {{Yes}} |
||
+ | | {{Yes}} |
||
| [[GStreamer#ハードウェアアクセラレーション]] |
| [[GStreamer#ハードウェアアクセラレーション]] |
||
|- |
|- |
||
428行目: | 521行目: | ||
| {{Yes}} |
| {{Yes}} |
||
| {{Yes}} |
| {{Yes}} |
||
− | | {{ |
+ | | {{No}} |
+ | | {{-}} |
||
− | | [[Kodi#ヒントとテクニック]] |
||
+ | | {{-}} |
||
+ | | [[Kodi#ヒントとテクニック]] |
||
|- |
|- |
||
! [[mpv]] |
! [[mpv]] |
||
435行目: | 530行目: | ||
| {{Yes}} |
| {{Yes}} |
||
| {{Yes}} |
| {{Yes}} |
||
+ | | {{-}} |
||
+ | | {{-}} |
||
| [[mpv#ハードウェアデコード]] |
| [[mpv#ハードウェアデコード]] |
||
|- |
|- |
||
441行目: | 538行目: | ||
| {{Yes}} |
| {{Yes}} |
||
| {{No}} |
| {{No}} |
||
+ | | {{-}} |
||
+ | | {{-}} |
||
| [[VLC media player#ハードウェアアクセラレーションのサポート]] |
| [[VLC media player#ハードウェアアクセラレーションのサポート]] |
||
|- |
|- |
||
! [[MPlayer]] |
! [[MPlayer]] |
||
+ | | {{Yes}}<sup>1</sup> |
||
− | | {{Y|{{AUR|mplayer-vaapi}}}} |
||
| {{Yes}} |
| {{Yes}} |
||
| {{No}} |
| {{No}} |
||
+ | | {{-}} |
||
+ | | {{-}} |
||
| [[MPlayer#ハードウェアアクセラレーション]] |
| [[MPlayer#ハードウェアアクセラレーション]] |
||
|- |
|- |
||
! [[Flash]] |
! [[Flash]] |
||
+ | | {{No}}<sup>2</sup> |
||
− | | {{Y|NPAPI のみ: <br> {{AUR|freshplayerplugin}}}} |
||
+ | | {{Yes}}<sup>2</sup> |
||
− | | {{Y|NPAPI のみ: <br> {{Pkg|flashplugin}} または <br> {{AUR|freshplayerplugin}}}} |
||
| {{No}} |
| {{No}} |
||
+ | | {{-}} |
||
+ | | {{-}} |
||
| [[ブラウザプラグイン#Adobe Flash Player]] |
| [[ブラウザプラグイン#Adobe Flash Player]] |
||
|- |
|- |
||
! [[Chromium]] |
! [[Chromium]] |
||
+ | | {{Yes}} |
||
− | | {{Y|{{AUR|chromium-vaapi}}}} |
||
| {{No}} |
| {{No}} |
||
| {{No}} |
| {{No}} |
||
+ | | {{Yes}} |
||
− | | [[Chromium#設定]] |
||
+ | | {{No}} |
||
+ | | [[Chromium#ハードウェアビデオアクセラレーション]] |
||
|- |
|- |
||
! [[Firefox]] |
! [[Firefox]] |
||
465行目: | 570行目: | ||
| {{No}} |
| {{No}} |
||
| {{No}} |
| {{No}} |
||
− | | |
+ | | {{No|1=https://bugzilla.mozilla.org/show_bug.cgi?id=1658900}} |
+ | | {{No}} |
||
+ | | [[Firefox#ハードウェアビデオアクセラレーション]] |
||
+ | |- |
||
+ | ! [[GNOME/Web]] |
||
+ | | colspan=3 {{C|GStreamer}} |
||
+ | | {{C|?}} |
||
+ | | {{C|?}} |
||
+ | | [[GNOME Web#ビデオ]] |
||
|} |
|} |
||
+ | * <sup>1</sup> VA-API サポートは代わりに {{AUR|mplayer-vaapi}} によって提供されています。 |
||
− | {{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])。}} |
||
+ | * <sup>2</sup> VDPAU は NPAPI プラグインによってのみサポートされています。部分的な VA-API と VDPAU アクセラレーションを提供する、PPAPI プラグインから NPAPI ブラウザへの実験的なアダプタが利用できます。 |
||
+ | |||
+ | {{TranslationStatus|Hardware video acceleration|2024-07-23|812272}} |
2024年9月3日 (火) 22:43時点における最新版
ハードウェアビデオアクセラレーションにより、ビデオカードで動画をデコード/エンコードすることができ、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。
ドライバとアプリケーションのサポートの包括的な概要については、#比較一覧 を参照してください。
インストール
Intel
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 によってサポートされています。
- Skylake 及びそれ以降は linux-firmware も必要です。
VAAPI がサポートするハードウェアと機能 もご覧ください。
NVIDIA
Nouveau オープンソースドライバーは VA-API と VDPAU に対応しています:
- GeForce GTX 750 までの GeForce 8 シリーズ及びそれ以降の GPU は libva-mesa-driver と mesa-vdpau によってサポートされています。
- (現在 NVIDIA のバイナリドライバーから抽出される) nouveau-fwAUR ファームウェアパッケージが 必要 です。
NVIDIA プロプライエタリドライバは nvidia-utils によってサポートされています:
- GeForce 8 シリーズ及びそれ以降の GPU における VDPAU
- Fermi 及びそれ以降の GPU における NVDEC [1]
- Kepler 及びそれ以降の GPU における NVENC
AMD/ATI
AMD と ATI オープンソースドライバーは VA-API と VDPAU に対応しています:
- VA-API は Radeon HD 2000 及びそれ以降の GPU で libva-mesa-driver によってサポートされています。
- VDPAU は Radeon R600 及びそれ以降の GPU で mesa-vdpau によってサポートされています。
AMDGPU PRO プロプライエタリドライバーは AMDGPU ドライバー上で動作し、AMF に加えて VA-API と VDPAU に対応しています。
- Fiji 及びそれ以降の GPU における AMF は amf-amdgpu-proAUR によってサポートされています。
変換レイヤー
- libva-vdpau-driver — VA-API を提供する VDPAU ベースのバックエンド。
- 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 ...
設定
ビデオドライバは 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 ドライバの場合、あなたの GPU に合わせて適切なドライババージョンを設定してください。#確認 を参照。
- オープンソースの Nouveau ドライバの場合、
nouveau
に設定してください。 - NVIDIA のプロプライエタリなバージョンの場合、
nvidia
に設定してください。
アプリケーションの設定
マルチメディアフレームワーク:
ビデオプレイヤ:
ウェブブラウザ:
マルチメディア録画/ストリーミング:
トラブルシューティング
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
を 環境変数 または driconf
として設定します。[4]
比較一覧
VA-API ドライバ
コーデック | libva-intel-driver [5] | intel-media-driver [6] | libva-mesa-driver [7] [8] | libva-vdpau-driver (VDPAU アダプタ) |
libva-nvidia-driver (NVDEC アダプタ) |
---|---|---|---|---|---|
デコード | |||||
MPEG-2 | GMA 4500 以降 | Broadwell 以降 | Radeon HD 6000 以降 GeForce 8 以降1 |
#VDPAU ドライバ を参照 | #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 | No | |
VP9 8bit | Broxton 以降 Hybrid: Haswell refresh から Skylake3 |
Broxton/Apollo Lake 以降 | Raven Ridge + Radeon RX 5000 以降 | #VDPAU ドライバ を参照5 | |
VP9 10bit & 12bit | Kaby Lake 以降 | Kaby Lake 以降 | No | ||
AV1 8bit & 10bit | No | Tiger Lake 以降 | Radeon RX 6600 以上/以降 | ||
エンコード | |||||
MPEG-2 | Ivy Bridge 以降 | Broadwell 以降 Broxton/Apollo Lake を除く |
No | – | No6 |
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 以降 | Icelake 以降 | |||
VP9 10bit & 12bit | No | ||||
AV1 8bit & 10bit | Alchemist 以降 | Radeon RX 7900 以上/以降 |
- 1 GeForce GTX 750 まで。
- 2 代わりに libva-intel-driver-g45-h264AUR によってサポートされています。
- 3 Hybrid VP8 エンコーダと VP9 エンコーダは intel-hybrid-codec-driver-gitAUR によってサポートされています。
- 4 MPEG-4 Part 2 は VAAPI の制限のためデフォルトで無効化されています。使用してみるには、
VAAPI_MPEG4_ENABLED=true
環境変数を設定してください。 - 5 実験的な VP9 サポートは代わりに libva-vdpau-driver-vp9-gitAUR によって提供されています。
- 6 NVIDIA CUDA アダプタコーデックのサポートは活発に開発中であり、これは変更される可能性があります [9]。
VDPAU ドライバ
コーデック | 色深度 | mesa-vdpau [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 |
- 1 GeForce GTX 750 まで。
- 2 GeForce 8800 Ultra、8800 GTX、8800 GTS (320/640 MB) は除く。
- 3 GeForce GTX 970 と GTX 980 は除く。
- 4 NVIDIA の実装は8ビットストリームまでに制限されています [12] [13]。
- 5 ドライババージョン 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 以降 |
- 1 GM108 は除く (未サポート)
- 2 GM108 と GP108 は除く (未サポート)
- 3 A100 は除く (未サポート)
アプリケーションサポート
アプリケーション | デコード | エンコード | ドキュメント | |||
---|---|---|---|---|---|---|
VA-API | VDPAU | NVDEC | VA-API | NVENC | ||
FFmpeg | Yes | Yes | Yes | Yes | Yes | FFmpeg#ハードウェアビデオアクセラレーション |
GStreamer | Yes | No | Yes | Yes | Yes | GStreamer#ハードウェアアクセラレーション |
Kodi | Yes | Yes | No | – | – | Kodi#ヒントとテクニック |
mpv | Yes | Yes | Yes | – | – | mpv#ハードウェアデコード |
VLC media player | Yes | Yes | No | – | – | VLC media player#ハードウェアアクセラレーションのサポート |
MPlayer | Yes1 | Yes | No | – | – | MPlayer#ハードウェアアクセラレーション |
Flash | No2 | Yes2 | No | – | – | ブラウザプラグイン#Adobe Flash Player |
Chromium | Yes | No | No | Yes | No | Chromium#ハードウェアビデオアクセラレーション |
Firefox | Yes | No | No | No | No | Firefox#ハードウェアビデオアクセラレーション |
GNOME/Web | GStreamer | ? | ? | GNOME Web#ビデオ |
- 1 VA-API サポートは代わりに mplayer-vaapiAUR によって提供されています。
- 2 VDPAU は NPAPI プラグインによってのみサポートされています。部分的な VA-API と VDPAU アクセラレーションを提供する、PPAPI プラグインから NPAPI ブラウザへの実験的なアダプタが利用できます。