I've been converting some video from 23.976 to 24 for cinema presentation (DCP) using avisynth and ffmpeg (video to tiff, then tiff to j2k in opendcp). I been using the -r 24 parameter in ffmpeg which works fine but because there are not that many frames being added the duplicate frames are very obvious and result in a slight jerk.
I've tried ConvertFPS in avisynth and its blends every frame to achieve 24 fps which doesn't preserve the quality. I was wondering if there is a way to make only the added frames blend just to get rid of the jerking.
+ Reply to Thread
Results 1 to 17 of 17
-
-
Why don't you just speed it up?. The audio difference is imperceptible. No interpolation, same number of frames, so no artifact, no blurry frames, no added bumps in motion
AssumeFPS(24, true) -
Digital cinema plays frames inside a package not really a video file so because I need to extract the frames it has to duplicate them.
-
I don't understand what you are getting at
So extract the frames then. ffmpeg can accept avs scripts
Are you using something like this procedure?
http://bitfilms.blogspot.ca/2010/11/making-dcp-entirely-with-open-source.html
just change the command line to -i input.avs -
-
So what is the problem then ?
There is no jerk or blurry frames with the assumefps conversion, everything is sped up (so you have to speedup the audio as well, that's what the "true" is for; or you can do in an audio editor like audacity or sox). Every frame is a "real" frame from the original. There is no interpolation. The frame rate is converted by avisynth to 24.0 , not ffmpeg . -
Like pdr, I don't yet understand the need for this and would go with an AssumeFPS, if changing the framerate were really needed.
However, BlendFPS, part of the Motion.dll, can do it - minimize the blending while adding the necessary frames.
http://avisynth.org/warpenterprises/
From the included doc:
BlendFPS(clip, float FPS[, float aperture = 1]) Converts the frame rate to FPS using blend-conversion. Intended as a YV12 alternative to ConvertFPS. Unlike the other functions in this filter, it also supports other colourspaces. FPS may take any value, but blend-conversion is not recommended for changing the frame rate by a large factor. Increasing aperture will blend more frames; decreasing it will blend fewer.
BlendFPS(24,Aperture=0.2)
Lower the aperture figure if there are still too many frames being blended. Me, I don't feel like testing when only one frame in 1000 or so is being added. -
I will try test this but I don't think it will work because I am extracting frames and assumefps will have to add frames to make the frame count 24 per second. The cinema projectors play a sequence of frames at 24 fps regardless of what the source frame rate is so it has to have 24 fps or it will lose sync. I have never had to speed up the audio even when converting to 24 with my previous method.
-
It will work. The frame count will be 24.0 frames per second.
The assumefps style conversion is just reversing what is normally done to film/celluloid or digital film equivalents in studios. 24.0fps film is interpreted in editors as 23.976 for NTSC distribution (except blu-ray, which can be 24.0) . Both audio & video is slowed down from 24.0 to 23.976. Interpreting the fps in a NLE is the same thing as assumefps. It's slowed down the same fraction (* 1000/1001) . Think of it as doing the opposite by speeding up (* 1001/1000)
The other methods you used early didn't change the duration, that's why you get 1 blurry (blend) or non blurry frame (duplicate) every 1000 frames. You're adding 1 frame per 1000, but changing the framerate to 24 to compensate. The running time is the same - that's why you never had to change the audio
With the method I'm suggesting - No frames are added, no frames are resampled (thus nothing is blurry and no artifacts), just audio & video is sped by that fraction , thus the running time is also changed by that same fraction
You don't have to use avisynth for this if you don't feel comfortable. If you use a NLE like premiere pro, it will do the same thing. Just intepret the footage as 24.0Last edited by poisondeathray; 8th Sep 2012 at 16:36.
-
That's right, you didn't. Because the length remains the same after ChangeFPS. But you also noticed the slight jerk every 40 seconds or so.
...assumefps will have to add frames to make the frame count 24 per second.
I also have no idea what you mean by 'cinema projectors' or 'DCP' which seem to need 24fps. Can you elaborate, please? Are you playing a DVD? Are you converting it to something else?
Edit: pdr responded sooner. -
@manono - DCP is digital cinema package
http://en.wikipedia.org/wiki/Digital_Cinema_Package -
Thanks. Apparently it does support 23.976fps MPEG-2 video for 1920x1080 resolution. So, the plan here is to convert it to some other digital format playable through some sort of digital projector for an audience? Like you, I also think AssumeFPS is the way to go.
But if he doesn't want to have to convert the audio, I think BlendFPS is a pretty decent compromise and way better than ChangeFPS. I've used it on silent films before to bring up the framerate and it works well. The Flicker Alley people that do very fine restorations and releases of silent films use a very similar method to bring a 20fps or above source up to 23.976 for encoding and pulldown. -
Guest34343Guest
Since they do pulldown anyway, why not use DGPulldown to go directly from 20-->29.97?
-
Yup, pdr and manono have covered all your basic avisynth options. Another method could be to write a script that uses DePan-DePanEstimate. Personally, I haven't used DePan for this for this functionality, but I know of it from reading the documentation.
"Creating series of intermediate frames for frequency (fps) changing... DePan may be used as a tool for framerate converting and similar tasks (only global motion)."
...and what's up with the complicated 10 step dance, are you running a pirate theater or something? -
Because they don't know about it, maybe? Or, if they do, are afraid of some few non-compliant DVD players not playing such DVDs properly.
Actually, although I was a bit skeptical at first of what they were doing after I saw my first of the DVDs they tried it on (if you accept them not using DGPulldown), later I came to admire them for thinking 'outside-the-box' so-to-speak, and coming up with a method very different from anything tried before to encode low framerate silent films for NTSC DVD.
I have used this BlendFPS myself in the past to bring 18 or 19fps silent films to 19.98fps where I can then use DGPulldown. The encoder efficiency gained from doing such things (making a low framerate silent film all progressive for DVD) is tremendous, when compared to the commercial guys hard telecining (and repeating frames) to go from 18fps (or whatever base framerate) to 29.97fps.
I have a very nice Charlie Chaplin boxset to play around with and am thinking about trying what Evil_Burrito suggested - interpolating frames to go from 16->19.98fps before encoding and then applying DGPulldown. -
Guest34343Guest
Similar Threads
-
AVISYNTH: 23,976 (or 24p) --> 50i / what's a practical script?
By elmuz in forum Newbie / General discussionsReplies: 2Last Post: 22nd Feb 2011, 08:08 -
Is SD 720x480 AVC (h264) with 23.976 framerate compatible with Blu Ray?
By hinsdale1 in forum Authoring (Blu-ray)Replies: 17Last Post: 11th Dec 2009, 10:26 -
720p 59.94 to 480p 23.976 in TMPGEnc w/o Using AVISynth
By CubDukat in forum Video ConversionReplies: 6Last Post: 19th Oct 2009, 09:51 -
Framerate Conversion
By rackball in forum Video ConversionReplies: 10Last Post: 11th Aug 2008, 04:04 -
Changing the framerate during conversion
By 2nickelstripper in forum Video ConversionReplies: 2Last Post: 7th Dec 2007, 07:46