有沒有辦法使用 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
,這就是共和黨的開始。記住資料包 DTS 並對屬性求和,size
直到到達下一個關鍵幀,將該總和除以時間戳中的增量,或除以 的總和duration_time
。
這將為您提供每個 GOP 的位元率,包括打包開銷。