[FFmpeg-trac] #601(undetermined:new): ffmpeg / libx264 produces invalid MP4 file

FFmpeg trac at avcodec.org
Mon Oct 31 10:01:53 CET 2011


#601: ffmpeg / libx264 produces invalid MP4 file
-------------------------------------+-------------------------------------
             Reporter:  shifter1     |                     Type:  defect
               Status:  new          |                 Priority:  normal
            Component:               |                  Version:
  undetermined                       |  unspecified
             Keywords:  ffmpeg       |               Blocked By:
  libx264                            |  Reproduced by developer:  0
             Blocking:               |
Analyzed by developer:  0            |
-------------------------------------+-------------------------------------
 FFmpeg or libx264 or some combination of the two produces an invalid mp4
 that will crash ffprobe / probably others (VLC crashes on the file as
 well).

 The source is a number of PNG images and the output is a 2 pass encoded
 libx264 coded video.

 Here is the command line I used:
 carl at af:~/fractal$ ffmpeg -r 30 -i fracs/fractal%05d.png -vcodec libx264
 -b:v 4096k  -t 60 -threads 0 -pass 1 preview.mp4
 ffmpeg version N-33758-gc4e02d3, Copyright (c) 2000-2011 the FFmpeg
 developers
   built on Oct 18 2011 03:55:48 with gcc 4.4.3
   configuration: --enable-librtmp --enable-gpl --enable-shared --enable-
 nonfree --enable-pthreads --enable-libx264 --enable-libmp3lame --enable-
 libvorbis --
 enable-libfaac --enable-libtheora --enable-libvpx
   libavutil    51. 21. 0 / 51. 21. 0
   libavcodec   53. 21. 0 / 53. 21. 0
   libavformat  53. 16. 1 / 53. 16. 1
   libavdevice  53.  4. 0 / 53.  4. 0
   libavfilter   2. 43. 7 /  2. 43. 7
   libswscale    2.  1. 0 /  2.  1. 0
   libpostproc  51.  2. 0 / 51.  2. 0
 Input #0, image2, from 'fracs/fractal%05d.png':
   Duration: 00:05:19.00, start: 0.000000, bitrate: N/A
     Stream #0:0: Video: png, rgb24, 1440x900, 30 fps, 30 tbr, 30 tbn, 30
 tbc
 File 'preview.mp4' already exists. Overwrite ? [y/N] y
 w:1440 h:900 pixfmt:rgb24 tb:1/1000000 sar:0/1 sws_param:
 [libx264 @ 0x9121a80] using cpu capabilities: MMX2 SSE2Fast SSSE3 Cache64
 [libx264 @ 0x9121a80] profile High 4:4:4 Predictive, level 4.0, 4:4:4
 8-bit
 [libx264 @ 0x9121a80] 264 - core 118 r2085 8a62835 - H.264/MPEG-4 AVC
 codec - Copyleft 2003-2011 - http://www.videolan.org/x264.html - options:
 cabac=1 ref=
 1 deblock=1:0:0 analyse=0x1:0 me=dia subme=2 psy=1 psy_rd=1.00:0.00
 mixed_ref=0 me_range=16 chroma_me=1 trellis=0 8x8dct=0 cqm=0
 deadzone=21,11 fast_pskip=1
  chroma_qp_offset=0 threads=3 sliced_threads=0 nr=0 decimate=1
 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2
 b_adapt=1 b_bias=0 dir
 ect=1 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=25 scenecut=40
 intra_refresh=0 rc_lookahead=40 rc=abr mbtree=1 bitrate=4096 ratetol=1.0
 qcomp=0.6
 0 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
 Output #0, mp4, to 'preview.mp4':
   Metadata:
     encoder         : Lavf53.16.1
     Stream #0:0: Video: h264 (![0][0][0] / 0x0021), rgb24, 1440x900, q=-1
 --1, pass 1, 4096 kb/s, 30 tbn, 30 tbc
 Stream mapping:
   Stream #0.0 -> #0.0 (png -> libx264)
 Press [q] to stop, [?] for help
 frame= 1800 fps= 15 q=-1.0 Lsize=   35021kB time=00:00:59.93
 bitrate=4786.9kbits/s
 video:34994kB audio:0kB global headers:0kB muxing overhead 0.076605%


 ======================================================
 For the second pass:


 carl at af:~/fractal$ ffmpeg -r 30 -i fracs/fractal%05d.png -i Midnight.mp3
 -vcodec libx264 -b:v 4096k -acodec libfaac -ab 160k -t 60 -threads 0 -pass
 2 preview.mp4
 ffmpeg version N-33758-gc4e02d3, Copyright (c) 2000-2011 the FFmpeg
 developers
   built on Oct 18 2011 03:55:48 with gcc 4.4.3
   configuration: --enable-librtmp --enable-gpl --enable-shared --enable-
 nonfree --enable-pthreads --enable-libx264 --enable-libmp3lame --enable-
 libvorbis --enable-libfaac --enable-libtheora --enable-libvpx
   libavutil    51. 21. 0 / 51. 21. 0
   libavcodec   53. 21. 0 / 53. 21. 0
   libavformat  53. 16. 1 / 53. 16. 1
   libavdevice  53.  4. 0 / 53.  4. 0
   libavfilter   2. 43. 7 /  2. 43. 7
   libswscale    2.  1. 0 /  2.  1. 0
   libpostproc  51.  2. 0 / 51.  2. 0
 Input #0, image2, from 'fracs/fractal%05d.png':
   Duration: 00:05:19.00, start: 0.000000, bitrate: N/A
     Stream #0:0: Video: png, rgb24, 1440x900, 30 fps, 30 tbr, 30 tbn, 30
 tbc
 [mp3 @ 0x9dd0780] max_analyze_duration 5000000 reached at 5015510
 [mp3 @ 0x9dd0780] Estimating duration from bitrate, this may be inaccurate
 Input #1, mp3, from 'Midnight.mp3':
   Metadata:
     title           : {Midnight} (ID: 60919)
     album           : Newgrounds Audio Portal
     track           : 01/01
     artist          : cornandbeans
   Duration: 00:05:18.88, start: 0.000000, bitrate: 95 kb/s
     Stream #1:0: Audio: mp3, 44100 Hz, stereo, s16, 96 kb/s
 File 'preview.mp4' already exists. Overwrite ? [y/N] y
 w:1440 h:900 pixfmt:rgb24 tb:1/1000000 sar:0/1 sws_param:
 [libx264 @ 0x9de7060] using cpu capabilities: MMX2 SSE2Fast SSSE3 Cache64
 [libx264 @ 0x9de7060] profile High 4:4:4 Predictive, level 4.0, 4:4:4
 8-bit
 [libx264 @ 0x9de7060] 264 - core 118 r2085 8a62835 - H.264/MPEG-4 AVC
 codec - Copyleft 2003-2011 - http://www.videolan.org/x264.html - options:
 cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1
 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1
 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=3
 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0
 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1
 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=25 scenecut=40
 intra_refresh=0 rc_lookahead=40 rc=2pass mbtree=1 bitrate=4096 ratetol=1.0
 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 cplxblur=20.0 qblur=0.5 ip_ratio=1.40
 aq=1:1.00
 Output #0, mp4, to 'preview.mp4':
   Metadata:
     encoder         : Lavf53.16.1
     Stream #0:0: Video: h264 (![0][0][0] / 0x0021), rgb24, 1440x900, q=-1
 --1, pass 2, 4096 kb/s, 30 tbn, 30 tbc
     Stream #0:1: Audio: aac (@[0][0][0] / 0x0040), 44100 Hz, stereo, s16,
 160 kb/s
 Stream mapping:
   Stream #0.0 -> #0.0 (png -> libx264)
   Stream #1.0 -> #0.1 (mp3 -> libfaac)
 Press [q] to stop, [?] for help
 frame= 1800 fps=  9 q=-1.0 Lsize=   30945kB time=00:00:59.93
 bitrate=4229.7kbits/s
 video:29784kB audio:1114kB global headers:0kB muxing overhead 0.153548%



 ===================================================
 Finally, trying to probe:

 carl at af:~/fractal$ ffprobe preview.mp4
 ffprobe version N-33758-gc4e02d3, Copyright (c) 2007-2011 the FFmpeg
 developers
   built on Oct 18 2011 03:55:48 with gcc 4.4.3
   configuration: --enable-librtmp --enable-gpl --enable-shared --enable-
 nonfree --enable-pthreads --enable-libx264 --enable-libmp3lame --enable-
 libvorbis --enable-libfaac --enable-libtheora --enable-libvpx
   libavutil    51. 21. 0 / 51. 21. 0
   libavcodec   53. 21. 0 / 53. 21. 0
   libavformat  53. 16. 1 / 53. 16. 1
   libavdevice  53.  4. 0 / 53.  4. 0
   libavfilter   2. 43. 7 /  2. 43. 7
   libswscale    2.  1. 0 /  2.  1. 0
   libpostproc  51.  2. 0 / 51.  2. 0
 *** glibc detected *** ffprobe: free(): invalid pointer: 0xb605f020 ***
 ======= Backtrace: =========
 /lib/tls/i686/cmov/libc.so.6(+0x6b591)[0xb6855591]
 /lib/tls/i686/cmov/libc.so.6(+0x6cde8)[0xb6856de8]
 /lib/tls/i686/cmov/libc.so.6(cfree+0x6d)[0xb6859ecd]
 /usr/local/lib/libavutil.so.51(av_freep+0x12)[0xb6992ef2]
 ======= Memory map: ========
 08048000-08051000 r-xp 00000000 08:02 2496305    /usr/local/bin/ffprobe
 08051000-08052000 r--p 00009000 08:02 2496305    /usr/local/bin/ffprobe
 08052000-08053000 rw-p 0000a000 08:02 2496305    /usr/local/bin/ffprobe
 08976000-08a62000 rw-p 00000000 00:00 0          [heap]

 ...


 There is lots more, and I can include the video source and output files.
 They are fairly large though.

-- 
Ticket URL: <https://ffmpeg.org/trac/ffmpeg/ticket/601>
FFmpeg <http://ffmpeg.org>
FFmpeg issue tracker


More information about the FFmpeg-trac mailing list