VideoHelp Forum




+ Reply to Thread
Results 1 to 27 of 27
  1. Member
    Join Date
    Nov 2012
    Location
    France
    Search PM
    Hello
    I attemp to acquire old family VHS with an ATI TV wonder 600 PCI.
    I use composite input.
    I capture in 720*576 , I use picvideo compression and lame MP3 , I use virtualdub capture
    I have no drop frame
    When I use the same cable on the TV (CRT or LCD) all is ok.
    When I Capture I have very strange HUE variation.
    The start time is always in the same time but it's for sometime 1 seconde, sometime 10 seconde.
    As you see in the picture , there is the problem in the same scene .
    On the first picture you see the scene with normal color, on the second picture, 1 second later hue is bad....

    On virtualDub with hue/saturation/intensity I can adujust picture (hue -99,sat 0.84) and obtain the normal image but it's a very long job to apply filter on 1 to 10 second in 2 to 20 time per minute.
    Where this Hue probleme could come from ? ATI card ? ati drivers ?
    since the problem is not on the tv and is for all my VHS, i think the is no probleme with the VHS or the VCR.
    Thanks for your help.
    Image Attached Thumbnails Click image for larger version

Name:	0003.jpeg
Views:	279
Size:	173.7 KB
ID:	14638  

    Click image for larger version

