mp4格式信息:计算文件时间。

笨笨熊_穆 2009-12-10 02:13:58
大家好,我自己些了一个程序生成了一个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还有什么方法。
等待指教。
...全文
503 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
coderdreamer 2011-09-05
  • 打赏
  • 举报
回复
我遇到了与你相同的问题。mvhd tkhd mdhd 的 duration 都改了。stts的samples count也改了。但是iTunes打开后时长还是与原来一样。但是其它播放器就显示我改过的时长。不知您解决了这个问题了吗?可否+Q指教一下。774514178。
笨笨熊_穆 2009-12-11
  • 打赏
  • 举报
回复
楼上说的我都知道。但还是谢谢了。现在的问题是我的能在mplayer中正常播放,linux音频属性也能得到正常的时间,但是在quicktime播放器中就是不行阿...
浮云 2009-12-10
  • 打赏
  • 举报
回复
看错了,找个文件看了看,tkhd的duration等于mvhd的duration,
mdhd的duration=22050*总时长
其他的思华没有影响了,edts这个atom可以没有的,我找了几个文件看看,都没有找到
浮云 2009-12-10
  • 打赏
  • 举报
回复
tkhd的duration这个应该填错了,不能等于mvhd的duration,因为timescale,也就是单位不一样了。

应该填 22050*总时长,如果是aac-sbr的话,可能duration还有倍长关系

2,553

社区成员

发帖
与我相关
我的任务
社区描述
专题开发/技术/项目 多媒体/流媒体开发
社区管理员
  • 多媒体/流媒体开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