diff --git a/cfg-mencoder.h b/cfg-mencoder.h index b5b65b9af0..b2c2d6a5e2 100644 --- a/cfg-mencoder.h +++ b/cfg-mencoder.h @@ -52,9 +52,15 @@ struct config lameopts_conf[]={ struct config lavcopts_conf[]={ {"vcodec", &lavc_param_vcodec, CONF_TYPE_STRING, 0, 0, 0, NULL}, {"vbitrate", &lavc_param_vbitrate, CONF_TYPE_INT, CONF_RANGE, 4, 24000000, NULL}, + {"vratetol", &lavc_param_vrate_tolerance, CONF_TYPE_INT, CONF_RANGE, 4, 24000000, NULL}, {"vhq", &lavc_param_vhq, CONF_TYPE_FLAG, 0, 0, 1, NULL}, {"vme", &lavc_param_vme, CONF_TYPE_INT, CONF_RANGE, 0, 3, NULL}, {"vqscale", &lavc_param_vqscale, CONF_TYPE_INT, CONF_RANGE, 1, 31, NULL}, + {"vqmin", &lavc_param_vqmin, CONF_TYPE_INT, CONF_RANGE, 1, 31, NULL}, + {"vqmax", &lavc_param_vqmax, CONF_TYPE_INT, CONF_RANGE, 1, 31, NULL}, + {"vqdiff", &lavc_param_vqdiff, CONF_TYPE_INT, CONF_RANGE, 1, 31, NULL}, + {"vqcomp", &lavc_param_vqcompress, CONF_TYPE_FLOAT, CONF_RANGE, 0.0, 1.0, NULL}, + {"vqblur", &lavc_param_vqblur, CONF_TYPE_FLOAT, CONF_RANGE, 0.0, 1.0, NULL}, {"keyint", &lavc_param_keyint, CONF_TYPE_INT, 0, 0, 0, NULL}, {NULL, NULL, 0, 0, 0, 0, NULL} }; diff --git a/mencoder.c b/mencoder.c index cdf724a9ba..688b08d143 100644 --- a/mencoder.c +++ b/mencoder.c @@ -74,9 +74,15 @@ static AVPicture lavc_venc_picture; /* video options */ char *lavc_param_vcodec = NULL; int lavc_param_vbitrate = -1; +int lavc_param_vrate_tolerance = 1024*1024*8; int lavc_param_vhq = 0; /* default is realtime encoding */ int lavc_param_vme = 3; int lavc_param_vqscale = 0; +int lavc_param_vqmin = 3; +int lavc_param_vqmax = 15; +int lavc_param_vqdiff = 3; +float lavc_param_vqcompress = 0.5; +float lavc_param_vqblur = 0.5; int lavc_param_keyint = -1; #endif @@ -1086,7 +1092,13 @@ case VCODEC_LIBAVCODEC: lavc_venc_context.bit_rate = lavc_param_vbitrate; else lavc_venc_context.bit_rate = 800000; /* default */ + lavc_venc_context.bit_rate_tolerance= lavc_param_vrate_tolerance; lavc_venc_context.frame_rate = (float)(force_ofps?force_ofps:sh_video->fps) * FRAME_RATE_BASE; + lavc_venc_context.qmin= lavc_param_vqmin; + lavc_venc_context.qmax= lavc_param_vqmax; + lavc_venc_context.max_qdiff= lavc_param_vqdiff; + lavc_venc_context.qcompress= lavc_param_vqcompress; + lavc_venc_context.qblur= lavc_param_vqblur; /* keyframe interval */ if (lavc_param_keyint >= 0) /* != -1 */ lavc_venc_context.gop_size = lavc_param_keyint;