我正在编写一个多路复用器,它需要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
答案 0 :(得分:0)
QuickTime播放器对它将会播放的内容非常非常敏感。虽然您的文件是MPEG-4文件,而CODEC是h.264,但它是h.264的一个不寻常的配置文件。
(注意:该规范不要求玩家支持所有个人资料。) Apple的玩家对于他们将会使用和不会使用的内容非常挑剔。
您的文件的h264配置文件: Advanced Simple Profile @ L5
Apple设备,包括看似QuickTime,对
有偏见解决方案?使用Baseline Profile Level 3.0重新编码您的视频是安全的
答案 1 :(得分:0)
我遇到了类似的问题(在VLC中播放的.mov容器中的MPEG-4第2部分,但不是QuickTime),我通过用类似的.mov中的有效ESDS替换显然无效的ESDS来修复它。
这可能是这里的问题。