AMDのハードウェアエンコードをffmpegで使う

ffmpeg最高

ハードウェアエンコード

ffmpegは何も指定しないとソフトウェアエンコード、つまりCPUを使ってエンコードがされます。
ですがコーデックを指定するとGPUの映像処理専用チップを使ってエンコードできるようになります。

注意

そこまで詳しいわけじゃないので間違っているかも

やり方

やり方は上でも述べた通り、コーデックを指定します。
コマンドは次の通りになります。

1
ffmpeg -i input.mp4 -c:v h264_amf output.mp4

めっちゃ簡単ですね。

蛇足

NVIDIAのGPUの場合はこんな感じで。

1
ffmpeg -i input.mp4 -c:v h264_nvenc output.mp4

intelのGPU持ってないしそんなの使う物好きは居ないはず。(AMDも大概だけどw)

効果

効果はどんなものなのでしょうか。私の環境は次の通り

  • Ryzen5 5600G
  • RAM 64GB
  • 内臓グラフィック

まぁ内臓グラフィックなんですけど、恩恵は受けられるはずです。

mkv -> mp4

mkvファイルをmp4に変換してみましょう。使ったコマンドは次の通り。

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

ビットレートを3Mbpsに。それ以外は変更なしって感じ。
結果としては約24分の動画を…

約2分で書き出せました!!

結果

なんと12倍の速度でエンコードできちゃうっていうね。

以上

以上です。mp4->mp4は需要無いと思うしそんなのしないので、結果はないです。
今回の計測、裏でラスバレとウマ娘動かしてたんですけどまぁ余裕ですね。
やはりAMDの内臓グラフィックって「できるヤツ」なのでしょうか?
実をいうとメインのグラボ(RTX3060)が壊れて仕方なく内臓グラフィックを使っているだけです。
早くRTX4070あたりを手に入れないと、、、

ここまで。

Licensed under CC BY-NC-SA 4.0
Built with Hugo
テーマ StackJimmy によって作成されました。