Sorry, forget that.
On MacOS the only nnedi variant available was nnnedi3cl, which is why GPU (in the QTGMC settings) is active, but disabled.
Hybrid does ship with it:
Code:
selur@Mac-mini-von-Georg ~ % cd Hybrid/Hybrid.app/Contents/MacOS/vsfilters/
selur@Mac-mini-von-Georg vsfilters % ls -lah
total 100256
drwxr-xr-x 57 selur staff 1,8K 21 März 14:42 .
drwxr-xr-x@ 42 selur staff 1,3K 9 Apr. 15:13 ..
-rwxr-xr-x@ 1 selur staff 17M 21 März 14:42 bestsource.dylib
drwxr-xr-x 7 selur staff 224B 15 Feb. 2025 GLSL
drwxr-xr-x 71 selur staff 2,2K 15 Feb. 2025 GLSL-Resizers
-rw-r--r--@ 1 selur staff 604K 21 März 14:42 libadaptivegrain_rs.dylib
-rwxr-xr-x@ 1 selur staff 51K 21 März 14:42 libaddgrain.dylib
-rwxr-xr-x@ 1 selur staff 85K 21 März 14:42 libaddnoise.dylib
-rwxr-xr-x@ 1 selur staff 83K 21 März 14:42 libawarpsharp2.dylib
-rwxr-xr-x@ 1 selur staff 67K 21 März 14:42 libbilateral.dylib
-rwxr-xr-x@ 1 selur staff 67K 21 März 14:42 libbwdif.dylib
-rwxr-xr-x@ 1 selur staff 51K 21 März 14:42 libcas.dylib
-rwxr-xr-x@ 1 selur staff 33K 21 März 14:42 libcnr2.dylib
-rwxr-xr-x@ 1 selur staff 81K 21 März 14:42 libcolorbars.dylib
-rwxr-xr-x@ 1 selur staff 102K 21 März 14:42 libctmf.dylib
-rwxr-xr-x@ 1 selur staff 70K 21 März 14:42 libcurve.dylib
-rwxr-xr-x@ 1 selur staff 1,3M 21 März 14:42 libdctfilter.dylib
-rwxr-xr-x@ 1 selur staff 52K 21 März 14:42 libdeblock.dylib
-rwxr-xr-x@ 1 selur staff 49K 21 März 14:42 libdecross.dylib
-rwxr-xr-x@ 1 selur staff 49K 21 März 14:42 libdedot.dylib
-rwxr-xr-x@ 1 selur staff 164K 21 März 14:42 libdegrainmedian.dylib
-rwxr-xr-x@ 1 selur staff 1,4M 21 März 14:42 libdfttest.dylib
-rwxr-xr-x@ 1 selur staff 120K 21 März 14:42 libeedi2.dylib
-rw-r--r-- 1 selur staff 370K 8 Feb. 2025 libEEDI3_static.a
-rwxr-xr-x@ 1 selur staff 106K 21 März 14:42 libeedi3m.dylib
-rwxr-xr-x@ 1 selur staff 1,5M 21 März 14:42 libfft3dfilter.dylib
-rwxr-xr-x@ 1 selur staff 33K 21 März 14:42 libfieldhint.dylib
-rwxr-xr-x@ 1 selur staff 49K 21 März 14:42 libfillborders.dylib
-rwxr-xr-x@ 1 selur staff 33K 21 März 14:42 libfluxsmooth.dylib
-rwxr-xr-x@ 1 selur staff 4,3M 21 März 14:42 libfmtconv.dylib
-rwxr-xr-x@ 1 selur staff 147K 21 März 14:42 libfrfun7.dylib
-rwxr-xr-x@ 1 selur staff 50K 21 März 14:42 libhistogram.dylib
-rwxr-xr-x@ 1 selur staff 33K 21 März 14:42 libhqdn3d.dylib
-rwxr-xr-x@ 1 selur staff 49K 21 März 14:42 libminideen.dylib
-rwxr-xr-x@ 1 selur staff 52K 21 März 14:42 libmiscfilters.dylib
-rwxr-xr-x@ 1 selur staff 50K 21 März 14:42 libmotionmask.dylib
-rwxr-xr-x@ 1 selur staff 50K 21 März 14:42 libmsmoosh.dylib
-rwxr-xr-x@ 1 selur staff 4,0M 21 März 14:42 libmvtools.dylib
-rwxr-xr-x@ 1 selur staff 88K 21 März 14:42 libnnedi3.dylib
-rwxr-xr-x@ 1 selur staff 56K 21 März 14:42 libnoisegen.dylib
-rwxr-xr-x@ 1 selur staff 108K 21 März 14:42 libqrcodesource.dylib
-rwxr-xr-x@ 1 selur staff 68K 21 März 14:42 libsangnom.dylib
-rwxr-xr-x@ 1 selur staff 33K 21 März 14:42 libssiq.dylib
-rwxr-xr-x@ 1 selur staff 115K 21 März 14:42 libtbilateral.dylib
-rwxr-xr-x@ 1 selur staff 106K 21 März 14:42 libtcanny.dylib
-rwxr-xr-x@ 1 selur staff 82K 21 März 14:42 libtcomb.dylib
-rwxr-xr-x@ 1 selur staff 68K 21 März 14:42 libtedgemask.dylib
-rwxr-xr-x@ 1 selur staff 50K 21 März 14:42 libtemporalmedian.dylib
-rwxr-xr-x@ 1 selur staff 380K 21 März 14:42 libtivtc.dylib
-rwxr-xr-x@ 1 selur staff 33K 21 März 14:42 libtonemap.dylib
-rwxr-xr-x@ 1 selur staff 68K 21 März 14:42 libttempsmooth.dylib
-rwxr-xr-x@ 1 selur staff 66K 21 März 14:42 libvivtc.dylib
-rwxr-xr-x@ 1 selur staff 1,4M 21 März 14:42 libvszip.dylib
-rwxr-xr-x@ 1 selur staff 1,4M 21 März 14:42 libzsmooth.dylib
drwxr-xr-x 78 selur staff 2,4K 24 Nov. 2024 models
-rw-r--r-- 1 selur staff 13M 15 Nov. 2024 nnedi3_weights.bin
-rwxr-xr-x@ 1 selur staff 134K 21 März 14:42 vscube.dylib
and it should be automatically used.
Not sure why it does not on your system, does work fine here:
Code:
# Imports
import sys
import os
import vapoursynth as vs
# getting Vapoursynth core
core = vs.core
core.std.LoadAllPlugins('/Users/selur/workspace/Hybrid/Hybrid.app/Contents/MacOS/vsfilters')
# Import scripts folder
scriptPath = '/Users/selur/workspace/Hybrid/Hybrid.app/Contents/MacOS/vsscripts'
sys.path.insert(0, os.path.abspath(scriptPath))
# Import scripts
import qtgmc
import validate
# Source: '/Users/selur/Desktop/Randy Hansen - Voodoo Chile.mp4'
# Current color space: YUV420P8, bit depth: 8, resolution: 1280x720, frame rate: 29.97fps, scanorder: top field first, yuv luminance scale: limited, matrix: 709, transfer: bt.709, primaries: bt.709, format: AVC
# Loading '/Users/selur/Desktop/Randy Hansen - Voodoo Chile.mp4' using BestSource
clip = core.bs.VideoSource(source="/Users/selur/Desktop/Randy Hansen - Voodoo Chile.mp4", cachepath="/Users/selur/tmp/Randy Hansen - Voodoo Chile_bestSource", track=0)
frame = clip.get_frame(0)
# setting color matrix to 709.
clip = core.std.SetFrameProps(clip, _Matrix=vs.MATRIX_BT709)
# setting color transfer (vs.TRANSFER_BT709), if it is not set.
if validate.transferIsInvalid(clip):
clip = core.std.SetFrameProps(clip=clip, _Transfer=vs.TRANSFER_BT709)
# setting color primaries info (to vs.PRIMARIES_BT709), if it is not set.
if validate.primariesIsInvalid(clip):
clip = core.std.SetFrameProps(clip=clip, _Primaries=vs.PRIMARIES_BT709)
# setting color range to TV (limited) range.
prop_name = '_Range' if core.core_version.release_major >= 74 else '_ColorRange'
clip = core.std.SetFrameProps(clip=clip, **{prop_name: 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
# Deinterlacing using QTGMC
clip = qtgmc.QTGMC(clip, Preset="Fast", TFF=True) # 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
# output
clip.set_output()
I'm not at hoem today so, I can't test on my system atm. will try to do some testing tomorrow after work and report back.
Cu Selur