【问题标题】:Embedding Metadata to H.264 encoded file将元数据嵌入 H.264 编码文件
【发布时间】:2012-09-08 03:56:08
【问题描述】:

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

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

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

我希望我已经足够清楚了。提前致谢。

【问题讨论】:

标签: android ffmpeg metadata h.264 encode


【解决方案1】:

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

两个选择:

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

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

【讨论】:

  • 非常感谢,我会马上调查的。你又一次拯救了一天 av501 :)
  • 欢迎。第二种方法仅适用于基本流。忘了提那个。在容器中,您还必须照顾容器本身。
  • @user1767754,不确定你想要什么。大多数时间码信息是流或封闭容器中可用的标准信息。所以现在我猜这将是重复劳动。您需要更具体地了解要存储的内容。你可以存储任何东西,但因为它是用户数据,如果你控制解码器,除了你和你在解码端的代码之外,没有人能理解它!
猜你喜欢
  • 2012-06-06
  • 1970-01-01
  • 1970-01-01
  • 2012-10-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-04-15
  • 2014-09-08
相关资源
最近更新 更多