Como pegar o canal de áudio de um arquivo de vídeo MP4 em um arquivo de áudio separado?

3

Tendo um videoclipe MPEG4 (contêiner MP4, vídeo H264 AVC, áudio AAC) baixado do YouTube, como separar seu canal de áudio em um arquivo de áudio independente (sem descomprimir o áudio, de preferência) com ferramentas gratuitas do Linux?

    
por Ivan 11.04.2012 / 21:16

2 respostas

1

Se você sabe que há apenas um fluxo de áudio e que é aac , você só precisa disso:

ffmpeg -acodec copy -i "movie.mp4" -y "audio.aac"

Se você deseja fazer o script da primeira ID de fluxo de áudio e do tipo de codec / extensão de arquivo, use:

eval $(ffmpeg -i "movie.mp4" 2>&1 |awk '/Stream.*Audio/{print "stream=" $2 ";codec=" $4}' |head -n1)
stream=${stream:1}; stream=${stream/:/}
extn=${codec/,/}; [[ $extn == "aac" ]] || 
    { echo "You need to manually set the fiie extension. Codec type is: $codec"; exit 1; } 

ffmpeg -map $stream -acodec copy -i "movie.mp4" "audio.$extn"
    
por 11.04.2012 / 21:33
2

Considerando os vídeos do Youtube, a extração de áudio do vídeo pode não ser necessária, pois as faixas de áudio podem ser baixadas separadamente usando o Firefox com o addon Flashgot mais recente ou usando o mps-youtube (é uma ferramenta para reproduzir e baixar faixas de áudio do youtube: mais aqui ).

Considerando os arquivos de vídeo mp4:

Como foi respondido aqui , podemos usar um comando mais genérico sem a necessidade de nomes específicos dos arquivos e adicione isso ao menu personalizado do Gerenciador de arquivos, como:

ffmpeg -i "$0" -map 0:1 -c:a copy "${0%%.*}".m4a

(Usar .m4a é preferível, pois é mais amplamente suportado como um contêiner para .aac , mas você pode usar o .aac bruto, se desejar.)

Além disso, este comando executado em um terminal extrai faixas de áudio de todos os arquivos mp4 na pasta atual:

for i in *.mp4; do ffmpeg -i "${i}" -map 0:1 -c:a copy "${i%.mp4}.m4a"; done

( aqui a postagem da fonte)

Veja comentários e informações relacionadas nas respostas e perguntas vinculadas sobre como usar esses comandos nos menus de contexto dos gerenciadores de arquivos.

Acima e outros comandos similares podem ser usados também para extrair o áudio de outros tipos de arquivos de vídeo, substituindo as extensões de entrada e saída.

O primeiro comando funciona como tal para flv também; mas para outro vídeo, basta substituir m4a pelo áudio contido no videoclipe. O segundo comando precisa substituir as extensões de vídeo e áudio, se aplicado a diferentes tipos de arquivos de vídeo.

Normalmente, os arquivos mp4 e flv contêm aac audio, Webm arquivos contêm ogg e avi arquivos contêm mp3 audio. Para ter certeza de qual áudio está contido no vídeo, use mediainfo : mediainfo-GUI ou apenas instale mediainfo e no Terminal: mediainfo <file> .

    
por 29.09.2015 / 12:14