如何解码从 mp4 视频中提取的 MDAT 原子帧

Gur*_*ngh 7 mp4 quicktime ffmpeg video-encoding video-codecs

我是视频编解码器和学习视频文件格式规范的新手。我从这里阅读了有关 QUICKTIME 文件格式规范的信息,并从这里阅读了 MP4 文件格式(几乎相似)。有 FTYPE、MOOV、MDAT 等原子。MDAT 原子包含实际的音频和视频数据。MOOV 原子包含有关如何从 MDAT 中提取数据的信息,它提供了对块(样本)的引用。

我想从视频文件中提取 MDAT Atom 中的视频样本,而不使用 ffmpeg 或 juggler 等任何工具。我可以为此编写自己的代码。问题是,即使我可以使用 MOOV 中的信息找到 MDAT 中的视频数据(样本),这些样本也会被压缩。我们需要解压缩这些以获得帧。我的问题是我们可以解压缩从 MDAT 中提取的样本并获得实际的视频帧吗?

xuggler、ffmpeg 等工具用于从视频文件中提取帧。但在这里我想通过编写自己的代码从 MDAT 中提取样本(用于视频数据),然后我想使用某种工具解压缩这些样本。我不想写编解码器。

谁能帮我解决这个问题......!

谢谢...

sza*_*ary 3

ffmpeg 是一个库的集合。libavformat 用于读取和写入文件(您正在使用自己的代码执行的操作),libavcodec 可以单独使用来解码样本。