2014年3月18日火曜日

Arch LinuxでVDPAU, VAAPIでハードウェアエンコード | VDPAU, VAAPI, Intel HD Graphics 4000

Arch Linuxで、動画のGPUエンコード(VDPAU, VAAPI)を行うための設定。GPUはCPUで行う。CPUは、Intel i7-3770S(Intel® HD Graphics 4000)を使う。NVIDIAやAMDの場合は、インストールするパーッケージが異なるので[1] を参考にする。ちなみに、[2]によるとVDPAUとVAAPIの違いは、“VDPAU” is NVIDIA’s Video Decode and Presentation API for Unix, and “VAAPI” is the Video Acceleration API led by Intelらしい。

パッケージのインストール
必要なパッケージは
  1. libvdpau-va-gl
  2. libva-intel-driver
パッケージのインストール
pacmanからインストールする。libva-intel-driverはvlcの依存関係ですでにインストールされているかも。
# pacman -S libvdpau-va-gl libva-intel-driver




VDPAUを有効にする
Intel GraphicsまたはAMD Catalystを使っている場合は、VDPAU(VAAPI)を有効にする必要がある。/etc/profile.d/vdpau_vaapi.shファイルを作り、以下を記入する。
#!/bin/sh
export VDPAU_DRIVER=va_gl


このファイルに実行権限をつける。
# chmod +x /etc/profile.d/vdpau_vaapi.sh


再起動する。

VDPAUが有効になっているか確認する
yaourtからvdpauinfoをインストールする。
$ yaourt -S vdpauinfo


インストールできたら、vdpauinfoコマンドで確認する。
$ vdpauinfo
display: :0   screen: 0
[VS] Software VDPAU backend library initialized
libva info: VA-API version 0.34.0
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_34
libva info: va_openDriver() returns 0
API version: 1
Information string: OpenGL/VAAPI/libswscale backend for VDPAU

Video surface:

name   width height types
-------------------------------------------
420     1920  1080  NV12 YV12 UYVY YUYV Y8U8V8A8 V8U8Y8A8 
422     1920  1080  NV12 YV12 UYVY YUYV Y8U8V8A8 V8U8Y8A8 
444     1920  1080  NV12 YV12 UYVY YUYV Y8U8V8A8 V8U8Y8A8 

Decoder capabilities:

name               level macbs width height
-------------------------------------------
H264_BASELINE        51 16384  2048  2048
H264_MAIN            51 16384  2048  2048
H264_HIGH            51 16384  2048  2048

Output surface:
...


上のような表示がされれば成功。

各アプリケーションでの設定
VDPAUに対応しているアプリケーションとVDPAUの設定は、
  1. Adobe Flash Player(下の方法を参照)
  2. MPlayer: mplayer-vaapiをインストールして、設定の出力ドライバーをvaapiにする。
  3. gnome-player: mplayer-vaapiをインストールして、設定の出力ドライバーをvaapiにする。
  4. smplayer: mplayer-vaapiをインストールして、設定の出力ドライバーをvaapiにする。
  5. vlc: 設定のInput & Codecsから、Use GPU accelerated decodingにチェックを入れる。
Flash Playerの場合は、/etc/adobe/mms.cfgを作成して、以下を記入する。
# Enable VDPAU hardware decoding:
EnableLinuxHWVideoDecode=1


それぞれのアプリケーションで設定が必要なので、かなり面倒。


参考:
[1]VDPAU - Arch Wiki
[2]Video API Deathmatch: VDPAU vs. VAAPI

スポンサーリンク

スポンサーリンク

0 件のコメント:

コメントを投稿