Posts: 3
Threads: 1
Joined: Jun 2026
Windows 10.0.19044 Build 19044
Hybrid 2026.03.21.1
I'm deinterlacing .AVI files to MP4 with upscaling to 1920x1080 at 29.97fps using QTGMC.
Shorter files (<10 minutes) work fine. If I use a long file (1:43:34) it runs for a while then crashes my computer. I think this also happens with several short files stacked up in the job queue.
Debug file attached.
Any clues?
James
Attached Files
HybridDebugOutput.zip (Size: 136,71 KB / Downloads: 3)
Posts: 13.030
Threads: 70
Joined: May 2017
Hmm,.. the debug output simply stops,...
Since the script:
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/MiscFilter/MiscFilters/MiscFilters.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/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/DenoiseFilter/ZSmooth/zsmooth.dll")
core.std.LoadPlugin(path="C:/Program Files/Hybrid/64bit/vsfilters/SourceFilter/LSmashSource/LSMASHSource.dll")
# Import scripts
import edi_rpow2
import denoise
import qtgmc
import validate
# Source: 'L:\Video Projects\Schley-May Family\VHS-01 - Clip 003.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 'L:\Video Projects\Schley-May Family\VHS-01 - Clip 003.aviÄ using LWLibavSource
clip = core.lsmas.LWLibavSource(source="L:/Video Projects/Schley-May Family/VHS-01 - Clip 003.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) # scan type: bottom field first
# adjusting color space from YUV411P8 to YUV444P16 for vsQTGMC
clip = core.resize.Bicubic(clip=clip, format=vs.YUV444P16, dither_type="error_diffusion")
# Deinterlacing using QTGMC
clip = qtgmc.QTGMC(Input=clip, Preset="Slower", InputType=0, TFF=False, TR2=0, Sharpness=0.1, SourceMatch=3, Lossless=2) # 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 = clip[::2] # selecting previously even frames, new fps: 29.97
# 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)
clip = core.std.Crop(clip, left=4, right=4, top=4, bottom=8) # cropping to 712x468
# denoising using MCTemporalDenoise
clip = denoise.MCTemporalDenoise(clip, settings="low", ncpu=1)
# resizing using NNEDI3CL
# current: 712x468 target: 1920x1440 -> pow: 4
clip = edi_rpow2.nnedi3cl_rpow2(clip, rfactor=4, nsize=3, nns=4) # 2848x1872
# resizing 2848x1872 to 1920x1440
clip = core.fmtc.resample(clip, w=1920, h=1440, kernel="spline64", interlaced=False, interlacedd=False) # before YUV444P16 after YUV444P16
# adjusting output color from YUV444P16 to YUV420P8 for x264Model
clip = core.resize.Bicubic(clip=clip, format=vs.YUV420P8)
# set output frame rate to 29.97fps (progressive)
clip = core.std.AssumeFPS(clip=clip, fpsnum=30000, fpsden=1001)
# output
clip.set_output()
# script was created by Hybrid 2026.03.21.
looks fine and the encoding call:
"C:\Program Files\Hybrid\64bit\Vapoursynth\vspipe.exe" "C:\Users\james\AppData\Local\Temp\encodingTempSynthSkript_2026-06-25@11_05_07_5810_0.vpy" - --outputindex 0 -c y4m |"C:\Program Files\Hybrid\64bit\x264.exe" --preset fast --pass 1 --bitrate 14000 --profile high --level 5.1 --ref 1 --min-keyint 25 --direct auto --b-adapt 0 --rc-lookahead 40 --sync-lookahead 36 --qcomp 0.50 --qpmax 51 --partitions none --no-8x8dct --me dia --subme 2 --trellis 0 --aq-mode 0 --sar 1:1 --non-deterministic --range tv --stats "C:\Users\james\AppData\Local\Temp\VHS-01 - Clip 003_1_2026-06-25@11_05_07_5810_05.stats" --demuxer y4m --input-range tv --fps 30000/1001 --output-depth 8 --output NUL -
starts fine and runs for a while (~10min), it's probably not a Vapoursynth issue or similar.
The typical reason for system crashes, are:
(from most likely to not so likely)
over- or underclocked cpu, ram, vram, gpu (when I over-/underclock stuff, one of my tests is to do a few days of encoding, to be sure the system is stable)
temperature issues that cause issues with cpu, ram, vram, gpu
some other tool interfering and causing memory issues
some defect drivers
some defect hardware (does a stress test that stresses memory, cpu and gpu at the same time run fine? - maybe run different stress tests in parallel)
some really exotic defect source file that causes one of the Vapoursynth filters to eat-up all the memory and crashing
=> my guess would be a heat issue
Cu Selur
----
Dev versions are in the 'experimental'-folder of my GoogleDrive, which is linked on the download page.
Offline between (including) 29th of June and 5th of July => RockHarz Festival
Posts: 3
Threads: 1
Joined: Jun 2026
Thanks. I've just installed Core Temp to look for a heat issue. However, the job (any file) is now stalling at the step where video processing starts. It didn't do that before. I get this in the debug output file:
2026.06.27 - 16:57:31_Windows 10 Version 21H2 (64bit)_2026.03.21.1 - level 9: Main call started,..
2026.06.27 - 16:57:31_Windows 10 Version 21H2 (64bit)_2026.03.21.1 - level 9: Setting m_startingJobs(2) to FALSE
Not sure what to make of it.
Posts: 13.030
Threads: 70
Joined: May 2017
Close Hybrid, clear temp folder, restart Hybrid, reset the job, try again.
----
Dev versions are in the 'experimental'-folder of my GoogleDrive, which is linked on the download page.
Offline between (including) 29th of June and 5th of July => RockHarz Festival
Posts: 3
Threads: 1
Joined: Jun 2026
Did those things. Still stalls at the same place SOMETIMES with shorter clips, and ALWAYS with a long clip 1:43:00.