复用成单节目TS流时的码率控制
mux_rate,在ffmpeg中这个变量给出了TS流的码率,但是在gstreamer插件中,并没有对其进行处理,今天给ffmux_mpegts加入了一个属性 - mux_rate,当给出的时候就按照CBR的方式进行复用,码率为mux_rate的值,如果没有给出就按照VBR的方式进行复用。代码是在ubuntu10.10 server上进行修改的,需要修改的文件是ext/ffmpeg/gstffmpegmux.c:
65a66
>
int mux_rate;
104c105,106
< PROP_MAXDELAY
---
> PROP_MAXDELAY,
> PROP_MUXRATE
315a318,322
> g_object_class_install_property (gobject_class, PROP_MUXRATE,
> g_param_spec_int ("muxrate", "muxrate",
> "Set the mux rate (in bytes)", 0, G_MAXINT,
> 0, G_PARAM_READWRITE));
>
347a355
> ffmpegmux->mux_rate = 0;
364a373,375
> case PROP_MUXRATE:
> src->mux_rate = g_value_get_int (value);
> break;
385a397,399
> case PROP_MUXRATE:
> g_value_set_int (value, src->mux_rate);
> break;
489a504,505
> if (ffmpegmux->mux_rate != 0 )
> ffmpegmux->context->mux_rate = ffmpegmux->mux_rate;
(dqzhangp)