I have compressed MP4 video using FFmpeg in a PHP environment. Videos are being compressed, but they are not playing in Firefox, showing an error:
Video can't be played because the file is corrupt
while this video is playing fine in VLC media player and also in the Chrome browser. My code of compression is as-
exec("ffmpeg -i input.mp4 -acodec mp2 output.mp4");
I struggled with this problem until I discovered this gist entitled 'ffmpeg convert gif to mp4, for best cross browser compatibility'. It uses this command:
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
It has these notes on how it works:
webm
movie, which encoding speed is pretty slow.yuv420p
for Firefox compatibility, the downside is color becomes less-saturate than original gif.-movflags +faststart
flags are optimized for online view in browserIncorporating that into my ffmpeg command, I find that the videos now run in Firefox, Safari, Opera and QuickTime (where previously only Chrome and VLC worked for me).
Credit to ingramchen, who wrote the gist.
I know this is a few months old, but in case anyone is still intereste: I had this same thing happen and I found it was because my MP4s were encoded in "MPEG-4 Simple profile" a.k.a. H.263/MPEG4 part 2/xvid. These formats are not supported for playback in most browsers any more.
Transcoding the files to H.264 fixed the problem.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With