VideoHelp Forum




+ Reply to Thread
Page 2 of 4
FirstFirst 1 2 3 4 LastLast
Results 31 to 60 of 94
  1. No rush .. take as long as you want.
    Quote Quote  
  2. Originally Posted by jagabo View Post
    You can sharpen the colors a bit with something like MergeChroma(last, aWarpSharp(depth=20)). Then align them better with the luma with ChromaShift(c=4, l=-2). A little levels adjustment is probably called for ColorYUV(gain_y=16, off_y=-16).

    Image
    [Attachment 20415 - Click to enlarge]


    The reds still seem a bit overdone and bleeds on the right edge. I didn't bother treating the video as interlaced, you should. There's another problem where the chroma misalignment is different for each field.

    In the background on the stills above it typifies the other big issue ... that whites have that light blue colour ... it isn't static (white balance issue for example) but a flashing blue, not constant.

    What causes that ? ......... and where do you look to try to fix ?
    Last edited by Tafflad; 9th Oct 2013 at 13:40.
    Quote Quote  
  3. Member 2Bdecided's Avatar
    Join Date
    Nov 2007
    Location
    United Kingdom
    Search Comp PM
    Didn't we have a thread about this footage a couple of years ago? Or was that different but similar footage?
    Quote Quote  
  4. We started on it .. and then I decided to stop at that point .. and redo all captures with ADVC300 & TBC.
    So went bought the kit and now back to the 'capture' point.
    Quote Quote  
  5. Banned
    Join Date
    Oct 2004
    Location
    New York, US
    Search Comp PM
    Originally Posted by 2Bdecided View Post
    Didn't we have a thread about this footage a couple of years ago? Or was that different but similar footage?
    I recall something similar, but different footage. There have been several threads with exactly the same problems I describe, below. One very similar a short while back was from Sweden, using the same capture gear.

    Originally Posted by Tafflad View Post
    We started on it .. and then I decided to stop at that point .. and redo all captures with ADVC300 & TBC.
    So went bought the kit and now back to the 'capture' point.
    That might be a good idea, even if the source itself is a nightmare. Among the first problems I encountered was field placement anomalies like the one below, from clip 2. Note disturbance at the top of the frame, then watch frames 107 thru 113. This is deinterlaced YV12 AVI (Lagarith):

    Code:
    ffvideosource(vidpath+"Sandhurst - Clip 2.avi")
    AssumeBFF().QTGMC(preset="fast")
    Trim(260,385) 
    Image Attached Files
    Quote Quote  
  6. Member 2Bdecided's Avatar
    Join Date
    Nov 2007
    Location
    United Kingdom
    Search Comp PM
    Originally Posted by sanlyn View Post
    I recall something similar, but different footage.
    Found it. It's a re-capture of the same thing...
    https://forum.videohelp.com/threads/316521-Help-the-beginner-time-VHS-TBC-ADVC300-PC


    Some of the stuff in that thread is still relevant.


    Cheers,
    David.
    Quote Quote  
  7. Banned
    Join Date
    Oct 2004
    Location
    New York, US
    Search Comp PM
    There ya go. You're right, it's the same footage (I must have had a senior moment trying to connect old and new). I was up until 1:30 AM looking for it. I just didn't go back far enough.
    Quote Quote  
  8. Member DB83's Avatar
    Join Date
    Jul 2007
    Location
    United Kingdom
    Search Comp PM
    Originally Posted by 2Bdecided View Post
    Originally Posted by sanlyn View Post
    I recall something similar, but different footage.
    Found it. It's a re-capture of the same thing...
    https://forum.videohelp.com/threads/316521-Help-the-beginner-time-VHS-TBC-ADVC300-PC


    Some of the stuff in that thread is still relevant.


    Cheers,
    David.
    Golly gosh. It's not just on the tv that we get repeats then
    Quote Quote  
  9. Member 2Bdecided's Avatar
    Join Date
    Nov 2007
    Location
    United Kingdom
    Search Comp PM
    Originally Posted by sanlyn View Post
    There ya go. You're right, it's the same footage (I must have had a senior moment trying to connect old and new). I was up until 1:30 AM looking for it. I just didn't go back far enough.
    I clicked "Tafflad > View Forum Posts" and looked at the first threads he posted.



    Originally Posted by DB83 View Post
    Golly gosh. It's not just on the tv that we get repeats then
    I've seen worse. There was one person's camcorder clip of a dog jumping at a ball that he/she posted in every deinterlacing thread on doom9 for about five years. I like to think that they were posting it as a good test sequence for checking how good the latest deinterlacer was (and to be fair, it is a good test clip for that!), but maybe it just took them five years before they thought "Oh, go on then, I'll actually deinterlace it now". If one of their relatives was waiting with baited breath for the debut of the classic "dog jumping at a ball" on YouTube, they were waiting a long time.


    I shouldn't criticise. I'm of the "upload it straight away or leave a decade-or-so" school of thought. People want to see things when they've just happened, or when everyone has aged and moved on. With the latter, there's no hurry, until people start dying off.


    Cheers,
    David.
    Quote Quote  
  10. Yep ... as mentioned I started on it ... and then decided to build a new PC, and then redid all the VHS captures .. with a 2 yr gap
    Quote Quote  
  11. Coupling together the (extremely) helpful input from the 2 threads, seems to pull together this script.

    Could those that know take a peek and tell me if OK ? .....

    Code:
        #Load file
      avisource("Test Clip 001.avi")
      
      # Levels adjustment, down by 16
      ColorYUV(off_y=-16, cont_v=-40)
      
      # Increase the contrast
    
      levels(10,1.0,250,0,255,coring=false)
      
      # Increase the saturation
    
      tweak(sat=1.2,coring=false)
      
      # DV = BottomFieldFirst
      assumebff() 
      
      # Deinterlace
      SeparateFelds().Weave()
      
      # Fix (S-)VHS chroma shift
      ChromaShift(C=4, L=-4)
      
      mergechroma(last.crop(0,Vshift,-Hshift,0).addborders(Hshift,0,0,Vshift))
      
      converttorgb(interlaced=false,matrix="PC.601")
      
      rgbadjust(1,1,1.05,1,0,0,-13,0)
      
      # Need YV12 for mc_spuds and aWarpSharp
      converttoyv12(interlaced=false,matrix="PC.601")
      
      # Store the noisy version
      a=last 
      
      # Denoise with mc_spuds
      mc_spuds(chro=true)
      
      # warp horrible fuzzy chroma to match nice sharp luma
      c=aWarpSharp(depth=20.0, thresh=0.75, blurlevel=2, cm=1)
      
      # sharpen the very soft picture!
      sharpen(0.75,0.5)
      
      # put a little of the original noise back in to avoid "plastic" look
      overlay(a,opacity=0.4) # 0.5 keeps 50% noise, 0.25 keeps 25% noise etc
      
      # completely replace chroma with nice version
      mergechroma(c)
      
      # add light grain to try to fake a little extra resolution
      grainfactory3(g1str=4, g2str=4, g3str=4)
      addgrainc(0,2)
      
      # go back to a nicer colour space before re-interlacing
      # (not worth it for DVD etc, but good if you want to store lossless YUV and maybe take frame grabs)
      converttoyuy2(interlaced=false)
      
      #re-interlace  assumebff()
      separatefields()
      selectevery(4,0,3)
      weave()
      
      # crop out junk
      crop(8,8,-8,-12).AddBorders(8,8,8,12)
    I would welcome corrections or tweaks, or any reordering if necessary.
    Quote Quote  
  12. Banned
    Join Date
    Oct 2004
    Location
    New York, US
    Search Comp PM
    It wont run. But just to start with a couple of basic things (I can't cover all of it):

    Code:
      # Deinterlace
      SeparateFelds().Weave()
    This doesn't deinterlace. Deinterlace and SeparateFields are not the same thing. In this case, all the script does is separate interlaced fields and weave them back together. You end up where you started.

    Near the end your script does this:

    Code:
    #re-interlace  assumebff()
      separatefields()
      selectevery(4,0,3)
      weave()
    Nope. This is for video that has been deinterlaced into full-size frames with bob(), yadif, QTGMC, or some other deinterlace routine. You don't do this with interlaced video -- and at this point in your script, your video is still interlaced (see SeparateFields + weave, above). The statement is likely to give you an error anyway. And in the first line in this code scetion, line #1 is commented out with "#", so "assumebff()" will be ignored.

    Code:
    mergechroma(last.crop(0,Vshift,-Hshift,0).addborders(Hshift,0,0,Vshift))
    Do you know what Vshift and Hshift are? We don't. Neither does your script. If you look at the original script from which that line was taken, you'll see that Vshift and Hshift are defined somewhere as numeric variables. They aren't defined in this script.

    Oh, well...I haven't seen those videos in a while, so I'd have to refresh my memory before I'd try rewriting all of it.
    Quote Quote  
  13. OK .. I tried to take the comments that you & Jagabo had made on this thread ... and the script that 2bdecided put in the thread: https://forum.videohelp.com/threads/316521-Help-the-beginner-time-VHS-TBC-ADVC300-PC

    Obviously not got it right .... appreciate it if you can help correct it
    Quote Quote  
  14. Banned
    Join Date
    Oct 2004
    Location
    New York, US
    Search Comp PM
    Code:
    #Load file
    avisource("Test Clip 001.avi")
      
    # Levels adjustment, down by 16
    ColorYUV(off_y=-16, cont_v=-40)
      
      # Increase the contrast
      # NOTE: I have disabled the line below.
      # Look over your video before trying stuff like this. Might not be necessary
    #levels(10,1.0,250,0,255,coring=false)
      
    # Increase the saturation
    tweak(sat=1.2,coring=false)
    
    # Deinterlace (DV = BottomFieldFirst)
    AssumeBFF().QTGMC(preset="faster")
      
    # Fix (S-)VHS chroma shift
    ChromaShift(C=4, L=-4)
    
    # Need YV12 for mc_spuds and aWarpSharp
    ConvertToYV12(interlaced=false,matrix="PC.601")
    
    # Store the noisy version
    a=last
      
    # Denoise with mc_spuds
    mc_spuds(chro=true)
      
    # warp horrible fuzzy chroma to match nice sharp luma
    c=aWarpSharp(depth=20.0, thresh=0.75, blurlevel=2, cm=1)
      
    # sharpen the very soft picture!
    sharpen(0.75,0.5)
      
    # put a little of the original noise back in to avoid "plastic" look
    overlay(a,opacity=0.4) # 0.5 keeps 50% noise, 0.25 keeps 25% noise etc
      
    # completely replace chroma with nice version
    Mergechroma(c)
      
    # add light grain to try to fake a little extra resolution
    grainfactory3(g1str=4, g2str=4, g3str=4)
    addgrainc(0,2)
      
    ConverttoRGB(interlaced=false,matrix="PC.601")
    RGBadjust(1,1,1.05,1,0,0,-13,0)
    
    # back to YV12 for DVD or BD/AVCHD
    ConvertToYV12(interlaced=false,matrix="PC.601")
      
    #re-interlace
    AssumeBFF().SeparateFields().SelectEvery(4,0,3).Weave()
    
    return last
    Last edited by sanlyn; 22nd Oct 2013 at 18:12.
    Quote Quote  
  15. I'll go thru this line by line to try and understand where I went wrong ... 2 parts are cut & paste errors for sure.

    Thanks ... I'll go compare
    Quote Quote  
  16. Banned
    Join Date
    Oct 2004
    Location
    New York, US
    Search Comp PM
    I borrowed some things from previous scripts (thanks @2BDecided for the S-video chroma shift idea). No matter how few or how many filters you use, this thing still looks over filtered, probably because the source seems denuded. I managed to get the cadet uniforms fairly correct (they're supposed to be brown; the ladies wear field green; bigwigs and hotshots have tan, olive, and I've also seen them in black). But I don't think anything will ever look "correct". Clip2 has a different color balance and different contrast for each of the two shots. Needs more tweaking. But first, sleep.
    Image Attached Files
    Quote Quote  
  17. That is a big improvement ....
    Quote Quote  
  18. Banned
    Join Date
    Oct 2004
    Location
    New York, US
    Search Comp PM
    Well...yes, I think just about anything would be an improvement (LOL!). Kinda similar to 2BDecided and jagabo earlier versions, IMO, especially coming from a few routines in their previous scripts. There won't be a huge difference in results. My own script changed so many times it's mostly "#" lines. Will post if I can ever get it straightened out.
    Quote Quote  
  19. Just shows that this was a tape bought from a Professional Video company ... and it's not that it's all age degradation it was poor to start with.
    I'll wait to see your final script.
    Quote Quote  
  20. Banned
    Join Date
    Oct 2004
    Location
    New York, US
    Search Comp PM
    Originally Posted by Tafflad View Post
    I'll wait to see your final script.
    Well, it's attached. There's the easier and quicker way as in previous scripts. Then there's the slow, patient way. Thank goodness I wouldn't have to do all this with most of my VHS restores. But I have a couple that were worse. Talk about stuff that makes one old before one's time...
    Image Attached Files
    Quote Quote  
  21. Thanks a million .... I'll go try it.


    Notice that MC_spuds not used, is MCTemporalDenoise a better way of achieving this ?
    Last edited by Tafflad; 23rd Oct 2013 at 14:22.
    Quote Quote  
  22. Banned
    Join Date
    Oct 2004
    Location
    New York, US
    Search Comp PM
    Set up your coffee maker first.

    I didn't include the settings for the VirtualDub filters. They are saved in a .vcf text file that can be imported into VDub. What a headache.
    Quote Quote  
  23. Not sure what that means? ... do I need to get the .vcf file from you first and load it, or does script auto generate this ?
    Quote Quote  
  24. Banned
    Join Date
    Oct 2004
    Location
    New York, US
    Search Comp PM
    Depends on whether you want to use VirtualDub for more cleanup. If you're not good with color work or unfamiliar with VDub's color adjustment filters, I'd suggest using the .vcf (which Avisynth can't make. Those have to be made by VDub). A .vcf is really a text file with .vcf at the end of the file name. You load it into VirtualDub by using "file..." -> "Load processing settings..", then navigate to the loaclation where you've saved the vcf, and it loads the required plugins and their settings. Then you can open the "Filters"window and examine how each filter is set up.

    You need to have the plugins that the vcf calls for, copied into Vdub plugins. In this case I used these plugins:

    - gradation curves (gradation.vdf) http://members.chello.at/nagiller/vdub/index.html
    - Hue/Saturation/Intensity by DOnald Graft (Hue.vdf) http://neuron2.net/hue.html
    - ColorMill (ColorMill.vdf) ) http://fdump.narod.ru/rgb.htm
    - Trevlac's ColorTools RGB histogram (clrtools.vdf) http://trevlac.us/colorCorrection/colorTools.html

    To speed things along, I made a .zip file that contains all 4 plugins and the .vcf file for the settings used. Copy the vdf's to your VDub plugins folder. There are also some .txt or .htm help files (copy those too). This was downloaded a while back to another thread, but I couldn't locate it-- so I made a new .zip .

    BTW, a .vcf is a plain text file. You can open it with Notepad or a word processor and see what it looks like. Why would one want to do this? Many people load Vdub filters into Avisynth scripts. Each plugin has its own calling procedure, but the .vcf shows what settings the filters want.
    Image Attached Files
    Last edited by sanlyn; 20th Mar 2014 at 07:27.
    Quote Quote  
  25. I thought that you used the AVIsyth script to drive VD ? ...

    Is that the way as long as you load the vcf file & pluins first ? ..........
    I'll download them now
    Quote Quote  
  26. Banned
    Join Date
    Oct 2004
    Location
    New York, US
    Search Comp PM
    When you run an Avisynth script in VirtualDub, you can also load VDub filters to run on Avisynth's output at the same time. Sometimes that puts a load on your OS and things run slower that way. It can often be headache to test, debug, and tweak VDub's settings if you have to wait for an Avisynth script to serve VDub more frames.
    Quote Quote  
  27. Had some fun finding some of the plugins (particularly ffms2 dll/avsi) ... but have them now ...
    Can't seem to get underway ...

    avi file location and video file patch input into step1 script (script below), it executes, but can't seem to get past an error:

    script error: expected a, or)
    (E:\users\Rick\desktop\Sandhurst\step1.avs, line 3, column 22)

    Tried multiple variations of path in case that was the issue.

    Script "Step 1"

    Code:
    loadCplugin("D:\Program Files (x86)\AviSynth 2.5\plugins")
    aud = ffaudiosource(E:\Users\Rick\Desktop\Sandhurst\"Clip 2.avi")
    vid = ffvideosource(E:\Users\Rick\Desktop\Sandhurst\"Clip 2.avi")
    #--- join video + audio
    audiodub(vid,aud)
    
    ColorYUV(cont_y=-20,off_Y=-5)
    ColorYUV(cont_u=-45)
    ColorYUV(cont_v=-60,off_v=3)
    #--- cut blue again to smooth blue "spikes"
    ColorYUV(cont_u=-50,gain_u=-15)
    
    #--- deinterlace + a little denoising
    AssumeBFF().QTGMC(preset="fast")
    
    ConvertToYV12(interlaced=true)
    Cnr2("xxx",4,5,255)
    BiFrost()
    SmoothLevels(20,1.0,255,16,240,chroma=200,limiter=0,tvrange=true,smooth=200,dither=100,protect=6)
    Crop(0,2,0,-12).AddBorders(0,6,0,8)
    
    return last
    

    Quote Quote  
  28. Put the first set of quotation marks inside the first parenthesis:

    aud = ffaudiosource("E:\Users\Rick\Desktop\Sandhurst\Cli p 2.avi")
    vid = ffvideosource("E:\Users\Rick\Desktop\Sandhurst\Cli p 2.avi")

    That may not be all that's wrong, though.
    Quote Quote  
  29. Thanks for that, allowed me to move fwd ... few more syntax issues & plugins missing.

    I did have "Smoothlevels argument missing" and checked this requires masktools (I had mt_masktools-25) and RemoveGrain (I had RemoveGrainSSE2 & 3)
    Installed these and now get:
    RemoveGrain; invalid mode 20
    (QTGMC-3.32.avsi, line 756)
    (QTGMC-3.32.avsi, line 781)
    (QTGMC-3.32.avsi, line 614)


    Any pointers on how to resolve ?
    Quote Quote  
  30. Banned
    Join Date
    Oct 2004
    Location
    New York, US
    Search Comp PM
    Sorry I dropped out for a while (partial power power outage in the area, lost cable service overnight. Phooey).

    Manono is right. String values should be inside double-quotes. A path statement is a continuous string: "E:\Users\Rick\Desktop\Sandhurst\Clip 2.avi" . I forgot to revise that little vidpath business in my script (well, it was getting late here). My bad. So here's a brief lesson in some Avisynth conventions:

    The original script was typed this way:

    Code:
    PathToVideo="E:\forum\tafflad2\"
    aud = ffaudiosource(PathToVideo+"Sandhurst - Clip 2.avi")
    vid = ffvideosource(PathToVideo+"Sandhurst - Clip 2.avi")
    PathToVideo is something I created. It is a name I gave to a place in memory that will contain whatever data I assign to it. In the case of PathToVideo="E:\forum\tafflad2\", I created a thingie called PathToVideo and I told Avisynth that it would contain a string of characters that I defined as "E:\forum\tafflad2\", in quotes. So whenever Avisynth sees the word PathToVideo, it knows that PathToVideo contains "E:\forum\tafflad2\".

    You've seen that sort of thing in other places in these scripts. For example you've seen this in previous scripts:
    Code:
    # Store the noisy version 
    a=last
    In the line above, "a" is a user-created variable name. The "=" is used to assign some data to it. The data that is assigned to "a" is actually the "last" thing the script did to the video clip. Literally, it's something that points to a copy of the video as it existed at that point in time. Later, you saw that "a" was used to indicate that copy of the video:

    Code:
    # put a little of the original noise back in to avoid "plastic" look 
    overlay(a,opacity=0.4) # 0.5 keeps 50% noise, 0.25 keeps 25% noise etc
    The line above is used to overlay that "a" copy with the filtering work done in the previous statements.

    You saw something similar in the earlier scripts with these lines:

    Code:
    # warp horrible fuzzy chroma to match nice sharp luma 
    c=aWarpSharp(depth=20.0, thresh=0.75, blurlevel=2, cm=1)
    Above, "c" is used in the same way. "c" is a user-created variable that contains a copy of the video that was filtered with "aWarpSharp(depth=20.0, thresh=0.75, blurlevel=2, cm=1)". A few lines later, you saw what was done with that "c" copy of the video:

    Code:
    # completely replace chroma with nice version 
    Mergechroma(c)
    The line above copies only the chroma from "c" into the last thing that was done in previous statements.

    You saw these variable thingies used in other places, as well. For instance:

    Code:
    w=width
    h=height
    When the Avisynth script sees "h" it knows that "h" means the video's height. It will also know that ""w" equals the video's width. Let's say the video's width is 720 and its height is 576. So you can resize the video by using this statement:

    Code:
    Spline36Resize(w, h)
    ...which is simply a shorthand method of writing the statement this way:

    Code:
    Spline36Resize(720, 576)
    Why do people engage in this strange behavior? Well, it's a way to avoid writing long or repetitive statements over and over. If I wanted to take that 720x576 video and reduce it to half its size, and later to restore to the original size, I could write this:

    Code:
    Spline36Resize(720/2, 576/2)
    ...do some processing...
    Spline36Resize(720,576)
    Or one could also write it this way, which does the same thing:

    Code:
    w=width
    h=height
    Spline36Resize(h/2, w/2)
    ...do some processing...
    Spline36Resize(h, w)
    You could use that same code for different videos having different frame sizes, without having to enter the specific numbers for width and height in every statement of the routine.

    So, in my original script I had these statements:
    Code:
    PathToVideo="E:\forum\tafflad2\"
    aud = ffaudiosource(PathToVideo+"Sandhurst - Clip 2.avi")
    vid = ffvideosource(PathToVideo+"Sandhurst - Clip 2.avi")
    In the above lines, I created PathToVideo and assigned a string of characters to it. That string of characters was a path statement that ended with "/". Then I use the "+" operand to join that character string with other character strings. So when Avisynth sees the above lines, it interprets them as meaning this:

    Code:
    PathToVideo="E:\forum\tafflad2\"
    aud = ffaudiosource("E:\forum\tafflad2\Sandhurst - Clip 2.avi")
    vid = ffvideosource("E:\forum\tafflad2\Sandhurst - Clip 2.avi")
    Later, if I move all those scripts and videos to a different location (which I often do), I'd have to retype every one of those path statements with a different path statement. In this case, all I would have to change is the characters I assign to PathToVideo.

    This sort of thing also comes in handy if you have to load a lot of scripts and plugins. For example:

    Code:
    ppath="D:\Avisynth 2.5\plugins\"
    Import(ppath+"SmoothD2c.avs")
    Import(ppath+"RemoveDirt.avs")
    Import(ppath+"RemoveSpots.avs")
    Import(ppath+"TemporalDeGrain.avs")
    Import(ppath+"FastLineDarken 1.3.avs")
    LoadPlugin(ppath+"mvtools.dll")
    LoadCPlugin(ppath+"yadif.dll")
    Would be the same thing as typing all of these path statements again and again:

    Code:
    ppath="D:\Avisynth 2.5\plugins\"
    Import("D:\Avisynth 2.5\plugins\SmoothD2c.avs")
    Import("D:\Avisynth 2.5\plugins\RemoveDirt.avs")
    Import("D:\Avisynth 2.5\plugins\RemoveSpots.avs")
    Import("D:\Avisynth 2.5\plugins\TemporalDeGrain.avs")
    Import("D:\Avisynth 2.5\plugins\FastLineDarken 1.3.avs")
    LoadPlugin("D:\Avisynth 2.5\plugins\mvtools.dll")
    LoadCPlugin("D:\Avisynth 2.5\plugins\yadif.dll")
    NOTE: Step1 will result in a video that looks somewhat dim and undersaturated. I did that on purpose so that I could tweak those results in VirtualDub using more specific color and level filters. I felt this was necessary because the two camera shots have different levels and color balance.
    Last edited by sanlyn; 20th Mar 2014 at 07:34.
    Quote Quote  



Similar Threads

Visit our sponsor! Try DVDFab and backup Blu-rays!