Wie erreiche ich mit eine feste Dateigröße ffmpeg?

Wie erreiche ich mit eine feste Dateigröße ffmpeg?

Ich habe eine Videodatei mit einer Länge von 15 Sekunden und einer Größe von 465.195 KB. Ich möchte sie auf etwa 46.000 KB reduzieren. Gibt es eine einfache Möglichkeit, dies zu tun? Ich habe die größte zulässige Bitrate ausprobiert.

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

und ich bekomme immer noch eine Datei von nur 3.500 KB

Dank im Voraus

Antwort1

Wie erreiche ich mit eine feste Dateigröße ffmpeg?

Wenn Sie bereit sind, mit zu transkodieren x264, können Sie denKodierungshandbuchHier finden Sie Beispiele für die gezielte Auswahl einer bestimmten Dateigröße.

target bitrate = target filesize / duration

ie     bitrate = 46000           / 15

ie     bitrate = 3067 (kbit / s)

Sie werden vermutlich einen Teil davon für Audio benötigen; der Leitfaden verwendet 128k als groben Standard, Ihre Zielbitrate ist also2939 kbit/s. Anschließend können Sie mit demZwei-PassKodierungsspezifikation:

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

Diese Methode wird im Allgemeinen verwendet, wenn Sie eine bestimmte Ausgabedateigröße anstreben und die Ausgabequalität von Frame zu Frame von geringerer Bedeutung ist.

Sie können dies natürlich hinsichtlich der Audiocodierung usw. an Ihre Anforderungen anpassen, Sie sollten jedoch am Ende eine Datei mit 46.000 KB erhalten.

verwandte Informationen