# Imports import vapoursynth as vs # getting Vapoursynth core import ctypes import sys import os core = vs.core # Import scripts folder scriptPath = 'C:/Program Files/Hybrid/64bit/vsscripts' sys.path.insert(0, os.path.abspath(scriptPath)) # Loading Support Files Dllref = ctypes.windll.LoadLibrary("C:/Program Files/Hybrid/64bit/vsfilters/Support/libfftw3f-3.dll") # loading plugins core.std.LoadPlugin(path="C:/Program Files/Hybrid/64bit/vsfilters/SharpenFilter/CAS/CAS.dll") core.std.LoadPlugin(path="C:/Program Files/Hybrid/64bit/vsfilters/DenoiseFilter/ZSmooth/zsmooth.dll") core.std.LoadPlugin(path="C:/Program Files/Hybrid/64bit/vsfilters/GrainFilter/AddGrain/AddGrain.dll") core.std.LoadPlugin(path="C:/Program Files/Hybrid/64bit/vsfilters/DenoiseFilter/NEO_FFT3DFilter/neo-fft3d.dll") core.std.LoadPlugin(path="C:/Program Files/Hybrid/64bit/vsfilters/DenoiseFilter/DFTTest/DFTTest.dll") core.std.LoadPlugin(path="C:/Program Files/Hybrid/64bit/vsfilters/Support/EEDI3m.dll")# vsQTGMC core.std.LoadPlugin(path="C:/Program Files/Hybrid/64bit/vsfilters/ResizeFilter/nnedi3/vsznedi3.dll") core.std.LoadPlugin(path="C:/Program Files/Hybrid/64bit/vsfilters/Support/libmvtools.dll") core.std.LoadPlugin(path="C:/Program Files/Hybrid/64bit/vsfilters/Support/fmtconv.dll") core.std.LoadPlugin(path="C:/Program Files/Hybrid/64bit/vsfilters/DeinterlaceFilter/Bwdif/Bwdif.dll") core.std.LoadPlugin(path="C:/Program Files/Hybrid/64bit/vsfilters/Support/akarin.dll") core.std.LoadPlugin(path="C:/Program Files/Hybrid/64bit/vsfilters/SourceFilter/LSmashSource/LSMASHSource.dll") # defining beforeDeinterlace-function - START def beforeDeinterlace(clip): # ReInterpolate411-style chroma restoration for NTSC DV 4:1:1 def beforeDeinterlace(clip): # Separate planes y = core.std.ShufflePlanes(clip, 0, vs.GRAY) u = core.std.ShufflePlanes(clip, 1, vs.GRAY) v = core.std.ShufflePlanes(clip, 2, vs.GRAY) # Reduce to even columns u_even = core.std.SelectEvery(u, cycle=2, offsets=[0]) v_even = core.std.SelectEvery(v, cycle=2, offsets=[0]) # Resize to full width via horizontal interpolation u_interp = core.resize.Bicubic(u_even, width=clip.width, height=clip.height, src_left=0.25) v_interp = core.resize.Bicubic(v_even, width=clip.width, height=clip.height, src_left=0.25) # Merge back to YUV return core.std.ShufflePlanes([y, u_interp, v_interp], [0, 0, 0], vs.YUV) # defining beforeDeinterlace-function - END # Import scripts import sharpen import qtgmc import validate # Source: 'C:\Users\chris\Desktop\PROCESS FOLDER\Temp\2003\2003.12.24\2003.12.24_18.09.59.avi' # Current color space: YUV411P8, bit depth: 8, resolution: 720x480, frame rate: 29.97fps, scanorder: bottom field first, yuv luminance scale: limited, matrix: 470bg, format: DV # Loading C:\Users\chris\Desktop\PROCESS FOLDER\Temp\2003\2003.12.24\2003.12.24_18.09.59.avi using LWLibavSource clip = core.lsmas.LWLibavSource(source="C:/Users/chris/Desktop/PROCESS FOLDER/Temp/2003/2003.12.24/2003.12.24_18.09.59.avi", format="YUV411P8", stream_index=0, cache=0, prefer_hw=0) frame = clip.get_frame(0) # setting color matrix to 470bg. clip = core.std.SetFrameProps(clip, _Matrix=vs.MATRIX_BT470_BG) # setting color transfer (vs.TRANSFER_BT601), if it is not set. if validate.transferIsInvalid(clip): clip = core.std.SetFrameProps(clip=clip, _Transfer=vs.TRANSFER_BT601) # setting color primaries info (to vs.PRIMARIES_BT470_BG), if it is not set. if validate.primariesIsInvalid(clip): clip = core.std.SetFrameProps(clip=clip, _Primaries=vs.PRIMARIES_BT470_BG) # setting color range to TV (limited) range. clip = core.std.SetFrameProps(clip=clip, _ColorRange=vs.RANGE_LIMITED) # making sure frame rate is set to 29.97fps clip = core.std.AssumeFPS(clip=clip, fpsnum=30000, fpsden=1001) # making sure the detected scan type is set (detected: bottom field first) clip = core.std.SetFrameProps(clip=clip, _FieldBased=vs.FIELD_BOTTOM)# bff clip = beforeDeinterlace(clip) # adjusting color space from YUV411P8 to YUV444P16 for vsQTGMC clip = core.resize.Bicubic(clip=clip, format=vs.YUV444P16, range_s="limited") # Deinterlacing using QTGMC clip = qtgmc.QTGMC(Input=clip, Preset="Very Slow", TFF=False)# new fps: 59.94 # Making sure content is preceived as frame based clip = core.std.SetFrameProps(clip=clip, _FieldBased=vs.FIELD_PROGRESSIVE)# progressive # denoising using Neo-FFT3D clip = core.neo_fft3d.FFT3D(clip=clip, beta=1.75) clip = sharpen.LSFmod(input=clip, strength=25, Spwr=3, SdmpHi=64, overshoot2=1, undershoot2=1, edgemode=2, edgemaskHQ=True) # adjusting output color from: YUV444P16 to YUV422P8 for FFV1Model clip = core.resize.Bicubic(clip=clip, format=vs.YUV422P8, range_s="limited", dither_type="none") # set output frame rate to 59.94fps (progressive) clip = core.std.AssumeFPS(clip=clip, fpsnum=60000, fpsden=1001) # output clip.set_output()