你能在第一帧的mp4标题中设置一个任意的字节偏移吗?

时间:2014-05-18 11:47:30

标签: video mp4

TLDR:你能在第一帧的mp4标题中设置一个任意的字节偏移吗?

我知道一个实用程序可以处理已经记录在goPro上的mp4文件,以便以后协调同时记录的文件。

这个想法的核心是获取一个大文件(多个千兆字节),并从头开始逐帧流式传输,直到找到一个带有嵌入式QR码的帧,这个帧本来是通过指向智能手机或平板电脑上的相机,通过指示某种时间码的qr代码轻弹。该项目的这一部分将相对简单,只需计算框架。

我希望能够做的是备份mp4文件的标题,并重写标题,告诉它文件的前x帧是有效的未知数据,所以视频内容从第x帧开始。 (这样我可以非常快速地对齐多个文件,因此当它们被加载到编辑器中时,它们都处于相同的时间码。

我不想要做的是对整个文件进行转码,理想情况下我希望能够对存储卡上的文件进行转码。

我的问题:给定一个帧或字节偏移量,我想调用"第一帧",我能以某种方式调整标题以非破坏性地设置该文件的播放点吗?

1 个答案:

答案 0 :(得分:0)

MP4文件的内部结构和字节偏移根本不是您感兴趣的东西,因为您通常无法指示播放器播放特定的字节偏移。相反,它是从特定时间位置回放。

在您的情况下,我会考虑识别具有感兴趣代码的帧(从文件开头的时间位置)的第一步。请注意,此位置不一定可以播放:H.264编码(MP4文件的典型编码)是时间压缩,播放可能会退回几帧以开始解码/播放。这会产生一个威胁,即您的QR码位于相邻的关键帧之间,但仍然不在其中任何一个关键帧上,并且您甚至无法选择将QR码作为第一个可播放的帧而无需重新编码内容(至少部分)。

了解QR码的位置,最简单的方法是将其保存在外部,以便稍后查找并开始播放(或提取缩略图)。另一种选择是重新复用数据而不重新编码内容以在感兴趣的位置之前修剪所有内容(上面的段落中的关键帧内容适用于此处)。使用适当的工具重新多路复用基本上可以以文件复制的速度进行,并且不会导致质量损失(如果您要使用现有的预制工具,如FFmpeg,可能是SuperUser问题而不是StackOverflow。) p>