Wie kann ich mit FFmpeg MP4-Video in MP3-Audio konvertieren?

120

Ich muss mit ffmpeg einen MP3-Audiotrack aus einem MP4-Video extrahieren. Ich kann dies für .flv -> mp3 tun, aber ich kenne die Befehlszeilenparameter für mp4-> mp3 nicht. Zum Beispiel flv -> mp3:

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

Welche Parameter soll ich für mp4 -> mp3 verwenden?

Steven Penny
quelle
2
Wenn Sie nicht wirklich einen MP3 brauchen, würde ich den Ton nicht konvertieren: MP4-> MP3 ist eine verlustbehaftete Transformation, Sie werden zusätzliche Quellinformationen verlieren.
Thom Wiggers
kein ffmpeg mehr für Ubuntu 14.04
Louis
@ThomWiggers ist es unbedingt verlustbehaftet? Ich weiß nicht, wie mp4s codiert werden, aber solange Sie Video und Audio trennen können, sollte es nicht so sein
frank
Die ursprüngliche Version dieser Frage war nicht klar, wie das Audio codiert wurde - das wurde in den Bearbeitungen geändert. Remuxen muss nicht verlustbehaftet sein.
Thom Wiggers

Antworten:

150

Der grundlegende Befehl lautet:

ffmpeg -i filename.mp4 filename.mp3

oder

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

Überprüfen Sie diese URL: MP4-Video in MP3-Datei mit ffmpeg (Ubuntu 9.10 Karmic Koala)

Hinweis: Ubuntu liefert kein FFmpeg, sondern die Gabel namens Libav . Die Syntax ist die gleiche - verwenden Sie avconvstatt ffmpegfür die obigen Beispiele.

Naga Harish M
quelle
3
Danke! Diese Qualität ist am besten, oder kann ich es besser machen?
versuchen Sie es mit 320kbs en.wikipedia.org/wiki/MP3#Bit_rate
kein ffmpeg mehr für Ubuntu 14.04
Louis
2
@ Louis Sie können es immer noch von ffmpeg.org/download.html
slhck
1
@ Louis - dasselbe für 14.10, aber es wird anscheinend in 15.04 zurückkehren: askubuntu.com/questions/432542/…
Wilf
52

Der bessere Weg, MP3 zu kodieren, ist die Verwendung -q:afür variable Bitraten.

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

Die qOption kann nur mit libmp3lame verwendet werden und entspricht der -VOption LAME . Sehen:

Steven Penny
quelle
@slhck ... das ist ein guter Punkt, aber ich habe gerade eine Videodatei getestet und dabei -vneinfach den Audiostream weggelassen. Ich nehme an ffmpeg eine Möglichkeit zum Erfassen der Differenz haben muss (ich habe gerade eine Datei mit ffprobe, und das Video war Strom 1 statt der üblichen 0 und hatte einige Metadaten: comment : Cover (front))
evilsoup
Dieser spielte schließlich auch den Android Music Player. Thanks
michalzuber 10.11.15
1
Und um das gesamte Verzeichnis (einschließlich Dateinamen mit Leerzeichen) mit dem obigen Befehl zu konvertieren: for i in * .mp4; do ffmpeg -i "$ i" -q: a 0 -map a "$ (Basisname" $ ​​{i / .mp4} "). mp3"; getan;
KingSlayer
Inwiefern unterscheidet sich die resultierende .mp3-Datei vom Vanille-Befehl ffmpeg -i vid.mp4 audio.mp3in der Antwort von @Naga Harish M? Weniger verlustreich?
Frank