Well, it wasn't as terrifying as it seemed at first. I have QTGMC 3.32 working with Avisynth (at least to the point where it could open your script). I also educated myself about what AviSynth is in the first place, which seems like a rather reasonable move. But, you know, I had to see for myself what the filter did before getting my feet in the mud...
Ok, so I checked the StaxRip .avsi file and it says it's "QTGMC 3.358, by Vit, 2012, 2018 mod by A.SONY". So that means I have both versions running separately now, one with AviSynth and this modded version with StaxRip. I'll check later, I think I can send my own parameters to override whatever comes defaulted in StaxRip's QTGMC profiles (if I want to try specific things like the noise reduction stuff I mentioned earlier). But in time (and if your patience doesn't run out) I might be able to do my tests direcly changing the script, or at least better understand how exactly StaxRip is applying the filter.
Thanks a lot once again for your support!
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 96
Thread
-
Last edited by MGRV; 14th Dec 2018 at 01:04.
-
Everyone feels like they're getting into unchartered territory when it comes to Avisynth and its maze of filters. Somehow even a klutz like me makes it through.
I have some QTGMC 3.3xx versions in separate plugin folders, and even some ancient plugins for scripts that go back a few years. It's not that much of a headache to use LoadPlugin() and Import() to pull them out of their home folders in a script, as I keep up a trove of text files with potboiler text that I just paste into a script. There's also a text file of pre-typed statements and very short routines that I've copied from forum examples.
You can also get some quick answers by using Google to get into the Avisynth wiki pages. Go to Google search and enter "Avisynth" followed by a function name or command such as "Crop" (which connects you to the wiki page at http://avisynth.nl/index.php/Crop). Avisynth also installs its own Help. if you haven't found it yet, go into your program listings in the Start menu, find the Avisynth group, open the group and click on "Avisynth documentation". I find the wiki pages often have more info and more pictures to help non-geeks like myself.
Somewhere in that QTGMC .zip package there's an html called "Instructions.html" that is the basic QTGMC documentation. I say "basic" but it does indeed look complicated. A lot of it escapes most of us, but browsing it will give you a pretty good idea of what can be done. It will make the preset settings look very handy indeed. And if you want to know what the presets set up, look at the first few hundreds lines of the".txt" version of QTGMC that's in that .zip package. Open it in Notepad, expand Notepad to full screen, and turn off Word Wrap. What you find can set you back at first, but it's a real eye opener. And if anyone asks, the QTGMC script has 964 lines in it.
It's a good thing most Avsiynth plugins aren't killers like QTGMC. But it does give you an appreciation for the sophistication behind some of this stuff and why most "editors" just don't cut the mustard when it comes to special purpose stuff like Avisynth.
The latest version of QTGMC is 3.358s and listed in the wiki page at http://avisynth.nl/index.php/QTGMC. On that page there's a table of links to support files that you can click on....but give yourself a day or so if you really want that version, because that table looks like a convenience but clicking on each link takes you into an almost surreal landscape of more links and sublinks and even more support files than the neat table presents at first. Sometimes you find a link in Doom9 that claims to be the latest "complete" package of plugins but the package is usually a mess that you have to sift through. And wouldn't you know it, in the next post in the same forum you'll find an "update" to the updated supplements and corrections (don't you just love it?).
It's a good thing that the majority of commonly used filters don't get that ornery. You come to Avisynth at a time when the poor thing is in a chaotic state of transition, with new whiz-bang versions of stuff coming out every 15 minutes. That's why most of us poor souls stick with one version and tread carefully into the new ones until the wrinkles get ironed out.Last edited by LMotlow; 14th Dec 2018 at 05:50.
- My sister Ann's brother -
See the QTGMC docs for instructions on retaining noise:
# Retain Noise / Grain
QTGMC( Preset="Slower", NoiseProcess=1, NoiseRestore=1.0, Sigma=2.0 ) # Retain *all* the noise / fine detail of a less noisy source
QTGMC( Preset="Slower", NoiseProcess=1, GrainRestore=1.0, Sigma=2.0 ) # Similar to above but only keep the more "stable" noise elements (depends on TR2) -
Oh, I was lost already before even stepping one foot on AviSynth, this is just the icing on the cake!
I think I'll try getting used to how things work before getting too ambitious with later versions, but just to know, would there be any difference in terms of final results between the different versions, or is it more a case of adding functionalities, compatibility, etc.? So far, all I've done is use whatever "QTGMC Medium" does in StaxRip. I mentioned there are some things I'd like to try but I hope I didn't sound too pretentious. I don't think I'll be able to touch that code in a long while and it looks like a steep learning curve is looming in the horizon, but I did see some script recommendations when googling about noise reduction and its possibilities and it sparked my curiosity. I've noticed some detail did get lost in the video when compared to the original and, while I'm more than pleased with the result and still maintain that it looks better than the original both in TV and my PC, I'd like to give it a try and tweek its settings a bit before making the final call.
Thanks, I'll check that out. Honestly, I haven't had the courage to check the code yet, but I will. And you'll probably know, because I'll surely come back with questions and screams of despair. -
You don't have to 'check out' any code. The included HTML doc is one of the better-written ones, with all settings explained clearly and with examples for their use. Docs for some filters are either nonexistent or might as well be gibberish. Now that you've gotten it to run, it should be clear sailing, at least for QTGMC. No small accomplishment.
-
I thought I was supposed to! That tells you how clueless I am, though I spent some more time learning how AviSynth works and I think the pieces are slowly starting to fit. The HTML doc looks impressive, it'll be next on my list once I feel I've left my inaugural achievement a bit further behind (of course I'm talking about "Version()").
-
So, I'm at this stage:
I still have no idea how I'll handle the process after deciding on the filters, but that'll come later.
I created a d2v file using DGIndex and that is the file I'm using in my script. Is that how I'm supposed to do it? Am I fine just doing Save Project in DGIndex or is there any use for me to do Save Project and Demux Video? What is a good method to preview the output? I'm using VirtualDub (just because I read that's what many people use, and I also occasionally open the script in PotPlayer), but I'm still struggling to find a proper way to easily compare the outputs with different settings. StaxRip came with a setting that just said QTGMC Medium. Is it safe to assume that would be the same as doing QTGMC( Preset="Medium" ) or could it be customized?
Sorry for all the questions, I'm still all over the place trying to figure things out, but hey, at least I'm getting somewhere (I think). Thanks a lot for your support! -
Yes.
Am I fine just doing Save Project in DGIndex
What is a good method to preview the output?
LoadPlugin("H:\AVISynth\dlls\DGDecode.dll")
MPEG2Source("Movie.d2v")
I use LoadPlugin lines in my scripts. You shouldn't need one for DGDecode if it's in your AviSynth Plugins folder. You can also open scripts in players that accept AviSynth scripts as Input. I can use MPC-HC if I want to "play" a script.
...but I'm still struggling to find a proper way to easily compare the outputs with different settings.
Is it safe to assume that would be the same as doing QTGMC( Preset="Medium" ) -
Do you mean visually comparing the output for my script vs. the encoded StaxRip file? I'm not being able to spot many differences, maybe I need to get used to it, train my eyes to look for certain things, I don't know. I haven't had the time to experiment much with the settings yet, so I'll keep looking. I thought there might be a way to know whether StaxRip is using the same settings. There probably is one (checking its customized script) but I won't even go there.
This whole deal of wanting to play around with the settings was triggered when I noticed a small detail getting a bit lost in the filtered video as compared to the original (well, depending on where you play the original and how it is deinterlaced, I suppose) and to some other deinterlaced same-rate tests I did. It's a very tiny flying object (a tooth -I kid you not) that is visible for a few frames, and it's much harder to spot with most bobbed versions, QTGMC's included. I can live with that, it's a reasonable trade-off for the much better fluidity. But it was all I needed to push my curiosity a bit further. I had been shunning away from AviSynth for some time and this gave me an excuse to make it seem less like a hassle. I made an uneducated guess that it could be due to too much smoothing, but what do I know. Anyway, I can't use that criterion (flying tooth) to judge because playback in VideoDub or PotPlayer is slow enough that you can clearly see it. So I'll keep looking for less gruesome details. -
Filters > Edit Code
An example of Interleaving the result of two filters:
Code:Mpeg2Source("filename.d2v") v1 = QTGMC(preset="fast").Subtitle("fast") v2 = QTGMC(preset="slow").Subtitle("slow") Interleave(v1, v2)
Code:Mpeg2Source("filename.d2v") v1 = Yadif(mode=1).Subtitle("yadif") v2 = QTGMC(preset="fast").Subtitle("qtgmc") Interleave(v1, v2)
Sometimes you need to see shots side by side rather than interleaved. You can use StackHorizontal() for this (or StackVertical() if you want top/bottom):
Code:Mpeg2Source("filename.d2v") v1 = QTGMC(preset="fast").Subtitle("fast") v2 = QTGMC(preset="slow").Subtitle("slow") StackHorizontal(v1, v2)
If you want to compare two videos that you've already encoded:
Code:v1 = LWlibavVideoSource("filename1.ext").Subtitle("filename1") v2 = LWlibavVideoSource("filename2.ext").Subtitle("filename2") Interleave(v1, v2)
Sometimes I like to compare three videos, the original and two encoded videos:
Code:v0 = LWlibavVideoSource("original.ext").Subtitle("original") v1 = LWlibavVideoSource("filename1.ext").Subtitle("encoding 1") v2 = LWlibavVideoSource("filename2.ext").Subtitle("encoding 2") Interleave(v0, v1, v2, v0)
-
Well, that's embarrassing, I should've figured it out myself. In my defense, there are just too many new things to learn and software to deal with! So, yes: StaxRip is just applying the Medium preset. And I suppose now that I know this, I can specify whatever settings I'm happy with after playing around with my script, if I just want StaxRip to do the encoding job for me (any advice against that?).
Thanks! That is exactly what I needed. By the way, I tried your fast vs. slow example in my video and, interestingly enough, the "test tooth" looks whiter (and therefore more easily noticeable) in the fast preset than the slow.
I will probably try LWlibavVideoSource() later, too. It could come handy. Is this where to get that package from? https://www.dropbox.com/sh/3i81ttxf028m1eh/AAABkQn4Y5w1k-toVhYLasmwa?dl=0 -
Fast performs less noise and edge filtering which may help retain small details.
That should work. You can use LSMASHVideoSource() for MP4 files, LWlibavVideoSource() for other types of files. Be aware that those source filters only get the video. If you want to add audio too you need a sequence like:
Code:v = LWlibavVideoSource("filename.ext") a = LWlibavAudioSource("filename.ext") AudioDub(v,a)
Code:AudioDub(LWlibavVideoSource("filename.ext"), LWlibavAudioSource("filename.ext"))
-
Now, after trying jagabo's examples, I get what you meant. Sorry, I'm too much of a newbie to follow at times.
Yeah, I thought at first that the slower the preset, the longer it'd take to calculate, and therefore the more accurate (or something like that). But I see it's actually different settings altogether, so it makes sense. I guess a possible drawback would be some residual shimmering if the filtering is insufficient. I'll make some tests later in segments with lots of motion and see how that goes. Is there any advice against faster settings in terms of quality?
Thanks. I totally forgot about audio! I'm not getting sound either when using the d2v file, so I suppuse I need to use AudioDub as well with the audio track generated by DGIndex? I'm assuming I'll only need to deal with audio if I want to encode my video direcly using my script (which I have no idea how to do at this point) instead of testing with my script and encoding with StaxRip. But I have to admit getting control is addictive, even if I don't know what to do with it yet. -
No problem. I figured you understood and if you wanted more detail on how to do those things you'd ask. jagabo was more thorough and explained without being asked. You're making remarkable progress, and you didn't start easy and work your way up to difficult, but went straight for the hard stuff. By the way, you can also do your temporal cleaning within QTGMC, with DFTTest being a pretty good cleaner within QTGMC. I do temporal filtering outside of QTGMC but you won't have to set up anything else to use it within QTGMC. You might lose your flying teeth in the process.
...so I suppuse I need to use AudioDub as well with the audio track generated by DGIndex? -
There's so much new information trying to find its way into my head that at times I just let some of it sink in before opening even more battlefronts with further questions. Then I'll read the older posts again and find out they make more sense now (except mine which are rightfully embarrassing).
Thanks, I don't know if that was a smart approach, but it probably wouldn't have happened any other way. And it definitely couldn't have happened without the great people in this forum. Your patience and willingness to help out is beyond amazing. Especially because I'm fully aware that I'm asking a lot of dumb questions that have been probably asked a million times. It's all out there, but as a newbie information gets overwhelming easily. So it really helps to have knowledgeable people who can point you in the right direction.
Speaking of being a newbie, I have to admit I'm not just AviSynth-newbie but video-newbie altogether (as if you hadn't noticed). I have a bare idea of what temporal cleaning must be, but that's about it. As far as the final quality of my videos is concerned, I might as well use any preset because I don't really know what I'm doing. But it's kept me interested enough to try to learn a bit about it and try things out. I've also seen some scripts recommended here and there that I might try. I've been a bit busy these days but hopefully tonight I'll spend some more time on it.
I'm more concerned about losing my mind!
That's another question I was holding back. I've been copying the original AC3 track as-is in my tests, mainly because I was focused on the video aspect. Would you recommend re-encoding the audio? I don't know if it makes much of a difference compression-wise, but maybe there are technical reasons? -
-
At its heart noise reduction involves (smartly) blending multiple pixels together. Spacial noise reduction works on individual frames. Temporal noise reduction works across multiple frames (time). Temporal/spacial noise reduction does both (though sometimes it's just called temporal noise reduction). QTGMC's denoising is temporal/spacial (3D: width, height, time).
-
Got it. I don't have any container preferences. I was thinking either MKV or MP4 but I can't justify my choice, except by saying 'they seem to work for most people'. I won't mess with the audio (no, I'm not concerned about losing any high-frequency hiss made by the flying tooth, I'm just fine with the source).
That's more or less what I gathered. Spatial noise reduction would compare pixels of a frame to their adjacent pixels, while temporal noise reduction does it with pixels in similar locations, across previous and subsequent frames. Is that fairly close? I wasn't even aware of what type of noise reduction QTGMC did, though I was pretty sure I read that it did 3D.
What disconcerted me is that manono mentioned temporal cleaning as a separate standard process. Would that mean doing further temporal denoising after what QTGMC does by default? Or specifically disabling whatever settings handle temporal denoising first, and dealing with it later (either within QTGMC or outside it)?
By the way, I've been playing around with multiple settings and yet the biggest 'tooth visibility factor' seems to be the preset speed, more than any other setting I've fiddled with. I'm a bit biased against fast settings, as they're usually supposed to yield lower quality results, so I'm looking for alternatives. But I must say that so far I've been using the tooth as a familiar reference, but I'll do some encodes later so I can check the results at regular playback speed in different parts of the video. So far my plan is to use whatever settings I try on my scripts as input in StaxRip's QTGMC filter settings, basically because I don't know how to do it otherwise. I know there are more direct ways to encode the output of my scripts and it must be better to do it that way. I don't know if it'd be convenient to learn about it at this point (unless the different versions of QTGMC in AviSynth vs. StaxRip pose a problem). I wouldn't know what to do with the extra freedom it gets me, anyway. I'm sure I'll want to learn about it eventually, though.Last edited by MGRV; 18th Dec 2018 at 00:25.
-
-
It had never crossed my mind that I would need to do temporal cleaning, until you mentioned it! Now, seriously, I need to investigate more to get familiarized with what each type of denoising method does (as in, detecting the type of results they provide, the defects they fix, their possible drawbacks). I have no way to know at this point what my source would really need. That's why I said I'd probably be better off picking any preset and going with it, as far as my original needs are concerned (they are preset for a reason). I'm not aiming for any unfathomable high quality results and I'll probably only make things worse by twitching things around too much by trial and error. But it's fun to try, and a good way for me to lose my fear for AviSynth.
-
As I understand it, the denoising you get with QTGMC's presets is just a byproduct of it's attempts to reduce buzzing edges from its deinterlacing. It's not part of the explicit denoising it can perform. The easiest way to enable it's noise reduction is with the EZDenoise setting:
Code:QTGMC(preset="fast", EZDenoise=2.0, DenoiseMC=true)
I usually prefer to use a pure temporal denoiser like TemporalDegrain(). You usually get less loss of detail and less smearing during motion. That filter is also motion compensated. But using QTGMC() and TemporalDegrain() together leads to very slow processing. -
Yes, that's more or less what I understood from reading a gazillion forum threads. I think I read that it also did some extra noise reduction not related to the deinterlacing process, at least in the slower presets, but I could be wrong about this.
What's funny is, I tried the code you suggested from the documentation to keep noise/grain, I tried SourceMatch, Lossless, GrainRestore, etc. in different combinations, and using the "fast" preset seems to be the only thing that makes a clear difference. Granted, I didn't read too much into it to make more educated adjustments, but rather kept shooting in the dark, trying out various combinations of those settings and hoping for the best. Maybe it's not even noise reduction what's causing the 'tooth decay', but some other effect of pixel blending. I'll need to have a look and compare 'fast' with other presets, maybe I can single out one setting that does the trick.
That one is not included with QTGMC, right? I've never processed video before (I was sort of drawn to it by the need to deinterlace) so I'm not familiar with the process. Is temporal denoising a standard thing one does in all types of sources? Is it something to 'clean up' certain types of sources? Is it particularly good for deinterlaced material? I assume great harm can be done applying a filter that's uncalled for, so I'd rather ask. I know I can always see it for myself, but I don't trust my eyes anymore. Give them teeth and they will let slide all sort of artifacts. -
TemporalDegrain() is not a part of QTGMC. http://avisynth.nl/index.php/Temporal_Degrain
You should only use filters when they are called for. When I use noise reduction filters I usually stick with very mild settings (most sources I work with don't have a lot of noise). You should experiment for yourself with different filters. Use short samples (1 minute?) so you don't have to wait all day for each encoding. -
Well, for starters, I don't know if my source really needs denoising (let alone which type). I don't quite exactly identify what qualifies as 'noise', though I noticed QTGMC produced a much smoother-looking image, so I assumed it had removed some. If anything, the infamous vanishing tooth led me to think there might have been too much noise reduction, though I'm not so sure about that anymore, per my latest tests.
StaxRip has DFTTest as a filter option, so I can get it to apply it to my encodes if I find some interesting results while playing around with my AviSynth script. It doesn't have Temporal Degrain (there's one 'MCTemporalDenoise' but I suppose they're unrelated).
What would be a proper way to cut those short samples? I imagine if I could encode my script's output directly, I'd just have to add a trim function in the beginning. I see VideoDub has trimming options too, but I can only find an option to save as AVI or export as raw video (it also has the option to use external decoders but there's none loaded). -
If the source is a DVD, you open a VOB in DGIndex, mark off a section, and then File->Save Project and Demux Video. Upload the resulting M2V.
Temporal denoisers are most commonly used against film grain and noise, and against the noise common in VHS captures. -
Sorry, I should have known that already. I forgot I'm already using DGIndex's output in my AviSynth script. But what did you mean by upload the resulting M2V? Shouldn't I reference the D2V file in my script (with MPEG2Source)?
I know the only way to judge is to try it and analyze the results, but at least theoretically, would that apply as well to commercial DVDs made from analog sources? -
https://forum.videohelp.com/threads/359295-Record-without-interlacing?p=2272359&viewfu...=1#post2272359
An M2V produced by DGIndex is a video-only portion of your source. The D2V project file is an index to your source. We wouldn't be able to use that index because it's a reference to your source only. In fact a D2V is a text file -- you can open it in Notepad if you want to see what's in there.
If you like you can also submit the sample audio file, but you'll likely have to .zip it because not all file types are allowed. That would allow us to demonstrate the different kinds of code used for remuxing audio by way of the script. When using certain filters there are also times when you have to restore the original audio if the repair filter affects the audio track. Such filters would be those that replace original frames with repaired frames (ReplaceFramesMC and ReplaceFramesSimple would be two examples).
Yes. Commercial DVD's tend to have fewer defects, but you'd be surprised at how sloppy commercial work can be sometimes.- My sister Ann's brother -
I used DGIndex to cut a new D2V file with a short sample that I can now open with StaxRip (instead of the D2V of the whole video), which is how I'm encoding (I know there must be better / simpler ways but I don't know them yet). You had already taught me how to produce a D2V file, but I just thought in this case I had to trim the one I was already using, as opposed to creating a new sample from scratch.
I think there's been some confusion. I was talking about doing as jagabo suggested: making short sample clips so that I can encode my tests quickly without having to wait forever (if I want to look at the results in pieces of video at regular playback speed as opposed to frame by frame with VirtualDub). The part about uploading the M2V is what confused me. I guessed manono meant to the forum, but figured I could be misunderstanding something. Don't get me wrong, it would be great if you want to take a look at the source as you'll probably be able to tell me much more about what I'm dealing with. I'll go ahead and upload the clip I made. I don't know if it's a good sample in terms of motion and other things to look for (it may be too short, too), so let me know and I can maybe find something better. I should warn you, the video contains violent images, although I suppose you know teeth don't fly spontaneously.
Ok, I'll do that as well.
I believe you. I've read quite a few horror stories about commercial DVDs while lurking in this forum. And these I'm working on don't look particularly top-notch. -
Perhaps. Both LMotlow and I were instructing you on how to create M2V video samples for upload here so anyone could have a look at your source and make suggestions. If what you're really interested in knowing is how to encode a short section of your source, rather than create a new D2V for that section better would be to just Trim off the part you want.
For example, by adding:
Trim(1000,2000)
at the bottom of your script, you'll encode frames 1001-2001. AviSynth frame counts begin with zero.
I've read quite a few horror stories about commercial DVDs while lurking in this forum. -
That's what I figured. I was asking about making short samples for myself, for quick encoding. But you guys having a look at it and giving me some suggestions would be awesome, so I went ahead and uploaded the M2V (as I said, let me know if the clip is too short or no good for other reasons).
Yes, that's what I was trying to explain. I'm using trim already in my script to have VirtualDub only load a fragment. But I don't know yet how to encode the output of a script. So I was thinking a possible workaround would be to copy whatever settings look promising in my script to the StaxRip filters settings, in order to encode with that software. It's probably not a safe way to do it, as I'm dealing with 2 different versions of QTGMC, to begin with. If I'm forced to use StaxRip to encode, I suppose I could find a way to do the trimming there instead of loading a new D2V file, as well. I'm just beginning to understand how StaxRip runs AviSynth functions, so if I edit the filters code it runs, I might be able to add the trim there.
Similar Threads
-
Hi ! Newbie Here, keen to learn
By JayStew in forum Newbie / General discussionsReplies: 0Last Post: 30th Jan 2018, 02:49 -
Restoration workflow and some questions for a newbie willing to learn.
By Dannyboy1985 in forum RestorationReplies: 2Last Post: 30th May 2017, 15:27 -
Newbie looking to learn how to use Leawo blu ray copy AND Blue Cloner 5
By joer0194 in forum Newbie / General discussionsReplies: 1Last Post: 11th Jun 2015, 02:13 -
Need suggestions to change Aspect Ratio on DVDs
By elviszappa in forum EditingReplies: 4Last Post: 2nd Oct 2014, 20:43 -
Ripping NTSC DVDs for Australia newbie questions
By pcwizard7 in forum DVD RippingReplies: 11Last Post: 11th Sep 2014, 09:58