3

我正在编写一个多路复用器,它采用 mpeg4 帧(和 h264)并将它们放入一个 mp4 容器中。我创建的视频 ( test1.mp4 ) 在 Windows 媒体播放器和 VLC 中成功播放,但不会在 Quicktime 中播放。我已经仔细检查了所有原子及其字段,一切看起来都是正确的。我还成功地使用相同的多路复用器库创建了另外两个视频(1 mpeg4 和 1 h264),并且这两个视频在 WMP、VLC 和 QT 中都可以正常播放。我怀疑它们可能存在问题的领域之一是 mp4v 原子,它是 esds 子原子。我从 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
4

2 回答 2

0

QuickTime 播放器对它会播放什么和不会播放什么非常敏感。虽然您的文件是 MPEG-4 文件,并且 CODEC 是 h.264,但它是 h.264 的不寻常配置文件。

(注意:该规范并不要求玩家支持所有配置文件。) Apple 的玩家对他们将使用和不使用的内容非常挑剔。

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

Apple 设备,包括看似 QuickTime,对

  • 基线配置文件级别 3.0(iPhone/iPod Touch),
  • 主要配置文件级别 3.1 (iPad)

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

于 2011-03-07T13:55:08.487 回答
0

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

这可能是这里的问题。

于 2011-07-22T18:57:16.047 回答