This forum uses cookies
This forum makes use of cookies to store your login information if you are registered, and your last visit if you are not. Cookies are small text documents stored on your computer; the cookies set by this forum can only be used on this website and pose no security risk. Cookies on this forum also track the specific topics you have read and when you last read them. Please confirm whether you accept or reject these cookies being set.

A cookie will be stored in your browser regardless of choice to prevent you being asked this question again. You will be able to change your cookie settings at any time using the link in the footer.

My video
#21
That is much better. Thank you.

Will give it a try.
Reply
#22
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)
----
Dev versions are in the 'experimental'-folder of my GoogleDrive, which is linked on the download page.
Reply
#23
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
----
Dev versions are in the 'experimental'-folder of my GoogleDrive, which is linked on the download page.
Reply
#24
Thanks Selur. 

Been a hectic week. Will have a look over the weekend.
Reply
#25
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
----
Dev versions are in the 'experimental'-folder of my GoogleDrive, which is linked on the download page.
Reply
#26
That would be great. I've always preferred UI instead of coding. That would help a lot.
Reply
#27
Uploaded a new dev with ui support for this.
I rewrote it a bit to make it more generic and added it under "Filtering->Vapoursynth->Frame->Stabilize->FixFlicker".
Try:
  • loading your clip into Hybrid
  • setting "Filtering->(De-)Interlace/Telecine->Overwrite scan type to" to 'field-shifted'
  • enable "Filtering->Vapoursynth->Denoise->QTGMC" and select "Input type" 2
  • enable "Filtering->Vapoursynth->Frame->Stabilize->FixFlicker" and set "max. flash length" to 2 and "min. luma diff." to 0.1 (these values seem to work fine for the segments I know)
  • go to "Filtering->Vapoursynth->Misc->Filter Order/Queue" and move QTGMCFilter above FixFlicker.
check Vapoursynth Preview with 'Compare View' enabled to see what happens.

If you have different sources you might have to adjust the FixFlicker values used. (use Vapoursynth Preview with debug enabled)
If you notice interpolation artifacts in the replaced frames, try a different interpolation method.

Cu Selur
----
Dev versions are in the 'experimental'-folder of my GoogleDrive, which is linked on the download page.
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)