View Single Post
Old 1st May 2022, 08:31   #4  |  Link
JustinTArthur
Registered User
 
Join Date: Feb 2022
Location: Austin, TX
Posts: 6
Quote:
Originally Posted by mikewando View Post
Wow scan_interlaced looks super cool! I really like the deep dive too, both content and format.
Thanks for taking a look!

Quote:
Originally Posted by mikewando View Post
I've been using FrameEval for the example situation presented for vsfieldkit.group_by_combed.
What you're doing with FrameEval is in many ways better than group_by_combed. I'd recommend keeping it for your use-case. FrameEval is better here because it works in line with VapourSynth's way of doing things: stacking filters behind the scenes in a non-blocking way until frames are requested, e.g. by vspipe.

vsfieldkit.group_by_combed requests frames itself, forcing your filter stack to process content from the source all the way through your filters so far, blocking until it gets those frames. This makes for an elegant programming experience given there are no callbacks involved, but it's rarely faster.

All that said, here are some things it is good for:
  • Cutting and splicing. FrameEval doesn't have much for cutting or pulling out contiguous sub-clips of frames.
  • Introducing new frames. If field matching failed because a segment contains native 60i and you actually want to splice in bob-doubled frames from that into your otherwise de-telecined frames, you can do that with group_by_combed.
  • Writing a Python script for outputting analysis instead of frames.

I should definitely point more to FrameEval and ModifyFrames in the docs for those funcs and explain the use-cases a bit.

Last edited by JustinTArthur; 4th May 2022 at 08:50. Reason: Reverted to original
JustinTArthur is offline   Reply With Quote