VideoHelp Forum


Try DVDFab Video Downloader and rip Netflix video! Or Try DVDFab and copy Blu-rays! or rip iTunes movies!
+ Reply to Thread
Page 1 of 2
1 2 LastLast
Results 1 to 30 of 49
Thread
  1. Member
    Join Date
    Sep 2014
    Location
    Italy
    Search PM
    Hi folks,

    I have a script that runs perfectly on Windows 7 64 bits.

    But when I run it on Windows 10 it creates a kind of "ghost effect/problem". It normally happens at the beginning of the video.


    (There is an example video below with before/after results and all Windows 7 and 10 features I quoted below)


    When I run it on Windows 7 64bits it does not happen.

    I'm using AviSynth 2.6

    And I'm using these plugins:

    Code:
    SetMemoryMax(512)
    SetMTMode(3)
    LoadPlugin("m:\temp2\RemoveGrain.dll")
    LoadPlugin("m:\temp2\MaskTools2-25.dll")
    LoadPlugin("m:\temp2\Depan.dll")
    LoadPlugin("m:\temp2\DepanEstimate.dll")
    LoadPlugin("m:\temp2\MVTools2.dll")


    Example:

    - Raw Video: https://drive.google.com/file/d/1PTiXiqNmK-GzzdQipJt3GDCCVY89viES/view

    - Video with AviSynth Scripts Windows 10 with this ghost image problem: https://drive.google.com/file/d/1s38WbZj89OiKJd0_2HfDq51ULseThTjr/view



    Does someone knows why it is happening?

    Maybe there is/are some Plugin that has been updated to Windows 10?




    Windows 7 Features

    Microsoft Windows 7 Ultimate Operating System Name
    Version 6.1.7601 Service Pack 1 Build 7601
    Other Operating System Information Not available
    Operating System Manufacturer Microsoft Corporation
    System name CASA-PC
    System manufacturer To be filled by O.E.M.
    System model To be filled by O.E.M.
    System type x64-based PC
    AMD FX (tm) -8350 Processor Eight-Core Processor, 4000 Mhz, 4 Core (s), 8 Logical Processor (s)
    BIOS version / date American Megatrends Inc. 2603, 06/26/2015
    SMBIOS version 2.7
    Windows folder C: \ Windows
    System folder C: \ Windows \ system32
    Boot device \ Device \ HarddiskVolume4
    Brazil
    Hardware Abstraction Layer Version = "6.1.7601.24520"
    Username CASA-PC \ Tony
    Time zone Brazil official time
    Installed Physical Memory (RAM) 16 GB
    Total physical memory 11.9 GB
    8.52 GB available physical memory
    Total virtual memory 23.8 GB
    Available virtual memory 19.3 GB
    Paging file space 11.9 GB
    Paging file C: \ pagefile.sys



    Windows 10 Features

    Microsoft Windows 10 Pro Operating System Name
    Version 10.0.19042 Build 19042
    Other Operating System Description Not available
    Operating System Manufacturer Microsoft Corporation
    System name TONY-PC
    System manufacturer System manufacturer
    System Product Name System model
    X64-based PC system type
    SKU system SKU
    AMD Ryzen 7 Processor 2700 Eight-Core Processor, 3200 Mhz, 8 Core (s), 16 Logical Processor (s)
    BIOS version / date American Megatrends Inc. 2407, 07/01/2020
    SMBIOS version 3.2
    Embedded Controller Version 255.255
    Legacy BIOS mode
    BaseBoard manufacturer ASUSTeK COMPUTER INC.
    BaseBoard Product TUF GAMING X570-PLUS_BR
    BaseBoard Rev X.0x Version
    Desktop Platform Role
    Secure Boot State Not supported
    PCR7 Configuration Connection Impossible
    Windows folder C: \ WINDOWS
    System folder C: \ WINDOWS \ system32
    Boot device \ Device \ HarddiskVolume1
    Brazil
    Hardware Abstraction Layer Version = "10.0.19041.844"
    Username Tony-PC \ Tony
    Time zone Brazil official time
    Installed Physical Memory (RAM) 16 GB
    Total physical memory 15.9 GB
    Available physical memory 11.1 GB
    Total virtual memory 31.9 GB
    26.5 GB available virtual memory
    Paging file space 16.0 GB
    Paging file C: \ pagefile.sys
    Kernel DMA Protection Disabled
    Virtualization-based security Not enabled
    Device Encryption Support Reasons for Automatic Device Encryption Failure: Unusable TPM, PCR7 Association Not Compatible, Hardware Security Test Interface Failed, and the device is not in Modern Standby, Bus / DMA compliant devices not allowed detected, unusable TPM
    Hyper-V - VM Monitor Mode Extensions Yes
    Hyper-V - Second Level Address Translation Extensions Yes
    Hyper-V - Virtualization Enabled on Firmware No
    Hyper-V - Data Execution Protection Yes


    Thank you so much in advance!
    Quote Quote  
  2. Do you use the same filter .dlls on Win7 64bit and Win10 64bit?
    Since it seems like you use really old .dlls (MaskTools2-25) there might be a fix in newer versions of the filters of some asm code which is only used by the newer cpu.
    Others probably could test if their Windows 10 showed the same issue if you would share your script,..
    users currently on my ignore list: deadrats, Stears555
    Quote Quote  
  3. Provide your entire script. Upload your original video, not a deinterlaced, reencoded, AVC video. Your "pos" sample hasn't been deinterlaced, has many frames out of order, and is RGB rather than YUV. Obviously something is going wrong but without seeing your script and the original source nobody can offer a fix.
    Quote Quote  
  4. Member
    Join Date
    Sep 2014
    Location
    Italy
    Search PM
    Originally Posted by Selur View Post
    Do you use the same filter .dlls on Win7 64bit and Win10 64bit?
    Since it seems like you use really old .dlls (MaskTools2-25) there might be a fix in newer versions of the filters of some asm code which is only used by the newer cpu.
    Others probably could test if their Windows 10 showed the same issue if you would share your script,..

    Hi Selur,


    Yes, I use the same .dlls on both windows versions.

    Here is the Script in a PDF document (seems better to read than in the forum code area): https://drive.google.com/file/d/1SLqIISkkK-3N2RLcgsIOQGo5FyGGyqzZ/view?usp=sharing


    Thanks for your kind help!
    Quote Quote  
  5. Member
    Join Date
    Sep 2014
    Location
    Italy
    Search PM
    Originally Posted by jagabo View Post
    Provide your entire script. Upload your original video, not a deinterlaced, reencoded, AVC video. Your "pos" sample hasn't been deinterlaced, has many frames out of order, and is RGB rather than YUV. Obviously something is going wrong but without seeing your script and the original source nobody can offer a fix.

    Hi jagabo,

    I do the capture on HDMI AVC because it takes out several horizontal lines.

    Entering the Panasonic DMR-ES10 and passing through the VCR JVC HR-S5912U. So, going for Avermedia C027 PcIe capture card.

    That's because in DV AVI, there is much more noise.

    Here is the Script in a PDF document: https://drive.google.com/file/d/1SLqIISkkK-3N2RLcgsIOQGo5FyGGyqzZ/view?usp=sharing


    Script
    Code:
    #Import("M:\temp2\source script2 Dr Paulo Pirej.avs")
    # Plugins: - RemoveGrain
    # - MaskTools2
    # - Depan + DepanEstimate
    # - MVTools2
    
    SetMemoryMax(512)
    SetMTMode(3)
    LoadPlugin("M:\Temp2\RemoveGrain.dll")
    LoadPlugin("M:\Temp2\MaskTools2-25.dll")
    LoadPlugin("M:\Temp2\Depan.dll")
    LoadPlugin("M:\Temp2\DepanEstimate.dll")
    LoadPlugin("M:\Temp2\MVTools2.dll")
    
    #mpeg2source("M:\Marcelo 27.5.20\1\01\01-1.d2v")
    #mpeg2source("M:\Marcelo 999255703 - Fazer\01 ok 19m.d2v")
    DirectShowSource("M:\Welington 3.11.20 - Fazer\07 WE 3capt V17JVCES10.mp4", fps = 25, ConvertFPS = True )
    #DirectShowSource("M:\Luis Tonini 14.1.20 - Fazer\01 V14ES10 e.mp4")
    #DirectShowSource("E:\Tereza Soares 13.8.20 - Fazer\01 TS 8capt V17JVCES10.mp4", fps = 25, ConvertFPS = True ) # para AVI encapsulado AVI Xvid da Avermidia ou MP4 da Aple
    #DirectShowSource("M:\Neogrid 5-10-17\090 4capt V13SVSDV.avi", fps = 25, ConvertFPS = True ) # para AVI encapsulado AVI Xvid da Avermidia
    #AVISource("E:\Cleiton\Super 8mm\03\03 ok.avi") 
    #AVISource("E:\Luiz Itapema 23.9.20 - Fazer\18 LI SD8.avi", audio=true)
    #AVISource("E:\Luiz Itapema 23.9.20 - Fazer\18 LI SD8.avi") # DV AVI
    #AVISource("M:\Pedro 31-7-18\25 8capt V15ES10SDV.avi", audio=true)
    
    
    SetMTMode(2)
    #ConvertToYV12()
    #ConvertToyv411()
    #Crop(0,20,-0,-30,true)
    #bob(0,0.5)
    
    AssumeTFF()
    SeparateFields()
    
    a=last
    
    clense(reduceflicker=false).merge(last,0.5).clense(reduceflicker=false)
    mot=removegrain(11,0).removegrain(20,0).DepanEstimate(range=2)
    take2=a.depaninterleave(mot,prev=2,next=2,subpixel=2)
    clean1=take2.TMedian2().selectevery(5,2)
    
    sup1 = clean1.minblur(1).removegrain(11,0).removegrain(11,0)
    \ .mt_lutxy(clean1,"x 1 + y < x 2 + x 1 - y > x 2 - y ? ?",U=2,V=2)
    \ .msuper(pel=2,sharp=0)
    sup2 = a.msuper(pel=2,levels=1,sharp=2)
    #bv23=sup1.manalyse(isb=true, truemotion=false,global=true,delta=3,blksize=16,overlap=8,search=5,searchparam=4,DCT=5)
    bv22=sup1.manalyse(isb=true, truemotion=false,global=true,delta=2,blksize=16,overlap=8,search=5,searchparam=4,DCT=5)
    bv21=sup1.manalyse(isb=true, truemotion=false,global=true,delta=1,blksize=16,overlap=8,search=5,searchparam=4,DCT=5)
    fv21=sup1.manalyse(isb=false,truemotion=false,global=true,delta=1,blksize=16,overlap=8,search=5,searchparam=4,DCT=5)
    fv22=sup1.manalyse(isb=false,truemotion=false,global=true,delta=2,blksize=16,overlap=8,search=5,searchparam=4,DCT=5)
    #fv23=sup1.manalyse(isb=false,truemotion=false,global=true,delta=3,blksize=16,overlap=8,search=5,searchparam=4,DCT=5)
    
    #a.mdegrain3(sup2,bv21,fv21,bv22,fv22,bv23,fv23,thSAD=499) # << this is the "2-fold" variant
    
    interleave(a.mcompensate(sup2,fv22),a.mcompensate(sup2,fv21),a,a.mcompensate(sup2,bv21),a.mcompensate(sup2,bv22))
    TMedian2().selectevery(5,2)
    
    sup3 = last.msuper(pel=2,sharp=2)
    bv33=sup3.manalyse(isb=true, truemotion=false,global=true,delta=3,blksize=8,overlap=4,search=5,searchparam=4,DCT=5)
    bv32=sup3.manalyse(isb=true, truemotion=false,global=true,delta=2,blksize=8,overlap=4,search=5,searchparam=4,DCT=5)
    bv31=sup3.manalyse(isb=true, truemotion=false,global=true,delta=1,blksize=8,overlap=4,search=5,searchparam=4,DCT=5)
    fv31=sup3.manalyse(isb=false,truemotion=false,global=true,delta=1,blksize=8,overlap=4,search=5,searchparam=4,DCT=5)
    fv32=sup3.manalyse(isb=false,truemotion=false,global=true,delta=2,blksize=8,overlap=4,search=5,searchparam=4,DCT=5)
    fv33=sup3.manalyse(isb=false,truemotion=false,global=true,delta=3,blksize=8,overlap=4,search=5,searchparam=4,DCT=5)
    
    last.mdegrain3(sup3,bv31,fv31,bv32,fv32,bv33,fv33,thSAD=499) # valor Original thSAD=499
    LSFMod(strength=60)
    Interleave() 
    Weave()
    
    #stackvertical(a,last) # Alterado por mim.
    return(last)
    
    
    #--------------------------------------------------------------
    # Helper functions
    
    function MinBlur(clip clp, int r, int "uv")
    {
    uv = default(uv,3)
    uv2 = (uv==2) ? 1 : uv
    rg4 = (uv==3) ? 4 : -1
    rg11 = (uv==3) ? 11 : -1
    rg20 = (uv==3) ? 20 : -1
    medf = (uv==3) ? 1 : -200
    
    RG11D = (r==0) ? mt_makediff(clp,clp.sbr(),U=uv2,V=uv2)
    \ : (r==1) ? mt_makediff(clp,clp.removegrain(11,rg11),U=uv2,V=uv2)
    \ : (r==2) ? mt_makediff(clp,clp.removegrain(11,rg11).removegrain(20,rg20),U=uv2,V=uv2)
    \ : mt_makediff(clp,clp.removegrain(11,rg11).removegrain(20,rg20).removegrain(20,rg20),U=uv2,V=uv2)
    RG4D = (r<=1) ? mt_makediff(clp,clp.removegrain(4,rg4),U=uv2,V=uv2)
    \ : (r==2) ? mt_makediff(clp,clp.medianblur(2,2*medf,2*medf),U=uv2,V=uv2)
    \ : mt_makediff(clp,clp.medianblur(3,3*medf,3*medf),U=uv2,V=uv2)
    DD = mt_lutxy(RG11D,RG4D,"x 128 - y 128 - * 0 < 128 x 128 - abs y 128 - abs < x y ? ?",U=uv2,V=uv2)
    clp.mt_makediff(DD,U=uv,V=uv)
    return(last)
    }
    
    # median of 5 clips from Helpers.avs by G-force
    Function Median2(clip "input_1", clip "input_2", clip "input_3", clip "input_4", clip "input_5", string "chroma")
    {
    chroma = default(chroma,"process") #default is "process". Alternates: "copy first" or "copy second"
    #MEDIAN(i1,i3,i5)
    Interleave(input_1,input_3,input_5)
    chroma == "process" ? Clense(reduceflicker=false) : Clense(reduceflicker=false,grey=true)
    m1 = selectevery(3,1)
    #MAX(MIN(i1,i3,i5),i2)
    m2 = input_1.MT_Logic(input_3,"min",chroma=chroma).MT_Logic(input_5,"min",chroma=chroma).MT_Logic(input_2,"max",chroma=chroma)
    #MIN(MAX(i1,i3,i5),i4)
    m3 = input_1.MT_Logic(input_3,"max",chroma=chroma).MT_Logic(input_5,"max",chroma=chroma).MT_Logic(input_4,"min",chroma=chroma)
    Interleave(m1,m2,m3)
    chroma == "process" ? Clense(reduceflicker=false) : Clense(reduceflicker=false,grey=true)
    selectevery(3,1)
    chroma == "copy first" ? last.MergeChroma(input_1) : chroma == "copy second" ? last.MergeChroma(input_2) : last
    Return(last)
    }
    
    function TMedian2(clip c) {
    Median2( c.selectevery(1,-2), c.selectevery(1,-1), c, c.selectevery(1,1), c.selectevery(1,2) ) }



    Pre Test Video - MediaInfo
    Code:
    General
    Complete name               : K:\Pre Test.mp4
    Format                      : MPEG-4
    Format profile              : Base Media
    Codec ID                    : isom (mp41/mp42)
    File size                   : 8.65 MiB
    Duration                    : 18 s 112 ms
    Overall bit rate mode       : Variable
    Overall bit rate            : 4 005 kb/s
    Encoded date                : UTC 2021-03-31 01:05:07
    Tagged date                 : UTC 2021-03-31 01:05:07
    
    Video
    ID                          : 1
    Format                      : AVC
    Format/Info                 : Advanced Video Codec
    Format profile              : High@L3
    Format settings             : CABAC / 2 Ref Frames
    Format settings, CABAC      : Yes
    Format settings, Reference  : 2 frames
    Format settings, GOP        : M=3, N=15
    Codec ID                    : avc1
    Codec ID/Info               : Advanced Video Coding
    Duration                    : 18 s 85 ms
    Bit rate mode               : Variable
    Bit rate                    : 3 686 kb/s
    Maximum bit rate            : 4 000 kb/s
    Width                       : 720 pixels
    Height                      : 480 pixels
    Display aspect ratio        : 4:3
    Frame rate mode             : Constant
    Frame rate                  : 29.970 (30000/1001) FPS
    Standard                    : NTSC
    Color space                 : YUV
    Chroma subsampling          : 4:2:0
    Bit depth                   : 8 bits
    Scan type                   : Progressive
    Bits/(Pixel*Frame)          : 0.356
    Stream size                 : 7.95 MiB (92%)
    Language                    : English
    Encoded date                : UTC 2021-03-31 01:05:07
    Tagged date                 : UTC 2021-03-31 01:05:07
    Color range                 : Limited
    Color primaries             : BT.709
    Transfer characteristics    : BT.709
    Matrix coefficients         : BT.709
    Codec configuration box     : avcC
    
    Audio
    ID                          : 2
    Format                      : AAC LC
    Format/Info                 : Advanced Audio Codec Low Complexity
    Codec ID                    : mp4a-40-2
    Duration                    : 18 s 112 ms
    Bit rate mode               : Constant
    Bit rate                    : 320 kb/s
    Nominal bit rate            : 128 kb/s
    Channel(s)                  : 2 channels
    Channel layout              : L R
    Sampling rate               : 48.0 kHz
    Frame rate                  : 46.875 FPS (1024 SPF)
    Compression mode            : Lossy
    Stream size                 : 708 KiB (8%)
    Language                    : English
    Encoded date                : UTC 2021-03-31 01:05:07
    Tagged date                 : UTC 2021-03-31 01:05:07



    Pos Test Video - MediaInfo
    Code:
    General
    Complete name               : K:\Pos Test.avi
    Format                      : AVI
    Format/Info                 : Audio Video Interleave
    File size                   : 181 MiB
    Duration                    : 18 s 80 ms
    Overall bit rate            : 84.1 Mb/s
    
    Video
    ID                          : 0
    Format                      : MAGY
    Codec ID                    : MAGY
    Duration                    : 18 s 51 ms
    Bit rate                    : 82.7 Mb/s
    Width                       : 720 pixels
    Height                      : 480 pixels
    Display aspect ratio        : 3:2
    Frame rate                  : 29.970 (30000/1001) FPS
    Standard                    : NTSC
    Bits/(Pixel*Frame)          : 7.983
    Stream size                 : 178 MiB (98%)
    
    Audio
    ID                          : 1
    Format                      : PCM
    Format settings             : Little / Signed
    Codec ID                    : 1
    Duration                    : 18 s 80 ms
    Bit rate mode               : Constant
    Bit rate                    : 1 536 kb/s
    Channel(s)                  : 2 channels
    Sampling rate               : 48.0 kHz
    Bit depth                   : 16 bits
    Stream size                 : 3.31 MiB (2%)
    Alignment                   : Aligned on interleaves
    Interleave, duration        : 488  ms (14.62 video frames)

    Thanks for your help!
    Last edited by NLP; 31st Mar 2021 at 14:47.
    Quote Quote  
  6. Here is the Script in a PDF document (seems better to read than in the forum code area):
    unusable due to line breaks in the pdf,... post it in a code block.
    Whole thing 'feels' like an old pre-QTGMC deinterlacing script.
    One thing that might cause problems is the use of DirectShowSource - since it might behave totally different depending on the source and system, better use LSMASHSource (which also supports hardware decoding).

    Cu Selur
    users currently on my ignore list: deadrats, Stears555
    Quote Quote  
  7. Member
    Join Date
    Sep 2014
    Location
    Italy
    Search PM
    Originally Posted by Selur View Post
    Here is the Script in a PDF document (seems better to read than in the forum code area):
    unusable due to line breaks in the pdf,... post it in a code block.

    Script
    Code:
    #Import("M:\temp2\source script2 Dr Paulo Pirej.avs")
    # Plugins: - RemoveGrain
    # - MaskTools2
    # - Depan + DepanEstimate
    # - MVTools2
    
    SetMemoryMax(512)
    SetMTMode(3)
    LoadPlugin("M:\Temp2\RemoveGrain.dll")
    LoadPlugin("M:\Temp2\MaskTools2-25.dll")
    LoadPlugin("M:\Temp2\Depan.dll")
    LoadPlugin("M:\Temp2\DepanEstimate.dll")
    LoadPlugin("M:\Temp2\MVTools2.dll")
    
    #mpeg2source("M:\Marcelo 27.5.20\1\01\01-1.d2v")
    #mpeg2source("M:\Marcelo 999255703 - Fazer\01 ok 19m.d2v")
    DirectShowSource("M:\Welington 3.11.20 - Fazer\07 WE 3capt V17JVCES10.mp4", fps = 25, ConvertFPS = True )
    #DirectShowSource("M:\Luis Tonini 14.1.20 - Fazer\01 V14ES10 e.mp4")
    #DirectShowSource("E:\Tereza Soares 13.8.20 - Fazer\01 TS 8capt V17JVCES10.mp4", fps = 25, ConvertFPS = True ) # para AVI encapsulado AVI Xvid da Avermidia ou MP4 da Aple
    #DirectShowSource("M:\Neogrid 5-10-17\090 4capt V13SVSDV.avi", fps = 25, ConvertFPS = True ) # para AVI encapsulado AVI Xvid da Avermidia
    #AVISource("E:\Cleiton\Super 8mm\03\03 ok.avi") 
    #AVISource("E:\Luiz Itapema 23.9.20 - Fazer\18 LI SD8.avi", audio=true)
    #AVISource("E:\Luiz Itapema 23.9.20 - Fazer\18 LI SD8.avi") # DV AVI
    #AVISource("M:\Pedro 31-7-18\25 8capt V15ES10SDV.avi", audio=true)
    
    
    SetMTMode(2)
    #ConvertToYV12()
    #ConvertToyv411()
    #Crop(0,20,-0,-30,true)
    #bob(0,0.5)
    
    AssumeTFF()
    SeparateFields()
    
    a=last
    
    clense(reduceflicker=false).merge(last,0.5).clense(reduceflicker=false)
    mot=removegrain(11,0).removegrain(20,0).DepanEstimate(range=2)
    take2=a.depaninterleave(mot,prev=2,next=2,subpixel=2)
    clean1=take2.TMedian2().selectevery(5,2)
    
    sup1 = clean1.minblur(1).removegrain(11,0).removegrain(11,0)
    \ .mt_lutxy(clean1,"x 1 + y < x 2 + x 1 - y > x 2 - y ? ?",U=2,V=2)
    \ .msuper(pel=2,sharp=0)
    sup2 = a.msuper(pel=2,levels=1,sharp=2)
    #bv23=sup1.manalyse(isb=true, truemotion=false,global=true,delta=3,blksize=16,overlap=8,search=5,searchparam=4,DCT=5)
    bv22=sup1.manalyse(isb=true, truemotion=false,global=true,delta=2,blksize=16,overlap=8,search=5,searchparam=4,DCT=5)
    bv21=sup1.manalyse(isb=true, truemotion=false,global=true,delta=1,blksize=16,overlap=8,search=5,searchparam=4,DCT=5)
    fv21=sup1.manalyse(isb=false,truemotion=false,global=true,delta=1,blksize=16,overlap=8,search=5,searchparam=4,DCT=5)
    fv22=sup1.manalyse(isb=false,truemotion=false,global=true,delta=2,blksize=16,overlap=8,search=5,searchparam=4,DCT=5)
    #fv23=sup1.manalyse(isb=false,truemotion=false,global=true,delta=3,blksize=16,overlap=8,search=5,searchparam=4,DCT=5)
    
    #a.mdegrain3(sup2,bv21,fv21,bv22,fv22,bv23,fv23,thSAD=499) # << this is the "2-fold" variant
    
    interleave(a.mcompensate(sup2,fv22),a.mcompensate(sup2,fv21),a,a.mcompensate(sup2,bv21),a.mcompensate(sup2,bv22))
    TMedian2().selectevery(5,2)
    
    sup3 = last.msuper(pel=2,sharp=2)
    bv33=sup3.manalyse(isb=true, truemotion=false,global=true,delta=3,blksize=8,overlap=4,search=5,searchparam=4,DCT=5)
    bv32=sup3.manalyse(isb=true, truemotion=false,global=true,delta=2,blksize=8,overlap=4,search=5,searchparam=4,DCT=5)
    bv31=sup3.manalyse(isb=true, truemotion=false,global=true,delta=1,blksize=8,overlap=4,search=5,searchparam=4,DCT=5)
    fv31=sup3.manalyse(isb=false,truemotion=false,global=true,delta=1,blksize=8,overlap=4,search=5,searchparam=4,DCT=5)
    fv32=sup3.manalyse(isb=false,truemotion=false,global=true,delta=2,blksize=8,overlap=4,search=5,searchparam=4,DCT=5)
    fv33=sup3.manalyse(isb=false,truemotion=false,global=true,delta=3,blksize=8,overlap=4,search=5,searchparam=4,DCT=5)
    
    last.mdegrain3(sup3,bv31,fv31,bv32,fv32,bv33,fv33,thSAD=499) # valor Original thSAD=499
    LSFMod(strength=60)
    Interleave() 
    Weave()
    
    #stackvertical(a,last) # Alterado por mim.
    return(last)
    
    
    #--------------------------------------------------------------
    # Helper functions
    
    function MinBlur(clip clp, int r, int "uv")
    {
    uv = default(uv,3)
    uv2 = (uv==2) ? 1 : uv
    rg4 = (uv==3) ? 4 : -1
    rg11 = (uv==3) ? 11 : -1
    rg20 = (uv==3) ? 20 : -1
    medf = (uv==3) ? 1 : -200
    
    RG11D = (r==0) ? mt_makediff(clp,clp.sbr(),U=uv2,V=uv2)
    \ : (r==1) ? mt_makediff(clp,clp.removegrain(11,rg11),U=uv2,V=uv2)
    \ : (r==2) ? mt_makediff(clp,clp.removegrain(11,rg11).removegrain(20,rg20),U=uv2,V=uv2)
    \ : mt_makediff(clp,clp.removegrain(11,rg11).removegrain(20,rg20).removegrain(20,rg20),U=uv2,V=uv2)
    RG4D = (r<=1) ? mt_makediff(clp,clp.removegrain(4,rg4),U=uv2,V=uv2)
    \ : (r==2) ? mt_makediff(clp,clp.medianblur(2,2*medf,2*medf),U=uv2,V=uv2)
    \ : mt_makediff(clp,clp.medianblur(3,3*medf,3*medf),U=uv2,V=uv2)
    DD = mt_lutxy(RG11D,RG4D,"x 128 - y 128 - * 0 < 128 x 128 - abs y 128 - abs < x y ? ?",U=uv2,V=uv2)
    clp.mt_makediff(DD,U=uv,V=uv)
    return(last)
    }
    
    # median of 5 clips from Helpers.avs by G-force
    Function Median2(clip "input_1", clip "input_2", clip "input_3", clip "input_4", clip "input_5", string "chroma")
    {
    chroma = default(chroma,"process") #default is "process". Alternates: "copy first" or "copy second"
    #MEDIAN(i1,i3,i5)
    Interleave(input_1,input_3,input_5)
    chroma == "process" ? Clense(reduceflicker=false) : Clense(reduceflicker=false,grey=true)
    m1 = selectevery(3,1)
    #MAX(MIN(i1,i3,i5),i2)
    m2 = input_1.MT_Logic(input_3,"min",chroma=chroma).MT_Logic(input_5,"min",chroma=chroma).MT_Logic(input_2,"max",chroma=chroma)
    #MIN(MAX(i1,i3,i5),i4)
    m3 = input_1.MT_Logic(input_3,"max",chroma=chroma).MT_Logic(input_5,"max",chroma=chroma).MT_Logic(input_4,"min",chroma=chroma)
    Interleave(m1,m2,m3)
    chroma == "process" ? Clense(reduceflicker=false) : Clense(reduceflicker=false,grey=true)
    selectevery(3,1)
    chroma == "copy first" ? last.MergeChroma(input_1) : chroma == "copy second" ? last.MergeChroma(input_2) : last
    Return(last)
    }
    
    function TMedian2(clip c) {
    Median2( c.selectevery(1,-2), c.selectevery(1,-1), c, c.selectevery(1,1), c.selectevery(1,2) ) }
    Quote Quote  
  8. -> did you try using LSMASHSource?
    users currently on my ignore list: deadrats, Stears555
    Quote Quote  
  9. Originally Posted by NLP View Post
    I do the capture on HDMI AVC because it takes out several horizontal lines.
    You are not supposed remove the "horizontal lines" (interlace comb artifacts). They are supposed to be in your capture. Your capture shouldn't be compressed with a lossy codec (AVC), and it should be encoded interlaced, not progressive. You are ruining your video even before you start filtering.

    And yes, DirectShowSource() should only be used as a last resort. It's not frame accurate and probably the cause for all the out-of-order frames. Forcing the frame rate to 25p is also screwing up your video -- throwing away one of every 6 frames.
    Quote Quote  
  10. Member
    Join Date
    Sep 2014
    Location
    Italy
    Search PM
    Originally Posted by Selur View Post
    -> did you try using LSMASHSource?
    Selur,

    Thank you for pointing out the problem with DirectShowSource.

    I'm a beginner with AviSynth.

    Do you know some guide of instructions about how to change the DirectShowSource filter to LSMASHSource? and some example about how to use/include the LSMASHSource?

    I never did it and I could not find a guide yet.



    Thank you again.
    Quote Quote  
  11. Change

    Code:
    DirectShowSource("M:\Welington 3.11.20 - Fazer\07 WE 3capt V17JVCES10.mp4", fps = 25, ConvertFPS = True )
    to

    Code:
    LSmashVideoSource("M:\Welington 3.11.20 - Fazer\07 WE 3capt V17JVCES10.mp4")
    If you need audio too use:

    Code:
    a = LSmashAudioSource("M:\Welington 3.11.20 - Fazer\07 WE 3capt V17JVCES10.mp4")
    v = LSmashVideoSource("M:\Welington 3.11.20 - Fazer\07 WE 3capt V17JVCES10.mp4")
    AudioDub(v,a)
    Your AviSynth installation must include LSMASH. http://avisynth.nl/index.php/LSMASHSource
    Quote Quote  
  12. Member
    Join Date
    Sep 2014
    Location
    Italy
    Search PM
    Originally Posted by jagabo View Post
    Change

    Code:
    DirectShowSource("M:\Welington 3.11.20 - Fazer\07 WE 3capt V17JVCES10.mp4", fps = 25, ConvertFPS = True )
    to

    Code:
    LSmashVideoSource("M:\Welington 3.11.20 - Fazer\07 WE 3capt V17JVCES10.mp4")
    If you need audio too use:

    Code:
    a = LSmashAudioSource("M:\Welington 3.11.20 - Fazer\07 WE 3capt V17JVCES10.mp4")
    v = LSmashVideoSource("M:\Welington 3.11.20 - Fazer\07 WE 3capt V17JVCES10.mp4")
    AudioDub(v,a)
    Your AviSynth installation must include LSMASH. http://avisynth.nl/index.php/LSMASHSource


    Hi jagabo,

    Thank you so much! It finally worked! I did not know that it was so simple.


    My VHS tapes are in bad condition (very oxidized). Because of that, my VHS video capture are very problematic.

    Until today I couldn't find out how to compare 5 captures of the same VHS. I mean, frame by frame and choosing the best frames.

    Do you have knowledge or/and could you give me an example of a script that does that?

    How can I synchronize the captures, so that they are in the same time frame?


    Thank you!
    Quote Quote  
  13. If the files are already synchronized:

    Code:
    v1 = LSmashVideoSource("file1.mp4").Subtitle("1")
    v2 = LSmashVideoSource("file2.mp4").Subtitle("2")
    v3 = LSmashVideoSource("file3.mp4").Subtitle("3")
    v4 = LSmashVideoSource("file4.mp4").Subtitle("4")
    v5 = LSmashVideoSource("file5.mp4").Subtitle("5")
    
    StackVertical(StackHorizontal(v1, v2, v3), StackHorizontal(v4, v5, BlankClip(v5)))
    That will give you a 3x2 array of the clips. Assuming you have 720x576 caps it will be 2160x1152. If you need it smaller to fit on the screen add a resize at the end. Something like BilinearResize(width/2, height/2). Note that LSmashVideoSource() only works with MP4 and MOV files. For other types of files you can use LWlibavVideoSource() instead (also included in the LSMASH package).

    To sync them you can use Trim() to remove frames from the start of a clip, or Loop() to add frames:

    Code:
    v1 = LSmashVideoSource("file1.mp4").Subtitle("1").Trim(15,0) # remove the first 15 frames
    v2 = LSmashVideoSource("file2.mp4").Subtitle("2").Loop(7,0,0) # repeat frames 0 to 0 (ie one frame) to make a total of 7 (add 6)
    etc.
    If the videos aren't too corrupt you can use a median filter to pick the median pixel from the group of 5:

    http://avisynth.nl/index.php/Median

    That is useful for eliminating outliers.
    Quote Quote  
  14. Member
    Join Date
    Apr 2021
    Location
    Brazil
    Search PM
    Image
    [Attachment 58249 - Click to enlarge]

    Hello. Could someone help me.
    How to solve this problem.

    I speak Portuguese, but I wanted help from you
    Last edited by kelvin; 5th Apr 2021 at 09:08.
    Quote Quote  
  15. You mean the the pink-ish horizontal stripes on the red-ish background. A video sample would be helpful.
    Quote Quote  
  16. Member
    Join Date
    Apr 2021
    Location
    Brazil
    Search PM
    Yes
    Last edited by kelvin; 5th Apr 2021 at 11:26.
    Quote Quote  
  17. Member
    Join Date
    Apr 2021
    Location
    Brazil
    Search PM
    Originally Posted by jagabo View Post
    You mean the the pink-ish horizontal stripes on the red-ish background. A video sample would be helpful.
    Sim
    Link - https://www.youtube.com/watch?v=bwR6Fqr9VpI

    você pode ver melhor neste fundo vermelho
    Quote Quote  
  18. Youtube's recompressed video isn't a good starting point. But that banding is going to be very hard to get rid of. It's worst on the opening titles. Most of it is in the U channel but only in areas of high V values (reds/yellows).

    Image
    [Attachment 58266 - Click to enlarge]


    I might be inclined to just rebuild the opening titles.

    Code:
    LWLibavVideoSource("Chapolin.mp4", cache=false, prefer_hw=2) 
    src = last
    
    ym = mt_binarize(120).Santiag(strh=2, strv=2).GreyScale()
    yellow=ym.ColorYUV(off_y=-64, off_u=-64, off_v=36)
    bg = blankClip(last, color=$A00030)
    Overlay(bg, yellow, mask=ym.Blur(1.0).Blur(1.0))
    Trim(34,34)
    Loop(56,0,0)
    
    last+src.Trim(56,0)
    Image
    [Attachment 58265 - Click to enlarge]


    Then apply some lesser filtering on the rest of the video. I'll look into that tomorrow.
    Quote Quote  
  19. Member
    Join Date
    Sep 2014
    Location
    Italy
    Search PM
    Originally Posted by jagabo View Post
    If the files are already synchronized:

    Code:
    v1 = LSmashVideoSource("file1.mp4").Subtitle("1")
    v2 = LSmashVideoSource("file2.mp4").Subtitle("2")
    v3 = LSmashVideoSource("file3.mp4").Subtitle("3")
    v4 = LSmashVideoSource("file4.mp4").Subtitle("4")
    v5 = LSmashVideoSource("file5.mp4").Subtitle("5")
    
    StackVertical(StackHorizontal(v1, v2, v3), StackHorizontal(v4, v5, BlankClip(v5)))
    That will give you a 3x2 array of the clips. Assuming you have 720x576 caps it will be 2160x1152. If you need it smaller to fit on the screen add a resize at the end. Something like BilinearResize(width/2, height/2). Note that LSmashVideoSource() only works with MP4 and MOV files. For other types of files you can use LWlibavVideoSource() instead (also included in the LSMASH package).

    To sync them you can use Trim() to remove frames from the start of a clip, or Loop() to add frames:

    Code:
    v1 = LSmashVideoSource("file1.mp4").Subtitle("1").Trim(15,0) # remove the first 15 frames
    v2 = LSmashVideoSource("file2.mp4").Subtitle("2").Loop(7,0,0) # repeat frames 0 to 0 (ie one frame) to make a total of 7 (add 6)
    etc.
    If the videos aren't too corrupt you can use a median filter to pick the median pixel from the group of 5:

    http://avisynth.nl/index.php/Median

    That is useful for eliminating outliers.



    Hi jagabo,

    I was testing this script below. It looks like it worked at the beginning.

    However, I let the script run for 1 minute and it generates a 45 minutes video.

    I tested many times and it always happens.

    Maybe some command is missing.

    Do you know why it is happening?


    Script
    Code:
    SetMemoryMax(512)
    SetMTMode(3)
    LoadPlugin("M:\Temp2\LSMASHSource.dll")
    LoadPlugin("M:\Temp2\Median.dll")
    
    v1 = LSmashVideoSource("K:\01 TS 4capt V17JVCES10.mp4").Subtitle("1") #.Trim(0,0) # remove the first 15 frames
    v2 = LSmashVideoSource("K:\01 TS 5capt V17JVCES10 e.mp4").Subtitle("2") #.Trim(0,0)
    v3 = LSmashVideoSource("K:\01 TS 6capt V17JVCES10 e.mp4").Subtitle("3") #.Trim(0,0)
    v4 = LSmashVideoSource("K:\01 TS 8capt V17JVCES10 e.mp4").Subtitle("4") #.Trim(0,0)
    v5 = LSmashVideoSource("K:\01 TS 10capt V17JVCES10 e.mp4").Subtitle("5") #.Trim(0,0)
    
    SetMTMode(2)
    a=last
    StackVertical(StackHorizontal(v1, v2, v3), StackHorizontal(v4, v5, BlankClip(v5)))
    median(v1, v2, v3, v4, v5, chroma=true)
    #Median(v1, v2, v3, v4, v5, sync=10, chroma=false)
    #MedianBlend(v1,v2,v3,v4,v5, low=0, high=0)
    return(last)

    Thank you!
    Quote Quote  
  20. Member
    Join Date
    Apr 2021
    Location
    Brazil
    Search PM
    Originally Posted by jagabo View Post
    Youtube's recompressed video isn't a good starting point. But that banding is going to be very hard to get rid of. It's worst on the opening titles. Most of it is in the U channel but only in areas of high V values (reds/yellows).

    Image
    [Attachment 58266 - Click to enlarge]


    I might be inclined to just rebuild the opening titles.

    Code:
    LWLibavVideoSource("Chapolin.mp4", cache=false, prefer_hw=2) 
    src = last
    
    ym = mt_binarize(120).Santiag(strh=2, strv=2).GreyScale()
    yellow=ym.ColorYUV(off_y=-64, off_u=-64, off_v=36)
    bg = blankClip(last, color=$A00030)
    Overlay(bg, yellow, mask=ym.Blur(1.0).Blur(1.0))
    Trim(34,34)
    Loop(56,0,0)
    
    last+src.Trim(56,0)
    Image
    [Attachment 58265 - Click to enlarge]


    Then apply some lesser filtering on the rest of the video. I'll look into that tomorrow.
    Follow the video link with 2 minutes. - https://www.4shared.com/video/88Sz0cueea/teste.html
    Video is in the best possible quality
    Quote Quote  
  21. [QUOTE=NLP;2616017]
    Originally Posted by jagabo View Post
    I was testing this script below. It looks like it worked at the beginning.

    However, I let the script run for 1 minute and it generates a 45 minutes video.
    How long are the video files? The script should generate a video that's the length of your sources. I'm not sure what happens if one cap is much longer or shorter than the others.

    Code:
    SetMemoryMax(512)
    SetMTMode(3)
    LoadPlugin("M:\Temp2\LSMASHSource.dll")
    LoadPlugin("M:\Temp2\Median.dll")
    
    v1 = LSmashVideoSource("K:\01 TS 4capt V17JVCES10.mp4").Subtitle("1") #.Trim(0,0) # remove the first 15 frames
    v2 = LSmashVideoSource("K:\01 TS 5capt V17JVCES10 e.mp4").Subtitle("2") #.Trim(0,0)
    v3 = LSmashVideoSource("K:\01 TS 6capt V17JVCES10 e.mp4").Subtitle("3") #.Trim(0,0)
    v4 = LSmashVideoSource("K:\01 TS 8capt V17JVCES10 e.mp4").Subtitle("4") #.Trim(0,0)
    v5 = LSmashVideoSource("K:\01 TS 10capt V17JVCES10 e.mp4").Subtitle("5") #.Trim(0,0)
    
    SetMTMode(2)
    a=last
    StackVertical(StackHorizontal(v1, v2, v3), StackHorizontal(v4, v5, BlankClip(v5)))
    median(v1, v2, v3, v4, v5, chroma=true)
    #Median(v1, v2, v3, v4, v5, sync=10, chroma=false)
    #MedianBlend(v1,v2,v3,v4,v5, low=0, high=0)
    return(last)
    a=last doesn't do anything here. There is no "last" defined at that point. I'm surprised it doesn't give an error (maybe it doesn't because "a" is never used so it's ignoring that line). There's no point in stacking the videos since you are going to pass them to individually to median(). You don't want the numbers (subtitle()) in the video frames when you call median. I don't know if median() works with mtmode 2. You can reduce your script to:

    Code:
    SetMemoryMax(512) # disabled until you know the script is working
    #SetMTMode(3) # disabled until you know the script is working
    
    LoadPlugin("M:\Temp2\LSMASHSource.dll")
    LoadPlugin("M:\Temp2\Median.dll")
    
    v1 = LSmashVideoSource("K:\01 TS 4capt V17JVCES10.mp4") #.Trim(0,0) # remove the first 15 frames
    v2 = LSmashVideoSource("K:\01 TS 5capt V17JVCES10 e.mp4") #.Trim(0,0)
    v3 = LSmashVideoSource("K:\01 TS 6capt V17JVCES10 e.mp4") #.Trim(0,0)
    v4 = LSmashVideoSource("K:\01 TS 8capt V17JVCES10 e.mp4") #.Trim(0,0)
    v5 = LSmashVideoSource("K:\01 TS 10capt V17JVCES10 e.mp4") #.Trim(0,0)
    
    #SetMTMode(2) # disabled until you know the script is working
    median(v1, v2, v3, v4, v5, chroma=true)
    #Median(v1, v2, v3, v4, v5, sync=10, chroma=false)
    #MedianBlend(v1,v2,v3,v4,v5, low=0, high=0)
    Open your script in VirtualDub and scrub around to verify it's working.
    Quote Quote  
  22. Originally Posted by kelvin View Post
    Follow the video link with 2 minutes. - https://www.4shared.com/video/88Sz0cueea/teste.html
    I can't download from that site. I get stuck with a 60 second countdown that doesn't change. You can upload files up to 500 MB directly to this site using the "Upload files/Manage attachments" button below the edit boxes.
    Quote Quote  
  23. Member
    Join Date
    Apr 2021
    Location
    Brazil
    Search PM
    Originally Posted by jagabo View Post
    Originally Posted by kelvin View Post
    Follow the video link with 2 minutes. - https://www.4shared.com/video/88Sz0cueea/teste.html
    I can't download from that site. I get stuck with a 60 second countdown that doesn't change. You can upload files up to 500 MB directly to this site using the "Upload files/Manage attachments" button below the edit boxes.
    OK, I sent it as an attachment.
    Image Attached Files
    Quote Quote  
  24. Are you capturing VHS (or some other analog) tapes? Why are the videos 960x720 rather than 720x576? You usually want to be as close to the actual source for this type of filtering. You want to capture at 720x576, interlaced, with a lossless codec.
    Quote Quote  
  25. Member
    Join Date
    Apr 2021
    Location
    Brazil
    Search PM
    This is the best source available.
    Image was captured by television channel recording
    Source was obtained with meeting of Brazilian fans
    This format is to blame for the horrible Mexican television channel "Televisa".
    They did a junk restoration, so we fans are trying to make the most of it.
    Last edited by kelvin; 6th Apr 2021 at 09:51.
    Quote Quote  
  26. OK. I'll see what I can do.
    Quote Quote  
  27. Member
    Join Date
    Sep 2014
    Location
    Italy
    Search PM
    [QUOTE=jagabo;2616031]
    Originally Posted by NLP View Post
    Originally Posted by jagabo View Post
    I was testing this script below. It looks like it worked at the beginning.

    However, I let the script run for 1 minute and it generates a 45 minutes video.
    How long are the video files? The script should generate a video that's the length of your sources. I'm not sure what happens if one cap is much longer or shorter than the others.

    Code:
    SetMemoryMax(512)
    SetMTMode(3)
    LoadPlugin("M:\Temp2\LSMASHSource.dll")
    LoadPlugin("M:\Temp2\Median.dll")
    
    v1 = LSmashVideoSource("K:\01 TS 4capt V17JVCES10.mp4").Subtitle("1") #.Trim(0,0) # remove the first 15 frames
    v2 = LSmashVideoSource("K:\01 TS 5capt V17JVCES10 e.mp4").Subtitle("2") #.Trim(0,0)
    v3 = LSmashVideoSource("K:\01 TS 6capt V17JVCES10 e.mp4").Subtitle("3") #.Trim(0,0)
    v4 = LSmashVideoSource("K:\01 TS 8capt V17JVCES10 e.mp4").Subtitle("4") #.Trim(0,0)
    v5 = LSmashVideoSource("K:\01 TS 10capt V17JVCES10 e.mp4").Subtitle("5") #.Trim(0,0)
    
    SetMTMode(2)
    a=last
    StackVertical(StackHorizontal(v1, v2, v3), StackHorizontal(v4, v5, BlankClip(v5)))
    median(v1, v2, v3, v4, v5, chroma=true)
    #Median(v1, v2, v3, v4, v5, sync=10, chroma=false)
    #MedianBlend(v1,v2,v3,v4,v5, low=0, high=0)
    return(last)
    a=last doesn't do anything here. There is no "last" defined at that point. I'm surprised it doesn't give an error (maybe it doesn't because "a" is never used so it's ignoring that line). There's no point in stacking the videos since you are going to pass them to individually to median(). You don't want the numbers (subtitle()) in the video frames when you call median. I don't know if median() works with mtmode 2. You can reduce your script to:

    Code:
    SetMemoryMax(512) # disabled until you know the script is working
    #SetMTMode(3) # disabled until you know the script is working
    
    LoadPlugin("M:\Temp2\LSMASHSource.dll")
    LoadPlugin("M:\Temp2\Median.dll")
    
    v1 = LSmashVideoSource("K:\01 TS 4capt V17JVCES10.mp4") #.Trim(0,0) # remove the first 15 frames
    v2 = LSmashVideoSource("K:\01 TS 5capt V17JVCES10 e.mp4") #.Trim(0,0)
    v3 = LSmashVideoSource("K:\01 TS 6capt V17JVCES10 e.mp4") #.Trim(0,0)
    v4 = LSmashVideoSource("K:\01 TS 8capt V17JVCES10 e.mp4") #.Trim(0,0)
    v5 = LSmashVideoSource("K:\01 TS 10capt V17JVCES10 e.mp4") #.Trim(0,0)
    
    #SetMTMode(2) # disabled until you know the script is working
    median(v1, v2, v3, v4, v5, chroma=true)
    #Median(v1, v2, v3, v4, v5, sync=10, chroma=false)
    #MedianBlend(v1,v2,v3,v4,v5, low=0, high=0)
    Open your script in VirtualDub and scrub around to verify it's working.


    Hi jagabo,

    The video lasts for 1 hour and 40 minutes

    The script ran very slowly, it seems to me that it is inserting all the frames of the 5 captures.

    And the median is not working.

    So I decided to get the Didée's script that I put at the end of this post *, and I added the LSMASHSource.

    Then, this script transformed the 1 hour and 40 minute length video into a 2 hours of video. I really didn't understand why it is happening?...

    Do I need to install FFmpeg to have Libavcodec?

    I have K-lite Mega installed, does it no longer contain Libavcodec?



    I used the command below to see the entire screen.

    BilinearResize (width / 3, height / 3)

    The 5 screens on the left perform normally, but the one on the right is static.


    Image

    Image
    [Attachment 58279 - Click to enlarge]







    * Didée's script
    Code:
    #Import("M:\temp2\source script2 Dr Paulo Pirej.avs")
    # Plugins: - RemoveGrain
    # - MaskTools2
    # - Depan + DepanEstimate
    # - MVTools2
    
    SetMemoryMax(512)
    SetMTMode(3)
    LoadPlugin("M:\Temp2\RemoveGrain.dll")
    LoadPlugin("M:\Temp2\MaskTools2-25.dll")
    LoadPlugin("M:\Temp2\Depan.dll")
    LoadPlugin("M:\Temp2\DepanEstimate.dll")
    LoadPlugin("M:\Temp2\MVTools2.dll")
    
    #mpeg2source("M:\Marcelo 27.5.20\1\01\01-1.d2v")
    #mpeg2source("M:\Marcelo 999255703 - Fazer\01 ok 19m.d2v")
    DirectShowSource("M:\Welington 3.11.20 - Fazer\07 WE 3capt V17JVCES10.mp4", fps = 25, ConvertFPS = True )
    #DirectShowSource("M:\Luis Tonini 14.1.20 - Fazer\01 V14ES10 e.mp4")
    #DirectShowSource("E:\Tereza Soares 13.8.20 - Fazer\01 TS 8capt V17JVCES10.mp4", fps = 25, ConvertFPS = True ) # para AVI encapsulado AVI Xvid da Avermidia ou MP4 da Aple
    #DirectShowSource("M:\Neogrid 5-10-17\090 4capt V13SVSDV.avi", fps = 25, ConvertFPS = True ) # para AVI encapsulado AVI Xvid da Avermidia
    #AVISource("E:\Cleiton\Super 8mm\03\03 ok.avi") 
    #AVISource("E:\Luiz Itapema 23.9.20 - Fazer\18 LI SD8.avi", audio=true)
    #AVISource("E:\Luiz Itapema 23.9.20 - Fazer\18 LI SD8.avi") # DV AVI
    #AVISource("M:\Pedro 31-7-18\25 8capt V15ES10SDV.avi", audio=true)
    
    
    SetMTMode(2)
    #ConvertToYV12()
    #ConvertToyv411()
    #Crop(0,20,-0,-30,true)
    #bob(0,0.5)
    
    AssumeTFF()
    SeparateFields()
    
    a=last
    
    clense(reduceflicker=false).merge(last,0.5).clense(reduceflicker=false)
    mot=removegrain(11,0).removegrain(20,0).DepanEstimate(range=2)
    take2=a.depaninterleave(mot,prev=2,next=2,subpixel=2)
    clean1=take2.TMedian2().selectevery(5,2)
    
    sup1 = clean1.minblur(1).removegrain(11,0).removegrain(11,0)
    \ .mt_lutxy(clean1,"x 1 + y < x 2 + x 1 - y > x 2 - y ? ?",U=2,V=2)
    \ .msuper(pel=2,sharp=0)
    sup2 = a.msuper(pel=2,levels=1,sharp=2)
    #bv23=sup1.manalyse(isb=true, truemotion=false,global=true,delta=3,blksize=16,overlap=8,search=5,searchparam=4,DCT=5)
    bv22=sup1.manalyse(isb=true, truemotion=false,global=true,delta=2,blksize=16,overlap=8,search=5,searchparam=4,DCT=5)
    bv21=sup1.manalyse(isb=true, truemotion=false,global=true,delta=1,blksize=16,overlap=8,search=5,searchparam=4,DCT=5)
    fv21=sup1.manalyse(isb=false,truemotion=false,global=true,delta=1,blksize=16,overlap=8,search=5,searchparam=4,DCT=5)
    fv22=sup1.manalyse(isb=false,truemotion=false,global=true,delta=2,blksize=16,overlap=8,search=5,searchparam=4,DCT=5)
    #fv23=sup1.manalyse(isb=false,truemotion=false,global=true,delta=3,blksize=16,overlap=8,search=5,searchparam=4,DCT=5)
    
    #a.mdegrain3(sup2,bv21,fv21,bv22,fv22,bv23,fv23,thSAD=499) # << this is the "2-fold" variant
    
    interleave(a.mcompensate(sup2,fv22),a.mcompensate(sup2,fv21),a,a.mcompensate(sup2,bv21),a.mcompensate(sup2,bv22))
    TMedian2().selectevery(5,2)
    
    sup3 = last.msuper(pel=2,sharp=2)
    bv33=sup3.manalyse(isb=true, truemotion=false,global=true,delta=3,blksize=8,overlap=4,search=5,searchparam=4,DCT=5)
    bv32=sup3.manalyse(isb=true, truemotion=false,global=true,delta=2,blksize=8,overlap=4,search=5,searchparam=4,DCT=5)
    bv31=sup3.manalyse(isb=true, truemotion=false,global=true,delta=1,blksize=8,overlap=4,search=5,searchparam=4,DCT=5)
    fv31=sup3.manalyse(isb=false,truemotion=false,global=true,delta=1,blksize=8,overlap=4,search=5,searchparam=4,DCT=5)
    fv32=sup3.manalyse(isb=false,truemotion=false,global=true,delta=2,blksize=8,overlap=4,search=5,searchparam=4,DCT=5)
    fv33=sup3.manalyse(isb=false,truemotion=false,global=true,delta=3,blksize=8,overlap=4,search=5,searchparam=4,DCT=5)
    
    last.mdegrain3(sup3,bv31,fv31,bv32,fv32,bv33,fv33,thSAD=499) # valor Original thSAD=499
    LSFMod(strength=60)
    Interleave() 
    Weave()
    
    #stackvertical(a,last) # Alterado por mim.
    return(last)
    
    
    #--------------------------------------------------------------
    # Helper functions
    
    function MinBlur(clip clp, int r, int "uv")
    {
    uv = default(uv,3)
    uv2 = (uv==2) ? 1 : uv
    rg4 = (uv==3) ? 4 : -1
    rg11 = (uv==3) ? 11 : -1
    rg20 = (uv==3) ? 20 : -1
    medf = (uv==3) ? 1 : -200
    
    RG11D = (r==0) ? mt_makediff(clp,clp.sbr(),U=uv2,V=uv2)
    \ : (r==1) ? mt_makediff(clp,clp.removegrain(11,rg11),U=uv2,V=uv2)
    \ : (r==2) ? mt_makediff(clp,clp.removegrain(11,rg11).removegrain(20,rg20),U=uv2,V=uv2)
    \ : mt_makediff(clp,clp.removegrain(11,rg11).removegrain(20,rg20).removegrain(20,rg20),U=uv2,V=uv2)
    RG4D = (r<=1) ? mt_makediff(clp,clp.removegrain(4,rg4),U=uv2,V=uv2)
    \ : (r==2) ? mt_makediff(clp,clp.medianblur(2,2*medf,2*medf),U=uv2,V=uv2)
    \ : mt_makediff(clp,clp.medianblur(3,3*medf,3*medf),U=uv2,V=uv2)
    DD = mt_lutxy(RG11D,RG4D,"x 128 - y 128 - * 0 < 128 x 128 - abs y 128 - abs < x y ? ?",U=uv2,V=uv2)
    clp.mt_makediff(DD,U=uv,V=uv)
    return(last)
    }
    
    # median of 5 clips from Helpers.avs by G-force
    Function Median2(clip "input_1", clip "input_2", clip "input_3", clip "input_4", clip "input_5", string "chroma")
    {
    chroma = default(chroma,"process") #default is "process". Alternates: "copy first" or "copy second"
    #MEDIAN(i1,i3,i5)
    Interleave(input_1,input_3,input_5)
    chroma == "process" ? Clense(reduceflicker=false) : Clense(reduceflicker=false,grey=true)
    m1 = selectevery(3,1)
    #MAX(MIN(i1,i3,i5),i2)
    m2 = input_1.MT_Logic(input_3,"min",chroma=chroma).MT_Logic(input_5,"min",chroma=chroma).MT_Logic(input_2,"max",chroma=chroma)
    #MIN(MAX(i1,i3,i5),i4)
    m3 = input_1.MT_Logic(input_3,"max",chroma=chroma).MT_Logic(input_5,"max",chroma=chroma).MT_Logic(input_4,"min",chroma=chroma)
    Interleave(m1,m2,m3)
    chroma == "process" ? Clense(reduceflicker=false) : Clense(reduceflicker=false,grey=true)
    selectevery(3,1)
    chroma == "copy first" ? last.MergeChroma(input_1) : chroma == "copy second" ? last.MergeChroma(input_2) : last
    Return(last)
    }
    
    function TMedian2(clip c) {
    Median2( c.selectevery(1,-2), c.selectevery(1,-1), c, c.selectevery(1,1), c.selectevery(1,2) ) }
    Quote Quote  
  28. Originally Posted by NLP View Post
    The script ran very slowly, it seems to me that it is inserting all the frames of the 5 captures.
    Which script?

    Originally Posted by NLP View Post
    And the median is not working.
    What do you mean?

    Originally Posted by NLP View Post
    So I decided to get the Didée's script that I put at the end of this post *, and I added the LSMASHSource.
    That script has nothing to do with the ajk's median() function. Andi it's completely in appropriate for your situation.

    Originally Posted by NLP View Post
    Then, this script transformed the 1 hour and 40 minute length video into a 2 hours of video. I really didn't understand why it is happening?...
    Just to test, I used your short sample and the script did not do that. Did you make some other changes?

    Originally Posted by NLP View Post
    Do I need to install FFmpeg to have Libavcodec?
    LWlibavVideoSource() is obviously working -- given you image with the stacked videos. If it wasn't working you would get an error message about an unknow function.

    Originally Posted by NLP View Post
    I have K-lite Mega installed, does it no longer contain Libavcodec?
    That has nothing to do wiht LWlibavVideoSource().


    Originally Posted by NLP View Post
    I used the command below to see the entire screen.

    BilinearResize (width / 3, height / 3)

    The 5 screens on the left perform normally, but the one on the right is static.
    I think don't understand what's going on. I suspect you pressed the Play Input Video button (second from the left) or selected Go -> Preview Input. That would only display the video in the left pane, the input pane. The right pane is the output pane -- the video after VirtualDub's filtering. If you want to see both panes press the Play Output Video (third from the left) or select Go -> Preview Filtered. But if you're not performing any filtering in VirtualDub there's no need to see the output video.
    Quote Quote  
  29. Member
    Join Date
    Sep 2014
    Location
    Italy
    Search PM
    Originally Posted by jagabo View Post
    Originally Posted by NLP View Post
    The script ran very slowly, it seems to me that it is inserting all the frames of the 5 captures.
    Which script?

    Originally Posted by NLP View Post
    And the median is not working.
    What do you mean?

    Originally Posted by NLP View Post
    So I decided to get the Didée's script that I put at the end of this post *, and I added the LSMASHSource.
    That script has nothing to do with the ajk's median() function. Andi it's completely in appropriate for your situation.

    Originally Posted by NLP View Post
    Then, this script transformed the 1 hour and 40 minute length video into a 2 hours of video. I really didn't understand why it is happening?...
    Just to test, I used your short sample and the script did not do that. Did you make some other changes?

    Originally Posted by NLP View Post
    Do I need to install FFmpeg to have Libavcodec?
    LWlibavVideoSource() is obviously working -- given you image with the stacked videos. If it wasn't working you would get an error message about an unknow function.

    Originally Posted by NLP View Post
    I have K-lite Mega installed, does it no longer contain Libavcodec?
    That has nothing to do wiht LWlibavVideoSource().


    Originally Posted by NLP View Post
    I used the command below to see the entire screen.

    BilinearResize (width / 3, height / 3)

    The 5 screens on the left perform normally, but the one on the right is static.
    I think don't understand what's going on. I suspect you pressed the Play Input Video button (second from the left) or selected Go -> Preview Input. That would only display the video in the left pane, the input pane. The right pane is the output pane -- the video after VirtualDub's filtering. If you want to see both panes press the Play Output Video (third from the left) or select Go -> Preview Filtered. But if you're not performing any filtering in VirtualDub there's no need to see the output video.


    Hi Jagabo

    I'm sorry, I made a big mess in my preview post (above).

    I posted the script that you gave me, the one below.

    Code:
    SetMemoryMax (512) # desabilitado até que você saiba que o script está funcionando
    #SetMTMode (3) # desabilitado até que você saiba que o script está funcionando
    
    LoadPlugin ("M: \ Temp2 \ LSMASHSource.dll")
    LoadPlugin ("M: \ Temp2 \ Median.dll")
    
    v1 = LSmashVideoSource ("K: \ 01 TS 4capt V17JVCES10.mp4") # .Trim (0,0) # remove os primeiros 15 quadros
    v2 = LSmashVideoSource ("K: \ 01 TS 5capt V17JVCES10 e.mp4") # .Trim (0,0)
    v3 = LSmashVideoSource ("K: \ 01 TS 6capt V17JVCES10 e.mp4") # .Trim (0,0)
    v4 = LSmashVideoSource ("K: \ 01 TS 8capt V17JVCES10 e.mp4") # .Trim (0,0)
    v5 = LSmashVideoSource ("K: \ 01 TS 10capt V17JVCES10 e.mp4") # .Trim (0,0)
    
    #SetMTMode (2) # desabilitado até que você saiba que o script está funcionando
    mediana (v1, v2, v3, v4, v5, croma = verdadeiro)
    #Median (v1, v2, v3, v4, v5, sync = 10, chroma = falso)
    #MedianBlend (v1, v2, v3, v4, v5, baixo = 0, alto = 0)


    As I could not get the correct Preview because I pressed the Play Input Video button (the second from the left)

    This would only display the video in the left panel, as you predicted.

    So I thought the median command [ median(v1, v2, v3, v4, v5, chroma=true) ] was not working.

    Soon, I had the idea of ​​inserting the code into the script.

    BilinearResize (width / 3, height / 3)


    That ended up creating more confusion.

    I shouldn't have done that, I should have posted the result of the original script.

    So now I followed your last recommendation.

    To see the two panels, press Play Output Video (third from left)

    Then I noticed that the "median" is working, but generating many more frames.

    It loses the sync of the frames as it advances in time, causing distortions in some frames in the video. It’s getting in very slow motion.


    To give you an example The video below with only 1 minute long. The script created a video with more than an hour.


    https://drive.google.com/file/d/1IIK_Ps_TJezi_bleiNK1f7PbBaNtR7oM/view


    So I thought I was missing some codec on my system.

    So following your guidance, I used the script from ajk and Andi


    Code:
    code:
    
    # editar os plugins que vai usar
    SetMemoryMax(512)
    #SetMTMode(3)
    
    LoadPlugin("M:\Temp2\LSMASHSource.dll")
    LoadPlugin("M:\Temp2\Average_21Oct05.dll")
    LoadPlugin("M:\Temp2\Median.dll")
    
    clip1=LSmashVideoSource("K:\01 TS 5capt V17JVCES10 e.mp4").Subtitle("2") #.Trim(0,0)
    clip2=LSmashVideoSource("K:\01 TS 6capt V17JVCES10 e.mp4").Subtitle("3") #.Trim(0,0)
    clip3=LSmashVideoSource("K:\01 TS 8capt V17JVCES10 e.mp4").Subtitle("4") #.Trim(0,0)
    clip4=LSmashVideoSource("K:\01 TS 10capt V17JVCES10 e.mp4").Subtitle("5") #.Trim(0,0)
    
    #SetMTMode(2)
    M1=Median1(clip1,clip2,clip3)
    M2=Median1(clip2,clip3,clip4)
    M3=Median1(clip1,clip3,clip4)
    M4=Median1(clip1,clip2,clip4)
    Average(M1, 0.25, M2, 0.25, M3, 0.25, M4, 0.25)
    
    Function Median1(clip input_1, clip input_2, clip input_3, string "chroma")
    {# median of 3 clips from Helpers.avs by G-force
    
    chroma = default(chroma,"process") #default is "process". Alternates: "copy first" or "copy second"
    
    Interleave(input_1,input_2,input_3)
    chroma == "process" ? Clense(reduceflicker=false) : Clense(reduceflicker=false,grey=true)
    SelectEvery(3,1)
    
    chroma == "copy first" ? last.MergeChroma(input_1) : chroma == "copy second" ? last.MergeChroma(input_2) : last
    
    Return(last)
    }

    Running the ajk script, I noticed that it got better at the beginning.

    It loses the sync of the frames as it advances in time, causing distortions in some frames in the video.

    It is getting in slow motion, but faster than the previous one.
    But it generated a 20-hour video, I don't know how long I let the script run.


    But, again, another example, the video below with 1 minute long. The script created a video with more than an hour.


    https://drive.google.com/file/d/1lKCz1HZEIgsMtAWKkKaaPfrjVF7Eh4Wo/view


    So I believe there must be something wrong with my PC system.

    I am using AviSynth 2.6, what is your recommendation? Maybe upgrade to 32-bit Plus?



    Thank you Jagabo for all your help.
    Quote Quote  
  30. Your videos have very long running times in part because frame rate has changed to ~1 fps. When I run that script on my computer I don't get that. But I'm running a recent built of AviSynth+ 64 bit, not 32 bit AviSynth 2.6 mt. So all the filters are probably different versions too.

    The median1() function in your script works similarly to ajk's median with three input videos. But it has no ability to resync if any of the videos have missing or extra frames.

    Also the way you're building all those Mx clips doesn't make any sense. Your script should look more like:

    Code:
    SetMemoryMax(512)
    #SetMTMode(3)
    
    LoadPlugin("M:\Temp2\LSMASHSource.dll")
    LoadPlugin("M:\Temp2\Median.dll")
    
    Function Median1(clip input_1, clip input_2, clip input_3, string "chroma")
    {# median of 3 clips from Helpers.avs by G-force
        chroma = default(chroma,"process") #default is "process". Alternates: "copy first" or "copy second"
    
        Interleave(input_1,input_2,input_3)
        chroma == "process" ? Clense(reduceflicker=false) : Clense(reduceflicker=false,grey=true)
        SelectEvery(3,1)
    
        chroma == "copy first" ? last.MergeChroma(input_1) : chroma == "copy second" ? last.MergeChroma(input_2) : last
    
        Return(last)
    }
    
    clip1=LSmashVideoSource("K:\01 TS 5capt V17JVCES10 e.mp4").Subtitle("2") #.Trim(0,0)
    clip2=LSmashVideoSource("K:\01 TS 6capt V17JVCES10 e.mp4").Subtitle("3") #.Trim(0,0)
    clip3=LSmashVideoSource("K:\01 TS 8capt V17JVCES10 e.mp4").Subtitle("4") #.Trim(0,0)
    clip4=LSmashVideoSource("K:\01 TS 10capt V17JVCES10 e.mp4").Subtitle("5") #.Trim(0,0)
    
    # ignoring one of the videos because Median1() only accepts 3 video:
    Median1(clip1, clip2, clip3)
    AssumeFPS(clip1.framerate) #fixing the frame rate, assuming clip1 has the correct frame rate
    Or using ajk's median():

    Code:
    SetMemoryMax(512)
    #SetMTMode(3)
    
    LoadPlugin("M:\Temp2\LSMASHSource.dll")
    LoadPlugin("M:\Temp2\Median.dll")
    
    clip1=LSmashVideoSource("K:\01 TS 5capt V17JVCES10 e.mp4").Subtitle("2") #.Trim(0,0)
    clip2=LSmashVideoSource("K:\01 TS 6capt V17JVCES10 e.mp4").Subtitle("3") #.Trim(0,0)
    clip3=LSmashVideoSource("K:\01 TS 8capt V17JVCES10 e.mp4").Subtitle("4") #.Trim(0,0)
    clip4=LSmashVideoSource("K:\01 TS 10capt V17JVCES10 e.mp4").Subtitle("5") #.Trim(0,0)
    
    # ignoring one of the videos because Median() only accepts 3 video:
    Median(clip1, clip2, clip3)
    # I'm guessing the frame rate will be correct in this case
    Last edited by jagabo; 8th Apr 2021 at 18:16.
    Quote Quote  



Similar Threads