Jak przekonwertować wideo MP4 na audio MP3 za pomocą FFmpeg?

120

Muszę wyodrębnić ścieżkę audio MP3 z wideo MP4 za pomocą ffmpeg. Mogę to zrobić dla .flv -> mp3, ale nie znam parametrów wiersza poleceń dla mp4-> mp3. Na przykład flv -> mp3:

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

Jakie parametry powinienem zastosować dla MP4 -> MP3?

Steven Penny
źródło
2
Jeśli tak naprawdę nie potrzebujesz MP3, nie przekonwertowałbym audio: MP4-> MP3 to stratna transformacja, stracisz dodatkowe informacje o źródle.
Thom Wiggers,
nigdy więcej ffmpeg dla Ubuntu 14.04
Louis
@ ThomWiggers czy to niekoniecznie stratne? Nie wiem, jak są kodowane mp4, ale dopóki możesz rozdzielić wideo i audio, nie powinno tak być
szczerze mówiąc,
Oryginalna wersja tego pytania nie była jasna, w jaki sposób kodowany jest dźwięk - który został zmieniony w edycjach. Remuxing nie musi być stratny.
Thom Wiggers

Odpowiedzi:

150

Podstawowe polecenie to:

ffmpeg -i filename.mp4 filename.mp3

lub

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

Sprawdź ten adres URL: plik wideo MP4 na plik MP3 za pomocą ffmpeg (Ubuntu 9.10 Karmic Koala)

Uwaga: Ubuntu nie dostarcza FFmpeg, ale widelec o nazwie Libav . Składnia jest taka sama - wystarczy użyć avconvzamiast ffmpegpowyższych przykładów.

Naga Harish M.
źródło
3
Dziękuję Ci! Ta jakość jest najlepsza, czy mogę zrobić lepiej?
nigdy więcej ffmpeg dla Ubuntu 14.04
Louis
2
@Louis Nadal można go pobrać ze strony ffmpeg.org/download.html
slhck
1
@Louis - to samo dla 14.10, ale najwyraźniej powraca w 15.04: askubuntu.com/questions/432542/…
Wilf
52

Lepszym sposobem kodowania MP3 jest użycie -q:azmiennej szybkości transmisji.

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

qOpcja może być używana tylko z libmp3lame i odpowiada LAME -Vopcji. Widzieć:

Steven Penny
źródło
@slhck ... to dobra uwaga, ale właśnie przetestowałem plik wideo, a pomijam -vntylko kopiowanie strumienia audio. Przypuszczam ffmpeg musi mieć jakiś sposób wykrywania różnicy (Właśnie sprawdziłem plik z ffprobe, a film był strumień 1 zamiast zwykłej 0, i miał trochę Metadane: comment : Cover (front))
evilsoup
Ten wreszcie grał także w odtwarzacz muzyki Android. Dzięki
michalzuber,
1
Aby przekonwertować cały katalog (w tym nazwy plików ze spacjami) za pomocą powyższego polecenia: for i in * .mp4; do ffmpeg -i "$ i" -q: a 0 -mapa a "$ (basename" $ ​​{i / .mp4} "). mp3"; gotowy;
kingSlayer
Czym różni się ffmpeg -i vid.mp4 audio.mp3wynikowy plik .mp3 od polecenia waniliowego w odpowiedzi @Naga Harish M.? Mniej stratny?
szczery