Wie kann ich ffmpeg
verwenden die Größe eines Videos reduzieren, indem Sie die Qualität verringern (natürlich so wenig wie möglich, weil ich es auf einem mobilen Gerät ausführen muss, das nicht viel verfügbaren Speicherplatz hat)?
Ich habe vergessen zu erwähnen, dass ich, wenn das Video Untertitel (*.srt oder *.sub) verwenden kann, diese auch konvertieren möchte, damit sie zu den Parametern der konvertierten Videodatei passen.
Akzeptierte Antwort:
Diese Antwort wurde 2009 geschrieben. Seit 2013 ist ein viel besseres Videoformat als H.264 weit verbreitet, nämlich H.265 (besser insofern, als es bei gleicher Qualität stärker komprimiert oder bei gleicher Größe eine höhere Qualität liefert). Um ihn zu verwenden, ersetzen Sie den libx264-Codec durch libx265 und drücken Sie den Komprimierungshebel weiter, indem Sie den CRF-Wert erhöhen – fügen Sie beispielsweise 4 oder 6 hinzu, da ein vernünftiger Bereich für H.265 24 bis 30 sein kann. Beachten Sie, dass niedriger CRF-Werte entsprechen höher Bitraten und erzeugen daher höhere Qualitätsvideos.
ffmpeg -i input.mp4 -vcodec libx265 -crf 28 output.mp4
Um zu sehen, wie diese Technik mit dem älteren H.264-Format angewendet wird, lesen Sie diese Antwort, die der Einfachheit halber unten zitiert wird:
Berechnen Sie die benötigte Bitrate, indem Sie Ihre Zielgröße (in Bits) durch die Videolänge (in Sekunden) teilen. Zum Beispiel bei einer Zielgröße von 1 GB (ein Gigabyte , das sind 8 Gigabitbits ) und 10000 Sekunden Video (2h46min 40s), verwenden Sie eine Bitrate von 800000 Bit/s (800kbit/s):
ffmpeg -i input.mp4 -b 800k output.mp4
Eine weitere erwägenswerte Option ist die Einstellung des Constant Rate Factor, der die durchschnittliche Bitrate senkt, aber eine bessere Qualität beibehält. Variieren Sie den CRF zwischen etwa 18 und 24 – je niedriger, desto höher die Bitrate.
ffmpeg -i input.mp4 -vcodec libx264 -crf 20 output.mp4