Vapoursynth Çıktısını Ffmpeg İle Encode Etme (Vspipe Kullanımı)

Vapoursynth ile yazdığımız script'e göre önizlediğimiz videoyu bir çıktı olarak bir encoder'a nasıl aktaracağımızı göstereceğim.

Biliyorsunuz ki videoları encode etmek için kullandığımız yazılıma encoder denir.

Ffmpeg kütüphanesi pek çok özelliğinin yanı sıra video encode etmek için gerekli x264 ve x265 encoderlarını bünyesinde barındırır. Ffmeg'in içindeki encoderları kullanmak için vapoursynth scriptinizin çıktısının "Vspipe" kullanarak Ffmpeg'in girdisi olmasını nasıl sağlayacağınızı göstereceğim.

Her şeyden önce bilgisayarınızda Ffmpeg'in kurulu olması gerekmektedir. Ffmpeg'i nasıl kuracağınızı aşağıdaki linkteki iletide anlattım.

Ffmpeg Rehberi --> https://kanpuusan.blogspot.com/2020/11/ffmpeg-video-encoding-rehberi.html

Vspipe Nedir

Vspipe, Vapoursynth script'iniz sonucu oluşan görüntüyü encode edilebilmesi için bir encoder'a aktarmak için kullanacağımız araçtır.

Vspipe, Vapoursnth ile beraber bilgisayarınıza kurulur.

Vspipe Kullanıımı

Komut satırını açıp sadece "vspipe" yazarsanız sorunsuzca aşağıdaki gibi bir çıktı almanız gerekir.


Komut satırına aşağıdaki gibi yazarsanız scriptinizin bilgilerini görüntüleyebilirsiniz.

vsrepo --info my_script.vpy

 


Aşağıdaki gibi yazarsanız da vapousynth scriptinizin çıktısını ffmpeg'e girdi olarak verebilirsiniz.

vspipe --y4m my_script.vpy -| ffmpeg -i pipe: -c:v libx264 output_video.mkv

Encode işlemi başlayınca aşağıdaki resimdeki gibi gözükecektir.


Yukarıda görselde default x264 parametleri ile videoyu encode etmekteyiz. Halbuki bu işlem için istediğiniz encode parametrelerini kullanabilirsiniz. 

Örneğin ben aşağıda en son kullandığım parametreleri paylaşayım.

vspipe --y4m my_script.vpy -| ffmpeg -i pipe: -c:v libx264 -x264-params threads=8:lookahead_threads=1:me_range=32:qcomp=0.65:qpmin=10:aq-strength=0.90:ref=4:bframes=8:b_adapt=2:subme=8:deblock=-1,-1:trellis=2:psy-rd=0.85:keyint=230:me=umh:chroma-qp-offset=-4:crf=15:vbv_maxrate=50000:vbv_bufsize=50000 my_video.mkv

  • Encode parametreleriniz kullandığınız encoder'a göre değişir. Hangi parametreyi nasıl kullanacağınız siz kalmıştır. Encoder'ların encode parametreleri için rehber yazmayacağım. Ama siz encoder'ların dokumentasyonlarını  okuyarak bu parametlerin anlamını öğrenip biraz da özel araştırmayla nasıl kullancağınızı öğrenebilirsiniz. Videolarınızı iyi encode etmek için buna ihtiyacınız var.

  • x264 dokumentasyonu --> http://www.chaneru.com/Roku/HLS/X264_Settings.htm
  • x265 dokumentasyonu --> https://x265.readthedocs.io/en/master/

  • Hangi encoderı kullanırsanız kullanın videonuzda iyi sonuçlar almak istiyorsanız, kullandığınız encoderın özelliklerinin anlamlarını biliyor olmanız gereklidir. Hangi parametreye ne değerleri vereceğinizi bilebilmeniz buna bağlıdır. 

En son olarak belli frame'ler arasını encode etmeyi göstereyim.

vspipe --y4m my_script.vpy --start 51 --end 9269 -| ffmpeg -i pipe: -c:v libx264 output.mkv

Yukarıdaki komut ile 51'inci frame ile 9269'uncu frame arasını encode edebilirsiniz. 

Bu durum yazdığınız vapoursynth scriptinin encode ettikten sonra gerçekten nasıl sonuçlar verdiğini görmek istediğiniz videonun tamamını encode etmeyi beklemek yerine küçük bir yerini encode ederek hızlı sonuçlar almanızda kullanışlı olabilir.

Yorum Gönder

0 Yorumlar