Avisynth Nedir – Film ve Video 60 FPS yapma, izleme oynatma

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 buildsv.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

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir