X264码率控制总结1——ABR,CQP,CRF

CBR码率恒定适合流式播放,但复杂场景质量不稳;VBR提供稳定视觉质量,码流大小不可控;ABR作为CBR与VBR折中,合理分配比特,确保平均码率接近目标码率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.  X264显式支持的一趟码率控制方法有:ABR, CQP, CRF. 缺省方法是CRF。这三种方式的优先级是ABR > CQP > CRF.
    if ( bitrate )                rc_method = ABR;
    else if ( qp || qp_constant ) rc_method = CQP;
    else                          rc_method = CRF;    
    bitrate和QP都没有缺省值,一旦设置他们就表示要按照相应的码率控制方法进行编码,CRF有缺省值23,没有任何关于编码控制的设置时就按照CRF缺省值23来编码。       

一般的使用建议:   
CQP – 一般不推荐使用,在一些算法验证工作中会使用这种模式    
CRF – 适合在关注一遍编码质量而输出文件大小或码率不是太紧要的场景下使用,一般网络压片使用CRF。    
1 pass ABR – 适用于流媒体或者目标码率受限的实时应用场景。   
2 pass VBR – 适用于有目标码率限制而又有时间可以进行二次编码的非实时应用。
 
2. CQP,恒定QP. 无缺省值
        最简单的码率控制方式,每帧图像都按照一个特定的QP来编码,每帧编码后的数据量有多大是未知的。
        参数qp_constant设置的是P帧的QP。I,B帧的QP根据f_ip_factor, f_pb_factor,计算得到。
        rc->ip_offset = 6.
FFmpeg的ABR是指自适应比特率(Adaptive Bitrate)编码。它允许根据网络条件和设备能力动态调整视频的比特率,以提供更好的观看体验。对于x264编码器,使用FFmpeg进行ABR编码的示例命令如下: ffmpeg -i <input> -c:v libx264 -b:v 1M -pass 1 -f null /dev/null ffmpeg -i <input> -c:v libx264 -b:v 1M -pass 2 <output>.mp4 而对于VP9编码器,使用FFmpeg进行ABR编码的示例命令如下: ffmpeg -i <input> -c:v libvpx-vp9 -b:v 1M -pass 1 -f null /dev/null ffmpeg -i <input> -c:v libvpx-vp9 -b:v 1M -pass 2 <output>.webm 这些命令中的`<input>`是输入文件的路径,`<output>`是输出文件的路径。通过使用两个pass,FFmpeg会先进行一次预处理,然后根据第一次编码的结果进行第二次编码来优化视频质量。其中,`-b:v 1M`表示目标比特率为1Mbps。这样,FFmpeg就可以根据设定的比特率进行自适应的编码,以适应不同的网络和设备情况。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [视频编码-码率控制CQP/CRF/ABR/CBR/VBV](https://blog.csdn.net/yinshipin007/article/details/125900485)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值