Ses dosyalarını ffmpeg kullanarak mp3'e dönüştürme


159

Ses dosyalarını ffmpeg kullanarak mp3'e dönüştürmem gerekiyor.

Komutu şöyle ffmpeg -i audio.ogg -acodec mp3 newfile.mp3yazdığımda hatayı alıyorum:

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

Ayrıca bu komutu çalıştırdım:

 ffmpeg -formats | grep mp3

ve bunu yanıt olarak aldım:

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

MP3 codec bileşeni yüklü değil sanırım. Burada doğru yolda mıyım?

Yanıtlar:


230

Bu komutu kullanabilirsiniz:

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

Bu örnekte kullanılan bağımsız değişkenlerin açıklaması:

  • -i - giriş dosyası

  • -vn - Kaynak bir video dosyası olacaksa hiçbir videonun (albüm kapağı resmi dahil) eklenmediğinden emin olmak için videoyu devre dışı bırakın

  • -ar- Ses örnekleme frekansını ayarlayın. Çıkış akışları için varsayılan olarak karşılık gelen giriş akışının frekansına ayarlanır. Giriş akışları için bu seçenek yalnızca ses yakalama aygıtları ve ham demuxer'lar için anlamlıdır ve ilgili demuxer seçenekleriyle eşleştirilir.

  • -ac- Ses kanalı sayısını ayarlayın. Çıkış akışları için varsayılan olarak giriş ses kanallarının sayısına ayarlanır. Giriş akışları için bu seçenek yalnızca ses yakalama aygıtları ve ham demuxer'lar için anlamlıdır ve ilgili demuxer seçenekleriyle eşleştirilir. Stereo olduğundan emin olmak için burada kullanıldı (2 kanal)

  • -b:a - Ses bit hızını saniyede tam 192kbit olacak şekilde dönüştürür


5
Bu, ffmpeg bit hızı değişkenleri için farkı not eder . -qscale:aVBR içindir ve -b:aCBR içindir. ABR kodlaması mümkündür ancak farklı bir yerde detaylandırılmıştır.
1934286

2
CB

@apanloco benim için, -b'yi -q olarak değiştirmek kesinlikle sesi keser. Hiçbir seçenek kullanmamak ya da yanıtta sunulan seçenekleri kullanmak, kaynak .wav ile hemen hemen aynı şekilde görünür.
Michael Teter

77

1) mp3'e wav

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

2) mp3 için ogg

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

3) AC3 MP3'e

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

4) aac mp3 için

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

Mp3 bit hızını nasıl belirlersiniz?
Suresi

4
-b:a 128k128 kbps için ekleyin .
Gyan

5
Veya daha da kısa acodec: ffmpeg -i audio.aac audio.mp3
Timo

Nasıl .mp3 için .ogg dönüştüğünde için?
Cristea Victor

19

190 VBR'yi hedefleyen ve .ac3.mp3 yerine dosya uzantısı = .mp3 olan dosyalarda toplu işlem için aşağıdaki kodu kullanabilirsiniz

.Ac3 dosyasını kaynak ses biçimi ne olursa olsun değiştirin.

ffmpeg mp3 ayarları

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

18

Boşver,

Komutu kullanarak ses dosyalarımı mp2'ye dönüştürüyorum:

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

Bu komut mükemmel çalışıyor.

Bu aslında dosyaları mp2 biçimine dönüştürür biliyorum, ama sonra elde edilen dosya boyutları aynı ..


2
Bir dalga dosyası oluşturur
LtWorf

8
Bu bir mp3 dosyası ile sonuçlanmaz
m13r

2
Boyutlar aynı olsa da, bu mp2 dosyaları mp3 olmadığından bir web tarayıcısında oynatılamaz . Flash player ile bile değil. Sahip oldukları tek fayda, kodlamak için daha az işlemci gerektirmeleri, ancak dezavantajları buna değmez.
Daniel F

3
Soruyu doğru cevaplamadığı için bu kabul edilen cevap olmamalıdır.
reinierpost

13

Klasördeki toplu işlem dosyaları için:

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

Bu komut dosyası klasördeki tüm "wav" dosyalarını mp3 dosyalarına dönüştürür ve mp3 uzantısı ekler

ffmpeg kurulmalıdır. (Diğer cevaplara bakın)


1
İle -f mp2MP2 oluşturulur, değil MP3. Değiştir-f mp3
Gyan

3
Yukarıdaki komut adlı dosyalar oluşturur wav.mp3. Doğru dosya uzantısına sahip dosyaları almak için, komutu şu şekilde değiştirin: for i in *.wav; do ffmpeg -i "$i" -f mp3 "${i%.*}.mp3"; doneörn . .*Sonra ekle i%.
Suzana

11

Benim ffmpeg temizlemek ve sonra bir ppa başka bir yüklemek zorunda kaldı:

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

Sonra dönüştürün:

 ffmpeg -i audio.ogg -f mp3 newfile.mp3

4
Bu kısa yol, ancak saniyede kb kalitesini belirtmek istiyorsanız, -ab 192k
wrivas 29:15

7

Açıklandığı gibi burada giriş ve çıkış uzantısı tarafından algılanan olacak ffmpegbiçimleri hakkında endişe etmeye gerek yoktur bu nedenle, sadece bu komutu çalıştırın:

ffmpeg -i inputFile.ogg outputFile.mp3



2

Mac OS için yüksek kalite mükemmel çalışıyor!

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



0

Dönüştürmek istediğiniz wav'larla dolu bir klasörünüz ve alt klasörünüz varsa, aşağıdaki komutu bir dosyaya koyun, dönüştürmek istediğiniz klasörün kökündeki bir .bat dosyasına kaydedin ve sonra bat dosyasını çalıştırın

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"
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.