VideoHelp Forum
+ Reply to Thread
Page 1 of 2
1 2 LastLast
Results 1 to 30 of 38
Thread
  1. Hi and however please respect for cats.

    And however exactly I would not know why in certain situations of the images, the use of yadif(1,1) rarely create strange artifacts in the image (over details)

    This issue is not always systematic and reproducible.

    I ask if there exist an external plugin for avisynth that does the same function of yadif(1,1) (deinterlace and double framerate) and if possible in 32/64bit version thanks
    Quote Quote  
  2. yadifmod2 + nnedi3

    eg
    Code:
    yadifmod2(order=1,mode=1,edeint=nnedi3(field=3))
    Or QTGMC , or TDeint + NNEDI3 / EEDI3
    Quote Quote  
  3. I have avisynth R1576: what nnedi3 should I use?
    Quote Quote  
  4. Originally Posted by marcorocchini View Post
    I have avisynth R1576: what nnedi3 should I use?
    Update your avisynth first. That's like 5 years old

    https://github.com/jpsdr/NNEDI3/releases

    Inside the nnedi3 folder there are several .dll's . Use the highest one that your CPU has. E.g. if you have AVX512, use that
    Quote Quote  
  5. and yadifmod2 support YUY2?
    Quote Quote  
  6. Originally Posted by marcorocchini View Post
    and yadifmod2 support YUY2?
    no YUY2

    Planar 4:2:2 (YV16 in avisynth)
    Quote Quote  
  7. seems that the old yadifmod plugin support YUY2: it's true?

    using
    Code:
    LoadCPlugin("v:\AviSynth\plugins64+\yadifmod\yadifmod.dll")
    LWLibavVideoSource("C:\Users\Administrator\Desktop\Nuova cartella (5)\canon422 XF300 1920x1080 50i 422.MXF").yadifmod(order=1,mode=1,edeint=nnedi3(field=3))
    seems to load ok. But is there also a x86 version of yadifmod.dll?
    Quote Quote  
  8. Originally Posted by poisondeathray View Post
    but I need to load video clip that are YUY2: can it do it?
    Quote Quote  
  9. LWLibavVideoSource("catvideo.ext", format="YUV422P8")

    This should return YV16


    (If you have to, YUY2<=>YV16 is lossless conversion in avisynth if done properly. You should not need to do this)

    Eg.
    ConvertToYUY2(interlaced=true)
    or
    ConvertToYV16(interlaced=true)
    Quote Quote  
  10. I know but I'm inside a batch that have to use the output as input for other source ... is all copliCat but one thing at a time

    please

    Code:
    If I use Import("v:\automazioneclip\avisynth\plugins\IResize.avsi")
    Import("V:\automazioneclip\AviSynth\plugins\smoothFPS2.avsi")
    Import("v:\automazioneclip\AviSynth\plugins\FrostyBorders.avsi")
    Import("v:\automazioneclip\AviSynth\plugins\CropResizedic2017.avsi")     
    LoadPlugin("v:\automazioneclip\AviSynth\Lsmash64perVirtualDub64\LSMASHSource.dll")
    LoadPlugin("V:\automazioneclip\AviSynth\plugins64\ffms2.dll")
    LoadCPlugin("v:\automazioneclip\avisynth\plugins64\yadif.dll") 
    LoadCPlugin("v:\automazioneclip\AviSynth\plugins64+\NNEDI32019\eedi3.dll") 
    LoadCPlugin("v:\automazioneclip\AviSynth\perQTGMC64bit\nnedi3.dll")
    LoadCPlugin("v:\automazioneclip\AviSynth\plugins64+\YADIFMOD2\yadifmod2.dll")
    LoadCPlugin("v:\automazioneclip\AviSynth\plugins64+\yadifmod\yadifmod.dll")
    
    LWLibavVideoSource("C:\Users\Administrator\Desktop\Nuova cartella (5)\canon422 XF300 1920x1080 50i 422.MXF").yadifmod(order=1,mode=1,edeint=nnedi3(field=3))
    I get an error:
    Image
    [Attachment 51468 - Click to enlarge]


    Meanwhile if I use:

    Code:
    Import("v:\automazioneclip\avisynth\plugins\IResize.avsi")
    Import("V:\automazioneclip\AviSynth\plugins\smoothFPS2.avsi")
    Import("v:\automazioneclip\AviSynth\plugins\FrostyBorders.avsi")
    Import("v:\automazioneclip\AviSynth\plugins\CropResizedic2017.avsi")     
    LoadPlugin("v:\automazioneclip\AviSynth\Lsmash64perVirtualDub64\LSMASHSource.dll")
    LoadPlugin("V:\automazioneclip\AviSynth\plugins64\ffms2.dll")
    LoadCPlugin("v:\automazioneclip\avisynth\plugins64\yadif.dll") 
    LoadCPlugin("v:\automazioneclip\AviSynth\plugins64+\NNEDI32019\eedi3.dll") 
    LoadCPlugin("v:\automazioneclip\AviSynth\perQTGMC64bit\nnedi3.dll")
    LoadCPlugin("v:\automazioneclip\AviSynth\plugins64+\YADIFMOD2\yadifmod2.dll")
    LoadCPlugin("v:\automazioneclip\AviSynth\plugins64+\yadifmod\yadifmod.dll")
    
    
    LWLibavVideoSource("C:\Users\Administrator\Desktop\Nuova cartella (5)\canon422 XF300 1920x1080 50i 422.MXF")
    yadifmod(order=1,mode=1,edeint=nnedi3(field=3))
    load is OK: what can be the problem?
    Quote Quote  
  11. nnedi3 has no input in your first script.
    Quote Quote  
  12. Formerly 'vaporeon800' Brad's Avatar
    Join Date
    Apr 2001
    Location
    Vancouver, Canada
    Search PM
    Originally Posted by poisondeathray View Post
    (If you have to, YUY2<=>YV16 is lossless conversion in avisynth if done properly. You should not need to do this)

    Eg.
    ConvertToYUY2(interlaced=true)
    or
    ConvertToYV16(interlaced=true)
    How would you do it improperly? Just making sure I'm not screwing things up, myself. (The interlaced setting does nothing when converting 4:2:2 to 4:2:2.)
    Quote Quote  
  13. Video Restorer lordsmurf's Avatar
    Join Date
    Jun 2003
    Location
    dFAQ.us/lordsmurf
    Search Comp PM
    Why not QTGMC?
    Want my help? Ask here! (not via PM!)
    FAQs: Best Blank DiscsBest TBCsBest VCRs for captureRestore VHS
    Quote Quote  
  14. Originally Posted by vaporeon800 View Post
    How would you do it improperly? Just making sure I'm not screwing things up, myself. (The interlaced setting does nothing when converting 4:2:2 to 4:2:2.)

    Yes, interlaced=true/false does not affect 4:2:2 <=>4:2:2 in avisynth; interlace switch only affects to/from RGB and or other subsampling

    You can do it "improperly" in other programs; not all 4:2:2 pixel types/configurations are interconvertible without loss . Some are handled differently (some go through RGB intermediate), and certain 4:2:2 fourcc's cause it to be mishandled and lossy . Such as the window's NLE's he is using - "YUY2" will be mishandled
    Quote Quote  
  15. And pretty much any single frame rate deinterlacer can be turned into a double frame rate deinterlacer with a field reversal and Interleave().
    Quote Quote  
  16. Code:
    SetMemoryMax(16)
    Import("v:\automazioneclip\avisynth\plugins\IResize.avsi")
    LoadPlugin("v:\automazioneclip\avisynth\plugins\LSMASHSource.dll")
    LoadCPlugin("v:\automazioneclip\core\yadif.dll")  
    LoadCPlugin("v:\automazioneclip\AviSynth\plugins+\LeakKernelDeint.dll")  
    
    LWLibavVideoSource("C:\Users\Administrator\Desktop\c116\C0116.MXF", format="YUV422P8")
    avisynth 3.4.0 and need to use AVFS to "load" the clip but seems to retourn and error like:

    AvfsAviMediaInit: Clip has no supported video.
    Quote Quote  
  17. Originally Posted by marcorocchini View Post
    Code:
    SetMemoryMax(16)
    Import("v:\automazioneclip\avisynth\plugins\IResize.avsi")
    LoadPlugin("v:\automazioneclip\avisynth\plugins\LSMASHSource.dll")
    LoadCPlugin("v:\automazioneclip\core\yadif.dll")  
    LoadCPlugin("v:\automazioneclip\AviSynth\plugins+\LeakKernelDeint.dll")  
    
    LWLibavVideoSource("C:\Users\Administrator\Desktop\c116\C0116.MXF", format="YUV422P8")
    avisynth 3.4.0 and need to use AVFS to "load" the clip but seems to retourn and error like:

    AvfsAviMediaInit: Clip has no supported video.

    Use the newer avfs.exe . The command line version.

    You can find it with the portable vapoursynth version. Just extract it with 7zip
    https://github.com/vapoursynth/vapoursynth/releases

    eg
    Code:
    avfs catscript.avs
    PS. SetMemoryMax(16) is going to be a problem (!) . Units are MB
    Quote Quote  
  18. BTW - if you are using avfs, it will get converted to RGB in most windows NLE's . Neither YV16 or YUY2 will be "lossless" either

    You need 8bit 422 as "UYVY" to get "lossless" treatment in most windows NLE's, but the avfs emulator does not do this pixel configuration


    Vapoursynth can do 10bit 422 as v210 with enable_v210 = True switch using avfs. This will get accepted in many NLE's and treated as YUV 10bit 422 properly and lossless
    Quote Quote  
  19. I know but however at the moment I should make a series of monstrous changes for which I am not capable with my limited ***-brain

    too compliCat modify this batch (attached) that have a lot of calls x86/x64 and the output that have to be manage any armor that I can't cross with my limited cat-****

    https://www.dropbox.com/s/gje9kd29apy0rlk/soloAVS_HD50P.bat?dl=0

    for example, if I don't mistake, the new AVFS cannot let you load .avs via shell: for me this is extremely unconfortable.
    I alwais need to keep open the commandline dos-window for every video clip loaded because in the new AVFS it's no longer implemented as a shell extension

    If you see my batch there is a particular routine that need the old avfs

    Code:
             if "%fps25OR50%"=="1" v:\automazioneclip\system\fart.exe "%~dp1tempNaming.txt" : _
             if "%fps25OR50%"=="1" v:\automazioneclip\system\fart.exe "%~dp1tempNaming.txt" \ _
             if "%fps25OR50%"=="1" set /p newPath=<"%~dp1tempNaming.txt"
             if "%fps25OR50%"=="1" if exist "%~n1_HD_%newPath%proc.avs" del "%~n1_HD_%newPath%proc.avs" 
             if "%fps25OR50%"=="1" rem *** nella linea seguente il finale proc serve a non far finire il file per avs perche altrimenti stranamente non carica in c volumes *** 
             if "%fps25OR50%"=="1" ren "%~n1_HD.avs" "%~n1_HD_%newPath%proc.avs"
             if "%fps25OR50%"=="1" pfm unmount "%~dp1%~n1_HD_%newPath%proc.avs"
             if "%fps25OR50%"=="1" pfm mount "%~dp1%~n1_HD_%newPath%proc.avs"
             if "%fps25OR50%"=="1" IF NOT "%windowsXP%"=="1" findstr /c:"%~dp1%~n1_HD_%newPath%proc.avs" "C:\Users\Administrator\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\AVSavvio.bat"
             if "%fps25OR50%"=="1" IF NOT "%windowsXP%"=="1" IF ERRORLEVEL 1 (echo IF EXIST "%~dp1%~n1_HD_%newPath%proc.avs" pfm mount "%~dp1%~n1_HD_%newPath%proc.avs">>"C:\Users\Administrator\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\AVSavvio.bat")  
             if "%fps25OR50%"=="1" IF "%windowsXP%"=="1" findstr /c:"%~dp1%~n1_HD_%newPath%proc.avs" "C:\Documents and Settings\Administrator\Menu Avvio\Programmi\Esecuzione automatica\AVSavvio.bat"
             if "%fps25OR50%"=="1" IF "%windowsXP%"=="1" IF ERRORLEVEL 1 (echo IF EXIST "%~dp1%~n1_HD_%newPath%proc.avs" pfm mount "%~dp1%~n1_HD_%newPath%proc.avs">>"C:\Documents and Settings\Administrator\Menu Avvio\Programmi\Esecuzione automatica\AVSavvio.bat")
             if "%fps25OR50%"=="1" for /f delims^=^" %%a in ('pfm flush "%~dp1%~n1_HD_%newPath%proc.avs"') do set "flushed1=%%a"
             if "%fps25OR50%"=="1" set "flushed=%flushed1%\%~n1_HD_%newPath%proc.avi"
             if "%fps25OR50%"=="1" if exist "%~dp1%~n1_HD.avi" del "%~dp1%~n1_HD.avi"
             if "%fps25OR50%"=="1" v:\automazioneclip\core\mklink.exe /s "%~dp1%~n1_HD.avi" "%flushed%"
             if "%fps25OR50%"=="1" if exist "%~dp1tempNaming.txt" del "%~dp1tempNaming.txt"
             if "%fps25OR50%"=="1" if exist "fileNameEXT.txt" del "fileNameEXT.txt"
    I write the routine that load as virtual clip in a symlink .avi and now it's too compliCated to change the world.
    Or more likely impossible at the moment.
    I have too many constraints that currently don't make it possible for me to change, for example the version of avisynth or others fundamental bases.

    The only reasonable change that in my specific case I can make to the batch is to strictly change the deinterlacing line yadif(1,1) with another deinterlacer.

    I have try with LeakKernelDeint: it's not bad, but not not so good.

    For example

    Code:
    Import("v:\automazioneclip\avisynth\plugins\IResize.avsi")
    LoadPlugin("v:\automazioneclip\avisynth\plugins\LSMASHSource.dll")
    LoadCPlugin("v:\automazioneclip\core\yadif.dll")
    LoadCPlugin("V:\automazioneclip\AviSynth\plugins+\LeakKernelDeint.dll")
    LoadCPlugin("V:\automazioneclip\AviSynth\plugins+\yadifmod\yadifmod.dll")
    LoadCPlugin("V:\automazioneclip\AviSynth\plugins+\NNEDI32019\nnedi3.dll")
    LWLibavVideoSource("C:\Users\Administrator\Desktop\c116\C0116.MXF")
    
    yadifmod(order=1,mode=1,edeint=nnedi3(field=3))
    seems work. But the batch may need to change the .avs structure, depending on the source, to use the deinterlacer in this (bad) way:

    Code:
    LWLibavVideoSource("C:\Users\Administrator\Desktop\c116\C0116.MXF").yadifmod(order=1,mode=1,edeint=nnedi3(field=3))

    this above does not work : Script error: Invalid arguments to function 'nnedi3'.

    but using simply yadif(1,1) can be work togheter:

    Code:
    LWLibavVideoSource("C:\Users\Administrator\Desktop\c116\C0116.MXF").yadif(1,1)
    and
    Code:
    LWLibavVideoSource("C:\Users\Administrator\Desktop\c116\C0116.MXF")
    yadif(1,1)
    So I wonder: using yadifmod(order=1,mode=1,edeint=nnedi3(field=3)) is there a way to put the line in both the way?

    However to understand the problem I load the video with the issuse of strange (and not sistematic) loss of detail using yadif(1,1):

    https://www.dropbox.com/s/c2qzbcl96gdfl0x/YadifOut.avi?dl=0

    this above is "bad".

    And this is the "right":

    https://www.dropbox.com/s/w5ztxrx7flupupk/leakKernelOut.avi?dl=0

    using

    Code:
    LWLibavVideoSource("V:\Sfilata2019\A\C0001.MXF").LeakKernelBob(order=1,threshold=10,sharp=true,twoway=true,map=false)
    Quote Quote  
  20. Originally Posted by marcorocchini View Post
    So I wonder: using yadifmod(order=1,mode=1,edeint=nnedi3(field=3)) is there a way to put the line in both the way?
    Provide a source for nnedi3().
    Quote Quote  
  21. Why don't you just format the batch differently?

    The input implied "last" into nnedi3 is undefined .

    A work around is to use a helper function

    Code:
    LWLibavVideoSource("C:\Users\Administrator\Desktop\c116\C0116.MXF").catfunction()
    
    
    function catfunction(clip c)
    {
      yadifmod2(c,order=1,mode=1,edeint=nnedi3(c,field=3))
    }
    Quote Quote  
  22. Originally Posted by jagabo View Post
    Originally Posted by marcorocchini View Post
    So I wonder: using yadifmod(order=1,mode=1,edeint=nnedi3(field=3)) is there a way to put the line in both the way?
    Provide a source for nnedi3().
    but in what way?
    Quote Quote  
  23. Originally Posted by marcorocchini View Post
    Originally Posted by jagabo View Post
    Originally Posted by marcorocchini View Post
    So I wonder: using yadifmod(order=1,mode=1,edeint=nnedi3(field=3)) is there a way to put the line in both the way?
    Provide a source for nnedi3().
    but in what way?
    The same way you got a source for yadifmod().
    Quote Quote  
  24. Originally Posted by poisondeathray View Post
    Why don't you just format the batch differently?

    The input implied "last" into nnedi3 is undefined .

    A work around is to use a helper function

    Code:
    LWLibavVideoSource("C:\Users\Administrator\Desktop\c116\C0116.MXF").catfunction()
    
    
    function catfunction(clip c)
    {
      yadifmod2(c,order=1,mode=1,edeint=nnedi3(c,field=3))
    }
    Ok I try:


    Code:
    LWLibavVideoSource("C:\Users\Administrator\Desktop\c116\C0116.MXF").catfunction()
    
    
    function catfunction(clip c)
    {
      yadifmod(order=1,mode=1,edeint=nnedi3(field=3))
    }


    but it does not work

    does exist a yadifmod version that don't use external plugins like nnedi3?
    Quote Quote  
  25. if possible I would like to have the "freedom" to use catfunction() in both the way:

    Code:
    LWLibavVideoSource("C:\Users\Administrator\Desktop\c116\C0116.MXF").catfunction()
    or

    Code:
    LWLibavVideoSource("C:\Users\Administrator\Desktop\c116\C0116.MXF")
    catfunction()
    exactly as yadif(1,1) can be used

    Code:
    LWLibavVideoSource("C:\Users\Administrator\Desktop\c116\C0116.MXF").yadif(1,1)
    or

    Code:
    LWLibavVideoSource("C:\Users\Administrator\Desktop\c116\C0116.MXF")
    yadif(1,1)
    Quote Quote  
  26. Originally Posted by marcorocchini View Post


    but it does not work
    You didn't copy it correctly. Look more closely or copy paste directly

    if possible I would like to have the "freedom" to use catfunction() in both the way:
    It does work both way ;

    You can also change the arguments to specify the order, mode as variables. Currently they are "hardcoded" in catfunction() as order=1, mode=1 . The problem is the "field" in NNEDI3 has to match the other arguments (it's not that simple;eg. field=3 matches top field, double rate)

    You can name it dogfunction() if you want
    Quote Quote  
  27. Originally Posted by poisondeathray View Post
    Originally Posted by marcorocchini View Post


    but it does not work
    You didn't copy it correctly. Look more closely or copy paste directly

    if possible I would like to have the "freedom" to use catfunction() in both the way:
    It does work both way ;

    You can also change the arguments to specify the order, mode as variables. Currently they are "hardcoded" in catfunction() as order=1, mode=1 . The problem is the "field" in NNEDI3 has to match the other arguments (it's not that simple;eg. field=3 matches top field, double rate)

    You can name it dogfunction() if you want
    Code:
    SetMemoryMax(16)
    Import("v:\automazioneclip\avisynth\plugins\IResize.avsi")
    LoadPlugin("v:\automazioneclip\avisynth\plugins\LSMASHSource.dll")
    LoadCPlugin("v:\automazioneclip\core\yadif.dll")
    LoadCPlugin("V:\automazioneclip\AviSynth\plugins+\LeakKernelDeint.dll")
    LoadCPlugin("V:\automazioneclip\AviSynth\plugins+\yadifmod\yadifmod.dll")
    LoadCPlugin("V:\automazioneclip\AviSynth\plugins+\NNEDI32019\nnedi3.dll")
    
    
    LWLibavVideoSource("C:\Users\Administrator\Desktop\c116\C0116.MXF")
    catfunction()
    
    
    function catfunction(clip c)
    {
      yadifmod(c,order=1,mode=1,edeint=nnedi3(c,field=3))
    }
    tjis seems works, I was wrong not to put the string exactly as you said it
    Quote Quote  
  28. but what happens if, in another PC the nnedi3 is not compatible with the specific processor? it cannot be works?
    Quote Quote  
  29. Originally Posted by marcorocchini View Post
    but what happens if, in another PC the nnedi3 is not compatible with the specific processor? it cannot be works?
    Use the lowest common version; Don't use AVX-512 because not as common

    Windows 7, Core2 SSE4.2 should be "good enough" . It actually won't be that much slower. The avx2 speedup is not massive for NNEDI3

    Not very many XP users , or computer 10-15 years old
    Quote Quote  



Similar Threads

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