登录
首页 >  Golang >  Go问答

读取 mp4 视频的 Mdat 原子的方法

来源:stackoverflow

时间:2024-03-19 20:57:28 374浏览 收藏

在解析 MP4 文件时,从 Mdat 原子中获取轨道元数据至关重要。Mdat 原子包含视频和音频数据,但需要借助 Moov 原子中的信息才能解析。Stc 表(样本到块原子)提供了将样本映射到块的信息,但本文中的 Stc 表数据似乎无效。因此,需要深入了解 MP4 规范(ISO/IEC 14496-12)以正确解析 Mdat 原子,并从该原子中提取所需的轨道信息。

问题内容

我正在尝试解析 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]
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

目前不知道如何处理和解析 mdat 原子。

如有任何帮助,我们将不胜感激!


正确答案


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

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

文中关于的知识介绍,希望对你的学习有所帮助!若是受益匪浅,那就动动鼠标收藏这篇《读取 mp4 视频的 Mdat 原子的方法》文章吧,也可关注golang学习网公众号了解相关技术文章。

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>