### SagaraS Scriptmaker - Version 6.1 ###
### Lade Plugins und setze die globalen Variablen ###
LoadPlugin("C:\Program Files (x86)\SagaraS Scriptmaker\Plugins\FFMS2.dll")
LoadPlugin("C:\Program Files (x86)\SagaraS Scriptmaker\Plugins\ColorMatrix.dll")
Global breite = 2560
Global hoehe = 1440
Global AR = 0
### Lade Videoquellen ###
SetMTMode(3)
AVIload("D:\Aufnahmen\OBS FACECAM\2019-07-19 03-00-15.mp4", 1, 0, 0, -0, -0, "Auto", "Igno.", 0, 0)
### Filter Verarbeitungszone ###
ColorMatrix("Rec.601->Rec.709", 0, 2, 3, False, False, False, False, "", False, 1, 0, 3)
(IsYUY2() == true) ? ConvertToYV16(matrix = "Rec709") : Last
### Funktion für Video-Laderoutine ###
Function AVIload (String file, int loading, int cl, int co, int cr, int cu, string pixtype, string afps, int fpsn, int fpsd) {
pixtype2 = (pixtype == "YUY2") ? "YUY2" : (pixtype == "RGB24") ? "RGB24" : (pixtype == "Y8") ? "Y8" : (pixtype == "YV12") ? "YUV420P8" : (pixtype == "YV24") ? "YUV444P8" : pixtype
(loading == 1) ? FFIndex(file) : nop()
clip0 = (loading == 3) ? (pixtype == "Auto") ? LWLibavVideoSource(file) : LWLibavVideoSource(file, format = pixtype2) : (loading == 2) ? Import(file).KillAudio() : (loading == 1) ? (pixtype == "Auto") ? FFVideoSource(file, threads=1) : FFVideoSource(file, threads=1, colorspace=pixtype) : (pixtype == "Auto") ? AVISource(file, false).KillAudio() : AVISource(file, false, pixel_type=pixtype).KillAudio()
clip1 = clip0.AutoFPS(afps, fpsn, fpsd).Cropping(cl, co, cr, cu)
Return (clip1.width == breite && clip1.height == hoehe) ? clip1.ConvertToYV12(matrix = "Rec709") : Clip1.Resize()
}
Function AutoFPS (Clip clip0, string afps, int fpsn, int fpsd) {
rate1 = (afps == "Auto") ? (Round(Float(clip0.framerate * 1000)) / 1000) / 2 : nop()
rate2 = (afps == "Auto") ? Round(clip0.framerate) / 2 : nop()
rate = (afps == "Auto") ? (rate1 == rate2) ? 1 : 1001 : (afps == "Igno.") ? clip0.frameratedenominator : fpsd
ratefaktor = (afps == "Auto") ? (rate == 1001) ? 1000 : 1 : nop()
clip0 = (afps == "Auto") ? (rate == 1001) ? clip0.AssumeFPS(Round(clip0.Framerate) * 1000, rate) : clip0.AssumeFPS(round(clip0.framerate), rate) : (afps == "Igno.") ? clip0.AssumeFPS(clip0.frameratenumerator, rate) : clip0.AssumeFPS(fpsn, rate)
Return clip0.ChangeFPS(60, 1)
}
Function Cropping (Clip clip0, int cl, int co, int cr, int cu) {
clip0 = (clip0.IsRGB32() == True) ? clip0.ConvertToRGB24() : clip0
Return (cl != 0
co != 0
cr != 0
cu != 0) ? clip0.Crop(cl, co, cr, cu) : clip0
}
Function Resize (Clip clip1) {
clip1 = (AR == 1) ? ((float(Clip1.height * breite) / clip1.width) / 2 == round((float(Clip1.height * breite) / clip1.width) / 2)) ? ((float(Clip1.width * hoehe) / clip1.height) / 2 == round((float(Clip1.width * hoehe) / clip1.height) / 2)) ? clip1 : clip1.ConvertToRGB24() : clip1.ConvertToRGB24() : clip1
clip1 = (AR == 1) ? (((clip1.width * hoehe) / clip1.height > breite) ? Clip1.Spline36Resize(breite, ceil(float(Clip1.height * breite) / clip1.width)) : Clip1.Spline36Resize(ceil(float(clip1.width * hoehe) / clip1.height), hoehe)) : clip1.Spline36Resize(breite, hoehe).ConvertToYV12(matrix = "Rec709")
back = (AR == 1) ? (0 == 1) ? ImageReader("", 0, clip1.framecount - 1, clip1.framerate).ChangeFPS(Clip1.frameratenumerator, Clip1.frameratedenominator).Spline36Resize(breite, hoehe).ConvertToYV12(matrix = "Rec709") : BlankClip(clip1, width = breite, height = hoehe, pixel_type = "YV12").KillAudio() : clip1
Return (AR == 1) ? Overlay(back, clip1, (back.width - clip1.width) / 2, (back.height - clip1.height) / 2) : clip1
}