Como adicionar um arquivo de áudio (aac ou mp3) a um arquivo de vídeo mp4?

7

Eu tenho um arquivo de vídeo mp4 criado a partir de imagens e gostaria de adicionar som mp3 a ele. Eu não estou familiarizado com a edição de vídeo, mas leio um pouco de que o som do aac é o preferido, então eu também tenho o som de uma forma normal.

A forma preferida do resultado é também mp4 ou flv. Meu sistema operacional é o Ubuntu (Saucy Salamander).

Eu pesquisei muito sobre avconv e mencoder tentando transformar os exemplos encontrados no meu caso sem sucesso.

Você será gentil com qualquer um de vocês, especialistas, para me dar um exemplo de linha de comando? Como posso fazer isso?

    
por user2469202 02.11.2013 / 13:45

1 resposta

13

Depende um pouco de como seus fluxos são mapeados dentro do arquivo mp4. Algo como isso deve funcionar:

ffmpeg -i video.mp4 -i audio.aac -map 0:0 -map 1:0 -vcodec copy -acodec copy newvideo.mp4

Normalmente, o videostream é mapeado como primeiro fluxo no contêiner.
Se não estiver mapeado como primeiro fluxo, altere o mapeamento:

ffmpeg -i video.mp4 -i audio.aac -map 0:1 -map 1:0 -vcodec copy -acodec copy newvideo.mp4

Para descobrir como os fluxos em seu arquivo de vídeo foram realmente mapeados, você pode usar mediainfo , que está nos repositórios padrão do Ubuntu atualmente.

Se quebrarmos a linha de comando aqui, funciona assim:

-i video.mp4  -> first media file
-i audio.aac  -> second media file
-map 0:1      -> use the second stream from the first mediafile
-map 1:0      -> use the first stream from the second mediafile
-vcodec copy  -> leave the video as is
-acodec copy  -> leave the audio as is
newvideo      -> resulting videofile

Certifique-se de que o audiofile e o videofile tenham a mesma duração. Nem todo jogador está aceitando faixas com grandes diferenças de duração.

Por favor, esteja ciente de que avconv e ffmpeg são quase a mesma coisa. De fato, este comando usando avconv também funciona como o mesmo comando usando o ffmpeg:

avconv -i video.mp4 -i audio.aac -map 0:0 -map 1:0 -vcodec copy -acodec copy newvideo.mp4  

O programa avconv pertence ao projeto Libav, uma bifurcação do projeto FFmpeg. Você também pode ignorar com segurança a seguinte mensagem de erro:

*** THIS PROGRAM IS DEPRECATED ***
This program is only provided for compatibility and will be removed in a future release. Please use avconv instead.

Uma alternativa para arquivos muxing no formato MP4 é MP4Box do pacote gpac .

    
por thom 02.11.2013 / 15:45

Tags