25.07.2020, 10:52
(24.07.2020, 20:48)Selur Wrote: Hybrid can already handle 64bit Avisynth, you just don't know how to tell Hybrid to use 64bit Avisynth.
I'm currently not adding it to official releases since:
a. it would add an additional 200+MB to Hybrid
b. some filters are not supported
c. more stuff to maintain
d. I'm uncertain whether 64bit Avisynth will replace 32bit Avisynth and some filters get lost or if there really will be an option to switch between 32bit and 64bit Avisynth.
Cu Selur
Tell me, tell me!
Hybrid has a problem with the order in which masking and resizing is done. As you probably know, 99% of my sources are from consumer analog formats like VHS.
To mask a video (hide overscan, matte with black), you crop it, then pad back to 720x480/576, then resize to 4:3 AR (640x480 NTSC, 720x540 PAL).
So, in order to do this, I have to use Avisynth (32 or 64). For example:
### Typical VHS overscan crop
Crop(24,4,-14,-14)
AddBorders(20, 8, 18, 10) # left,top,right,bottom
spline36resize(640,480)
Easy, right?
Well, not quite. Since it's better to deinterlace before a mask (not required, but more ideal), I also run QTGMC first. And that's where the problem comes in.
Avisynth QTGMC 32-bit is slow ... SLOW! ... compared to 64-bit. Like 2x-3x slower to process. Yes, you can add the MT/+ syntax to make it faster, but it's just not stable. And it seems to make Hybrid less stable, and sometimes cascades to Hybrid crashing as well (usually just encode crashes, but not always). I'm not fond of the +32 version in general (+64 works perfectly).
Yes, I could learn Vapoursynth for the exact minimalist script (QTGMC, crop, addborder, resize), but there have been times where I wanted to run something more complex like KNLmeansCL (64-bit DLL), and could not. Had to process to another intermediary lossless, then encode that in Hybrid.
I keep touting Hybrid as a GUI for Avisynth newbie users (start Hybrid, then learn AvsPmod+Avisynth). Also a good lazy app, even if you know the scripting, I use it frequently. But it does have some limitations in the order of operations. Trying to mask results in stretched AR with wrong matting.
I tried to used Avisynth custom code within Hybrid, but it always crashed. Nothing special, just the Crop() and AddBorders(), not even the resizing, as test to 720x480 output. Encode crashed 1st second it started. So I was forced to write an AVS script, then open it in Hybrid. And it works ... just REALLY, REALLY slowly due to no x64.
In terms of program size ... so? The best apps are often larger. Photoshop is huge.
If your worried about something secondary (in regards to size), like costs to host the larger files, then PM for email, let's talk. That's not a concern, and I support your project.
Some filters not being supported? Are you referring to general 32/64 issue?
Yes, more stuff to maintain, but I think it's worth it. Even if only QTGMC works well, for now (or foreseeable fitire), it'd be a win. You'd need some sort of checkbox with a warning ("SOME STUFF MAY NOT WORK, ONLY FOR ADVANCED USERS!"), to switch out of 32-bit processing to 64.
In terms of replace, do you refer to filters trying to overwrite one another? Just do the Avisynth+ route. I don't like +32, and do not have it installed. I have the official version. But I then have +64 installed, and use it frequently. Hybrid already uses 32 (isn't it self-contained?), and 64 shouldn't be much different.
Thanks for reading.
Great app you have here, and I want to help make it better.
I make make a new thread on the order of operations issue. Perhaps that can be addressed more quickly. My current project is taking 3x longer than it should. Interlaced VHS > H264, bob QTGMC and masked (nothing else).