Ich habe ein Video herunterskaliert, aber die Bitrate ändert sich nicht

Ich habe ein 3000 x 3000 VR-Video, das in H264 codiert ist. Ich habe das Video um verkleinert

ffmpeg -i input.mp4 -vf scale=2160:2160 output.mp4

Zu meiner Überraschung hat sich die Bitrate von output.mp4nicht verringert (tatsächlich ist sie ein wenig gestiegen).

Sollte ein verkleinertes Video nicht eine niedrigere Bitrate haben als das Originalvideo? Was ist der Mechanismus von -vf scale=***?

Antworten (1)

Der Skalierungsfilter hat keinen Einfluss auf die Bitratensteuerung des Encoders.

Ja, ein verkleinertes Video sollte eine niedrigere Bitrate haben, wenn es mit denselben Encodereinstellungen wie die Quelle codiert ist. Da in Ihrem Befehl keine Encoder-Parameter explizit festgelegt sind, verwendet ffmpeg standardmäßig den Encoder x264mit dem Rate-Control-Modus CRF mit dem Wert 23. Anscheinend führt dies zu derselben Bitrate wie die Quelle in voller Größe. Stellen Sie einen höheren Wert ein, um die Größe zu reduzieren.

ffmpeg -i input.mp4 -vf scale=2160:2160 -crf 26 output.mp4
Das macht keinen Sinn. Warum müssten Sie crf ändern? Das ist "konstante Qualität", oder? Dies bedeutet, dass wir bei einer Abwärtsskala mit einer niedrigeren Bitrate rechnen sollten.
@DigiVisionMedia crf ist "konstanter Ratefaktor". Außerdem ist das alles im Web durchsuchbar, seien Sie bitte nicht faul.
Würde dies nicht zu einer Codierung mit geringerer Qualität führen?
hmm, brauche 50 Wiederholungen, um zu kommentieren ... also poste stattdessen. crf erhöhen , um die Bitrate zu reduzieren , verringert auch die Qualität<br> crf verringern, um die Bitrate zu erhöhen , die Qualität zu verbessern<br> +/- 6 crf ist ungefähr die Hälfte / das Doppelte der Bitrate (zumindest für x265). gute Einführung:<br> slhck.info/video/2017/02/24/crf-guide.html