Hello how can I deinterlace this video encoded in progressive 30fps originally 25fps
+ Reply to Thread
Results 1 to 12 of 12
-
-
Decimate first, then deinterlace.
Code:LWLibavVideoSource("pv.mkv") AssumeTFF() TDecimate(Cycle=6, CycleR=1) QTGMC()
-
This is what you get if you apply QTGMC and then BasicVSR++,.... but applying BasicVSR++ doesn't really make sense on such resolutions unless you got a decent NVIDA graphics card. On my old Geforce GTX 1070ti, I get 0.1-0.2 fps, and the result seems a bit too smooth.
users currently on my ignore list: deadrats, Stears555, marcorocchini -
Not sure whether it's of any help, this is the Vapoursynth script I used:
Code:# Imports import os import sys import ctypes # Loading Support Files Dllref = ctypes.windll.LoadLibrary("i:/Hybrid/64bit/vsfilters/Support/libfftw3f-3.dll") import vapoursynth as vs # getting Vapoursynth core core = vs.core # Import scripts folder scriptPath = 'i:/Hybrid/64bit/vsscripts' sys.path.insert(0, os.path.abspath(scriptPath)) # Loading Plugins core.std.LoadPlugin(path="i:/Hybrid/64bit/vsfilters/GrainFilter/RemoveGrain/RemoveGrainVS.dll") core.std.LoadPlugin(path="i:/Hybrid/64bit/vsfilters/GrainFilter/AddGrain/AddGrain.dll") core.std.LoadPlugin(path="i:/Hybrid/64bit/vsfilters/DenoiseFilter/NEO_FFT3DFilter/neo-fft3d.dll") core.std.LoadPlugin(path="i:/Hybrid/64bit/vsfilters/DenoiseFilter/DFTTest/DFTTest.dll") core.std.LoadPlugin(path="i:/Hybrid/64bit/vsfilters/Support/EEDI3m.dll") core.std.LoadPlugin(path="i:/Hybrid/64bit/vsfilters/ResizeFilter/nnedi3/NNEDI3CL.dll") core.std.LoadPlugin(path="i:/Hybrid/64bit/vsfilters/Support/libmvtools.dll") core.std.LoadPlugin(path="i:/Hybrid/64bit/vsfilters/Support/temporalsoften.dll") core.std.LoadPlugin(path="i:/Hybrid/64bit/vsfilters/Support/scenechange.dll") core.std.LoadPlugin(path="i:/Hybrid/64bit/vsfilters/Support/fmtconv.dll") core.std.LoadPlugin(path="i:/Hybrid/64bit/vsfilters/MiscFilter/MiscFilters/MiscFilters.dll") core.std.LoadPlugin(path="i:/Hybrid/64bit/vsfilters/SourceFilter/LSmashSource/vslsmashsource.dll") # Import scripts import havsfunc # source: 'C:\Users\Selur\Desktop\pv.mkv' # current color space: YUV420P8, bit depth: 8, resolution: 1920x1080, fps: 30, color matrix: 709, yuv luminance scale: limited, scanorder: top field first # Loading C:\Users\Selur\Desktop\pv.mkv using LWLibavSource clip = core.lsmas.LWLibavSource(source="C:/Users/Selur/Desktop/pv.mkv", format="YUV420P8", cache=0, prefer_hw=0) # Setting color matrix to 709. clip = core.std.SetFrameProps(clip, _Matrix=1) clip = clip if not core.text.FrameProps(clip,'_Transfer') else core.std.SetFrameProps(clip, _Transfer=1) clip = clip if not core.text.FrameProps(clip,'_Primaries') else core.std.SetFrameProps(clip, _Primaries=1) # Setting color range to TV (limited) range. clip = core.std.SetFrameProp(clip=clip, prop="_ColorRange", intval=1) # making sure frame rate is set to 30 clip = core.std.AssumeFPS(clip=clip, fpsnum=30, fpsden=1) # setting field order to what QTGMC should assume (top field first) clip = core.std.SetFrameProp(clip=clip, prop="_FieldBased", intval=2) # Deinterlacing using QTGMC clip = havsfunc.QTGMC(Input=clip, Preset="Fast", TFF=True, opencl=True) # new fps: 30 # make sure content is preceived as frame based clip = core.std.SetFieldBased(clip, 0) clip = clip[::2] # adjusting color space from YUV420P8 to RGBS for vsBasicVSRPPFilter clip = core.resize.Bicubic(clip=clip, format=vs.RGBS, matrix_in_s="709", range_s="limited") # Quality enhancement using BasicVSR++ from vsbasicvsrpp import BasicVSRPP clip = BasicVSRPP(clip=clip, model=3, tile_x=480, tile_y=540, fp16=True) # adjusting output color from: RGBS to YUV420P8 for x264Model clip = core.resize.Bicubic(clip=clip, format=vs.YUV420P8, matrix_s="709", range_s="limited") # set output frame rate to 30.000fps clip = core.std.AssumeFPS(clip=clip, fpsnum=30, fpsden=1) # Output clip.set_output()
users currently on my ignore list: deadrats, Stears555, marcorocchini -
Another approach would be to apply MCTemporalDenoise(settings="very high) + mClean after QTGMC.
users currently on my ignore list: deadrats, Stears555, marcorocchini -
Yes, all the scripts I used for MCTemporalDenoise+mClean.mp4 are available for Avisynth:
MCTemporalDenoise: http://avisynth.nl/index.php/MCTemporalDenoise
mClean: https://forum.doom9.org/showthread.php?t=174804
QTGMC: http://avisynth.nl/index.php/QTGMC
so I see no reason why this can't be done with Avisynth.users currently on my ignore list: deadrats, Stears555, marcorocchini -
I used:
Code:clip = havsfunc.QTGMC(Input=clip, Preset="Fast", TFF=True, opencl=True) # new fps: 30 # make sure content is preceived as frame based clip = core.std.SetFieldBased(clip, 0) clip = clip[::2]
Code:AssumeTFF() QTGMC(Preset="Fast", ediThreads=2) SelectEven()
Cu Selurusers currently on my ignore list: deadrats, Stears555, marcorocchini
Similar Threads
-
Interlaced DV
By malling in forum Video ConversionReplies: 2Last Post: 4th Sep 2019, 16:45 -
How to keep interlaced footage interlaced converting from AVI to MP4?
By kodec in forum Video ConversionReplies: 23Last Post: 1st Jul 2019, 09:36 -
Easiest free way to convert 25fps interlaced to 50fps de-interlaced?
By Gibson's Squares in forum MacReplies: 2Last Post: 25th Jul 2017, 08:06 -
Capturing interlaced video as interlaced - Is it possible
By jvid in forum Capturing and VCRReplies: 5Last Post: 16th May 2017, 22:07 -
interlaced
By JAX75 in forum Video ConversionReplies: 20Last Post: 2nd May 2017, 14:02