【发布时间】: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 是绝对正确的。你需要显示你的代码:)