Hello,
I have a few AVI videos that are originally 29,976 fps (sitcom, shot on tape) but they were ripped at 23,976 fps. The result is a jerky playback. Will changing the framerate back to 29,976 fix the problem?
If so, could someone tell me how to do it? I tried with Virtualdub, and changing the framerate only speeds up the video. I think I need to apply a 3:2 pulldown or something, but I don't know much about that. I would really appreciate the help.
Thank you.
+ Reply to Thread
Results 1 to 4 of 4
-
-
No. One frame out of every 5 is missing. Duplicating one of the remaining frames is not the same as restoring that missing frame.
You can manually replace frames with a motion interpolated frame using ReplaceFramesMC() in AviSynth:
https://forum.videohelp.com/threads/352741-Frame-interpolation?p=2226119&viewfull=1#post2226119
That works with some simple motions but generates artifacts with complex motions. Automating that will be difficult if there are any cadence changes. -
Yes, if there are cadence changes. But, ordinarily, any idiot stupid enough to blindly decimate 29.97fps to 23.976fps will use some filter that does it every five frames. No cadence changes. One can't know for sure, of course, without checking first.
And if the dropped frames are consistent throughout, then it can be automated, sort of. I'd do it this way:
First, replace missing frames with dupes of the frame previous to the drops. That can be done fairly easily by figuring out the correct syntax for a SelectEvery call. One possible answer might be:
SelectEvery(4,0,1,2,2,3)
Different frames in the cycle might have to be duplicated.
Once the dupes are in place, then the FillDrops function will seek out each second frame in a duped pair and replace it with an interpolated frame:
function filldrops (clip c)
{
vf=c.mvanalyse(truemotion=true,pel=2,isb=false,del ta=1,idx=1)
vb=c.mvanalyse(truemotion=true,pel=2,isb=true,delt a=1,idx=1)
global filldrops_d = c.mvflowinter(vb,vf,time=50,idx=1)
global filldrops_c = c
c.scriptclip("""ydifferencefromprevious()==0? filldrops_d : filldrops_c""")
}
This code finds all duplicated frames and replaces the second instance of two duplicate frames with a motion-estimated frame.
It was originally Mug Funky's script.
Similar Threads
-
NTSC interlaced dvd (29,976 fps) to progressive (23,976 fps) ?
By kalemvar1 in forum Video ConversionReplies: 2Last Post: 6th Aug 2015, 19:25 -
frame rate reduction of 29.970 fps to 23.976 fps in megui
By yohanfed in forum Video ConversionReplies: 2Last Post: 28th Jun 2014, 19:15 -
Audio track from 25fps video with a 23.976 fps video
By cedworld in forum AudioReplies: 12Last Post: 22nd Apr 2014, 09:31 -
Convert 29.970 fps to 23.976 fps
By ILoveEDM in forum Newbie / General discussionsReplies: 7Last Post: 10th Nov 2013, 17:20 -
23.976 vs 23.972 vs 24 FPS
By Kelinya in forum Software PlayingReplies: 8Last Post: 28th May 2013, 12:03