Ffmpeg Video Encoding Rehberi - Videodan Altyazı Çıkarmak ve Videoya Altyazı Eklemek



Ffmpeg Videodan Altyazı Çıkarmak ve Videoya Altyazı Eklemek

Aşağıdaki linkteki iletide -map özelliğini nasıl kullanacağınızı ses dosyası ekleme işlemi için anlatmıştım. Altyazı eklemek ve sökmek için de -map özelliğini kullanabiliriz.

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

Aşağıdaki komutlarda mevcut alyazının .srt uzantılı olduğu farz edilmiştir, eklemek isteidğiniz altyazı dosyanızın uzantısı neyse onu yazın.

-map özelliğinin sonuda kullanılan s harfi subtitle demektir.

Altyazı Eklemek

Sadece eklemek istediğimiz altyazı dosyası ile videoyu yeniden oluşturan komut. Videonun içinde önceden altyazı dosyası varsa bile çıktı dosyada sadece en son eklediğiniz altyazı dosyası bulunur.

ffmpeg -i input_video.mkv -i input_subtitle.srt -map 0:v -map 1:s -c:v copy -c:a copy output_video.mkv

Önceki altyazı dosyasının yanına altyazı ekleyen komut. Bunun için sadece -map 0:v'nin yanındaki v'yi kaldırın. v harfi olmadan -map 0 yazarak videonun içindeki mevcut tüm streamleri seçmiş oldunuz.

ffmpeg -i input_video.mkv -i input_subtitle.srt -map 0 -map 1:s -c:v copy -c:a copy output_video.mkv

Birden fazla altyazı dosyasını aynı anda ekleyen komut. Gördüğünüz gibi ikinci altyazı dosyası için -map 2:s yazdık.

ffmpeg -i input_video.mkv -i input_subtitle_1.srt -i input_subtile_2.srt -map 0 -map 1:s -map 2:s -c:v copy -c:a copy output_video.mkv

Altyazı Çıkarmak

Burada altyazıyı çıkarmadan önce öğrenmeniz gereken şey çıkarmak istediğiniz altyazının formatı. .ass uzantılı bir altyazıyı .srt uzantılı olarak çıkarmak istemezsiniz çünkü ffmpeg .ass uzantılı dosyanızı .srt bir dosyaya dönüştürecektir, bu dönüşüm sonunca text verisinden kayıp olamayacaktır. Ffmpeg kütüphanesinin ne kadar çeşitli ve kullanıcı dostu bir kütüphane olduğunu buradan anlayabilirsiniz. Biliyorsunuz ki .ass uzantılı bir altyazı dosyasından .srt uzantılı bir altyazı dosyasına dönüşüm .ass uzantılı altyazının yapısna göre tatmin edici sonuçlar verip vermeyeceği kesin değildir.

Bunu yapmak için video dosyamızın en temel metadatasına bakalım ve içindeki streamleri okuyarak altyazı dosyasının formatını öğrenmeye çalışalım.
Aşağıdaki komut ile istediğiniz videonun metadasını ekrana yazdırabilirsiniz.

*Burada -hide_banner argümanı ffmpeg'in her seferinde ekrana yazdırdığı versiyon bilgilerini yazdırmaması için eklenmiştir.

ffmpeg -hide_banner -i input_video.mkv


Yukarıdaki görseldeki örnek videonun içinde iki tane altyazı vardır ve bu altyazıların formatlarını görebilmekte olmanızın yanısıra birinin yanında parantez içinde (default) yazmaktadır.

Aşağıdaki komut ile default altyazıyı çıkarabilirsiniz.

-map 0:s: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:s:0 extracted_subtitle.ass

Eğer ikinci altyazıyı çıkarmak isterseniz -map 0:s:0 ifadesinin sonundaki 0'ı 1 yapmalısınız.

ffmpeg -i input_video.mkv -map 0:s:1 extracted_subtitle.ass


Yorum Gönder

0 Yorumlar