supporting ffmpegs "hopefully better bitrate control"

git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@5167 b3059339-0415-0410-9bf9-f77b7e298cf2
This commit is contained in:
michael 2002-03-17 17:09:04 +00:00
parent 4b7c5a1141
commit 07629da493
2 changed files with 18 additions and 0 deletions

View File

@ -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}
};

View File

@ -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;