web-dev-qa-db-ja.com

FFmpegのさまざまなh264エンコーダー

ffmpeg 4.0には、いくつかのh264エンコーダーがあります。 ./configure --list-encoders | grep "h264"を使用すると、それらを表示できます。

  • h264_amf
  • h264_nvenc
  • h264_omx
  • h264_qsv
  • h264_v4l2m2m
  • h264_vaapi
  • h264_videotoolbox

違いがわかりません。そして、ffmpegを使用してローカルgifをmp4に変換したいので、どのエンコーダーが適していますか?

6
CoXier

各エンコーダーは、異なるAPIを使用してビデオハードウェアにアクセスします。

  • aMD gpuにアクセスするためのh264_amf(Windowsのみ)
  • h264_nvenc使用 nvidia gpuカード (WindowsおよびLinuxで動作)
  • h264_omx Raspberry Piエンコーダー
  • h264_qsv use Intel Quick Sync Video (最新のIntel CPUに組み込まれたハードウェア)
  • h264_v4l2m2m use V4L2 Linuxカーネルapiでハードウェアコーデックにアクセス
  • h264_vaapi use [〜#〜] vaapi [〜#〜] これは、ビデオアクセラレーションハードウェアにアクセスするための別の抽象化APIです(Linuxのみ)
  • h264_videotoolbox use videotoolbox OS X上のハードウェアにアクセスするためのAPI

適切なハードウェアを使用すると、各エンコーダーはデコードされたgifをmp4にエンコードすることに成功します。

このコマンドをカスタマイズして、gifをmp4に変換できます。

$ ffmpeg -i local-gif.gif -c:v libx264 output.mp4

libx264は、特定のハードウェアを使用しないデフォルトのエンコーダーです。これは、目的のエンコーダーに変更できます。

15
Olivier Cazade