Ffmpeg Video Encoding Rehberi - Ses Dosyası İmport Etme ve Extract Etme




Ffmpeg ile Video'ya Ses Dosyası İmport Etme (İçine Aktarmak) ve Ses Dosyası Extract Etme (Sökmek)

Bunun için ffmpeg'in "map" özelliğini kullanacağız. Videonuzun içinde haneler olduğunu düşünün bu hanelere görüntü ve ses yerleştirdiğimizi farz ededelim. Bu hanelerin haritalamasını map özelliği ile yapıyoruz.

Videoya Ses Dosyası Ekleme

ffmpeg -i input_video.mkv -i input_audio.flac -map 0:v -map 1:a -c:v copy -c:a copy output_video.mkv

Yukarıda gördüğünüz üzere iki tane girdi dosyamız var. (iki tane -i kullandık.) Bunlardan biri video diğeri ses.

İlk girdimiz video, bu ilk girdiye sıfırıncı girdi diyelim. -map 0 sıfırncı girdimiz demek, -map 0:v'deki v harfi ise video demektir.

İkinci girdimiz ses, bu ikinci girdiye birinci girdi diyelim. -map 1 birinci girdimiz demek, -map 1:a'daki a harfi ise audio demektir.


Gördüğünüz üzere bir indisleme yaptık.

Burada bir şeye dikkat edelim. Girdilerimizi birer birer haritladık ama buradaki "v" ve "a" harflerinin bulunup bulunmamasının bir anlamı var. -map 0'da v harfi bulunurken -map 1'de a harfi bulunmasının anlamı şudur "Mevcut videoyu, sadece belirtilen audio ile yeniden oluştur" yani önceden bir ses dosyası varsa yeni eklediğiniz ses dosyası onunla yer değiştirir. Bu durum videonuzun içinde önceden ses doyası yoksa siz şimdi eklemek istiyorsanız kabul edilebilirdir ama halihazırda bulunan ses dosyasının yanına bir başka ses dosyası daha eklemeniz gerekiyorsa kabul edilebilir değildir.

Aşağıda yukardaki durumun bir tane video dosyası ve 2 iki tane ses dosyası ile olan halini görüyorsunuz. Aşağıdaki komutu çalıştırırsanız videonuzun içinde bulunan halihazırdaki ses dosyasının yanına bu iki ses dosyasını eklemek yerine onunla bu iki ses dosyasını yer değiştirir. Yani çıktı dosyada sadece bu iki ses dosyasını görürsünüz.

ffmpeg -i input_video.mkv -i input_audio_1.flac -i input_audio_2.flac -map 0:v -map 1:a -map 2:a -c:v copy -c:a copy output_video.mkv

Peki önceki ses dosyasının yanına yeni ses dosyasını ekleme, ilave etme işlemini nasıl yapacağız?

Bunun için yapmanız gereken tek şey -map 0'ın yaındaki v harfini kaldırmaktır. v harfi olmadan -map 0 yazarak videonun içindeki mevcut tüm streamleri seçmiş oldunuz.

ffmpeg -i input_video.mkv -i input_audio.flac -map 0 -map 1:a -c:v copy -c:a copy output_video.mkv

Bu sayede halihazırda bulunan ses dosyasını yanına yeni bir ses dosyası eklemiş, ilave etmiş oldunuz.

Tabii aynı anda birden fazla ses dosyasını da ilave edebilirsiniz.

ffmpeg -i input_video.mkv -i input_audio_1.flac -i input_audio_2.flac -map 0 -map 1:a -map 2:a -c:v copy -c:a copy output_video.mkv

Yukarıdaki işlemlerden duruma göre işinize yarayanı seçip ses dosyalarınızı videolarınıza import edebilirsiniz.

Videodan Ses Dosyası Extract Etme

Bunu yapmanın bir yolunu zaten aşağıdaki linkteki iletide anlatmıştım ama bunu map özelliğini kullanarak yapabiliriz.
İlk önce aşağıdaki bağlantıdan videonun en temel metadatasını nasıl okuyacağınızı ve ses dosyanızın formatını nasıl okuyacağınızı öğrenin.
Çıkarmak istediğiniz ses dosyasının formatını bilmeniz önemlidir çünkü eğer çıkarma komutuna farklı bir format yazarsanız ffmpeg kütüphanesi mevcut ses dosyasını otomatik olarak yazdığınız formata dönüştürecektir. Bu kullanıcı dostu bir özelliktir, eğer çıkarma işleminin yanı sıra bir de ses dosyasını encode etmek istiyorsanız harikadır ama sadece çıkarmak istiyorsanız diğer bir deyişle çıkarmak istediğniz ses dosyası üzerinde kodlama yapmak istemiyorsanız çıkarmak istediğiniz ses dosyasının formatını öğrenmelisiniz.

https://kanpuusan.blogspot.com/2021/10/ffmpeg-video-encoding-rehberi-goruntuyu.html

Aşağıdaki komut ile default ses dosyasını çıkarabilirsiniz.

-map 0:a:0 ifadesindeki ilk sıfır ilk girdimiz olan videoyu ifade ederken son sıfır ise videonun içindeki default altyazıyı ifade etmektedir.

ffmpeg -i input_video.mkv -map 0:a:0 extracted_audio.flac

Eğer videonuzda iki ses dosyası varsa ve ikinciyi çıkarmak istiyorsanız -map 0:a:0 ifadesini -map 0:a:1 yapın. Eğer 3 tane ses dosyası varsa ve üçüncüyü çıkarmak istiyorsanız -map 0:a:0 ifadesini -map 0:a:2 yapın.

İkinci ses dosyasını çıkaran komut.

ffmpeg -i input_video.mkv -map 0:a:1 extracted_audio.flac


Yorum Gönder

0 Yorumlar