在Firefox中无法播放的视频:如何检测和修复?

问题描述 投票:0回答:1

[作为测试用例,我有两个mp4视频:它们似乎编码相同,但是其中一个在Firefox中有效,而一个在Firefox中却没有:

bad.mp4(无效)view download

good.mp4(有效)view download

((注-我以为上面的“视图”链接会使用浏览器的内置播放器打开它们,但是看起来它们使用的是Dropbox的视频播放器,它确实在firefox中起作用。因此,要在firefox中查看它,请下载然后将其拖到Firefox中,或右键单击并从“打开方式”中选择Firefox-谢谢!)

它们都在Chrome中播放。

在Mozilla错误跟踪网站上,有关一个相关问题的讨论很长:https://bugzilla.mozilla.org/show_bug.cgi?id=1130450

所以,我需要回答三个问题:

1)bad.mp4有什么问题?

2)如何以编程方式(即在Linux命令行上)检测视频库中的哪些视频会出现此问题?

3)如何以编程方式(例如,使用FFMPEG)修复它。

我注意到的一件事是,好的视频中,视频流0和音频流1,而坏视频则相反。我尝试交换流,但似乎无济于事。

firefox video ffmpeg mp4
1个回答
0
投票

首先,对mp4曲目进行排序与​​此无关。第二,在带有Firefox 52.5.3版本的Win10上,bad.mp4可以正常工作。但是,在使用Firefox 69.03的MacOS上,bad.mp4也可以播放,但有很多人工制品。

H.264比特流似乎还可以。我用MP4Box MP4Box -raw 2 bad.mp4对坏的mp4进行了多路分解,得到bad_track2.h264,然后用reference software对其进行了解码。解码就好了,没有任何问题,因此比特流似乎不是问题。

因此它必须是mp4的包装。的确,如果我再次使用MP4Box -add bad_track2.h264 repackage.mp4将比特流打包回去,它的播放效果很好。因此,这是个好消息,因为您无需重新编码(转码)视频,这样可以节省大量时间。当然,如果您不想使用MP4Box进行转码,也可以解决ffmpeg -i bad.mp4 transcode.mp4

要回答2和3。不能100%确认所有视频是否相同,但是good.mp4和bad.mp4之间的区别是可以通过compatible_brands获得ffprobe。您可以编写脚本查找与bad.mp4品牌相同的视频,然后使用ffprobeMP4Box重新打包每个视频。

我希望这会有所帮助。

© www.soinside.com 2019 - 2024. All rights reserved.