When setting the output codec get the time_base (which indicates the
framerate) from the video stream, not from the input codec context, this
is the correct way to do it.
On some systems (Windows) the time_base from the input codec context is
set different from the one of the video stream, and timebase.num ends up
being 0 which results in the output codec initialization failing with
the message "framerate not set".
output_codec_ctx->bit_rate = (input_ctx->codec_ctx)->bit_rate;
output_codec_ctx->width = new_output_width;
output_codec_ctx->height = new_output_height;
- output_codec_ctx->time_base.num = (input_ctx->codec_ctx)->time_base.num;
- output_codec_ctx->time_base.den = (input_ctx->codec_ctx)->time_base.den;
+ output_codec_ctx->time_base.num =
+ (input_ctx->format_ctx)->streams[input_ctx->video_stream_index]->time_base.num;
+ output_codec_ctx->time_base.den =
+ (input_ctx->format_ctx)->streams[input_ctx->video_stream_index]->time_base.den;
/* When the raw format is requested we don't actually need to setup
* and open a decoder