Selur's Little Message Board

Full Version: My video
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Pages: 1 2
Will look at it when I'm back home.
Cu
Selur
Really appreciate all your help.
(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.
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
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
    Code:
    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:
    Code:
    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
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.
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
Really appreciate your efforts. Thanks so far.
try:
Code:
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
Pages: 1 2