{
int sane = 0;
int threads = switch_core_cpu_count();
-
+ int fps = 15;
+
#ifdef NVENC_SUPPORT
if (!context->encoder) {
if (context->av_codec_id == AV_CODEC_ID_H264) {
}
if (threads > 4) threads = 4;
- context->bandwidth *= 4;
- context->encoder_ctx->bit_rate = context->bandwidth * 1024;
+ context->bandwidth *= 3;
+
+ fps = context->codec_settings.video.fps;
+ if (!fps) fps = 20;
+
+ context->encoder_ctx->bit_rate = context->bandwidth * 1024;
+ context->encoder_ctx->rc_min_rate = context->encoder_ctx->bit_rate;
+ context->encoder_ctx->rc_max_rate = context->encoder_ctx->bit_rate;
+ context->encoder_ctx->rc_buffer_size = context->encoder_ctx->bit_rate;
+ context->encoder_ctx->qcompress = 0.6;
+ context->encoder_ctx->gop_size = fps * 2;
+ context->encoder_ctx->keyint_min = fps * 2;
+
context->encoder_ctx->width = context->codec_settings.video.width;
context->encoder_ctx->height = context->codec_settings.video.height;
/* frames per second */
context->encoder_ctx->pix_fmt = AV_PIX_FMT_YUV420P;
context->encoder_ctx->thread_count = threads;
- context->encoder_ctx->rc_max_rate = context->bandwidth * 1024;
- context->encoder_ctx->rc_buffer_size = context->bandwidth * 1024 * 4;
-
if (context->av_codec_id == AV_CODEC_ID_H263 || context->av_codec_id == AV_CODEC_ID_H263P) {
#ifndef H263_MODE_B
# if defined(__ICL) || defined (__INTEL_COMPILER)
context->encoder_ctx->rtp_callback = rtp_callback;
FF_ENABLE_DEPRECATION_WARNINGS
#endif
- context->encoder_ctx->rc_min_rate = context->encoder_ctx->rc_max_rate;
context->encoder_ctx->opaque = context;
av_opt_set_int(context->encoder_ctx->priv_data, "mb_info", SLICE_SIZE - 8, 0);
} else if (context->av_codec_id == AV_CODEC_ID_H264) {