Ffmpeg Programı ile mp4 Dosyasını gif Formatına Çevirmek

Uğraştığımız işler gereği kimi zaman bir video dosyasının formatını başka bir formata çevirmek zorunda kalabiliriz. Bu gibi durumlarda “video converter” anahtar kelimesiyle internette arama yaptırdığımızda ücretli-ücretsiz çok çeşitli dönüştürme programları bulabilmekteyiz. Fakat her bir programın gerek arayüz gerekse işlev açısından diğerlerinden farklı bir yönü olduğundan programın nasıl kullanıldığına dair bilgilendirmeye de ihtiyaç duyarız.

Bu yazıda dönüştürme işlemleri için hem Linux hem de Windows işletim sistemlerinde kullanılabilen ffmpeg programının mp4 uzantılı video dosyasını, gif uzantılı resim formatına dönüştürme adımlarından bahsedilecektir. Adımların altındaki birinci kod programın işleyiş formatını, ikinci kod ise örnek uygulamayı belirtmektedir.

1. Öncelikle dönüştürülecek dosyanın bilgilerini alalım.

ffmpeg -i girendosya.mp4  –>
ffmpeg -i banner01.mp4

2- Gerekiyorsa dosyanın ölçülerini düzenleyelim.

ffmpeg -i girendosya.mp4 -s 1330×454 cikandosya.mp4  –>
ffmpeg -i banner01.mp4 -s 1330×454 banner001.mp4

örnekte genişlik x yükseklik olarak çıkacak dosyanın değerleri girildi. Ayrıca çıkan dosyanın adını değiştirdik ki asıl dosyanın üzerine yazılmasın. Aşağıdaki adımlar yeni oluşturulan dosya üzerindendir.

3- Renk paleti oluşturalım.

ffmpeg -i girendosya.mp4 -vf palettegen palette.png  –>
ffmpeg -i banner001.mp4 -vf palettegen palette.png

Renk paleti oluşturmanın mantığı şudur: gif formatı 256 renge kadar destek verdiği için videoların gif formatına çevrilmesinde görüntü bozuklukları çok bariz olmaktadır. Buna çözüm olarak, “genel renk paletine ait 256 rengi kullanmak yerine, dönüştürülecek videonun kullandığı renklerin paletini oluşturalım, kullanılmayan renklerin yerine videodaki renklerin tonlarını yerleştirelim” diye düşünmüşler. Bu yöntemle, özellikle benzer renklerin kullanıldığı videolar gif formatına dönüştürüldüğünde görüntü bozukluklarını en asgariye inmektedir.

4- İkinci aşamada oluşan dosyanın palet kullanılarak gifini oluşturmak için:

ffmpeg -v warning -i girendosya.mp4 -i palette.png -lavfi “fps=25,scale=1330:454:flags=lanczos [x]; [x][1:v] paletteuse” -y cikandosya.gif –>

ffmpeg -v warning -i banner001.mp4 -i palette.png -lavfi “fps=25,scale=1330:454:flags=lanczos [x]; [x][1:v] paletteuse” -y banner001.gif

Hepsi bu.

Notlar:

1- ffmpeg programı konsol/komut istemi üzerinden çalışan bir program olduğundan dosyaların yeri komut satırında doğru olarak belirtilmeli. Aksi durumda hata verecektir.

2-Windows kullanıcıları çalışacakları dosyaların, izin gerektiren sistem dizinleri içerisinde olmamasına dikkat etmeli. Aksi durumda izin konusunda hata alacaklardır.

3-video formatından gif formatına dönüştürülen bir dosyanın boyutu umduğunuzdan daha fazla artabilir. Boyutu küçültmeye kalktığınızda ise görüntü netliği azalabilir. ( Eğer gif e dönüştürme işlemini web sayfasında kullanmak üzere yapıyorsanız HTML 5 de artık video formatlı içeriklerin desteklendiğini bu vesileyle hatırlatmış olayım )