を使用して固定ファイル サイズをターゲットにするにはどうすればよいですかffmpeg?

を使用して固定ファイル サイズをターゲットにするにはどうすればよいですかffmpeg?

長さが15秒で465,195KBのビデオファイルがあります。これを46,000KBくらいに減らしたいのですが、簡単な方法はありますか。最大許容ビットレートを試してみましたが、

ffmpeg -i input -q:v 0 -b:v 900000k output

それでも、ファイルは3,500KBしかありません

前もって感謝します

答え1

を使用して固定ファイル サイズをターゲットにするにはどうすればよいですかffmpeg?

を使ってトランスコードする場合はx264エンコーディングガイド特定のファイル サイズをターゲットにする方法の例を示します。

target bitrate = target filesize / duration

ie     bitrate = 46000           / 15

ie     bitrate = 3067 (kbit / s)

おそらくオーディオ用にいくらか必要になるでしょう。ガイドでは128kを大まかなデフォルトとして使用しているため、目標ビットレートは2939 キロビット/秒.その後、ツーパスエンコード仕様:

ffmpeg -y -i input -c:v libx264 -preset medium -b:v 2939k -pass 1 -c:a libfdk_aac -b:a 128k -f mp4 /dev/null && \
ffmpeg -i input -c:v libx264 -preset medium -b:v 2939k -pass 2 -c:a libfdk_aac -b:a 128k output.mp4

この方法は通常、特定の出力ファイル サイズをターゲットにしており、フレームごとの出力品質がそれほど重要でない場合に使用されます。

もちろん、オーディオのコード化など、ニーズに合わせて調整できますが、最終的には 46000kB のファイルになるはずです。

関連情報