Welcome to Doom9's Forum, THE in-place to be for everyone interested in DVD conversion. Before you start posting please read the forum rules. By posting to this forum you agree to abide by the rules. Domains: forum.doom9.org / forum.doom9.net / forum.doom9.se |
|
|
#1 | Link |
|
Registered User
Join Date: Aug 2025
Posts: 6
|
QTGMC shenanigans
Hey everyone,
I'm completely stumped by a persistent QTGMC error and I've exhausted every troubleshooting step I can think of. I'm hoping someone here might have an idea what's going on. My goal is to deinterlace a 1080i TS file, do some filtering, and then use AutoOverlay to combine it with a filtered 720p MKV. The problem is that the script fails immediately with an "Invalid arguments to function 'QTGMC'" error. The most confusing part is that a preview generated in Hybrid, using the exact same plugins and settings, works perfectly fine. The error only happens when I try to run the .avs script externally through my system-wide AviSynth+ installation (latest version) and VirtualDub2 (64-bit). Here's everything I've tried so far: - The error happens even with the simplest possible call. This line fails with the same error: `main = temp.QTGMC(Preset="Placebo")` - I've confirmed I'm using a 64-bit host (VirtualDub2) with the 64-bit plugins from the Hybrid folder. - I've installed the complete Visual C++ Redistributable Runtimes (All-in-One) and restarted. - I tried forcing the input colorspace immediately after loading the source, using `ConvertToYV12(interlaced=true)`. - I even replaced Hybrid's `QTGMC.avsi` with the latest official version from avisynth.nl. Nothing has changed the result. Here is the full script I'm trying to run. Any ideas would be greatly appreciated. Code:
LoadPlugin("C:\Program Files\Hybrid\64bit\Avisynth\avisynthPlugins\LoadDll.dll")
LoadPlugin("C:\Program Files\Hybrid\64bit\Avisynth\avisynthPlugins\flash3kyuu_deband.dll")
LoadPlugin("C:\Program Files\Hybrid\64bit\Avisynth\avisynthPlugins\aWarpSharpMT.dll")
LoadPlugin("C:\Program Files\Hybrid\64bit\Avisynth\avisynthPlugins\VariableBlur.dll")
LoadPlugin("C:\Program Files\Hybrid\64bit\Avisynth\avisynthPlugins\Deblock.dll")
LoadPlugin("C:\Program Files\Hybrid\64bit\Avisynth\avisynthPlugins\DctFilter.dll")
LoadCPlugin("C:\Program Files\Hybrid\64bit\Avisynth\avisynthPlugins\yadif.dll")
LoadPlugin("C:\Program Files\Hybrid\64bit\Avisynth\avisynthPlugins\TDeint.dll")
LoadPlugin("C:\Program Files\Hybrid\64bit\Avisynth\avisynthPlugins\FFT3DFilter.dll")
LoadPlugin("C:\Program Files\Hybrid\64bit\Avisynth\avisynthPlugins\eedi3.dll")
LoadPlugin("C:\Program Files\Hybrid\64bit\Avisynth\avisynthPlugins\EEDI2.dll")
LoadDLL("C:\Program Files\Hybrid\64bit\Avisynth\avisynthPlugins\libfftw3f-3.dll")
LoadPlugin("C:\Program Files\Hybrid\64bit\Avisynth\avisynthPlugins\D2VSource.dll")
LoadPlugin("C:\Program Files\Hybrid\64bit\Avisynth\avisynthPlugins\TIVTC.dll")
LoadPlugin("C:\Program Files\Hybrid\64bit\Avisynth\avisynthPlugins\dfttest.dll")
LoadPlugin("C:\Program Files\Hybrid\64bit\Avisynth\avisynthPlugins\AddGrainC.dll")
LoadPlugin("C:\Program Files\Hybrid\64bit\Avisynth\avisynthPlugins\nnedi3.dll")
LoadPlugin("C:\Program Files\Hybrid\64bit\Avisynth\avisynthPlugins\neo-fft3d.dll")
LoadPlugin("C:\Program Files\Hybrid\64bit\Avisynth\avisynthPlugins\mvtools2.dll")
LoadPlugin("C:\Program Files\Hybrid\64bit\Avisynth\avisynthPlugins\masktools2.dll")
LoadPlugin("C:\Program Files\Hybrid\64bit\Avisynth\avisynthPlugins\RgTools.dll")
LoadPlugin("C:\Program Files (x86)\AviSynth+\plugins64+\AvsFilterNet.dll")
LoadNetPlugin("C:\Program Files (x86)\AviSynth+\plugins64+\AutoOverlay_netautoload.dll")
Import("C:\Program Files\Hybrid\64bit\Avisynth\avisynthPlugins\mtmodes.avsi")
Import("C:\Program Files\Hybrid\64bit\Avisynth\avisynthPlugins\BalanceBorders.avsi")
Import("C:\Program Files\Hybrid\64bit\Avisynth\avisynthPlugins\GrainFactory3mod.avsi")
Import("C:\Program Files\Hybrid\64bit\Avisynth\avisynthPlugins\LSFmod.avsi")
Import("C:\Program Files\Hybrid\64bit\Avisynth\avisynthPlugins\ExTools.avsi")
Import("C:\Program Files\Hybrid\64bit\Avisynth\avisynthPlugins\Deblock_QED_MT2.avsi")
Import("C:\Program Files\Hybrid\64bit\Avisynth\avisynthPlugins\SMDegrain.avsi")
Import("C:\Program Files\Hybrid\64bit\Avisynth\avisynthPlugins\Zs_RF_Shared.avsi")
Import("C:\Program Files (x86)\AviSynth+\plugins64+\QTGMC.avsi")
1080i = LWLibavVideoSource("C:\Users\jopro\Downloads\bt projekte\vid_1029837442356038.ts")
720p = LWLibavVideoSource("C:\Users\jopro\Downloads\bt projekte\Spring.Subway.2002.720p.HDTV.x264-NGB.mkv")
mask = ImageSource("C:\Users\jopro\Downloads\bt projekte\ts_logo_mask.bmp")
#colorspace conv
temp = 1080i.ConvertToYV12(interlaced=true).Crop(0,2,0,0).AssumeTFF()
#1080i sauce
main = temp.QTGMC(Preset="Placebo", InputType=0, TR2=3, SourceMatch=3, Lossless=2, MatchPreset="Slower", MatchPreset2="Slower", EZKeepGrain=4.00, NoisePreset="Slower", ediThreads=2).SelectEven()
ref = main.QTGMC(preset="Very Slow", ediThreads=2, FPSDivisor=2, PrevGlobals="Replace")
filtered_1080i = main.TFM(mode=5,slow=2,clip2=ref)
\ .BalanceBorders(4,4,4,4)
\ .Deblock_QED(quant1=55,quant2=45,aOff1=5,bOff1=5,aOff2=5,bOff2=5,uv=1)
\ .LSFmod()
\ .Spline36Resize(1280,720)
#720p source
OverlayEngine.
filtered_720p = 720p.ConvertToYV12()
\ .InpaintDelogo(Loc="64,40,202,104", "C:\Users\jopro\Downloads\bt projekte\logo_mask.bmp", Automask=0, Mode="Both", Analyze=1, IntSpd=4, InterpM=-1, iTune=-5)
\ .Deblock_QED(quant1=55,quant2=45,aOff1=5,bOff1=5,aOff2=5,bOff2=5,uv=1)
\ .LSFmod()
#merge
engine = OverlayEngine(filtered_1080i, filtered_720p)
engine.OverlayRender(filtered_1080i, filtered_720p, preset="FullFrame", overlayMask=mask)
Prefetch(3)
return last
|
|
|
|
|
|
#3 | Link |
|
Registered User
Join Date: Aug 2025
Posts: 6
|
Yep. QTGMC inside of Hybrid works which makes this all the more puzzling. I generated the lines for both qtgmc and tfm in hybrid so the syntax should be right. I also tried calling the qtgmc plugin in the hybrid installation folder in the script in virtualdub with the same result.
|
|
|
|
|
|
#4 | Link | |
|
.
![]() Join Date: Oct 2001
Location: Germany
Posts: 7,853
|
Quote:
Since you didn't share what versions of QTGMC you are using, you might want to look at the script code yourself. |
|
|
|
|
|
|
#5 | Link | |
|
Registered User
Join Date: Aug 2025
Posts: 6
|
Quote:
I don't think that the issue is that there have been any changes to QTGMC, because when I call QTGMC inside the Hybrid installation folder, I still get the same error. |
|
|
|
|
|
|
#8 | Link |
|
.
![]() Join Date: Oct 2001
Location: Germany
Posts: 7,853
|
Still, to avoid collisions with automatically loaded dlls, I would recommend to keep 'ClearAutoloadDirs()'.
Also in your case: Code:
ref = main.QTGMC(preset="Very Slow", ediThreads=2, FPSDivisor=2, PrevGlobals="Reuse") But maybe first start with a simple script like: Code:
ClearAutoloadDirs()
SetFilterMTMode("DEFAULT_MT_MODE", MT_MULTI_INSTANCE)
LoadPlugin("F:\Hybrid\64bit\Avisynth\avisynthPlugins\LSMASHSource.dll")
LoadPlugin("F:\Hybrid\64bit\Avisynth\avisynthPlugins\nnedi3.dll")
LoadPlugin("F:\Hybrid\64bit\Avisynth\avisynthPlugins\mvtools2.dll")
LoadPlugin("F:\Hybrid\64bit\Avisynth\avisynthPlugins\masktools2.dll")
LoadPlugin("F:\Hybrid\64bit\Avisynth\avisynthPlugins\RgTools.dll")
Import("F:\Hybrid\64bit\Avisynth\avisynthPlugins\mtmodes.avsi")
Import("F:\Hybrid\64bit\Avisynth\avisynthPlugins\Zs_RF_Shared.avsi")
Import("F:\Hybrid\64bit\Avisynth\avisynthPlugins\QTGMC.avsi")
LWLibavVideoSource("C:\Users\jopro\Downloads\bt projekte\vid_1029837442356038.ts")
AssumeBFF()
QTGMC(Preset="Fast", ediThreads=2)
PreFetch(3)
return last
It that already fails, post the complete error message. |
|
|
|
![]() |
| Thread Tools | Search this Thread |
| Display Modes | |
|
|