Posts: 51
Threads: 5
Joined: Oct 2020
New day, new bug!
I tried to use the dotkill Vapoursynth Filter last night and immediately got a crash. I've tracked it to a possible namespace issue. basically calling any of the settings in it will crash it.
the crash is at this line
clip = core.dotkill.DotKillT(clip=clip)
but Changing it to
clip = core.dotkill.DotKill(clip=clip)
fixes it.
Posts: 10.618
Threads: 57
Joined: May 2017
Strange, according to the documentation over at https://github.com/myrsloik/DotKill,
DotKill has multiple modes: - DotKillS = spatial
- DotKillZ = pseudo-spatial
- DotKillT = spatioi-temporal
and no 'DotKill' and
# Imports
import vapoursynth as vs
# getting Vapoursynth core
core = vs.core
# Loading Plugins
core.std.LoadPlugin(path="I:/Hybrid/64bit/vsfilters/DeCrawlFilter/DotKill/DotKill.dll")
core.std.LoadPlugin(path="I:/Hybrid/64bit/vsfilters/SourceFilter/FFMS2/ffms2.dll")
# source: 'G:\TestClips&Co\files\test.avi'
# current color space: YUV420P8, bit depth: 8, resolution: 640x352, fps: 25, color matrix: 470bg, yuv luminance scale: limited, scanorder: progressive
# Loading source using FFMS2
clip = core.ffms2.Source(source="G:/TestClips&Co/files/test.avi",cachefile="E:/Temp/avi_6c441f37d9750b62d59f16ecdbd59393_853323747.ffindex",format=vs.YUV420P8,alpha=False)
# making sure input color matrix is set as 470bg
clip = core.resize.Bicubic(clip, matrix_in_s="470bg",range_s="limited")
# making sure frame rate is set to 25
clip = core.std.AssumeFPS(clip=clip, fpsnum=25, fpsden=1)
# Setting color range to TV (limited) range.
clip = core.std.SetFrameProp(clip=clip, prop="_ColorRange", intval=1)
clip = core.dotkill.DotKillT(clip=clip)
# set output frame rate to 25.000fps
clip = core.std.AssumeFPS(clip=clip, fpsnum=25, fpsden=1)
# Output
clip.set_output()
works fine here.
So my guess is that it the combination of filters that causes the issue, so looking at your script:
# Imports
import os
import sys
import vapoursynth as vs
# getting Vapoursynth core
core = vs.core
# Import scripts folder
scriptPath = '/opt/hybrid/vsscripts'
sys.path.append(os.path.abspath(scriptPath))
# Loading Plugins
core.std.LoadPlugin(path="/home/fletcher/.hybrid/vsplugins/libttempsmooth.so")
core.std.LoadPlugin(path="/home/fletcher/.hybrid/vsplugins/libfluxsmooth.so")
core.std.LoadPlugin(path="/home/fletcher/.hybrid/vsplugins/libdotkill.so")
core.std.LoadPlugin(path="/home/fletcher/.hybrid/vsplugins/libaddgrain.so")
core.std.LoadPlugin(path="/home/fletcher/.hybrid/vsplugins/libneo-fft3d.so")
core.std.LoadPlugin(path="/home/fletcher/.hybrid/vsplugins/libdfttest.so")
core.std.LoadPlugin(path="/home/fletcher/.hybrid/vsplugins/libeedi3m.so")
core.std.LoadPlugin(path="/home/fletcher/.hybrid/vsplugins/vsznedi3.so")
core.std.LoadPlugin(path="/home/fletcher/.hybrid/vsplugins/libmvtools.so")
core.std.LoadPlugin(path="/home/fletcher/.hybrid/vsplugins/libtemporalsoften.so")
core.std.LoadPlugin(path="/home/fletcher/.hybrid/vsplugins/libscenechange.so")
core.std.LoadPlugin(path="/home/fletcher/.hybrid/vsplugins/libfmtconv.so")
core.std.LoadPlugin(path="/home/fletcher/.hybrid/vsplugins/libmiscfilters.so")
core.std.LoadPlugin(path="/home/fletcher/.hybrid/vsplugins/libvslsmashsource.so")
# Import scripts
import havsfunc
# source: '/home/fletcher/Documents/[BDMV][211026] Shaman King (English Dub) [US]/SHAMAN KING ENG/BDMV/STREAM/00029.m2ts'
# current color space: YUV420P8, bit depth: 8, resolution: 720x480, fps: 29.97, color matrix: 470bg, yuv luminance scale: limited, scanorder: bottom field first
# Loading /home/fletcher/Documents/[BDMV][211026] Shaman King (English Dub) [US]/SHAMAN KING ENG/BDMV/STREAM/00029.m2ts using LWLibavSource
clip = core.lsmas.LWLibavSource(source="/home/fletcher/Documents/[BDMV][211026] Shaman King (English Dub) [US]/SHAMAN KING ENG/BDMV/STREAM/00029.m2ts", format="YUV420P8", cache=0, prefer_hw=0)
# making sure input color matrix is set as 470bg
clip = core.resize.Point(clip, matrix_in_s="470bg",range_s="limited")
# making sure frame rate is set to 29.970
clip = core.std.AssumeFPS(clip=clip, fpsnum=30000, fpsden=1001)
# Setting color range to TV (limited) range.
clip = core.std.SetFrameProp(clip=clip, prop="_ColorRange", intval=1)
# setting field order to what QTGMC should assume (bottom field first)
clip = core.std.SetFrameProp(clip=clip, prop="_FieldBased", intval=1)
# Deinterlacing using QTGMC
clip = havsfunc.QTGMC(Input=clip, Preset="Fast", TFF=False) # new fps: 29.97
# make sure content is preceived as frame based
clip = core.std.SetFieldBased(clip, 0)
clip = clip[::2]
clip = core.dotkill.DotKillT(clip=clip)
clip = havsfunc.Vinverse(clp=clip)
# cropping the video to 704x480
clip = core.std.CropRel(clip=clip, left=8, right=8, top=0, bottom=0)
# denoising using FluxSmooth
clip = core.flux.SmoothT(clip=clip)
# denoising using TTempSmooth
clip = core.ttmpsm.TTempSmooth(clip=clip, maxr=7, scthresh=10.89)
clip = core.fmtc.resample(clip=clip, kernel="lanczos", w=640, h=436, interlaced=False, interlacedd=False)
# adjusting output color from: YUV420P16 to YUV420P10 for x264Model (i420@8)
clip = core.resize.Lanczos(clip=clip, format=vs.YUV420P10, range_s="limited")
# set output frame rate to 23.976fps
clip = core.std.AssumeFPS(clip=clip, fpsnum=24000, fpsden=1001)
# Output
clip.set_output()
I tested:
# Imports
import os
import sys
import ctypes
# Loading Support Files
Dllref = ctypes.windll.LoadLibrary("I:/Hybrid/64bit/vsfilters/Support/libfftw3f-3.dll")
import vapoursynth as vs
# getting Vapoursynth core
core = vs.core
# Import scripts folder
scriptPath = 'I:/Hybrid/64bit/vsscripts'
sys.path.insert(0, os.path.abspath(scriptPath))
# Loading Plugins
core.std.LoadPlugin(path="I:/Hybrid/64bit/vsfilters/DenoiseFilter/TTempSmooth/TTempSmooth.dll")
core.std.LoadPlugin(path="I:/Hybrid/64bit/vsfilters/DenoiseFilter/FluxSmooth/libfluxsmooth.dll")
core.std.LoadPlugin(path="I:/Hybrid/64bit/vsfilters/DeCrawlFilter/DotKill/DotKill.dll")
core.std.LoadPlugin(path="I:/Hybrid/64bit/vsfilters/GrainFilter/RemoveGrain/RemoveGrainVS.dll")
core.std.LoadPlugin(path="I:/Hybrid/64bit/vsfilters/GrainFilter/AddGrain/AddGrain.dll")
core.std.LoadPlugin(path="I:/Hybrid/64bit/vsfilters/DenoiseFilter/NEO_FFT3DFilter/neo-fft3d.dll")
core.std.LoadPlugin(path="I:/Hybrid/64bit/vsfilters/DenoiseFilter/DFTTest/DFTTest.dll")
core.std.LoadPlugin(path="I:/Hybrid/64bit/vsfilters/Support/EEDI3m.dll")
core.std.LoadPlugin(path="I:/Hybrid/64bit/vsfilters/ResizeFilter/nnedi3/vsznedi3.dll")
core.std.LoadPlugin(path="I:/Hybrid/64bit/vsfilters/Support/libmvtools.dll")
core.std.LoadPlugin(path="I:/Hybrid/64bit/vsfilters/Support/temporalsoften.dll")
core.std.LoadPlugin(path="I:/Hybrid/64bit/vsfilters/Support/scenechange.dll")
core.std.LoadPlugin(path="I:/Hybrid/64bit/vsfilters/Support/fmtconv.dll")
core.std.LoadPlugin(path="I:/Hybrid/64bit/vsfilters/MiscFilter/MiscFilters/MiscFilters.dll")
core.std.LoadPlugin(path="I:/Hybrid/64bit/vsfilters/SourceFilter/d2vSource/d2vsource.dll")
# Import scripts
import havsfunc
# source: 'G:\TestClips&Co\files\interlaceAndTelecineSamples\interlaced\bff.m2v'
# current color space: YUV420P8, bit depth: 8, resolution: 720x480, fps: 29.97, color matrix: 470bg, yuv luminance scale: limited, scanorder: bottom field first
# Loading G:\TestClips&Co\files\interlaceAndTelecineSamples\interlaced\bff.m2v using D2VSource
clip = core.d2v.Source(input="E:/Temp/m2v_478bc6d007ec94bfc67367d30d9093a4_853323747.d2v")
# making sure input color matrix is set as 470bg
clip = core.resize.Bicubic(clip, matrix_in_s="470bg",range_s="limited")
# making sure frame rate is set to 29.970
clip = core.std.AssumeFPS(clip=clip, fpsnum=30000, fpsden=1001)
# Setting color range to TV (limited) range.
clip = core.std.SetFrameProp(clip=clip, prop="_ColorRange", intval=1)
# setting field order to what QTGMC should assume (bottom field first)
clip = core.std.SetFrameProp(clip=clip, prop="_FieldBased", intval=1)
# Deinterlacing using QTGMC
clip = havsfunc.QTGMC(Input=clip, Preset="Fast", TFF=False) # new fps: 29.97
# make sure content is preceived as frame based
clip = core.std.SetFieldBased(clip, 0)
clip = clip[::2]
# DEBUG: VsQTGMC changed scanorder to: progressive
clip = core.dotkill.DotKillT(clip=clip)
# cropping the video to 704x480
clip = core.std.CropRel(clip=clip, left=8, right=8, top=0, bottom=0)
# denoising using FluxSmooth
clip = core.flux.SmoothT(clip=clip)
# denoising using TTempSmooth
clip = core.ttmpsm.TTempSmooth(clip=clip, maxr=7, scthresh=10.89)
# set output frame rate to 29.970fps
clip = core.std.AssumeFPS(clip=clip, fpsnum=30000, fpsden=1001)
# Output
clip.set_output()
but that worked fine too.
Does the Vapoursynth Preview work, or does it show an error message?
So my guess is that the issue is not really with Hybrid, but with the DotKill library you use and updating the library might solve the issue.
Cu Selur
----
Dev versions are in the 'experimental'-folder of my GoogleDrive, which is linked on the download page.
Posts: 51
Threads: 5
Joined: Oct 2020
vs view spews a colorspace error.
As far as the library goes, I recently recompiled and replaced all the libraries hybrid uses. I had an issue with libfmtconv and doing that fixed it, so I went ahead and redid all of them.
I tried all three modes and the result was the same so I have no clue to be honest.
Posts: 10.618
Threads: 57
Joined: May 2017
Quote:vs view spews a colorspace error.
Sadly I'm not clairvoyant, care to share details?
That does not sound like an issue with dotkill.
Quote:As far as the library goes, I recently recompiled and replaced all the libraries hybrid uses.
Are you sure your sources are up-to-date, since DotKill changed to DotKillS, DotKillZ, DotKillT, back in Aug 14, 2020, see: https://github.com/myrsloik/DotKill/commits/master
Cu Selur
----
Dev versions are in the 'experimental'-folder of my GoogleDrive, which is linked on the download page.
Posts: 51
Threads: 5
Joined: Oct 2020
sorry about the long response time. Busy day.
As far as Dotkill and the other plugins go I pulled the latest build scripts from here https://github.com/Selur/hybrid-vapoursynth-addon and ran them.Then I added the latest scripts from here https://github.com/Selur/VapoursynthScriptsInHybrid. So as far as I know I'm up to date as possible.
and fo the VS view issue I get this error
Error forming pixmap from frame. Expected format CompatBGR32. Instead got 'YUV420P10'.
here a pic of what VS viewer looks like.
Posts: 10.618
Threads: 57
Joined: May 2017
Did you rebuild:
a. Vapoursynth
b. the plugins
c. vsViewer
since CompatBGR32 support was droppen in Vapoursynth R55+.
Latest vsViewer uses Vapoursynth R55+ and doesn't use Compat-formats.
Cu Selur
----
Dev versions are in the 'experimental'-folder of my GoogleDrive, which is linked on the download page.
Posts: 51
Threads: 5
Joined: Oct 2020
A. Yes
VapourSynth Video Processing Library
Copyright (c) 2012-2021 Fredrik Mellbin
Core R57
API R4.0
API R3.6
Options: -
B. Yes. against this version of VS at that. Made sure.
C. I'm using the VSviewer that came with the last public build on Hybrid.
Posts: 51
Threads: 5
Joined: Oct 2020
okay So I wipped everything. Hybrid, Vapoursynth, all config data, plugins, scritps. everything. Set it all back up. Still the same thing.
Failed to evaluate the script:
Python exception: There is no function named DotKillS
Traceback (most recent call last):
File "src/cython/vapoursynth.pyx", line 2786, in vapoursynth._vpy_evaluate
File "src/cython/vapoursynth.pyx", line 2787, in vapoursynth._vpy_evaluate
File "/home/fletcher/Documents/[BDMV][211026] Shaman King (English Dub) [US]/SHAMAN KING ENG/BDMV/STREAM/encodingTempSynthSkript_2021-11-27@21_11_26_2610.vpy", line 50, in <module>
clip = core.dotkill.DotKillS(clip=clip)
File "src/cython/vapoursynth.pyx", line 2367, in vapoursynth.Plugin.__getattr__
AttributeError: There is no function named DotKillS
and the issue with VSviewer is still there.
Edit: I compiled vsViewer from source and it seems to have fixed that issue. The dotkill issue is still there though.
Posts: 10.618
Threads: 57
Joined: May 2017
28.11.2021, 10:22
(This post was last modified: 28.11.2021, 10:55 by Selur.)
Probably an issue with the build script not builing the latest version -> yes, at least hybrid-vapoursynth-addon/build-plugins/plugin-dotkill.sh is outdated.
-> updated plugin-dotkill.sh (needs c++17 now)
Cu Selur
----
Dev versions are in the 'experimental'-folder of my GoogleDrive, which is linked on the download page.
Posts: 51
Threads: 5
Joined: Oct 2020
(28.11.2021, 10:22)Selur Wrote: Probably an issue with the build script not builing the latest version -> yes, at least hybrid-vapoursynth-addon/build-plugins/plugin-dotkill.sh is outdated.
-> updated plugin-dotkill.sh (needs c++17 now)
Cu Selur
Sorry for not getting back sooner. Been busy with other stuff.
That fixed it.
I had attempted to compile the newest version myself, but didn't realize it needed c++17.
|