x264参数设置

参数名称 对应X264参数 参数说明 默认值 参数范围
最大IDR帧间隔 i_keyint_max 最大IDR帧间间隔,每当收到IDR帧,解码器就会清空参考队列,并且更新PPS和SPS参数。IDR帧也是一种I帧,因此,该参数如设置得比较小则更利于流畅的视频播放,但是会降低压缩效率。建议设置为帧速率的10倍。 250
最小IDR帧间隔 i_keyint_min 该参数设置过小可能导致错误地插入IDR帧,参数限制了插入IDR帧的最小距离。建议设置等于帧速率。 25
最大参考帧数 i_frame_reference 表示P帧可以使用其之前的多少帧作为参考帧,该值得选取与H264的标准有一定关系。 3 1~16
场景切换门限 i_scenecut_threshold 自动场景切换门限,根据其含义,表示场景变换的百分比。计算场景间的相似度,如果相似度小于该门限值则认为检测到场景切换。如果此时距离上一个IDR帧的距离小于最小IDR帧间隔,则插入一个I帧,否则插入一个IDR帧。 40 0~100
最大B帧数量 i_bframe I帧和P帧之间的B帧数量,若设置为0则表示不使用B帧,B帧会同时参考其前面与后面的帧,因此增加B帧数量可以提高压缩比,但也因此会降低压缩的速度。 3
自适应B帧策略 i_bframe_adaptive B帧插入策略,该策略决定使用P帧还是B帧,0=X264_B_ADAPT_NONE(总是使用B帧), 1=X264_B_ADAPT_FAST(快速算法),2=X264_B_ADAPT_TRELLIS(最佳算法),三种算法的计算复杂度依次增加。 1
参考B帧策略 i_bframe_pyramid 是否允许将B帧当作参考帧,0=X264_B_PYRAMID_NONE(关闭,不允许B帧作为参考帧),1=X264_B_PYRAMID_STRICT(严格分级,一个图像组内只允许一个B参考帧,蓝光编码的强制要求),2=X264_B_PYRAMID_NORMAL(普通,可以随意使用) 2
B帧插入倾向 i_bframe_bias 影响插入B帧的倾向,越高越容易插入B帧,但是100也不能保证完全使用B帧。一般情况下不推荐修改。 0 -100 ~ 100
最大缓冲帧数 i_lookahead 编码器并不是对每来一帧就对一帧进行编码,而是先存储一定的帧,将该缓存填充满之后再开始编码。该参数的设置会影 响压缩的效果,同时调大该参数也能够使得VBV获得更精确的码率控制,但同时也会增加编码的时间,提高实时编码的时延。 40
视频宽度 i_width 设置视频的像素宽度,可以与采集源的大小不同,会经过OPENCV转换大小 640
视频高度 i_height 设置视频的像素高度,可以与采集源的大小不同,会经过OPENCV转换大小 480
去块滤波器 b_deblocking_filter 控制去块滤波器是否打开,推荐打开 1
alpha滤波器 i_deblocking_filter_alphac0 alpha去块滤波器,取值范围 -6 ~ 6 数字越大效果越强 0 -6~6
Beta滤波器 i_deblocking_filter_beta beta去块滤波器,取值范围 -6 ~ 6 数字越大效果越强 0 -6~6
码控制方式 i_rc_method 设定速率控制的方法,可选项有:X264_RC_CQP(恒定量化)、X264_RC_CRF(恒定质量)、X264_RC_ABR(恒定码率),这三种码率控制方式是互斥的,一般而言恒定质量的方式都可以代替恒定量化方式,不过因为恒定量化无需做预测,因此编码速度上会更快一些,但是这也会导致最终的编码后的文件大小无法确定,相比之下,固定质量的方式会得到更高的压缩比。 恒定质量
固定量化值 i_qp_constant 固定量化参数,0为无损,开启该选项将会关闭自适应量化器。取值0表示无损。 - 0 ~ 51
最大量化值 i_qp_min 允许的最小量化值 10
最小量化值 i_qp_max 允许的最大量化值 51
量化步长 i_qp_step 在两帧图像之间所允许的最大量化值的变化步长 4
平均码率 i_bitrate 编码的码率,参数的量纲是 kilobits/sec 注意是bit,8bit = 1byte,设置该参数将导致编码器会尽量使得文件最终的整体码率与该参数设置得数值相等。 -
码率偏差 f_rate_tolerance 给定可以偏离给定的平均的码率目标的百分比,最低为0.01,例如:1.0表示1%。另外该参数也与VBV有关,如果开启了VBV的选项,该参数也会使得VBV在设定的值周围波动。 1
VBV码率 i_vbv_max_bitrate 设置VBV可用的最大码率。量纲为 kbit/s,注意VBV选项在任何一项VBV参数开启时启用,VBV = Video Buffering Verifier。值得注意的是,使用VBV参数可能会降低视频的质量,只有在确定要使用时再开启。 0
VBV缓冲 i_vbv_buffer_size 设置VBV的最大可用缓冲区,量纲为 kbit 0
VBV初始填充 f_vbv_buffer_init 指定缓冲满足一定百分比之后才能开始回放。参数小于等于1时是百分比,大于1时是kbit 0.9
固定质量值 f_rf_constant 数值越小质量越好 23
最大质量值 f_rf_constant_max 使得视频的质量不会小于该参数。 -
编码帧的总数 i_frame_total编码帧的总数 0
level值 i_level_idc level值会限制码率输出
并行编码多帧 i_threads 多线程编码
线程超前缓冲 i_sync_lookahead 线程超前缓冲
色彩空间设置 i_csp 编码比特流的CSP,i420,NV12 i420
帧率设置 i_fps_num i_fps_den
参考帧 i_frame_reference; 参考帧最大数目
最大关键帧 i_keyint_max 在此间隔设置IDR关键帧
最小关键帧 i_keyint_min 场景切换少于次值编码位I, 而不是 IDR.
P帧间B帧数量 i_bframe 两个相关图像间P帧的数目
B帧判定 i_bframe_adaptive 自适应B帧判定
插入B帧判定 i_bframe_bias 控制插入B帧判定,越高越容易插入B帧 -100~+100 0
SPS PPS b_repeat_headers 在每个关键帧前放置SPS/PPS
最大slice i_slice_max_size 每片字节的最大数,包括预计的NAL开销.
最大宏块数 i_slice_max_mbs 每片宏块的最大数,重写 i_slice_count
slice数量 i_slice_count 每帧的像条数目: 设置矩形像条.

参考:
1.https://blog.csdn.net/abcsunl/article/details/68065759
2.https://www.cnblogs.com/wainiwann/p/5647521.html

你可能感兴趣的:(h264)