hi_venc_h264_cvbr
说明
定义H.264协议编码通道CVBR模式属性结构。
定义
typedef struct { hi_u32 gop; hi_u32 stats_time; hi_u32 src_frame_rate; hi_u32 dst_frame_rate; hi_u32 max_bit_rate; hi_u32 short_term_stats_time; hi_u32 long_term_stats_time; hi_u32 long_term_max_bit_rate; hi_u32 long_term_min_bit_rate; } hi_venc_h264_cvbr;
成员
成员名称 |
描述 |
---|---|
gop |
Group Of Pictures, 视频序列由若干时间连续的图像构成,在对其进行编码时,先将该视频序列分割成若干个小的图像组,该参数即指一个图像组的帧数;由于GOP结构仅支持Normalp(第一帧为I帧,其余帧为P帧),此参数也为I帧间隔,默认值65535;由于编码I帧不需参考之前的帧,之前帧的编码质量影响从此帧开始不再传递,故该值越小,编码质量越好;但不建议小于帧率,因为I帧仅有帧内预测块,大部分场景需要有一定的P帧(有帧间预测块块)才能保证编码质量。 取值范围:[1, 65536]。 |
stats_time |
CVBR码率统计时间,以秒为单位,一般场景下,stats_time= gop / dst_frame_rate,编码质量较好。 码率统计时间越长,每帧图像的码率波动对于码率调节的影响越弱,码率的调节会更缓慢,图像质量的波动会更轻微;码率统计时间越短,每帧图像的码率波动对于码率调节的影响越强,图像码率的调节会更灵敏,图像质量的波动会更剧烈。 取值范围:[1, 60]。 |
src_frame_rate |
输入帧率,以fps为单位,即每秒进入编码器的帧数,默认值为30;码率一定的情况下,该值越小,编码质量越好,但小于25播放时画面会不连贯。 取值范围:[1, 240]。 |
dst_frame_rate |
编码器输出帧率,以fps为单位,即每秒编码器输出的帧数,默认值为30;码率一定的情况下,该值越小,编码质量越好,但小于25播放时画面会不连贯。 取值范围:[1, src_frame_rate]。 暂不支持分数帧率。 |
max_bit_rate |
编码器输出最大码率,以kbps为单位,即编码码流每秒比特数,该值越大,编码质量越好;默认值2000。 取值范围:[2, 614400] |
short_term_stats_time |
码率短期统计时间,以秒为单位。 取值范围:[1, 120]。 |
long_term_stats_time |
码率长期统计时间,默认为分钟。 取值范围:[1, 1440]。 |
long_term_max_bit_rate |
编码器输出长期最大码率,以kbps为单位。 取值范围:[2, max_bit_rate]。 |
long_term_min_bit_rate |
编码器输出长期最小码率,以kbps为单位。 取值范围:[0, long_term_max_bit_rate] 。 |