Hello,
I started using QTGMC this week and it gives great results. However, I ran into two problems:
1. In the beginning of each video, QTGMC reorders some frames in different order (lasts couple seconds). For instance, if the FPS is 50. Frames would be in this order 1, 2, 3, 4, 12, 13, 14, 15, 5, 6, 7, 8, 13, 14, 15, 16, 17, 18, 23, 24, 25, 26,19, 20, 21, etc.... Its really annoying and i cannot find online what is causing this error. Here is the script,I normally use.
SetFilterMTMode ("QTGMC", 2)
FFmpegSource2("video", atrack=-1)
ConvertToYV12()
AssumeTFF()
QTGMC(preset="Slower", EdiThreads=3)
Spline64Resize(640,480)
Prefetch(10)
2. I receive FFaudio error for many errors and I have to convert videos muted and then add audio later on. Am I missing some kind of codec or script, please?
Thank you very much.
BR
Tomas
+ Reply to Thread
Results 1 to 13 of 13
Thread
-
-
What is the source compression and container ? use mediainfo view=>text
ffmpegsource2 is not necessarily frame accurate for all file types , and prefetch can cause a mess when frames are out of order.
You can try FFVideoSource(threads=1), it sometimes helps and can work with prefetch. Otherwise don't use prefetch(10) .
But it's better to use something frame accurate like DGSource for mpeg2/vc1/avc/hevc - It requires a compatible Nvidia card. But it's frame accurate, robust seeking and reliable
ConvertToYV12 should be ConvertToYV12(interlaced=true) since you're using QTGMC presumably to deinterlace - if the source was not YV12 to begin with . Otherwise you don't need it
For the audio, it might be an old ffms2 version, try updating, or use a different source filter such as LSmashAudioSource or BestAudioSource -
Thanks so much! so much helpful feedback. Here's the outcome:
- Thanks for explaining prefetch. I was deinterlacing same video with Yadiff Avidemux and TMPGEnc Video Mastering as well as checked the video frame by frame and the issue was not in source having frames reordered. However, I wasnt sure what fetch does so now it makes more sense to me, thxI actually slightly bumped it to 15 frames to be more accurate in measuring.
- I changed FFmpegSource to FFvideoSource and it has fixed the issue!I was mainly using this for mpeg files that i copied from DVD (.VOB) and mpeg files i recorded of TV, so it should have worked well, but not sure what happened. Now it works perfect and no glitches.
- Thx for adding interlaced=true to ConvertToYV12. I added it
- Does DGSource have better results than QTGMC? I just downloaded and am testing it. I opened mpeg file recorded from TV in DGIndex and doubled FR and i see color flickering (T row red, B row green and they keep switching). QTGMC is fixing this issue but maybe i have wrong settings in DGsource?
- already downloaded latest ffms2, but it doesnt override FFaudio issue. I downloaded BestAudioSource and it works well stand-alone, but how do i muxe tracks in Avisynth+, please? (im sorry, im a newbie).
This is current script but generates video only:
SetFilterMTMode ("QTGMC", 2)
BestAudioSource(".mpg", track=-1)
FFVideoSource(".mpg", track=-1,threads=1)
ConvertToYV12(interlaced = true)
AssumeTFF()
QTGMC(preset="Slower", EdiThreads=3)
#Spline64Resize(720,576)
Prefetch(15)
I tried to do this, but i got an error in YV12 and all following lines as invalid functions.
SetFilterMTMode ("QTGMC", 2)
audiofile1 = BestAudioSource(".mpg", track=-1)
videofile1 = FFVideoSource(".mpg", track=-1,threads=1)
file1 = audiodub(videofile1,audiofile1)
ConvertToYV12(interlaced = true)
AssumeTFF()
QTGMC(preset="Slower", EdiThreads=3)
#Spline64Resize(720,576)
Prefetch(15)
Thank you very much in advance -
Does DGSource have better results than QTGMC?
MPEG2Source, using DGIndex, relying on DGDecode.dll is very consistent for DVD/MPEG2 sources. You reference the d2v file. Mpeg2Source("file.d2v")
DVD's from DVD-video should always be 4:2:0 , so ConvertToYV12(interlaced=true) should not be required, but it wont hurt to keep it in there
I downloaded BestAudioSource and it works well stand-alone, but how do i muxe tracks in Avisynth+, please?
Code:SetFilterMTMode ("QTGMC", 2) audiofile1 = BestAudioSource(".mpg", track=-1) videofile1 = FFVideoSource(".mpg", track=-1,threads=1) file1 = audiodub(videofile1,audiofile1) file1 ConvertToYV12(interlaced = true) AssumeTFF() QTGMC(preset="Slower", EdiThreads=3) #Spline64Resize(720,576) Prefetch(15)
-
Hello,
thanks so much for all the inputs.. I'm not very technical so it took me a minute to crack, but it seems i got it working.
DGSource:
I think i got it working. i opened file in DGIndexNV, did not deinterlace it and saved as .dgi. Then i adjusted the script to reference .dgi instead of .mpg. This would make the encoding better? For Avi/mpeg2 files, I'll use this. for mp4 and others, ill sourcevideo.
Side Question: Is QTGMC still superior to Deinterlacing in DGIndex?
SetFilterMTMode ("QTGMC", 2)
audiofile1 = BestAudioSource(".mpg", track=-1)
videofile1 = DGSource(".dgi")
file1 = audiodub(videofile1,audiofile1)
file1
ConvertToYV12(interlaced = true)
AssumeTFF()
QTGMC(preset="Slower", EdiThreads=3)
Spline64Resize(768,576)
Prefetch(15)
AudioDub
Thanks. that has fixed the issueYou're the best. The audio is now working fine. In Avidemux, i have to choose lame mp3 instead of AAC (lav) otherwise audio crashes, but i do not hear any difference in quality.
High Prefetch
I have high CPU (I think?) = Intel(R) Core(TM) i7-10750H CPU @ 2.60GHz, 2592 Mhz, 6 Core(s), 12 Logical Processor(s). And havent noticed slower conversion so hopefully it will stay that way, as long as the interlaced order works fine.
Thanks again for your tips. You saved me hours and hours of figuring this out! I spent Thursday-Friday googling everything possible and all i got was a headache. So trully thanks from the bottom of my heart. Youre a lifesaver. -
Sometimes, one source filter works better than another. If both work correctly, then they should give very similar results for mpeg2 (slight differences between mpeg2 decoders), but identical for h264, hevc.
Speed wise, if you're decoding on the GPU, it will save more CPU cycles to filter and encode with GPU, so it should be faster in general to use GPU decoding. But not always, there are exceptions
Side Question: Is QTGMC still superior to Deinterlacing in DGIndex?
DGSource has purevideo deinterlacing using Nvidia, and DGBob which is basically yadif deinterlacing using CUDA
In general, QTGMC will give better results, more smooth and temporally consistent at the "cost" of slower processing, detail loss, possible blurring and temporal artifacts. There are dozens of settings you can adjust in QTGMC to reduce the side effects or customize results. Purevideo deinterlace, or DGBob will generally be much faster, but have more aliasing and deinterlacing artifacts -
oh no! Yadif! had my share of it!
not again. Ill stick with QTGMC.
But you're right, i did notice that videos are tad less sharp but thought it was in my head. I tried to add Sharpness (1.5-2.0) but the results generate too many artifacts so i ended up using smart sharpness, sharpen edges or warp sharp in Avidemux or VirtualDub2 instead and was able to getter better results. But if theres a way to do it directly in AviSynth+, it would save time. -
Yes, there are many other options for sharpening and enhancement options directly in avisynth+ . This is not a full list
http://avisynth.nl/index.php/Category:Sharpeners
But you should also play with the many QTMGC settings , such as decreasing the temporal radius .
http://avisynth.nl/index.php/QTGMC
I find a fairly "bad" side effect of QTGMC on some sources is overdenoising, (dumb) oversharpening when using default settings. The combination of smoothing,denoising, and sharpening sometimes makes the result look like a painting. I almost always adjust the default settings. -
Hi Poisondeathray,
thank you very much for your help and advice. I highly appreciate it.
Apologies for the later reply. I was trying to get pyto-flow running on my PC and after installing python, cuda, anaconda, miniconda, make, Cmake and Lua scripts, my computer stopped working due to mysterious reasons... (btw, i still couldnt run pyto-flow in command prompt).
Anyhoo, i spent last 5 lovely days reinstalling my pc back to factory settings (which was the only way fixing my pc) and now i am back to my one and only love = QTGMC.
I started working around QTGMC as per your advice, I set TR2=0, I wanted to adjust NoiseProcess and other Denoise settings but i keep receiving following error. I have installed additional optional plug-ins for QTGMC as well as put 32-bit FFTW3.ddl and libfftw3f-3.dll into System32 and 64-bit FFTW3.dll and libfftw3f-3.dll into SysWOW64. I also added both system32 and syswow64 into path.
The script is referencing Zs_RF_shared line 1620 which isinput.FFT3DFilter(sigma=sigma, beta=beta, bw=bw, bh=bh, bt=bt, ow=ow, oh=oh, kratio=kratio, sharpen=sharpen, scutoff=scutoff, svr=svr, smin=smin, smax=smax, measure=measure, interlaced=interlaced, wintype=wintype, pframe=pframe, px=px, py=py, pshow=pshow, pcutoff=pcutoff, pfactor=pfactor, sigma2=sigma2, sigma3=sigma3, sigma4=sigma4, degrid=degrid, dehalo=dehalo, hr=hr, ht=ht , plane=plane, ncpu=ncpu) }
Do you know what my computer is trying to tell me? I ran out of ideas.
} -
-
oh wow, thats not very intuitive. I followed ur instructions and it worked like a charm (thanks a lot).
I also changed settings to QTGMC as per your advice to reverse strong denoising (hopefully i got it right), and tested it on a video I ran before. With the new settings, the quality is stellar. The image is very sharp without unnecessary blurring. I did not even have to use a sharpener. Surprisingly, it does not slow down the conversion that much and when i ran the video via Topaz, the upscaling from 420p to 1080p was flawless. It perfectly upscaled and sharpened the video enhancing the quality and details without generating artifacts in wrong places (prior attempt was generating artifacts in all the wrong places without enhancing the right details). I'm trully dumbfounded. Trully thank you.
QTGMC(preset="Slower", SubPel=2, SubPelInterp=2, TR2=0, FPSDivisor = 2, NoisePreset="Slower", NoiseProcess = 2, Denoiser="dfttest", NoiseTR=2, ShutterBlur=3, EdiThreads=3)
Prefetch(10) -
I like these settings most.
QTGMC(preset="slow", matchpreset="slow", matchpreset2="slow", fpsdivisor=2, sourcematch=3, tr1=2, tr2=1, NoiseTR=2, sharpness=0.1) -
Hi KillerTeenGohan,
thanks a lot for your replyThis is really helpful. I tried to combine your settings with mine (script below) and I think i might have overdone it (it now takes 4 hours to process 15 min video
so I think ill try to find middle-way). Thanks for sharing your code, this is really helpful and Ill be tweaking it to get the best results. Highly appreciate your help
ConvertToYV12(interlaced = true)
AssumeTFF()
QTGMC(preset="Slower", matchpreset="slow", matchpreset2="slow", sourcematch=3, SubPel=2, SubPelInterp=2, TR1=2, TR2=0, NoisePreset="Slower", NoiseProcess = 2, Denoiser="dfttest", NoiseTR=2, ShutterBlur=3, sharpness=0.1, EdiThreads=3)
Prefetch(10)
Similar Threads
-
QTGMC TFF not working on Separated fields?
By taigi in forum Video ConversionReplies: 16Last Post: 5th Jun 2021, 10:38 -
QTGMC Avisynth
By juli4561 in forum Video ConversionReplies: 12Last Post: 14th Oct 2020, 17:44 -
how do i load an image sequence into avisynth+ and can i use QTGMC on it ?
By oduodui in forum EditingReplies: 3Last Post: 28th Oct 2019, 16:45 -
QTGMC/IVTC issues on AVISynth/AvspMod
By Fraugster in forum RestorationReplies: 33Last Post: 7th Aug 2019, 07:55 -
Multithreading QTGMC with AviSynth+
By ZetaStax in forum Video ConversionReplies: 5Last Post: 16th May 2019, 07:23