大家好,我自己些了一个程序生成了一个mp4文件。mvhd这个box的timescale 是9000 duration是总时间*9000
现在我的mp4文件里面只有一个track,是sound .其下的tkhd的duration是mvhd的duration,mdhd的timescale是22050,duration是stts里面的samplecount * sampleduration,然后edts数据是duration是mvhd的duration,stts的smaplecount是16693, sampleduration是1024。
这些信息大概都和计算时间有关系。但是我用quicktime播放器播放我的mp4文件的时候,它显示的总时间是几十个小时...
mplayer播放我的正常。请问一下大侠们,这是怎么回事?quicktime计算mp4的时间是怎么计算的阿?mp4文件计算时间除了mvhd的duration / timescale 和stts的samplecount * sampleduration / timescale还有什么方法。
等待指教。
------解决方案--------------------------------------------------------
tkhd的duration这个应该填错了,不能等于mvhd的duration,因为timescale,也就是单位不一样了。
应该填 22050*总时长,如果是aac-sbr的话,可能duration还有倍长关系