x264命令参数与代码中变量的对应关系
帧类型选项:
| -I/--keyint | i_keyint_max | 最大IDR帧间距,默认为250 |
| -i/--min-keyint | i_keyint_min | 最小IDR帧间距,默认为25 |
| --scenecut | i_scenecut_threshold | 画面动态变化阈值,当超出此值时插入I帧,默认为40 |
| -b/--bframes | i_bframe | 在IP帧之间可插入的B帧数目最大值,范围0~16,默认值为0 |
| -no-b-adapt | b_bframe_adaptive | 关闭自适应B帧判定(-b为1时可用,其他不推荐) |
| --b-bias | i_bframe_bias | 控制插入B帧判定,范围-100~+100,越高越容易插入B帧,默认为0 |
| --b-pyramid | b_bframe_pyramid | 允许B帧做参考帧 |
| --no-cabac | b_cabac | 关闭内容自适应二进制算术编码(CABAC,高效率的熵编码),会提高速度,但会严重影响质量 |
| -r/--ref | i_frame_reference | 最大参考帧数,范围0~16,默认为1 |
| --nf | b_deblocking_filter | 关闭环路滤波 |
| -f/--filter | i_deblocking_filter_alphac0
i_deblocking_filter_beta |
设置环路滤波的AlphaC和Beta的参数,范围-6~6,默认都为0 |
码率控制选项:
| -q/--qp | rc.i_qp_constant | 固定量化模式并设置使用的量化值,范围0~51,0为无损压缩默认为26 |
| -B/--bitrate | rc.i_bitrate,rc.b_cbr | 设置平均码率 |
| --crf | rc.i_rf_constant | 质量模式,量化值动态可变 |
| --qpmin | rc.i_qp_min | 设置最小量化值,范围0~51,默认为10 |
| --qpmax | rc.i_qp_max | 设置最大量化值,范围0~51,默认为51 |
| --qpstep | rc.i_qp_step | 量化步长,范围0~50,默认为4 |
| --ratetol | rc.f_rate_tolerance | 平均码率下,瞬时码率可以偏离的倍数,范围0.1~100.0,默认为1.0 |
| --vbv-maxrate | rc.i_vbv_max_bitrate | 平均码率下,最大瞬时码率,默认为0(与-B设置相同) |
| --vbv-bufsize | rc.i_vbv_buffer_size | 码率控制缓冲区的大小,单位Kbit,默认为0 |
| --vbv-init | rc.f_vbv_buffer_init | 码率控制缓冲区数据保留的最大数据量与缓冲区大小之比,范围0~1.0,默认为0.9 |
| --ipratio | rc.f_ip_factor | I帧和P帧之间的量化系数,默认为1.40 |
| --pbratio | rc.f_pb_factor | P帧和B帧之间的量化系数,默认为1.30 |
| --chroma-qp-offset | analyse.i_chroma_qp_offset | 色度和亮度之间的量化差,范围-12~+12,默认为0 |
| -p/--pass | rc.b_stat_write,b_stat_read | 多次压缩编码控制 |
| --stats | rc.psz_stat_in,rc.psz_stat_out | 统计文件的名称,默认"x264_2pass.log" |
| --rceq | rc.psz_rc_eq | 速率控制公式,默认"blurCplx^(1-qComp)" |
| --qcomp | rc.f_qcompress | 线性量化控制,0.0为固定码率,1.0为固定量化值,默认0.6只用于2-pass和质量模式 |
| --cplxblur | rc.f_complexity_blur | 根据相邻帧平滑量化值比例的最大值,范围0~99.0,默认20.0,只用于2-pass和质量模式 |
| --qblur | rc.f_qblur | 对统计文件结果平滑量化值比例的最大值,范围0~99.9,默认0.5只用于2-pass |
| --zones | rc.psz_zones | 分段量化,格式为:<开始帧>,<结束帧>,<选项>可选项为:q=<整数>或b=<小数> |
| -A/--analyse | analyse.inter | 块划分方法,默认"p8x8,b8x8,i8x8,i4x4",可选项:p8x8/p4x4/b8x8/i8x8/84x4;none/all |
| --direct | analyse.i_direct_mv_pred | 动态预测方式,默认"spatia"。可选项:none/spatial/temporal/auto |
| -w/--weightb | analyse.b_weighted_bipred | 允许B帧加权预测 |
| --me | analyse.i_me_method |
对全像素块动态预测搜索的方式,默认"hex",可选项如下:
dia:菱形搜索,半径1 hex:正六边形搜索,半径2 umh:可变半径六边形搜索; esa:全局搜索 |
| --merange | analyse.i_me_range | 选项--me为umh/esa时的搜索半径,最大64,默认16 |
| -m/--subme | analyse.i_subpel_refine | 动态预测和分区方式,可选项1~7,默认5
1:用全像素块进行动态搜索,对每个块再用快速模式进行四分之一像素块精确搜索。 |
| --b-rdo | analyse.b_bframe_rdo | B帧也进行RDO,需要--subme在6以上 |
| --mixed-refs | analyse.b_mixed_references | 可以在一帧内使用不同参考帧 |
| --no-chroma-me | analyse.b_chroma_me | 不进行色度的动态预测 |
| --bime | analyse.b_bidir_me | 可以平均B参考块的运动矢量 |
| -8/--8x8dct | analyse.b_transform_8x8 | 可以使用8x8的DCT |
| -t/--trellis | analyse.i_trellis | Trellis量化,对每个8x8的块寻找合适的量化值,需要CABAC,默认0,其取值代表意义如下:
0:关闭 1:只在最后编码时使用 2:一直使用 |
| --cqm | i_cqm_preset | 设置外部量化矩阵,默认"flat",可选项"jvt/flat" |
| --cqmfile | psz_cqm_file | 读取JM格式的外部量化矩阵文件,自动忽略其他--cqm*选项 |
| --cqm4 | i_cqm_preset
cqm_4iy,cqm_4ic,cqm_4py,cqm_4pc |
设置4x4的量化矩阵,用逗号分开,范围1~255的16个整数 |
| --cqm8 | i_cqm_preset
cqm_8iy,cqm_8py |
设置8x8的量化矩阵,用逗号分开,范围1~255的64个整数 |
| --cqm4i/--cqm4p/--cqm8i/--cqm8p | 设置IP帧不同的量化矩阵 | |
| --cqm4iy/--cqm4ic/
--cqm4py/--cqm4pc |
设置亮度,色度不同的量化矩阵 |
视频标准化选项:
| --sar width:height |
vui.i_sar_width,vui.i_sar_height | 设置长宽比 |
| --overscan | vui.i_overscan | 过扫描线,默认"undef",可选项:show/crop |
| --videoformat | vui.i_vidformat | 视频模式,默认"undef",可选项:component/pal/ntsc/secam/mac/undef |
| --fullrange | vui.b_fullrange | Specify full range samples setting,默认"off",可选项:off/on |
| --colorprim | vui.i_colorprim | 原始色度格式,默认"undef",可选项:undef/bt709/bt470m/bt70gbg,smpte170m/smpte240m/film |
| --transfer | vui.i_transfer | 转换方式:默认"undef",可选项:undef/bt709/bt470m/bt470bg/inear,log100/log316/smptel70m/smpte240m |
| --colormatrix | vui.i_colmatrix | 色度距阵设置,默认"undef",可选项:undef/bt709/fcc/bt470bg,smpte170m/smpte240m/GBR/YcgCo |
| --chromaloc | vui.i_chroma_loc | 色度样本指定,范围0~5,默认0 |
输入/输出选项:
| --level | i_level_idc | 设定等级 |
| --fps | i_fps_num,i_fps_den | 设定帧率 |
| --seek | 设定起始帧 | |
| --frames | i_frame_total | 最大编码帧数 |
| --o/--output | 指定输出文件 | |
| --threads | i_threads | 编码线程数目 |
| --thread-input | 在编码线程中运行Avisynth | |
| --no-asm | cpu | 关闭全部CPU优化命令 |
| --no-psnr | analyse.b_psnr | 关闭PSNR计算 |
| --quiet | i_log_level | 安静模式 |
| -v/--verbose | i_log_level | 显示每一个帧的信息 |
| --visualize | b_visualize | 显示运动矢量 |
| --sps-id | 设置SPS和PPS的ID值,默认为0 | |
| --aud | b_aud | 使用数据单元定义符号 |
| --progress | b_progress | 显示编码进程 |
x264命令参数与代码中变量的对应关系的更多相关文章
- Java -D命令对应的代码中获取-D后面的参数 和 多个参数时-D命令的使用
1. Java代码: public class TestDPara { public static void main(String[] args) { String flag = System.ge ...
- 在Visual Studio代码中使用Flask
Flask是一个用于Web应用程序的轻量级Python框架,它提供了URL路由和页面呈现的基础知识. Flask被称为“微”框架,因为它不直接提供表单验证,数据库抽象,身份验证等功能.这些功能由称为F ...
- Keil C51中变量的使用
引言 8051内核单片机是一种通用单片机,在国内占有较大的市场份额.在将C语言用于51内核单片机的研究方面,Keil公司做得最为成功.由于51内核单片机的存储结构的特殊性,Keil C51中变量的使用 ...
- [51单片机] Keil C51中变量的使用方法详解
引言 8051内核单片机是一种通用单片机,在国内占有较大的市场份额.在将C语言用于51内核单片机的研究方面,Keil公司做得最为成功.由于51内核单片机的存储结构的特殊性,Keil C51中变量 ...
- @有两个含义:1,在参数里,以表明该变量为伪参数 ,在本例中下文里将用@name变量代入当前代码中2,在字串中,@的意思就是后面的字串以它原本的含义显示,如果不
@有两个含义:1,在参数里,以表明该变量为伪参数 ,在本例中下文里将用@name变量代入当前代码中 2,在字串中,@的意思就是后面的字串以它原本的含义显示,如果不加@那么需要用一些转义符\来显示一些特 ...
- 代码中看见一共8个变量参数{SEO,0,0,0,0,0,0,0} 解读!{Top,0,0,0,0,0,0,Top}{Nav,0,0,0,0,0,0,Nav}
代码中看见{SEO,0,0,0,0,0,0,0}{Top,0,0,0,0,0,0,Top}{Nav,0,0,0,0,0,0,Nav}解读! 举个例子: {GetNew,977,0,23,500,0,0 ...
- Python之TensorFlow的变量收集、自定义命令参数、矩阵运算、梯度下降-4
一.TensorFlow为什么要存在变量收集的过程,主要目的就是把训练过程中的数据,比如loss.权重.偏置等数据通过图形展示的方式呈现在开发者的眼前. 自定义参数:自定义参数,主要是通过Python ...
- js中变量含(参数、数组)作用域传递问题
js没有块级作用域(你可以自己闭包或其他方法实现),只有函数级作用域和全局作用域,函数外面的变量函数里面可以找到使用,函数里面的变量外面无法访问到. 写这个是因为ES6中的一个例子开始的.首先看下例子 ...
- 【openresty】向lua代码中传递参数
前面介绍FormInputNginxModule模块时,明白了openresty如何获取post提交的数据. 然后,如果需要通过lua处理这些数据,需要把数据作为参数传递到lua中,lua获取了这些数 ...
随机推荐
- CodeForces 682E Alyona and Triangles (计算几何)
Alyona and Triangles 题目连接: http://acm.hust.edu.cn/vjudge/contest/121333#problem/J Description You ar ...
- Maven仓库Nexus的安装配置
1.下载nexus,最新版本是nexus-2.8.0-05 参考文章 下载nexus-latest-bundle.zip文件后,并解压到 D:\nexus下 配置nexus的环境变量:先配置NE ...
- [iOS微博项目 - 2.0] - OAuth授权3步
A.概念 OAUTH协议为用户资源的授权提供了一个安全的.开放而又简易的标准.与以往的授权方式不同之处是OAUTH的授权不会使第三方触及到用户的帐号信息(如用户名与密码),即第三方无需使用用 ...
- 部署 instance 到 OVS flat network - 每天5分钟玩转 OpenStack(135)
上一节创建了 OVS flat network,今天我们部署 instance 并验证 flat 网络的连通性. launch 新的 instance "cirros-vm1",网 ...
- WordPress主题制作教程[壹] - 了解WP&结构&索引
最近开始筹备WordPress主题开发了.首先我们在此章节中进行了解什么是WP,以及WP的结构.通过这个文章索引到以后所写的WP系列教程. (抱歉,大家不要急,持续更新中....) 1.首先,我们来认 ...
- 在VB中使用Linq To SQLite注意事项
昨天使Linq To SQLite 支持VB,今天在VB中写了几条Linq语句,发现了几个问题: 1.在Linq To SQLite中的Linq语句查询后并不是得到的匿名数据类,而是将Linq转换为S ...
- cloudstack 修改显示名称
http://192.168.153.245:8900/client/api?command=updateVirtualMachineid=922d15e1-9be0-44ac-9494-ce5afc ...
- 安卓任意两个或多个Fragment之间的交互与刷新界面
平时项目中遇到一个问题:在子fragment中刷新父fragment的界面,通俗的说也就是在任何一个fragment中来刷新另一个fragment.大家都知道activity和fragment之间的交 ...
- shiro安全框架
原文:http://blog.csdn.net/boonya/article/details/8233303 可能大家早先会见过 J-security,这个是 Shiro 的前身.在 2009 年 3 ...
- PROCESS_YIELD()宏使用及过程分析<contiki学习笔记之八>
好吧,昨晚上研究了switch()的底层实现原理--发现它并不是一般C语言教科书上那样所言,当然,这对于本身就非常熟悉汇编的同学来说,是小菜一碟.世界上,很多事情是巧合与必然的结合体,没有无缘无故的爱 ...