Thank you for making this, it is awesome.
Here is some compiled advice for anyone else that stumbles upon this thread (it was one of the first results for "QTGMC easy" on Google by the way OP, nice!). I had never used this software before and discovered all this in the last couple hours with the help of this thread.
Tip 1: Enable Multithreading to speed it up substantially.
If you have a modern computer you can substantially increase performance by enabling multithreading. To quote RogerTango from the previous page:
Tip 2: QTGMC Presets
You can easily change the preset from the default "faster" to whatever one you want. The slower ones theoretically look better but also run slower.
Here is a comparison someone did: http://macilatthefront.blogspot.com/2021/03/lets-test-qtgmc-settings.html
I settled on "medium". It brought me down from 500 FPS to 300 FPS but the edges look a little smoother and sharper to me and it's still pretty fast.
Just replace "QTGMC(preset="Faster")" with "QTGMC(preset="Medium")" or whatever you want to use.
Tip 3: Disable FPS doubling.
By default, QTGMC will create a progressive frame from each interlaced frame, and thus double the framerate of your video. For example if the interlaced video is 24 FPS, it will come out of QTGMC at 48 FPS. This is cool, but if you want to disable this so the output video is the same as the input (24 FPS in -> 24 FPS out) you can add this line underneath the QTGMC (Preset="Medium") line.
I tend to do this if I'm feeding them into Topaz Video AI afterwards, as it'll take twice as long if there are twice as many frames and Topaz already takes a real long time. Double FPS is nice too though.SelectEven()
Tip 4: Check that your source is actually interlaced.
Depending on the source of your video, it might already be de-interlaced (poorly).
The video that got me on this QTGMC ride had actually already been deinterlaced, so when I ran QTGMC using the default settings it looked pretty bad and not how you would expect it to.
I made a 2nd file called "repair.avs". You can run it the same way as the normal QTGMC.avs. You could also just replace the bottom part of QTGMC.avs with the bottom part from the below.
This script does 2 passes of "damage repair" de-interlacing on already progressive video. I would recommend trying this if your video is progressive, or if you think it's interlaced but it comes out looking bad with the default settings.
Note that if you're using a progressive input, and you do "SelectEven()" as mentioned in tip #3, you'll end up with a video that is actually half FPS which you probably don't want (24 FPS in -> 12 FPS out). Thus it is not included here.#Enable MT
#QTGMC portable script - Faster mode
#Tested with Avisynth+ 3.7.2(r3661) 64 bits and FFMPEG 5.1.2-full_build-www.gyan.dev 2022-09-26
#To know more about AviSynth go to : http://avisynth.nl/
#To know more about FFmpeg go to : https://ffmpeg.org/
#FFmpegSource v2.40 plugin : http://avisynth.nl/index.php/FFMS2
#To know more bout loading video files in Avisynth : http://avisynth.nl/index.php/FAQ_loading_clips
#MaskTools2 v2.2.30 plugin : http://avisynth.nl/index.php/Masktools2
#Rgtools v1.2 plugin : http://avisynth.nl/index.php/RgTools
#MVTools v2.7.45 with depans v20210608 plugin : http://avisynth.nl/index.php/MVTools
#Nnedi3 v0.9.4.61 Plugin : http://avisynth.nl/index.php/Nnedi3
#Yadifmod2 v0.2.7 Plugin (ONLY for Ultra Fast setting mode in QTGMC) : http://avisynth.nl/index.php/Yadifmod2
#FFT3DFilter v2.10 Plugin (ONLY for Very Slow and Placebo modes) : http://avisynth.nl/index.php/FFT3DFilter
#LoadDLL v10.7 Plugin (ONLY for Very Slow and Placebo modes) : http://avisynth.nl/index.php/LoadDLL
#Loading libfftw3f-3.dll (ONLY for Very Slow and Placebo modes) : https://www.fftw.org/
#Zs_RF_Shared v1.159 script : http://avisynth.nl/index.php/Zs_RF_Shared
#QTGMC v3.383s script : http://avisynth.nl/index.php/QTGMC
#Opening of video file (the video file opened here is "in.mp4" and it has NO audio tack, you must replace "in.mp4" by the name of your video file)
#Opening of video file (the video file opened here is "in.mp4" and it has an audio track, you must replace "in.mp4" by the name of your video file)
#Converion to YV12 color format: http://avisynth.nl/index.php/ConvertToYV12
#Applying QTGMC in Medium mode
t = QTGMC( Preset="Medium", InputType=2 )
b = QTGMC( Preset="Medium", InputType=3, PrevGlobals="Reuse" ) # Reuse motion vectors from first call for a good speed-up
Repair( t, b, 1 )
# Enable MT using 18 cores (logical, not physical)!
So that's all I've got. Thanks again to OP and RogerTango for all the information, I just figured I'd compile it into one post and try to explain the things that confused me.
+ Reply to Thread
Results 31 to 60 of 65
Last edited by Smell; 8th Feb 2023 at 19:49.
Also, I may have to re-visit the QTGMC project with my "newly acquired" Python programming skills, and show how to incorporate 2 pass FFMPEG LOUDNORM filter, which in my opinion, has been far better than any other COMPAND or volume "limiting" filter to date, the wife and I (both in our 50's) are able to *enjoy* watching a program or movie with one set volume level and not have loud bangs and barely audible voice...
Presumably one is calling QTGMC() to deinterlace the video. So that the ConvertToYV12() just before calling QTGMC() should be ConvertToYV12(interlaced=true).
People may not have seen the the problem because the video they imported was already YV12 -- ConvertToYV12() does nothing if the video is already YV12. But if the source is something else (YUY2, RGB, etc.) leaving out the "interlaced=true" will blend the chroma of the two fields together and lead to obvious artifacts:
[Attachment 70403 - Click to enlarge]
The frame should have looked like:
[Attachment 70404 - Click to enlarge]
Hi Smell and jagabo, Thank you both for your replies and for compiling Andrews advices and also additional informations.
The aim of this pack is to bring people a simple way to have and use QTGMC. So I stayed really simple with the syntax of the script. People who want to use the full power of QTGMC need to document themselves on the avisynth wiki page.
QTGMC is anounced as a deinterlacer, event if it's doing more (noise reducer, etc...). So this is why this pack is intended for. But as you can see, there is avisynth+ incluses so you can do even more things related to it not only using QTGMC.
I think the main problem with this pack is I'm adding a progressive video, and the script is opening it. It would be better if I could add an interlaced video. If some one have a link to a free, public domaine, interlaced video that I could add to the pack this would be of great interest.
Please have all a nice day
Last edited by Hunk91; 18th Apr 2023 at 13:04.
Well, I played with QTGMC-Easy for a while, and then moved on... I was using FFMPEG's "built in" deinterlace filter by calling Nvidia/CUDA YADIF, which looked real good and was FaSt!
However at the end of the day, it still did not do as well as QTGMC, so I have gone back to using it for deinterlace, and for progressive source too (QTGMC has the details in the RTFM) so the video is denoised and sharpened to good results.
My encode FPS took a hit, but I think its worth it to have better end quality.
I am encoding my personal library from VOBs to HEVC/MP4 using DGIndex and FFMPEG and streaming from a NUC running Jellyfin, the wife can easily watch what she wants on the Roku with Jellyfin, which has a GREAT visual interface and is easy for her to navigate. The whole VOB to MP4 process is executed with Python, since DOS batch cant do what Py can do!!
Thats all for now, thanks much!
Also, you can try my scripts: https://app.mediafire.com/wrpd1f5ayoavb (FFMPEG-YOUTUBE-BATCH-SCRIPTS_WITH_UTILITIES.zip). Run "set-template.bat", type "2" and press Enter to select "QTGMC Template" or just edit TEMPLATE-1/2.TXT. Drag and drop mediafile or directory on the "generate-avs-encode-drag-and-drop.bat" and encoding will begin.
"generate-avs-drag-and-drop.bat" - generate template based .avs scripts to the "GENERATED_SCRIPTS" directory by drag and drop mediafile or directory on this script.
"encode-avs-scripts-or-drag-and-drop.bat" - by normal running encodes the videos from the generated scripts in "GENERATED_SCRIPTS" directory or just reencodes drag and dropped on it mediafile without using AviSynth.
Could you please guide me so that I don't understand whether the QTGMC is working or not on my machine? As I followed your folder with instructions but don't know if is it working or not.
I am stuck on it please help!!!
Iam using the following script
But I wanted to know that this QTGMC is it working on only interlaced videos or is it ok to make little bit sharpen the any video?
It works for interlaced vidéos, as well as progressive.
If your video is interlaced, you should have doubled the framerate if QTGMC is working.
For sharpening, you will have to add an external sharpening filter. Check on avisynth website to fins à sgarpening filtrer that suis you.
I tried your script with the progressive videos but not getting any effect in that video I don't understand how they differentiate between before and after video QTGMC I don't see any difference infacts the video got some noisy or dull quality
How do we identify that videos is being compressed by QTGMC?
Also I have grab all the code from your zip extract it and add the choice of my video but not getting any effect on that. And I have read one article where they mention QTGMC+AIE video-name file what it indicates?
As per your thoughts or suggestions Preset 'faster' is not suit for my video?
Thank you for your help
You should open a new thread in the processing forum with à short sample of your video. Others may help you to improve the processing of your video.
Could you please guide me what should I do like I'll try to use QTGMC very slow preset and will upload the screenshot so you can understand my concern and you will probably provide a solution to it. For looking much better that video.
FFmpegSource2("Interlaced Sample VHS.mp4", atrack=1)
QTGMC(Preset="Very Slow", EdiThreads=3)
ConvertToYV12(interlaced = true)
QTGMC(preset="slow", EdiThreads=3, matchpreset="slow", matchpreset2="slow", fpsdivisor=2, sourcematch=3, tr1=2, tr2=1, NoiseTR=2, sharpness=1.2)
BUt still not getting the proper result