【发布时间】:2013-08-28 11:53:38
【问题描述】:
我编写了一个 MP4 解析器,它可以很好地读取 MP4 中的原子,并将它们缝合在一起 - 结果是一个技术上有效的 MP4 文件,Quicktime 可以打开等等,但它不能播放任何音频我相信时间/采样信息已经全部关闭。我可能应该提到我只对音频感兴趣。
我正在做的是尝试从现有 MP4 中获取 moov 原子/等,然后仅获取文件中 mdat 原子的子集来创建一个新的、更小的 MP4。为此,我更改了 mvhd 原子中的 duration 以及 mdia 标头中的持续时间。这个文件中没有 tkhd 原子有编辑,所以我相信我不需要改变那里的持续时间 - 我错过了什么?
在创建新的 MP4 时,我将 mdat 块与一个宽框正确分割,并将“mdat”标题/大小保持在正确的位置 - 我确保使用新内容更新大小。
现在,我完全有 110% 的可能遗漏了有关格式的一些重要内容,但如果可能的话,我很想得到最后一块。有人有任何意见/想法吗?
代码可以在以下链接找到:
【问题讨论】:
-
这些文件存储什么样的音频?原始 PCM、压缩 CBR 还是压缩 VBR?
标签: audio mp4 multimedia