1

如何使用 ffmpeg 从文件中检索电影原子?例如我需要avcC原子字节。如果有一些解决方案,我宁愿自己不编写解析器。

http://www.ffmpeg.org/doxygen/0.6/mov_8c-source.html似乎提供了一些API,但我不熟悉ffmpeg。

或者是否有直接的 API 来获取 SPS 和 PPS NAL?

4

1 回答 1

1

我不知道 FFmpeg 是否提供直接 API 来检索这些详细信息。但是,这是一个非常懒惰的解决方案,它应该允许您avcC从 QuickTime/MP4 文件中获取原子:

  1. 打开文件并moov在顶级原子结构中定位原子(遍历mdatftyp,也许还有一些其他原子)。
  2. 将整个moov原子加载到内存中(它很容易适应)。
  3. 对“avcC”执行字符串搜索。

这不是最干净的方法,但它可能会起作用。为了更加清醒(以防字符串 'avcC' 出现在原子中的其他位置,如元数据原子中),检查 'avcC' 字符串之前的 4 个字节,将它们视为一个大端 32 位数字,表示原子的长度avcC,并确保它们有意义。我刚刚检查了一些 H.264 .MP4 文件,根据经验,长度约为 43-45 字节。至少,确保原子的长度大于 8(最小原子大小),并且不会撞到moov原子的末端。

于 2013-10-06T04:30:37.573 回答