Avisynth with Adobe Premiere, AVSInfoTools errors?
I am reacquainting myself with Avisynth after being away for a while. There is a video with a skewed up color tone requiring that the hue angle be adjusted. That cannot be done in Avisynth, but it is an easy fix in Premiere.
Is it recommended to first adjust the hue angle in Premiere and then export to a lossless format to Avisynth, or first use Avisynth to correct other problems and then export as a lossless to Premiere? Assuming that the effect in Premiere works on the YUV and not the RGB (if not, then I would use Premiere last), I prefer using Premiere first because Avisynth has more options for final output, and the current color scheme is not easy on the eyes. On an unrelated note, I installed Avisynth on a new PC and avsinfotools would either detect the 32 bit or 64 bit version, but not both. It would throw an error that there were 32 bit plugins in the 64 bit folder, or vice versa. I tried every combination in the registry but while I could make one work I could never make them both produce no error. Finally I ran the installation where I only installed the 32 bit version first, then ran the installation again for the 64 bit. Avsinfotools now detects both as well as the location of their respective plugins. This might be fine for now, but will I encounter problems down the road? When I load a new script in avsPmod I get error messages of the sort Code:
Error parsing Func plugin parameters: unknown character 'n' |
Skewed color, interesting, would like to see good sample of this. Both still and clip.
It depends on the problem. Premiere > Avisynth, probably, for this exact issue. Avisynth > Premiere is more usual. While important to acknowledge colorspace, too much is made of it in recent years. Even pros don't do the wacky anal adherence to colorspace that some hobbyists and amateurs do. (It's even more ridiculous when they have low quality everywhere else, but "OMG, not colorspace! The horror!") Obviously you want to maintain proper colorspace, but sometimes it's just going to be possible. There's no reason to stress over it. I don't like Avisynth+ 32-bit, nothing but problems. I stick to +64 and official 2.6. I no longer use the MT, as it has too many errors, including bad frames in the video output. I never feel the need to use AvsInfotool. The one time I tried, some years ago, it insisted I had an error, and yet I did not. I found it completely useless. (I'm not alone here. Search Google for "Avsinfotools", and on pg1, you'll see summary comments like "Despite the error message in 32-bit AVSInfoTool, QTGMC will now work in both modes" and "I get a Runtime error from AVSInfoTool, but still work fine at AvsPmod". So even without looking for errors, just the name of the tool itself brings up errors. So let that sink in.) |
Thanks. I was trying to change the registry entries for my 32 and 64-bit plugins to satisfy avsinfotools but after your experience I may reinstall everything and ignore the errors it brings up.
Yes, I'll be sure to post samples once I have done the best I can with it. I prefer Premiere first since I can color correct like I am in the 21st century, unlike with Avisynth. Plus, it turns out that the color tools in Premiere such as RGB curves and Three-Way Color Corrector work in the YUV space. I'm sure it isn't perfect, but it will do. By the way, does anyone know where to find the SpotLessUV plugin people are talking about? I found a Doom thread by StainlessS but it only had the Spotless version. Does it work better than the variants of RemoveSpotsMC()? |
Something else I recently learned about is this: https://www.videohelp.com/software/A...al-File-System
Not tried it yet. Quote:
|
Thanks--that is something to look into.
I appear to be not understanding the syntax logic of Avisynth. The below syntax works, but I don't know why. I would think once you write "a" that last/current clip becomes "a" and is such being filtered. But in reality, this syntax filters the "b" video, leaving "a" intact. I then provided an overlay on it. Any thoughts? Thank you. Code:
video1 |
6 Attachment(s)
I might as well post my progress with this. This is a screenshot of the original clip that had to be corrected in Premiere:
SEE original.jpg ATTACHED (Images inserted into the post would not show up). It is not from a 50's b-movie....There are several issues with the whole video (only a snippet shown here). First is the greenish hue, even after correcting the hue angle for the skin tone. color_before.jpg I tried to remove the green completely from the background, and the ColorPic showed that after the correction the background had even low levels of R,G, and B. But then the dress became reddish. I can't seem to prevent that if I change the background. Maybe trying a secondary color correction on the dress? color_after.jpg Ghosting also exists, as seen here ghost_before.jpg Since deghosting filters in Avisynth have rarely helped (me at least), I used a secondary color correction to remove the green. ghost_after.jpg It is not perfect, but less noticeable. The other issue is the haloing around the woman's shoulder in this photo and in the attached video. This was after using MergeLuma and colorshift. Is there a colorshift equivalent for luma? luma_issue.jpg MergeLuma works, but of course it destroys the video and makes it looks like an impressionist painting. Here is my script. Since FixRipsP2() is destructive, I only used it on the left edge of the video. If I keep that overlay in my script too long without commenting it out, Avisynth will crash. KNLMeansCL worked well on the remaining dropouts. Unfortunately, it also blurred the detail in the woman's hair, and my preference is always to keep detail rather than fix everything. TemporalDegrain2() on its default settings seems to help without removing detail. Strangely, RemoveSpotsMC2() was far worse than RemoveSpotsMC(). RemoveSpotsMC3() is too slow. Code:
video1 = AVISource("Dance.avi").AssumeBFF |
2 Attachment(s)
Here is the before and after.
|
Just few comments after a quick check:
- no need to use separatefields(), your video seems progressive - give RemoveDirtSMC a try for horizontal stripes defect, with a limit=30/50 and 2 calls - TemporalDegrain2 uses MDegrain with temporal radius=1 internally, so no need to call MDegrain2 before. Eventually use TemporalDegrain2(degrainTR=3) - Not sure if KNLMeansCL is a spatial only denoiser (to avoid double usage with TD2); if you like it you may use it to build a prefiltered clip to create better motion vectors; this is not possible with TemporalDegrain2 because it uses QTGMC approach for motion estimation. Possible using old version, i.e. TemporalDegrain(..., denoise=clip.KNLMeansCL(), ...) - Or you can use KNLMeansCL in post-processing inside TD2 with postFTT=4, avoiding sometimes destructive dfttest call when using postFTT=3 - Try LSFmod, SeeSaw or CAS instead all aWarpSharp2 calls, eventually including chroma sharpening. Difficult clip to restore, I did not try all this on your clip, hope it helps... |
Thanks lollo2--you have given me a lot to work with! I will report back when I go through all of your suggestions.
I noticed that for some reason my FixRipsP2() mask was not actually applied in the after clip. I will make sure it is in the next updated, but do you think it is wise to use if nothing else helps the left side of the clip (to avoid filtering everything)? Just FYI, the original clip is in fact interlaced. |
Quote:
If you fail, it may be more appropriate to "mask" the portion having problems with black pixels rather that applying a not needed filter on the whole video. Quote:
In this case you can also try something like Code:
AssumeBFF().nnedi3(field=-2) In fact, is mandatory for SpatialTemporal filters but also recommended for pure Temporal filtering. |
Thanks again. I will have to read more about it. Most of the info on Avisynth usage is spread all over the place.
Since you seem knowledgeable, would you know where my misunderstanding was regarding post #5 above? |
1 Attachment(s)
Quote:
Code:
AviSource("intrepretative dance before.avi") |
An alternative way to write the previous code is to make explicit assignement at each step, that is boring but helps a lot to well identify all the operations in complex scripts.
I always use this approach. Code:
video_org=AviSource("intrepretative dance before.avi") |
Thanks for the explanation and photo. It appears you are taking on Sanlyn's role! The only issue with the second method is, unless Avisynth is different, all of those video file variables should be stored in memory separately. If the filtering is too much, Avisynth might crash. It is easier to keep track of, however.
|
AviSynth is a frame server!
http://avisynth.nl/index.php/The_scr...ence_of_events http://avisynth.nl/index.php/The_scr...e_filter_graph For temporal radius > 1, is actually a frames server :wink2: If you look to "Frame caching and the effect on splitting filter graph's paths" chapter in http://avisynth.nl/index.php/The_scr...considerations you can see how a "cache" filter is created and used after each call. |
Thank you for the informative links. I don't think I make use of runtime scripts, so from the performance page it seems that the best I can do (absent creating an intermediate file for some filters) for reducing the slowdown in my Overlay with FixRipsP2() is to load all of the plugins manually and turn off autoload. Does that seem right?
|
It won't be a significant improvement in term of speed, but in a script I only load the necessary plugins and avoid "autoload" procedures.
You can try some MT modes to speed-up your processing if that's an issue (I am not familiar with thems, so i cannot help, sorry) |
Quote:
In terms of speed, there's not much you can do beyond per-core CPU speed, SSD, and sometimes GPU. Everything else is just slivers of % of speed. Certain MT/cache functions have huge negatives, such as glitching the video, which is why (for example) I never use QTGMC in the 32-bit version (cached MT is bad, uncached too slow). I'm all for speeding up Avisynth, but some things simply do not work as claimed. |
Quote:
Admittedly, I am only use 32 bit, but I would think that would only affect the speed of the process, not the rate of crashes. I avoid 64 bit because of not every filter is supported. I think Sanlyn also avoided the 64 bit version. |
5 Attachment(s)
I had some time to apply some of the advice here. TemporalDegrain2 with deGrainTR=3 did make an improvement. But whilst trying to find RemoveDirtSMC() (It is difficult to find the correct version of videoFred's fliters, since when I try to download it from Doom9 my antivirus blocks it), I came across SpotLess, which is quite magical in action (and quick). TemporalDegrain2 did not make a significant improvement after SpotLess, and it also a bit slow. Neither did two calls to RemoveDirtSMC().
I didn't apply nnedi deinterlacing because I want to preserve as much detail as possible without any interpolation of the other fields. I tried LSFMod and CAS with MergeChroma but it seemed worse. Do you have a suggestion on what parameters to use? I also found your YT channel useful (assuming it is the same person). Code:
video1 = AVISource("interpretative dance color corrected.avi").AssumeBFF You will not see it in the example clips, but secondary color correction was successful in removing the type of ghost I encountered in this video. Blacks are a bit milky because the lack of a fill light created harsh shadows. Reducing the shadows too much would affect the skin tones that are in the shadows. Am I mistaken, or is that a spot on the camera itself in the lower third, left hand side of the final video? I am surprised Avisynth kept it! Thanks! Before Attachment 14347 After Attachment 14348 |
Site design, images and content © 2002-2024 The Digital FAQ, www.digitalFAQ.com
Forum Software by vBulletin · Copyright © 2024 Jelsoft Enterprises Ltd.