ffmpegでQSVを使おう

まずは、intelのGPUドライバをインストール。
一応断っておきますが、ubuntu 22.04用です。

#!/bin/bash

# IntelグラフィックスGPG公開キーをインストールする
wget -qO - https://repositories.intel.com/gpu/intel-graphics.key | \
  sudo gpg --yes --dearmor --output /usr/share/keyrings/intel-graphics.gpg

# パッケージリポジトリを構成する
echo "deb [arch=amd64,i386 signed-by=/usr/share/keyrings/intel-graphics.gpg] https://repositories.intel.com/gpu/ubuntu jammy client" | \
  sudo tee /etc/apt/sources.list.d/intel-gpu-jammy.list

sudo apt update -y

sudo apt install -y libze1 intel-level-zero-gpu intel-opencl-icd clinfo libze-dev intel-ocloc intel-level-zero-gpu-raytracing

sudo usermod -aG render $USER
sudo usermod -aG video $USER

続いてQSVを有効化した状態でffmpegをインストール。

#!/bin/bash

#ffmpegのビルドに必要なライブラリのインストール-----------------------------------------

sudo apt -y update
sudo apt -y upgrade
sudo apt -y install yasm
sudo apt -y install nasm
sudo apt -y install cmake
sudo apt -y install git
sudo apt -y install pkg-config
sudo apt -y install build-essential #SVT-AV1のビルドで必要になる
sudo apt -y install libva-dev	#ビルドでVA-APIを有効化するのに必要
sudo apt install -y intel-media-va-driver-non-free #VA-APIでエンコードに必要

#AV1デコーダ----------------------------------------------------------
sudo apt install -y libdav1d-dev
sudo apt install -y libvpl-dev

#QSV関連のライブラリをインストールする
sudo apt install -y libmfxgen1

#intelVPLのインストール----------------------------------------------------------------------

sudo apt -y install automake #Makefileを自動生成するためのツール
sudo apt -y install autoconf #configureスクリプトを作成
sudo apt -y install libdrm-dev #グラフィックデバイスとの直接通信を可能にする低レベルライブラリ

cd ~
mkdir -p install
cd install
git clone https://github.com/intel/vpl-gpu-rt vpl-gpu-rt
cd vpl-gpu-rt

mkdir build && cd build
cmake ..
make -j$(nproc)
sudo make install


#ffmpegのダウンロード、インストール-----------------------------------------------------------
cd ~
mkdir -p install
cd install
git clone https://git.ffmpeg.org/ffmpeg.git ffmpeg
cd ffmpeg

./configure --enable-libdav1d --enable-libvpl --enable-shared --enable-pic --enable-gpl

sudo make -j$(nproc)
sudo make install


if grep -qxF "export LD_LIBRARY_PATH=/usr/local/lib:\$LD_LIBRARY_PATH" "$HOME/.profile"; then
	echo "設定はすでに .profile に存在しています。"
else
	echo "export LD_LIBRARY_PATH=/usr/local/lib:\$LD_LIBRARY_PATH" >> "$HOME/.profile"
	echo "再起動してください"
fi

スクリプトを実行したら、システムを再起動。
再起動したら

ffmpeg -encoders | grep qsv

で、QSVが使えるか確認します。

実際の使用例は

ffmpeg -i input.mp4 -map 0:0 -c:v av1_qsv -b:v 3M -map 0:1 -c:a copy output.mkv

などで使うことができます。
「input.mp4」のところはエンコードしたいファイル名を。
「output.mkv」のところは出力したときのファイル名を書きましょう。
拡張子はmp4でもmkvでも良いですが、対応している音声ファイルはmkv形式の方が多いと思います。

今回は以上です。

コメント

タイトルとURLをコピーしました