
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.