ffmpeg压缩mp4视频没有播放mozilla文件损坏错误

时间:2013-12-23 11:58:39

标签: php ffmpeg

我在php环境下使用ffmpeg压缩了mp4视频。视频正在被压缩,但这些不会在firefox中显示错误:

  

由于文件已损坏,无法播放视频

虽然此视频在VLC媒体播放器中也可以在Chrome浏览器中正常播放。我的压抑代码是 -

exec("ffmpeg -i input.mp4 -acodec mp2 output.mp4");

2 个答案:

答案 0 :(得分:4)

我一直在努力解决这个问题,直到我发现this gist名为'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

它有关于它如何运作的这些注释:

  • 输出mp4采用h264编码,支持Windows,Mac OSX,Android和iOS中的Firefox / Chrome / Safari。
  • 所有平台的一个mp4文件,无需编码额外的webm电影,编码速度非常慢。
  • 对于Firefox兼容性,
  • 格式为yuv420p,缺点是颜色变得比原始gif更不饱和。
  • yuv420p仅支持均匀宽度/高度,因此需要裁剪滤镜
  • -movflags +faststart标记针对浏览器中的在线视图进行了优化
  • 压缩比通常为10:1,非常棒。请注意,如果原始gif是< 512KB,转换为mp4效率较低。

将其纳入我的ffmpeg命令后,我发现这些视频现在可以在Firefox,Safari,Opera和QuickTime中运行(之前只有Chrome和VLC适用于我)。

感谢ingramchen,他写了这个要点。

答案 1 :(得分:1)

我知道这已经有几个月了,但万一有人仍然有意思:我发生了同样的事情,我发现这是因为我的MP4编码为“MPEG-4 Simple profile”,即H.263 / MPEG4第2部分/ xvid。大多数浏览器不再支持这些格式的播放。

将文件转码为H.264解决了这个问题。