Script ile gerçek zamanlı video düzenlemeye yarayan avisynth nedir, ne işe yarar? 60 FPS nedir ? Basitçe, saniyede 60 kareden oluşan, oyunlar ile tanıştığımız bağımlılık yapan akıcı görüntülerdir. Özellikle Youtube üzerindeki 60 FPS videoları izleyip etkilenmemek mümkün değil. Peki elimizdeki normal videoları 60 FPS’e çevirebilir miyiz ya da onları sanki 60 FPS kaydedilmiş gibi oynatabilir miyiz? Avisynth ve Mediaplayer Classic kullanarak bu mümkün.
Saçma bir soru gibi geliyor çünkü saniyede 24 ya da 30 kare fotoğrafın arka arkaya dizilmesiyle kaydedilmiş filmleri nasıl saniyede 60 kare çekilmiş gibi izleyebiliriz. Motion interpolation yani hareket ara değerini bulma yöntemi ile artık bu mümkün. İşin teknik detaylarına hakim değilim ama alttaki resim fikir verecektir:
Yukarıdaki 3 frame bizim elimizdeki 30 FPS kaydedilmiş filmden alınmış gibi düşünün. Ara değerleri yani üstteki satırdaki boşlukları farklı algoritmalar sayesinde bilgisayar ile tahmin edip alttaki görüntüleri oluşturuyoruz. İlk karede atın bacağı kırık, ortadaki karede ise tam olarak düz. Bilgisayara bu iki kareyi verdiğimizde bize atın bacağının yarı kırık olduğu aradaki kareyi kendi interpole ederek yani ara değerini yuvarlayarak oluşturuyor. Açıkçası teknolojinin bu kadar ilerlediğini bilmiyordum çünkü bunu saatlerce rendera bırakarak değil gerçek zamanlı olarak yapabiliyorsunuz. Öyle ki 30 FPS videoları 60 FPS oynatan video oynatıcı programlar uzun zamandır var. Fakat bunlar ücretli 🙁 . Biz de bu yazımızda el yordamıyla açık kaynak projelerden yararlanarak 60 FPS video oynatıcı yapacağız.
1. Adım – K-Lite Codec Pack Kurulumu
Öncelikle K-lite Codec Pack’ı mega olarak indiriyoruz. Mega indirmemizin sebebi normalde artık çok kullanılmayan ffdshow decodera ve Haali Video Renderer’a ihtiyacımız olacak. https://codecguide.com/download_kl.htm
Yüklerken sizden kurulum için seçenek sunarsa lav video decoder yerine ffdshow, lav video spliter yerine haali media splitter seçin. Bu ayarları sonradan da yapabiliyoruz fakat kolaylık bu şekilde yapmamız daha rahat olur.
2. Adım – Avisynth kurulumu
Resmi sitesinden http://avisynth.nl/index.php/Main_Page 2.6.0 son sürüm olan 2.6.0 ST yi indirip yükleyici ile kuralım.
Avisynthin kullandığı bir çok eklenti var. Bunları zip yapıp sizin için derledim. Alttan indirebilirsiniz:
plugins klasörünü C:\Program Files (x86)\AviSynth\plugins
klasörüne kopyalıyoruz. avisynth.dll
dosyasını ise C:\Windows\SysWOW64
klasörüne atıp varsayılan avisynth.dll
dosyasının üzerine yazıyoruz. Bu çoklu çekirdek yani multi thread desteği için gerekli. Aynı işlemi resmi sitedeki Unofficial builds
v.2.6.0 MT, 32-bit, author SET
bağlantısını izleyerek de yapabilirsiniz. Avisynth kurulumumuz böylece tamamlanmış oluyor.
3. Adım – Media Player Classic Ayarları
Media player classic’i açıp O tuşuna basarak MPC ayarlarına giriyoruz. View > Options
ile de aynı yere ulaşabiliriz. Alttaki resimlerdeki gibi output ve filtre ayarlarını yapıyoruz.
Output seçeneklerinden splitter olarak Haali seçtik.
Internal Filters’dan ise dahili MPC efeklerini kapatmış olduk.
4. Adım – FFDShow Ayarları
Avisynth FFDShow üzerinden media player’a bağlanacak. Başlat menüsü üzerinden FFDShow Video yazarak ayarlarına giriyoruz
kullanacağımız script ise şu bunu avisynth tabına yapıştırıyoruz:
avisynth için 60 fps scripti
SetMTMode(1,0)
ffdShow_source()
SetMTMode(2)
super=MSuper(pel=1, hpad=0, vpad=0, rfilter=4)
backward_1=MAnalyse(super, chroma=false, isb=true, blksize=16, searchparam=3, plevel=0, search=3, badrange=(-24))
forward_1=MAnalyse(super, chroma=false, isb=false, blksize=16, searchparam=3, plevel=0, search=3, badrange=(-24))
backward_2 = MRecalculate(super, chroma=false, backward_1, blksize=8, searchparam=1, search=3)
forward_2 = MRecalculate(super, chroma=false, forward_1, blksize=8, searchparam=1, search=3)
backward_3 = MRecalculate(super, chroma=false, backward_2, blksize=8, searchparam=0, search=3)
forward_3 = MRecalculate(super, chroma=false, forward_2, blksize=8, searchparam=0, search=3)
MBlockFps(super, backward_3, forward_3, num=60, den=1, mode=0)
SetMTMode(1)
GetMTMode(false) > 0 ? distributor() : last
İşlemlerimiz bu kadar artık 60FPS video’nun tadını çıkarabiliriz.
alternatif 60 fps avisynth scripti:
SetMTMode(1)
function DoubleFPS(clip source)
{
super = MSuper(source, pel=2, hpad=0, vpad=0, rfilter=4)
backward_1 = MAnalyse(super, chroma=false, isb=true, blksize=16, searchparam=3, plevel=0, search=3, badrange=(-24))
forward_1 = MAnalyse(super, chroma=false, isb=false, blksize=16, searchparam=3, plevel=0, search=3, badrange=(-24))
backward_2 = MRecalculate(super, chroma=false, backward_1, blksize=8, searchparam=1, search=3)
forward_2 = MRecalculate(super, chroma=false, forward_1, blksize=8, searchparam=1, search=3)
backward_3 = MRecalculate(super, chroma=false, backward_2, blksize=4, searchparam=0, search=3)
forward_3 = MRecalculate(super, chroma=false, forward_2, blksize=4, searchparam=0, search=3)
MBlockFps(source, super, backward_3, forward_3, num=5*FramerateNumerator(source), den=FramerateDenominator(source), mode=0)
}
ffdShow_source()
DoubleFPS()
Detaylı Kaynak: https://dsync.blogspot.com/2012/01/playing-video-on-60-fps-update-2.html