Selur's Little Message Board

Full Version: Esxi running macos For selur
You're currently viewing a stripped down version of our content. View the full version with proper formatting.

Adamcarter

Shijan, I Think i found what we need For the qtgmc problem.

https://github.com/HomeOfVapourSynthEvol...-TDeintMod

it’s called TDeintmod and meatwad already compiled this ages ago. It’s on his server.

Selur, is there a way when using Reverse telecine VIVTC with qtgmc and needi3 as the deinterlacer it can Use the TDeintMod, instead of TDeint?
TDeintmod only sends combed Interlaced frames to Qtgmc, and leaves progressive ones alone. (original TDeint sends all which potentially causes jaggies)
Thanks.
Filtering -> Other -> VFM - popup error window "Got an empty value for 'vsOVFMMChroma', please report to Selur!"
Also with default settings it gives me this error
Code:
Failed to evaluate the script:
Python exception: VFM: Invalid mi threshold specified

Traceback (most recent call last):
  File "src/cython/vapoursynth.pyx", line 2244, in vapoursynth.vpy_evaluateScript
  File "src/cython/vapoursynth.pyx", line 2245, in vapoursynth.vpy_evaluateScript
  File "/Volumes/temp/Hybrid Temp/tempPreviewVapoursynthFile03_34_07_533.vpy", line 32, in <module>
    clip = core.vivtc.VFM(clip=clip, order=0, blockx=4, blocky=4)
  File "src/cython/vapoursynth.pyx", line 2069, in vapoursynth.Function.__call__
vapoursynth.Error: VFM: Invalid mi threshold specified
Updated DotKill ERROR https://www.mediafire.com/folder/wvdlnja...qrek88a7bp
Code:
Failed to evaluate the script:
Python exception: There is no function named DotKill

Traceback (most recent call last):
File "src/cython/vapoursynth.pyx", line 2244, in vapoursynth.vpy_evaluateScript
File "src/cython/vapoursynth.pyx", line 2245, in vapoursynth.vpy_evaluateScript
File "/Volumes/temp/Hybrid Temp/tempPreviewVapoursynthFile07_40_22_590.vpy", line 24, in <module>
clip = core.dotkill.DotKill(clip=clip)
File "src/cython/vapoursynth.pyx", line 1934, in vapoursynth.Plugin.__getattr__
AttributeError: There is no function named DotKill

AA -> Santiag EMPTY vsViever screen when i use Type: sangnom or Type: selectHV/sangnom/sangnom
Quote: What exactly wrong with ProRes?
It's not lossless and as such not a good choice as intermediate format.

Quote:By the way how about add CineForm codec to Hybrid export options?
https://github.com/gopro/cineform-sdk
a. I don't have a solution for all currently used tools in Hybrid
b. like you notice yourself, there are still tons of problems to get all the Vapoursynth stuff working
-> adding new stuff would just be stupid

Quote:Selur, is there a way when using Reverse telecine VIVTC with qtgmc and needi3 as the deinterlacer it can Use the TDeintMod, instead of TDeint?
What makes you think QTGMC uses TDeint?
When looking at https://github.com/Selur/VapoursynthScri...avsfunc.py I see no call of tdeint or tdeintmod in QTGMC.
-> I think you misunderstood something.


Quote:Filtering -> Other -> VFM - popup error window "Got an empty value for 'vsOVFMMChroma', please report to Selur!"
Like I wrote before I need details to reproduce this.
Quote:Also with default settings it gives me this error:
Code:
...
Invalid mi threshold specified
...
the defaults would used:
[ode]
clip = core.vivtc.VFM(clip=clip, order=0, mode=1)
clip = core.vivtc.VDecimate(clip=clip)# new fps: 23.976
[/code]
you used:
Code:
clip = core.vivtc.VFM(clip=clip, order=0, blockx=4, blocky=4)
-> I adjusted the code to limit mi to blockx*blocky

Quote:Updated DotKill ERROR ...
Code:
clip = core.dotkill.DotKill(clip=clip)
is the proper syntax, seems like either the library is broken or something hinders Vapoursynth from loading the library.
-> Not a Hybrid bug.

