如何使用 ffmpeg 从文件中检索电影原子?例如我需要avcC
原子字节。如果有一些解决方案,我宁愿自己不编写解析器。
http://www.ffmpeg.org/doxygen/0.6/mov_8c-source.html似乎提供了一些API,但我不熟悉ffmpeg。
或者是否有直接的 API 来获取 SPS 和 PPS NAL?
如何使用 ffmpeg 从文件中检索电影原子?例如我需要avcC
原子字节。如果有一些解决方案,我宁愿自己不编写解析器。
http://www.ffmpeg.org/doxygen/0.6/mov_8c-source.html似乎提供了一些API,但我不熟悉ffmpeg。
或者是否有直接的 API 来获取 SPS 和 PPS NAL?
我不知道 FFmpeg 是否提供直接 API 来检索这些详细信息。但是,这是一个非常懒惰的解决方案,它应该允许您avcC
从 QuickTime/MP4 文件中获取原子:
moov
在顶级原子结构中定位原子(遍历mdat
、ftyp
,也许还有一些其他原子)。moov
原子加载到内存中(它很容易适应)。这不是最干净的方法,但它可能会起作用。为了更加清醒(以防字符串 'avcC' 出现在原子中的其他位置,如元数据原子中),检查 'avcC' 字符串之前的 4 个字节,将它们视为一个大端 32 位数字,表示原子的长度avcC
,并确保它们有意义。我刚刚检查了一些 H.264 .MP4 文件,根据经验,长度约为 43-45 字节。至少,确保原子的长度大于 8(最小原子大小),并且不会撞到moov
原子的末端。