Selur's Little Message Board
VHS conversion - 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: VHS conversion (/thread-4073.html)

Pages: 1 2


RE: VHS conversion - Selur - 23.04.2025

Over-sharpening usually happens during capturing.
Only sharpening in your Vapoursynth script, seems to be:
clip = core.cas.CAS(clip=clip, sharpness=0.700)

Source doesn't seem oversharpened, gut has tons of other issues.
  • The whole thing is not properly captured, tons of track issues causing a wobbly image.
  • Clip seems interlaced (tff + bob shows clear movement between frames in the first two scenes)
  • Thick black halos in the frist and second scene
  • Chroma is shifted, but shift seems to be different in some scences.
  • Scene change to the third scene (the rotating stone beach thing) causes spotless to go crazy Wink
  • The whole pirate scene seems like a mess. Partial telecined, blends in the fields, duplicates. (sRestore, in mode pp3 and later applying FillDuplicateFrames might help, if the source is denoised a lot before)
  • General: Whites are blown out.
  • General: Tons of chroma noise. (mostly in the even fields)
  • General: Saturation is too high.
So is it a bad capture: Yes
Could it be 'restored': With lots of scene-by-scene filtering, probably.
(especially color grading, shifting, denoising)
[Image: grafik.png]
What looks 'okay' in for one scene, doesn't look so good for another. Wink
=> lots of work if you want to get this on an 'okay' level.
# Deinterlacing using QTGMC
clip = qtgmc.QTGMC(Input=clip, Preset="Fast", TFF=True) # new fps: 29.97
# Making sure content is preceived as frame based
clip = core.std.SetFrameProps(clip=clip, _FieldBased=vs.FIELD_PROGRESSIVE) # progressive
clip = clip[1::2] # selecting previously odd frames
# adjusting color using Tweak
clip = color.Tweak(clip=clip, hue=0.00, sat=0.50, cont=1.00, bright=-20, coring=True)
# adjusting color space from YUV422P8 to YUV444P10 for vsSoftLight
clip = core.resize.Bicubic(clip=clip, format=vs.YUV444P10, range_s="limited")
# color adjustment using SoftLight
clip = core.Argaricolm.Softlight(clip, mode=1, yuvin=601, yuvout=601)
# Chroma adjustment using ChromaShiftSP
clip = chromashift.ChromaShiftSP(clip=clip, X=-4.00, Y=4.00)
Seems like an 'okay' start for the coloring,... (the 0.5 saturation is probably too low, one some chroma denoising is applied too; I would suspect 0.8 might be okay then)

Cu Selur


RE: VHS conversion - lostsnowboardvideos - 23.04.2025

Thank you so much. Will try these after work tonight. Would some of the color restoration help with the tree and snow detail? Or is that also a capture issue?


RE: VHS conversion - Selur - 23.04.2025

I just noticed, the clips luma range is wrong. Wink
Maybe something like:
# adjusting color space from YUV422P8 to RGB24 for vsLevels
clip = core.resize.Bicubic(clip=clip, format=vs.RGB24, matrix_in_s="470bg", range_s="limited")
# adjusting color using Levels on RGB24 (8 bit)
clip = core.std.Levels(clip=clip, min_in=32, max_in=255, min_out=16, max_out=235, gamma=0.70)
for the snow scene:
[Image: grafik.png]
Messing with colors (color grading) isn't really my thing. Smile
Cu Selur


RE: VHS conversion - lostsnowboardvideos - 24.04.2025

These are working great in some of the tests I have been doing.

I think the wobbly frame issue I am experiencing is not having a VCR with TBC capability. Need to pursue one of those.


RE: VHS conversion - Selur - 24.04.2025

I agree, missing TBC is probably the main issue.


RE: VHS conversion - lostsnowboardvideos - 28.04.2025

Updated to the new dev version and now my encodes keep crashing after audio muxing. Debug attached.


RE: VHS conversion - Selur - 28.04.2025

Check the Vapoursynth preview, the problem is probably related to some updated libraries. (zsmooth or mvtools)
I updated the dev yesterday evening, since zsmooth was missing in it.
What CPU are you using?

Cu Selur

Ps.: can look at it after work, afk. atm.


RE: VHS conversion - lostsnowboardvideos - 28.04.2025

CPU is AMD Ryzen 9 5950X 16-Core Processor

Vapoursynth preview shows the following error:

2025-04-27 21:23:14.919
Failed to evaluate the script:
Python exception: Failed to load C:/Program Files/Hybrid/64bit/vsfilters/DenoiseFilter/KNLMeansCL/vsnlm_cuda.dll. GetLastError() returned 126. The file you tried to load or one of its dependencies is probably missing.

Traceback (most recent call last):
File "src\\cython\\vapoursynth.pyx", line 3365, in vapoursynth._vpy_evaluate
File "src\\cython\\vapoursynth.pyx", line 3366, in vapoursynth._vpy_evaluate
File "C:\Users\Computer\AppData\Local\Temp\tempPreviewVapoursynthFile21_23_14_457.vpy", line 18, in
core.std.LoadPlugin(path="C:/Program Files/Hybrid/64bit/vsfilters/DenoiseFilter/KNLMeansCL/vsnlm_cuda.dll")
File "src\\cython\\vapoursynth.pyx", line 3101, in vapoursynth.Function.__call__
vapoursynth.Error: Failed to load C:/Program Files/Hybrid/64bit/vsfilters/DenoiseFilter/KNLMeansCL/vsnlm_cuda.dll. GetLastError() returned 126. The file you tried to load or one of its dependencies is probably missing.



RE: VHS conversion - Selur - 28.04.2025

Ah another dll, I missed.
You can get it over at https://github.com/AmusementClub/vs-nlm-cuda/releases
Putting the dll into your 'C:/Program Files/Hybrid/64bit/vsfilters/DenoiseFilter/KNLMeansCL/' folder should fix the problem.

Cu Selur