将新的自定义原子/框插入MP4容器格式文件

时间:2012-06-29 12:26:47

标签: video data-structures mp4

我想知道是否有人可以建议我将自己的对象添加到MP4容器结构中。

例如,我发现一个典型的文件,就像我们使用的文件有以下'atoms'/'box':

  • FTYP
  • 的moov
  • 的mdat

我想在ftyp对象和moov对象之间添加自己的小自定义对象。

所以对象将显示为:

  • FTYP
  • 散列
  • 的moov
  • 的mdat

这将是一个只包含唯一哈希的小对象。

这里的问题是 - 那里的所有玩家都会忽略我正在添加的这个新对象 - 它与回放无关,但用于在内部跟踪我们的文件。

我想添加一个单独的对象,因为这将在提供文件时动态完成(cgi / php),因此在服务之前简单地在文件的开头附近插入一个新对象非常容易其余部分通过http。

我使用WMV文件做了类似的事情,我找到的所有玩家都忽略了他们无法识别的对象。我想知道它是否与MP4文件的情况相同。玩家是否会忽略他们不期望的对象,我想这应该是玩家的默认行为,因为它是一种可扩展的容器格式?

2 个答案:

答案 0 :(得分:2)

"请注意,在某些规格中,盒子被称为原子。注意 不鼓励引入新的原子类型;一般来说,文件的其他可扩展性功能 如果可能,应使用格式" - 文本形式ISO / IEC 14496-12:2005

答案 1 :(得分:1)

根据mpeg标准文档,给定的应用程序应忽略所有未知原子类型。因此,您实际上可以安全地添加跟踪原子。但是,您的原子不应该以其名称形式包含任何小写字母,因为它们是由标准保留的。例如,你不能拥有' sams'作为您的原子名称,但您可以拥有' SAMS'