[FFmpeg-trac] #2625(undetermined:new): Transcoding file to aac results in process stuck

FFmpeg trac at avcodec.org
Sun Jun 2 15:04:22 CEST 2013


#2625: Transcoding file to aac results in process stuck
-------------------------------------+-------------------------------------
             Reporter:  luca         |                     Type:  defect
               Status:  new          |                 Priority:  normal
            Component:               |                  Version:
  undetermined                       |  unspecified
             Keywords:               |               Blocked By:
             Blocking:               |  Reproduced by developer:  0
Analyzed by developer:  0            |
-------------------------------------+-------------------------------------
 Summary of the bug:
 The ffmpeg transcoding procedure results stuck when trying to transcode a
 mjpeg/pcm_s16le file to h264/aac. This is what I see after many hours of
 transcoding:


 {{{
 host-001:No backup luca$ ffmpeg -i DSCN0468.AVI -vcodec libx264 -vprofile
 high -preset veryslow -crf 22 -acodec aac -strict -2
 DSCN0468_transcoded_mac.mp4 -threads 0
 ffmpeg version 1.2.1 Copyright (c) 2000-2013 the FFmpeg developers
   built on May 20 2013 05:41:01 with Apple clang version 4.1
 (tags/Apple/clang-421.11.66) (based on LLVM 3.1svn)
   configuration: --prefix=/opt/local --enable-swscale --enable-avfilter
 --enable-libmp3lame --enable-libvorbis --enable-libopus --enable-libtheora
 --enable-libschroedinger --enable-libopenjpeg --enable-libmodplug
 --enable-libvpx --enable-libspeex --enable-libfreetype
 --mandir=/opt/local/share/man --enable-shared --enable-pthreads
 --cc=/usr/bin/clang --arch=x86_64 --enable-yasm --enable-gpl --enable-
 postproc --enable-libx264 --enable-libxvid
   libavutil      52. 18.100 / 52. 18.100
   libavcodec     54. 92.100 / 54. 92.100
   libavformat    54. 63.104 / 54. 63.104
   libavdevice    54.  3.103 / 54.  3.103
   libavfilter     3. 42.103 /  3. 42.103
   libswscale      2.  2.100 /  2.  2.100
   libswresample   0. 17.102 /  0. 17.102
   libpostproc    52.  2.100 / 52.  2.100
 Trailing options were found on the commandline.
 [avi @ 0x7fc281029c00] non-interleaved AVI
 Guessed Channel Layout for  Input Stream #0.1 : mono
 Input #0, avi, from 'DSCN0468.AVI':
   Metadata:
     encoder         :
     maker           : NIKON
     model           : COOLPIX S5100
     creation_time   : 2012-04-14 15:58:41
   Duration: 00:22:46.26, start: 0.000000, bitrate: 22618 kb/s
     Stream #0:0: Video: mjpeg (MJPG / 0x47504A4D), yuvj422p, 1280x720,
 29.97 tbr, 29.97 tbn, 29.97 tbc
     Stream #0:1: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 22050 Hz, mono,
 s16, 352 kb/s
 File 'DSCN0468_transcoded_mac.mp4' already exists. Overwrite ? [y/N] y
 using cpu capabilities: none!
 [libx264 @ 0x7fc281031800] profile High, level 5.0
 [libx264 @ 0x7fc281031800] 264 - core 129 - H.264/MPEG-4 AVC codec -
 Copyleft 2003-2013 - http://www.videolan.org/x264.html - options: cabac=1
 ref=16 deblock=1:0:0 analyse=0x3:0x133 me=umh subme=10 psy=1
 psy_rd=1.00:0.00 mixed_ref=1 me_range=24 chroma_me=1 trellis=2 8x8dct=1
 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=6
 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0
 bluray_compat=0 constrained_intra=0 bframes=8 b_pyramid=2 b_adapt=2
 b_bias=0 direct=3 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=25
 scenecut=40 intra_refresh=0 rc_lookahead=60 rc=crf mbtree=1 crf=22.0
 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
 Output #0, mp4, to 'DSCN0468_transcoded_mac.mp4':
   Metadata:
     model           : COOLPIX S5100
     maker           : NIKON
     encoder         : Lavf54.63.104
     Stream #0:0: Video: h264 ([33][0][0][0] / 0x0021), yuvj420p, 1280x720,
 q=-1--1, 30k tbn, 29.97 tbc
     Stream #0:1: Audio: aac ([64][0][0][0] / 0x0040), 22050 Hz, mono,
 fltp, 128 kb/s
 Stream mapping:
   Stream #0:0 -> #0:0 (mjpeg -> libx264)
   Stream #0:1 -> #0:1 (pcm_s16le -> aac)
 Press [q] to stop, [?] for help
 frame=  616 fps=0.6 q=28.0 size=    8205kB time=00:00:20.43
 bitrate=3289.5kbits/s
 }}}

 Everything is still at this point, and the output file size does not
 increase anymore. Also, -threads 0 commonly uses 4 cores here, resulting
 in approx 400% of CPU usage. When this point is reached, ffmpeg CPU usage
 is down to 100% and seems not to end.

 I tried to transcode to ac3 and it seemed to go over that point.
 Then I tried to produce a sample containing only 30 seconds of audio and
 transcode to aac. The result is:

 {{{
 host-001:No backup luca$ ffmpeg -v 9 -loglevel 99 -i sample.avi -acodec
 aac -strict -2 out_audio.mp4 -report
 ffmpeg started on 2013-06-02 at 14:50:21
 Report written to "ffmpeg-20130602-145021.log"
 ffmpeg version 1.2.1 Copyright (c) 2000-2013 the FFmpeg developers
   built on May 20 2013 05:41:01 with Apple clang version 4.1
 (tags/Apple/clang-421.11.66) (based on LLVM 3.1svn)
   configuration: --prefix=/opt/local --enable-swscale --enable-avfilter
 --enable-libmp3lame --enable-libvorbis --enable-libopus --enable-libtheora
 --enable-libschroedinger --enable-libopenjpeg --enable-libmodplug
 --enable-libvpx --enable-libspeex --enable-libfreetype
 --mandir=/opt/local/share/man --enable-shared --enable-pthreads
 --cc=/usr/bin/clang --arch=x86_64 --enable-yasm --enable-gpl --enable-
 postproc --enable-libx264 --enable-libxvid
   libavutil      52. 18.100 / 52. 18.100
   libavcodec     54. 92.100 / 54. 92.100
   libavformat    54. 63.104 / 54. 63.104
   libavdevice    54.  3.103 / 54.  3.103
   libavfilter     3. 42.103 /  3. 42.103
   libswscale      2.  2.100 /  2.  2.100
   libswresample   0. 17.102 /  0. 17.102
   libpostproc    52.  2.100 / 52.  2.100
 Splitting the commandline.
 Reading option '-v' ... matched as option 'v' (set libav* logging level)
 with argument '9'.
 Reading option '-loglevel' ... matched as option 'loglevel' (set libav*
 logging level) with argument '99'.
 Reading option '-i' ... matched as input file with argument 'sample.avi'.
 Reading option '-acodec' ... matched as option 'acodec' (force audio codec
 ('copy' to copy stream)) with argument 'aac'.
 Reading option '-strict' ... matched as AVOption 'strict' with argument
 '-2'.
 Reading option 'out_audio.mp4' ... matched as output file.
 Reading option '-report' ... matched as option 'report' (generate a
 report) with argument '1'.
 Finished splitting the commandline.
 Parsing a group of options: global .
 Applying option v (set libav* logging level) with argument 9.
 Applying option report (generate a report) with argument 1.
 Successfully parsed a group of options.
 Parsing a group of options: input file sample.avi.
 Successfully parsed a group of options.
 Opening an input file: sample.avi.
 [avi @ 0x7fd45a02de00] Format avi probed with size=2048 and score=100
 [avi @ 0x7fd459c12700] use odml:1
 [avi @ 0x7fd45a02de00] File position before avformat_find_stream_info() is
 5652
 [avi @ 0x7fd45a02de00] parser not found for codec pcm_s16le, packets or
 times may be invalid.
     Last message repeated 1 times
 [avi @ 0x7fd45a02de00] All info found
 [avi @ 0x7fd45a02de00] Estimating duration from bitrate, this may be
 inaccurate
 [avi @ 0x7fd45a02de00] File position after avformat_find_stream_info() is
 7164
 Guessed Channel Layout for  Input Stream #0.0 : mono
 Input #0, avi, from 'sample.avi':
   Metadata:
     encoder         : Lavf54.63.104
   Duration: 00:00:30.65, start: 0.000000, bitrate: 352 kb/s
     Stream #0:0, 1, 1/22050: Audio: pcm_s16le ([1][0][0][0] / 0x0001),
 22050 Hz, mono, s16, 352 kb/s
 Successfully opened the file.
 Parsing a group of options: output file out_audio.mp4.
 Applying option acodec (force audio codec ('copy' to copy stream)) with
 argument aac.
 Successfully parsed a group of options.
 Opening an output file: out_audio.mp4.
 File 'out_audio.mp4' already exists. Overwrite ? [y/N] y
 Successfully opened the file.
 [abuffer @ 0x7fd459c122e0] Setting entry with key 'time_base' to value
 '1/22050'
 [abuffer @ 0x7fd459c122e0] Setting entry with key 'sample_rate' to value
 '22050'
 [abuffer @ 0x7fd459c122e0] Setting entry with key 'sample_fmt' to value
 's16'
 [abuffer @ 0x7fd459c122e0] Setting entry with key 'channel_layout' to
 value '0x4'
 [graph 0 input from stream 0:0 @ 0x7fd459c13480] tb:1/22050 samplefmt:s16
 samplerate:22050 chlayout:0x4
 [aformat @ 0x7fd459c13940] Setting entry with key 'sample_fmts' to value
 'fltp'
 [aformat @ 0x7fd459c13940] Setting entry with key 'sample_rates' to value
 '96000,88200,64000,48000,44100,32000,24000,22050,16000,12000,11025,8000,7350'
 [audio format for output stream 0:0 @ 0x7fd459c139a0] auto-inserting
 filter 'auto-inserted resampler 0' between the filter 'Parsed_anull_0' and
 the filter 'audio format for output stream 0:0'
 [auto-inserted resampler 0 @ 0x7fd459c13f00] ch:1 chl:mono fmt:s16
 r:22050Hz -> ch:1 chl:mono fmt:fltp r:22050Hz
 Output #0, mp4, to 'out_audio.mp4':
   Metadata:
     encoder         : Lavf54.63.104
     Stream #0:0, 0, 1/22050: Audio: aac ([64][0][0][0] / 0x0040), 22050
 Hz, mono, fltp, 128 kb/s
 Stream mapping:
   Stream #0:0 -> #0:0 (pcm_s16le -> aac)
 Press [q] to stop, [?] for help
 }}}

 No more output.
 I'll provide shortly the sample.avi on the upload.ffmpeg.org server with
 the name aac_stuck_transcoding.avi.

 My system is Mac OS X 10.8.3. ffmpeg was built using macports.

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


More information about the FFmpeg-trac mailing list