25.12.2020, 08:32
Hm. So I have encountered an issue with the MCTemporalDenoiser. Basically it will crash. Every time. I've tracked down the issue to an unloaded plugin/filter.
It's asking for libneofft3d.so. However libneo-fft3d.so is loaded, so I think this was a typo Oversight.
Here is the .vpy script generated by hybrid. Note in this particular set up libneo-fft3d.so is loaded for a different filter/plugin. but omitting the libneofft3d.so line will crash it even thought the correct plugin is loaded it's misnamed, and leaving it in will crash it because what it's looking for isn't there once again due to the typo. Loading a second renamed copy crashes things as well
It's asking for libneofft3d.so. However libneo-fft3d.so is loaded, so I think this was a typo Oversight.
Here is the .vpy script generated by hybrid. Note in this particular set up libneo-fft3d.so is loaded for a different filter/plugin. but omitting the libneofft3d.so line will crash it even thought the correct plugin is loaded it's misnamed, and leaving it in will crash it because what it's looking for isn't there once again due to the typo. Loading a second renamed copy crashes things as well
# Imports
import os
import sys
import functools
import vapoursynth as vs
core = vs.get_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/libneofft3d.so")
core.std.LoadPlugin(path="/home/fletcher/.hybrid/vsplugins/libdctfilter.so")
core.std.LoadPlugin(path="/home/fletcher/.hybrid/vsplugins/libdeblock.so")
core.std.LoadPlugin(path="/home/fletcher/.hybrid/vsplugins/libtdeintmod.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/libvslsmashsource.so")
# Import scripts
import havsfunc
# source: '/home/fletcher/Documents/Kanokon BD 1/Kanokon 2.mkv'
# current color space: YUV420P8, bit depth: 8, resolution: 1920x1080, fps: 29.97, color matrix: 709, yuv luminance scale: limited, scanorder: top field first
# Loading /home/fletcher/Documents/Kanokon BD 1/Kanokon 2.mkv using LWLibavSource
clip = core.lsmas.LWLibavSource(source="/home/fletcher/Documents/Kanokon BD 1/Kanokon 2.mkv", format="YUV420P8", cache=0, prefer_hw=0)
# making sure input color matrix is set as 709
clip = core.resize.Point(clip, matrix_in_s="709",range_s="limited")
# making sure frame rate is set to 29.970
clip = core.std.AssumeFPS(clip, fpsnum=30000, fpsden=1001)
# Setting color range to TV (limited) range.
clip = core.std.SetFrameProp(clip=clip, prop="_ColorRange", intval=1)
clip2clip=clip
clip2clip = havsfunc.QTGMC(Input=clip2clip, Preset="slow", TFF=False,FPSDivisor=2)
clip = core.vivtc.VFM(clip=clip, clip2=clip2clip, order=0, mode=3, blockx=16, blocky=16, scthresh=10)
clip = core.vivtc.VDecimate(clip=clip, clip2=clip2clip, scthresh=10, blockx=16, blocky=16)# new fps: 23.976
# Fix combed frames
# adding helper function
def conditionalDeint(n, f, orig, deint):
if f.props._Combed:
return deint
else:
return orig
clipDeint = havsfunc.QTGMC(Input=clip, Preset="slow", TFF=True, TR2=1, SourceMatch=3, FPSDivisor=2)
clipCombProps = core.tdm.IsCombed(clip=clip, cthresh=8, blockx=8, blocky=8)
clip = core.std.FrameEval(clip, functools.partial(conditionalDeint, orig=clip, deint=clipDeint), clipCombProps)
clip = havsfunc.Vinverse(clp=clip, sstr=2.80)
# denoising using MCTemporalDenoise
clip = havsfunc.MCTemporalDenoise(i=clip, settings="medium")
# adjusting output color from: YUV420P8 to YUV420P10 for x264Model (i420@10-bit)
clip = core.resize.Bicubic(clip=clip, format=vs.YUV420P10, range_s="limited")
# Output
[color=#333333][font=Tahoma, Verdana, Arial, sans-serif][size=small][color=#333333][size=small][font=Tahoma, Verdana, Arial, sans-serif]clip.set_output()[/font][/size][/color][/size][/font][/color]