Konversi file audio ke mp3 menggunakan ffmpeg

159

Saya perlu mengonversi file audio ke mp3 menggunakan ffmpeg.

Ketika saya menulis perintah sebagai ffmpeg -i audio.ogg -acodec mp3 newfile.mp3, saya mendapatkan kesalahan:

FFmpeg version 0.5.2, Copyright (c) 2000-2009 Fabrice Bellard, et al.
  configuration: 
  libavutil     49.15. 0 / 49.15. 0
  libavcodec    52.20. 1 / 52.20. 1
  libavformat   52.31. 0 / 52.31. 0
  libavdevice   52. 1. 0 / 52. 1. 0
  built on Jun 24 2010 14:56:20, gcc: 4.4.1
Input #0, mp3, from 'ZHRE.mp3':
  Duration: 00:04:12.52, start: 0.000000, bitrate: 208 kb/s
    Stream #0.0: Audio: mp3, 44100 Hz, stereo, s16, 256 kb/s
Output #0, mp3, to 'audio.mp3':
    Stream #0.0: Audio: 0x0000, 44100 Hz, stereo, s16, 64 kb/s
Stream mapping:
  Stream #0.0 -> #0.0
Unsupported codec for output stream #0.0

Saya juga menjalankan perintah ini:

 ffmpeg -formats | grep mp3

dan mendapatkan ini sebagai respons:

FFmpeg version 0.5.2, Copyright (c) 2000-2009 Fabrice Bellard, et al.
  configuration: 
  libavutil     49.15. 0 / 49.15. 0
  libavcodec    52.20. 1 / 52.20. 1
  libavformat   52.31. 0 / 52.31. 0
  libavdevice   52. 1. 0 / 52. 1. 0
  built on Jun 24 2010 14:56:20, gcc: 4.4.1
 DE mp3             MPEG audio layer 3
 D A    mp3             MP3 (MPEG audio layer 3)
 D A    mp3adu          ADU (Application Data Unit) MP3 (MPEG audio layer 3)
 D A    mp3on4          MP3onMP4
 text2movsub remove_extra noise mov2textsub mp3decomp mp3comp mjpegadump imxdump h264_mp4toannexb dump_extra

Saya kira codec mp3 tidak diinstal. Apakah saya di jalur yang benar di sini?

Hrishikesh Choudhari
sumber

Jawaban:

230

Anda bisa menggunakan perintah ini:

ffmpeg -i input.wav -vn -ar 44100 -ac 2 -b:a 192k output.mp3

Penjelasan argumen yang digunakan dalam contoh ini:

  • -i - input file

  • -vn - Nonaktifkan video, untuk memastikan tidak ada video (termasuk gambar sampul album) disertakan jika sumbernya berupa file video

  • -ar- Atur frekuensi pengambilan sampel audio. Untuk stream output, ia diatur secara default ke frekuensi aliran input yang sesuai. Untuk aliran input, opsi ini hanya masuk akal untuk perangkat pengambil audio dan demuxer mentah dan dipetakan ke opsi demuxer yang sesuai.

  • -ac- Atur jumlah saluran audio. Untuk aliran keluaran, saluran ini diatur secara default ke jumlah saluran audio input. Untuk aliran input, opsi ini hanya masuk akal untuk perangkat pengambil audio dan demuxer mentah dan dipetakan ke opsi demuxer yang sesuai. Jadi digunakan di sini untuk memastikan itu stereo (2 saluran)

  • -b:a - Mengubah bitrate audio menjadi 192kbit per detik

jujur
sumber
5
Ini mencatat perbedaan untuk argumen bitrate ffmpeg . -qscale:auntuk VBR dan -b:auntuk CBR. Pengkodean ABR dimungkinkan tetapi dirinci di tempat yang berbeda.
1934286
2
Saya akan mengganti -b: a dengan -q: a 2, yang akan memberikan VBR ~ 192 bukannya CBR
apanloco
@apanloco bagi saya, mengubah -b ke -q benar-benar membantai suara. Tidak menggunakan opsi sama sekali, atau menggunakan opsi yang disajikan dalam jawaban, terdengar hampir sama dengan sumber .wav.
Michael Teter
76

1) wav ke mp3

ffmpeg -i audio.wav -acodec libmp3lame audio.mp3

2) ogg ke mp3

ffmpeg -i audio.ogg -acodec libmp3lame audio.mp3

3) ac3 ke mp3

ffmpeg -i audio.ac3 -acodec libmp3lame audio.mp3

4) aac to mp3

