hello_hello
2nd December 2025, 10:30
I'm using VapourSynth r72 on Linux and I can't upgrade to r73 or test this on Windows at the moment, however.......
I've been trying to add ringing repair to a resizing function but I kept bumping into errors pointing to the VapourSynth Merge function. Even so, I spent an hour or three trying to find an error in my function that was supplying Merge with silly variables before I released that wasn't the problem. Or maybe I'm losing my mind.....
from scipy.interpolate import CubicSpline
CSpline = CubicSpline([1, 2.25, 3.5], [0, 1, 0], bc_type='natural')
Z = 960*540/704/396
Weight = CSpline(min(max(Z, 1), 2.25))
clip = core.sub.Subtitle(clip, str(Weight)).set_output()
Screenshot.
https://i.imgur.com/sOC7nzF.png
Same again, but with this replacing the final line above:
clip = core.std.Merge(clip, clip, Weight).set_output()
Failed to evaluate the script:
Python exception: iteration over a 0-d array
Traceback (most recent call last):
File "src/cython/vapoursynth.pyx", line 3378, in vapoursynth._vpy_evaluate
File "src/cython/vapoursynth.pyx", line 3379, in vapoursynth._vpy_evaluate
File "/media/NVME2/New Folder 2/Test.vpy", line 44, in
File "src/cython/vapoursynth.pyx", line 3098, in vapoursynth.Function.__call__
File "src/cython/vapoursynth.pyx", line 3089, in vapoursynth.Function.__call__
File "src/cython/vapoursynth.pyx", line 1054, in vapoursynth.typedDictToMap
TypeError: iteration over a 0-d array
The resolution of the videos being merged doesn't seem to change anything (only tested YV12). For the record, this works without any error.
clip = core.std.Merge(clip, clip, 0.868856119546547).set_output()
I've been trying to add ringing repair to a resizing function but I kept bumping into errors pointing to the VapourSynth Merge function. Even so, I spent an hour or three trying to find an error in my function that was supplying Merge with silly variables before I released that wasn't the problem. Or maybe I'm losing my mind.....
from scipy.interpolate import CubicSpline
CSpline = CubicSpline([1, 2.25, 3.5], [0, 1, 0], bc_type='natural')
Z = 960*540/704/396
Weight = CSpline(min(max(Z, 1), 2.25))
clip = core.sub.Subtitle(clip, str(Weight)).set_output()
Screenshot.
https://i.imgur.com/sOC7nzF.png
Same again, but with this replacing the final line above:
clip = core.std.Merge(clip, clip, Weight).set_output()
Failed to evaluate the script:
Python exception: iteration over a 0-d array
Traceback (most recent call last):
File "src/cython/vapoursynth.pyx", line 3378, in vapoursynth._vpy_evaluate
File "src/cython/vapoursynth.pyx", line 3379, in vapoursynth._vpy_evaluate
File "/media/NVME2/New Folder 2/Test.vpy", line 44, in
File "src/cython/vapoursynth.pyx", line 3098, in vapoursynth.Function.__call__
File "src/cython/vapoursynth.pyx", line 3089, in vapoursynth.Function.__call__
File "src/cython/vapoursynth.pyx", line 1054, in vapoursynth.typedDictToMap
TypeError: iteration over a 0-d array
The resolution of the videos being merged doesn't seem to change anything (only tested YV12). For the record, this works without any error.
clip = core.std.Merge(clip, clip, 0.868856119546547).set_output()