Sorry for the delay. Very busy around here. This is the workflow I'm using for this project and most of my own:
1. Filter and correct lossless AVI, then save as lossless Lagarith AVI. Process in small segments when necessary. I often save the audio as a separate .wav file with VirtualDub, for use with HCenc.
2. I have 3 methods for encoding processed AVI's that are not being assembled into a long MPEG:
a) Encode each AVI separately to MPEG2 using TMPGenc Plus 2.5 to create an .m2v and synchronized .wav audio. Then load the .m2v and .wav into TMPGenc MPEG Editor v3 or TMPGEnc Smart Renderer v4 to create a DVD-compliant MPG with Dolby audio.
b) Or, encode each AVI separately with HCenc to create an .m2v with no audio. Then load the .m2v and previously saved .wav into TMPGenc MPEG Editor v3 or TMPGEnc Smart Renderer v4 to create a DVD-compliant MPG with Dolby audio.
c) Or, load the finished AVI with imbedded audio into TMPGenc Mastering Works 5 to create a DVD-compliant MPG with Dolby audio.
3. If AVi's are to be joined into a longer DVD that does not require a timeline editor with lots of special effects, there are two methods for doing it:
a) Encode AVI's separately to .m2v with separate .m2v and .wav audio files using TMPGEnc Plus2.5 or the HCenc encoder. Then load all of the .m2v/.wav files into TMPGenc MPEG Editor v3 or TMPGenc Smart Renderer v4, edit, join, apply a few basic effects (I usually don't use them), and create a long DVD-compliant MPG with Dolby audio.
4. If AVI's need a timeline editor/encoder to create a long DVD with some special effects, do not encode the AVI's separately to MPEG. Rather, load all of the AVI's with their imbedded audio into TMPGenc Mastering Works 5, apply effects, add titles or extra audio, etc., and encode as a single MPG with Dolby audio.
My DVD authoring programs are all from TMPGenc, old and new. The only high-powered NLE-style program that I use is After Effects Pro CS3. I always work there with lossless AVI input/output and encode later to MPEG. For h264 encoding I use Mastering Works 5, or a couple of free x264 encoders such as TX264. The only one of those encoding apps that has timeline features is Mastering Works 5. The only other timeline app I use (seldom) is an ancient Pinnacle Studio v8. I use it only for quickie titles and save as lossless AVI (its MPG encoder is terrible). You will almost always get better results with lossless processing and separate editors, encoders, and authors.
Hope that gives you a few ideas.
+ Reply to Thread
Results 61 to 90 of 143
-
Last edited by sanlyn; 19th Mar 2014 at 11:13.
-
g.avi (from post #42, https://forum.videohelp.com/threads/357064-Advice-on-what-filters-to-use-when-convertin...=1#post2254782). These are ideas from which you can pick and choose if you wish.
Most of the captures have a red stain on the right border. Caused by oxidation in poor storage conditions, but commonly seen. There is no perfect fix. Such stains are usually consistent from frame to frame. They don't move or change shape; therefore, denoisers don't see them as "noise". Some anti-rainbow and chroma cleaning plugins can help, but they have limits.
An original frame from g.avi (below). The video has low saturation, blurred detail from camera shake, and a heavy cyan color cast from overcast daylight (birds near the water are dull blue, and so are the ships). If saturation and color balance are restored, the right-hand border stain will be more obvious.
[Attachment 19010 - Click to enlarge]
chubbyreain2.avs is a chroma scrubber posted on Doom9. Several versions exist. This is the version seem most frequently:
Code:function ChubbyRain2(clip c, int "th", int "radius", bool "show", int "sft") { #based on Mug Funky's ChubbyRain th = default(th,10) # threshold. Actual meaning is uncertain radius = default(radius,10) # temporal smoothing radius show = default(show,false) sft = default (sft, 10) # temporal softening strength u = c.utoy() v = c.vtoy() uc = u.mt_convolution(horizontal="1",vertical="1 -2 1",Y=3,U=0,V=0) vc = v.mt_convolution(horizontal="1",vertical="1 -2 1",Y=3,U=0,V=0) cc = c.mt_convolution(horizontal="1",vertical="1 2 1",Y=2,U=3,V=3).bifrost(interlaced=false).cnr2().temporalsoften(radius,0,sft,2,2) rainbow=mt_lutxy(uc,vc,Yexpr=string("x y + "+string(th)+" > 256 0 ?")).pointresize(c.width,c.height).mt_expand(y=3,u=-128,v=-128)#.blur(1.5) overlay(c,cc,mask=rainbow) show==true? rainbow : last }
masktools v2 (http://manao4.free.fr/mt_masktools.html)
bifrost (http://avisynth.org/warpenterprises/files/bifrost_20070304.zip)
LimitedSharpenfaster (http://avisynth.org/mediawiki/upload/2/2d/LimitedSharpenFaster.avs)
RemoveGrain v0.9 (http://home.pages.at/kassandro/RemoveGrain/RemoveGrain.zip)
cnr2 (you have this plugin from another project)
Must use deinterlace or SeparateFields(), YV12 only, and must be applied as early as possible in processing. Its default values are optimized to avoid ghosting and to prevent the filter from turning everything gray.
The script to clean the border begins by adjusting overall levels and chroma. Cont_y increases contrast. gamma_y raised midtones and overall"brilliance". off_y=-18 restores black levels and tames "hot" brights in the sky. off_v increased Red, off_u lowered Blue. Tweak() slightlty increased saturation:
Code:COlorYUV(cont_y=20,gamma_y=90,off_y=-18) ColorYUV(off_v=10,off_u=-18) Tweak(coring=false,sat=1.1)
Code:AssumeTFF().SeparateFields() Cnr2("xxx",4,5,255) a=last
Code:a chubbyrain2() smoothuv(radius=7) crop(698,0,0,0,true) SmoothTweak(hue1=9,hue2=-8) b=last
Code:overlay(a,b,x=698,y=0, opacity=0.85) weave()
Code:TTempSmooth() LSFMod(defaults="slow") Crop(14,6,-8,-4).AddBorders(12,4,10,6) return last
[Attachment 19011 - Click to enlarge]Last edited by sanlyn; 19th Mar 2014 at 11:13.
-
More work with g.avi fom post #42:
Bad Frame 25 from the original avi:
[Attachment 19012 - Click to enlarge]
This isn't the only problem but it's the most obvious. Caused by imbedded tape debris. There are no filters for removing this noise. Replacing the frame with a new, interpolated frame can be done. Data must be used from surrounding frames. Unfortunately, there are more problems in the following frames. Here is the flow of frames 25 thru 28:
[Attachment 19013 - Click to enlarge]
After damaged frame 25, successive frames are darker, then overly bright, then dark. This continues for up to 9 frames. The streak you see across the middle started several frames earlier, and continues for several others.
Using SeparateFields() reveals much about the frames. SeparateFields() divides each frame into its upper and lower fields. Each field is 1/2 the height of the frame. When viewing separated fields, the 720x576 video becomes 720x288. Here is a view of the top (EVEN) field of frame 25, and the bottom (ODD) field from the same frame:
[Attachment 19014 - Click to enlarge]
One can see that the damage is on the ODD field. EVEN is clean -- except for the horizontal stripe, which runs through several frames. We have to interpolate a new field from the preceding and following field. Unfortunately, pixels in this new "field" will be misplaced. Remember, we're looking at interlaced video: odd/even fields have a certain pixel placement within frames. How does one replace interlaced fields? Well....it's VERY complicated. So let's use the cheap and easy sledgehammer method: use full, interlaced frames. That's not quite kosher, but the video moves fast enough to avoid suspicion. Otherwise, the video would have to be deinterlaced, fixed, and reinterlaced. That's for later.
Without using SeparateFields(), replace the bad frames and some too-dark and too-bright frames, one at a time:
Code:ReplaceFramesMC2(25,1) ReplaceFramesMC2(26,1) ReplaceFramesMC2(28,1) ReplaceFramesMC2(29,1)
Code:AviSource("path to video\g.avi") COlorYUV(cont_y=20,gamma_y=90,off_y=-18) ColorYUV(off_v=10,off_u=-18) Tweak(coring=false,sat=1.1) ConvertToYV12(interlaced=true) AssumeTFF().SeparateFields() Cnr2("xxx",4,5,255) a=last a chubbyrain2() smoothuv(radius=7) crop(698,0,0,0,true) SmoothTweak(hue1=9,hue2=-8) b=last overlay(a,b,x=698,opacity=0.85) weave() ReplaceFramesMC2(25,1) ReplaceFramesMC2(26,1) ReplaceFramesMC2(28,1) ReplaceFramesMC2(29,1) TTempSmooth() LSFMod(defaults="slow") Crop(14,6,-8,-4).AddBorders(12,4,10,6) return last
Last edited by sanlyn; 19th Mar 2014 at 11:14.
-
c.avi (from post #42, https://forum.videohelp.com/threads/357064-Advice-on-what-filters-to-use-when-convertin...=1#post2254782):
I don't know what others are seeing in these captures but I see serious tracking problems, tape damage notwithstanding. c.avi has a blistering hot red that blinks rapidly on and off (see the boy's shirt in c.avi). If a quick and simple filter is all that's desired, try VirtualDub's camcorder color denoise and built-in temporal smoother. They won't solve many of these problems, but at least one could say something was done.
The first step is to reduce contrast and saturation to levels that wouldn't make a TV blow its fuse. This is the sort of trouble that could have been partially addressed during capture. Here's a before (left) and after (right):
[Attachment 19017 - Click to enlarge]
A quickie denoise script for the faint of heart (posted as "A_c_avi_quick_denoise.mpg"):
Code:#-----AVisynth plugins & scripts #- ChromaShift.dll #- aWarpSharp.dll (v2, March 2012) #- #-----VirtualDub plugins #- temporal smoother (built-in, set at 4) #- CamCorder Color Denoise (set at 24) AviSource("path to video\c.avi") COlorYUV(cont_y=5,off_y=-15,gamma_y=75) Tweak(coring=false,sat=0.75) ConvertToYV12(interlaced=true) ChromaShift(L=2) MergeChroma(awarpsharp2(depth=30)) Crop(12,8,-8,-8).AddBorders(10,8,10,8) # ---- To RGB for VirtualDub filters ConvertToRGB32(matrix="Rec601", interlaced=true)
A longer "B" version involved more time and more code, including QTGMC deinterlace, 2BDecided's MVDegrain2 denoiser, then reinterlace. Results are smoother, but it hardly seems worth it. I see signs of dropped frames. At one point in the middle, movement seems reversed and then forward again over less than a second. Stab() was used to help smooth camera tremble, which blurs the image. Posted as "B_c_avi_long_denoise.mpg":
Code:#--- Avisynth plugins & scripts: #- QTGMC-3.32.avsi #- Stab.avs #- ChromaShift.dll #- mvtools.dll (v1.11.4.5) #- aWarpSharp.dll (v2, March 2012) #- TTempSmooth.dll #- LSFmod.avsi #-----VirtualDub plugins #- temporal smoother (built-in, set at 4) #- CamCorder Color Denoise (set at 24) AviSource("path to video\c.avi") COlorYUV(cont_y=10,off_y=-17,gamma_y=90) Tweak(coring=false,sat=0.75) ConvertToYV12(interlaced=true) ChromaShift(L=2).MergeChroma(awarpsharp2(depth=30)) QTGMC(preset="very fast",sharpness=0.6) Stab() Crop(14,8,-6,-8).AddBorders(10,8,10,8) # --- Denoiser and deinterlace/reinterlace via 2BDecided ------ source=last #save original #denoiser: backward_vec2 = source.MVAnalyse(isb = true, delta = 2, pel = 2, overlap=4, sharp=1, idx = 1) backward_vec1 = source.MVAnalyse(isb = true, delta = 1, pel = 2, overlap=4, sharp=1, idx = 1) forward_vec1 = source.MVAnalyse(isb = false, delta = 1, pel = 2, overlap=4, sharp=1, idx = 1) forward_vec2 = source.MVAnalyse(isb = false, delta = 2, pel = 2, overlap=4, sharp=1, idx = 1) source.MVDegrain2(backward_vec1,forward_vec1,backward_vec2,forward_vec2,thSAD=400,idx=1) clean=last #save cleaned version #return clean # return cleaned version to check it if required diff1=subtract(source,clean).Blur(0.25) diff2=diff1.blur(1.5,0) diff3=subtract(diff1,diff2) #diff3 is high-ish frequency noise only sharpen(0.4,0.0) # sharpen cleaned version a little #mix high frequency noise back in overlay(last,diff3.levels(128,1.0,255,0,127,coring=false),mode="add", opacity=0.7) overlay(last,diff3.levels(0,1.0,127,128,255,coring=false).Invert(),mode="subtract", opacity=0.7) #put cleaned chroma back in with warp sharpening mergechroma(clean.aWarpSharp(depth=20.0, thresh=0.75, blurlevel=2, cm=1)) #re-interlace: assumetff().separatefields().selectevery(4,0,3).weave() # ---- END of MVdegrain2 cleaner ---------- TTempSMooth() # ---- To RGB for VirtualDub filters ConvertToRGB32(matrix="Rec601", interlaced=true) return last
Last edited by sanlyn; 19th Mar 2014 at 11:15.
-
e.avi (from post #42, https://forum.videohelp.com/threads/357064-Advice-on-what-filters-to-use-when-convertin...=1#post2254782): More strobe effects with red. What appear to be shadows in the folds of the red shirt are really the darker part of the strobe effect; darks and brights together blink rapidly. An unusual amount of noise for a JVC player, especially when the noise is in periodic "spurts" from the brickwork, the sofa, and the ugly cyan skin shadows. The idea of the scripts is to bring noise, red, and blue under control. There's a quick way that doesn't accomplish a great deal, and a longer way that works harder. Frame 65 from the original (left) and the longer "B" version (right):
[Attachment 19020 - Click to enlarge]
e-avi 65 before-vs-after.jpg
The script for A_e_avi_quickie requires only ChromaShift.dll, plus the VirtualDub stuff listed here:
Code:AviSource("path to video\e.avi") COlorYUV(cont_u=-25,off_u=-10,cont_v=-25) ConvertToYV12(interlaced=true) AssumeTFF().SeparateFields() MergeChroma(awarpsharp2(depth=30)) ChromaShift(C=-2) Weave() Crop(12,6,-6,-4).AddBorders(10,4,8,6) #--- To RGB for VirtualDub ---- ConvertToRGB32(matrix="Rec601",interlaced=true) #----VirtualDub Filters---- #-temporal smoother (4) #-Camcorder Color Denouse (28)
Code:#----AVisynth Plugins & Scripts: #-santiag.avsi #-QTGMC-3.32.avsi #-ChromaShift.dll #-aWarpSharp.dll v2 #- #----VirtualDub Plugins #-NeatVideo #-Camcorder Color Denoise (16) #-ColorMill AviSource(vidpath+"e.avi") COlorYUV(cont_u=-25,off_u=-10,cont_v=-25) ConvertToYV12(interlaced=true) santiag(1,2) QTGMC(preset="medium") MergeChroma(awarpsharp2(depth=30)) ChromaShift(C=-2) # --- reinterlace --- AssumeTFF().SeparateFields().SelectEvery(4,0,3).Weave() Crop(14,6,-6,-4).AddBorders(10,4,10,6) #--- To RGB for VirtualDub ---- ConvertToRGB32(matrix="Rec601",interlaced=true)
Last edited by sanlyn; 19th Mar 2014 at 11:15.
-
b.avi (from post #42, https://forum.videohelp.com/threads/357064-Advice-on-what-filters-to-use-when-convertin...=1#post2254782): Here are three alternatives: the "A" method (which also serves as a demo for various digital artifacts), and two somewhat more rigorous attempts at making less annoying video. Here is a frame from the original (left) and the same frame after the "C" script (right):
[Attachment 19023 - Click to enlarge]
The left-hand image illustrates why in-camera autocolor and autogain are works of the devil. Exposure and color of the house in the background are quite good. But father, baby, mother, hair, skin, and eybrows are purple and dark. When the camera moves and the picture includes more or less of the bright house, the brightness, color and saturation vary. You can undo those effects by working on this scene for 2 or 3 week or so. Or simply live with the changes and try to make the humans look human. Fixing the color isn't too difficult (reduce red and blue), then throw some light on the "shadow people" by raising gamma. This will brighten the background somewhat, but I don't think people will be watching the background.
What happened to the red border stain? It's there. But it's more difficult to see.
The "A" version of the b.avi mpg is a quickie that shows how noisy the capture is -- and shows why bad tracking does not produce captures that are easy to work with:
Code:#----Avisynth plugins & scripts #-SmoothAdjust.dll #- #----Virtual Dub plugins #-temporal smoother (built-in, set at 4) #-Camcorder Color Denoise (set at 32) AviSource("path to video.avi") COlorYUV(gamma_y=80,off_y=-9,cont_v=-30,off_v=3,cont_u=-60,off_u=-10) ConvertToYV12(interlaced=true) SmoothLevels(chroma=200,limiter=2,dither=100,tvrange=true) Crop(12,8,-8,-4).AddBorders(10,6,10,6) # --- to RGB32 for VirtualDub --- ConvertToRGB32(matrix="rec601",interlaced=true)
The "B" (QTGMC) script uses no additional VirtualDub filters:
Code:#---- Avisynth Plugins & Scripts: #-SmoothAdjust.dll #-santiag.avsi #-QTGMC-3.32.avsi #-Vinverse.dll #-TTempSmooth.dll #-LSFmod.avsi AviSource("path to video\b.avi") COlorYUV(gamma_y=80,off_y=-9,cont_v=-30,off_v=3,cont_u=-60,off_u=-10) ConvertToYV12(interlaced=true) SmoothLevels(chroma=200,limiter=2,dither=100,tvrange=true) Crop(12,8,-8,-4).AddBorders(10,6,10,6) santiag(1,2) # ------- deinterlace & denoise -------- QTGMC(preset="Medium") Vinverse() TTempSmooth().Dehalo_Alpha() LSFmod(defaults="slow",strength=50) # ------- re-interlace ------------- AssumeTFF().SeparateFields().SelectEvery(4,0,3).Weave()
Code:#---- Avisynth Plugins & Scripts: #-SmoothAdjust.dll #-santiag.avsi #-MCTemporalDenoise.avsi #-LSFmod.avsi AviSource("path to video\b.avi") COlorYUV(gamma_y=80,off_y=-9,cont_v=-30,off_v=3,cont_u=-60,off_u=-10) ConvertToYV12(interlaced=true) SmoothLevels(chroma=200,limiter=2,dither=100,tvrange=true) Santiag(1,2) MCTemporalDenoise(settings="Medium",interlaced=true) Crop(12,8,-8,-4).AddBorders(10,6,10,6) LSFmod(defaults="slow",strength=50)
Last edited by sanlyn; 19th Mar 2014 at 11:16.
-
i.avi (from post #42, https://forum.videohelp.com/threads/357064-Advice-on-what-filters-to-use-when-convertin...=1#post2254782): Here we have jaggies and sawtooth edges from faulty interlacing, with dot crawl, border stain, top border "hot flashes", rainbows, over saturation, and poor tracking. Having developed a skeptic's streak from this forum recently, I'll wager that few people see most of this.
Jaggies and excessive combing won't go away but can look smoother. The alternative with all the continuous camera motion and bounce would be inferior motion performance with SD progressive PAL. There is no easy/tough choice. This kind of trouble is either fixed or is not fixed. I used one script but ran it in two steps. Running all of it in one step is terribly slow and froze several times. Below, the original (left) and the result (right) with sky and top borders cleaned:
[Attachment 19027 - Click to enlarge]
Step 1 uses chubbyrain2 to process Even and Odd fields separately, then uses MCTD for the remaining chroma noise only.
Code:#----AVisynth Plugins & Scripts: #-chubbyrain2.avs #-SmoothUv.dll #-SmoothAdjust.dll #-MCTemporalDenoise.avsi #-ChromaShift.dll #-aWarpSharp.dll v2 AviSource("path to video\i.avi") COlorYUV(cont_y=-15,off_y=-4,gamma_y=10,cont_v=-30,cont_u=-30,off_u=-3) ConvertToYV12(interlaced=true) AssumeTFF().SeparateFields() a=last # -- save starting point as "a" e1=a.SelectEven() # -- filter "e1" EVEN fields, keep results as "e2" e1 chubbyrain2() smoothuv(radius=7) e2=last o1=a.SelectOdd() # -- filter "o1" ODD fields, keep results as "o2" o1 chubbyrain2() smoothuv(radius=7) o2=last Interleave(e2,o2) # -- rejoin e2 + o2, crop and keep as "b" SmoothTweak(hue1=5,hue2=-5) crop(0,0,0,-276,true) b=last overlay(a,b,x=0) # -- overlay top border "b" onto "a" weave() MergeChroma(MCTemporalDenoise(settings="high",interlaced=true)) ChromaShift(c=-4).MergeChroma(aWarpSharp2(depth=30)) Crop(16,6,-8,-6).AddBorders(12,6,12,6) return last #--- save as YV12 for STEP 2 ----
Code:#----AVisynth Plugins & Scripts: #-santiag.avsi #-QTGMC-3.32.avsi #-Vinverse.dll #-ReplaceFramesMC2.avs #- AviSource("path to video\i_open_0.avi") santiag(1,2) AssumeTFF().QTGMC(preset="medium") Vinverse() AssumeTFF().SeparateFields().SelectEvery(4,0,3).Weave() ReplaceFramesMC2(61,1)
Last edited by sanlyn; 19th Mar 2014 at 11:17.
-
j.avi (from post #42, https://forum.videohelp.com/threads/357064-Advice-on-what-filters-to-use-when-convertin...=1#post2254782): The same top border problems as i.avi, but much worse. One look at the warping and rippling reveals that the tape isn't tracking well at all. Was tbc turned on? The same fuzzy edges and motion noise as well. It would seem that even/odd fields are improperly placed somehow. Perhaps it's my imagination. The image below is from the original frame 45, with noisy top border (one of the cleaner frames!):
[Attachment 19029 - Click to enlarge]
Using a simple bob() to expand separated frames into full-sized images, the nature of the chroma flashes looks even worse. Some of the trouble extends into the middle of the frame. The bob'd image shows that the notch in the top border is on Even fields, not on Odd fields. Likely it will be masked by TV overscan anyway. The side borders are ragged.
[Attachment 19030 - Click to enlarge]
Again, I ran in two steps. Step 1 uses chubbyrain2 and MCTD in the same manner as with i.avi (previous post). This time, MCTD is pushed to its highest power...and there are still remnants of top border noise and some top-end flicker. A couple of anti-flicker attempts not shown here didn't help.
Code:#----AVisynth Plugins & Scripts: #-chubbyrain2.avs #-SmoothUv.dll #-SmoothAdjust.dll #-MCTemporalDenoise.avsi #-ChromaShift.dll AviSource(vidpath+"j.avi") COlorYUV(off_y=-5,gamma_y=-5,off_v=-5,cont_v=-10) ConvertToYV12(interlaced=true) AssumeTFF().SeparateFields() a=last # -- save starting point as "a" e1=a.SelectEven() # -- filter "e1" EVEN fields, keep results as "e2" e1 chubbyrain2() smoothuv(radius=7) e2=last o1=a.SelectOdd() # -- filter "o1" ODD fields, keep results as "o2" o1 chubbyrain2() smoothuv(radius=7) o2=last Interleave(e2,o2) # -- rejoin e2 + o2, crop and keep as "b" crop(0,0,0,-256,true) SmoothTweak(hue1=-5,hue2=5) b=last overlay(a,b,opacity=0.75) # -- overlay top border "b" onto "a" weave() MergeChroma(MCTemporalDenoise(settings="very high",interlaced=true)) ChromaSHift(C=-4) MergeChroma(aWarpSharp2(depth=30)) Crop(14,8,-6,-4).AddBorders(10,6,10,6) return last #---- SAVE AS YV12 FOR STEP 2 ---
Code:#----AVisynth Plugins & Scripts: #-santiag.avsi #-QTGMC-3.32.avsi #-Vinverse.dll #-RemoveDirt.avs + RemoveDirt.dll and RemoveGrain v.09 package #-TTempSmooth.dll #-aWarpSharp v2 #-LSFmod.avsi AviSource("path to video\j_step1.avi") santiag(1,2) AssumeTFF().QTGMC() Vinverse() RemoveDirt(20,0,false) TTempSmooth() LSFMod(defaults="slow",strength=50) AssumeTFF().SeparateFields().SelectEvery(4,0,3).Weave() return last
[Attachment 19031 - Click to enlarge]
Attached "A" and "B" are steps 1 and 2. It's a wonder that any video remains. I'd strongly suggest finding an alternate player or having the current player serviced if possible. Bad tracking and something faulty in the capture device are making life very difficult. These tapes shouldn't require so much work.Last edited by sanlyn; 19th Mar 2014 at 11:17.
-
I assumed some of the faults were baked in when the tapes were first copied VHS-(C) > VHS, but maybe some will respond nicely to a different VCR.
I wonder if you could make a living out of all this colour grading sanlyn? You've certainly removed those colour casts nicely. Well worth doing if the same change can be made to most outdoor sunny footage from a given tape/camcorder.
btw I've had a couple of camcorders which recorded video with colour faults at the edges, so it's not always tape degradation. It's can be just the way it was originally recorded. Back then it would always be lost in the overscan so no one cared.
Cheers,
David. -
Mm, I don't know where the right border stain comes from. I don't remember seeing posts with the same thing on the left. The top striping and flashing is a mystery, too.
I'm afraid I'm not technically versed in the deeper physics behind video color to get $$$ for it. Others probably know the numbers better than I do. Instead of theater/film degrees I should have gone with physics. Too late now.Last edited by sanlyn; 19th Mar 2014 at 11:17.
-
Sorry for the delay. Very busy around here. This is the workflow I'm using for this project and most of my own:
Your worklow:
I will follow it as you have described it:
1. Filter and correct lossless AVI, then save as lossless Lagarith AVI. Process in small segments when necessary.
2. I have 3 methods for encoding processed AVI's that are not being assembled into a long MPEG:
3. If AVi's are to be joined into a longer DVD that does not require a timeline editor with lots of special effects, there are two methods for doing it:
a) Encode AVI's separately to .m2v with separate .m2v and .wav audio files using TMPGEnc Plus2.5 or the HCenc encoder. Then load all of the .m2v/.wav files into TMPGenc MPEG Editor v3 or TMPGenc Smart Renderer v4, edit, join, apply a few basic effects (I usually don't use them), and create a long DVD-compliant MPG with Dolby audio.
I am busy sorting the various videos in years, cut duplicate scenes and then divide the videos in different clips according to what I see. Doing it this way will help me use your scripts and adapt it slightly if necessary. Even if I compare these uncorrected clips with the ones I posted originally, I now realize the reason for the outcry!!
Now, just a last favour.
You will remember that I posted a very bad clip from an old JVC VHS-C camcorder. You corrected it beautifully. The clip was o.avi and you replied in #52. So, these very bad ones I hope I will be able to manage.
That camera then broke and I had it fixed-should have bought a new one! For the next few years, I used that same camcorder for taking most of my videos. Although the video quality was somewhat better than before the repair, the videos have serious flaws. Unfortunately, there are many hours of these and they are quite sentimental, as the children were quite young then. I have posted the scenario ( #57) as well as 4 clips
#57
I have a few questions left:
o.avi and 3.avi from #1 was taken with my father in law's first camcorder- a second hand JVC. I had it serviced and the result was n.avi.Attached Files
I would appreciate it if you can look at these clips and advise accordingly. There are numerous horizontal lines and this will be practically impossible to fix these, but it would be nice if you can improve the quality somewhat.
Thanks again- hopefully I will now be able to finish the sorting of the videos over the next few weeks and then start to correct them!!
Albie -
Saving AVI's: Yes, almost everyone saves their original capture, except captures that were disasters and had to be replaced. From your saved captures, cut and gather only the scenes you need for a particular DVD project. Work thru those until you get your final DVD. Once they are finalized, remove or archive the intermediate or test AVI files (but save the scripts that you think gave you the results you wanted). Thus, you can make room for the next group of AVI's and the next compiled or burned MPEG/DVD that you want.
I wouldn't try to process all of your AVI's for all of your DVD's at the same time. That can make anyone crazy, and it consumes vast amounts of drive space. You could also make shorter 15-minute or 30-minute MPEG movies and assemble them in an authoring program to build longer compilations. Most MPEG authoring programs will accept multiple MPEG clips. TMPGEnc Authoring Works has smart rendering capability if you need it (but Mastering Works is basically an editor/encoder with timeline capability that does not smart-render encoded MPEG or h264 -- but if you work with lossless AVI in Mastering Works as input you don't need smart rendering). Advanced video workers don't use lossy encoded formats when adding special effects, extra audio, cuts, dissolves, etc. They apply their cleanup and effects with lossless formats, then encode after completing their modifications.
I looked at the A, B, C, D avi's and see similar problems but haven't had time to address them in detail. If you look at the scripts posted here and earlier as suggested methods, you'll see the same group of plugins and filters used again and again. These are popular filters and proven performers. They are a small sample of hundreds of Avisynth and VirtualDub filters available. But they have their purpose and limitations. For example, you wouldn't use a temporal smoothing plugin like TTempSmooth to fix color problems, nor would you use QTGMC as a denoiser unless the video really required a deinterlace/reinterlace repair. In these examples I used some heavy duty plugins like QTGMC, MCTemporalDenoise, and NeatVideo only as required -- but, unfortunately, many of these clips required aggressive treatment.
I believe many people would strongly advise that you encode to DVD with target bitrates of 6000 to 6500 VBR (variable bitrate) rather than lower bitrates. Heavily filtered or damaged/soft, low-resolution video with a lot of camera motion such as VHS home tapes do not display well on TV when encoded at lower bitrates. Home made DVD recordings made from digital TV broadcasts or movies ripped from commercial DVD's have higher resolution and much lower noise levels that usually play well when encoded at lower bitrates. A target bitrate of 6000 VBR will allow about 90 minutes of video on a single DVD disc, 6500 will allow about 75 minutes. You can double those times by using dual-layer discs -- which is not unusual. Most commercial DVD and BD discs are dual-layer, even when their playing time is far less than 2 hours, because of the high bitrates often used.
You don't have to use the products I suggested. They are popular and have a reputation as decent, reliable, and user friendly. Their newer products do have that ridiculous headache of checking your license over the internet every 3rd or 4th time you boot them up (it's very fast, but it's still a headache!). But it does reduce their cost considerably, and many licensed products use similar procedures in the background. I have tried several all-in-one NLE's, but despite their popularity I've been dissatisfied with their design and performance. At least TMPGenc gives a price discount if you already own one of their paid products. Even their ancient but still popular and very low-priced TMPGenc Plus 2.5 basic encoder from 2004 will qualify as a discount item, and it's still being recommended and sold. Considering their overall performance, I'd say that their pricing is competitive. Again, there are always the high-end NLE's and processors from Vegas Pro and Adobe Pro, but in those cases you're paying high prices for esoteric features you would never use. And their encoders, oddly, are not so wonderful.
The samples I posted used different encoders. Most of them were encoded with Mastering Works, usually because I had set up a template specifically for the processed AVI samples.
One advantage to working with lossless AVI originals is that they can be processed for different encoded formats, for instance for PC-only display or for internet posts, or even for standard definition h264. These are for later consideration, but the possibilities are there.Last edited by sanlyn; 19th Mar 2014 at 11:18.
-
Or using SeparateFields:
Code:AviSource("g.avi") AssumeTFF() SeparateFields() evn=SelectEven() odd=SelectOdd() # replace frames 25 to 31 with motion interpolated between frames 24 and 32 evn=ReplaceFramesMC(evn,25,7) odd=ReplaceFramesMC(odd,25,7) Interleave(evn,odd) Weave()
-
Yes, the camera is moving just slow enough for that to work. It does shift the landscape in the foreground somewhat. Depends on which effect the O.P. wants to live with, I suppose.
Last edited by sanlyn; 19th Mar 2014 at 11:18.
-
I use CBR at about 8Mbps+ unless I desperately need to fit more than an hour on one disc, but I might use less if I had a better MPEG-2 encoder. Given all the care taken to get to this point, I don't see any reason to introduce coding artefacts by using too-low-a-bitrate.
The filtered files on properly backed-up HDDs are my finished product. The DVD-Rs are just for watching. They won't last. They are not an archive medium unless you are both lucky and careful. Neither are HDDs - you need to copy them every few years and always have at least two copies at a time.
When joining encoded MPEG-2 files, beware of messing up the lip-sync (audio/video synchronisation). Not all free tools do this properly. Check the results before you commit to a particular workflow.
One advantage to working with lossless AVI originals is that they can be processed for different encoded formats, for instance for PC-only display or for internet posts, or even for standard definition h264.
These are for later consideration, but the possibilities are there. Another myth about DVD: there is nothing "bad" about DVD just because it is MPEG. The big secret is that HD BluRay is MPEG, just a different version and encoding.
Cheers,
David. -
New c.avi from post #71, https://forum.videohelp.com/threads/357064-Advice-on-what-filters-to-use-when-convertin...=1#post2256604 :
Red stroboscope effect here is similar to o.avi posted earlier, and several others. In this case the strobe effect and bizarre color imbalance are in even and odd fields alike, so SeparateFields() wasn't necessary here.
The red "flashing" required MCTemporalDenoise at "very high" for chroma only. I also ran santiag to smooth jagged edges. I ran these in a separate Step 1. Running all plugins in one script resulted in a processing speed of less than 1/4 frame per second. When run separately, each script ran at ~3.5 to 5 fps. Step2 included interlace cleanup and denoise with QTGMC and stab(), the only filters that calmed most of the "jitters" in this clip. Step 3 used VirtualDub. The easiest way to tweak corrupt color and levels was going to RGB.
The YUV histogram used to analyze the original clip is seen below. You should learn to read YUV and RGB histograms for difficult work. Your eyes see that something is wrong, but they don't "know" how to solve the problem without a picture of what is happening.
The original clip with YUV histogram. White arrows point to the worst problems.
[Attachment 19085 - Click to enlarge]
After Step2. Saturation and bright levels had to be reduced to help calm the strobe effect.
[Attachment 19086 - Click to enlarge]
Color restored and Tweaked in VirtualDub (step 3):
[Attachment 19087 - Click to enlarge]
The scripts used....you've seen all these filters earlier:
Step 1 script (similar to earlier problems with red flashing). SmoothLevels() from the SmoothAdjust plugin was used to give a "cleaner" dithered look to color and to adjust gamma and brights:
Code:#--- Avisynth plugins & scripts: #-SmoothAdjust.dll #-santiag.avsi #-MCTemporalDenoise.avsi AviSource("path to video\C.avi") ColorYUV(cont_y=10,off_y=5,gamma_y=-25) ColorYUV(off_v=-2,cont_v=-120,cont_u=-100) ConvertToYV12(interlaced=true) SmoothLevels(15,0.85,255,15,235,chroma=200,limiter=0,tvrange=true,smooth=200,dither=100,protect=6) santiag() MergeChroma(MCTemporalDenoise(settings="very high",interlaced=true)) # --- save As Lagarith YV12 (fast recompress) ---
Code:# --- AVisynth plugins & scripts: #-QTGMC-3.32.avsi #-stab.avs #-HQdering.avs #-ChromaShift.dll #-aWarpSharp.dll v2 #-TTempSmooth.dll #-LSFmod.avsi AviSource("path to video\C_step1.avi") AssumeTFF().QTGMC(preset="medium") STab() Crop(14,4,-8,-8).AddBorders(12,4,10,8) HQdering() ChromaShift(c=2,L=2).MergeChroma(aWarpSharp2(depth=35)) TTempSmooth() LSFMod() AssumeTFF().SeparateFields().SelectEvery(4,0,3).Weave() ConvertToRGB32(matrix="Rec601",interlaced=true) # --- save as Lagarith RGB32 (fast recompress) ----
TemporalSmoother (built-in)
ColorMill
Levels (built-in)
gradation curve
MSharpen (by Donald Graft) http://neuron2.net/msharpen/msharpen-vdub.html
VirtualDub Tools:
ColorTools histogram
CSamp.exe pixel samplerLast edited by sanlyn; 19th Mar 2014 at 11:18.
-
I can't quite put my finger on what it is, but often sanlyn the results of your colour corrections look more like they've come from an 8mm film than a video to me. It's like they're aiming for a different white point or saturation or colour balance or something. Is it your subjective preference to make them look like this, or is your monitor chroma/blue-heavy (so you turn it down a lot), or is my monitor lacking chroma/blue (so I keep more of it than you), or a bit of all three?
Just wondering. I've never calibrated this monitor properly but maybe I should. It's probably drifted over the years and isn't as white as it once was. Even so, other videos look normal to me on it - i.e. like videos, not film.
Cheers,
David. -
Hmm, I don't have a definite answer. Everyone has their preferences; some like bright-and-snappy or low-key, etc., even if circumstances don't call for it, and nowadays people go for an oversharpened/oversaturated effect...and so on. I just use whites, grays and blacks as a guide (knowing that pure colors don't exist in nature and that lighting affects everything, etc.), then work toward that goal -- but mindful that things should appear natural and convincing whether they are "exact" or not. With many sources, I just do what I can -- often that's somewhat short of being "satisfied" with the results. In the final image for the C.avi post above, there's too much contrast for in-the-shade daylight and the lady's face is too red. Main guiding principle: do what you can, then look again in 2 days.
I have IPS monitors and XRite's i1/D2 calibration kit. IMO calibration makes a big difference. I ran calibration again a week ago (once every 6 weeks or so) when images started looking a little green but pixel samplers were saying otherwise. When I was shopping I sought out monitors that look fairly neutral out of the box (none of them start out perfectly, but many are really just too far off the charts), and will give a clean grayscale ramp after calibration. Some monitors defy proper calibration.
Adding some fine grain helps to avoid the DV look.Last edited by sanlyn; 19th Mar 2014 at 11:18.
-
I think the posted image for c.avi has too much bright red and contrast myself. As I said, do what you can and then check again later. Below, I reduced bright red in the range 170-220 by about 10 points, which gives average RGB readings off the bright areas of the woman's face at ~ R-190 G-165 B-145, which is about right for fair skin. The hair is a problem, as no color there looks clean, and blacks in the bottom half of the clip are totally corrupt. Going from VHS-C with a defective camera, then to VHS, the histogram gets clobbered. The scene is shot in a shaded area, but lower contrast looked rather flat to me. Strong chroma filtering changed things even more and likely gets closer to a "different" look. One would simply have to make a lot of arbitrary decisions.
[Attachment 19102 - Click to enlarge]Last edited by sanlyn; 19th Mar 2014 at 11:19.
-
New A.avi from post #71,https://forum.videohelp.com/threads/357064-Advice-on-what-filters-to-use-when-convertin...=1#post2256604): The cause of the flicker is similar to the sufferences in odd and even fields in the earlier o.avi. Alternate fields are darker and more red than the others. COlor isn't too bad, but gamma is too low and the clip looks dim. This time, the border stain is cyan.
There are two bad rips at the top border and a bad hop in frames 20 and 21. I used jagabo's SeparateFields() idea to make new fields for the frames. Luckily there is not too much motion. The script begins with santiag() to smooth rough edges, then uses DeVCR() to partially clean some black streaks. Fields are separated, then Even fields ("e1") and Odd fields ("o1") are processed separately. Then the fields are rejoined (interleave). At that point, fields are still separated but are in the correct even/odd sequence:
Code:AviSource(vidpath+"A.avi") ConvertToYV12(interlaced=true) santiag() AssumeTFF().SeparateFields() a=last e1=a.SelectEven().ReplaceFramesMC2(20,2).DeVCR(20) o1=a.SelectOdd().ReplaceFramesMC2(20,2).DeVCR(20) Interleave(e1,o1)
With the weave() statement, interlace is restored:
Code:c=last c chubbyrain2() smoothuv(radius=7) crop(698,0,0,0,true) SmoothTweak(hue1=-4,hue2=5) d=last overlay(c,d,x=698) Weave()
Code:Crop(14,8,-6,-4).AddBorders(10,6,10,6) ConvertToRGB32(matrix="Rec601",interlaced=true) return last
[Attachment 19123 - Click to enlarge]
Posted are samples using three different denoisers: temporal soften (1_A_TT3.mpg), NeatVideo (2_A_NV.mpg), and QTGMC with LSFmod (3_A_QTGMC.mpg). The three denoisers had different effects on motion artifacts and noisy edges. The mpg's are slightly bright, but time for tweaking was short. Also attached is a .zip file that contains:
- A .vcf file with settings for deflicker, ColorMill and the gradation curve.
- The NeatVideo .dnp and .nfp settings files.
- A script with no denoising (the same script was used for the temporal smooth version and the NeatVideo version), and a script using QTGMC.
You have seen the same group of filters used in several ways. You have many choices and a small arsenal of tools to work with.Last edited by sanlyn; 19th Mar 2014 at 11:19.
-
YES! I thought I was the only one. Sanlyn has worked on my samples in the past, and has totally changed the color (my problem wasn't about color, mind you). He once took a clip that had a purplish, white background and somehow managed to give it a strong, green tint/hue.
Then he told me that MY video was green! Well duh, he made it that way. Sanlyn, why do you do these things, friend? -
If you don't like it, make it what you want. You've seen my effort. I posted these scripts as suggestions, not gospel. Where's yours?
Last edited by sanlyn; 19th Mar 2014 at 11:20.
-
B.Avi from post #71: Some of the worst jaggies and edge noise so far. Oversaturated, Purple-Red (even the sand is going purple), smeared and warped motion (look at the shadow side of her face), over sharpening, and terminal sunburn in skin tones. Color is difficult because even and odd fields look as if they are from different videos. Dithering needed to fix ugly coarse shadows and banding in the face. The noise was stubborn; I used QTGMC and 2BDecided's MVdegrain2 function. The posted script has nothing new -- a different combination of the same tools.
Before and after:
[Attachment 19162 - Click to enlarge]Last edited by sanlyn; 19th Mar 2014 at 11:20.
-
She's pretty sexy. Is that your wife? Try not to make her turquoise or lavender if possible ok?
I remember a few years ago, the Godfather "special director's cut" set came out (can we smell the breath of money hunger coming out of Paramount's mouth?). Anyway, it was supposedly re-released so that the fans can see the film "the way Coppola intended it".
They're going to re-release it again with colors the way Sanlyn intended you to see it. -
Apparently it's the O.P.'s mother or close family member. The color in The Godfather was perfect, so I wouldn't fool around with it.
However, if one can come up with a way to clean up the beach shot without bringing chroma channels closer to reality, they can give it a try. I fail to see why the terminal sunburn look, lavender sand, and purple hair would be preferable. Checking display colors against what you think you see and using a pixel sampler to check work would be out of the question for most users, since they don't know what a pixel is, don't know what a sampler is, don't know one RGB value from another, have no curiosity about it, don't want to know, and won't bother to find out. People pay big bucks for something like the Adobe Pro line and never use the simple pixel readers the pros use and that they paid $800-plus to get. Fortunately those people won't be offered big bucks to photograph the likes of The Godfather, and thankfully movies are much better off.
Hopefully other members are giving these scripts a glance; I'm certain there must be easier or better ways to fix the problems.Last edited by sanlyn; 19th Mar 2014 at 11:20.
-
sanlyn, don't rise to it.
Serious question: how do you tweak the values? AvsP? By hand? From some other GUI?
I just type them in by hand, F2 in VirtualDub, and either read the analysers I've got built into the script (histogram etc), or copy the frame into a graphics package and use its histogram. I know what a pixel sampler tool is, but only tend to use it on things that should be white or should be grey to see how far off they are - wouldn't have a clue what values anything else should be.
Anyway there must be a far easier way even within AVIsynth, so I was wondering if you've found it? Many people say AvsP is it, but I can't get on with it.
One trick I've picked up: for tweaking things like levels or cropping or whatever, I replace proper deinterlacing with bob() and proper denoising with temporalsoften(). The result is unusable, but the levels are about what I'll get after proper deinterlacing and denoising without having to wait for a very slow script to re-initialise each time, so it's much quicker to mess around with levels etc. When the levels are right, the proper deinterlacing and denoising can be put back it.
Cheers,
David. -
That's what I do. I use CSamp to read RGB values off the screen (VirtualDub should have that function built in). Sometimes I'll use Animate() for "live" feedback of a variable change.
-
I open the video or script in VirtualDub and use Csamp. Checking out YUV and RGB histograms comes first. Corrections begin in YUV with ColorYUV, Levels, SmoothLevels, etc. -- the results are checked by clicking "Reopen video file" to keep me on the same frame. I've tried Avsp many times but keep going back to VirtualDub so I can resize frames, copy to clipboard and view with Photoshop tools, switch back and forth between VDub's output window or the ColorTools histogram. I take YUV as far as I can; RGB color comes last, and often you don't need it. I was once asked, why Photoshop? You can copy various phases of your corrections into layers, then switch layers to compare (Did I just make this better, or worse than it was 5 changes ago?). Photoshop or AfterEffects can set its image viewers for SD or HD display, etc., more accurately than other viewers. Using all this stuff isn't always necessary.
Work in subdued light. Don't stare at anything for more than several minutes -- your eye will adjust to practically anything and try to make it look "normal", especially if it's too dark or bright. The same goes for denoising; you think you've denoised OK, then come back in 20 minutes in better light and noise pops up everywhere or you find that your brain had you overcompensating and you've filtered the image to death.
Yet with all those toys, the final arbiter is how the results look on playback.
The idea behind pixel samplers is to analyze why something doesn't "look right". Your eye can see that someone's skin looks too green, but which color is under- or over-supplied that makes it look that way? Usually it's a deficit of blue, but I've been fooled and Csamp told me otherwise. A pixel reader's most common use is to determine corrections for whites, grays, and blacks. True "black" is easy: RGB 0-0-0. But black clothing and the like are seldom that dark. A true middle gray would be RGB 128-128-128, bright white would be 255-255-255. But a white shirt at RGB 235 oe 255 usually looks unnatural; white clothing and other objects are seldom so bright or pure. A white shirt or dress looks pretty bright at RGB 200-200-200. The shadow areas would be 175-175-175 or darker. RGB values for black and all shades of "white" in between (grays) will have equal proportions of Red, Green, and Blue, depending on how dark or bright they are. If you can get those RGB proportions at or near optimum for shades of black to white, other colors should fall into place.
Skin tones follow a general (very general) rule: red is dominant, with green about 20 to 30% of red, blue about 20% less than green. Guys have more red. Exceptions are orientals (more green, or less blue) and Morgan Freeman (less green, as well as more blue). Another rule for balancing too much or too little of something: primary colors (red, green, blue) can be balanced-out by their complementary hue (cyan, magenta, and yellow respectively). Many try to fix a too-red image by adding blue; unfortunately, that changes the overbalance from red to pink. So either reduce red or add cyan (blue + green). Reducing or adding colors affects brightness, gamma, and contrast. So you have to readjust.
Gosh, it takes more time to explain it than to do it. Until you get to VHS, which can drive you crazy.Last edited by sanlyn; 19th Mar 2014 at 11:21.
-
New D-avi from post #71: The strobe effect is green, with red strobe on the front of the girl's dress. Strobe alternates in odd and even fields. Odd and even fields have different color. The girl and the man are on the red side of purple; the roasting pit and shadows under it are blue. Photographed in subdued hazy sunlight, but highlights on the girl's arms are burned away and lose blue and green. clipping prevents adding more contrast -- the girl's eyes and mouth would turn ugly black, and more banding would appear on her arms. More sharpening would also cause banding, and worsening of halo on dark edges. The soft lighting wouldn't warrant more contrast.
I ran the attached script as two steps to prevent slow processing and crashing. Step 3 was minor color tweaks in VirtualDub with ColorMill and gradation curves. Original color is corrupt: I never could get the girl's skin or lips to look quite correct.
[Attachment 19173 - Click to enlarge]Last edited by sanlyn; 19th Mar 2014 at 11:21.
Similar Threads
-
Basic advice on codecs/filters/hardware combinations
By mrg155 in forum Newbie / General discussionsReplies: 5Last Post: 19th Dec 2011, 10:37 -
Could I get some advice on which VirtualDub filters to use?
By ryangarfield in forum RestorationReplies: 8Last Post: 1st Jan 2011, 00:26 -
Help/Advice Converting .AVI Divx Files To ...
By MourningStar in forum Video ConversionReplies: 2Last Post: 12th Dec 2009, 16:18 -
Advice on converting TV recorded .TS to AVI or H.264
By doveman in forum Video ConversionReplies: 8Last Post: 22nd Apr 2009, 09:06 -
Converting old VHS-C and Hi-8 tapes to AVI files--HELP!
By molon labe in forum Newbie / General discussionsReplies: 10Last Post: 19th Dec 2008, 18:28