VideoHelp Forum

Try DVDFab and copy Ultra HD Blu-rays and DVDs! Or rip iTunes movies and music! Download free trial !
+ Reply to Thread
Page 1 of 3
1 2 3 LastLast
Results 1 to 30 of 64
Thread

Threaded View

  1. Member
    Join Date
    Aug 2013
    Location
    Scotland
    Search PM
    I've rendered a long clip after deinterlacing it in AvsPmod. Most of the clip i'm satisfied with but this one segment is a bug bear. The original video shimmered briefly on the logo before settling down, but after QTGMC is applied it just picks up that shimmer and runs with it for the duration of the shot..

    I've attached a before and after clip to show what i mean.

    Code:
    SetMTMode(5,6)
    AVISource("F:\Video.avi")
    SetMemoryMax(2048)
    SetMTMode(2)
    AssumeTFF()
    AssumeFPS(25)
    QTGMC(preset="slow", matchpreset="slow", matchpreset2="slow", sourcematch=3, Lossless=2, TR2=2, EdiThreads=2, border=true)
    Image Attached Files
    Quote Quote  
  2. It's progressive content, that has been upscaled

    Code:
    LWLibavVideoSource("Before.mp4")
    AssumeTFF()
    TFM(pp=0)

    You might have to mix & match if the other sections are different
    There is one combed frame at the beginning, but that's probably from the way you cut it
    Quote Quote  
  3. Member
    Join Date
    Aug 2013
    Location
    Scotland
    Search PM
    Thanks, that seemed to fix it. Had to raise it to TFM(pp=2) though.

    Having viewed it back again, it's actually not present on the original in it's interlaced state, VLC had it's own interlacer on.. I'll need to view it on my tv from the original capture device i recorded it on to see how it plays.

    I used Avidemux to trim the clips, which of course isn't as frame accurate as i'd like.

    Now i'll need to find a way to trim, cut out and rejoin the fixed segment to the precise frame, without having to re-encode the whole thing.
    Image Attached Files
    Quote Quote  
  4. Originally Posted by Master Tape View Post

    Now i'll need to find a way to trim, cut out and rejoin the fixed segment to the precise frame, without having to re-encode the whole thing.
    Why don't you just do it all the script ?

    You can use trim() and aligned splice to join . That way you can process different segments with different filters if needed
    Quote Quote  
  5. Member
    Join Date
    Aug 2013
    Location
    Scotland
    Search PM
    Originally Posted by poisondeathray View Post
    Originally Posted by Master Tape View Post

    Now i'll need to find a way to trim, cut out and rejoin the fixed segment to the precise frame, without having to re-encode the whole thing.
    Why don't you just do it all the script ?

    You can use trim() and aligned splice to join . That way you can process different segments with different filters if needed
    Can you splice/join the rendered clips together in the script without further re-encoding? Like just typing in "-c copy" in the batch file and it'll join all everything up from the .avs file?
    Quote Quote  
  6. Originally Posted by Master Tape View Post

    Can you splice/join the rendered clips together in the script without further re-encoding? Like just typing in "-c copy" in the batch file and it'll join all everything up from the .avs file?


    No, you typically do it in the script before encoding

    Avisynth frameserves uncompressed audio and video ; so you typically don't want to "stream copy"


    But you're encoding everything anyways, right ? From some "AVI" recording source ? You're applying some avisynth filters anyways like TFM or QTGMC or whatever, right?

    So you do everything in the script, filters, join, everything and encode the single file all at once


    EDIT: But if you just want to replace certain sections, it can be tricky. Encode your replacement section(s) . They have to have the same characteristics in terms of pixel format, fps ,audio sampling rate etc... You have to cut the main video on IDR keyframes , then append the insert segment(s) to the main section(s) . It helps if you knew that beforehand and had used --stitchable for encoding settings . Sometimes little things can go wrong if you join, maybe glitch at the seams, some audio glitches . Sometimes it works . It's just much safer and more foolproof to do it all in 1 go in a single script.
    Last edited by poisondeathray; 15th Jan 2020 at 21:24.
    Quote Quote  
  7. Member
    Join Date
    Aug 2013
    Location
    Scotland
    Search PM
    I don't mind rendering it all again, it's probably easier to do it in the single script as you go. I'll watch it all back too to see if any other segments might need some TFM treatment. I will be using AVI as a recording source once i start capturing my VHS tapes, but i was using it after converting my MP4 files to loseless AVI in VirtualDub after having trouble with Avisynth trying to run other formats properly, but then realised i didn't have the correct plugin installed. LWLibavVideoSource works fine, but i can't get LWLibavAudioSource to work, or it will refuse to encode the file after i put it in.

    Code:
    SetMTMode(5,6)
    LWLibavVideoSource("F:\HDD\New Volume\150914-2138.mp4")
    LWLibavAudioSource("F:\HDD\New Volume\150914-2138.mp4")
    SetMemoryMax(2048)
    SetMTMode(2)
    AssumeTFF()
    AssumeFPS(25)
    TFM(pp=2)
    QTGMC(preset="slow", matchpreset="slow", matchpreset2="slow", sourcematch=3, Lossless=2, TR2=2, EdiThreads=2, border=true)
    For the next video i'll render on fastest settings as a test to check for any anomalies then fix them and do a proper quality encode with the filters applied.
    Quote Quote  
  8. Code:
    a = LWLibavAudioSource("F:\HDD\New Volume\150914-2138.mp4")
    v = LWLibavVideoSource("F:\HDD\New Volume\150914-2138.mp4")
    AudioDub(v,a)
    etc.
    And why are you running QTGMC here? The video is progressive after TFM. Try the following instead. It's sharper, has less aliasing, and is shitloads faster.

    Code:
    LWLibavVideoSource("Before.mp4")
    TFM(pp=0)
    BilinearResize(width/2, height/2)
    aWarpSharp2(depth=10)
    nnedi3_rpow2(2, fwidth=width*2, fheight=height*2)
    aWarpSharp2(depth=10)
    Image Attached Files
    Last edited by jagabo; 16th Jan 2020 at 09:20.
    Quote Quote  
  9. Member
    Join Date
    Aug 2013
    Location
    Scotland
    Search PM
    Originally Posted by jagabo View Post
    Code:
    a = LWLibavAudioSource("F:\HDD\New Volume\150914-2138.mp4")
    v = LWLibavVideoSource("F:\HDD\New Volume\150914-2138.mp4")
    AudioDub(v,a)
    etc.
    And why are you running QTGMC here? The video is progressive after TFM. Try the following instead. It's sharper, has less aliasing, and is shitloads faster.

    Code:
    LWLibavVideoSource("Before.mp4")
    TFM(pp=0)
    BilinearResize(width/2, height/2)
    aWarpSharp2(depth=10)
    nnedi3_rpow2(2, fwidth=width*2, fheight=height*2)
    aWarpSharp2(depth=10)
    Oh so TFM deinterlaces aswell? TFM makes the video run twice as fast (like it's in fast forward mode) Whilst i want the video to run 50p smooth (after combining 25i to emulate the smooth playback of how it was shown on tv) TFM declares 50fps, but it looks more like 100fps

    And think that might need a bit of tweaking, as the CN logo looks a bit ripply.



    Last edited by Master Tape; 16th Jan 2020 at 11:00.
    Quote Quote  
  10. Originally Posted by Master Tape View Post
    Oh so TFM deinterlaces aswell?
    Not exactly. But for your purposes here it does.

    Originally Posted by Master Tape View Post
    TFM makes the video run twice as fast
    No, it does not. The problem is in the source video you uploaded. I didn't notice this before but your source is encoded interlaced with "separated fields". The 50 fps that MediaInfo reports is the field rate, not the frame rate. Many programs make the same mistake, including LWlibavVideoSource(). Sorry, I should have slowed my encoding to 25 fps. I don't know if your original source is the same. Use AssumeFPS(25) if necessary.

    Originally Posted by Master Tape View Post
    Whilst i want the video to run 50p smooth (after combining 25i to emulate the smooth playback of how it was shown on tv) TFM declares 50fps, but it looks more like 100fps
    Adventure Time is shot at 24 fps. You're never going to get smooth 50 fps out of it.

    Originally Posted by Master Tape View Post
    And think that might need a bit of tweaking, as the CN logo looks a bit ripply.



    The CN logo was overlaid after the video was upscaled (ie, it's true 1080i content, not upscaled SD like the cartoon). You have to decide for your self whether the logo is more important than the cartoon content.

    Get a native NTSC HD source to start with. I recorded this off cable TV several years ago...
    Image Attached Files
    Last edited by jagabo; 16th Jan 2020 at 11:48.
    Quote Quote  
  11. Member
    Join Date
    Aug 2013
    Location
    Scotland
    Search PM
    Originally Posted by jagabo View Post
    Originally Posted by Master Tape View Post
    Oh so TFM deinterlaces aswell?
    Not exactly. But for your purposes here it does.

    Originally Posted by Master Tape View Post
    TFM makes the video run twice as fast
    No, it does not. The problem is in the source video you uploaded. I didn't notice this before but your source is encoded interlaced with "separated fields". The 50 fps that MediaInfo reports is the field rate, not the frame rate. Many programs make the same mistake, including LWlibavVideoSource(). Sorry, I should have slowed my encoding to 25 fps. I don't know if your original source is the same. Use AssumeFPS(25) if necessary.

    Originally Posted by Master Tape View Post
    Whilst i want the video to run 50p smooth (after combining 25i to emulate the smooth playback of how it was shown on tv) TFM declares 50fps, but it looks more like 100fps
    Adventure Time is shot at 24 fps. You're never going to get smooth 50 fps out of it.

    Originally Posted by Master Tape View Post
    And think that might need a bit of tweaking, as the CN logo looks a bit ripply.



    The CN logo was overlaid after the video was upscaled (ie, it's true 1080i content, not upscaled SD like the cartoon). You have to decide for your self whether the logo is more important than the cartoon content.

    Get a native NTSC HD source to start with. I recorded this off cable TV several years ago...
    Yeah i'm not wanting to turn 24fps sources into smooth 50fps. There's numerous sources in the 44 minute long video, mostly live action, just to test things out. Using QTGMC corrects things to smooth 50fps, PAL video should run how it should, and film sources and flash animation like that maintain their look. I'll use TFM sparingly when needed, on progressive sources that give me grief.


    Originally Posted by poisondeathray View Post
    Originally Posted by Master Tape View Post

    Now i'll need to find a way to trim, cut out and rejoin the fixed segment to the precise frame, without having to re-encode the whole thing.
    Why don't you just do it all the script ?

    You can use trim() and aligned splice to join . That way you can process different segments with different filters if needed
    This probably isn't right as i keep getting script errors trying to get the video to show up in the preview box, but this is the script i'm trying for example sake.

    I should also point out "filter1, filter 2, ect" are highlighted in red which i'm sure is not supposed to happen..

    Code:
    SetMTMode(5,6)
    v = AVISource("F:\Video Clip.avi")
    SetMTMode(2)
    vid1 = v.trim(0,1000).filter1(AssumeTFF().filter2(AssumeFPS(25).filter3(QTGMC(preset="slow", matchpreset="slow", matchpreset2="slow", sourcematch=3, Lossless=2, TR2=2, EdiThreads=2, border=true))
    vid2 = v.trim(1001,1100).filter1(AssumeTFF().filter2(AssumeFPS(25).filter3(TFM(pp=0))
    vid3 = v.trim(1101,3000).filter1(AssumeTFF().filter2(AssumeFPS(25).filter3(QTGMC(preset="slow", matchpreset="slow", matchpreset2="slow", sourcematch=3, Lossless=2, TR2=2, EdiThreads=2, border=true))
    vid1 ++ vid2 ++ vid3
    Quote Quote  
  12. erase the words "filter1" , "filter2", "filter3" etc...


    But you cannot join 25fps sections to 50fps sections; they have to have the same characteristics including framerate

    You'd have to double up (duplicate frames) the 25p sections to 50p , eg. using ChangeFPS(50)

    or make it timecode VFR (temporarily assume the same frame rate for the script, then use timecodes to control the playback). 25p sections play at 25p (no duplicates)


    Code:
    SetMTMode(5,6)
    v = AVISource("F:\Video Clip.avi")
    SetMTMode(2)
    vid1 = v.trim(0,1000).AssumeTFF().AssumeFPS(25).QTGMC(preset="slow", matchpreset="slow", matchpreset2="slow", sourcematch=3, Lossless=2, TR2=2, EdiThreads=2, border=true)
    vid2 = v.trim(1001,1100).AssumeTFF().AssumeFPS(25).TFM(pp=0).ChangeFPS(50)
    vid3 = v.trim(1101,3000).AssumeTFF().AssumeFPS(25).QTGMC(preset="slow", matchpreset="slow", matchpreset2="slow", sourcematch=3, Lossless=2, TR2=2, EdiThreads=2, border=true)
    vid1 ++ vid2 ++ vid3
    Quote Quote  
  13. Originally Posted by Master Tape View Post
    I'll use TFM sparingly when needed, on progressive sources that give me grief.
    TFM is primarily a field matcher. It's used to restore progressive frames from telecined video. It has a post processor (the pp options) that looks for residual combing (usually orphaned fields) and applies a simple deinterlacing method (or you can supply your own deinterlaced frames to use instead). You would not want to use it on true interlaced video.

    Originally Posted by poisondeathray View Post
    Code:
    SetMTMode(5,6)
    v = AVISource("F:\Video Clip.avi")
    SetMTMode(2)
    vid1 = v.trim(0,1000).AssumeTFF().AssumeFPS(25).QTGMC(preset="slow", matchpreset="slow", matchpreset2="slow", sourcematch=3, Lossless=2, TR2=2, EdiThreads=2, border=true)
    vid2 = v.trim(1001,1100).AssumeTFF().AssumeFPS(25).TFM(pp=0).ChangeFPS(50)
    vid3 = v.trim(1101,3000).AssumeTFF().AssumeFPS(25).QTGMC(preset="slow", matchpreset="slow", matchpreset2="slow", sourcematch=3, Lossless=2, TR2=2, EdiThreads=2, border=true)
    vid1 ++ vid2 ++ vid3
    If you have many transitions an easier way to do this is to use ReplaceFramesSimple():

    Code:
    SetMTMode(5,6)
    v = AVISource("F:\Video Clip.avi")
    SetMTMode(2)
    
    vid1 = AssumeTFF().AssumeFPS(25).QTGMC(preset="slow", matchpreset="slow", matchpreset2="slow", sourcematch=3, Lossless=2, TR2=2, EdiThreads=2, border=true)
    vid2 = AssumeTFF().AssumeFPS(25).TFM(pp=0).ChangeFPS(50)
    vid3 = SomeOtherFilterSequence()
    
    vid1
    ReplaceFramesSimple(last, vid2, Mappings="[1001 1100] [3001 4000] [6001 7000]")
    ReplaceFramesSimple(last, vid3, Mappings="[4001 5000])
    In this example I use vid1 as the base clip. The first ReplaceFramesSimple() replaces frames 1001-1100, 3001-4000 and 6001-7000 with frames taken from vid2. Then frames 4001-5000 with frames taken from vid3. You can use any number of ranges within one call, as many calls as necessary, and as many different clips (different filter squences) as necessary. As with the earlier Trim() method AviSynth is smart about which filters are applied to which sections.
    Quote Quote  
  14. Member
    Join Date
    Aug 2013
    Location
    Scotland
    Search PM
    Excellent, thanks!

    Now i'm just wondering if AviSynth is running QTGMC twice now? as the encoder is going very slow..
    Quote Quote  
  15. Originally Posted by Master Tape View Post

    Now i'm just wondering if AviSynth is running QTGMC twice now? as the encoder is going very slow..
    No, it's only run on those frames that request it

    You should get faster results with x64, avisynth+mt
    Quote Quote  
  16. Member
    Join Date
    Aug 2013
    Location
    Scotland
    Search PM
    Originally Posted by poisondeathray View Post
    Originally Posted by Master Tape View Post

    Now i'm just wondering if AviSynth is running QTGMC twice now? as the encoder is going very slow..
    No, it's only run on those frames that request it

    You should get faster results with x64, avisynth+mt
    Ok have installed Avisynth+ and copied all the plugins from the Plugin Directory folder from the normal Avisynth into Plugins64+ folder. How do i get AvsPmod to run Avisynth+?
    Quote Quote  
  17. For avisynth+mt x64 - it should just work in avspmod x64 .

    But you'd have to update all the plugins and scripts . Warning: It's not a "quicky" 1 minute thing to do. There a bunch of gathering and updating specific versions of dependencies .
    Quote Quote  
  18. Member
    Join Date
    Aug 2013
    Location
    Scotland
    Search PM
    Well as usual, nothing goes smoothly.. lol. Installed Avisynth+ tried to install AvsPmod x64, but kept getting an error when trying to launch the .exe file. Uninstalled Avisynth 2.5 aswell as Avisynth+, deleted their folders in the Program Files, reinstalled Avisynth+ but now see no sign of it in the Program Files.
    Quote Quote  
  19. Originally Posted by Master Tape View Post
    Well as usual, nothing goes smoothly.. lol. Installed Avisynth+ tried to install AvsPmod x64, but kept getting an error when trying to launch the .exe file. Uninstalled Avisynth 2.5 aswell as Avisynth+, deleted their folders in the Program Files, reinstalled Avisynth+ but now see no sign of it in the Program Files.
    Post the error messages - often they contain clues to what the problem is

    You can also double check in vdub2 x64 as a secondary "preview" or to help debug in case there is an issue specific to avspmod, not avisynth+ (or classic)

    Are you using these for avspmod ? There is nothing to "install"; it's a "portable" format
    https://github.com/gispos/AvsPmod/releases

    There is a newer installer for avisynth 3.4.0, is that the one you are using ?

    You can actually just replace the .dll over old installations manually; This method assumes that all registration entries already exist

    or there are tools to swap avisynth versions more easily
    https://forum.doom9.org/showthread.php?t=172124
    Quote Quote  
  20. Member
    Join Date
    Aug 2013
    Location
    Scotland
    Search PM
    Installed avisynth 3.4 and AvsPmod has opened successfully. I'm absolutely stumped at this error though.

    Image Attached Thumbnails Click image for larger version

Name:	Error.png
Views:	1099
Size:	13.2 KB
ID:	51513  

    Quote Quote  
  21. I think you need a newer smdegrain.avsi version
    v3.1.2.101s or newer

    https://forum.doom9.org/showpost.php?p=1790702&postcount=3
    Last edited by poisondeathray; 17th Jan 2020 at 15:25.
    Quote Quote  
  22. Member
    Join Date
    Aug 2013
    Location
    Scotland
    Search PM
    Ah, i had v3.1.2.93s installed.

    Now there's this error. Masktools2 (v2.2.18) is in the plugin folder, but the error remains.

    Quote Quote  
  23. Originally Posted by Master Tape View Post

    Now there's this error. Masktools2 (v2.2.18) is in the plugin folder, but the error remains.

    Did you mean masktools2.dll ? or in a subfolder ?

    That has to be at the level of the plugins folder

    Or you can use in the script
    LoadPlugin("PATH\masktools2.dll")
    Quote Quote  
  24. Member
    Join Date
    Aug 2013
    Location
    Scotland
    Search PM
    Originally Posted by poisondeathray View Post
    Originally Posted by Master Tape View Post

    Now there's this error. Masktools2 (v2.2.18) is in the plugin folder, but the error remains.

    Did you mean masktools2.dll ? or in a subfolder ?

    That has to be at the level of the plugins folder

    Or you can use in the script
    LoadPlugin("PATH\masktools2.dll")
    Yes the .dll. I think it was due to not having the correct version of AvsPmod running.

    Tracking down all the correct plugins was quite the task, but low and behold i now have a preview window! Thought i'd never see it again

    I can now preview QTGMC at a reasonable speed and not just a series of still frames!

    And saw a significant boost to my render speed! Getting 10 frames a second or there abouts.

    Only problem now is at the point TFM has been applied, i lose the sound and it remains mute for the rest of the video.

    Code:
    SetFilterMTMode("DEFAULT_MT_MODE", 2)
    SetFilterMTMode("QTGMC", 2)
    v = AVISource("F:\Video Clip.avi")
    vid1 = v.trim(0,119200).AssumeTFF().AssumeFPS(25).QTGMC(preset="Slow", matchpreset="Slow", matchpreset2="Slow", sourcematch=3, Lossless=2, TR2=2, EdiThreads=2, border=true)
    vid2 = v.trim(119201,120637).AssumeTFF().AssumeFPS(25).TFM(pp=0).ChangeFPS(50)
    vid3 = v.trim(120638,132580).AssumeTFF().AssumeFPS(25).QTGMC(preset="Slow", matchpreset="Slow", matchpreset2="Slow", sourcematch=3, Lossless=2, TR2=2, EdiThreads=2, border=true)
    vid1 ++ vid2 ++ vid3
    Trim(0,132580)
    Prefetch(5)
    Quote Quote  
  25. Originally Posted by Master Tape View Post
    Originally Posted by poisondeathray View Post
    Originally Posted by Master Tape View Post

    Now there's this error. Masktools2 (v2.2.18) is in the plugin folder, but the error remains.

    Did you mean masktools2.dll ? or in a subfolder ?

    That has to be at the level of the plugins folder

    Or you can use in the script
    LoadPlugin("PATH\masktools2.dll")
    Yes the .dll. I think it was due to not having the correct version of AvsPmod running.

    Tracking down all the correct plugins was quite the task, but low and behold i now have a preview window! Thought i'd never see it again

    I can now preview QTGMC at a reasonable speed and not just a series of still frames!

    And saw a significant boost to my render speed! Getting 10 frames a second or there abouts.

    Only problem now is at the point TFM has been applied, i lose the sound and it remains mute for the rest of the video.

    Code:
    SetFilterMTMode("DEFAULT_MT_MODE", 2)
    SetFilterMTMode("QTGMC", 2)
    v = AVISource("F:\Video Clip.avi")
    vid1 = v.trim(0,119200).AssumeTFF().AssumeFPS(25).QTGMC(preset="Slow", matchpreset="Slow", matchpreset2="Slow", sourcematch=3, Lossless=2, TR2=2, EdiThreads=2, border=true)
    vid2 = v.trim(119201,120637).AssumeTFF().AssumeFPS(25).TFM(pp=0).ChangeFPS(50)
    vid3 = v.trim(120638,132580).AssumeTFF().AssumeFPS(25).QTGMC(preset="Slow", matchpreset="Slow", matchpreset2="Slow", sourcematch=3, Lossless=2, TR2=2, EdiThreads=2, border=true)
    vid1 ++ vid2 ++ vid3
    Trim(0,132580)
    Prefetch(5)


    What was the encoding fps before ?



    Are you sure those trim frame reference numbers are correct? The first 3 refer to the original "v" frame numbres

    After QTGMC, or ChangeFPS from 25 to 50, the frame numbers will be doubled

    You have that Trim(0,132580) near the end, so you should not even see (or hear) vid2 or vid3.

    Since that comes after the line vid1 ++ vid2 ++ vid3, it actually refers to the new frame numbers @ 50fps . It really means Trim(last, 0,132580) , where "last" is vid1 ++ vid2 ++ vid3 . That new framecount should be 265162
    Quote Quote  
  26. ie. Try deleting that last Trim(0,132580) line

    One way to check for sync, realtime, preview etc.. is to modify the script temporarily. Change any slow filters to similar fast ones. e.g. QTGMC, replace with yadif(1,1) . Play the .avs in mpchc x64. The purpose there is only checking for sync, AV timing - not necessarily visual "quality" . In case hardware is not fast enough to playback QTGMC "slow" in realtime
    Quote Quote  
  27. Remember you can return the state of processing or any stream at some intermediate point in the script to check the filtering:

    Code:
    SetFilterMTMode("DEFAULT_MT_MODE", 2)
    SetFilterMTMode("QTGMC", 2)
    v = AVISource("F:\Video Clip.avi")
    vid1 = v.trim(0,119200).AssumeTFF().AssumeFPS(25).QTGMC(preset="Slow", matchpreset="Slow", matchpreset2="Slow", sourcematch=3, Lossless=2, TR2=2, EdiThreads=2, border=true)
    vid2 = v.trim(119201,120637).AssumeTFF().AssumeFPS(25).TFM(pp=0).ChangeFPS(50)
    vid3 = v.trim(120638,132580).AssumeTFF().AssumeFPS(25).QTGMC(preset="Slow", matchpreset="Slow", matchpreset2="Slow", sourcematch=3, Lossless=2, TR2=2, EdiThreads=2, border=true)
    vid1 ++ vid2 ++ vid3
    return(vid1) # or vid2, vid3, or last (the output of vid1++vid2++vid3)
    Trim(0,132580)
    Prefetch(5)
    Quote Quote  
  28. Member
    Join Date
    Aug 2013
    Location
    Scotland
    Search PM
    Originally Posted by poisondeathray View Post
    What was the encoding fps before ?
    It was very slow like 1fps, but was faster before i added TFM between QTGMC.

    Originally Posted by poisondeathray View Post
    Are you sure those trim frame reference numbers are correct? The first 3 refer to the original "v" frame numbres

    After QTGMC, or ChangeFPS from 25 to 50, the frame numbers will be doubled

    You have that Trim(0,132580) near the end, so you should not even see (or hear) vid2 or vid3.

    Since that comes after the line vid1 ++ vid2 ++ vid3, it actually refers to the new frame numbers @ 50fps . It really means Trim(last, 0,132580) , where "last" is vid1 ++ vid2 ++ vid3 . That new framecount should be 265162
    The reason i added the last Trim(0,132580) is because my video didn't end where i wanted it to, which was declared in the vid3 line. It rendered the rest of the footage i didn't want aswell extending the last frame of the video for another 44 minutes, basically doubling the length of the video. I still had the sound problem before i added the last Trim. And you are indeed correct, the frame count goes to 265162 without the trim on the end. But it's just displaying the last frame for the second half of frames beyond frame 133303, where the video ends.

    Originally Posted by poisondeathray View Post
    ie. Try deleting that last Trim(0,132580) line

    One way to check for sync, realtime, preview etc.. is to modify the script temporarily. Change any slow filters to similar fast ones. e.g. QTGMC, replace with yadif(1,1) . Play the .avs in mpchc x64. The purpose there is only checking for sync, AV timing - not necessarily visual "quality" . In case hardware is not fast enough to playback QTGMC "slow" in realtime
    After applying yadifmod2(1,1) in place of QTGMC i'm now getting a "Splice: Video frame rate doesn't match" error in the "vid1 ++ vid2 ++ vid3" line.
    Quote Quote  
  29. How many frames in v?
    Last edited by jagabo; 18th Jan 2020 at 23:27.
    Quote Quote  
  30. for yadifmod2 you need to specify the actual arguments - it would be yadifmod2(order=1, mode=1) because the arguments are in different position (yadif is mode, order; but yadifmod2 is order, field, mode) . So yadifmod2(1,1) is actually order=1,field=1,mode=0 , which is single rate

    Check each of vid1, vid2 and vid3 individually, and separately as jagabo suggested. I think you're mixing up frame numbers

    What is the fps and framecount of "Video clip.avi" as read by AVISource ?

    AVISource("F:\Video Clip.avi")
    info()
    Quote Quote  



Similar Threads