Posts: 7
Threads: 1
Joined: Apr 2026
[img] ![[Image: 03598.png]](https://i.ibb.co/Cp6kYN5N/03598.png) [/img]
Backing up up my Simpsons dvd collection. I did tivtc with qtgmc fast, VInverse2, KNLMeansCL, YAHR, Santiag followed by a NNEDi3 resize to convert to square pixels at 640x480. The result is great except for about 100 frames around the 2:30 mark. It seems to be imbedded in the source as it occurs even when i play the untouched vob ripped from the disc. Any idea's of how to fix this? Can i just fix the 100 or so problem frames without messing with the rest of the episode?
Posts: 12.661
Threads: 70
Joined: May 2017
Simpsons, Futurama, Family Guy and some other DVD collections are known for kind of messed up authored content.
You can't set different TIVTC setting inside Hybrid for different sections.
You could always choose to manually replace single frames with interpolations.
Tuning the TIVTC setting might also help.
Would need a short (unporcessed) sample of the problematic section to give direct advice.
Cu Selur
Ps.: will move this to the 'Small Talk'-section.
----
Dev versions are in the 'experimental'-folder of my GoogleDrive, which is linked on the download page.
Posts: 7
Threads: 1
Joined: Apr 2026
ok, this script is a miss, i dont unerstand obviously, my crop,resize, color space conversionia set to last step in filter order, wtf is it converting colot space 6 times for nothings?
# 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/ResizeFilter/nnedi3/NNEDI3CL.dll")
core.std.LoadPlugin(path="C:/Program Files/Hybrid/64bit/vsfilters/Support/DCTFilter.dll")
core.std.LoadPlugin(path="C:/Program Files/Hybrid/64bit/vsfilters/DeblockFilter/Deblock/Deblock.dll")
core.std.LoadPlugin(path="C:/Program Files/Hybrid/64bit/vsfilters/DeinterlaceFilter/TIVTC/libtivtc.dll")
core.std.LoadPlugin(path="C:/Program Files/Hybrid/64bit/vsfilters/MiscFilter/MiscFilters/MiscFilters.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") # DeinterlaceFilter-Selector
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/Support/akarin.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/DerainbowFilter/BiFrost/libbifrost.dll")
core.std.LoadPlugin(path="C:/Program Files/Hybrid/64bit/vsfilters/DerainbowFilter/DeCross/libdecross.dll")
core.std.LoadPlugin(path="C:/Program Files/Hybrid/64bit/vsfilters/Support/vszip.dll")
core.std.LoadPlugin(path="C:/Program Files/Hybrid/64bit/vsfilters/DeinterlaceFilter/TDeintMod/TDeintMod.dll")
core.std.LoadPlugin(path="C:/Program Files/Hybrid/64bit/vsfilters/SourceFilter/LSmashSource/LSMASHSource.dll")
# defining beforeDeCross-function - START
def beforeDeCross(clip):
clip = core.deblock.Deblock(clip, quant=25)
clip = core.std.SetFrameProps(clip, _FieldBased=1)
return [clip]
# defining beforeDeCross-function - END
# Import scripts
import deblock
import dehalo
import antiAliasing
import denoise
import qtgmc
import validate
# Source: 'D:\Season 2 disk 1\A1_t00.mkv'
# Current color space: YUV420P8, bit depth: 8, resolution: 720x480, frame rate: 29.97fps, scanorder: top field first, yuv luminance scale: limited, matrix: 470bg, format: mpeg-2
# Loading 'D:\Season 2 disk 1\A1_t00.mkvÄ using LWLibavSource
clip = core.lsmas.LWLibavSource(source="D:/Season 2 disk 1/A1_t00.mkv", format="YUV420P8", 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: top field first)
clip = core.std.SetFrameProps(clip=clip, _FieldBased=vs.FIELD_TOP) # scan type: top field first
# converting interlaced to full-height progressive for filtering (vsCheckmate) (using: TDeint())
clip = core.tdm.TDeintMod(clip=clip, order=1, mode=1) # new fps: 59.94
# Making sure content is preceived as frame based
clip = core.std.SetFrameProps(clip=clip, _FieldBased=vs.FIELD_PROGRESSIVE) # scan type: progressive
clip = core.vszip.Checkmate(clip, thr=5, tthr2=3)
# converting full-height progressive to interlaced (top field first)
clip = core.std.SelectEvery(clip=clip, cycle=2, offsets=[0])
clip = core.std.SetFrameProps(clip=clip, _FieldBased=vs.FIELD_TOP) # scan type: top field first
[clip] = beforeDeCross(clip)
# clip current meta; color space: YUV420P8, bit depth: 8, resolution: 720x480, fps: 29.97, color matrix: 470bg, yuv luminance scale: limited, scanorder: top field first, full height: true
# rainbow removal using DeCross
clip = core.decross.DeCross(clip, thresholdy=25)
# rainbow removal using BiFrost
clip = core.bifrost.Bifrost(clip, luma_thresh=2.00, interlaced=True)
clip2clip = clip
clip2clip = qtgmc.QTGMC(Input=clip2clip, Preset="fast", TFF=False, FPSDivisor=2)
# Deinterlacing using TIVTC
clip = core.tivtc.TFM(clip, metric=1, clip2=clip2clip)
clip = core.tivtc.TDecimate(clip, mode=1) # new fps: 23.976
# Making sure content is preceived as frame based
clip = core.std.SetFrameProps(clip=clip, _FieldBased=vs.FIELD_PROGRESSIVE) # scan type: progressive
# denoising using MCTemporalDenoise
clip = denoise.MCTemporalDenoise(clip, settings="low", thSAD=200, thSAD2=300, thSCD1=300, thSCD2=90, truemotion=False, MVglobal=True, pel=2, pelsearch=4, search=5, searchparam=4, MVsharp=0, DCT=0, ncpu=1)
# Anti Aliasing using DAAMod
clip = antiAliasing.daamod(clip, nns=3, qual=2, pscrn=1, rep=6, opencl=True, device=0)
# applying dehalo using DeHalo_alpha
clip = dehalo.DeHalo_alpha(clip, rx=1.25, ry=1.25)
clip = core.std.Crop(clip, left=8, right=8, top=4, bottom=4) # cropping to 704x472
# Resizing using fmtconv - spline36
clip = core.fmtc.resample(clip, kernel="spline36", w=640, h=430, interlaced=False, interlacedd=False) # resolution 640x430 before YUV420P8 after YUV420P16
# applying deblocking using DeBlock QED
clip = deblock.Deblock_QED(clip)
# adjusting output color from YUV420P16 to YUV444P16 for PNGModel
clip = core.resize.Bicubic(clip=clip, format=vs.YUV444P16)
# set output frame rate to 23.976fps (progressive)
clip = core.std.AssumeFPS(clip=clip, fpsnum=24000, fpsden=1001)
# output
clip.set_output()
# script was created by Hybrid 2026.03.21.1
also please dumb down you anser/solutions to gui specific settings, im not using a gui to code
Posts: 12.661
Threads: 70
Joined: May 2017
03.04.2026, 19:22
(This post was last modified: 03.04.2026, 19:24 by Selur.)
Strange script.
No, clue why the custom section is there, deblocking before deinterlacing seems wrong.
Also, you can change the order of filters in Hybrid (Filtering->Vapoursynth->Misc->Filter Order/Queue) and deblock does come with Hybrid.
Quote:, wtf is it converting colot space 6 times for nothings?
I see only two color space conversions, one by fmtconv (during the resizing) and one for the PNG output.
Cu Selur
Ps.: like I wrote, for a suggestion I would need an unprocessed sample of the source. (i.e. use mkvtoolnix to split the source mkv)
----
Dev versions are in the 'experimental'-folder of my GoogleDrive, which is linked on the download page.
Posts: 7
Threads: 1
Joined: Apr 2026
how can i post a small unprocessed clip when all the sites i can link to here (daily motion, vimeo, facbook etc) reencode uploaded video? Also my new script
# Source: 'D:\Season 2 disk 1\A1_t00.mkv'
# Current color space: YUV420P8, bit depth: 8, resolution: 720x480, frame rate: 29.97fps, scanorder: top field first, yuv luminance scale: limited, matrix: 470bg, format: mpeg-2
# Loading 'D:\Season 2 disk 1\A1_t00.mkvÄ using LWLibavSource
clip = core.lsmas.LWLibavSource(source="D:/Season 2 disk 1/A1_t00.mkv", format="YUV420P8", 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: top field first)
clip = core.std.SetFrameProps(clip=clip, _FieldBased=vs.FIELD_TOP) # scan type: top field first
# rainbow removal using DeCross
clip = core.decross.DeCross(clip, thresholdy=25)
# rainbow removal using BiFrost
clip = core.bifrost.Bifrost(clip, luma_thresh=2.00, conservative_mask=True, interlaced=True)
# Deinterlacing using TIVTC
clip = core.tivtc.TFM(clip)
clip = core.tivtc.TDecimate(clip, mode=1) # new fps: 23.976
# Making sure content is preceived as frame based
clip = core.std.SetFrameProps(clip=clip, _FieldBased=vs.FIELD_PROGRESSIVE) # scan type: progressive
# denoising using MCTemporalDenoise
clip = denoise.MCTemporalDenoise(clip, settings="low", thSAD=200, thSAD2=300, thSCD1=300, thSCD2=90, truemotion=False, MVglobal=True, pel=1, pelsearch=4, search=5, searchparam=4, MVsharp=0, DCT=0, ncpu=1)
# applying deblocking using DeBlock QED
clip = deblock.Deblock_QED(clip)
# applying dehalo using DeHalo_alpha
clip = dehalo.DeHalo_alpha(clip, rx=1.50, ry=1.50, darkstr=0.80)
# Anti Aliasing using DAAMod
clip = antiAliasing.daamod(clip, nns=3, pscrn=1, rep=6, opencl=True, device=0)
clip = core.std.Crop(clip, left=8, right=8, top=4, bottom=4) # cropping to 704x472
# Resizing using fmtconv - spline64
clip = core.fmtc.resample(clip, kernel="spline64", w=640, h=480, interlaced=False, interlacedd=False) # resolution 640x480 before YUV420P8 after YUV420P16
# ColorMatrix: adjusting color matrix from 470bg to 709
# adjusting luma range to 'limited' due to post clipping
clip = core.resize.Bicubic(clip, matrix_in_s="470bg", matrix_s="709", range_in=0, range=0)
# adjusting output color from YUV420P16 to YUV420P8 for UTVideoModel
clip = core.resize.Bicubic(clip=clip, format=vs.YUV420P8)
# set output frame rate to 23.976fps (progressive)
clip = core.std.AssumeFPS(clip=clip, fpsnum=24000, fpsden=1001)
# output
clip.set_output()
# script was created by Hybrid 2026.03.21.1
Posts: 12.661
Threads: 70
Joined: May 2017
You could use GoogleDrive, MediaFire, Dropbox, file.io, wormhole, ... There are tons of was.
Cu Selur
----
Dev versions are in the 'experimental'-folder of my GoogleDrive, which is linked on the download page.
Posts: 7
Threads: 1
Joined: Apr 2026
https://drive.google.com/file/d/176xoM4a...sp=sharing
ALso my reworked script,
# Source: 'D:\Season 2 disk 1\A1_t00.mkv'
# Current color space: YUV420P8, bit depth: 8, resolution: 720x480, frame rate: 29.97fps, scanorder: top field first, yuv luminance scale: limited, matrix: 470bg, format: mpeg-2
# Loading 'D:\Season 2 disk 1\A1_t00.mkvÄ using LWLibavSource
clip = core.lsmas.LWLibavSource(source="D:/Season 2 disk 1/A1_t00.mkv", format="YUV420P8", 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: top field first)
clip = core.std.SetFrameProps(clip=clip, _FieldBased=vs.FIELD_TOP) # scan type: top field first
# rainbow removal using DeCross
clip = core.decross.DeCross(clip, thresholdy=25)
# rainbow removal using BiFrost
clip = core.bifrost.Bifrost(clip, luma_thresh=2.00, conservative_mask=True, interlaced=True)
# Deinterlacing using TIVTC
clip = core.tivtc.TFM(clip)
clip = core.tivtc.TDecimate(clip, mode=1) # new fps: 23.976
# Making sure content is preceived as frame based
clip = core.std.SetFrameProps(clip=clip, _FieldBased=vs.FIELD_PROGRESSIVE) # scan type: progressive
# denoising using MCTemporalDenoise
clip = denoise.MCTemporalDenoise(clip, settings="low", thSAD=200, thSAD2=300, thSCD1=300, thSCD2=90, truemotion=False, MVglobal=True, pel=1, pelsearch=4, search=5, searchparam=4, MVsharp=0, DCT=0, ncpu=1)
# applying deblocking using DeBlock QED
clip = deblock.Deblock_QED(clip)
# applying dehalo using DeHalo_alpha
clip = dehalo.DeHalo_alpha(clip, rx=1.50, ry=1.50, darkstr=0.80)
# Anti Aliasing using DAAMod
clip = antiAliasing.daamod(clip, nns=3, pscrn=1, rep=6, opencl=True, device=0)
clip = core.std.Crop(clip, left=8, right=8, top=4, bottom=4) # cropping to 704x472
# Resizing using fmtconv - spline64
clip = core.fmtc.resample(clip, kernel="spline64", w=640, h=480, interlaced=False, interlacedd=False) # resolution 640x480 before YUV420P8 after YUV420P16
# ColorMatrix: adjusting color matrix from 470bg to 709
# adjusting luma range to 'limited' due to post clipping
clip = core.resize.Bicubic(clip, matrix_in_s="470bg", matrix_s="709", range_in=0, range=0)
# adjusting output color from YUV420P16 to YUV420P8 for UTVideoModel
clip = core.resize.Bicubic(clip=clip, format=vs.YUV420P8)
# set output frame rate to 23.976fps (progressive)
clip = core.std.AssumeFPS(clip=clip, fpsnum=24000, fpsden=1001)
# output
clip.set_output()
# script was created by Hybrid 2026.03.21.1
Posts: 12.661
Threads: 70
Joined: May 2017
06.04.2026, 06:01
(This post was last modified: 06.04.2026, 06:02 by Selur.)
Can't access the clip.(requires authentification)
Please use tags.
Cu Selur
----
Dev versions are in the 'experimental'-folder of my GoogleDrive, which is linked on the download page.
Posts: 7
Threads: 1
Joined: Apr 2026
https://drive.google.com/file/d/1gMzWnJ-BhUUDPfIz9NRzS6TBMt2qqcjI/view?usp=sharing
is this what you means? lol idk
Posts: 12.661
Threads: 70
Joined: May 2017
still requires authentification,..
----
Dev versions are in the 'experimental'-folder of my GoogleDrive, which is linked on the download page.
|