当前位置: 首页 > 知识库问答 >
问题:

调试由VLC而非ffplay打开的MP4

田修为
2023-03-14

我正在编写一个创建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/)

编辑2:在chrome://media-internals,我在上面的示例中看到以下错误:Append:stream解析失败。数据大小=131072追加窗口开始=0追加窗口结束=inf

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

共有1个答案

闻人花蜂
2023-03-14

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

  • MVHD框中的持续时间应为零
  • MEHD盒应包含在MVEX盒中。MEHD框包含片段持续时间字段
  • 示例_标志(在TREX框中)应为6,保留的MSBits应为“1”,而不是“0”
  • TKHD框中的音量字段应为0而不是1(1代表音频)
  • TKHD和STD盒的尺寸都是错误的
  • avcC盒中的编解码器参数错误。与中的第三条注释完全相同的错误:https://stackoverflow.com/a/11869227/2463642.请参阅以下正确解析答案:html5视频标签编解码器属性
  • MFHD包含零的序列号。应该从1开始
  • TFDT盒子不见了。应包含在TRAF框中,并指出每个片段的基本时间
  • TRUN缺少一个数据偏移字段。它使FFMPEG认为数据从MOOF box的开头开始
  • TRUN box中的示例标志错误。所有样本标记为“差异帧”,没有关键帧开始。。。以下是对这些标志的解释:https://msdn.microsoft.com/en-us/library/ff469599.aspx
 类似资料:
  • 然后我在IntelliJ中设置了一个带有附加模块的插入式服务器,以启用热交换。我在调试模式下运行这个服务器,它运行得很好。 现在,如果我不使用插入式服务器,但想像之前一样启动服务器,那么当我运行调试远程时,我会得到以下结果: 错误 运行“Debug Glassfish OSM”时出错:无法打开调试器端口(localhost:9009):java。网ConnectException“连接被拒绝:连接

  • 本工程将ffmpeg项目中的ffplay播放器(ffplay.c)移植到了VC的环境下。并且使用MFC做了一套图形界面。它可以完成一个播放器播放视频的基本流程:解协议,解封装,视频/音频解码,视音频同步,视音频输出。此外还包含一些控制功能:播放,暂停/继续,前进,后退,停止,逐帧播放,全屏等;以及一些简单的视频码流分析功能:视频解码分析和音频解码分析。

  • 问题内容: 这是一个简单的Go http(tcp)连接测试脚本 如果我在Ubuntu中运行它,我将得到: 其他帖子说,以确保连接,这就是我在这里所做的全部。还有人说,要增加最大连接数的限制或尝试使用,但仍然行不通。 如何在单个服务器上运行数百万个tcp连接goroutine?仅在2,000个连接时崩溃。 谢谢, 问题答案: 我认为您需要更改您的最大文件描述符。我之前在我的一个开发VM上遇到了相同的

  • VLC for Android This is the official Android port of VLC. VLC on Android plays all the same files as the classical version of VLC, and features a media databasefor Audio and Video files and stream. Pr

  • 使用VisualStudio/MVC,当单击调试时,它总是在我当前打开的Chrome窗口中作为新选项卡启动本地站点。 随着 2017.7 更新,现在它每次都会启动一个新窗口。 有什么方法可以改回将其加载到选项卡中吗?我不喜欢“每次都有新的Chrome窗口”的行为

  • 我在PHP中使用fputcsv创建了一个CSV文件。文件创建成功,我可以在MacOS中打开文件,没有问题。(我在MacOS中使用数字)。问题是在微软的Excel中,它将所有行显示为合并的一列。 我在代码中将分隔符设置为“;”。 当我按照Microsoft文档中的说明检查语言和区域设置时,分隔符也是“;”。 我还应该检查什么?非常感谢。