Questão Como mesclar arquivos de áudio e vídeo no ffmpeg


Quero mesclar um arquivo de áudio (formato .wav ou .au) com um arquivo de vídeo (formato .mp4).

Por favor me sugira como conseguir isso. Eu quero mesclar esses arquivos para o novo arquivo de vídeo .mp4. Um comando ffmpeg seria muito bem vindo.


113


origem


Há um artigo decente aqui que pode ser útil também ... cfc.kizzx2.com/index.php/muxing-audio-and-video-with-ffmpeg - Simon East


Respostas:


Mesclando vídeo e áudio, com recodificação de áudio

Veja este exemplo, retirado de esta entrada de blog mas atualizado para sintaxe mais recente. Deve ser algo para o efeito de:

ffmpeg -i video.mp4 -i audio.wav \
-c:v copy -c:a aac -strict experimental output.mp4

Aqui, assumimos que o arquivo de vídeo ainda não contém nenhum fluxo de áudio e que você deseja ter o mesmo formato de saída (aqui, MP4) como o formato de entrada.

O comando acima transcodifica o áudio, já que os MP4s não podem transportar fluxos de áudio PCM. Você pode usar qualquer outro codec de áudio desejado, se desejar. Veja o Guia de codificação AAC para mais informações.

Se o fluxo de áudio ou vídeo for mais longo, você poderá adicionar -shortest opção para que o ffmpeg pare de codificar quando um arquivo terminar.

Copiando o áudio sem recodificar

Se o contêiner de saída puder manipular (quase) qualquer codec - como MKV -, você poderá simplesmente copiar os fluxos de áudio e vídeo:

ffmpeg -i video.mp4 -i audio.wav -c copy output.mkv

Substituindo fluxo de áudio

Se o seu vídeo de entrada já contiver áudio e você quiser substituí-lo, será necessário informar ao ffmpeg qual fluxo de áudio deve ser usado:

ffmpeg -i video.mp4 -i audio.wav \
-c:v copy -c:a aac -strict experimental \
-map 0:v:0 -map 1:a:0 output.mp4

o map opção faz com que o ffmpeg use apenas o primeiro fluxo de vídeo da primeira entrada e o primeiro fluxo de áudio da segunda entrada para o arquivo de saída.


186



Eu tentei, mas ffmpeg está congelando durante a fusão - Sandy
Eu não acho que mp4 recipientes podem ter fluxos de áudio wav. Experimentar ffmpeg -i audio.wav -i video.mp4 -acodec copy -vcodec copy -f mkv output.mkv - Luke
Eu estou usando isso e está substituindo o áudio original do áudio de entrada. E se eu quiser mesclar o áudio de entrada com o áudio do vídeo de entrada? - Iqbal Malik
Linhas de comando muito doces ... - Chandra Nakka
Ótimo, eu usei o ffmpeg -i video.mp4 -i audio.wav \ -c: v copie -c: um aac -strict output.mp4 experimental para mesclar MP3 com o arquivo Wav ... => mp4 5 minutos, renderizado 30 segundos ..Obrigado - sonida


Desde que eu não estou autorizado a escrever comentários para a primeira resposta com a minha reputação, um adendo aqui, porque eu tive esse problema ao codificar webms.
Se o seu fluxo de áudio for, por exemplo, mais longo que o fluxo de vídeo, você tem que cortá-lo ou você terá o último quadro de vídeo como uma imagem estática e áudio em execução.

Para cortar um dos fluxos, você pode usar -ss [hh: mm: ss] -t [ss] antes de cada um dos -i "file.ext".
-ss [...] definirá o ponto de partida para cortar
-t [...] irá definir o comprimento do segmento em segundos
 
Exemplo:

ffmpeg.exe -ss 00:00:10  -t 5 -i "video.mp4" -ss 0:00:01 -t 5 -i "music.m4a" -map 0:v:0 -map 1:a:0 -y out.mp4

7



Você também pode simplesmente usar -shortest para cortar o fim. - nyuszika7h


-open comando promt (windows + r -> cmd-> enter)

-Então vá para dentro da pasta onde você tem arquivos de áudio e vídeo

aplique este cmd

ffmpeg -i "videoFile.mp4" -i "audioFile.mp3" -shortest outPutFile.mp4

Digite .... você receberá um novo arquivo chamado outPutFime.mp4 (um arquivo mesclado de áudio e vídeo)


3



Não é realmente necessário descrever como usar a linha de comando aqui. É praticamente implícito que os usuários serão capazes de descobrir isso. Especialmente desde que o comprador especificou FFmpeg. Tudo o mesmo, o -shortest tag é muito bacana. Muito mais simples do que na resposta do @ user136036. - Kat
Isso irá recodificar tudo, o que provavelmente não é o que se deseja. - mivk
adaptivesamples.com/how-to-install-ffmpeg-on-windows - UniCoder
'ffmpeg' não é reconhecido como um comando interno ou externo, - UniCoder
Você precisa adicionar o ffmpeg ao PATH wikihow.com/Install-FFmpeg-on-Windows - Arete


Isso funcionou para mim:

ffmpeg.exe -i AudioT.m4a -i VideoT.mp4 -acodec copy -vcodec copy muxed.mp4

3



parcialmente funcionando para mim, não funcionando para todas as entradas, alguns vídeos de entrada resultantes permanecem os mesmos na saída - NarendraJi
Detalhado: superuser.com/questions/590201/add-audio-to-video-using-ffmpeg - Vadzim


Tente usar o mencoder (Sim, é baseado no ffmpeg, mas você nunca sabe). Eu uso o -audiofile argumento. Eu geralmente uso ffmpeg, então, tome este conselho com uma pitada de sal.

E, se você usa o Windows, o Mediacoder (não mais open source infelizmente) funciona ... basicamente é um frontend para muitos codificadores gnu e alguns não-livres.


1