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


120

Preciso extrair uma faixa de áudio MP3 de um vídeo MP4 com ffmpeg. Eu posso fazer isso para .flv -> mp3, mas não conheço os parâmetros da 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?


2
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 extras da fonte.
Thom Wiggers

não há mais ffmpeg para o ubuntu 14.04
Louis

@ThomWiggers é necessariamente com perdas? Eu não sei como mp4s são codificados, mas contanto que você pode separar vídeo e áudio, não deveria ter que ser
Frank

A versão original desta pergunta não estava clara como o áudio foi codificado - que foi alterado nas edições. Remoção não precisa ser com perdas.
Thom Wiggers 18/06

Respostas:


150

O comando básico é:

ffmpeg -i filename.mp4 filename.mp3

ou

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

Verifique este URL: Arquivo de vídeo MP4 para MP3 usando o ffmpeg (Ubuntu 9.10 Karmic Koala)

Nota: O Ubuntu não fornece FFmpeg, mas o fork chamado Libav . A sintaxe é a mesma - basta usar em avconvvez dos ffmpegexemplos acima.


3
Obrigado! Essa qualidade é melhor ou posso fazer melhor?


não há mais ffmpeg para o ubuntu 14.04
Louis

2
@ Louis Você ainda pode baixá-lo em ffmpeg.org/download.html
slhck 22/11/14

11
@Louis - o mesmo para 14.10, mas aparentemente está retornando em 15.04: askubuntu.com/questions/432542/…
Wilf

52

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

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

A qopção pode ser usada apenas com libmp3lame e corresponde à -Vopção LAME . Vejo:


@ slhck ... esse é um bom argumento, mas acabei de testar em um arquivo de vídeo e deixar de fora -vnapenas copia o fluxo de áudio. Suponho ffmpeg deve ter alguma maneira de detectar a diferença (Eu verifiquei apenas um arquivo com ffprobe, eo vídeo foi o fluxo 1 ao invés do habitual 0, e teve alguns metadados: comment : Cover (front))
evilsoup

Este finalmente tocou também o player de música Android. Graças
michalzuber

11
E para converter o diretório inteiro (incluindo nomes de arquivos com espaços) com o comando acima: para i em * .mp4; do ffmpeg -i "$ i" -q: a 0 -map a "$ (nome da base" $ {i / .mp4} "). mp3"; feito;
Regicida

Como o ffmpeg -i vid.mp4 audio.mp3arquivo .mp3 resultante é diferente do comando vanilla na resposta de @Naga Harish M? Menos perdas?
frank
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.