自分のサーバーのCPUはこの間の騒動からhaswellのi5-4670Kです。
出来ればqsvを利用したいと思います。
本来ならばMSSと指定のOSをインストールするのが定石ですが、今現在CentOS6.9が走っており色々と細工をしていたので、この環境で使える道を探しました。
そこで発見したのがvaapiを利用するという事でした。
今まではchinachuで録画したものをmp4に変換するのをlibx264で任せていましたが、ここをqsvで行おうという実験です。
成果としては自分としては納得したものが出来上がったので紹介したいと思います。
まずepelを有効化します。普段必要のない方は/etc/yum.repos.d/のepelから始まる.repoを編集しenable=1をenable=0とします。
yum install epel-release
一旦古いlibvaをインストールして必要なモジュール群をインストールします。
yum -y install libva-devel libdrm-devel
古いlibvaを削除します。
yum -y remove libva-devel yum -y remove libva
libva,libva-utils,intel-vaapi-driverの1.8を取得しインストールします。intel-vaapi-driverのmasterがコンパイルに失敗するのでインストールできませんでした。(おそらくgcc周りをアップグレードすれば使えるとは思いますが)そこで1.8系のソースを展開します。
cd /usr/local/src git clone https://github.com/01org/libva cd libva git checkout -b v1.8-branch origin/v1.8-branch ./autogen.sh make sudo make install cd /usr/local/src git clone https://github.com/01org/libva-utils cd libva-utils/ git checkout -b v1.8-branch origin/v1.8-branch PKG_CONFIG_PATH=/usr/local/lib/pkgconfig ./autogen.sh make sudo make install cd /usr/local/src git clone https://github.com/01org/intel-vaapi-driver cd intel-vaapi-driver git checkout -b v1.8-branch origin/v1.8-branch PKG_CONFIG_PATH=/usr/local/lib/pkgconfig ./autogen.sh make sudo make install cd
インストール先は/usr/local/libにインストールされていますのでldconfigで読み込みできるようconfファイルを新規で作成します。
vi /etc/ld.so.conf.d/usrlocal.conf
中身はこんな感じ
/usr/local/lib
そしてldconfig実行
sudo ldconfig
正常に読み込まれているかどうかを確認
$ ldconfig -p | grep libva libva.so.1 (libc6,x86-64) => /usr/local/lib/libva.so.1 libva.so (libc6,x86-64) => /usr/local/lib/libva.so libva-x11.so.1 (libc6,x86-64) => /usr/local/lib/libva-x11.so.1 libva-x11.so (libc6,x86-64) => /usr/local/lib/libva-x11.so libva-tpi.so.1 (libc6,x86-64) => /usr/local/lib/libva-tpi.so.1 libva-tpi.so (libc6,x86-64) => /usr/local/lib/libva-tpi.so libva-glx.so.1 (libc6,x86-64) => /usr/local/lib/libva-glx.so.1 libva-glx.so (libc6,x86-64) => /usr/local/lib/libva-glx.so libva-drm.so.1 (libc6,x86-64) => /usr/local/lib/libva-drm.so.1 libva-drm.so (libc6,x86-64) => /usr/local/lib/libva-drm.so
ここで一旦リブートします。
reboot
まずiGPUが認識されているかを確認します。
$ lspci | grep 00:02.0 00:02.0 VGA compatible controller: Intel Corporation Xeon E3-1200 v3/4th Gen Core Processor Integrated Graphics Controller (rev 06)
続いてvainfoで利用可能かどうかを確認します。
$ vainfo error: can't connect to X server! libva info: VA-API version 0.40.0 libva info: va_getDriverName() returns 0 libva info: Trying to open /usr/local/lib/dri/i965_drv_video.so libva info: Found init function __vaDriverInit_0_40 libva info: va_openDriver() returns 0 vainfo: VA-API version: 0.40 (libva 1.8.3) vainfo: Driver version: Intel i965 driver for Intel(R) Haswell Desktop - 1.8.3 vainfo: Supported profile and entrypoints VAProfileMPEG2Simple : VAEntrypointVLD VAProfileMPEG2Simple : VAEntrypointEncSlice VAProfileMPEG2Main : VAEntrypointVLD VAProfileMPEG2Main : VAEntrypointEncSlice VAProfileH264ConstrainedBaseline: VAEntrypointVLD VAProfileH264ConstrainedBaseline: VAEntrypointEncSlice VAProfileH264Main : VAEntrypointVLD VAProfileH264Main : VAEntrypointEncSlice VAProfileH264High : VAEntrypointVLD VAProfileH264High : VAEntrypointEncSlice VAProfileH264MultiviewHigh : VAEntrypointVLD VAProfileH264MultiviewHigh : VAEntrypointEncSlice VAProfileH264StereoHigh : VAEntrypointVLD VAProfileH264StereoHigh : VAEntrypointEncSlice VAProfileVC1Simple : VAEntrypointVLD VAProfileVC1Main : VAEntrypointVLD VAProfileVC1Advanced : VAEntrypointVLD VAProfileNone : VAEntrypointVideoProc VAProfileJPEGBaseline : VAEntrypointVLD
こんな風に表示されればvaapiの準備は整いました。
次はffmpegを用意します。
コメント