我正在编写一个多路复用器,它采用 mpeg4 帧(和 h264)并将它们放入 mp4 容器中。我创建的视频 ( test1.mp4 ) 可以在 Windows 媒体播放器和 VLC 中成功播放,但无法在 Quicktime 中播放。我仔细检查了所有的原子和它们的场,一切看起来都是正确的。我还使用相同的多路复用器库成功创建了另外两个视频(1 个 mpeg4 和 1 个 h264),并且这两个视频在 WMP、VLC 和 QT 中都可以正常播放。我怀疑它们可能有问题的领域之一是 mp4v 原子和它的 esds 子原子。我从 ISO 14496-1 获得的 esds 描述符,所以我不完全确定它,但它确实适用于我尝试的第一个 mpeg4 视频。
任何人都可以就如何解决这个问题提供建议吗?据我所知,QuickTime 不提供任何类型的调试日志记录,我有点卡住了。谢谢!
抱歉,下载链接太糟糕了。
信息:
640x480 分辨率
每秒 10 帧
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
最佳答案
QuickTime 播放器对播放和不播放的内容非常敏感。虽然您的文件是 MPEG-4 文件,并且编解码器是 h.264,但它是 h.264 的不寻常配置文件。
(注意:规范不要求播放器支持所有配置文件。)Apple 的播放器对于他们将使用和不使用的内容异常挑剔。
您文件的 h264 配置文件:高级简单配置文件 @ L5
Apple 设备,包括貌似 QuickTime,都偏向于
- 基线配置文件级别 3.0(iPhone/iPod Touch),
- 主要配置文件级别 3.1 (iPad)
解决方案?使用 Baseline Profile Level 3.0 重新编码您的视频以确保安全
关于视频无法在 Quicktime 中播放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4999472/