VideoHelp Forum
+ Reply to Thread
Results 1 to 3 of 3
Thread
  1. Hi. If I ever want to slow down (or speed up) a bit of video, I'll add this function to my script:
    Code:
    function SmoothFPS2(clip source, int num, int den) {
    super = MSuper(source, pel=2, hpad=0, vpad=0, rfilter=4)
    backward_1 = MAnalyse(super, chroma=false, isb=true, blksize=16, searchparam=3, plevel=0, search=3, badrange=(-24))
    forward_1 = MAnalyse(super, chroma=false, isb=false, blksize=16, searchparam=3, plevel=0, search=3, badrange=(-24))
    backward_2 = MRecalculate(super, chroma=false, backward_1, blksize=8, searchparam=1, search=3)
    forward_2 = MRecalculate(super, chroma=false, forward_1, blksize=8, searchparam=1, search=3)
    backward_3 = MRecalculate(super, chroma=false, backward_2, blksize=4, searchparam=0, search=3)
    forward_3 = MRecalculate(super, chroma=false, forward_2, blksize=4, searchparam=0, search=3)
    MBlockFps(source, super, backward_3, forward_3, num, den, mode=0)
    }
    and use this command to get, in this case, one-third speed:
    Code:
    SmoothFPS2(int(framerate*3), 1).AssumeFPS(framerate).Amplify(0)
    99% of the time this works but then a video comes along where the command results in 'Error' (on my MeGUI). So I did some searching of this forum and found this command (which I adapted for a 25fps vid):
    Code:
    trim(10000,20000).AssumeFPS(16666, 1000).ChangeFPS(25000, 1000)
    Worked fine and the result looks OK. What I'm wondering is, do the two commands give exactly the same output or is there a chance that the second command may be inferior to my normal command (jerkier, perhaps)?

    Thank you.
    Quote Quote  
  2. Originally Posted by pooksahib View Post
    Hi. If I ever want to slow down (or speed up) a bit of video, I'll add this function to my script:
    Code:
    function SmoothFPS2(clip source, int num, int den) {
    super = MSuper(source, pel=2, hpad=0, vpad=0, rfilter=4)
    backward_1 = MAnalyse(super, chroma=false, isb=true, blksize=16, searchparam=3, plevel=0, search=3, badrange=(-24))
    forward_1 = MAnalyse(super, chroma=false, isb=false, blksize=16, searchparam=3, plevel=0, search=3, badrange=(-24))
    backward_2 = MRecalculate(super, chroma=false, backward_1, blksize=8, searchparam=1, search=3)
    forward_2 = MRecalculate(super, chroma=false, forward_1, blksize=8, searchparam=1, search=3)
    backward_3 = MRecalculate(super, chroma=false, backward_2, blksize=4, searchparam=0, search=3)
    forward_3 = MRecalculate(super, chroma=false, forward_2, blksize=4, searchparam=0, search=3)
    MBlockFps(source, super, backward_3, forward_3, num, den, mode=0)
    }
    and use this command to get, in this case, one-third speed:
    Code:
    SmoothFPS2(int(framerate*3), 1).AssumeFPS(framerate).Amplify(0)
    99% of the time this works but then a video comes along where the command results in 'Error' (on my MeGUI). So I did some searching of this forum and found this command (which I adapted for a 25fps vid):
    Code:
    trim(10000,20000).AssumeFPS(16666, 1000).ChangeFPS(25000, 1000)
    Worked fine and the result looks OK. What I'm wondering is, do the two commands give exactly the same output or is there a chance that the second command may be inferior to my normal command (jerkier, perhaps)?

    Look at the log file for details on the error message

    The 2nd is going to be very different. The 2nd is going to be less smooth in terms of motion characteristics, because changefps will insert duplicates instead of synthesizing "inbetween" frames. Also, it's not a 3x slow motion, assuming you're starting with 25fps. The magnitude is different than the Smoothfps case; it's only about 1.5x slow motion (25/16.666 =~ 1.5) . To get the same degree (3x slowdown), you'd need AssumeFPS(8333, 1000).ChangeFPS(25,1)

    Smoothfps synthesizes "inbetween frames", the motion will be smoother, but will be predisposed to more artifacts
    Quote Quote  
  3. Thanks, poisondeathray, and well spotted on the magnitude - I changed my mind and went for two-thirds but didn't amend my original code. I'm no expert in reading those MeGUI logs but the penultimate line reads "---[Error] [21/02/2023 19:43:02] Number of encoded frames does not match the source: 2067/3056".

    My command was:
    Code:
    trim(77372,79409).SmoothFPS2(int(framerate*3), 2).AssumeFPS(framerate)
    Quote Quote  



Similar Threads

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