Muxing Audio Over Video Usando o Ffmpeg

0

Então, eu passei por muitos testes e ainda não consigo obter áudio para mux através de vídeo usando o ffmpeg e não consigo entender onde estou errado, então realmente apreciaria alguma ajuda.

Eu tenho este vídeo. Download de vídeo

E se eu executar o ffmpeg -i, isso me dará isso.

 Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p(tv, smpte170m/smpte170m/bt709), 366x662 [SAR 1:1 DAR 183:331], 755 kb/s, 24 fps, 24 tbr, 90k tbn, 180k tbc (default)
    Metadata:
      handler_name    : VideoHandler
    Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 105 kb/s (default)

Então, transmita 0: 0

E eu tenho esse pedaço de áudio. Download de áudio

e quando eu corro ffmpeg eu entendo isso.

Stream #0:0: Audio: mp3, 44100 Hz, stereo, s16p, 277 kb/s
Stream #0:1: Video: png, rgb24, 400x400, 90k tbr, 90k tbn, 90k tbc

Então, o que eu quero fazer é copiar meu áudio 0: 0 para substituir o áudio de vídeo 0: 1 sem re-codificar todo o arquivo.

ffmpeg -i testing.mp4 -i rkelly.mp3 -c copy -map 0:1 -map 0:0 -shortest out3.mp4 
    
por user1503606 23.05.2015 / 14:46

1 resposta

3

O primeiro número na opção -map é o índice do arquivo de entrada. Então, se você estiver usando 0 duas vezes, estará usando apenas testing.mp4 .

Tente isso:

ffmpeg -i testing.mp4 -i rkelly.mp3 -c copy -map 0:v:0 -map 1:a:0 -shortest out3.mp4 

Aqui, 0:v:0 seleciona o primeiro fluxo de vídeo do primeiro arquivo de entrada e 1:a:0 seleciona o primeiro fluxo de áudio do segundo arquivo de entrada. Em princípio, o :0 não é necessário para seus arquivos, mas não faz mal tê-lo lá no caso de várias trilhas de vídeo / áudio.

Veja a entrada do wiki FFmpeg na opção -map para mais .

    
por 23.05.2015 / 15:00