VideoHelp Forum
+ Reply to Thread
Results 1 to 7 of 7
Thread
  1. Member
    Join Date
    Dec 2018
    Location
    United States
    Search Comp PM
    I think I have everything installed correctly (This page was a big help). I've written a couple scripts and can view the results of the script in avsPmod, can save these scripts as .avs files and have Media Player Classic play it back with filters applied. But how do I run the script so that instead of just playing the video, it applies filters and saves it to a new file with ffMPEG (or some other encoder like Procoder or Squeeze)? For example, I have an AVI file that I want to deinterlace and save in a web-friendly format- how do I specifically do this to have it filtered through AVISynth and then compressed and saved as a new file?
    Thanks
    Edit: This is for VHS captured through a TBC(ish) setup.

    Here is my simple script-

    Code:
    SetFilterMTMode ("QTGMC", 2) 
    FFMPEGSource2("X:\Tukaufu\GVL.avi", atrack=1) 
    ConvertToYV12() 
    AssumeBFF() 
    QTGMC(preset="Slower", EdiThreads=3) 
    BilinearResize(720,540) 
    Prefetch(5) 
    Crop(12,0,-8,-8)
    Quote Quote  
  2. Originally Posted by drzapp View Post
    But how do I run the script so that instead of just playing the video, it applies filters and saves it to a new file with ffMPEG (or some other encoder like Procoder or Squeeze)?
    ffmpeg can read avs scripts natively, if it was compiled with avs support (most commonly distributed windows binaries have it)

    For other programs like procoder , squeeze, if they do not support avisynth natively (I thought some versions of procoder did), you can use avfs to mount a virtual file (a "fake" AVI)

    Alternatively , there are dozens of other GUI's that support avisynth. Popular ones would be staxrip, megui, hybrid to name a few

    Edit: This is for VHS captured through a TBC(ish) setup.

    Here is my simple script-

    Code:
    SetFilterMTMode ("QTGMC", 2) 
    FFMPEGSource2("X:\Tukaufu\GVL.avi", atrack=1) 
    ConvertToYV12() 
    AssumeBFF() 
    QTGMC(preset="Slower", EdiThreads=3) 
    BilinearResize(720,540) 
    Prefetch(5) 
    Crop(12,0,-8,-8)
    It should be ConvertToYV12(interlaced=true) , especially if the cap was 4:2:2. If it was 4:2:0 then adding interlaced=true would be a no-op provided ffms2 reads it as 4:2:0
    Quote Quote  
  3. Member
    Join Date
    Dec 2018
    Location
    United States
    Search Comp PM
    Originally Posted by poisondeathray View Post
    ffmpeg can read avs scripts natively, if it was compiled with avs support (most commonly distributed windows binaries have it)
    So I would set up the type of compression I want to do in ffMPEG, and use the AVS file as the source?

    It should be ConvertToYV12(interlaced=true) , especially if the cap was 4:2:2. If it was 4:2:0 then adding interlaced=true would be a no-op provided ffms2 reads it as 4:2:0
    Thanks- it is 4:2:2
    Quote Quote  
  4. Member
    Join Date
    May 2014
    Location
    Memphis TN, US
    Search PM
    Originally Posted by drzapp View Post
    I
    Code:
    BilinearResize(720,540) 
    Prefetch(5) 
    Crop(12,0,-8,-8)
    Your output file is no longer 720x540 and no longer a 4:3 aspect ratio (1.33333:1). The output frame size is an oddball 700x532 at an aspect ratio of 1.3157:1, which is more narrow than 4:3. Some Avisynth filters and some encoders and players aren't real happy with mod4 frame sizes. They would be happier if you cropped first and then used Spline36Resize to get a cleaner mod8 720x544 and an aspect ratio of 1.32353:1, which is much closer to 1.33333:1. Why did you use BilinearResize for a resize that isn't a multiple of 2?
    Last edited by LMotlow; 20th Dec 2018 at 23:23.
    - My sister Ann's brother
    Quote Quote  
  5. Originally Posted by drzapp View Post
    Originally Posted by poisondeathray View Post
    ffmpeg can read avs scripts natively, if it was compiled with avs support (most commonly distributed windows binaries have it)
    So I would set up the type of compression I want to do in ffMPEG, and use the AVS file as the source?
    Yes, you would specify the settings in the ffmpeg commandline. You might use libx264 for video encoding (AVC) and aac in mp4 container, for example . It's still a very popular combo for web/streaming/devices. Alternatively VP8/VP9 + vorbis/opus can be used

    For mp4 container, you need to use -movflags faststart switch, otherwise it won't play in browser until fully downloaded (this places the moov atom before mdat) . And you would customize the encoding settings for your scenario; for example you might need to specify vbv buffer values for better streaming experience depending on up/down bandwidth, etc...
    Quote Quote  
  6. Member
    Join Date
    Dec 2018
    Location
    United States
    Search Comp PM
    OK, today AVSPmod decided it couldn't find QTGMC. It gives me the error "There is no function named QTGMC". I have not changed anything with the AviSynth+ install or plugins. Just to see what would happen, I uninstalled everything and reinstalled, yet the problem persists.
    Quote Quote  
  7. Originally Posted by drzapp View Post
    OK, today AVSPmod decided it couldn't find QTGMC. It gives me the error "There is no function named QTGMC". I have not changed anything with the AviSynth+ install or plugins. Just to see what would happen, I uninstalled everything and reinstalled, yet the problem persists.
    Are you using correct matching versions ? In terms of x86 vs. x64 ? avspmod x64 would work with avisynth x64 etc...

    Where is QTGMC.avsi (or however you have it named) located ?

    You can also import QTGMC in the script explictly

    Import("PATH\QTGMC.avsi")
    Quote Quote  



Similar Threads

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