[FFmpeg-devel] [PATCH v2 1/3] ffmpeg_opt: pass output framerate as a hint to the encoder

Tobias Rapp t.rapp at noa-archive.com
Mon Feb 20 17:05:00 EET 2017


On 20.02.2017 15:09, Mark Thompson wrote:
> On 06/02/17 12:33, Tobias Rapp wrote:
>> Sets framerate field in output codec context if explicitly specified on
>> the command-line.
>>
>> Signed-off-by: Tobias Rapp <t.rapp at noa-archive.com>
>> ---
>>  ffmpeg_opt.c | 2 ++
>>  1 file changed, 2 insertions(+)
>>
>> diff --git a/ffmpeg_opt.c b/ffmpeg_opt.c
>> index 6a47d32..3b532da 100644
>> --- a/ffmpeg_opt.c
>> +++ b/ffmpeg_opt.c
>> @@ -1535,6 +1535,8 @@ static OutputStream *new_video_stream(OptionsContext *o, AVFormatContext *oc, in
>>          av_log(NULL, AV_LOG_FATAL, "Invalid framerate value: %s\n", frame_rate);
>>          exit_program(1);
>>      }
>> +    if (frame_rate && ost->frame_rate.num && ost->frame_rate.den)
>> +        video_enc->framerate = ost->frame_rate;
>>      if (frame_rate && video_sync_method == VSYNC_PASSTHROUGH)
>>          av_log(NULL, AV_LOG_ERROR, "Using -vsync 0 and -r can produce invalid output files\n");
>>
>>
>
> Is there a reason not to always set this, rather than only when it is specified explicitly on the command line as you have?
>
> (Like <https://git.libav.org/?p=libav.git;a=commit;h=d10102d23c9467d4eb84f58e0cd12be284b982f6>, though that is after the current merge point and I don't know if it interacts with anything else.)

I just tried to be extra cautious. Merging Libav commit 
d10102d23c9467d4eb84f58e0cd12be284b982f6 would provide a more general 
solution and might be preferred.

Regards,
Tobias



More information about the ffmpeg-devel mailing list