VDPAU

From Gentoo Wiki
Jump to:navigation Jump to:search
This page is a translated version of the page VDPAU and the translation is 100% complete.
Resources
Other languages:

この記事では Video Decode and Presentation API for Unix (VDPAU) をセットアップする方法について説明します。

ハードウェアサポート

ドライバ チップセット
nvidia-drivers GeForce 8 (2. Generation) PureVideo HD 以降。対応しているカードの完全な一覧については/usr/share/doc/nvidia-drivers-<version>/html/supportedchips.html を参照してください。
S3 Chrome 430 GT 以降
Radeon r300 以降でサポートが利用可能です。

インストール

make.conf

Portage は、各パッケージで VDPAU のサポートを有効化するためのグローバル USE フラグである vdpau を認知しています。この USE フラグを有効化することで x11-libs/libvdpau が自動的に取り込まれるでしょう:

ファイル /etc/portage/make.conf
USE="vdpau"

上の USE フラグを追加したら、変更を反映するためにシステムを更新してください:

root #emerge --ask --changed-use --deep @world

USE フラグ

libvdpau の USE フラグは:

USE flags for x11-libs/libvdpau VDPAU wrapper and trace libraries

doc Add extra documentation (API, Javadoc, etc). It is recommended to enable per package instead of globally
dri Enable direct rendering: used for accelerated 3D and some 2D, like DMA
test Enable dependencies and/or preparations necessary to run tests (usually controlled by FEATURES=test but can be toggled independently)

AMD/Radeon に固有の手順

mplayer、vlc、vdpauinfo などのアプリケーションはデフォルトで、libvdpau ライブラリを利用して VDPAU 固有の機能呼び出しを行います。そのとき、このライブラリは適切なバックエンドドライバを動的にロードします。

これを書いている時点で、どのバックエンドドライバをロードする必要があるか自動的に決定する機構は、確立されていません。現時点で libvdpau は NVIDIA バックエンドドライバをロードするようにハードコードされています[1]。つまり、VDPAU は Radeon カードでは正常に動作しないでしょう。この挙動を変更するための唯一可能な方法は、正しいバックエンドドライバを手動で指定することです。

まず、対象ハードウェアに関連付けられたドライバの名前を見つける必要があります (ここでは vdpau USE フラグが有効化され、システムが正常に更新されていると仮定します)。名前を見つけるための一つの方法は、Xorg のログファイルを確認することです:

user $grep -i vdpau /var/log/Xorg.0.log
(II) RADEON(0): [DRI2]   VDPAU driver: r300

出力中に VDPAU ドライバが適切に初期化されているかが表示されるでしょう (上の出力サンプルでは、(II) の 2 文字で始まる行にあります)。バックエンドドライバの名前も明示されているはずです (出力サンプルでは r300)。

これで VDPAU_DRIVER 環境変数を使ってバックエンドドライバの名前を手動で指定できます。これを行うには、次の行を ~/.bashrc ファイルに追加する必要があります (グラフィカル環境を実行しようとしているユーザのデフォルトシェルが Bash の場合)。上のサンプルケースでは次の行のようにすればよいでしょう:

ファイル ~/.bashrcグラフィカルインターフェースを実行するユーザとしてログインした状態で
export VDPAU_DRIVER=r300

これで x11-misc/vdpauinfo がエラーメッセージではなく、現在の VDPAU 設定についての情報を表示するようになるはずです。

user $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     2048  2048  NV12 YV12
422     2048  2048  NV12 YV12
444     2048  2048  NV12 YV12 Y8U8V8A8 V8U8Y8A8
 
Decoder capabilities:
 
name               level macbs width height
-------------------------------------------
MPEG1                16 16384  2048  2048
MPEG2_SIMPLE         16 16384  2048  2048
MPEG2_MAIN           16 16384  2048  2048
...
メモ
AMD GPU がプライマリ GPU ではない場合は、VDPAU を使用できるアプリケーションに対して DRI_PRIME=1 変数も設定するべきです。

追加のソフトウェア

  • x11-misc/vdpauinfo: VDPAU がサポートされているかどうかを表示します。
  • VDPAU は VAAPI バックエンドとして使用することができます。

NVIDIA に固有の手順

プロプライエタリドライバを使用すれば vdpau は特に設定しなくても動作しますが、nouveau ドライバではファームウェアが必要になります:

root #emerge nvidia-firmware

設定

VDPAU を利用できるようにするために、プログラムの設定ファイルを修正する必要しなくてはならない場合があります。

mplayer

利用可能な VDPAU ビデオコーデックを検出してください:

user $mplayer -vc help | grep --color vdpau

それらを mplayer 設定ファイルに追加してください:

ファイル /etc/mplayer/mplayer.conf
[vo.vdpau]
vc=ffh264vdpau,ffodivxvdpau,ffmpeg12vdpau,
メモ
vc 行の末尾のコンマは重要です! これは、VDPAU ドライバが失敗した場合に他の動画出力メソッドにフォールバックするよう MPlayer に伝えます。

関連項目

  • AMDGPU — Vega、Raven Ridge およびそれ以降 GPU のための、Display Core (DC) フレームワークを利用した、次世代ファミリのオープンソースグラフィックスドライバです。しかしながら、GCN1.0+ ベースの比較的新しい AMD/ATI Radeon グラフィックスカード、具体的には Southern Islands、Sea Islands、Volcanic Islands、および Arctic Islands チップセットも処理することができます。
  • AMDGPU-PRO — the next generation closed source graphics component that operates on top of the open source AMDGPU drivers for newer AMD/ATI Radeon graphics cards.
  • VAAPI — provides access to graphics hardware (GPU) acceleration for video processing.
  • Vulkan — a next-generation graphics API created by The Khronos Group.
  • Xorg/Hardware 3D acceleration guide — GentooのXorgでDRMを使用して3Dアクセラレーションを動作させるためのガイドです。

参照