每个 GOP 的视频比特率的命令行探测

每个 GOP 的视频比特率的命令行探测

有没有办法使用 ffprobe 或类似的命令行工具来探测每个 GOP 的视频比特率?

ffprobe 似乎只输出整个视频的总比特率,而不是数据包。

ffprobe -i video.mp4 -show_entries packets

我猜这是一组图片。

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

答案1

数据包不是一组图片——根据容器的不同,数据包只是一帧或者也可以只包含帧的一部分。

您应该查看是否有包含关键帧的数据包。检查属性flags。如果其中有K,则这是 GOP 的开始。记住数据包 DTS 并计算size属性总和,直到到达下一个关键帧,将该总和除以时间戳中的增量,或者除以 的总和duration_time

这将为您提供每个 GOP 的比特率,包括分组开销。

相关内容