web-dev-qa-db-ja.com

FFmpegを使用してH.265からH.26​​4への高速エンコード速度を達成するにはどうすればよいですか?

ですから、私はビデオエンコーディングにかなり慣れていません。現在、FFmpegを使用して、ビデオのエンコーディングをH.265からH.26​​4に変更しているので、Webに適しています。

私が実行しているコマンドの現在の構文は次のとおりです。

ffmpeg -i input.mp4 -c:v libx264 -crf 51 -preset ultrafast -c:a aac output.mp4 

私は現在、このエンコーディングをできるだけ速く実行しようとしていますが、実行を高速化するために調整できる追加のフラグや設定があるかどうかわかりません。

また、zerolatencyfastdecodeのチューニングを設定して、それがどのように影響するかを確認しようとしましたが、速度の点ではあまり効果がありませんでした。

私の知る限り、crf値とultrafastプリセットの設定は、基本的にエンコードを高速化するための私のオプションですが、高速化に役立つ追加のフラグや設定はありますか? ?

1
Natiebiscuit

表示されたコマンドでできることはあまりありませんが、ここにいくつかの「提案」があります。

  • Stream copy (re-mux)-c:a aac-c:a copyに変更して、オーディオを再エンコードする代わりに。

  • ハードウェアアクセラレーション libx264の代わりにh264_nvencなどのエンコーダーの方が高速かどうかを確認してください。

  • また、ハードウェアデコーダーの方が速いかどうかも確認してください。

  • -movflags +faststart出力オプションを追加します。これにより、実際には(合計時間と比較して)処理時間がわずかに増加しますが、視聴者にとってビデオの開始が速くなります。

  • 出力オプション-vf scale=iw/2:-2を使用して、ビデオを半分のサイズに拡大縮小します

  • そして、義務的な明白なステートメント:より高速なCPUを使用するか、複数のマシンでエンコードします。

  • H.265のままにして、Android、Edge、Safariのみをサポートします。すでにVP9(Webm)を提供している場合は、ひどい解決策ではありません。そうすると、InternetExplorerだけが失われます。

2
llogan