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 flags
Attribut. Wenn Sie ein K
darin erhalten, ist dies der Anfang des GOP. Merken Sie sich die Paket-DTS und summieren Sie das size
Attribut, 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.