Filtern Sie das Video unter Beibehaltung der Bitrate (FFmpeg)

Filtern Sie das Video unter Beibehaltung der Bitrate (FFmpeg)

Zu Versuchszwecken muss ich mein Video filtern (mithilfe -vfeiner Option) und beispielsweise die Helligkeit ändern, aber die gleiche Bitrate wie im Originalvideo beibehalten.

Nur zu Testzwecken ändere ich die RGB-Werte, um das Video mit einer Zeile wie dieser komplett schwarz zu machen:

ffmpeg -i input.mp4 -vf lutrgb='r=0.0*val:g=0.0*val:b=0.0*val' output.mp4

Bisher habe ich versucht, die Bitrate manuell anzugeben -b, indem ich dieser Zeile die Optionen -minrate/maxrateund hinzugefügt habe -q, aber egal, was ich tue, reduziert FFmpeg die Bitrate des Ausgabevideos immer auf nur wenige Kilobyte.

Und meine Frage ist, ob es möglich ist, die Bitrate auf dem gleichen Niveau zu halten, selbst wenn ich die RGB-Werte so ändere, dass sie (im Extremfall) komplett schwarz sind.

Antwort1

Es gibt immer eine maximale Speichergröße. Wenn Sie 100 TB pro Sekunde angeben, wird das Video nicht so groß sein, da das Quellvideo ohne Füllmaterial einfach nicht genug Informationen enthält, um so viel Platz zu füllen. Ein komplett schwarzes Bild enthält fast keine Informationen. Es ist buchstäblich am einfachsten zu komprimieren. Daher besteht die Ausgabe nach dem Durchlaufen des Komprimierungsalgorithmus nur aus ein paar Bits. Es ist, als würden Sie eine Datei komprimieren, die nur Nullen enthält. Versuchen Sie, jedes Pixel zufällig zu machen, und Ihre Datei wird riesig.

Ich empfehle, sich über Informationstheorie zu informieren.

verwandte Informationen