DebianでJasper LakeのQSVエンコード環境ビルド手順

 昨日、CHUWIのHeroBox(Celeron N5100 Jasper Lake)で無事にQSVエンコードが出来るようになったので、前提パッケージと手順を再確認。

 Jasper Lakeの場合、Debian 11だとQSVエンコードに必要なデバイスファイルの/dev/dri/renderD128が無い(/dev/driディレクトリごと存在しない)ので、Debian 12 RC1(カーネル6.1.0)を使った。カーネルビルドとかモジュールビルドで何とかなるのかも知れないけど、その辺は全然判ってないので今回は考えない方向で。

 Jasper LakeはGemini Lake Refreshまでと違い、QSVエンコードのためにHuCを有効化する必要があるので、まずは/etc/modprobe.d/i915.confをoptions i915 enable_guc=2の内容で新規作成して再起動することでHuCが有効化される。

echo 'options i915 enable_guc=2' | sudo tee /etc/modprobe.d/i915.conf && sudo reboot

 QSVエンコードIntel Media SDK(libmfx)に対応したFFmpegが必要で、libmfxにはIntel Media Driver、LibVA、GmmLibが必要になる。libmfxは/usr/localじゃなく/opt/intel/mediasdkにインストールされるので、/etc/ld.so.conf.d/imsdk.conf等でライブラリのパスを、FFmpegでconfigureする際にはPKG_CONFIG_PATHでpkgconfigのパスを指定する必要がある。

sudo apt install git gcc nasm pkg-config make cmake g++ pkg-config libdrm-dev autoconf libtool -y
git clone https://github.com/intel/libva && cd libva && ./autogen.sh && make && sudo make install && cd ..
git clone https://github.com/intel/gmmlib && cd gmmlib && mkdir build && cd build && cmake .. && make && sudo make install && cd ../..
git clone https://github.com/intel/media-driver && cd media-driver && mkdir build && cd build && cmake .. && make && sudo make install && cd ../..
git clone https://github.com/Intel-Media-SDK/MediaSDK && cd MediaSDK && mkdir build && cd build && cmake .. && make && sudo make install && cd ../..
echo '/opt/intel/mediasdk/lib' | sudo tee /etc/ld.so.conf.d/imsdk.conf && sudo ldconfig
git clone https://github.com/FFmpeg/FFmpeg && cd FFmpeg && PKG_CONFIG_PATH=/opt/intel/mediasdk/lib/pkgconfig ./configure --enable-libmfx && make && sudo make install && cd ..

 FFmpegはlibmfxに対応させるためにconfigureで--enable-libmfxを指定(--enable-vaapiは省略しても有効になる模様)してる。今回は録画したTSファイルをmp4ファイルに変換するためにしか使わないので他のコーデックの有効化等は行っていない。ビルドおよびインストールが終わったら真っ黒な映像と無音の音声を元にQSVエンコードでmp4ファイルが作成できることを確認してみた。

sudo ffmpeg -hwaccel qsv -hwaccel_output_format qsv -f lavfi -i color=c=black:s=1920x1080:r=30000/1001:d=60 -f lavfi -i 'aevalsrc=0|0:c=stereo:s=44100:d=60' -c:v h264_qsv -c:a aac -y sample.mp4

 定時後、第二神明で帰宅。晩御飯は焼き肉としじみの味噌汁。りこぴの配信が始まったので見る。夜9時すぎにお茶入れてもらって一服。
 軽く未読した後、眠くてソファで横になって軽くウトウトした後、布団に入ってウトウトした後、デレステのデイリーだけやってから就寝。