Auf welche Parameter sollte ich achten, um die Größe einer .MOV-Datei zu verringern?

12

Meine Canon 60D erstellt beim Aufnehmen von Videos .MOV-Dateien, und ich habe festgestellt, dass der .MOV-Container einen H264-Videostream und einen PCM-Audiostream enthält.

Ich habe ffmpeg und GSpot verwendet, um einige meiner Videos anzusehen, und sehe, wie es scheint, ziemlich hohe Bitraten (22.000 kbit / s für 640 x 480, 45.000 für 1920 x 1080).

Ich möchte die Größe der Dateien reduzieren, aber die Qualität recht hoch halten. Ich habe mit dem einfachsten herumgespielt, was ich mir vorstellen kann, die Bitrate zu reduzieren, und das entspricht dem, was ich erwarten würde: Die Bitrate halbieren und die Dateigröße halbieren. Aber ich frage mich, ob es eine Möglichkeit gibt, eine "gute" Ziel-Bitrate zu bestimmen, oder ob es sinnvoll ist, eine variable Bitrate zu versuchen.

Station
quelle

Antworten:

21

Aber ich frage mich, ob es eine Möglichkeit gibt, eine "gute" Ziel-Bitrate zu bestimmen ...

Eine gute Zielbitrate ist die Bitrate, die entweder:

  • wird von dem Netzwerk unterstützt, von dem Sie das Material streamen (z. B. ein 3G-Netzwerk, WLAN zu Hause usw.), was ziemlich einfach zu berechnen ist
  • sieht für dich gut aus , was eine sehr subjektive maßnahme ist

22 Mbit / s oder 45 Mbit / s sind in der Tat für den Durchschnittsnutzer und insbesondere für bereits komprimierte Videos wie h.264 recht hoch. Sie können die Bitrate auf jeden Fall auf einen "vernünftigen" Wert reduzieren, immer in Bezug darauf, wie viel Speicherkapazität Sie sich leisten können und wie viel Qualität Sie verlieren möchten.

Sie können die Größe von 1080p-Videos auch auf 720p ändern, wenn Sie die Größe nicht wirklich benötigen oder nicht über die Verarbeitungskapazität zum Bearbeiten verfügen.

… Oder ob es sinnvoll ist, eine variable Bitrate zu verwenden

Der Punkt der konstanten Bitrate ist die Anpassung an ein Streaming-Media-Szenario, bei dem ein Engpass vorliegt, der die maximale Bitrate des übertragenen Videos begrenzt. In der heutigen Multimedia-Welt ist dies nicht mehr unbedingt sinnvoll.

Wenn Sie ein Video mit einer konstanten Anzahl von Bits pro Sekunde komprimieren, weisen Sie einen Encoder grundsätzlich an, immer dieselbe Anzahl von Bits zu verwenden, um denselben Zeitrahmen zu codieren. Ist das der beste Ansatz? Wie Sie vielleicht schon vermutet haben, ist es nicht. Zitieren des CRF-Leitfadens von Handbrake (darauf komme ich später zurück):

Das Auge nimmt in stehenden Objekten mehr Details wahr als in Bewegung. Aus diesem Grund kann ein Videokomprimierer bei sich bewegenden Objekten mehr Komprimierung anwenden (mehr Details verwerfen) und bei sich bewegenden Objekten weniger Komprimierung anwenden (mehr Details beibehalten). Subjektiv scheint das Video eine höhere Qualität zu haben.

Also, es tut Sinn machen , mit variabler Bitrate zu verwenden , wann immer Sie können. Dadurch sieht das Video auch bei gleicher Dateigröße eines Videos mit konstanter Bitrate besser aus.

Die meisten Encoder - der bekannteste ist der x264- Encoder - weisen häufig eine sehr schlechte Leistung auf, wenn Sie eine konstante Bitrate angeben. Es ist besser, ihnen ein bisschen mehr "Freiheit" zu geben, in dem Sinne, wie viele Bits sie für einen Frame ausgeben möchten. Schließlich ist das die Aufgabe des Encoders und nicht Sie. Und das nennt man "konstante Qualität".


Genug davon - was bedeutet das in der Praxis? Wenn Sie FFmpeg zum Codieren von Videos verwenden, verwenden Sie bereits ein ausreichend gutes Tool. Wenn Sie jetzt auch x264 installiert haben und die neueste Version von beiden verwenden, verwenden Sie einen der besten Encoder, die derzeit kostenlos verfügbar sind. Anstatt mit einer festen Bitrate zu codieren, können Sie x264 entscheiden, wie viel es ausgeben möchte. Verwenden Sie dazu die Option Constant Rate Factor .