ffmpeg -i audio.aac -acodec libmp3lame audio.mp3
Ijas Ahamed N
sumber
Bagaimana Anda menentukan bitrate mp3?
Suragch
4
Tambahkan -b:a 128kuntuk 128 kbps.
Gyan
5
Atau bahkan lebih singkat tanpa acodec: ffmpeg -i audio.aac audio.mp3
Timo
bagaimana cara mengkonversi dari .mp3 ke .ogg?
Cristea Victor
18

Lupakan,

Saya mengonversi file audio saya ke mp2 dengan menggunakan perintah:

ffmpeg -i input.wav -f mp2 output.mp3

Perintah ini bekerja dengan sempurna.

Saya tahu bahwa ini sebenarnya mengkonversi file ke format mp2, tetapi kemudian ukuran file yang dihasilkan adalah sama ..

Hrishikesh Choudhari
sumber
2
Menghasilkan file gelombang
LtWorf
8
Ini tidak menghasilkan file mp3
m13r
2
Walaupun ukurannya sama, file mp2 ini tidak dapat diputar di browser web , karena mereka bukan mp3. Bahkan dengan flash player. Satu-satunya manfaat yang mereka miliki adalah bahwa mereka membutuhkan lebih sedikit cpu untuk menyandikan, tetapi kekurangannya tidak sebanding.
Daniel F
3
Ini seharusnya bukan jawaban yang diterima, karena tidak menjawab pertanyaan dengan benar.
reinierpost
18

Untuk pemrosesan batch dengan file dalam folder yang bertujuan untuk 190 VBR dan ekstensi file = .mp3 alih-alih .ac3.mp3 Anda dapat menggunakan kode berikut

Ubah .ac3 menjadi format audio sumber apa pun.

pengaturan mp3 ffmpeg

for f in *.ac3 ; do ffmpeg -i "$f" -acodec libmp3lame -q:a 2 "${f%.*}.mp3"; done
rencana B
sumber
13

Untuk memproses file dalam folder:

for i in *.wav; do ffmpeg -i "$i" -f mp3 "${i%}.mp3"; done

Skrip ini mengubah semua file "wav" di folder menjadi file mp3 dan menambahkan ekstensi mp3

ffmpeg harus diinstal. (Lihat jawaban lain)

MKK
sumber
1
Dengan -f mp2MP2 dihasilkan, bukan MP3. Ubah ke-f mp3
Gyan
3
Perintah di atas membuat file yang diberi nama wav.mp3. Untuk mendapatkan file dengan ekstensi file yang benar, ubah perintah ke for i in *.wav; do ffmpeg -i "$i" -f mp3 "${i%.*}.mp3"; done:, yaitu tambahkan .*setelah i%.
Suzana
11

Saya harus membersihkan ffmpeg saya dan menginstal yang lain dari ppa:

sudo apt-get purge ffmpeg
sudo apt-add-repository -y ppa:jon-severinsson/ffmpeg 
sudo apt-get update 
sudo apt-get install ffmpeg

Kemudian konversi:

 ffmpeg -i audio.ogg -f mp3 newfile.mp3
Komu
sumber
4
ini adalah jalan pintas, tetapi jika Anda ingin menentukan kualitas kb per detik, gunakan -ab 192k
wrivas
7

Seperti yang dijelaskan di sini, input dan output ekstensi akan terdeteksi oleh ffmpegsehingga tidak perlu khawatir tentang format, cukup jalankan perintah ini:

ffmpeg -i inputFile.ogg outputFile.mp3

Kasra K
sumber
2

Kualitas tinggi untuk Mac OS berfungsi dengan sempurna!

ffmpeg -i input.wma -q:a 0 output.mp3

Ivan Sanchez
sumber
1

Coba FFmpeg Static Build Link

Dokumentasi: https://www.johnvansickle.com/ffmpeg/

Host build statis di server Anda di direktori yang sama

$ffmpeg = dirname(__FILE__).'/ffmpeg';

$command = $ffmpeg.'ffmpeg -i audio.ogg -acodec libmp3lame audio.mp3';

shell_exec($command);
Buku Kode
sumber
0

Jika Anda memiliki folder dan sub-folder yang penuh dengan wav yang ingin Anda konversi, masukkan perintah di bawah ini dalam file, simpan dalam file .bat di root folder di mana Anda ingin mengkonversi, dan kemudian jalankan file bat

for /R %%g in (*.wav) do start /b /wait "" "C:\ffmpeg-4.0.1-win64-static\bin\ffmpeg" -threads 16 -i "%%g" -acodec libmp3lame "%%~dpng.mp3" && del "%%g"
Dinesh Rajan
sumber