mp4 文件 / SSTS 信息
mp4 files / SSTS info
我正在尝试找到获取电影中所有 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 解析器来获取整个列表?
下面的命令将快速提供视频关键帧的时间戳以及其他信息。
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 个关键帧。
我正在尝试找到获取电影中所有 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 解析器来获取整个列表?
下面的命令将快速提供视频关键帧的时间戳以及其他信息。
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 个关键帧。