Name:	0007.jpeg
Views:	248
Size:	161.5 KB
ID:	14639  

    Quote Quote  
  2. Member
    Join Date
    May 2007
    Location
    Romania
    Search Comp PM
    I suppose that the vcr is VHS and S-Video is not available. If you have a DVD recorder, then use it in passthrough mode to obtain S-Video output and use S-video input from ATI600. Or you may try other brand capture card.
    Quote Quote  
  3. Banned
    Join Date
    Oct 2004
    Location
    New York, US
    Search Comp PM
    I'd ask, what is the final destination for these videos? If what you want is a DVD for final output, your captures are not DVD compliant. To go to DVD, you'd have to recompress audio and video alike, which has a big cost in quality. If what you want is to permanently archive the videos as digital media, and possibly to reprocess them or clean them up later (which I think they probably need), you shouldn't capture to lossy compressed video and lossy compressed audio.

    You should also be aware that your shadow details are crushed and highlights are blown out.
    Last edited by sanlyn; 24th Mar 2014 at 11:48.
    Quote Quote  
  4. Member
    Join Date
    Nov 2012
    Location
    France
    Search PM
    hello
    thanks for you answer.

    The vcr is a PAL/SECAM capabilitie .
    This error append every time at the same time,for exemple in the picture it start when the man in black on the left enter in the scene and go to the rigth.

    I ask a friend to obtain an DVD recorder to test passthroug next week.

    Do you think it's a possible low signal level who make this problem? ( the same vcr/cable direct to the tv do not have the problem)

    I just ant to restore this family VHS but the built-in dvd recorder do not permit to apply filter like virtualdub capabilities.
    I use picvideo with an "18" quality value.

    Thanks again for your help
    Quote Quote  
  5. Video Restorer lordsmurf's Avatar
    Join Date
    Jun 2003
    Location
    dFAQ.us/lordsmurf
    Search Comp PM
    You need a TBC in there.
    The signal off the tape isn't stable.

    This purple/green issue is common with PAL tapes in need of TBC.
    It's actually one of my first experiences with PAL tapes in the 1990s.
    Want my help? Ask here! (not via PM!)
    FAQs: Best Blank DiscsBest TBCsBest VCRs for captureRestore VHS
    Quote Quote  
  6. Member hech54's Avatar
    Join Date
    Jul 2001
    Location
    Yank in Europe
    Search PM
    After seeing results like that ONLY during capture....I'd at least try something else like HuffyUV as a video codec. And although the audio codec has no bearing on the video issue...stop capturing in MP3 and use PCM.
    Quote Quote  
  7. Banned
    Join Date
    Oct 2004
    Location
    New York, US
    Search Comp PM
    lordsmurf and hech54 give some good advice. The way that a TV displays output from a VCR is different from the way a digital recording device responds to that same output. If your friend's DVD recorder has a built-in tbc, it might give better results. Mind you, not all DVD recorders have built-in tbc circuits. If they do, those tbc's are not as effective as shop-grade tbc's or those found in high-end tape players. But they can help.

    For archiving and/or for any cleanup of your captured video, you're better to use lossless huffyuv compression. If you did use an input filter when you captured the video shown in your image, you have increased contrast beyond the ability of most encoders to handle high contrast levels. Your shadow areas are blacked out (crushed), and the brightest detail features are being burned away (clipped). For audio, capturing to lossy compression such as MP3 will lower audio quality with each processing step. So, again, it all depends on how you plan to handle your final output. With the methods you describe so far, final output to standard DVD won't be possible without more processing that would involve serious quality loss.
    Last edited by sanlyn; 24th Mar 2014 at 11:49.
    Quote Quote  
  8. The U channel is being copied to the V channel. So instead of YUV you have YUU during those shots. You can get the bricks back to their normal color with a hue change but some other colors will still be wrong. You need to fix the capture process to prevent the problem.
    Quote Quote  
  9. Banned
    Join Date
    Oct 2004
    Location
    New York, US
    Search Comp PM
    Say, some ingenious insight, jagabo. You're obviously correct, but how does that bluish U channel copy occur? (rhetorical question, I guess). Certainly makes sense; if most red is wiped out it also kills yellow.
    Last edited by sanlyn; 24th Mar 2014 at 11:49.
    Quote Quote  
  10. If you run this script you'll see that you can create the bad colors from the good image:

    Code:
    ImageSource("0003.jpg")
    ConvertToYV12()
    U = UtoY()
    YtoUV(U, U, last)
    I suspect the circuit that separates U and V is getting confused by a weak or distorted signal.
    Quote Quote  
  11. Member
    Join Date
    Nov 2012
    Location
    France
    Search PM
    jagabo : perfect !!
    this script :
    DirectShowSource("3.avi")
    ConvertToYV12()
    U = UtoY()
    YtoUV(U, U, last)

    give me the video totally bad .Thank you !! now, I know the name of the problem.


    Do you think if I use huffyuv I can't have this problem ? or this problem is caused by hardware or drivers ?

    If I have the dvd recorder, i will test it but waiting this, I will re-test with another hardware...
    Quote Quote  
  12. Video Restorer lordsmurf's Avatar
    Join Date
    Jun 2003
    Location
    dFAQ.us/lordsmurf
    Search Comp PM
    Originally Posted by jagabo View Post
    I suspect the circuit that separates U and V is getting confused by a weak or distorted signal.
    Hence the TBC.

    It happens most commonly swapping from PAL to NTSC, using composite connections.
    I had a lot of tapes where this was an embedded error.
    My first successful restoration job was to completely undo the problem.
    To this day, it's still one of the hardest jobs I'd even done.
    This was well more than 10 years ago now.

    The OP lists "Fance" as his location. (France?)
    This may be a SECAM<>PAL issue.
    Want my help? Ask here! (not via PM!)
    FAQs: Best Blank DiscsBest TBCsBest VCRs for captureRestore VHS
    Quote Quote  
  13. Member
    Join Date
    May 2007
    Location
    Romania
    Search Comp PM
    Originally Posted by dan59 View Post


    Do you think if I use huffyuv I can't have this problem ? or this problem is caused by hardware or drivers ?

    If I have the dvd recorder, i will test it but waiting this, I will re-test with another hardware...
    Since the the issue came at specific point on tape changing the codec will not solve the problem. My hint was to use other device (with other comb filter) and use S-video from capture card. The capture card (comb filter) fail to decode correctly the colors only at specific point indicate that there errors come from tape and the card is sensitive. The tv has a beter comb filter which is not sensitive. The CRT can tolarate wide range errors and the LCD may also have a line TBC inside.
    Quote Quote  
  14. Member
    Join Date
    Nov 2012
    Location
    France
    Search PM
    just an idea
    if I plug my vcr to my LCD with composite
    and I plug my lcd scart to my capture card (composite)
    when I play vcr, I have the composite signal to my capture card ? not ?

    can I have the benefit of the LCD line TBC ?

    what about the quality ? I loss lot of thing or it's acceptable ?
    Quote Quote  
  15. Member
    Join Date
    May 2007
    Location
    Romania
    Search Comp PM
    It is worth to try. Don`t cost any money and nothing wrong could be happen.
    If your TV processes the signal and is not simple wire between AV input and SCART from back then I thing the problem is solved.
    You have composite but the signal is healthy and don`t create anymore problems.
    About the quality, no big loss in the worst situation. May also come even beter.
    Last edited by danno78; 12th Nov 2012 at 05:56.
    Quote Quote  
  16. Originally Posted by dan59 View Post
    jagabo : perfect !!
    this script :
    DirectShowSource("3.avi")
    ConvertToYV12()
    U = UtoY()
    YtoUV(U, U, last)

    give me the video totally bad .
    There's one other possiblity: the V channel is inverted. The fact that there's really only two colors in the image (orange bricks, cyan reflection on the car) makes it hard tell which the problem is. But I'm thinking now an inverted V channel is more likely:
    Code:
    ImageSource("0003.jpg")
    ConvertToYV12()
    U = UtoY()
    V = VtoY().Invert()
    YtoUV(U, V, last)
    Find a shot with a wider variety of colors and see if you can fix it with this script. If so, you may not need any more hardware. It will just be tedious.
    Quote Quote  
  17. Member
    Join Date
    Nov 2012
    Location
    France
    Search PM
    Yes !!
    it's work !!!

    on the original video, the bad scene was good and the good scena was bad.

    Thanksssssssss

    But (of course) another question, how to say to avisynth to detect V channel inverted, there is a function or do i cut all the scene, export them, correct them and paste them in the final cut ?
    Quote Quote  
  18. Check shots with more colors to be sure inverting V works for all of them. Then use Trim() to break your source into segments. Then add them back together at the end.

    Code:
    src = AviSource("filename.avi")
    inv = YtoUV(UtoY(src), VtoY(src).Invert(), src)
    
    v1 = Trim(src, 0,9)
    v2 = Trim(inv, 10,19)
    v3 = Trim(src, 20,29)
    v4 = Trim(inv, 30,39)
    v5 = Trim(src, 40,0)
     
    v1++v2++v3++v4++v5
    Obviously, change the Trim() arguments to match the frame numbers of your source.
    Quote Quote  
  19. Member
    Join Date
    Nov 2012
    Location
    France
    Search PM
    ok
    that is to say, I need to seek the frame number where video is bad
    after that I tune the avi src
    and after merge all

    I have more than 2h by vhs to do, it isn't possible to 'statistic' any picture (mesure green % for exemple or another caracteristique of an V channel inversion ) ?

    for exemple, it isn't possible to compare V chanel of a frame number to the V channel of the frame-1, frame-2,frame-3 (or an average of the 3) and if it's different, I inverse the V chanell, if it's the same I go to next frame ?
    Quote Quote  
  20. Originally Posted by dan59 View Post
    it isn't possible to compare V chanel of a frame number to the V channel of the frame-1, frame-2,frame-3 (or an average of the 3) and if it's different, I inverse the V chanell, if it's the same I go to next frame ?
    Something like that is probably possible but I don't know how to do it. This will give you a flash of color at each transition:

    Code:
    v1=AviSource("video.avi").ConvertToYV12()
    v2=Trim(v1, 1, 0)
    
    Subtract(v1,v2)
    But that will also give a flash at scene transitions. You could then separate the Y and V channels (maybe U too). The Y channel will usually give a flash at scene transitions but not at V inversion transitions. Then you have to switch videos based on those flashes that occur in the U channel but not the Y channel.
    Quote Quote  
  21. Member
    Join Date
    Nov 2012
    Location
    France
    Search PM
    "But that will also give a flash at scene transitions. You could then separate the Y and V channels (maybe U too). The Y channel will usually give a flash at scene transitions but not at V inversion transitions. Then you have to switch videos based on those flashes that occur in the U channel but not the Y channel. "

    Sorry I don't understand.
    I test the script and when the problem occur I have one frame with color (the other seens to be in grayscale) but I don't know how to detect this color an start an action in a script.(I'm a java developper but not a goot avisynth dev ).

    A function who test ifGreyScale() exist in avisynth ?
    Quote Quote  
  22. You would use a boolean that changes state each time the chroma flashes but not luma, then switch clips based on that boolean. ScriptClip() has tests for such things:

    http://avisynth.org/mediawiki/ScriptClip

    I haven't used those functions much so I'm not familiar with them.
    Last edited by jagabo; 13th Nov 2012 at 07:43.
    Quote Quote  
  23. Member
    Join Date
    Nov 2012
    Location
    France
    Search PM
    with this :

    clip= DirectShowSource("4.avi").ConvertToYV12
    clip2= DirectShowSource("4.avi").ConvertToYV12

    function correct(clip c)
    {
    global U = c.UtoY()
    global V = c.VtoY().Invert()
    c=YtoUV(U, V, c)
    return c
    }

    ConditionalFilter(clip , correct(clip2.trim(0,1)), clip,"VDifferenceToNext()", ">", "10", true)

    I can detect the V difference (count >10 for my test video)
    and This will replace the last frame before a scenechange
    with the first frame after the scenechange

    Waht I want is to switch from clip to clip2 and re switch to clip1 when eval is >10 , it's possible in avisynth to switch source ?
    Quote Quote  
  24. Member
    Join Date
    Nov 2012
    Location
    France
    Search PM
    perhaps ...

    #detect difference
    global scene_change = "VDifferenceToNext()" > "10" ? true : false

    #if diffrence switch scr
    global scr = scene_change ? !scr : scr
    # if scr switched
    U = scr ? clip1.UtoY() :nop
    V = scr ? clip1.VtoY().Invert():nop
    clip1 = scr ? YtoUV(U, V, c):nop
    # just for debug
    displayCurrentVDifference(clip1)

    I have an synthax error but I don't see where
    Last edited by dan59; 13th Nov 2012 at 10:41.
    Quote Quote  
  25. Member
    Join Date
    Nov 2012
    Location
    France
    Search PM
    Hello,

    My problem is here :
    scene_change = "VDifferenceToNext()" > "10" ? true : false


    when I use
    Subtitle(clip1,String(scene_change))
    value never change !
    but when I use
    ConditionalFilter(clip2 , clip1,clip2, "VDifferenceToNext()", ">", "10", true)
    on the display subtitle, the boolena value change

    what is wrong in my syntax ?

    Other way :
    http://forum.doom9.org/showthread.php?t=165200

    but how to add this function (ConditionalSelect ) to my avisynth2.58 official release ?
    Last edited by dan59; 14th Nov 2012 at 03:26.
    Quote Quote  
  26. I don't think you can use VdifferenceToNext outside of ConditionalFilter() and the related functions. You'll need a beta build to use ConditionalSelect(). You can get it from the AviSynth page here.
    Quote Quote  
  27. Member
    Join Date
    Nov 2012
    Location
    France
    Search PM
    Hello everybody

    jagabo : you're rigth this function can't be use outside of ConditionalFilter().

    With this :

    global clip2 = clip1.correct().ConvertToYV12
    src1=true
    ConditionalSelect(clip3,"src1 = VDifferenceToNext()>10 ? !src1 : src1 "+chr(13)+"(src1 ==true ? 0 : 1)", clip1, clip2,show=true)

    it's work on 80% but I have another problem.
    sometime, 2 consecutive frame have a VdifferenceToNext() >10 -> I switch and I reswitch but In the fact the good videos is replaced by the error video.
    I need to add a value to remember what I have do the previous frame.-> I know how to correct

    Another problem is :
    When I detect the frame have U and V inverted, I switch the source FOR THE NEXT frame , that is to say I have an bad frame in the final video.Do you know how to say to avisynth to switch with "clip2 -1 frame" ?


    Thanks
    Quote Quote  



Similar Threads

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