mirror of
https://github.com/mpv-player/mpv
synced 2024-12-24 07:42:17 +00:00
Adds a parameter 'scenecut', to control the threshold for inserting extra I-frames.
patch by Loren Merritt git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@13585 b3059339-0415-0410-9bf9-f77b7e298cf2
This commit is contained in:
parent
3f544ef6ed
commit
9f3bc811f4
@ -6779,6 +6779,16 @@ IDR-Frames restrict subsequent P-frames from referring to any frame
|
||||
prior to the IDR-Frame.
|
||||
.
|
||||
.TP
|
||||
.B scenecut=<-1\-100>
|
||||
Controls how aggressively to insert extra I-frames (default: 40).
|
||||
With small values of scenecut, the codec often has to force an I-frame
|
||||
when it would exceed keyint.
|
||||
Good values of scenecut may find a better location for the I-frame.
|
||||
Large values use more I-frames than necessary, thus wasting bits.
|
||||
-1 disables scene-cut detection, so I-frames are be inserted only every
|
||||
other keyint frames, which probably leads to ugly encoding artifacts.
|
||||
.
|
||||
.TP
|
||||
.B frameref=<1\-15>
|
||||
Number of previous frames used as predictors in a P frame (default: 1).
|
||||
This is effective in Anime, but seems to make little difference in
|
||||
|
@ -63,6 +63,7 @@ static int qp_constant = 26;
|
||||
static int frame_ref = 1;
|
||||
static int iframe = 250;
|
||||
static int idrframe = 2;
|
||||
static int scenecut_threshold = 40;
|
||||
static int bframe = 0;
|
||||
static int deblock = 1;
|
||||
static int deblockalpha = 0;
|
||||
@ -92,6 +93,7 @@ m_option_t x264encopts_conf[] = {
|
||||
{"frameref", &frame_ref, CONF_TYPE_INT, CONF_RANGE, 1, 15, NULL},
|
||||
{"keyint", &iframe, CONF_TYPE_INT, CONF_RANGE, 1, 24000000, NULL},
|
||||
{"idrint", &idrframe, CONF_TYPE_INT, CONF_RANGE, 1, 24000000, NULL},
|
||||
{"scenecut", &scenecut_threshold, CONF_TYPE_INT, CONF_RANGE, -1, 100, NULL},
|
||||
{"bframes", &bframe, CONF_TYPE_INT, CONF_RANGE, 0, 16, NULL},
|
||||
{"deblock", &deblock, CONF_TYPE_FLAG, 0, 0, 1, NULL},
|
||||
{"nodeblock", &deblock, CONF_TYPE_FLAG, 0, 1, 0, NULL},
|
||||
@ -132,6 +134,7 @@ static int config(struct vf_instance_s* vf, int width, int height, int d_width,
|
||||
mod->param.i_frame_reference = frame_ref;
|
||||
mod->param.i_idrframe = idrframe;
|
||||
mod->param.i_iframe = iframe;
|
||||
mod->param.i_scenecut_threshold = scenecut_threshold;
|
||||
mod->param.i_bframe = bframe;
|
||||
mod->param.b_deblocking_filter = deblock;
|
||||
mod->param.i_deblocking_filter_alphac0 = deblockalpha;
|
||||
|
Loading…
Reference in New Issue
Block a user