[FFmpeg-soc] libavfilter: fps ignored in ffmpeg command line

Vitor Sessak vitor1001 at gmail.com
Mon Dec 31 12:03:08 CET 2007


Hi

Víctor Paesa wrote:
> Hi,
> 
> On Dec 31, 2007 9:04 AM, Vitor Sessak <vitor1001 at gmail.com> wrote:
>> Víctor Paesa wrote:
>>> Hi,
>>>
>>> The filter fps seems ignored in the ffmpeg command line.

[...]

>>> The input and output AVI have the same 25 fps.
>> I'm not really sure if the filter is supposed to change this. The filter
>> infrastructure is designed to get pictures+timestamps as input and give
>> pictures+timestamps as output. I'd say setting the output framerate is
>> beyond filtering. For example,
>>
>> ffmpeg -i input.avi -vfilters fps=1 -r 25 -y output.avi
>>
>> should give a 25 fps output but with a different frame every 1 second.
>> But indeed I get a crash with your command line and vf_fps.c do not
>> seems to handle a rate greater than the input rate. I'll have a look
>> into it...
> 
> I feel the libavfilter framework should support frame rate change as that
> is listed as part of the wishes/ideas for libavfilter in:
> http://wiki.multimedia.cx/index.php?title=FFmpeg_Summer_Of_Code_2007

Actually the filter framework does support frame rate change.
If you do

ffmpeg -i input.avi -vfilters fps=1 output.avi

where input.avi has a rate of 25 fps, you'll have

Input -> 25 fps
Filtered input -> 1 fps
Output -> 25 fps

The only problem is that the output rate (set in ffmpeg.c) is equal by 
default to the unfiltered input rate. The filter does its job, but I 
agree it would be more reasonable to set the default output rate to the 
filtered input rate. That would unfortunately have a small problem: 
imagine for example overlaying a 20 fps and a 30 fps movie together. The 
filter output will not have a fixed frame rate, so creating and setting 
a frame_rate field in the AVFilterLink structure will not make a lot of 
sense. A second problem would be to allow broken filters to set 
frame_rate to a value not coherent with the interval between timestamps.

Bobby, Michael, what is your opinion?

-Vitor



More information about the FFmpeg-soc mailing list