2
votes

I have two h264 video files. One is "big buck bunny" the other is one I have created using ffmpeg. Both play in most browsers, but in Firefox 31.1.0 "big buck bunny" plays fine, but my video gives a "corrupt video" response.

The outputs from ffprobe for the two videos in tuen are given below (bunny first, then mine)

Can anyone see why mine will not play...?

Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'mov_bbb.mp4':
  Metadata:
    major_brand     : mp42
    minor_version   : 0
    compatible_brands: mp42isomavc1
    creation_time   : 2012-03-13 08:58:06
    encoder         : HandBrake 0.9.6 2012022800
  Duration: 00:00:10.03, start: 0.000000, bitrate: 629 kb/s
    Chapter #0:0: start -0.080000, end 10.000000
    Metadata:
      title           : Chapter 1
    Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p(tv, smpte170m/smpte170m/bt709), 320x176, 300 kb/s, 25 fps, 25 tbr, 90k tbn, 180k tbc (default)
    Metadata:
      creation_time   : 2012-03-13 08:58:06
      encoder         : JVT/AVC Coding
    Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 160 kb/s (default)
    Metadata:
      creation_time   : 2012-03-13 08:58:06
    Stream #0:2(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 160 kb/s
    Metadata:
      creation_time   : 2012-03-13 08:58:06
    Stream #0:3(und): Subtitle: mov_text (text / 0x74786574), 0 kb/s
    Metadata:
      creation_time   : 2012-03-13 08:58:06
 
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'test.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    encoder         : Lavf56.40.101
  Duration: 00:00:09.92, start: 0.000000, bitrate: 159 kb/s
    Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p, 352x288 [SAR 12:11 DAR 4:3], 157 kb/s, 12.50 fps, 12.50 tbr, 12800 tbn, 25 tbc (default)
    Metadata:
      handler_name    : VideoHandler
1
12.50 fps major red flag. show encoding commandUmNyobe
ffmpeg -v 0 -y -i tmp.mp4 -ss 1 -t 11.5 -r 12.5 -c:v libx264 -preset medium -threads 8 -crf 28 test.mp4 This doesn't give any errors, and seems to work in most browsers, including most versions of FF. I think it may be related to using FF in a virtual machine. I can try an integer FPS though and see if it helpsuser1447903
what if you try with -r 25UmNyobe
No joy on either 12 or 25. Works fine in most browsers though....may just be the virtualisation the browser doesn't likeuser1447903

1 Answers

1
votes

You could try encoding your video in ffmpeg with the option -movflags faststart see here

This will move the moov atom to the start of the file preventing the need to download the entire file before playback is possible

Other than that all I can suggest is trying MP4Box to encode your video