理解X264的码率控制模式
来源:互联网 发布:jdk 6u45 windows x64 编辑:程序博客网 时间:2024/06/09 20:42
X264码率控制模式分为:CQP模式,ABR模式,VBR模式,CBR模式,CRF模式,lossless模式。
CQR模式:
----对I P B帧使用恒定的QP;
----使用qp确定P帧的QP,ipratio确定I帧的QP,pbratio确定B帧的QP;
----只是用1 pass编码,二次编码没用
----支持CRF模式的老式的码率控制模式已经过时了
----产生1 PASS编码的log文件没啥好处
x264 --qp 23 --ipratio 1.4 --pbratio 1.3 -o<output> <input>
ABR模式:
----尽量保证编码的视频码率控制在目标码率上下,但是无法保证一定会
----设置码率控制参数
----qpmin,qpmax,qp_step被用来保证ABR模式的质量
----qp,ipratio,pbratio在ABR中不起作用
----用于产生1 pass的logfile会对VBR或者CBR的2 pass会有好处
VBR模式
----执行ABR模式2 pass或者更多的pass,自动就得到VBR模式了
----相比ABR能够使编码的码流的码率更接近目标码率,但是花费的时间要长一些
----可以执行若干PASS的编码并写出log文件,但是三次编码之后,质量的提示就很小了,可以忽略不计
x264 --pass 1 --bitrate 1500 -o <output><input> # ABR Mode
x264 --pass 2--bitrate 1500 -o <output> <input> # VBR Mode
CBR模式
----在执行ABR模式的同时设置vbv_maxrate=目标码率的时候,就是CBR模式了
----由于严格地控制码率,可能会导致视频质量的严重下降;在确实需要将比特率限制在某一特定值以下的时候,才会采用这种模式
----1 pass 编码产生的logfile没啥作用,也就是说对指导2pass编码没啥卵用
x264 --vbv-bufsize 2000 --bitrate 1000 -o <output><input>
CRF模式:
----在控制视频中所有帧的质量上有很好的效果
----无法有效地控制码率。可以通过不断地调整CRF值来获得所需要的码率,但是该方法不如直接采用ABR或者CBR来得实在
----CRF值建议设置为18,超过23会导致质量明显下降。(CRF取值越大,视频质量越不好)
----1 pass可以取得很好的效果,同时产生的logfile对2pass仍有很好的作用
x264 --crf 24 -o <output> <input>
Lossless模式:
----设置CRF=0或者QP=0,便是lossless模式
x264 --crf 0 -o <output> <input>
或者
x264 --qp 0 -o <output> <input>
对于一次编码,可以使用的模式是CQP,ABR,CBR,CRF或者lossless
-在需要保证视频的质量接近原始视频的时候,可以使用lossless模式
-如果比较注重码率,可以使用ABR模式
-如果比较注重视频的质量同时不在乎比特率,可以采用CBR
-CRF和CBR是互斥的,不可以同时使用
对于2趟或者更多趟编码,可以在第一次编码的时候采用ABR或者CRF模式,随后做VBR或者CRF模式,最后一趟做VBR或者CBR模式。
希望与大家共同进步!如有翻译不对的地方,还请批评指正!么么啾~~~
原文地址:https://mailman.videolan.org/pipermail/x264-devel/2010-February/006933.html
- 理解X264的码率控制模式
- 控制X264的码率
- x264 码率控制:ABR模式
- x264码率控制
- x264码率控制
- x264码率控制
- X264码率控制流程
- x264参数--码率控制
- x264编码----码率控制
- x264编码-码率控制
- x264编码----码率控制
- X264码率控制总结
- x264基于经验和感觉的码率控制策略
- x264基于经验和感觉的码率控制策略
- x264基于经验和感觉的码率控制策略
- X264码率控制流程分析
- X264码率控制流程分析
- X264码率控制流程分析
- Ubuntu 14.0.4下 JDK + Tomcat + Intellij IDEA 安装配置
- AOP代理类中调用带有annotation的私有方法
- Dcook -> MJRefresh iOS10的系统上每次下拉刷新后没办法完全恢复Normal 状态 Y轴距离上总是相差20左右...(楼主个人也使用的MJ,表示暂时没有发现这个问题)
- c++ 用文件保存类对象
- Zookeeper(5)-Zookeeper leader选举
- 理解X264的码率控制模式
- 2648: SJY摆棋子
- Java系列-Socket网络编程,TCP/IP和Http等网络协议理解
- ABAP modify screen:修改屏幕,实现隐藏、禁止输入字段
- spring类扫描注入-----类扫描的注解解析器
- 移动应用实战(移动OA)之三_客户端与服务端数据通讯
- 在OpenWrt上移植fcgiwrap为nginx提供cgi支持
- SQL Server 根据表名获取表的所有列及属性(数据同步服务数据分析需要)
- 从热更新到Nuwa源码分析