我在PHP环境中使用FFmpeg压缩了MP4视频。视频已被压缩,但是无法在firefox中播放,并显示错误:
文件损坏,无法播放视频
虽然此视频在chrome浏览器中的VLC媒体播放器中也能正常播放。我的压缩代码为-
exec("ffmpeg -i input.mp4 -acodec mp2 output.mp4");
Run Code Online (Sandbox Code Playgroud)
我一直在为这个问题苦苦挣扎,直到发现名为“ ffmpeg将gif转换为mp4,以获得最佳跨浏览器兼容性”的要点。它使用以下命令:
ffmpeg -f gif -i FOO.gif -pix_fmt yuv420p -c:v libx264 -movflags +faststart -filter:v crop='floor(in_w/2)*2:floor(in_h/2)*2' BAR.mp4
Run Code Online (Sandbox Code Playgroud)
它具有以下有关其工作原理的说明:
webm电影,而编码速度非常慢。yuv420pFirefox兼容性的格式,缺点是颜色变得比原始gif的饱和度低。-movflags +faststart 标志针对浏览器中的在线视图进行了优化将其结合到我的ffmpeg命令中,我发现这些视频现在可以在Firefox,Safari,Opera和QuickTime(以前只有Chrome和VLC适用于我)中运行。
归功于撰写要点的英格拉姆。
小智 1
我知道这已经是几个月前的事了,但以防万一有人仍然感兴趣:我也发生过同样的事情,我发现这是因为我的 MP4 是用“MPEG-4 Simple profile”(又名 H.263/MPEG4 第 2 部分)编码的xvid。大多数浏览器不再支持播放这些格式。
将文件转码为 H.264 解决了该问题。