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
#11
Will look at it when I'm back home.
Cu
Selur
----
Dev versions are in the 'experimental'-folder of my GoogleDrive, which is linked on the download page.
Reply
#12
Really appreciate all your help.
Reply
#13
(Yesterday, 04:11)Selur Wrote: What happens if you tell Hybrid, that your source is tff instead of progressive?
(Filtering->(De-)Interlace/Telecine->Overwrite input scan type to->top field first)
I can look at it after work this evening. (Preparing to go to work atm.)
A sample where the horizontal movement of objects isn't mainly in the dark would be better.

Cu Selur

The figures still look ghostly, and it added some extra flashes about in the middle to slight below middle of the screen, which were not there before.
Reply
#14
Okay, the source seems to be field-shifted not interlaced. (so a field matcher like tfm or vfm should be used)
Also, this probably needs some custom scripting. Sad
I'm looking at it to see whether I can come up with something, but no promisses.

Cu Selur
----
Dev versions are in the 'experimental'-folder of my GoogleDrive, which is linked on the download page.
Reply
#15
Try the following:
  • Load your clip into Hybrid
  • set "Filtering->(De-)Interlace/Telecine->Overwrite input scan type to" to "field-shifted"
  • switch to the Filtering->Vapoursynth tab, press "Show Vapoursynth script view" to see the generated script
    It should contain
    clip = core.tivtc.TFM(clip, mChroma=False)
  • enable "Compare view" and "Synth auto refresh"
  • switch to the Filtering->Vapoursynth->Custom tab, select "Grayworld" check the checkbox and enter:
    core.std.LoadPlugin(path="%FILTERPATH%/../Vapoursynth/Lib/site-packages/vapoursynth/plugins2/akarin/libakarin.dll") def set_interp_flag(n, f): f = f.copy() mics = f.props.get("TFMMics") use = (mics is not None and len(mics) >= 3 and (mics[0] == 256 or mics[1] == 256)) f.props._UseInterp = 1 if use else 0 return f # Keep this clip purely as a prop source for _UseInterp. flagged = core.std.ModifyFrame(clip, clip, set_interp_flag) clip = flagged MAX_RUN = 8 # bigger than the longest run you actually expect for _ in range(MAX_RUN): prev = core.std.BlankClip(clip, length=1) + \ core.std.Trim(clip, 0, clip.num_frames - 2) clip = core.akarin.Select([clip, prev], flagged, "x._UseInterp 1 0 ?")
  • enable Filtering->Vapoursynth->Denoise->QTGMC
Now open the "Vapoursynth Preview" and check the preview, if it worked.
(the full script I used: https://pastebin.com/qtGMck0Z ; you can compare it to your Vapoursynth Script View)

Here's the clip I got as output for segment3.
It probably should also take scene changes into account, but I really like the result.

Cu Selur
----
Dev versions are in the 'experimental'-folder of my GoogleDrive, which is linked on the download page.
Reply
#16
Hi Cu Selur,
I just had a look at the clip. First 24 seconds looks really good, but then at 25 seconds onwards it stutters here and there and it flashes.
Reply
#17
Yeah, not perfect; the scene changes are the problematic part.
Will look at it some more tomorrow, and think about on how scene changes need to be considered. Smile
(got 13hr work days atm., so not much time to tinker with it)

Cu Selur
----
Dev versions are in the 'experimental'-folder of my GoogleDrive, which is linked on the download page.
Reply
#18
Really appreciate your efforts. Thanks so far.
Reply
#19
try:
clip = core.std.PlaneStats(clip, plane=0) def set_interp_flag(n, f): f = f.copy() mics = f.props.get("TFMMics") use = ( mics is not None and len(mics) >= 4 and (mics[4] < 256 or f.props.get("PlaneStatsMax") > 250) and (mics[0] == 256 or mics[1] == 256 or (mics[3] == 256) and (f.props.get("PlaneStatsMax") > 236)) ) f.props["_UseInterp"] = 1 if use else 0 return f flagged = core.std.ModifyFrame(clip, clip, set_interp_flag) clip = flagged import filldrops clip = filldrops.ReplaceFlagged(flagged,method="mv")
seems somewhat better, but still not 'perfect'.

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)