#3329: fps filter bug
------------------------------------+------------------------------------
             Reporter:  Krieger     |                    Owner:
                 Type:  defect      |                   Status:  open
             Priority:  normal      |                Component:  avfilter
              Version:  git-master  |               Resolution:
             Keywords:  fps         |               Blocked By:
             Blocking:              |  Reproduced by developer:  1
Analyzed by developer:  1           |
------------------------------------+------------------------------------
Changes (by Cigaes):

 * analyzed:  0 => 1


Comment:

 The timestamp logic in {{{vf_fps}}} is wrong. The major culprit is this
 hunk:

 {{{
     /* number of output frames */
     delta = av_rescale_q_rnd(buf->pts - s->pts, inlink->time_base,
                              outlink->time_base, s->rounding);
 }}}

 As you can see, it means: number of frames to output = (time of next
 frame) - (time of current frame) rescaled to output frame rate. In this
 particular case (2 FPS -> 25 FPS, it is 12.5, rounded to 13. Rounded to 13
 every time. That means a 0.5/25 error for every input frame.

 The in this case fix would be to convert all timestamps to the output time
 base immediately, but it must be tested also when decreasing the frame
 rate and other corner cases.

 As a temporary workaround, I suggest: {{{-vf fps=50,framestep=2}}}: 2→50
 is exact, and framestep is easy.

--
Ticket URL: <https://trac.ffmpeg.org/ticket/3329#comment:2>
FFmpeg <http://ffmpeg.org>
FFmpeg issue tracker
_______________________________________________
FFmpeg-trac mailing list
[email protected]
http://avcodec.org/mailman/listinfo/ffmpeg-trac

Reply via email to