Ffmpeg 如何从mp4视频中提取的MDAT atom解码帧

Ffmpeg 如何从mp4视频中提取的MDAT atom解码帧,ffmpeg,mp4,video-encoding,quicktime,video-codecs,Ffmpeg,Mp4,Video Encoding,Quicktime,Video Codecs,我是新的视频编解码器和学习视频文件格式规范。我从中了解了QUICKTIME文件格式规范,并从中了解了MP4文件格式(几乎类似)。有FTYPE、MOOV、MDAT等原子。MDAT原子包含实际的音频和视频数据。MOOV原子包含关于如何从MDAT提取数据的信息,它提供了对块(示例)的引用 我想从视频文件中提取MDAT atom中的视频样本,而不使用任何工具,如ffmpeg或juggler等。我可以为此编写自己的代码。问题是,即使我可以使用来自MOOV的信息在MDAT中定位视频数据(样本),这些样本也会

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

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

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

谁能帮我做这个


谢谢……

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

要解压缩编码帧,需要解码器。codec代表(en)coder-decoder,所以是的,您确实需要一个编解码器,既可以是现有的,也可以是您自己的。@Mulvya您是对的,我需要一个解码器。我想使用现有的解码器。但关键是,我想通过编写自己的代码从MDAT中提取视频数据样本,然后使用某种工具对这些样本进行解码。在MP4格式中,帧存储在样本中,样本分组在块中。所以我想自己提取块,然后用一些工具解码这些块。感谢您的回复。这可以通过使用以下命令使用ffmpeg完成:
ffmpeg-ss 3.00-i input.mp4-c copy-vframes 1-map 0:v:0-f data 1.bin
这是很好的信息。所以libavcodec对样本进行解码。解码样本中是否存在依赖关系。我的意思是,举例来说,我们有1000个样本,libavcodec可以独立解码这些样本。如果我只想解码第500个样本。我可以不使用其他样品就这样做吗。