Befehlszeilentest für Video-Bitrate pro GOP

279
secondplace

Gibt es eine Möglichkeit, mit ffprobe oder ähnlichen Befehlszeilen-Tools nach der Video-Bitrate pro GOP zu suchen?

ffprobe scheint nur die Gesamt-Bitrate für das gesamte Video auszugeben, jedoch keine Pakete.

ffprobe -i video.mp4 -show_entries packets 

was ich denke, ist eine Gruppe von Bildern.

[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] 
0

1 Antwort auf die Frage

1
slhck

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 einen bekommen K, ist dies der Beginn der GOP. Erinnern Sie sich an das Paket DTS und summieren Sie das sizeAttribut, bis Sie zum nächsten Keyframe gelangen, und teilen Sie diese Summe durch das Delta in Zeitmarken oder alternativ durch die Summe von duration_time.

Dadurch erhalten Sie die Bitrate pro GOP einschließlich Paketierungsaufwand.