ffmpeg hangs when creating a video

8,934

Solution 1

Could be several things. A hang in general with video editing happens a lot when dealing with uncompressed video codecs. Not sure if I read up there that original video is in yuv420p codec. It maybe gets hanged trying to handle a lot of memory or when compressing directly the images to mp4. One thing I can think of is converting first to avi, ie, outputting to an avi but forcing a lossless codec like camtasia / camstudio (I think ffmpeg supports it) , so it is not so "heavy", and then do a second operation to convert to mp4. Other matter is... -r15 ? You surely know better which fps is having the original video, but it uses to be 24fps or so, isn't it?

Also... You might force as well the output codec, not just the format. MP4 works pretty well with .h264 codec, which gives a lot of quality and incredible small size. If I remember well ffmpeg also supports it. (you might want to try this first of all...)

Edit: Remember -codecs gives you the list of codecs, in command line. You can of course, for example in Win console, ffmpeg -codecs > codecs.txt for easier reading, searching etc. Healthy to do also with -formats, etc.

Solution 2

Try updating to the latest version of ffmpeg.

Solution 3

ffmpeg was freezing for me even with the latest version (4.2.2) in my bash scripts when processing lots of frames (more than 10k). Strangely, when I would run the same command in my terminal, it would finish just fine and I could not reproduce the freezing.

Turns out ffmpeg hangs when executed in the background and the output pipe becomes full.

In my case, setting the log level to be less verbose solved the problem.

ffmpeg -loglevel error

Related answer: https://stackoverflow.com/a/16527559/1517076

Share:
8,934

Related videos on Youtube

FearUs
Author by

FearUs

Updated on September 17, 2022

Comments

  • FearUs
    FearUs almost 2 years

    I am trying to insert an audio channel with a video:

    1. first of all I extract the audio from the original video for processing:

      ffmpeg -i lotr.mp4 lotr.wav

    2. I then extract all frames for later processing too:

      ffmpeg -i lotr.mp4 -f image2 %d.jpg

    3. When done processing audio and video streams, I try to create the video

      ffmpeg -f image2 -r 15 -i %d.jpg new.mp4

    4. then merge with the audio:

      ffmpeg -i new.mp4 -i lotr.wav -map 0:0 -map 1:0 new_w_audio.mp4

    Result: CPU activity = 100%, the process hangs and never returns. PS: I even tried it without modifying the images or the audio (so just trying to unpack then repack the video) but still the same output

    FFmpeg version SVN-r26400, Copyright (c) 2000-2011 the FFmpeg developers
      built on Jan 18 2011 04:07:05 with gcc 4.4.2
      configuration: --enable-gpl --enable-version3 --enable-libgsm --enable-libvorb
    is --enable-libtheora --enable-libspeex --enable-libmp3lame --enable-libopenjpeg
     --enable-libschroedinger --enable-libopencore_amrwb --enable-libopencore_amrnb
    --enable-libvpx --disable-decoder=libvpx --arch=x86 --enable-runtime-cpudetect -
    -enable-libxvid --enable-libx264 --enable-librtmp --extra-libs='-lrtmp -lpolarss
    l -lws2_32 -lwinmm' --target-os=mingw32 --enable-avisynth --enable-w32threads --
    cross-prefix=i686-mingw32- --cc='ccache i686-mingw32-gcc' --enable-memalign-hack
    
      libavutil     50.36. 0 / 50.36. 0
      libavcore      0.16. 1 /  0.16. 1
      libavcodec    52.108. 0 / 52.108. 0
      libavformat   52.93. 0 / 52.93. 0
      libavdevice   52. 2. 3 / 52. 2. 3
      libavfilter    1.74. 0 /  1.74. 0
      libswscale     0.12. 0 /  0.12. 0
    Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'new.mp4':
      Metadata:
        major_brand     : isom
        minor_version   : 512
        compatible_brands: isomiso2mp41
        creation_time   : 1970-01-01 00:00:00
        encoder         : Lavf52.93.0
      Duration: 00:00:29.66, start: 0.000000, bitrate: 193 kb/s
        Stream #0.0(und): Video: mpeg4, yuv420p, 200x134 [PAR 1:1 DAR 100:67], 192 k
    b/s, 15 fps, 15 tbr, 15 tbn, 15 tbc
        Metadata:
          creation_time   : 1970-01-01 00:00:00
    [wav @ 01fed010] max_analyze_duration reached
    Input #1, wav, from 'lotr.wav':
      Duration: 00:00:29.90, bitrate: 176 kb/s
        Stream #1.0: Audio: pcm_s16le, 11025 Hz, 1 channels, s16, 176 kb/s
    File 'new_w_audio.mp4' already exists. Overwrite ? [y/N] y
    [buffer @ 01b03820] w:200 h:134 pixfmt:yuv420p
    Output #0, mp4, to 'new_w_audio.mp4':
      Metadata:
        major_brand     : isom
        minor_version   : 512
        compatible_brands: isomiso2mp41
        creation_time   : 1970-01-01 00:00:00
        encoder         : Lavf52.93.0
        Stream #0.0(und): Video: mpeg4, yuv420p, 200x134 [PAR 1:1 DAR 100:67], q=2-3
    1, 200 kb/s, 15 tbn, 15 tbc
        Metadata:
          creation_time   : 1970-01-01 00:00:00
        Stream #0.1: Audio: aac, 11025 Hz, 1 channels, s16, 64 kb/s
    Stream mapping:
      Stream #0.0 -> #0.0
      Stream #1.0 -> #0.1
    Press [q] to stop encoding
    
    • rogerdpack
      rogerdpack about 11 years
      do current ffmpeg's still have this problem? If yes maybe submit a trac ticket with a small reproducible sample. Also which OS?
  • FearUs
    FearUs over 13 years
    1) the video is 15 fps indeed 2) yes, the problem turned out to be from encoding to mp4 .. so I changed it to avi and worked :) THANK YOU :)
  • Sebastian Rockefeller
    Sebastian Rockefeller over 13 years
    Great that it worked! :)
  • slhck
    slhck over 12 years
    In case a mod reacts on the flags here: This is often the only solution for FFmpeg issues. Updating to the latest version. Please don't delete this answer.
  • Paul
    Paul over 12 years
    @slhck but this is a foundation diagnostic step for any problem where there is erratic behaviour in software: 1. Is there a problem? Yes 2. Did updating fix it? No 3. Go to SU for assistance
  • slhck
    slhck over 12 years
    @Paul I see your point. It's definitely the first thing you'd try, but so many people are reluctant to upgrade their FFmpeg version, it's not even funny. I am on the mailing list, it happens there all the time. I think it's worth keeping this simply because I know it will fix quite a few issues.
  • Paul
    Paul over 12 years
    @slhck I see - I get it, they are on fixed release distros and are uncomfortable with makeing and managing an up to date version? Or whatever their reason, this why I prefer rolling release. Ooops I seem to be having a discussion in the comments.