Php 以编程方式测试视频(m3u8和ts)文件是否损坏/无法播放

Php 以编程方式测试视频(m3u8和ts)文件是否损坏/无法播放,php,video,Php,Video,如何以编程方式浏览大量视频文件(包含键和ts文件的m3u8播放列表文件),并测试损坏的文件(或任何无法播放的视频文件) 理想情况下,该解决方案并不繁重(即,它可以探测视频片段并确定其可播放性)?从技术上讲,有许多视频流无法解码,无法判断它们是否损坏。除非它是一个包含对数据流进行某种检查的法典 我不知道您指的是什么文件格式,但也许PHP的文件格式会有所帮助。如果无法提取头信息,则该文件可能不是视频文件,也可能是坏文件。它的重量也很轻,因为它只检查标题。使用ffMPEG或其姊妹ffProbe。(ht

如何以编程方式浏览大量视频文件(包含键和ts文件的m3u8播放列表文件),并测试损坏的文件(或任何无法播放的视频文件)


理想情况下,该解决方案并不繁重(即,它可以探测视频片段并确定其可播放性)?

从技术上讲,有许多视频流无法解码,无法判断它们是否损坏。除非它是一个包含对数据流进行某种检查的法典


我不知道您指的是什么文件格式,但也许PHP的文件格式会有所帮助。如果无法提取头信息,则该文件可能不是视频文件,也可能是坏文件。它的重量也很轻,因为它只检查标题。

使用ffMPEG或其姊妹ffProbe。(http://ffmpeg.org/)

灯光选项:ffProbe将为您提供有关视频和音频的信息。非常详细。可以快速跑

更高的选项:ffMPEG可以转换视频,如果您试图将视频从一种格式转换为另一种格式,那么如果视频不好,则可能会失败。但请注意,这是一个CPU密集型操作,您需要对请求进行排队(每个CPU核心一个ffMPEG实例)。您还可以将ffMpeg与-i选项结合使用,为您提供快速且“轻松”的视频信息


您可以在服务器上设置ffProbe或ffmpeg,它可以在Windows和*nix系统上工作,您可以通过exec调用

他们为什么腐败?一般来说,确保视频未损坏的唯一方法是从头到尾解码。嗨,你找到解决方法了吗?+1谢谢!不幸的是,在这种情况下,页眉检查是不够的。我们在创建文件时显式地提供了头,因此即使是损坏的文件也会有正确的头信息。但它可能会有一些用处。谢谢大家对ffmpeg-i的关注。它在绝对路径(远程文件)上不起作用,所以它对我正在处理的东西不起作用。但这回答了问题,谢谢!