视频无法在Quicktime中播放

时间:2011-02-15 02:50:32

标签: video mp4 quicktime mpeg-4

我正在编写一个多路复用器,它需要mpeg4帧(和h264)并将它们放入mp4容器中。我创建的视频(test1.mp4)已成功在Windows媒体播放器和VLC中播放,但无法在Quicktime中播放。我仔细检查了所有的原子和它们的场,一切看起来都正确。我还成功地使用相同的多路复用器库创建了另外两个视频(1 mpeg4和1 h264),这些视频在WMP,VLC和QT中都能正常播放。我怀疑它们可能存在问题的一个领域是mp4v原子,它是esds child atom。我从ISO 14496-1获得的esds描述符所以我不完全确定它,但它确实在我尝试的第一个mpeg4视频上工作。

有人可以就如何解决这个问题提出建议吗?从我所看到的,QuickTime不提供任何类型的调试日志记录,我有点卡住了。谢谢!

抱歉可怕的下载链接。

信息:
640x480分辨率
10fps的
148帧

原子结构:

mp4 debug: |    + ftyp size 24
mp4 debug: |    + mdat size 1149537
mp4 debug: |    + moov size 1315
mp4 debug: |    |    + mvhd size 108
mp4 debug: |    |    + trak size 1199
mp4 debug: |    |    |    + tkhd size 92
mp4 debug: |    |    |    + mdia size 1099
mp4 debug: |    |    |    |    + mdhd size 32
mp4 debug: |    |    |    |    + hdlr size 58
mp4 debug: |    |    |    |    + minf size 1001
mp4 debug: |    |    |    |    |    + vmhd size 20
mp4 debug: |    |    |    |    |    + dinf size 36
mp4 debug: |    |    |    |    |    |    + dref size 28
mp4 debug: |    |    |    |    |    |    |    + url  size 12
mp4 debug: |    |    |    |    |    + stbl size 937
mp4 debug: |    |    |    |    |    |    + stsd size 169
mp4 debug: |    |    |    |    |    |    |    + mp4v size 153
mp4 debug: |    |    |    |    |    |    |    |    + esds size 67
mp4 debug: |    |    |    |    |    |    + stts size 24
mp4 debug: |    |    |    |    |    |    + stss size 76
mp4 debug: |    |    |    |    |    |    + stsc size 28
mp4 debug: |    |    |    |    |    |    + stsz size 612
mp4 debug: |    |    |    |    |    |    + stco size 20

2 个答案:

答案 0 :(得分:0)

QuickTime播放器对它将会播放的内容非常非常敏感。虽然您的文件是MPEG-4文件,而CODEC是h.264,但它是h.264的一个不寻常的配置文件。

(注意:该规范不要求玩家支持所有个人资料。) Apple的玩家对于他们将会使用和不会使用的内容非常挑剔。

您的文件的h264配置文件: Advanced Simple Profile @ L5

Apple设备,包括看似QuickTime,对

有偏见
  • Baseline Profile Level 3.0(iPhone / iPod Touch),
  • 主要资料等级3.1(iPad)

解决方案?使用Baseline Profile Level 3.0重新编码您的视频是安全的

答案 1 :(得分:0)

我遇到了类似的问题(在VLC中播放的.mov容器中的MPEG-4第2部分,但不是QuickTime),我通过用类似的.mov中的有效ESDS替换显然无效的ESDS来修复它。

这可能是这里的问题。