2017-04-03 40 views
0

我想找到最快的方式來獲取電影中所有I幀的列表。mp4文件/ SSTS信息

到目前爲止,我嘗試過ffprobe,但它速度很慢,我一直在尋找更快的解決方案。

我發現的另一種選擇是使用mp4parser工具;它輸出文件與此sectio,所述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解析器來獲取整個列表?

回答

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個關鍵幀。