2013-05-10 217 views
2

我想以编程方式检查MP4文件是否可以播放。我非常感兴趣以编程方式解决此问题。如何以编程方式检查MP4是否损坏?

手动,我可以轻松验证损坏的MP4,但我不会为此观看2-3小时的电影,并且我的驱动器中有超过500个视频。 :/

什么是我损坏的文件?

那么,当我播放Mp4时,我得到了小故障,有时会出现诸如“无法播放此视频”等错误。有时播放视频时没有发生任何错误,但我看不到或听到任何声音。这是有点随意的腐败。

我相信,写视频播放器的人必须面对/处理这类问题。

总之,如何以编程方式找到这样的文件?有什么建议么?

谢谢。

+1

我想知道为什么有人应该投票! – Vips 2013-05-10 18:04:29

回答

3

除非您完全解码文件,否则无法找到答案。您可以解码并不显示。因此,使用像ffmpeg这样的东西解码到/ dev/null。如果没有错误消息,并且在中间没有中止一切正常。如果你知道你在某种文件中有腐败现象。

通常,如果它们是可恢复的错误,则ffmpeg将继续。因此,您可以根据错误消息的数量和持续到最后的能力来了解错误或严重程度。

+1

我同意av501,如果你希望它以编程方式做它,那么你将需要开始与ffmpeg打开文件,然后开始解码每一帧和检查过程中的错误。您将能够为您解码的每个音频和视频帧找到它们,并据此作出决定。 – praks411 2013-05-12 09:36:21

+0

我用ffmpeg编码了一个MP4文件,它在mplayer中播放,但Chrome浏览器拒绝,说文件损坏。我做了:'ffmpeg -i -s 960x540 -c:a none -c:v libx264 -crf 18 out.mp4'。用主流浏览器播放ffmpeg文件的安全方式是什么? – 2016-01-24 19:26:35

+0

@ LuisA.Florit,这不是一个mp4的东西,但可能是一个编解码器的东西。只有第三方解码器可用时,Firefox才支持h264。 https://developer.mozilla.org/en-US/docs/Web/HTML/Supported_media_formats。所以要回答你的问题,不,一个编码器不能适用于所有的浏览器,你需要针对不同的浏览器进行不同的编码。我假设你在这里使用html5视频标签。 – av501 2016-01-25 00:49:32

0

您可以开始查找mp4解析器库并使用它并查看它是否失败。 可以有那些只读moov头。

相关问题