【发现一个问题】ffprobe的-show_packets,某个视频输出的帧的 duration 值为 1
作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢!
首先找一个常规的视频,执行命令:
ffprobe -i regular.mp4 -show_packets -select_streams v -v quiet -print_format json
得到类似如下的信息:
{
"codec_type": "video",
"stream_index": 0,
"pts": 372372,
"pts_time": "12.412400",
"dts": 371371,
"dts_time": "12.379033",
"duration": 1001,
"duration_time": "0.033367",
"size": "23398",
"pos": "18467967",
"flags": "___"
}
可是,某个奇怪的视频,使用 show_packets 输出如下:
{
"codec_type": "video",
"stream_index": 0,
"pts": 57850000,
"pts_time": "57.850000",
"dts": 57838888,
"dts_time": "57.838888",
"duration": 1,
"duration_time": "0.000001",
"size": "455",
"pos": "81695829",
"flags": "___"
}
而使用 ffmpeg c api 读取 AVPacket 中的 duration 时,这个值又是对的。
暂未找到产生差距的原因。

浙公网安备 33010602011771号