ffmpeg trava ao criar um vídeo

1

Estou tentando inserir um canal de áudio com um vídeo:

  1. Antes de tudo, extraio o áudio do vídeo original para processamento:

    ffmpeg -i lotr.mp4 lotr.wav

  2. Eu extraio todos os quadros para processamento posterior também:

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

  3. Quando termino de processar transmissões de áudio e vídeo, tento criar o vídeo

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

  4. depois mesclar com o áudio:

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

Resultado: atividade da CPU = 100%, o processo trava e nunca retorna. PS : Eu até tentei sem modificar as imagens ou o áudio (então, apenas tentando descompactar e reempacotar o vídeo), mas ainda a mesma saída

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
    
por FearUs 25.02.2011 / 07:59

2 respostas

2

Pode ser várias coisas. Um problema em geral com a edição de vídeo acontece muito quando se lida com codecs de vídeo descompactados. Não tenho certeza se eu li lá em cima que o vídeo original está no codec yuv420p. Talvez seja enforcado ao tentar lidar com muita memória ou ao compactar diretamente as imagens para o mp4. Uma coisa que posso pensar é converter primeiro para avi, ou seja, produzir para um avi mas forçar um codec sem perdas como o camtasia / camstudio (eu acho que o ffmpeg suporta), então não é tão "pesado", e então fazer uma segunda operação para converter em mp4. Outro assunto é ... -r15? Você certamente sabe melhor qual fps está tendo o vídeo original, mas ele usa 24fps ou mais, não é?

Também ... Você pode forçar também o codec de saída, não apenas o formato. O MP4 funciona muito bem com o codec .h264, que dá muita qualidade e tamanho pequeno e incrível. Se bem me lembro bem ffmpeg também suporta isso. (você pode querer tentar isso antes de tudo ...)

Edit: Remember -codecs fornece a lista de codecs, na linha de comando. Você pode, claro, por exemplo, no console do Win, ffmpeg -codecs > codecs.txt para facilitar a leitura, pesquisa etc. Saudável para fazer também com formatos, etc.

    
por 25.02.2011 / 10:29
3

Tente atualizar para a versão mais recente do ffmpeg.

    
por 24.01.2012 / 10:55