mp4文件/ SSTS信息

时间:2017-04-03 03:25:57

标签: ffmpeg mp4

我正在努力寻找获得电影中所有I帧列表的最快方法。

到目前为止,我尝试了ffprobe,但速度很慢,我一直在寻找更快的解决方案。

我找到的另一个选项是使用 mp4parser 工具;它输出一个带有此部分的文件,即SSTS信息:

-------------------------------------------------------------------------
/moov/trak/mdia/minf/stbl/stss                              @ 0x1c152d8
  Box size: 0x44    version: 0x0    flags: 0x0
  entry_count:              0xd
    sample_number:
     0x1    0x12d    0x259    0x385    ....

我可以看到我有13个I帧,它们间隔300帧(从显示的4个值开始)

I帧的间距是否在电影中保持不变?或者我是否需要编写自己的SSTS解析器来获取整个列表?

1 个答案:

答案 0 :(得分:0)

以下命令将快速提供视频关键帧的时间戳以及其他信息。

ffmpeg -skip_frame nokey -i in.mp4 -an -vf showinfo -f null -

输出看起来像

[Parsed_showinfo_0 @ 00000000032903a0] n:  55 pts:5748224 pts_time:449.08  pos: 17288779 fmt:yuv420p sar:1/1 s:960x720 i:P iskey:1 type:I checksum:361866A6 plane_checksum:[BA2DCCBF A8E937B3 BD006225] mean:[220 117 133] stdev:[57.8 4.1 5.3]

pts_time为您提供时间索引。 n对于绝对帧索引不准确,但它是关键帧索引的准确计数,即n: 55是视频中的第56个关键帧。