AMDGPUでエンコード
構成
ubuntu18.04
Radeon RX580 8G
ダウンロード
AMF-1.4.9.tar.gz https://github.com/GPUOpen-LibrariesAndSDKs/AMF/releases/tag/v1.4.9
ffmpeg-4.1.3.bz2
amdgpu-pro-19.10-785425-ubuntu-18.04.tar.xz(いるかな?)
Radeon RX 580用ドライバー準備
sudo add-apt-repository ppa:oibaf/graphics-drivers
sudo apt get update
sudo apt upgrade -y
AMF-1.4.9.tar.gzを解凍して amf/public/include /usr/local/include/AMFへコピー
一応 export PATH=/usr/local/include/AMF:/usr/local/include/AMF/components:/usr/local/include/core:$PATH
sudo vi /etc/apt/source.list
# deb-src のコメント( # )をすべてはずす。
sudo apt update
sudo apt build-dep ffmpeg <- ffmpegをビルドするのに必要なファイルを入れる
ffmpeg-4.1.3.tar.bz2を解凍
tar xf ffmpeg-4.1.3.tar.bz2 && cd ffmpeg-4.1.3
./configure
make
sudo make install
試してみる。
普通に
time ffmpeg -i test.ts test.mp4
30分のtsファイルが4分で完了CPUに負荷あり 2.3G -> 512M
ハードウエアエンコード
time ffmpeg -vaapi_device /dev/dri/renderD128 -i test.ts -vf 'format=nv12,hwupload' -c:v h264_vaapi -q 28 test.mp4
役半分の時間で完了 CPU負荷ほとんど無し 2.3G -> 1.6G
-q の数値が小さくなると制度が上がり大きなふぁいるになる。