Selur's Little Message Board
My video - Printable Version

+- Selur's Little Message Board (https://forum.selur.net)
+-- Forum: Hybrid - Support (https://forum.selur.net/forum-1.html)
+--- Forum: Problems & Questions (https://forum.selur.net/forum-3.html)
+--- Thread: My video (/thread-4482.html)

Pages: 1 2 3


RE: My video - Vhs-Digital-Buddy - 15.09.2026

That is much better. Thank you.

Will give it a try.


RE: My video - Selur - 15.09.2026

Side note: the initial processing of the script will take quite a while, but the processing should be okay.
I'll also look into using SVP or rife instead of mv for the interpolation. (probably tomorrow)


RE: My video - Selur - 16.09.2026

using:
# Separate branch used only to calculate properties. stats = core.std.PlaneStats(clip, plane=0) def set_interp_flag(n, f): f = f.copy() use = False if 0 < n < clip.num_frames - 1: cur = f.props["PlaneStatsAverage"] prev = stats.get_frame(n - 1).props["PlaneStatsAverage"] nxt = stats.get_frame(n + 1).props["PlaneStatsAverage"] use = cur > prev and cur > nxt f.props["_UseInterp"] = int(use) return f # Input = original frames, prop source = stats flagged = core.std.ModifyFrame(clip, stats, set_interp_flag) org = flagged import filldrops core.std.LoadPlugin(path="%FILTERPATH%/FrameFilter/RIFE/librife.dll") clip = filldrops.ReplaceFlagged(flagged, method="rife")
RIFE is used for the interpolation.

Just noticed I forgot to upload the updated filldrops.py I used.
=> uploaded a new dev which includes it.

Cu Selur


RE: My video - Vhs-Digital-Buddy - 17.09.2026

Thanks Selur. 

Been a hectic week. Will have a look over the weekend.


RE: My video - Selur - 17.09.2026

Uploaded a new dev with a reworked "filldrops.ReplaceFlagged" which should be a lot faster. Smile
so using:
# Separate branch used only to calculate properties. stats = core.std.PlaneStats(clip, plane=0) # Calculate which frames need replacing # A frame is marked for replacement if its average luma is higher than the previous and below the next. # This way one frame flashes should get detected. def set_interp_flag(n, f): f = f.copy() use = False if 0 < n < clip.num_frames - 1: cur = f.props["PlaneStatsAverage"] prev = stats.get_frame(n - 1).props["PlaneStatsAverage"] nxt = stats.get_frame(n + 1).props["PlaneStatsAverage"] use = cur > prev and cur > nxt f.props["_UseInterp"] = int(use) return f # Input = original frames, prop source = stats flagged = core.std.ModifyFrame(clip, stats, set_interp_flag) # do the actual replacement of the flagged frames import filldrops clip = filldrops.ReplaceFlagged(flagged, method="mv")
inside the custom section is way more usable. Smile
Remember to also add Denoiser->QTGMC.

(Maybe I'll add some ui elements for this into the Hybrid next week.)

Cu Selur


RE: My video - Vhs-Digital-Buddy - 17.09.2026

That would be great. I've always preferred UI instead of coding. That would help a lot.