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