我想使用 mp4 原子设置 mp4 文件的持续时间。我已经更新了 mvhd、mdhd、tkhd 的持续时间属性,但没有运气。我想要做的是将长度从 3 分钟设置为 30 秒,比方说。我知道时间=持续时间/时间尺度。
谢谢。
我想使用 mp4 原子设置 mp4 文件的持续时间。我已经更新了 mvhd、mdhd、tkhd 的持续时间属性,但没有运气。我想要做的是将长度从 3 分钟设置为 30 秒,比方说。我知道时间=持续时间/时间尺度。
谢谢。
字段中的持续时间只是一种摘要。您需要延长每张图片的显示时间。通过操作此处找到的框来做到这一点:
/moov/trak/mdia/minf/stbl/stts
是时候对 atom/box 进行采样了。如果您手头没有 ISO/EIC 14496-12,您可以安全地使用 Quicktime 文件格式规范来了解这个 atom/box 的内容和结构。
要提高或降低视频的速度,您可以将每个样本持续时间(大多数情况下只有一个)乘以一个因子。
注意:H264 视频在某些情况下也有 ctts 框(如果使用 B 帧)。您还需要修改那里的时间。
编辑 mp4 文件并不简单,因为修改一个框会影响其大小以及所有祖先的大小。计时值也紧密相关:DTS、cts、轨道持续时间、编辑列表、电影持续时间......一些操作可以简单地完成,例如延长轨道最后一个样本的持续时间并反映标题中的变化. 在您的情况下,减少持续时间意味着忽略一些样本。您可以编辑示例表,但这非常困难,并且几乎会更改所有框。您可以使用编辑列表,但这也很难。使用 MP4Box 制作新文件更容易:
MP4Box -add input.mp4:dur=30 output.mp4