Ubuntu + Radeonでffmpegを使う(個人的最終形態 VAAPI版)(AMFもあるよ)

Ubuntu
スポンサーリンク

以前この記事で、Ubuntu + Intel ARCでffmpegを使う記事を書きました。
今回はUbuntu + Radeonの記事です。

RadeonといえばAMFでしょ!と、以前は自分も思っていました。
最近はAMDもAMFはあまり積極的では無いようで。

なので、VAAPI版です。

#!/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を有効化するのに必要

#ソフトウェアエンコードと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のみ)

という部分がなくなっているだけです。

以上で今回の記事は終わりですが、一応以前自分が使っていたAMF導入スクリプトを下に残しておきます。

一応AMF導入

amdgpuをamf付きでインストール。

sudo amdgpu-install --usecase=amf

もしこの時、「E: パッケージ amf-amdgpu-pro が見つかりません」と表示されるなら、現在登録されているリポジトリには「amf」は含まれていないということになります。

「amdgpu-install_6.4.60403-1_all.deb」や「amdgpu-install_6.4.60404-1_all.deb」には入っていました。
もし、それらのリポジトリを登録していたら、

sudo apt update
sudo amdgpu-install --usecase=amf

を実行して、

そうしたならば、今度は以下のように実行します。

#!/bin/bash

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

sudo apt -y update
sudo apt -y upgrade
sudo apt -y install clang
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

#ソフトウェアエンコーダ、AV1デコーダ----------------------------------------------------------

sudo apt update
sudo apt install -y libx264-dev
sudo apt install -y libx265-dev libnuma-dev
sudo apt install -y libdav1d-dev

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

cd ~
mkdir -p install
cd install
git clone https://gitlab.com/AOMediaCodec/SVT-AV1.git
cd SVT-AV1/Build/linux
export CC="clang"
export CXX="clang++"
./build.sh release
sudo ./build.sh install # インストールだけsudo

#amfのダウンロード、インストール---------------------------------------------------------------
#amfを使う場合は、amdgpuをamf付きで先にインストールすること

cd ~
mkdir -p install
cd install
git clone https://github.com/GPUOpen-LibrariesAndSDKs/AMF.git
cd AMF/amf/public/include
sudo mkdir /usr/local/include/AMF
sudo cp -r ./* /usr/local/include/AMF/

#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-amf --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 amf」を実行すると、

ffmpeg -i input.mp4 -map 0:0 -header_insertion_mode gop -c:v av1_amf -quality high_quality -b:v 3M -pix_fmt yuv420p output.mp4

といった具合でコマンド入力すれば、

というわけで、AMF導入方法でした。

今回は以上です。

コメント

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