将元数据嵌入到H.264编码文件中

时间:2012-09-07 14:59:09

标签: android ffmpeg metadata h.264 encode

我目前正在开发一个应用程序,它会根据来自摄像头的预览帧生成某些元数据。我可以看到这些元数据正确生成,我在这里没有问题。

但是,我必须将这些元数据嵌入到这些感兴趣的帧中(帧由本机算法处理以生成此元数据)。我正在使用ffmpeg和x264将帧编码为H.264。我检查了x264.h和一些文件,但没找到我要找的东西。

我的问题是;是否有任何未使用的H.264语法部分,我可以将我的元数据嵌入编码帧?

我希望我足够清楚。提前谢谢。

1 个答案:

答案 0 :(得分:3)

大多数视频基本流都提供“用户数据”。在h.264中,这是SEI nal单位的一部分。您可以在要与其关联的每个帧之前添加一个。我不认为x264支持从外部添加用户数据。

两种选择:

  1. 修改x264 / ffmpeg以将SEI消息添加到您希望以您喜欢的某种形式输入的位置。
  2. 创建您的信息流,创建您的元数据。现在分别编写一个小程序来读取元数据并解析文件并在所需的帧之前推送SEI NAL。
  3. 对于SEI语法,您应该可以谷歌并获取它。看起来最好的地方是H.264标准。更简单的方法是查看x264中的代码。它确实在开头插入了一个用户数据(编码参数)。