如何使用mp4原子设置mp4的持续时间?

时间:2012-11-20 23:43:03

标签: mp4

我想使用mp4原子设置mp4文件的持续时间。我已经更新了mvhd,mdhd,tkhd的持续时间属性,但没有运气。我想做的是将长度设置为3分钟到30秒,比如说。我知道时间=持续时间/时间刻度。

感谢。

2 个答案:

答案 0 :(得分:0)

字段中的持续时间只是一种摘要。您需要延长每张图片的显示时间。通过操纵这里找到的框来做到这一点:

/moov/trak/mdia/minf/stbl/stts

是时候采样原子/盒子了。要了解此原子/盒的内容和结构,如果您手头没有ISO / EIC 14496-12,则可以安全地使用Quicktime文件格式规范。

要增加或减少视频的速度,您可以将每个采样持续时间(大多数情况下只有一个)乘以一个因子。

注意:H264视频在某些情况下也有ctts框(如果使用B帧)。你也需要修改那里的时间。

答案 1 :(得分:0)

编辑mp4文件并不简单,因为修改一个框会影响其大小和所有祖先的大小。定时值紧密相关:DTS,cts,轨道持续时间,编辑列表,电影持续时间......某些操作可以简单到位,例如延长轨道最后一个样本的持续时间并反映标题中的变化。在您的情况下,减少持续时间意味着忽略一些样本。你可以编辑样本表,但这很难,几乎所有的盒子都会改变。您可以使用编辑列表,但这也很难。使用MP4Box制作新文件更容易:

MP4Box -add input.mp4:dur=30 output.mp4