In einem sehr einfachen Fall bedeutet dies, einen Wert zwischen 17 und 23 einzustellen . Ich wähle MP4 als Ausgabecontainer anstelle von MOV, weil es bessere Tools zum Remultiplexen gibt:

ffmpeg -i input.mov -c:v libx264 -crf 22 output.mp4

Je niedriger der Wert, desto besser die Qualität und desto größer die Ausgabe. Umgekehrt ist die Qualität umso geringer, je höher sie ist. Gleichzeitig reduzieren Sie natürlich die durchschnittlich benötigte Bitrate. Weitere Informationen zu finden Sie im Handbuch zur x264-Codierungffmpeg .

Ihre Aufgabe ist es nun, einen CRF-Wert zu finden, der:

  • reduziert die Gesamtbitrate auf den Punkt, den Sie sich leisten können
  • reduziert die Qualität nicht zu sehr, so dass das Video immer noch gut aussieht

Ja, dies ist mit viel Codierung und Ausprobieren verbunden, aber das gehört zum Tagesgeschäft, wenn Sie Videos optimieren und codieren.

Oh, und wenn Ihnen die Befehlszeile nicht gefällt, ist Handbrake ein kostenloses, plattformübergreifendes Tool, das genau das Gleiche tut. Es hat sogar einen CRF-Regler:

Bildbeschreibung hier eingeben

slhck
quelle
Wird das Detail des sich bewegenden Objekts bei der Videokomprimierung nicht regelmäßig übertrieben, oder erinnere ich mich einfach an die schlechten Beispiele? Wie merkliche Detailverbesserung, sobald die Kamera nicht mehr schwenkt, usw.
Daniel Beck
Dies ist eigentlich ziemlich häufig, als "stabilisierende" Probleme bekannt. Zum Beispiel, wenn Sie sehen, dass die Blockierung verschwindet. Dies ist typisch für ein Szenario mit niedriger Bitrate, bei dem die Änderung der Bewegungsdifferenz zu schnell ist, um von der Ratensteuerung angepasst zu werden. Ich würde davon ausgehen, dass eine Zwei-Pass-Codierung hier helfen könnte, aber wahrscheinlich nicht viel. Ich weiß nicht, ob es möglich ist, diese Art von Artefakten vollständig loszuwerden.
Slhck
Ich habe Handbrake in der Vergangenheit verwendet, um DV-Avis von einer Videokamera in DivX und MP4 umzuwandeln, aber ich fand es einfacher, mit einer Befehlszeile zu arbeiten, wenn ich versuchte, meine Optionen für den Wechsel von .mov zu h264-MP4 herauszufinden. Gibt es eine Entsprechung zu -crf, wenn Sie DivXs erstellen? (oder sollte das eine andere Frage sein?)
Ward
@Ward können Sie verwenden -qscale. Für mpeg * ist die Skala linear und reicht von 1 bis 31 (wobei 31 die schlechteste Qualität ist), und eine Verdoppelung des Werts führt zu etwa der Hälfte der Bitrate. Ein Wert von 2 kann als ungefähr verlustfrei angesehen werden. 3-5 ist normalerweise eine gute Balance, aber die Qualität ist natürlich subjektiv und Sie müssen es nur versuchen.
Logan
Nett! Einige Fragen. (1) Was bedeutet eine Zahl gefolgt von "p" in "1080p Video to 720p"? (2) x264 verwendet eine variable Bitrate, aber warum heißt die Option in ffmpeg Constant Rate Factor? Vielen Dank!
Tim
2

Probieren Sie HandBrake CLI aus

Ich wollte einige MOV-Dateien verkleinern und wollte nicht alle Details zu den Videooptionen erfahren. HandBrake CLI ist das, was ich verwendet habe. Die Presets sind nett:

HandBrake bietet fest codierte, fabrikneue Voreinstellungen, die genau den im MacGui integrierten Voreinstellungen entsprechen.

In meinem Fall hat das gut funktioniert:

HandBrakeCLI -i input.MOV -o output.mp4 --preset="Normal"

Ohne Voreinstellung war die Ausgabe sehr klein, aber nicht von guter Qualität. Die "Normal" -Voreinstellung sah für mich gut aus, aber Sie können andere verfügbare mit sehen HandBrakeCLI --preset-listoder alle Optionen selbst anpassen, wenn Sie dies vorziehen.

Nathan Long
quelle