cqp VS bitrate VS crf [学习笔记]

首先说明,这三个选项cqp  ,bitrate ,crf 互斥,只能设置一个,如果你在设置中同时设置了这三个选项,最后会覆盖掉之前的。


1.bitrate 

参数解释:

--bitrate <integer>     Set bitrate (kbit/s)

以目标位元率来编码视讯。目标位元率模式意味着最终文件的大小是已知的,但最终的品质则位置。此设定通常

与 2-pass 编码一起使用。


2.CQP [恒定量化参数]   

参数解释:

http://forum.doom9.org/archive/index.php/t-89756.html

Constant Quantization Parameter. Also known as "CQ" or "constant quant"

http://blog.yikuyiku.com/?tag=cqp

H.264规范允许每个宏块使用不同的QP。x264目前没有实现这一特性,码率控制算法只会为每一帧生成一个QP。


参数应用:

Ratecontrol:
  -q, --qp <integer>          Force constant QP (0-69, 0=lossless)

在编码使用这个参数,就意味着,强制使用 恒定量化参数了

將值設為0會產生無失真輸出。


3.crf

http://www.360doc.com/content/11/0613/21/3700464_126721552.shtml

当qp是把某个量化值作为目标,而bitrate 是把某个文档的大小作为目标时, crf 则是把某个品质作为目标。


CRF is more efficient than CQP only if you consider the final size.[如果你考虑到最终大小,crf会比cqp更有效一些]

CRF 和 CQP 都是越小越好,

----->

// //set bit rate
avctx->bit_rate = ptr_output_ctx->video_rate;//VIDEO_BIT_RATE;
avctx->rc_max_rate = ptr_output_ctx->video_rate;//VIDEO_BIT_RATE;
avctx->rc_min_rate = ptr_output_ctx->video_rate;//VIDEO_BIT_RATE;
avctx->bit_rate_tolerance = ptr_output_ctx->video_rate;//VIDEO_BIT_RATE;
avctx->rc_buffer_size = ptr_output_ctx->video_rate;//VIDEO_BIT_RATE;
avctx->rc_initial_buffer_occupancy = avctx->rc_buffer_size * 3 / 4;
avctx->rc_buffer_aggressivity = (float)1.0;
avctx->rc_initial_cplx = 0.5;

avctx->coder_type = FF_CODER_TYPE_AC; //different codec_type
//
avctx->thread_count = 1;
avctx->cqp = 26
;  //这里cqp 会把之前设置的bitrate 覆盖掉,也就是说encoder会按照设定的qp数值进行编码,而不是bitrate.


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值