Ubuntuでffmpegを使う(個人的最終形態 VAAPI版)

Ubuntu
スポンサーリンク

以下はこの記事の応用になります。

グラフィックスカードによってハードウェアエンコードは「nvenc」や「AMF」、「QSV」とさまざまですが、いっそ「VAAPI」に統一すれば、スクリプトに組み込む時に便利なのではないかと考えて、個人的にはこの「VAAPI版」が最終形態となっています(いまのところは)。

自分のお手製のアプリもUbuntuはこの方法を採用しています。

#!/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 clang
sudo apt -y install pkg-config
sudo apt -y install build-essential #SVT-AV1のビルドで必要
sudo apt -y install libva-dev	#ビルドでVA-APIを有効化するのに必要
sudo apt -y install intel-media-va-driver-non-free #VA-APIでエンコードに必要(intelGPUのみ)


#ソフトウェアエンコードとAV1デコードに必要なライブラリのインストール--------------------------

sudo apt install -y libx264-dev
sudo apt install -y libx265-dev libnuma-dev
sudo apt install -y libdav1d-dev #AV1のデコードで必要

#SVT-AV1のインストール-----------------------------------------------------------------

cd ~
mkdir -p install
cd install
git clone https://gitlab.com/AOMediaCodec/SVT-AV1.git
cd SVT-AV1
#git checkout v2.2.1 #最新版がビルドできなかった時にコメントアウト
cd Build/linux
export CC="clang"
export CXX="clang++"
./build.sh release
sudo ./build.sh install # インストールだけsudo

#ffmpegのダウンロード、インストール--------------------------------------------------------

cd ~
mkdir -p install
cd install
git clone https://git.ffmpeg.org/ffmpeg.git ffmpeg
cd ffmpeg

./configure --enable-libx264 --enable-libx265 --enable-libdav1d --enable-libsvtav1 --enable-vaapi --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

「sudo apt -y install intel-media-va-driver-non-free #VA-APIでエンコードに必要(intelGPUのみ)」のところは、GeForceやRadeonの場合はどのように書き換えれば良いかわからないです。とりあえずコメントアウトしてビルド→動けばOKです。

「git checkout v2.2.1 #最新版がビルドできなかった時にコメントアウト」の部分ですが、「SVT-AV1(つまりソフトウェアAV1エンコーダ)」はバージョンによってはビルドに失敗することがありましたので、そういうときはこの行のコメントアウトを削除して実行します。

Ubuntuにもhandbreakとかあるんですが、ハードウェアエンコードのやり方がわからなかったので、結局自分はffmpeg使ってます。

今回は以上です。

コメント

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