[FFmpeg-trac] #1788(FFmpeg:open): setting the output frame rate of image outputs

FFmpeg trac at avcodec.org
Thu Oct 25 19:25:27 CEST 2012


#1788: setting the output frame rate of image outputs
------------------------------------+----------------------------------
             Reporter:  burek       |                    Owner:
                 Type:  defect      |                   Status:  open
             Priority:  normal      |                Component:  FFmpeg
              Version:  git-master  |               Resolution:
             Keywords:              |               Blocked By:
             Blocking:              |  Reproduced by developer:  1
Analyzed by developer:  1           |
------------------------------------+----------------------------------
Changes (by Cigaes):

 * analyzed:  0 => 1
 * status:  new => open
 * version:  unspecified => git-master
 * component:  undetermined => FFmpeg
 * reproduced:  0 => 1


Comment:

 This is related to the rounding heuristics for the video sync
 implementation in {{{ffmpeg.c}}}:
 {{{
         // FIXME set to 0.5 after we fix some dts/pts bugs like in
 avidec.c
         if (delta < -1.1)
             nb_frames = 0;
 }}}

 In this code, {{{delta}}} is the difference between the current time on
 the stream and the time of the incoming frame. If no frame rate adjustment
 is necessary, it is always 1. Theoretically, the frame should be dropped
 as soon as it is less than 1, but as you can see, the current code gives
 it a little head start.

 Replacing -1.1 by 1 fixes your problem but breaks a lot of FATE tests. I
 do not know that part of the code enough to determine whether changing it
 would be correct.

 In the meantime, you can use the {{{fps}}} filter: {{{-vf fps=fps=1/5}}}
 (or possibly {{{-vf fps=fps=1/5:round=down}}} with a patch I just sent).

-- 
Ticket URL: <https://ffmpeg.org/trac/ffmpeg/ticket/1788#comment:1>
FFmpeg <http://ffmpeg.org>
FFmpeg issue tracker


More information about the FFmpeg-trac mailing list