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:
Where the prefetch is (4), you can put however many logical processors you want to use. I'm on a R9 5900X 12c/24t and put 18 which took me from 120 FPS with the default settings to 490 FPS. It'll rip through a 90 minute video in about 10 minutes.
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
SetFilterMTMode("DEFAULT_MT_MODE", MT_MULTI_INSTANCE)
#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
LoadPlugin("ffms2.dll")
#MaskTools2 v2.2.30 plugin : http://avisynth.nl/index.php/Masktools2
LoadPlugin("masktools2.dll")
#Rgtools v1.2 plugin : http://avisynth.nl/index.php/RgTools
LoadPlugin("Rgtools.dll")
#MVTools v2.7.45 with depans v20210608 plugin : http://avisynth.nl/index.php/MVTools
LoadPlugin("mvtools2.dll")
#Nnedi3 v0.9.4.61 Plugin : http://avisynth.nl/index.php/Nnedi3
LoadPlugin("nnedi3.dll")
#Yadifmod2 v0.2.7 Plugin (ONLY for Ultra Fast setting mode in QTGMC) : http://avisynth.nl/index.php/Yadifmod2
LoadPlugin("yadifmod2.dll")
#FFT3DFilter v2.10 Plugin (ONLY for Very Slow and Placebo modes) : http://avisynth.nl/index.php/FFT3DFilter
LoadPlugin("fft3dfilter.dll")
#LoadDLL v10.7 Plugin (ONLY for Very Slow and Placebo modes) : http://avisynth.nl/index.php/LoadDLL
LoadPlugin("LoadDLL.dll")
#Loading libfftw3f-3.dll (ONLY for Very Slow and Placebo modes) : https://www.fftw.org/
LoadDLL("libfftw3f-3.dll")
#Zs_RF_Shared v1.159 script : http://avisynth.nl/index.php/Zs_RF_Shared
Import("Zs_RF_Shared.avsi")
#QTGMC v3.383s script : http://avisynth.nl/index.php/QTGMC
Import("QTGMC.avsi")
#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)
#FFMpegSource2("in.mp4")
#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)
FFMpegSource2("in.mp4",atrack=1)
#Converion to YV12 color format: http://avisynth.nl/index.php/ConvertToYV12
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)!
Prefetch(18)
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.
Try StreamFab Downloader and download from Netflix, Amazon, Youtube! Or Try DVDFab and copy Blu-rays! or rip iTunes movies!
+ Reply to Thread
Results 31 to 60 of 65
Thread
-
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...
Andrew -
Presumably one is calling QTGMC() to deinterlace the video. So that the ConvertToYV12() just before calling QTGMC() should be ConvertToYV12(interlaced=true).
-
-
Sorry, I should have specified: I was referring to the qtgmc.avs scripts in Hunk91's archives in his original post. He's simply calling QTGMC() with no arguments -- so he's deinterlacing the video, not cleaning progressive frames.
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
Best regardsLast 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!
Andrew -
Code:
QTGMC(Preset="Medium",InputType=1)
-
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. -
Hello,
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!!! -
Hi davexnet,
Iam using the following script
SetFilterMode('QTGMC','2')
FFMpegSource2('XXX', atrack=1)
ConvertToYV12()
QTGMC(Preset='faster')
Prefetch(10)
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. -
Hello Hunk91
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 -
QTGMC uses Avisynth. So you can use QTGMC with every softwares which are compatible with Avisynth.
In your case I would recommend Virtualdub, but you will have to install Avisynth, not this version. -
Thank you for your cooperation.
I already installed Avisynth+ 64 bit with necessary plugins along with VirtualDub2 in my machine but as I said when I add the script and make the changes but no changes will shown un VirtualDub2 preview -
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.
-
SetFilterMTMode("QTGMC", 2)
FFmpegSource2("Interlaced Sample VHS.mp4", atrack=1)
ConvertToYV12()
AssumeBFF()
QTGMC(Preset="Very Slow", EdiThreads=3)
#Spline64Resize(720, 540)
Spline64Resize(1920,1080)
Prefetch(10) -
SetFilterMTMode("QTGMC", 2)
FFVideoSource("McCartney-MPEG2_1080-interlaced_sample.mkv")
ConvertToYV12(interlaced = true)
AssumeTFF()
QTGMC(preset="slow", EdiThreads=3, matchpreset="slow", matchpreset2="slow", fpsdivisor=2, sourcematch=3, tr1=2, tr2=1, NoiseTR=2, sharpness=1.2)
Spline64Resize(1920,1080)
Prefetch(10)
BUt still not getting the proper result
Similar Threads
-
Qtgmc-GUI. A simple encoder for your Qtgmc scripts.
By ProWo in forum Video ConversionReplies: 17Last Post: 4th Mar 2023, 03:01 -
"Good-Enough" QTGMC/FFMPEG Presets?
By Okiba in forum Video ConversionReplies: 6Last Post: 6th Nov 2020, 13:31 -
Having trouble with probably an embarrassingly easy FFMpeg routine
By CursedLemon in forum Video ConversionReplies: 3Last Post: 6th Oct 2020, 13:48 -
Deinterlacing & saving HD footage from pro cameras (QTGMC ffmpeg question)
By HighDeaf in forum Video ConversionReplies: 8Last Post: 23rd Mar 2020, 21:22 -
I think this just needs QTGMC...
By pooksahib in forum Video ConversionReplies: 2Last Post: 30th May 2019, 04:12