2017-07-26 15 views
1

我有一个MP4文件和一个16kb的文件摘录。我想知道摘录匹配的是什么框架。我可以找到片段的偏移量,但我相信MP4编码是可变长度的(所以我不能只是说“这个片段来自frame#(offset/framesize)”)这也意味着我的片段可能不在一个有效的框架边界,所以我不能将它重命名为“excerpt.mp4”并播放它。如何将MP4摘录关联到视频帧?

找出哪些框架对应于摘录的好方法是什么?

+0

节录流是复制段(只是重新复用)还是重新编码? – LordNeckbeard

+0

不,这只是原始MP4文件的原始字节范围 - 与MPEG帧或编码流完全断开。 (摘录实际上位于文件的16kb边界处。) –

回答

3

运行

ffprobe -show_entries frame=pkt_pos,pkt_size -select_streams v -of csv=p=0:nk=1 -v 0 in.mp4 

它的输出将是

48|33720 
54534|76 
53159|974 
54920|381 
34070|19089 
68405|520 
67315|740 
69279|397 
55627|11356 
84445|534 
83571|536 
85314|979 

其中第一列是起始字节的帧的偏移和所述第二列是大小。框架n出现在行#n。您可以使用任何shell工具..例如,检查哪一行,您发现的偏移值在positionposition+size之间。位置系列可能不是单调的,所以仅仅检查第一列是不可靠的。

+0

看起来很完美... Debian-8上的突触并不知道“ffprobe”,所以我现在从源码构建ffmpeg-3.3.2。我希望我会在几分钟内接受这个答案。非常感谢! –

+0

与广告完全一样......谢谢! –