Quote:AA -> Santiag EMPTY vsViever screen when i use Type: sangnom or Type: selectHV/sangnom/sangnom
Looking at the script https://github.com/Selur/VapoursynthScri...avsfunc.py in line 195 Santiag uses:
Code:
c.sangnom.SangNom(order=field, aa=aa)
which is a correct call using SangNom (https://github.com/dubhater/vapoursynth-sangnom) so assuming you have libsangnom.dylib it should work.
Just tested on Windows and it seems like there's a bug in Santiag, since using SangNom gives:
Code:
SangNom: the _FieldBased frame property must be either 1 (bottom field first) or 2 (top field first) when order is 0 (double rate output). Did you forget to invoke DoubleWeave before SangNom?
-> it's a bug in the Santiag script, it should be using 'SangNomMod' instead of Sangnom or be adjusted.
Posted an issue about it over at: https://github.com/HomeOfVapourSynthEvol.../issues/35
will adjust havsfunc for Hybrid to use sangnommod and remove the sangnom option for MacOS.

Cu Selur

ps.: uploaded a new version which removes sangnom form Santiag and fixed the mi restriction.

Adamcarter

Selur,

I think i miss spoke

In VIVTC i understood that  TDeint is used as  post-processor (something to get rid of the combed frames IVTC misses),

You recently added qtgmc and needi3 to VIVTC as a deinterlacer of residual combed frames. 

Shijan has said that when using qtgmc and needi3 that there are jaggies on straight lines oriented diagonally. But not on the vivtc internal deinterlacer. 

This has been mentioned before and people have suggested that TDeint is the culprit for miss catagorizing progressive frames as combed. And hence TDeintmod was created. As it will only send combed frames.

So what i gather you are saying is VIVTC does not call or use TDeint in any form or function. (i Also know qtgmc likewise doesn’t use TDeint)

 Because if VIVTC does  use TDeint, i was asking  if we could substitute TDeintMod instead. 

Hope that makes sense, 


Code:
f = 1          #field

clip = core.vivtc.VFM(clip, mode = 0, order=f, mi = 74, cthresh = 8)  #IVTC

def conditionalDeint(n, f, orig, deint):
    if f.props._Combed:
        return deint
    else:
        return orig

deint = core.tdm.TDeintMod(clip, order=1, edeint=core.nnedi3.nnedi3(clip, field=1))      #Deinterlacer goes here!
#deint = havsfunc.QTGMC(clip, TFF=True, Preset="Medium", InputType=2 )              #Slower alternative, untested

combProps = clip                              #Get _Combed flag from VFM
#combProps = core.tdm.IsCombed(clip)            #Get _Combed flag from IsCombed.

clip = core.std.FrameEval(clip, functools.partial(conditionalDeint, orig=clip, deint=deint), clip)

clip = core.vivtc.VDecimate(clip)
Atm. VIVTC does use it's inner deinterlacer by default and I added the options to use QTGMC or NNEDI3 for it.
It doesn't use TDeint. (I could modify Hybrid to use TDeintMod additionally to NNEDI3 and QTGMC, but that might not solve your problem if that was caused by the usage of TDeint.)

Cu Selur

Adamcarter

(04.09.2020, 17:00)Selur Wrote: [ -> ]Atm. VIVTC does use it's inner deinterlacer by default and I added the options to use QTGMC or NNEDI3 for it.
It doesn't use TDeint. (I could modify Hybrid to use TDeintMod additionally to NNEDI3 and QTGMC, but that might not solve your problem if that was caused by the usage of TDeint.)

Cu Selur
True if it never used tdeint to begin with, adding something may add more issues to it.

Or by not having it, It’s like “on” by default, meaning by default all frames are being sent to qtgmc or needi3, and maybe having tdeintmod which has “IsCombed“ built in which is a utility function to check whether or not a frame is combed and stores the result (0 or 1) as a frame property named _Combed. It's intended to be used within std.FrameEval to process only combed frames and leave non-combed frames untouched.

I honestly dont know if  what I’m saying makes sense. And i wouldn’t even begin to know if it fixes what shijan mentioned happens (jaggies). 

It is a tough call, maybe an alternative test build with tdeintmod that shijan could play around with. If he thinks it’s pointless and you think it is pointless, then i am ok with not adding it. 

i’m literally scouring videohelp for similar situations either in vapoursynth or avisynth, and taking note of their solutions. And ask this forum if they think the solution would work with our setup. In the meantime i will look for other options. 

P.S. Meatwad is finished compiling anime4k
https://www.mediafire.com/folder/wvdlnja...lnjapm1vvw

thank you for the info.
Filtering -> Other -> VFM - fixed now (no more popup error window)
Hope developers will edit Santiag to use SangNom instead of SangNomMod.
DotKill is loading but gives error in Hybrid. Here is info from Terminal.
Code:
/usr/local/bin/vspipe --info /Users/shph/Desktop/test.vpy -

Script evaluation failed:
Python exception: Plugin /Library/Frameworks/VapourSynth.framework/lib/vapoursynth/dotkill64.dylib already loaded (com.vapoursynth.dotkill) from /Library/Frameworks/VapourSynth.framework/lib/vapoursynth/dotkill64.dylib

Traceback (most recent call last):
File "src/cython/vapoursynth.pyx", line 2244, in vapoursynth.vpy_evaluateScript
File "src/cython/vapoursynth.pyx", line 2245, in vapoursynth.vpy_evaluateScript
File "/Users/shph/Desktop/test.vpy", line 20, in <module>
core.std.LoadPlugin('/Library/Frameworks/VapourSynth.framework/lib/vapoursynth/dotkill64.dylib')
File "src/cython/vapoursynth.pyx", line 2069, in vapoursynth.Function.__call__
vapoursynth.Error: Plugin /Library/Frameworks/VapourSynth.framework/lib/vapoursynth/dotkill64.dylib already loaded (com.vapoursynth.dotkill) from /Library/Frameworks/VapourSynth.framework/lib/vapoursynth/dotkill64.dylib
Code:
Python exception: Plugin /Library/Frameworks/VapourSynth.framework/lib/vapoursynth/dotkill64.dylib already loaded (com.vapoursynth.dotkill) from /Library/Frameworks/VapourSynth.framework/lib/vapoursynth/dotkill64.dylib
seems like it's already loaded and loaded again,...
Code:
core.std.LoadPlugin('/Library/Frameworks/VapourSynth.framework/lib/vapoursynth/dotkill64.dylib')
is the problem.
I checked the script Hybrid generates here and that line isn't included there.
-> must be your self-written script which tries to load a library that is already loaded
Yes, it is just a test script. Plugin already in autoload folder and i load it with script again.
If script reports that plugin already loaded - it means that loading works.