Wie kann ich feststellen, ob ein Video eine variable Bildrate hat?

Wie kann ich feststellen, ob ein Video eine variable Bildrate hat?

Wie kann ich feststellen, ob ein Video eine variable Bildrate hat? Ich muss das nicht programmgesteuert tun können, ich möchte nur kein Programm installieren müssen, das Hunderte von Megabyte groß ist. Wenn ich das beispielsweise mit dem VLC Media Player tun könnte, wäre das perfekt.

Antwort1

FFmpeg verfügt zu diesem Zweck über einen vfrdet-Filter.

ffmpeg -i in -vf vfrdet -an -f null -

Im Protokoll sehen Sie eine Ausgabe des Formulars,

[Parsed_vfrdet_0 @ 0000000003d8fec0] VFR:0.833333 (50/10) min: 23 max: 291)

Ein von Null abweichender Wert für VFR weist auf einen VFR-Stream hin. Der erste Wert in Klammern ist die Anzahl der Frames mit einer anderen Dauer als der erwarteten Dauer, die durch die erkannte Framerate des Streams impliziert wird. Der zweite Wert ist die Anzahl der Frames mit der erwarteten Dauer. Der VFR-Wert ist das Verhältnis der ersten Zahl zur Summe beider Zahlen.

Ein paar Vorbehalte: Ein sehr niedriger oder sehr hoher Wert weist auf einige fehlerhafte Frames mit nicht standardmäßiger Dauer hin, normalerweise das erste und/oder das letzte Frame. Diese können für die meisten Zwecke als CFR betrachtet werden. Ein Wert um 0,50 weist darauf hin, dass der Stream eine Framerate und/oder Zeitbasis hat, für die die nominelle Framedauer nicht genau in der Zeitbasis des Streams ausgedrückt werden kann, sodass die App, die die Datei generiert hat, die Dauer oszilliert hat. Wenn ein Stream beispielsweise eine Bildrate von 6 und eine Zeitbasis von 1/100 hat, wären die idealen Zeitstempel 0, 16,667, 33,334, 50,000, 66,667, 83,333, 100,000 für die erste Sekunde des Videos, aber Zeitstempel sind Ganzzahlen, sodass der Muxer 0, 16, 34, 50, 67, 83, 100 speichern kann. Dies könnte als Stream mit einem VFR-Wert von 0,5 angezeigt werden.

Antwort2

Verwenden Sie einfach ffprobe

ffprobe -v quiet -print_format json -show_streams input

Und überprüfen Sie den avg_frame_rateParameter des gewünschten Videostreams. Wenn der Wert dieses Parameters ein Bruch wie dieser ist

"avg_frame_rate": "1205285219/50270287"

mit einem Nenner ungleich 1, dann hat die Videodatei eine variable Bildrate.

Wenn der Wert wie folgt ist

"avg_frame_rate": "25/1"

Stellen Sie sicher, dass der Stream eine konstante Bildrate hat.

Antwort3

Man kann verwendenMedieninformation(5 MB, plattformübergreifend, portable Version für Windows verfügbar, kostenlos), um festzustellen, ob ein Video eine variable Bildrate hat:

Bildbeschreibung hier eingeben

verwandte Informationen