zoukankan      html  css  js  c++  java
  • x264命令行参数解释

    本文对应的是x264命令行模式,VFW方式也用相同的参数,不过是图形界面,可以自己找对应的英文。

        使用格式:x264 默认选项 -o 输出文件 输入文件 [长x宽]
    输入支持格式:RAW/y4m/avi/avs(编译时可选)
    输出支持格式:264/mkv/mp4(编译时可选)

        x264的许多参数可以有-/--两种输入法,笔者也不知道为什么。以下等价参数用“参数1/参数2 <必需数值格式>”表示,参数尾部()内为个人推荐。

    -h/--help 帮助

    帧类型选项:

    -I/--keyint <整数> 最大IDR帧间距,默认250
    -i/--min-keyint <整数> 最小IDR帧间距,默认25
    --scenecut <整数> 画面动态变化限,当超出此值时插入I帧,默认40
    -b/--bframes <整数>     在IP帧之间可插入的B帧数量最大值,范围0~16,默认0
    --no-b-adapt            关闭自适应B帧判定(-b设为1时可用,其他不推荐)
    --b-bias <整数> 控制插入B帧判定,范围-100~+100,越高越容易插入B帧,默认0
    --b-pyramid             允许B帧做参考帧
    --no-cabac              关闭内容自适应二进制算术编码(CABAC,高效率的熵编码)(会提高速度,但严重影响质量)
    -r/--ref <整数>         最大参考帧数,范围0~16,默认1
    --nf                    关闭环路滤波(一种除马赛克算法)
    -f/--filter <alpha:beta>设置环路滤波的AlphaC和Beta的参数,范围-6-6,默认都为0

    码率控制选项:

    -q/--qp <整数> 固定量化模式并设置使用的量化值,范围0~51,0为无损压缩,默认26
    -B/--bitrate <整数> 设置平均码率
    --crf <整数> 质量模式,量化值动态可变(目前不太成熟,质量不如设置固定量化值)
    --qpmin <整数> 设置最小量化值,范围0~51,默认10
    --qpmax <整数> 设置最大量化值,范围0~51,默认51
    --qpstep <整数> 设置相邻帧之间的量化值差,范围0~50,默认4
    --ratetol <小数> 平均码率模式下,瞬时码率可以偏离的倍数,范围0.1~100.0,默认1.0
    --vbv-maxrate <整数> 平均码率模式下,最大瞬时码率,默认0(与-B设置相同)
    --vbv-bufsize <整数> 码率控制缓冲区的大小,单位kbit,默认0
    --vbv-init <小数> 码率控制缓冲区数据保留的最大数据量与缓冲区大小之比,范围0~1.0,默认0.9

    --ipratio <小数> I帧和P帧之间的量化系数,默认1.40
    --pbratio <小数> P帧和B帧之间的量化系数,默认1.30
    --色度-qp-offset <整数> 色度和亮度之间的量化差,范围-12~+12,默认0

    -p/--pass <1|2|3> 多次压缩码率控制
    1:第一次压缩,创建统计文件
    2:按建立的统计文件压缩并输出,不覆盖统计文件,
    3:按建立的统计文件压缩,优化统计文件
    --stats <字符串> 统计文件的名称,默认"x264_2pass.log"
    --rceq <字符串> 速率控制公式,默认"blurCplx^(1-qComp)"
    --qcomp <小数> 线性量化控制,0.0为固定码率,1.0为固定量化值,默认0.6,只用于2-pass和质量模式
    --cplxblur <小数> 根据相邻帧平滑量化值比例的最大值,范围0~99.9,默认20.0,只用于2-pass和质量模式
    --qblur <小数> 对统计文件结果平滑量化值比例的最大值,范围0~99.9,默认0.5,只用于2-pass

    --zones <z0>/<z1>/… 分段量化,格式为:<开始帧>,<结束帧>,<选项>,可选项为:q=<整数>(量化值)或b=<小数>(码率倍数)

    分析选项:

    -A/--analyse <字符串> 动态块划分方法,默认"p8x8,b8x8,i8x8,i4x4"。可选项:p8x8/p4x4/b8x8/i8x8/i4x4;none/all(p4x4需要p8x8. i8x8需要--8x8dct)
    --direct <字符串>       动态预测方式,默认"spatial"。可选项:none/spatial/temporal/auto
    -w/--weightb 允许B帧加权预测(可以减少相邻B帧质量低的影响)
    --me <字符串> 对全像素块动态预测搜索的方式,默认"hex",可选项:
    dia:菱形搜索,半径1 (快)
    hex:正六边形搜索,半径2
    umh:可变半径六边形搜索
    esa:全面搜索(很慢,而且效果与umh几乎相同)
    --merange <整数> --me为umh/esa时的搜索半径,最大64,默认16
    -m/--subme <整数> 动态预测和分区方式,可选项1~7,默认5(与压缩质量和时间关系密切,1是7速度的四倍以上)
    1:用全像素块进行动态搜索,对每个块再用快速模式进行四分之一像素块精确搜索
    2:用半像素块进行动态搜索,对每个块再用快速模式进行四分之一像素块精确搜索
    3:用半像素块进行动态搜索,对每个块再用质量模式进行四分之一像素块精确搜索
    4:用快速模式进行四分之一像素块精确搜索
    5:用质量模式进行四分之一像素块精确搜索
    6:进行I、P帧像素块的速率失真最优化(rdo)
    7:进行I、P帧运动矢量及块内部的速率失真最优化(质量最好)
    --b-rdo B帧也进行rdo,需要--subme在6以上
    --mixed-refs 可以在一帧内使用不同参考帧
    --no-chroma-me 不进行色度的动态预测
    --bime 可以平均B帧参考块的运动矢量
    -8/--8x8dct 可以使用8x8的离散余弦变换(DCT)
    -t/--trellis <整数>     Trellis量化,对每个8x8的块寻找合适的量化值,需要CABAC,默认0
    0:关闭
    1:只在最后编码时使用
    2:一直使用
    --no-fast-pskip 关闭快速P帧跳过检测
    --no-dct-decimate       关闭P帧联合编码(可以增加细节,但也会增大体积)
    --nr <整数> 噪声去除,范围0~100000,默认0

    --cqm <字符串> 设置外部量化矩阵格式,默认"flat",可选项:jvt/flat
    --cqmfile <字符串> 读取JM格式的外部量化矩阵文件,自动忽略其他--cqm*选项
    --cqm4 <list> 设置4x4的量化矩阵,用逗号分开,范围1~255的16个整数
    --cqm8 <list> 设置8x8的量化矩阵,用逗号分开,范围1~255的64个整数
    --cqm4i/--cqm4p/--cqm8i/--cqm8p 设置I、P帧不同的量化矩阵
    --cqm4iy/--cqm4ic/--cqm4py/--cqm4pc 设置亮度、色度不同的量化矩阵

    视频标准化选项:
    这些选项与编码无关,不过如果要用mp4之类的播放器,可以设置,风险自担

    --sar height 设置长宽比
    --overscan <字符串> 过扫描线,默认"undef"(不设置),可选项:show(观看)/crop(去除)
    --videoformat <字符串> 视频格式,默认"undef",可选项:component/pal/ntsc/secam/mac/undef
    --fullrange <字符串>    Specify full range samples setting,默认"off",可选项:off/on(我也不明白这是干什么的,请高手指点)
    --colorprim <字符串>    原始色度格式,默认"undef",可选项:undef/bt709/bt470m/bt470bg,smpte170m/smpte240m/film
    --transfer <字符串>     转换方式,默认"undef",可选项:undef/bt709/bt470m/bt470bg/linear,log100/log316/smpte170m/smpte240m
    --colormatrix <字符串>  色度矩阵设置,默认"undef",undef/bt709/fcc/bt470bg,smpte170m/smpte240m/GBR/YCgCo
    --chromaloc <整数> 色度样本指定,范围0~5,默认0

    输入、输出选项:

    --level <字符串> 设定等级(as defined by Annex A)(不明白,请高手指点)
    --fps <小数> 设定帧率
    --seek <整数> 设定起始帧
    --frames <整数> 最大编码帧数
    -o/--output 指定输出文件

    --threads <整数> 编码线程(使用分片技术)
    --thread-input 在编码线程中运行Avisynth
    --no-asm 关闭全部CPU优化指令
    --no-psnr 关闭PSNR计算
    --quiet 安静模式
    -v/--verbose 显示每一个帧的信息
    --progress 显示编码进程
    --visualize 显示运动矢量
    --sps-id <整数> 设置SPS和PPS的ID值,默认0
    --aud 使用数据单元定义符号

  • 相关阅读:
    python基础-函数递归
    JS中变量、作用域的本质,定义及使用方法
    JS数据类型和堆栈+变量比较和值的复制+参数传递和类型检测
    宣传页项目开发(三)
    宣传页项目开发(二)
    宣传页项目实战
    CSS Sprite雪碧图应用
    PS切图工具
    根据js轮播图原理写出合理的结构与样式、并实现js交互效果
    JS事件流、DOM事件流、IE事件处理、跨浏览器事件处理、事件对象与类型
  • 原文地址:https://www.cnblogs.com/rainbowzc/p/2422203.html
Copyright © 2011-2022 走看看