Linux'ta ffmpeg: Video ve Ses Dosyalarını Dönüştürme
Linux kullanıcılarının her biri, bir video dosyasını paylaşmak istediğinde çok büyük, bir MKV dosyasını TV'nin oynatması için uygun bir formata çevirmek veya bir ders kaydını sadece ses olarak içe aktarmak istediğinde karşılaşır. ffmpeg bu tür durumlar için ideal bir çözümdür. Çeşitli video ve ses formatlarını okuma ve yazma özelliğine sahiptir. Bazı temel komutları öğrendikten sonra, tek bir araçla tüm işlemleri gerçekleştirebilirsiniz.
ffmpeg Kurulumu
Ubuntu, Debian ve türevleri için ffmpeg, standart depolarda mevcuttur:
sudo apt update
sudo apt install ffmpeg
Fedora'da, varsayılan depolardaki ffmpeg-free paketi, birçok yaygın görevi kapsar, ancak tam bir FFmpeg derlemesiyle karşılaştırıldığında daha küçük bir kod çözücü setine sahiptir. İlk olarak varsayılan paketi kullanın:
sudo dnf install ffmpeg-free
Kurulumu doğrulamak için:
ffmpeg -version
ffmpeg Komut Sentaksı
ffmpeg komutunun genel sentaksı:
ffmpeg [GLOBAL_OPTIONS] -i INPUT [OUTPUT_OPTIONS] OUTPUT
Bu yapıda iki önemli detay vardır. İlk olarak, seçenek sırası: -i seçeneğinden önce yer alan seçenekler girişe, sonra yer alan seçenekler çıkışa uygulanır. İkinci olarak, ffmpeg, dosya uzantısından çıkış konteynerini tahmin eder, yani output.mp4 yazmak, bir MP4 dosyası isteyen anlamına gelir.
Bir Medya Dosyasını İçerik Açısından İnceleme
Herhangi bir dönüşüm yapmadan önce, dosyanın içeriğini inceleyin. ffprobe araçları, ffmpeg ile birlikte gelir ve konteyner ve akış detaylarını yazdırır:
ffprobe -hide_banner input.mp4
Formatlar Arasında Dönüştürme
Dosyadaki kodlar hedef konteynerle uyumlu ise, sadece konteyneri değiştirmek için yeniden kodlama yapmadan dönüştürme işlemi gerçekleştirilebilir. Bu, kayıpsız bir işlemdir ve birkaç saniyede tamamlanır:
ffmpeg -i input.mkv -c copy output.mp4
Ses Çıkarma ve MP3'e Dönüştürme
Bir videodan ses izlemini kalitesini bozmadan çıkarmak için, -vn seçeneği ile video izlemini atın ve ses akışını kopyalayın:
ffmpeg -i video.mp4 -vn -c:a copy audio.m4a
Video Sıkıştırma
Video dosyasını sıkıştırmak için en etkili yöntem, H.264 kodlayıcısını sabit hız faktörü modunda kullanmaktır:
ffmpeg -i input.mp4 -c:v libx264 -crf 23 -preset slow -c:a aac -b:a 128k output.mp4
Video Boyutlandırma ve Ölçeklendirme
Ölçeklendirme işlemi, scale video filtresi ile gerçekleştirilir. Bir videoyu 1280 piksel genişliğe getirmek ve en-boy oranını korumak için:
ffmpeg -i input.mp4 -vf scale=1280:-2 -c:a copy output.mp4
Video Kırpma ve Kısaltma
Bir video klibini bir uzun video'dan kırpmak için, başlangıç konumu ile bitiş konumu veya süreyi birleştirin:
ffmpeg -ss 00:01:00 -to 00:02:30 -i input.mp4 -c copy clip.mp4
Videodan Görüntüler Çıkarma
Bir tek çerçeveyi bir görüntü olarak almak için, konuma gitmek ve bir video çerçevesi isteyin:
ffmpeg -ss 00:00:10 -i input.mp4 -frames:v 1 thumbnail.jpg
Dosyaları Toplu Dönüştürme
Bir dizindeki dosyalar için, dönüştürme komutunu bir shell döngüsüne sarın. Aşağıdaki komut, mevcut dizindeki her MKV dosyasını MP4'e dönüştürür:
for f in *.mkv; do ffmpeg -i "$f" -c:v libx264 -crf 23 -c:a aac "${f%.mkv}.mp4"; done
Hızlı Referans
| Görev | Komut |
|---|---|
| Konteyneri kayıpsız değiştirme | ffmpeg -i in.mkv -c copy out.mp4 |
| Videoyu MP3'e dönüştürme | ffmpeg -i in.mp4 -vn -c:a libmp3lame -q:a 2 out.mp3 |
| H.264 ile sıkıştırma | ffmpeg -i in.mp4 -c:v libx264 -crf 23 -preset slow -c:a aac -b:a 128k out.mp4 |
| H.265 ile sıkıştırma | ffmpeg -i in.mp4 -c:v libx265 -crf 28 -c:a copy out.mp4 |
| 1280 genişliğe boyutlandırma | ffmpeg -i in.mp4 -vf scale=1280:-2 -c:a copy out.mp4 |
| Hızlı kırpma (ana çerçeve kırpma) | ffmpeg -ss 00:01:00 -to 00:02:30 -i in.mp4 -c copy clip.mp4 |
| 10 saniyedeki tek çerçeve | ffmpeg -ss 00:00:10 -i in.mp4 -frames:v 1 thumb.jpg |
| Akışları inceleme | ffprobe -hide_banner in.mp4 |
Sıkça Sorulan Sorular
Kayıp olmadan dönüştürme, kaliteyi kaybettiriyor mu?
Hayır. Akış kopyalama, kodlanmış ses ve video akışlarını yeni bir konteynere byte başına taşıyarak, kaynakla tamamen aynı sonucu verir. Kalite yalnızca yeniden kodlama sırasında etkilenir, yani herhangi bir kodlayıcı belirtildiğinde copy yerine.
Hangi CRF değeri kullanmalıyım?
H.264 için, 23'ten başlayın ve gözle göre ayarlayın: 18 ile 20 arası kaliteli içeriğiniz için, 26 ile 28 arası ise boyut daha önemlidir. H.265 için, yaklaşık 5 ekleyerek benzer bir sonuca ulaşın, bu nedenle 28 genellikle başlangıç noktasıdır.
Sonuç
Küçük bir set ffmpeg tarifleri, günlük medya dosyalarıyla yaptığımız çoğu işlemi kapsar: sadece konteyner yanlışsa -c copy ile remux yapın, boyut veya kodlama değiştirilmesi gerekiyorsa uygun bir CRF ile yeniden kodlayın ve kırpma, boyutlandırma ve ses çıkarma için -ss, -vf scale ve -vn kullanın.



