This forum uses cookies
This forum makes use of cookies to store your login information if you are registered, and your last visit if you are not. Cookies are small text documents stored on your computer; the cookies set by this forum can only be used on this website and pose no security risk. Cookies on this forum also track the specific topics you have read and when you last read them. Please confirm whether you accept or reject these cookies being set.

A cookie will be stored in your browser regardless of choice to prevent you being asked this question again. You will be able to change your cookie settings at any time using the link in the footer.

MacOS Problem
#1
Hello,
I successfully installed Hybrid on my MacBook Pro M5, but I am unable to perform the video preview process. I have had issues with VSPipe, even though I installed it using brew.
Despite being unable to preview, I was able to start the rendering process because I did not select a model from the frame section. Could you assist me?
Reply
#2
Assist you, how?
Is Vapoursynth added to the PATH like the README.txt stated?
Hybrid does come with all the Vapoursynt filters (Hybrid.app/Contents/MacOS/vsfilters) I could find.
I can't really say whether those filters work on m5, but I expect them to.
It also comes with the scripts Hybrid uses (Hybrid.app/Contents/MacOS/vsscripts).
Does the Vapoursynth Preview show an error, if it does what error?
Where is the debug output? (seems like you ignored the notice to read the sticky,.. [INFO] Infos needed to fix&reproduce bugs,..)
If you want to use Vapoursynth, make sure the Vapoursynth Preview works.

Cu Selur
----
Dev versions are in the 'experimental'-folder of my GoogleDrive, which is linked on the download page.
Reply
#3
I am experiencing a similar issue to the original poster. Smile

What Hybrid version did I use?
Hybrid version 2026.03.21.1 (64bit)

What is used operating system?
macOS Tahoe (26.4.1) on Apple Silicon M5.

What did happen? If an error message came up what did it exactly say?
My goal was to deinterlace a .mov video using QTGMC and output it in ProRes format without audio. When I tried to run the job, the process crashed immediately during the video encoding stage (video sub-job).

Steps:
  1. I followed the installation instructions exactly as described in the
    readme.txt file provided in this folder: https://drive.google.com/drive/folders/1...drive_link
  2. I configured my paths as described in your guide here: https://forum.selur.net/thread-3.html
  3. Loaded a .mov file. + the output path and file.
  4. Set Filtering -> VapourSynth -> QTGMC enabled.
  5. Set Video Handling to ProRes and disabled audio export.
  6. Added to Queue and started the job.
  7. The job crashes instantly.

Other:
I also noticed that the video preview in VapourSynth is not working (screenshot attached).
I am unsure what the correct 'official' path is that needs to be configured in the VapourSynth Editor settings to make it function correctly on this system.


Attached Files Thumbnail(s)
   

.zip   HybridDebugOutput.txt.zip (Size: 68,01 KB / Downloads: 6)
Reply
#4
Hybrid uses and should come with vsViewer,...

The Vapoursynth script:
# Imports
import vapoursynth as vs
# getting Vapoursynth core
import sys
import os
core = vs.core
core.std.LoadAllPlugins('/Applications/Hybrid.app/Contents/MacOS/vsfilters')
# Import scripts folder
scriptPath = '/Applications/Hybrid.app/Contents/MacOS/vsscripts'
sys.path.insert(0, os.path.abspath(scriptPath))
# Import scripts
import qtgmc
import validate
# Source: '/Users/teemu/Desktop/belos.mov'
# Current color space: RGB24, bit depth: 8, resolution: 720x576, frame rate: 25fps, scanorder: top field first, yuv luminance scale: limited, matrix: 470bg, transfer: bt.709, primaries: bt.601 ntsc, format: prores
# Loading '/Users/teemu/Desktop/belos.mov' using BestSource
clip = core.bs.VideoSource(source="/Users/teemu/Desktop/belos.mov", cachepath="/var/folders/3y/0t3zllln2t14ts4_q2hfzl6w0000gn/T/belos_bestSource_SCRIPTID_:_", track=1)
frame = clip.get_frame(0)
# 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_BT470_BG), if it is not set.
if validate.primariesIsInvalid(clip):
  clip = core.std.SetFrameProps(clip=clip, _Primaries=vs.PRIMARIES_BT470_BG)
# 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) # scan type: top field first
# adjusting color space from RGB24 to YUV444P16 for vsQTGMC
clip = core.resize.Bicubic(clip=clip, format=vs.YUV444P16, matrix_s="470bg", range_in_s="full", range_s="limited", dither_type="error_diffusion") # additional resize to match target color sampling
# Deinterlacing using QTGMC
clip = qtgmc.QTGMC(clip, Preset="Fast", TFF=True, opencl=True) # new fps: 50
# 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: 25
# adjusting output color from YUV444P16 to YUV422P10 for ProResModel
clip = core.resize.Bicubic(clip=clip, format=vs.YUV422P10)
# set output frame rate to 25fps (progressive)
clip = core.std.AssumeFPS(clip=clip, fpsnum=25, fpsden=1)
# output
clip.set_output()
# script was created by Hybrid 2026.03.21.1
seems fine.

Ahhh,...
AttributeError: No attribute with the name nnedi3cl exists. Did you mistype a plugin namespace or forget to install a plugin?
ahh,... disable the GPU in QTGMC
I thought I bundled nnedi3cl with Hybrid.

/opt/homebrew/lib is the path vsViewer points to here,.
----
Dev versions are in the 'experimental'-folder of my GoogleDrive, which is linked on the download page.
Reply
#5
Thank you for your response. Could you please clarify exactly where the GPU setting should be disabled? I am unable to find this option under the Filtering -> (De-)Interlace/Telecine tab, for instance.


Attached Files Thumbnail(s)
       
Reply
#6
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:
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:
# 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
----
Dev versions are in the 'experimental'-folder of my GoogleDrive, which is linked on the download page.
Reply
#7
If you open vsViewer through Tools->vsViewer and there to go to Edit->Settings->Paths.
Set:
  • 'VapourSynth library search paths' to '/opt/homebrew/lib'
  • 'VapourSynth plugins path' to the path of Hybrid.app/Contents/MacOS/vsfilter'
and let me know whether that fixes the preview.

Cu Selur
----
Dev versions are in the 'experimental'-folder of my GoogleDrive, which is linked on the download page.
Reply
#8
The paths are now set up according to the screenshot:
   

When I try to do a preview, vsviewer shows following errors:
   

   
Reply
#9
Quote: "Failed to open the file /private/var/folders/3y/0t3zllln2t14ts4_q2hfzl6w0000gn/T/tempPreviewVapoursynthFile16_17_58_639.vpy.",
MacOS using some 'hidden' folders for temp,... => manually set a normal path for the Temp path in Hybrid should help.


Quote:Additionally, I noticed that Hybrid 2026.03.21.1 creates folders directly under my home folder on Mac, i.e. /Users/myusername/
Correct. Unless a misc.ini with a settings-overwrite is given, Hybrid needs to save it's settings, which it will do under ~/.hybrid.

Quote:I wonder what could be causing the new problem (cache??) ?
I wonder what 'cache' problem you are referring to.

Cu Selur
----
Dev versions are in the 'experimental'-folder of my GoogleDrive, which is linked on the download page.
Reply
#10
Sorry, I managed to update my earlier post before you replied, since I got the issues fixed in vsViewer and kind of reset the situation. Above are my observations about the errors when I added the paths you suggested to the vsViewer paths section.
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)