如何读取 mp4 视频的 Mdat 原子?

cod*_*x00 6 python mp4 parsing go

我正在尝试解析 mp4 并能够进行解析moov,但不确定如何使用moov信息进行解析mdat

我的目标是获取轨道信息,例如元数据,如果可能的话,从中获取帧,mdat因为它包含视频和音频数据。

当前遵循QuickTime 文件格式规范

尝试过,Sample-to-Chunk Atoms但我所有的 stsc (20 字节)看起来像这样:

[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]
[0 0 0 0]
[0 0 0 1]
[0 0 0 1 0 0 0 1]
[0 0 0 1]
Run Code Online (Sandbox Code Playgroud)
    fmt.Println(binary.BigEndian.Uint32(buf[0:4])) //4
    fmt.Println(binary.BigEndian.Uint32(buf[4:8])) //4
    fmt.Println(binary.BigEndian.Uint32(buf[8:16])) //8
    fmt.Println(binary.BigEndian.Uint32(buf[16:20])) //4
Run Code Online (Sandbox Code Playgroud)

目前不知道如何接近和解析mdat原子。

任何帮助,将不胜感激!

小智 0

mp4 规范是 ISO/IEC 14496-12,它比 qt 规范更明确。

如果您想了解示例表如何引用各个框架,您可以在此处查看我的项目https://github.com/essential61/mp4analysisr