Befehlszeilensonde für Videobitrate pro GOP

Befehlszeilensonde für Videobitrate pro GOP

Gibt es eine Möglichkeit, mit ffprobe oder ähnlichen Befehlszeilentools die Video-Bitrate pro GOP zu prüfen?

ffprobe scheint nur die Gesamtbitrate für das gesamte Video auszugeben, aber keine Pakete.

ffprobe -i video.mp4 -show_entries packets

wobei es sich, wie ich vermute, um eine Gruppe von Bildern handelt.

[PACKET]
codec_type=video
stream_index=0
pts=126976
pts_time=9.920000
dts=126464
dts_time=9.880000
duration=512
duration_time=0.040000
convergence_duration=N/A
convergence_duration_time=N/A
size=6229
pos=5648590
flags=__
[/PACKET]

Antwort1

Ein Paket ist keine Gruppe von Bildern – je nach Container ist ein Paket nur ein Frame oder kann auch nur einen Teil eines Frames enthalten.

Sie sollten stattdessen prüfen, ob Sie ein Paket mit einem Keyframe haben. Überprüfen Sie das flagsAttribut. Wenn Sie ein Kdarin erhalten, ist dies der Anfang des GOP. Merken Sie sich die Paket-DTS und summieren Sie das sizeAttribut, bis Sie den nächsten Keyframe erreichen, indem Sie diese Summe durch das Delta in Zeitstempeln oder alternativ durch die Summe von dividieren duration_time.

Dadurch erhalten Sie die Bitrate pro GOP, einschließlich Paketierungs-Overhead.

verwandte Informationen