Giriş
Kayıtlı bir ders videosu, video olarak yayınlanan bir podcast ya da sadece sesini dinlediğiniz bir konser klibi... Bazen bir MP4 dosyasından sadece ses parçasına ihtiyaç duyarsınız. Bu durumda ffmpeg kullanarak, birden fazla seçenekle ses kalitesini kontrol ederek ve tek komutla bu dönüşümü gerçekleştirebilirsiniz.
Bu rehberde, ffmpeg ile MP4'ten MP3'e nasıl dönüştürme yapılacağı, ses kalitesinin nasıl ayarlanacağı, sesin kalite kaybı olmadan nasıl çıkarılacağı ve toplu dosya dönüştürme işlemleri adım adım anlatılmaktadır.
Gerekli Önkoşullar
ffmpeg'in sisteminizde yüklü olması gerekmektedir. Aşağıdaki adımlarla Ubuntu, Debian ve türevlerinde ffmpeg ve ffprobe araçlarını kurabilirsiniz:
-
Terminali açın ve aşağıdaki komutları çalıştırın:
sudo apt update sudo apt install ffmpegBu komutlar, hem
ffmpeghem deffprobearaçlarını sisteminize kuracaktır. -
Kurulumun başarılı olup olmadığını doğrulamak için:
ffmpeg -version ffprobe -versionKomutları çalıştırın. Her iki komut da ilgili araçların versiyon bilgilerini göstermelidir.
Not: Farklı Linux dağıtımlarında ya da macOS/Windows için
ffmpegkurulumuna ilişkin özel talimatlar için lütfen resmi FFmpeg indirme sayfasını ziyaret edin.
MP4'den MP3'e Dönüştürme
Temel Dönüştürme
En basit haliyle, ffmpeg komutuna girdi dosyasını, MP3 kodlayıcısını ve çıktı dosyasının adını vererek dönüşümü gerçekleştirebilirsiniz:
ffmpeg -i video.mp4 -c:a libmp3lame audio.mp3
Bu komut:
-i video.mp4: Girdi dosyasını belirtir.-c:a libmp3lame: Ses parçasını LAME MP3 kodlayıcısı kullanarak MP3 formatına dönüştürür.audio.mp3: Çıktı dosyasının adını belirtir.
Video parçası otomatik olarak atılır, çünkü MP3 dosyalarında video bulunamaz.
Ses Kalitesini Ayarlama
Varsayılan ayarlar genellikle yeterli olsa da, ses kalitesini daha hassas bir şekilde kontrol etmek için aşağıdaki komutu kullanabilirsiniz:
ffmpeg -i video.mp4 -vn -c:a libmp3lame -q:a 2 audio.mp3
Bu komutta kullanılan seçenekler:
-vn: Video parçasını açıkça devre dışı bırakır.-c:a libmp3lame: LAME MP3 kodlayıcısını kullanır.-q:a 2: Değişken bit hızı (VBR) kalite seviyesini 2 olarak ayarlar. Bu seviye genellikle ortalama 190 kb/s bit hızına karşılık gelir.
Kalite Seviyeleri ve Bit Hızları
MP3 kodlayıcısı, 0 (en yüksek kalite) ile 9 (en düşük kalite) arasında değişen bir VBR kalite ölçeği sunar. Aşağıdaki tabloda farklı kalite seviyelerine karşılık gelen yaklaşık bit hızları verilmiştir:
| Kalite Seviyesi | Ortalama Bit Hızı | Kullanım Alanı |
|---|---|---|
-q:a 0 |
~245 kb/s | En yüksek kalite gerektiren müzikler için. |
-q:a 2 |
~190 kb/s | Genel kullanım için en iyi dengeyi sunar. |
-q:a 5 |
~130 kb/s | Konuşma ve podcast'ler için yeterli kalitede. |
-q:a 7 |
~100 kb/s | Dosya boyutunu önemli ölçüde azaltır, ancak müzikte sıkıştırma etkisi daha belirgindir. |
Eğer sabit bit hızı (CBR) kullanmak istiyorsanız, örneğin bazı cihazların VBR'ı desteklememesi durumunda, aşağıdaki komutu kullanabilirsiniz:
ffmpeg -i video.mp4 -vn -c:a libmp3lame -b:a 192k audio.mp3
Önemli: Kodlama işlemi, kaynağın ses kalitesini artıramaz. Örneğin, 96 kb/s'lik bir ses parçasını 320 kb/s olarak kodlamak, dosya boyutunu artırır ancak ses kalitesini iyileştirmez.
Kalite Kaybı Olmadan Ses Çıkarımı
MP3'e dönüştürmek her zaman yeniden kodlama gerektirir ve bu da küçük de olsa bir kalite kaybına neden olur. Eğer sadece orijinal ses parçasını almak istiyorsanız, sesin codec'ini kontrol ederek yeniden kodlama yapıp yapmayacağınıza karar verebilirsiniz.
Ses Codecine Bakma
Ses codec'ini öğrenmek için ffprobe aracını kullanabilirsiniz:
ffprobe -v error -select_streams a:0 -show_entries stream=codec_name -of default=noprint_wrappers=1:nokey=1 video.mp4
Bu komut, video.mp4 dosyasındaki ilk ses parçasının codec'ini gösterecektir. Örneğin, çıktı aşağıdaki gibi olabilir:
aac
AAC codec'i MP4 dosyalarında yaygın olarak kullanılır ve .m4a konteynerine yeniden kodlama yapmadan kopyalanabilir. Bu şekilde, ses dosyasını kalite kaybı olmadan çıkarabilirsiniz:
ffmpeg -i video.mp4 -map 0:a:0 -c:a copy audio.m4a
Bu komutta kullanılan seçenekler:
-map 0:a:0: İlk ses parçasını seçer.-c:a copy: Ses parçasını yeniden kodlama yapmadan kopyalar.
Bu işlem, MP3'e dönüştürmeye göre çok daha hızlıdır ve ses kalitesinde hiçbir kayıp olmaz. Eğer ffprobe başka bir codec gösteriyorsa, uyumlu bir konteyner kullanın ya da sesi yeniden kodlayın.
İpucu: Birden fazla ses parçasını kontrol etmek için
ffprobe -hide_banner video.mp4komutunu kullanabilirsiniz.
Dosyanın Bir Kısmını Dönüştürme
Bazen bir dosyanın sadece belirli bir bölümünü dönüştürmek isteyebilirsiniz. Örneğin, uzun bir konserden sadece bir şarkıyı ya da uzun bir röportajdan sadece bir cevabı almak istiyorsunuz. Bu durumda, başlangıç zamanı ve süreyi belirterek dönüşümü gerçekleştirebilirsiniz:
ffmpeg -ss 00:05:30 -i video.mp4 -t 00:06:30 -vn -c:a libmp3lame -q:a 2 clip.mp3
Bu komutta kullanılan seçenekler:
-ss 00:05:30: 5 dakika 30 saniyeden itibaren başlar.-t 00:06:30: Sonraki 6 dakika 30 saniyeyi dönüştürür.
Bu şekilde, dosyanın 5:30 ile 12:00 arasındaki kısmı clip.mp3 olarak kaydedilir.
Not: Süreleri belirtirken
HH:MM:SSformatını kullanın. Örneğin, 1 saat 30 dakika için-ss 01:30:00ya da-t 01:30:00kullanabilirsiniz.
Toplu Dosya Dönüştürme
ffmpeg, tek seferde sadece bir dosya işleyebilir. Bu nedenle, bir dizindeki tüm MP4 dosyalarını dönüştürmek için bir bash döngüsü kullanabilirsiniz:
shopt -s nullglob
for f in *.mp4; do
ffmpeg -n -i "$f" -vn -c:a libmp3lame -q:a 2 "${f%.mp4}.mp3"
done
Bu komutlarda kullanılan seçenekler:
shopt -s nullglob: Dizin içinde MP4 dosyası yoksa döngüyü atlar.-n: Var olan dosyaların üzerine yazılmasını engeller.${f%.mp4}: Dosya adından.mp4uzantısını kaldırır.- Çift tırnaklar, dosya adlarında boşluk olan durumlarda sorun çıkmasını engeller.
Alternatif olarak, paralel işlem yapmak için parallel aracını kullanabilirsiniz:
parallel ffmpeg -n -i {} -vn -c:a libmp3lame -q:a 2 {.}.mp3 ::: *.mp4
Sık Yaşanan Sorunlar ve Çözümleri
Bilinmeyen Kodlayıcı 'libmp3lame'
Sorun:
ffmpegLAME MP3 kodlayıcısını bulamıyor.Çözüm: Bazı minimal ya da codec kısıtlı FFmpeg paketlerinde LAME MP3 kodlayıcısı bulunmayabilir. Kontrol etmek için:
ffmpeg -hide_banner -encoders | grep -w libmp3lameEğer kodlayıcı bulunmuyorsa, FFmpeg paketinizi LAME destekli olarak yeniden kurun. Örneğin, Ubuntu için:
sudo apt install ffmpeg libmp3lame-dev
Çıktı Dosyasında Ses Yok
Sorun: Dönüştürülen dosyada ses yok.
Çözüm: Kaynak dosyada birden fazla ses parçası olabilir ve yanlış olanı seçilmiş olabilir. Kontrol etmek için:
ffprobe -hide_banner video.mp4Daha sonra doğru ses parçasını seçmek için
-mapseçeneğini kullanın. Örneğin, ikinci ses parçasını seçmek için:ffmpeg -i video.mp4 -map 0:a:1 -c:a libmp3lame -q:a 2 audio.mp3
M4A Çıktı Header'ı Yazılamadı
Sorun: Kaynak ses codec'i M4A konteyneriyle uyumlu değil.
Çözüm: Kaynak ses codec'ine uyumlu bir konteyner kullanın ya da
-c:a copyyerine-c:a aac -b:a 192kkullanarak uyumlu bir M4A dosyası oluşturun:ffmpeg -i video.mp4 -map 0:a:0 -c:a aac -b:a 192k audio.m4a
Çıktı Dosyası Zaten Var
Sorun: FFmpeg var olan bir dosyanın üzerine yazılmasını engelliyor.
Çözüm: Aşağıdaki seçeneklerden birini kullanın:
-n: Var olan dosyaların üzerine yazılmasını engeller.-y: Var olan dosyaların üzerine yazılmasını zorlar.- Farklı bir çıktı adı kullanın.
Sonuç
Günlük kullanım için tek bir komut yeterlidir:
ffmpeg -i video.mp4 -vn -c:a libmp3lame -q:a 2 audio.mp3
Bu komut, -q:a seçeneğiyle dosya boyutu ve ses kalitesi arasında en iyi dengeyi sunar. Daha fazla FFmpeg komutu ve kullanım örnekleri için FFmpeg komut rehberine göz atabilirsiniz.
Hatırlatma: FFmpeg'in sunduğu birçok seçenek ve ayar bulunmaktadır. İhtiyaçlarınıza en uygun olanları seçerek, ses dönüştürme işlemlerinizi optimize edebilirsiniz.



