Variable framerate/fps input video encoding questions

jles jlesquer at
Fri Jul 19 12:05:05 UTC 2019

Hi thanks again for you suggestions and info,

I did a test recording two files, one at 15fps (plays normal speed) and
other at 30fps (plays faster) and I printed the generate file timestamps

ffprobe output.ts -hide_banner -show_entries
frame=frame_no,best_effort_timestamp_time -of json

For an appsrc frame rate of ~15fps (the one which plays at "normal speed")

            "best_effort_timestamp_time": "3617.935644"
            "best_effort_timestamp_time": "3618.010522"
            "best_effort_timestamp_time": "3618.076589"


If I count the number of frames for each time stamp second there're 15 which
matches the appsrc 'forced' frame rate, for instance calculating time
between "3618.010522" and "3618.076589" there's ~15fps, but weirdly there's
approximately a second between the frame time groups "3617.935644" and
"3618.010522" ... 
any idea what is going on? is there any time of latency or delay I have to

Now for frame rates > than 15 for instance I tried 30fps (which the
resulting file plays faster) I've got similar results as with 15fps but with
a significant difference:


            "best_effort_timestamp_time": "3607.971956"
            "best_effort_timestamp_time": "3608.026967"
            "best_effort_timestamp_time": "3608.054644"


Here the problem of the second between group of frames is ~ the same (as
with the 15fps example) but if we calculate frame rate, it's now ~36fps
instead 30fps, the number of frames for instance in the "3607.xxxx" time
group are 30.

So we've got groups of 30 frames with a time stamp of ~36fps, which I think
explains why the resulting video plays faster....

Any idea why this happening? is it related to the mentioned jittery issue?
it looks quite important difference (30 <-> 36) to be jitter? what could be
in a simple application like this be causing this?

Just as additional info, in my application I'm only running appsrc callback
for "feed/need data", should I also mange/add the "enough data"? could it be
this the reason? 



Sent from:

More information about the gstreamer-devel mailing list