Video'dan GIF Oluşturucu

Bir video dosyasından bir bölümü tarayıcınızda animasyonlu GIF'e çevirin — aralığı, kare hızını ve boyutu seçin. Hiçbir şey yüklenmez.

250 görüntülenme

Bir GIF Neden "Sıkıştırılmış Video" Değil, Tek Tek Karelerden Kuruludur?

Animasyonlu bir GIF, bir MP4'ün olduğu gibi bir videonun sıkıştırılmış bir sürümü değildir — temelde farklı, çok daha eski bir formattır: her biri kendi küçük 256 renkli paletine sahip, arka arkaya kare-başına-gecikme ile oynatılan tam görsel dizisidir. Bu 256 renk sınırı, GIF formatının 1987'deki kökenlerinden gelir; o dönemde 8-bit (256 değerli) renk indeksleme, dönemin donanımı için pratik tavandı ve o zamandan beri hiç değişmedi — bu yüzden fotoğrafik içerikli GIF'ler genelde videoların asla göstermeyeceği görünür bantlanma veya dithering gösterir, ve bu yüzden bu araç her kareyi iki adımlı bir süreçten geçirir: renk kuantalama (bir karedeki gerçek renkleri analiz edip onu en iyi temsil eden 256 rengi seçmek), ardından palet eşleme (her pikseli o azaltılmış paletteki en yakın eşleşmesine yeniden atamak).

Bir tarayıcıda video dosyasından kare çıkarmak basit bir "bir sonraki kareyi oku" API'si kullanamaz, çünkü tarayıcılar rastgele video dosyaları için böyle bir şey sunmaz. Bunun yerine bu araç standart geçici çözümü kullanır: video elemanının currentTime'ini belirli bir zaman damgasına ayarlar, tam olarak o karenin gerçekten çözümlenip render edildiğini doğrulamak için tarayıcının seeked olayını bekler, sonra o tek video karesini bir canvas'a çizer ve pikselleri geri okur. Bunu, seçilen kare hızına göre belirlenen eşit aralıklı zaman damgalarında, çıktı karesi başına bir kez yapmak, gerçek zamanlı oynatmadan daha yavaştır ama çıkarılan her karenin en-iyi-çaba bir anlık görüntü yerine doğru olmasını garanti eder.

Kare hızı ve GIF dosya boyutu, video sıkıştırmasının yapmadığı bir şekilde doğrudan birbiriyle ödünleşir: çünkü her tek kare neredeyse tam bir görseldir (yalnızca değişeni saklayan videonun kareler-arası tahmininin aksine), kare hızını ikiye katlamak dosya boyutunu kabaca ikiye katlar — bu yüzden bu araç pratik aralığı bilinçli olarak mütevazı bir kare hızıyla sınırlar ve piksel boyutlarını küçültmenize izin verir — 10 fps'de 360px genişliğindeki bir GIF, aynı klibin 640px ve 20 fps'deki halinden genelde on katı veya daha fazla küçüktür.

Sonuç İçin İyi Ayarlar Seçmek

  • 8-12 fps'de kısa klipler (2-5 saniye), makul boyutlu, akıcı görünen GIF'ler üretir; daha uzun klipler veya daha yüksek kare hızları, yukarıda açıklanan kare-başına-palet sınırlaması nedeniyle dosya boyutunu hızla büyütür.
  • Büyük düz renk alanları olan içerik (ekran kayıtları, basit animasyonlar, çizgi filmler), fotoğrafik veya son derece detaylı görüntüden çok daha iyi GIF olarak sıkıştırılır, çünkü basit bir paletten 256 renk kuantalamak, tam fotoğrafik bir gradyandan 256 kuantalamaktan çok daha az kayıp verir.
  • Her şey yerel olarak gerçekleşir: video dosyası doğrudan tarayıcınızın video elemanı tarafından okunur ve asla cihazınızdan ayrılmaz, kodlama tamamen JavaScript'te çalışır.
  • Kare çıkarma adımı (arama + bekleme + çizim) doğal olarak gerçek zamanlı video oynatmadan daha yavaştır, bu yüzden daha uzun bir klip veya daha yüksek bir kare hızı, istenen toplam kare sayısıyla orantılı olarak GIF hazır olmadan önce görünür biçimde daha fazla işlem süresi alır.

Sıkça Sorulan Sorular

GIF neden kaynak videodan daha düşük kalitede görünüyor?

GIF, format 1987'de oluşturulduğundan beri 8-bit, 256 renkli bir palet kullanır ve bu sınır hiç değişmedi. Her kare kendi en iyi eşleşen 256 rengine kuantalanır — bu yüzden fotoğrafik içerik, milyonlarca renk kullanan orijinal videonun göstermeyeceği görünür bantlanma gösterir.

Daha yüksek bir kare hızı dosyayı neden bu kadar büyütüyor?

Kareler arasında değişeni saklayan video sıkıştırmasının aksine, bir GIF her kareyi kendi paletiyle neredeyse tam bir görsel olarak saklar. Kare hızını ikiye katlamak, saklanan tam kare sayısını kabaca ikiye katlar — bu yüzden dosya boyutu, video kodeklerinin yumuşattığı gibi yumuşatılmak yerine kare sayısıyla neredeyse doğrusal ölçeklenir.

GIF oluşturmak daha uzun bir klip için neden belirgin biçimde daha uzun sürüyor?

Tarayıcılar video karelerini doğrudan okumanın bir yolunu sunmaz, bu yüzden bu araç videoyu her tam zaman damgasına arar, tarayıcının o karenin çözümlendiğini doğrulamasını bekler, sonra yakalar — çıktı karesi başına bir arama-ve-bekleme döngüsü. Daha fazla kare istemek, gerçek işlem süresine eklenen daha fazla bu döngü demektir, anında dönüştürme değil.

Video dosyam herhangi bir yere yükleniyor mu?

Hayır. Video doğrudan tarayıcınızdaki bir HTML video elemanına yüklenir ve her işlem adımı — kare çıkarma, renk kuantalama ve GIF kodlama — yerel olarak JavaScript'te çalışır. Hiçbir şey bir sunucuya gönderilmez.

Ne tür bir kaynak video GIF'e en iyi sıkışır?

Büyük düz renk alanları olan içerik — ekran kayıtları, basit animasyonlar, çizgi filmler — fotoğrafik veya son derece detaylı görüntüden çok daha iyi sıkışır, çünkü basit bir renk paleti 256 renge indirgendiğinde tam fotoğrafik bir gradyandan çok daha az detay kaybeder.

Yorumlar

Henüz yorum yok — ilk yorumu siz yazın!

Benzer Araçlar