diff --git a/ffserver.c b/ffserver.c index f799514199..d3daaba1c8 100644 --- a/ffserver.c +++ b/ffserver.c @@ -3633,6 +3633,13 @@ static void add_codec(FFStream *stream, AVCodecContext *av) av->qcompress = 0.5; av->qblur = 0.5; + if (!av->nsse_weight) + av->nsse_weight = 8; + + av->frame_skip_cmp = FF_CMP_DCTMAX; + av->me_method = ME_EPZS; + av->rc_buffer_aggressivity = 1.0; + if (!av->rc_eq) av->rc_eq = "tex^qComp"; if (!av->i_quant_factor) @@ -3644,6 +3651,11 @@ static void add_codec(FFStream *stream, AVCodecContext *av) if (!av->rc_max_rate) av->rc_max_rate = av->bit_rate * 2; + if (av->rc_max_rate && !av->rc_buffer_size) { + av->rc_buffer_size = av->rc_max_rate; + } + + break; default: av_abort(); @@ -4066,10 +4078,20 @@ static int parse_ffconfig(const char *filename) errors++; } } + } else if (!strcasecmp(cmd, "Debug")) { + if (stream) { + get_arg(arg, sizeof(arg), &p); + video_enc.debug = strtol(arg,0,0); + } + } else if (!strcasecmp(cmd, "Strict")) { + if (stream) { + get_arg(arg, sizeof(arg), &p); + video_enc.strict_std_compliance = atoi(arg); + } } else if (!strcasecmp(cmd, "VideoBufferSize")) { if (stream) { get_arg(arg, sizeof(arg), &p); - video_enc.rc_buffer_size = atoi(arg) * 1024; + video_enc.rc_buffer_size = atoi(arg) * 8*1024; } } else if (!strcasecmp(cmd, "VideoBitRateTolerance")) { if (stream) { @@ -4286,9 +4308,6 @@ static int parse_ffconfig(const char *filename) if (video_id != CODEC_ID_NONE) { video_enc.codec_type = CODEC_TYPE_VIDEO; video_enc.codec_id = video_id; - if (!video_enc.rc_buffer_size) { - video_enc.rc_buffer_size = 40 * 1024; - } add_codec(stream, &video_enc); } }