Selur's Little Message Board

Full Version: Deinterlace video (Please help!!!)
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Hello selur , Please how can I deinterlace this videos properly?


https://drive.google.com/file/d/1KCEtFVL...sp=sharing


BestPlease, read the 'Infos needed to fix&reproduce bugs,..'-sticky before you post about a problem.
That clip is progressive avc, it's not interlaced.
Someone encoded interlaced contend progressively and also resized the clip.
What you can try is:
1. enable Resizing
2. overwrite the scan type to 'top field first'
3. enable 'Lower res. before deinterlace' set width to the current width and lower the height until you find the right height.
You won't get a proper output, but you should be able to get something better.
Try something like:
Code:
# Imports import vapoursynth as vs # getting Vapoursynth core import ctypes import sys import os core = vs.core # Import scripts folder scriptPath = 'F:/Hybrid/64bit/vsscripts' sys.path.insert(0, os.path.abspath(scriptPath)) # Loading Support Files Dllref = ctypes.windll.LoadLibrary("F:/Hybrid/64bit/vsfilters/Support/libfftw3f-3.dll") # loading plugins core.std.LoadPlugin(path="F:/Hybrid/64bit/vsfilters/DenoiseFilter/FFT3DFilter/fft3dfilter.dll") core.std.LoadPlugin(path="F:/Hybrid/64bit/vsfilters/DenoiseFilter/CTMF/CTMF.dll") core.std.LoadPlugin(path="F:/Hybrid/64bit/vsfilters/DenoiseFilter/Cnr2/libcnr2.dll") core.std.LoadPlugin(path="F:/Hybrid/64bit/vsfilters/SharpenFilter/MSmooth/libmsmoosh.dll") core.std.LoadPlugin(path="F:/Hybrid/64bit/vsfilters/Support/temporalsoften.dll") core.std.LoadPlugin(path="F:/Hybrid/64bit/vsfilters/FrameFilter/ReduceFlicker/ReduceFlicker.dll") core.std.LoadPlugin(path="F:/Hybrid/64bit/vsfilters/DenoiseFilter/ZSmooth/zsmooth.dll") core.std.LoadPlugin(path="F:/Hybrid/64bit/vsfilters/GrainFilter/RemoveGrain/RemoveGrainVS.dll") core.std.LoadPlugin(path="F:/Hybrid/64bit/vsfilters/GrainFilter/AddGrain/AddGrain.dll") core.std.LoadPlugin(path="F:/Hybrid/64bit/vsfilters/DenoiseFilter/DFTTest/DFTTest.dll") core.std.LoadPlugin(path="F:/Hybrid/64bit/vsfilters/DenoiseFilter/NEO_FFT3DFilter/neo-fft3d.dll") core.std.LoadPlugin(path="F:/Hybrid/64bit/vsfilters/Support/EEDI3m_opencl.dll")# vsQTGMC core.std.LoadPlugin(path="F:/Hybrid/64bit/vsfilters/ResizeFilter/nnedi3/NNEDI3CL.dll") core.std.LoadPlugin(path="F:/Hybrid/64bit/vsfilters/Support/libmvtools.dll") core.std.LoadPlugin(path="F:/Hybrid/64bit/vsfilters/Support/scenechange.dll") core.std.LoadPlugin(path="F:/Hybrid/64bit/vsfilters/Support/fmtconv.dll") core.std.LoadPlugin(path="F:/Hybrid/64bit/vsfilters/MiscFilter/MiscFilters/MiscFilters.dll") core.std.LoadPlugin(path="F:/Hybrid/64bit/vsfilters/DeinterlaceFilter/Bwdif/Bwdif.dll") core.std.LoadPlugin(path="F:/Hybrid/64bit/vsfilters/Support/libdescale.dll") core.std.LoadPlugin(path="F:/Hybrid/64bit/vsfilters/SourceFilter/DGDecNV/DGDecodeNV.dll") # Import scripts import nnedi3_resample import mvsfunc import smdegrain import fromDoom9 import SpotLess import havsfunc import validate # Source: 'C:\Users\Selur\Desktop\footage.mp4' # Current color space: YUV420P8, bit depth: 8, resolution: 552x468, frame rate: 29.97fps, scanorder: top field first, yuv luminance scale: limited, matrix: 470bg, format: AVC # Loading C:\Users\Selur\Desktop\footage.mp4 using DGSource clip = core.dgdecodenv.DGSource("J:/tmp/mp4_94a958a7567bb50429c39a65e5d146fd_853323747.dgi",fieldop=0)# 29.97 fps, scanorder: top field first 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: top field first) clip = core.std.SetFrameProps(clip=clip, _FieldBased=vs.FIELD_TOP) # tff # adjusting resolution before deinterlacing clip = core.descale.Debilinear(src=clip, width=552, height=360) # Deinterlacing using QTGMC clip = havsfunc.QTGMC(Input=clip, Preset="Fast", TFF=True, opencl=True) # new fps: 29.97 # Making sure content is preceived as frame based clip = core.std.SetFrameProps(clip=clip, _FieldBased=vs.FIELD_PROGRESSIVE) # progressive clip = clip[::2] # selecting previously even frames # Spot removal using SpotLess clip = SpotLess.SpotLess(clip=clip, radT=3, pel=1, smoother="zsmooth") # removing flickering using ReduceFlicker clip = core.rdfl.ReduceFlicker(clip=clip, strength=3, aggressive=1) clip = core.std.AddBorders(clip=clip, left=4, right=4, top=4, bottom=4) # add borders to archive mod 16 (vsSDeflicker) - 560x368 # removing flickering using Small Deflicker clip = fromDoom9.Small_Deflicker(clip=clip, preset=3, cnr=True) clip = core.std.Crop(clip=clip, left=4, right=4, top=4, bottom=4) # removing borders (vsSDeflicker) - 552x360 # removing grain using SMDegrain clip = smdegrain.SMDegrain(input=clip, interlaced=False, dct=1, opencl=True, device=-1) # denoising using FFT3DFilter clip = core.fft3dfilter.FFT3DFilter(clip=clip) # Resizing using 10 - bicubic spline clip = core.fmtc.resample(clip=clip, kernel="spline16", w=552, h=468, interlaced=False, interlacedd=False) # resolution 552x468 before YUV420P8 after YUV420P16 # adjusting output color from: YUV420P16 to YUV420P10 for NVEncModel clip = core.resize.Bicubic(clip=clip, format=vs.YUV420P10, range_s="limited", dither_type="error_diffusion") # set output frame rate to 29.97fps (progressive) clip = core.std.AssumeFPS(clip=clip, fpsnum=30000, fpsden=1001) # output clip.set_output()

Cu Selur
many thanks Mr selur!