【问题标题】:Debugging an MP4 opened by VLC but not by ffplay调试由 VLC 但不是由 ffplay 打开的 MP4
【发布时间】:2015-05-12 07:35:20
【问题描述】:

我正在编写一个创建 MP4 文件的代码。为了检查它,我创建了一个 MP4 文件。

该文件可以被 VLC 和 Firefox 正确播放,但不能被 ffplay 或 Chrome 播放。我猜该文件包含 VLC 可以处理但更激进的 MP4 阅读器不能处理的错误。

我考虑过修复文件并检查修复我的代码的区别。但是我尝试了一些程序来修复 MP4 文件,直到现在都没有成功。

有人可以推荐另一种调试问题的方法,或者修复 MP4 文件的好工具吗?该文件是一个分段 MP4,包含 init 部分(ftyp、moov 框)和一个片段部分(moof 和空 sidx)。

这是视频文件:

https://www.dropbox.com/s/rojxzvkfxfj31u8/400k00001-3_serialized.mp4?dl=0

编辑:当使用媒体源扩展时,它在 Firefox 中也不起作用,如下例所示: http://people.mozilla.org/~jyavenard/tests/mse_mp4/paper.html

(不要忘记在 Firefox 上启用 MSE,如下所述: http://www.linuxveda.com/2015/04/02/enable-mse-native-html5-support-firefox-linux/)

EDIT2:在 chrome://media-internals 中,我看到上述示例出现以下错误: 追加:流解析失败。数据大小=131072 append_window_start=0 append_window_end=inf

(将 URL 更改为文件并将编解码器更改为 'avc1.4d401f' 而不是 'avc1.64000d,mp4a.40.2')。

【问题讨论】:

  • 您应该显示创建 MP4 文件的代码。
  • 您的文件似乎创作不当,即使编码日期错误(1904..)。 VLC 也抱怨它,但选择忽略这些问题: [000000010050d158] mp4 demux 警告:未定义块 [000000010050d158] mp4 demux 调试:track[Id 0x1] 读取 0 块 [000000010050d158] mp4 demux 警告:STTS table of 0 entries [000000010050d158] mp4 demux debug: track[Id 0x1] read 0 samples length:0s 所以 LordNeckbeard 是绝对正确的。你需要显示你的代码:)

标签: video ffmpeg mp4 vlc


【解决方案1】:

最终通过修复文件中的一些错误解决了问题。 如果有人遇到类似问题,以下是修复:

  • MVHD 框中的持续时间应为零。
  • MEHD 框应包含在 MVEX 框中。 MEHD 框包含 fragment_duration 字段。
  • sample_flags(在 TREX 框中)应保留 6 个 MSBits 应为“1”而不是“0”。
  • TKHD 框中的音量字段应为 0 而不是 1(1 用于音频)。
  • TKHD 和 STSD 盒子中的尺寸错误。
  • avcC 框中的编解码器参数错误。与https://stackoverflow.com/a/11869227/2463642 中的第三条评论完全相同的错误。请参阅此答案以进行正确解析:html5 video tag codecs attribute
  • MFHD 包含的 sequence_number 为零。应该从 1 开始。
  • TFDT 框丢失。应包含在 TRAF 框中,并指示每个片段的 base_media_decode_time。
  • TRUN 缺少 data_offset 字段。它导致 FFMPEG 认为数据从 MOOF 框的开头开始。
  • TRUN 框中的 sample_flags 错误。所有标记为“差异帧”的样本,没有关键帧开始......这是关于这些标志的解释:https://msdn.microsoft.com/en-us/library/ff469599.aspx

【讨论】:

    猜你喜欢
    • 2021-10-19
    • 2014-08-04
    • 1970-01-01
    • 1970-01-01
    • 2014-11-15
    • 1970-01-01
    • 1970-01-01
    • 2013-05-02
    • 1970-01-01
    相关资源
    最近更新 更多