私はRadeon Vega 64を持っていて、公式ウェブサイトからAMDGPU
をインストールしましたが、ここからどこに行くべきか分かりません。
ハードウェアアクセラレーションを使用して、FFmpeg
でビデオを変換したいと思います。対応するFFmpeg
コマンドとは何ですか?デバイス/ドライバーをFFmpeg
にするにはどうすればよいですか?
使用しているプラットフォームを示していないため、WindowsとLinuxの両方の手順を説明します。ケースに該当する次の手順を使用してください。
Windowsを使用している場合は、AMFを介して関連するエンコーダにアクセスできます。適切な名前はh264_amf
およびhevc_amf
、その使用法は以下を介して表示できます。
ffmpeg -h encoder=h264_amf
ffmpeg -h encoder=hevc_amf
Windows用のFFmpegバイナリを、ネイティブで、または推奨されているとおりにクロスコンパイルしてビルドする必要があります。 これ プロジェクトはそのテーマの素晴らしいスタートです。
クロスコンパイルオプションを使用する場合は、必要な機能を備えたビルドの以下の引数を渡します。
./cross_compile_ffmpeg.sh --gcc-cpu-count=12 --build-libmxf=n --disable-nonfree=n --prefer-stable=y --compiler-flavors=multi
上記の結果のビルドはnon-redistributableであり、個人的な使用のみを目的としています。
Linuxでは、オープンソースのmesa amdgpuドライバー(AMDからインストールされた独自のパッケージではない)を使用して、適切にh264_vaapiおよびhevc_vaapiという名前のVAAPIベースのエンコーダーにアクセスできます。
ffmpeg -h encoder=h264_vaapi
ffmpeg -h encoder=hevc_vaapi
私の知る限りでは(間違っている場合は訂正してください)、VP8およびVP9エンコーディングは、VAAPIを介してAMD側で公開されていません。これを確認するには、次のコマンドを実行します。
vainfo | grep Slice
システムで、サポートされているエンコーダーを確認します。 Ubuntuのようなものでは、VAAPIを有効にしたFFmpegがデフォルトである可能性が高いです。ただし、必要に応じて、ソースからコピーを作成することもできます。 FFmpeg Wikiのコンパイルガイド を参照し、必要に応じて調整してください。 this などのヘルパーも便利です。
AMD AMFベースのエンコーダーは、Vulkanベースの相互運用機能を使用して、最終的にLinuxに搭載される可能性があります。これを 進行中の作業 と見なします。