ffmpeg filter_complex concat não inclui áudio

0

Eu consegui montar um complexo de filtros ffmpeg que:

  1. Escala um aviso do FBI (fbi.mp4) para o tamanho ($ w: $ h) de um vídeo de treinamento (train.mp4).
  2. preenche o aviso do FBI, então está centrado.
  3. Concats o aviso do FBI e o vídeo de treinamento juntos.
  4. Marca o conteúdo com uma marca d'água girada (image.png).

O seguinte funciona em vídeos silenciosos (* consulte as informações sobre a versão do ffmpeg abaixo):

ffmpeg -y -i fbi.mp4 -i train.mp4 -i $img -filter_complex "
[0:v]            scale=$w:-1                                 [fbi_sca];
[fbi_sca]        pad=$w:$h:($w-iw)/2:($h-ih)/2               [fbi_pad];
[fbi_pad][1:v]   concat=n=2:v=1                              [concat];
[2:v]            rotate=-PI/4:c=none:ow=rotw(iw):oh=roth(ih) [rotate];
[concat][rotate] overlay=(W-w)/2+110:(H-h)/2-90              [out]
" -map [out] -codec:a copy -c:v libx264 final.mp4

Minhas perguntas são as seguintes:

Alguém pode reescrever o comando / filter_complex acima para:

  1. Obtém automaticamente a largura e a altura do vídeo de treinamento (train.mp4) sem primeiro precisar sondá-lo, analisá-lo e preencher as variáveis $ we $ h (tudo bem se eu tiver que fazer isso em um passo em separado, mas prefiro não o fazer).

  2. (Mais importante) conta para vídeo e áudio no vídeo de treinamento, como:

    a. O filtro é agnóstico sobre quais streams, 1 ou 0, o vídeo e o áudio aparecem.

    b. Posso usar o mesmo complexo para treinar vídeos que não têm faixa de áudio apenas em uma trilha de vídeo.

    c. O áudio train.mp4 começa no lugar certo na saída concatenada.

* VERSÃO FFMPEG:

$ ffmpeg -version  

ffmpeg version N-69568-g21051af Copyright (c) 2000-2015 the FFmpeg developers
built with gcc 4.9.2 (GCC)
configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-avisynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libfreetype --enable-libgme --enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libschroedinger --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs --enable-libxvid --enable-lzma --enable-decklink --enable-zlib
libavutil      54. 18.100 / 54. 18.100
libavcodec     56. 21.102 / 56. 21.102
libavformat    56. 19.100 / 56. 19.100
libavdevice    56.  4.100 / 56.  4.100
libavfilter     5.  9.103 /  5.  9.103
libswscale      3.  1.101 /  3.  1.101
libswresample   1.  1.100 /  1.  1.100
libpostproc    53.  3.100 / 53.  3.100
    
por user3483276 09.03.2015 / 21:46

1 resposta

0

Eu também tive o mesmo problema, eu tenho uma maneira onde eu posso anexar o áudio de volta para este filtro, basta adicionar

[0:a]aresample=44100;

Ele irá redimensionar o áudio em 44100 Hz (altere esse valor conforme a necessidade), mas o áudio sim estará disponível. Espero que isso ajude.

    
por 01.07.2015 / 12:03