Posts: 3
Threads: 1
Joined: Aug 2025
Hi,
My preview is not working, so I can't render my current script with VapourSynth. The script was working before. I made the mistake of installing VapourSynth and Python as standalone applications. I uninstalled both of them, then also uninstalled Hybrid and reinstalled the current Hybrid version (2025.07.27.1), but I still can't render.
If I disable deinterlacing and force the file to be progressive, the script works. Or if I deinterlace but turn off the lossless setting in deinterlacing and turn off the despot filter, then I can render.
Another issue that occurs is when I open the vsViewer, it always pops up a message: "Failed to open the file J:/tmp/tempPreviewVapoursynthFile08_10_39_097.vpy." I don't even have a J drive! I was able to get past this error by editing the vsviewer.config and setting auto_load_last_script=false, but that didn't help with the rendering.
I'm on Windows 10, using the latest Hybrid version.
Attached Files
HybridDebugOutput.txt.zip (Size: 58,6 KB / Downloads: 6)
Posts: 11.732
Threads: 63
Joined: May 2017
12.08.2025, 16:53
(This post was last modified: 12.08.2025, 16:55 by Selur .)
From the looks of it, you configure stepped resize 10!
(when adding additional filtering options to that, you are probably running out of vram or ram, or it will take ages,...)
That makes no sense when aiming for a resolution which basically is the same as the input.
=> try more sane settings
----
Dev versions are in the 'experimental'-folder of my GoogleDrive, which is linked on the download page.
Posts: 3
Threads: 1
Joined: Aug 2025
Actually i'm doubling the size, maybe forget to do so in this output. also tried all of the stepped resize settings, and 10 is rendering somehow faster than 8, i don't know why, but sure it is damn slow. but that is not the problem.
how can i bring back my preview and rendering? any idea?
Posts: 11.732
Threads: 63
Joined: May 2017
12.08.2025, 18:23
(This post was last modified: 12.08.2025, 18:32 by Selur .)
If you just double the resolution, you should not use stepped resizing at all.
Look at the code that is creates and what your settings are doing.
clip = core.std.AddBorders(clip=clip, left=1, right=2, top=0, bottom=0) # add borders to archive mod 4 (NNEDI3(CL)) - 680x564
# Step 1: current: 680x564, target: 754x622
# resizing using ZNEDI3
# current: 680x564 target: 754x622 -> pow: 2
clip = edi_rpow2.nnedi3_rpow2(clip=clip, rfactor=2, nsize=2, nns=4) # 1360x1128
clip = core.std.Crop(clip=clip, left=2, right=4, top=0, bottom=0) # removing borders (NNEDI3(CL)) - 1354x1128
# resizing 1354x1128 to 754x622
clip = core.fmtc.resample(clip=clip, w=754, h=622, kernel="spline64", interlaced=False, interlacedd=False)# before YUV444P8 after YUV444P16
# Step 2: current: 754x622, target: 838x674
# using lanczos resize instead of nnedi3 since width after cropping isn't mod4
# resizing 754x622 to 838x674
clip = core.fmtc.resample(clip=clip, w=838, h=674, kernel="spline64", interlaced=False, interlacedd=False)# before YUV444P16 after YUV444P16
# Step 3: current: 838x674, target: 926x730
# using lanczos resize instead of nnedi3 since width after cropping isn't mod4
# resizing 838x674 to 926x730
clip = core.fmtc.resample(clip=clip, w=926, h=730, kernel="spline64", interlaced=False, interlacedd=False)# before YUV444P16 after YUV444P16
# Step 4: current: 926x730, target: 1006x794
# using lanczos resize instead of nnedi3 since width after cropping isn't mod4
# resizing 926x730 to 1006x794
clip = core.fmtc.resample(clip=clip, w=1006, h=794, kernel="spline64", interlaced=False, interlacedd=False)# before YUV444P16 after YUV444P16
# Step 5: current: 1006x794, target: 1086x858
# using lanczos resize instead of nnedi3 since width after cropping isn't mod4
# resizing 1006x794 to 1086x858
clip = core.fmtc.resample(clip=clip, w=1086, h=858, kernel="spline64", interlaced=False, interlacedd=False)# before YUV444P16 after YUV444P16
# Step 6: current: 1086x858, target: 1166x922
# using lanczos resize instead of nnedi3 since width after cropping isn't mod4
# resizing 1086x858 to 1166x922
clip = core.fmtc.resample(clip=clip, w=1166, h=922, kernel="spline64", interlaced=False, interlacedd=False)# before YUV444P16 after YUV444P16
# Step 7: current: 1166x922, target: 1246x986
# using lanczos resize instead of nnedi3 since width after cropping isn't mod4
# resizing 1166x922 to 1246x986
clip = core.fmtc.resample(clip=clip, w=1246, h=986, kernel="spline64", interlaced=False, interlacedd=False)# before YUV444P16 after YUV444P16
# Step 8: current: 1246x986, target: 1326x1050
# using lanczos resize instead of nnedi3 since width after cropping isn't mod4
# resizing 1246x986 to 1326x1050
clip = core.fmtc.resample(clip=clip, w=1326, h=1050, kernel="spline64", interlaced=False, interlacedd=False)# before YUV444P16 after YUV444P16
# Step 9: current: 1326x1050, target: 1406x1114
# using lanczos resize instead of nnedi3 since width after cropping isn't mod4
# resizing 1326x1050 to 1406x1114
clip = core.fmtc.resample(clip=clip, w=1406, h=1114, kernel="spline64", interlaced=False, interlacedd=False)# before YUV444P16 after YUV444P16
# Step 10: current: 1406x1114, target: 1416x1080
# using lanczos resize instead of nnedi3 since width after cropping isn't mod4
# resizing 1406x1114 to 1416x1080
clip = core.fmtc.resample(clip=clip, w=1416, h=1080, kernel="spline64", interlaced=False, interlacedd=False)# before YUV444P16 after YUV444P16
So I would recommend:
a. clear the temp folder you are using
b. use sane settings
Cu Selur
----
Dev versions are in the 'experimental'-folder of my GoogleDrive, which is linked on the download page.
Posts: 3
Threads: 1
Joined: Aug 2025
Thanks Selur,
very eye opening what you shared!
i did clear the temp folder. but as you can see in the attached debug, problem still exist even with only deinterlacing on, no other filters or resizing applied.
Any ideas?
Attached Files
HybridDebugOutput.txt.zip (Size: 13,06 KB / Downloads: 5)
Posts: 11.732
Threads: 63
Joined: May 2017
13.08.2025, 05:13
(This post was last modified: 13.08.2025, 05:14 by Selur .)
The used script:
# 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/GrainFilter/RemoveGrain/RemoveGrainVS.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/DenoiseFilter/ZSmooth/zsmooth.dll")
core.std.LoadPlugin(path="C:/Program Files/Hybrid/64bit/vsfilters/SourceFilter/LSmashSource/LSMASHSource.dll")
# Import scripts
import qtgmc
import validate
# Source: 'D:\VIDEO CAPTURE\basketball - ncaa - ucla vs duke sample.avi'
# Current color space: YUV422P8, bit depth: 8, resolution: 720x576, frame rate: 25fps, scanorder: top field first, yuv luminance scale: limited, matrix: 470bg, format: Lagarith
# Loading D:\VIDEO CAPTURE\basketball - ncaa - ucla vs duke sample.avi using LWLibavSource
clip = core.lsmas.LWLibavSource(source="D:/VIDEO CAPTURE/basketball - ncaa - ucla vs duke sample.avi", format="YUV422P8", stream_index=0, cache=0, fpsnum=25, 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 25fps
clip = core.std.AssumeFPS(clip=clip, fpsnum=25, fpsden=1)
# making sure the detected scan type is set (detected: top field first)
clip = core.std.SetFrameProps(clip=clip, _FieldBased=vs.FIELD_TOP) # tff
# Deinterlacing using QTGMC
clip = qtgmc.QTGMC(Input=clip, Preset="Slower", InputType=0, TFF=True, TR2=2, SourceMatch=3, Lossless=2) # new fps: 25
# 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
# adjusting output color from: YUV422P8 to YUV422P10 for ProResModel
clip = core.resize.Bicubic(clip=clip, format=vs.YUV422P10, range_s="limited")
# set output frame rate to 25fps (progressive)
clip = core.std.AssumeFPS(clip=clip, fpsnum=25, fpsden=1)
# output
clip.set_output()
causes some error, which the Vapoursynth Preview normally should report. (unless it causes a general crash of the Vapoursynth environment)
Looking at the imports:
core.std.LoadPlugin(path="C:/Program Files/Hybrid/64bit/vsfilters/GrainFilter/RemoveGrain/RemoveGrainVS.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/DenoiseFilter/ZSmooth/zsmooth.dll")
core.std.LoadPlugin(path="C:/Program Files/Hybrid/64bit/vsfilters/SourceFilter/LSmashSource/LSMASHSource.dll")
a. Try using something like
https://www.dependencywalker.com/ to look at the dlls to know whether there is some dependency missing.
b. What CPU do you use?
My guess is that either zsmooth or libmvtools is the problem.
Quote: very eye opening what you shared!
The Vapoursynth Script View allows seeing the generated script, which might sometimes help to understand what is happening.
Cu Selur
----
Dev versions are in the 'experimental'-folder of my GoogleDrive, which is linked on the download page.