妄想日記 by 妄想エンジン


FreeBSD と vaapi であそぶ。

ということで、いつの間にか Intel QSV が vaapi 経由で使えるようになっていた。
作ってくれた方々、ありがとうございます。

さっそくインストール。

>sudo pkg install libva-intel-driver libva-intel-media-driver libva-utils drm-kmod

ということで、さっくりパッケージ入れる。

> vainfo
error: XDG_RUNTIME_DIR not set in the environment.
libva info: VA-API version 1.6.0
libva error: vaGetDriverNameByIndex() failed with unknown libva error, driver_name = (null)
vaInitialize failed with error code -1 (unknown libva error),exit

あれ?kldstat してもちゃんと入っているけどな、と思っていたら、サーバ機なのでヘッドレスということを忘れてた。
とりあえず、VGAケーブル繋ぎなおしてリブート。この機会についでに freebsd-update もしておこう。

ふたたび立ち上がってきたのでもう一回 vainfo

> vainfo
error: XDG_RUNTIME_DIR not set in the environment.
libva info: VA-API version 1.8.0
libva error: vaGetDriverNameByIndex() failed with unknown libva error, driver_name = (null)
vaInitialize failed with error code -1 (unknown libva error),exit

あれれ?もしかして?

> sudo vainfo
Password:
error: XDG_RUNTIME_DIR not set in the environment.
MobaXterm X11 proxy: Unsupported authorisation protocol
error: can't connect to X server!
libva info: VA-API version 1.8.0
libva info: Trying to open /usr/local/lib/dri/iHD_drv_video.so
libva info: Found init function __vaDriverInit_1_8
libva info: va_openDriver() returns 0
vainfo: VA-API version: 1.8 (libva 2.8.0)
vainfo: Driver version: Intel iHD driver for Intel(R) Gen Graphics - 20.2.0 (intel-media-20.2.0)
vainfo: Supported profile and entrypoints
VAProfileNone : VAEntrypointVideoProc
VAProfileNone : VAEntrypointStats
VAProfileMPEG2Simple : VAEntrypointVLD
VAProfileMPEG2Simple : VAEntrypointEncSlice
VAProfileMPEG2Main : VAEntrypointVLD
VAProfileMPEG2Main : VAEntrypointEncSlice
VAProfileH264Main : VAEntrypointVLD
VAProfileH264Main : VAEntrypointEncSlice
VAProfileH264Main : VAEntrypointFEI
VAProfileH264Main : VAEntrypointEncSliceLP
VAProfileH264High : VAEntrypointVLD
VAProfileH264High : VAEntrypointEncSlice
VAProfileH264High : VAEntrypointFEI
VAProfileH264High : VAEntrypointEncSliceLP
VAProfileVC1Simple : VAEntrypointVLD
VAProfileVC1Main : VAEntrypointVLD
VAProfileVC1Advanced : VAEntrypointVLD
VAProfileJPEGBaseline : VAEntrypointVLD
VAProfileJPEGBaseline : VAEntrypointEncPicture
VAProfileH264ConstrainedBaseline: VAEntrypointVLD
VAProfileH264ConstrainedBaseline: VAEntrypointEncSlice
VAProfileH264ConstrainedBaseline: VAEntrypointFEI
VAProfileH264ConstrainedBaseline: VAEntrypointEncSliceLP
VAProfileVP8Version0_3 : VAEntrypointVLD
VAProfileHEVCMain : VAEntrypointVLD
VAProfileHEVCMain : VAEntrypointEncSlice
VAProfileHEVCMain : VAEntrypointFEI

やったぜ!

ということで、次は ffmpeg で動けばいろいろ捗るぞ。

> ffmpeg -hwaccel vaapi -hwaccel_device /dev/dri/card0 -hwaccel_output_format vaapi \
-i test.ts -vf 'hwupload,deinterlace_vaapi' -qp 23 -c:v h264_vaapi -c:a copy -absf aac_adtstoasc \
-f mp4 test.mp4

動きました。hevc_vaapi でも動いてばっちりです。あとは適当にパラメータ調整しよう。

とりあえず、ブートの際にモニタつなげばいけたので、モニタは外しちゃったけど、再起動で動かなくなりそうなので、VGAのダミープラグを発注しよう。

追記:
jail の中で動かすには、 /etc/devfs.rules に新たにルール追加して dri* と drm* を見せてあげれば動きました。やったぜ。

ツイート
|top |アフィリエイト |windowsネタ |料理メモ |コンタクト |twitter |
さわやかなエロスを目指す--妄想エンジン ©1996-2022
コンテンツ配信