Selur's Little Message Board
SCXvid filter crash - Printable Version

+- Selur's Little Message Board (https://forum.selur.net)
+-- Forum: Talk, Talk, Talk (https://forum.selur.net/forum-5.html)
+--- Forum: Small Talk (https://forum.selur.net/forum-7.html)
+--- Thread: SCXvid filter crash (/thread-3767.html)



SCXvid filter crash - Dan64 - 09.07.2024

I tried

core.std.LoadPlugin(path="D:/Programs/Hybrid/64bit/vsfilters/Support/libwwxd64.dll")

core.std.LoadPlugin(path="D:/Programs/Hybrid/64bit/vsfilters/Support/libscxvid.dll")
....
....
clip = core.scxvid.Scxvid(clip)
clip = core.wwxd.WWXD(clip)

the Scxvid dll available in Hybrid crash, while WWXD is not crashing but I don't see any significant improvement.

If they are working on your side, try them on the attached clip and let me know.

Dan


RE: Interesting projects to include to Hybrid - Selur - 09.07.2024

using:
# Imports
import vapoursynth as vs
# getting Vapoursynth core
import sys
import os
core = vs.core
# Import scripts folder
scriptPath = 'F:/Hybrid/64bit/vsscripts'
sys.path.insert(0, os.path.abspath(scriptPath))
# loading plugins
core.std.LoadPlugin(path="F:/Hybrid/64bit/vsfilters/SourceFilter/DGDecNV/DGDecodeNV.dll")
# Import scripts
import validate
# Source: 'C:\Users\Selur\Desktop\TeresaBrewerBW-1.mp4'
# Current color space: YUV420P8, bit depth: 8, resolution: 640x480, frame rate: 23.976fps, scanorder: progressive, yuv luminance scale: limited, matrix: 709, transfer: bt.709, primaries: bt.709
# Loading C:\Users\Selur\Desktop\TeresaBrewerBW-1.mp4 using DGSource
clip = core.dgdecodenv.DGSource("J:/tmp/mp4_a6d85c75532f229195b00c3988bb09c8_853323747.dgi")# 23.976 fps, scanorder: progressive
frame = clip.get_frame(0)
# Setting detected color matrix (709).
clip = core.std.SetFrameProps(clip=clip, _Matrix=1)
# setting color transfer (709), if it is not set.
if validate.transferIsInvalid(clip):
  clip = core.std.SetFrameProps(clip=clip, _Transfer=1)
# setting color primaries info (to 470), if it is not set.
if validate.primariesIsInvalid(clip):
  clip = core.std.SetFrameProps(clip=clip, _Primaries=5)
# setting color range to TV (limited) range.
clip = core.std.SetFrameProps(clip=clip, _ColorRange=1)
# making sure frame rate is set to 23.976fps
clip = core.std.AssumeFPS(clip=clip, fpsnum=24000, fpsden=1001)
# making sure the detected scan type is set (detected: progressive)
clip = core.std.SetFrameProps(clip=clip, _FieldBased=0) # progressive

core.std.LoadPlugin(path="F:/Hybrid/64bit/vsfilters/Support/libscxvid.dll")

clip = core.scxvid.Scxvid(clip, log="", use_slices=True)

# adjusting output color from: YUV420P8 to YUV420P10 for NVEncModel
clip = core.resize.Bicubic(clip=clip, format=vs.YUV420P10, range_s="limited")
# set output frame rate to 23.976fps (progressive)
clip = core.std.AssumeFPS(clip=clip, fpsnum=24000, fpsden=1001)
# output
clip.set_output()
and:
VSPipe.exe -c y4m c:\Users\Selur\Desktop\test.vpy NUL
I get:
Output 1323 frames in 3.90 seconds (338.83 fps)
I get no crash, when using the 'log'-parameter the output file is properly created.

-----
Ah, vsviewer crashes. (no clue why) Hybrid does use libscxvid for chunked encoding where vsViewer isn't used.

Cu Selur

Ps.: I split this from the original thread, since it does not seem to be really related.


RE: SCXvid filter crash - Dan64 - 09.07.2024

Scxvid need libxvidcore.dll that probably is installed on your PC.


RE: SCXvid filter crash - Selur - 10.07.2024

I searched and libxvidcore.dll is only in the Hybrid/64bit-folder and in no global folder (same for xvidcore.dll), so it is still unclear why it works with vspipe, but crashes with vsViewer. (both residing in the Hybrid/64bit/Vapoursynth-folder)
Renaming libxvidcore.dll to xvidcore.dll and placing it next to libscxvid.dll doesn't change this.
Iirc. xvidcore.dll is only needed to compile the filter.


RE: SCXvid filter crash - Dan64 - 10.07.2024

In effect it seems that the "dll" has not dependencies on xvid.
But on my side it is crashing both with vsViewer than vspipe.
It could be a problem related to the version of Vapoursynth.

If is working on your side try it with the clip that I attached in my previous post.

Any scene change detection function that I tried fail to find any scene change with this clip.

So before spend ti time to get SCXvid working on my side, I'd like to know if this function is good enough to handle this clip.

Thanks,
Dan


RE: SCXvid filter crash - Selur - 10.07.2024

I'll do some testing after work an report back.


RE: SCXvid filter crash - Selur - 12.07.2024

Hmm,.. SCXvid, does create a log file, but from the looks of it, it does not set '_SceneChangeNext' Confused
So better stick with misc.SCDetect, mv.SCDetection and wwxd.WWXD (this one uses different props).
(core.misc.SCDetect is probably the one I would choose)

Cu Selur


RE: SCXvid filter crash - Dan64 - 12.07.2024

I have the same opinion.
The problems with scene change detection usually are due when in the clip are used the transitions to change from one scene to another.
In this case, since usually the algorithm for scene change detection compares the previous frame with the current, fails to detect the scene change.
I will develop an extended version of SCDetect where it will be possible to specify the frame lag for the comparison (*) , in this way the transitions should be detected.

Dan

(*)  in case of lag=1 it will be used directly misc.SCDetect