Bagaimana saya bisa mengkonversi video MP4 ke audio MP3 dengan FFmpeg?

120

Saya perlu mengekstrak trek audio MP3 dari video MP4 dengan ffmpeg. Saya dapat melakukan ini untuk .flv -> mp3, tapi saya tidak tahu parameter baris perintah untuk mp4-> mp3. Misalnya, flv -> mp3:

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

Parameter apa yang harus saya gunakan untuk mp4 -> mp3?

Steven Penny
sumber
2
Jika Anda tidak benar-benar membutuhkan MP3, saya tidak akan mengonversi audio: MP4-> MP3 adalah transformasi yang hilang, Anda akan kehilangan informasi sumber tambahan.
Thom Wiggers
tidak ada lagi ffmpeg untuk ubuntu 14.04
Louis
@ThomWiggers, apakah itu pasti lossy? Saya tidak tahu bagaimana mp4 dikodekan, tetapi selama Anda dapat memisahkan video dan audio, mestinya tidak harus
frank
Versi asli dari pertanyaan ini tidak jelas bagaimana audio dikodekan - yang berubah dalam pengeditan. Remuxing tidak harus bersifat lossy.
Thom Wiggers

Jawaban:

150

Perintah dasarnya adalah:

ffmpeg -i filename.mp4 filename.mp3

atau

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

Periksa URL ini: File Video MP4 ke MP3 Menggunakan ffmpeg (Ubuntu 9.10 Karmic Koala)

Catatan: Ubuntu tidak menyediakan FFmpeg, tetapi garpu bernama Libav . Sintaksnya sama - gunakan saja avconvalih-alih ffmpeguntuk contoh di atas.

Naga Harish M
sumber
3
Terima kasih! Kualitas ini yang terbaik, atau saya bisa berbuat lebih baik?
tidak ada lagi ffmpeg untuk ubuntu 14.04
Louis
2
@ Louis Anda masih dapat mengunduhnya dari ffmpeg.org/download.html
slhck
1
@ Louis - sama untuk 14.10, tetapi tampaknya kembali pada 15.04: askubuntu.com/questions/432542/…
Wilf
52

Cara yang lebih baik untuk menyandikan MP3 adalah dengan menggunakan -q:abit rate variabel.

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

The qpilihan hanya dapat digunakan dengan libmp3lame dan sesuai dengan Lame -Vpilihan. Lihat:

Steven Penny
sumber
@ Slhck ... itu poin yang bagus, tapi saya baru saja menguji pada file video, dan meninggalkan -vnhanya menyalin aliran audio. Saya kira ffmpeg harus memiliki beberapa cara untuk mendeteksi perbedaan (Aku hanya memeriksa file dengan ffprobe, dan video itu aliran 1 daripada biasa 0, dan memiliki beberapa metadata: comment : Cover (front))
evilsoup
Yang ini akhirnya memainkan juga pemutar Musik Android. Terima kasih
michalzuber
1
Dan untuk mengkonversi seluruh direktori (termasuk nama file dengan spasi) dengan perintah di atas: for i in * .mp4; do ffmpeg -i "$ i" -q: a 0 -map a "$ (basename" $ ​​{i / .mp4} "). mp3"; Selesai;
kingSlayer
Apa bedanya .mp3 berbeda dengan perintah vanilla ffmpeg -i vid.mp4 audio.mp3pada jawaban @Naga Harish M? Kurang merugi?
jujur