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

ker*_*cel 4 android encode metadata ffmpeg h.264

我目前正在开发一个应用程序,该应用程序生成与来自相机的预览帧相关的某些元数据。我可以看到这个元数据被正确生成,我在这里没有问题。

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

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

我希望我说得够清楚了。提前致谢。

av5*_*501 5

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

两种选择:

  1. 修改 x264 / ffmpeg 以在您希望以您喜欢的某种形式输入的地方添加 SEI 消息。
  2. 创建您的流,创建您的元数据。现在单独编写一个小程序来读取您的元数据并解析文件并在您想要的帧之前推送一个 SEI NAL。

对于 SEI 语法,您应该可以通过谷歌搜索并获得它。最好的地方是 H.264 标准。更简单的方法是查看 x264 中的代码。它确实在开头插入了一个用户数据(编码参数)。