17.05.2025, 22:08
Hello all! I am new to Hybrid (and VirtualDub, for that matter) but have recently completed the capture process of a box of old home video Video8/Hi8 tapes. I captured into VirtualDub (720x480 @ 29.97 interlaced, YUV 4:2:2 8-bit, PCM audio) and I am trying to use Hybrid to deinterlace with QTGMC and then apply some basic processing to clean it up. There is a good amount of chroma noise (and just general noise/grain) happening on a lot of the footage, especially the parts that were shot in suboptimal lighting conditions (of course.)
I have about 20 hours of total footage that I want to de-interlace, filter/process and encode to H.264 in an mp4 container at a reasonable file size/bitrate for easy sharing with the family over Google Drive.
I figured that the best way to learn would be to immerse myself in the settings for a few hours and play around with them, checking in with old forum threads via Google Search when I really got stumped. I came to realize a few things, and I want to make sure they're not flawed logic:
1) upscaling to 1440x1080 (input PAR 10:11 and output PAR convert to square pixels) as opposed to the 720x540 that I was originally planning on seemed to produce much higher quality results from the VapourSynth filters that I ended up using, namely MLDegrain and MC Temporal Denoise.
2) Using QTGMC on Fast or Faster setting seemed to minimize its own denoise/degrain filtering, and I got seemingly better results using QTGMC on Fast/Faster + MLDegrain, MC Temporal Denoise, CAS Sharpen than I did using QTGMC on a slower setting that appears to try and accomplish more of this itself.
3) I started out by using specific bitrate (2-pass) but after doing some online research, realized that CRF (1-pass, QF set to 18) is probably what I am actually after. I am trying to keep the file sizes manageable in order to host 20+ hours of video in cloud storage indefinitely for family access, but I don't want to sacrifice the bitrate so much that the end-product looks like junk.
4) I tried a LOT of settings to reduce noise/grain without making everyone look too plastic-y or over-smoothed, and ultimately I'm still not sure if I'm satisfied. Part of me thinks that playing back the interlaced HuffYUV capture looks a good amount better/sharper than the deinterlaced version, albeit annoying to watch on a progressive display. To try and restore some of this sharpness, I ended up using CAS (set to 0.7) and then GrainFactory 3 to reintroduce a moderately sized grain which made things look more "correct" to my brain, even though I know it is trying to emulate a filmic grain and doesn't *really* make sense to add over this type of footage. Unfortunately, using the default grain size settings, this ballooned my file sizes (still CRF, 18) by a gargantuan amount - over 3x!
So... is there a better way to do that? The logic behind my current settings has been:
-Capture file is as raw as possible.
-Deinterlace with QTGMC, Fast/Faster settings to avoid it doing too much processing on its own
-Degrain with MLDegrain (strength 3), denoise with MC Temporal Denoise (medium)- I messed with the intensity of both of these and found this to be a good balance.
-Re-sharpen with CAS (0.7) - I kept going between 0.5, 0.6 and 0.7 but decided on the latter.
-Reintroduce fake grain/noise with GrainFactory to visually make it look more like a natively "soft" picture from a vintage format again as opposed to a smoothed-over digitized plastic-fest.
-Export H.264 in .mp4 container using CRF (QF 18), 1440x1080, 59.94fps deinterlaced for an ideal modern, shareable final file.
The only issue I am having is that adding back grain is ballooning my file sizes when set to CRF 18, and setting them instead to constant bitrate 2-pass - even if I choose a setting like 14000 kbps that should be high enough - introduces very obvious compression artifacts on many scenes, presumably because the bitrate is still not high enough to make heads or tails of the small grain. If I turn off GrainFactory, I have small file sizes and ample detail but I cannot shake the feeling that the end product looks extremely processed/fake. If I turn off GrainFactory *and* reduce the strength of MLDegrain and MLTempNoise, I have a lot of chroma noise and visual evidence of the tape degradation.
So I am trying to figure out what I need to change about my current settings (if I am even using the best filters for my project to begin with) to yield ideal file sizes, and moderate denoise/degrain without looking silly.
Another problem I ran into this morning is that whenever I select any of the De-Halo filters, something breaks in the script and I can't run them - it says "expected 'else' after 'if' expression (dehalo.py)". There is some serious Haloing in the footage that will need to be addressed, but I didn't get into troubleshooting this earlier.
Anyway, I know that this type of filtering is not a one-size fits all, but I am looking for settings that I can broadly apply to the entire series of tapes. I will of course be hanging onto the HuffYUV avi "masters" in case I want to revisit this years down the road and try to get a better result.
Thanks in advance for any help/assistance you can provide!
I have about 20 hours of total footage that I want to de-interlace, filter/process and encode to H.264 in an mp4 container at a reasonable file size/bitrate for easy sharing with the family over Google Drive.
I figured that the best way to learn would be to immerse myself in the settings for a few hours and play around with them, checking in with old forum threads via Google Search when I really got stumped. I came to realize a few things, and I want to make sure they're not flawed logic:
1) upscaling to 1440x1080 (input PAR 10:11 and output PAR convert to square pixels) as opposed to the 720x540 that I was originally planning on seemed to produce much higher quality results from the VapourSynth filters that I ended up using, namely MLDegrain and MC Temporal Denoise.
2) Using QTGMC on Fast or Faster setting seemed to minimize its own denoise/degrain filtering, and I got seemingly better results using QTGMC on Fast/Faster + MLDegrain, MC Temporal Denoise, CAS Sharpen than I did using QTGMC on a slower setting that appears to try and accomplish more of this itself.
3) I started out by using specific bitrate (2-pass) but after doing some online research, realized that CRF (1-pass, QF set to 18) is probably what I am actually after. I am trying to keep the file sizes manageable in order to host 20+ hours of video in cloud storage indefinitely for family access, but I don't want to sacrifice the bitrate so much that the end-product looks like junk.
4) I tried a LOT of settings to reduce noise/grain without making everyone look too plastic-y or over-smoothed, and ultimately I'm still not sure if I'm satisfied. Part of me thinks that playing back the interlaced HuffYUV capture looks a good amount better/sharper than the deinterlaced version, albeit annoying to watch on a progressive display. To try and restore some of this sharpness, I ended up using CAS (set to 0.7) and then GrainFactory 3 to reintroduce a moderately sized grain which made things look more "correct" to my brain, even though I know it is trying to emulate a filmic grain and doesn't *really* make sense to add over this type of footage. Unfortunately, using the default grain size settings, this ballooned my file sizes (still CRF, 18) by a gargantuan amount - over 3x!
So... is there a better way to do that? The logic behind my current settings has been:
-Capture file is as raw as possible.
-Deinterlace with QTGMC, Fast/Faster settings to avoid it doing too much processing on its own
-Degrain with MLDegrain (strength 3), denoise with MC Temporal Denoise (medium)- I messed with the intensity of both of these and found this to be a good balance.
-Re-sharpen with CAS (0.7) - I kept going between 0.5, 0.6 and 0.7 but decided on the latter.
-Reintroduce fake grain/noise with GrainFactory to visually make it look more like a natively "soft" picture from a vintage format again as opposed to a smoothed-over digitized plastic-fest.
-Export H.264 in .mp4 container using CRF (QF 18), 1440x1080, 59.94fps deinterlaced for an ideal modern, shareable final file.
The only issue I am having is that adding back grain is ballooning my file sizes when set to CRF 18, and setting them instead to constant bitrate 2-pass - even if I choose a setting like 14000 kbps that should be high enough - introduces very obvious compression artifacts on many scenes, presumably because the bitrate is still not high enough to make heads or tails of the small grain. If I turn off GrainFactory, I have small file sizes and ample detail but I cannot shake the feeling that the end product looks extremely processed/fake. If I turn off GrainFactory *and* reduce the strength of MLDegrain and MLTempNoise, I have a lot of chroma noise and visual evidence of the tape degradation.
So I am trying to figure out what I need to change about my current settings (if I am even using the best filters for my project to begin with) to yield ideal file sizes, and moderate denoise/degrain without looking silly.
Another problem I ran into this morning is that whenever I select any of the De-Halo filters, something breaks in the script and I can't run them - it says "expected 'else' after 'if' expression (dehalo.py)". There is some serious Haloing in the footage that will need to be addressed, but I didn't get into troubleshooting this earlier.
Anyway, I know that this type of filtering is not a one-size fits all, but I am looking for settings that I can broadly apply to the entire series of tapes. I will of course be hanging onto the HuffYUV avi "masters" in case I want to revisit this years down the road and try to get a better result.
Thanks in advance for any help/assistance you can provide!