Questão Como posso converter vídeo MP4 para áudio MP3 com FFmpeg?


Eu preciso extrair uma faixa de áudio MP3 de um vídeo MP4 com ffmpeg. Eu posso fazer isso por .flv -> mp3, mas eu não sei os parâmetros de linha de comando para mp4-> mp3. Por exemplo, flv -> mp3:

ffmpeg -i video.flv -acodec copy audio.mp3

Quais parâmetros devo usar para mp4 -> mp3?


103


origem


Se você realmente não precisa de um MP3, eu não converteria o áudio: MP4-> MP3 é uma transformação com perdas, você perderá informações de fontes extras. - Thom Wiggers
não há mais ffmpeg para o Ubuntu 14.04 - Louis


Respostas:


O comando básico é:

ffmpeg -i filename.mp4 filename.mp3

ou

ffmpeg -i video.mp4 -b:a 192K -vn music.mp3

Confira este URL: Vídeo MP4 para arquivo MP3 usando ffmpeg (Ubuntu 9.10 Karmic Koala)

Nota: O Ubuntu não fornece o FFmpeg, mas o fork nomeado Libav. A sintaxe é a mesma - apenas use avconv ao invés de ffmpeg para os exemplos acima.


118



Obrigado! Essa qualidade é melhor ou eu posso fazer melhor?
tente com 320kbs en.wikipedia.org/wiki/MP3#Bit_rate
não há mais ffmpeg para o Ubuntu 14.04 - Louis
@Louis Você ainda pode baixá-lo de ffmpeg.org/download.html - slhck
@ Louis - mesmo para 14.10, mas aparentemente está retornando em 15.04: askubuntu.com/questions/432542/… - Wilf


A melhor maneira de codificar MP3 é usar -q:a para taxa de bits variável.

ffmpeg -i k.mp4 -q:a 0 -map a k.mp3

o q opção só pode ser usada com libmp3lame e corresponde ao LAME -V opção. Vejo:


51



@slhck ... é um bom ponto, mas acabei de testar em um arquivo de vídeo, e deixando de fora -vn copia apenas o fluxo de áudio. Eu suponho que o ffmpeg deve ter alguma forma de detectar a diferença (eu apenas verifiquei um arquivo com ffprobe, e o vídeo foi stream 1 ao invés do usual 0, e tinha alguns metadados: comment : Cover (front)) - evilsoup
Este finalmente tocou também o player do Android Music. obrigado - michalzuber
E para converter diretório inteiro (incluindo nomes de arquivos com espaços) com o comando acima: para i em * .mp4; do ffmpeg -i "$ i" -q: um 0 -map a "$ (basename" $ ​​{i / .mp4} "). mp3"; feito; - kingSlayer