VideoHelp Forum




+ Reply to Thread
Results 1 to 17 of 17
  1. Member
    Join Date
    Dec 2002
    Location
    United States
    Search Comp PM
    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.
    Quote Quote  
  2. 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)
    Quote Quote  
  3. Member
    Join Date
    Dec 2002
    Location
    United States
    Search Comp PM
    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.
    Quote Quote  
  4. Originally Posted by joesphroth View Post
    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
    Quote Quote  
  5. Member
    Join Date
    Dec 2002
    Location
    United States
    Search Comp PM
    I do use that method and I've had no problem doing the conversion I'm just trying to get prevent the occasional jerk when converting frame rate. Cinema playback requires 24 fps and I've been using the duplicate frame method (-r 24 in ffmpeg or ChangeFPS in avisynth) to achieve this.
    Quote Quote  
  6. Originally Posted by joesphroth View Post
    I do use that method and I've had no problem doing the conversion I'm just trying to get prevent the occasional jerk when converting frame rate. Cinema playback requires 24 fps and I've been using the duplicate frame method (-r 24 in ffmpeg or ChangeFPS in avisynth) to achieve this.
    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 .
    Quote Quote  
  7. 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.
    Usage would be something like:

    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.
    Quote Quote  
  8. Also, if you use assumefps to process the audio instead of an audio editor, you need to resample back to 48000Khz or whatever audio sampling rate you are using

    #WhateverSource()
    AssumeFPS(24, audio=true)
    SSRC(48000)
    Quote Quote  
  9. Member
    Join Date
    Dec 2002
    Location
    United States
    Search Comp PM
    Originally Posted by poisondeathray View Post
    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 .
    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.
    Quote Quote  
  10. Originally Posted by joesphroth View Post
    Originally Posted by poisondeathray View Post
    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 .
    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.0
    Last edited by poisondeathray; 8th Sep 2012 at 16:36.
    Quote Quote  
  11. Originally Posted by joesphroth View Post
    I have never had to speed up the audio even when converting to 24 with my previous method.
    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.
    No, the frame count remains the same. It's only speeded up very slightly. Same number of frames played very slightly faster.

    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.
    Quote Quote  
  12. @manono - DCP is digital cinema package
    http://en.wikipedia.org/wiki/Digital_Cinema_Package
    Quote Quote  
  13. 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.
    Quote Quote  
  14. Guest34343
    Guest
    Originally Posted by manono View Post
    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.
    Since they do pulldown anyway, why not use DGPulldown to go directly from 20-->29.97?
    Quote Quote  
  15. Member Evil_Burrito's Avatar
    Join Date
    Jun 2012
    Location
    United States
    Search Comp PM
    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)."
    But this method isn't nearly as simple and fast as previously mentioned methods.

    ...and what's up with the complicated 10 step dance, are you running a pirate theater or something?
    Quote Quote  
  16. Originally Posted by neuron2 View Post
    Since they do pulldown anyway, why not use DGPulldown to go directly from 20-->29.97?
    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.
    Quote Quote  
  17. Guest34343
    Guest
    Originally Posted by manono View Post
    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.
    Hmm, might make a cool challenge for people to produce the "best" result, if you'd like to upload a source sample. I'd be willing to have a go at it. Now be real, I know I'm not in your league when it comes to silents, but I think I can make a respectable showing.
    Quote Quote  



Similar Threads

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