x264.exe下载使用

来源:互联网 发布:如何做到数据安全 编辑:程序博客网 时间:2024/05/16 13:46

    为了看看x264.exe编出的.264文件,网上找了下,在http://x264.nl/上有针对32bit和64bit的x264encoder,decoder的镜像,还有各种gui版本

    对于x264的使用参看x264使用介绍,文档中有关压片的概念。以及http://blog.sina.com.cn/s/blog_51396f890100ojhx.html

帧类型选项:

-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>设置环路滤波的AlphaCBeta的参数,范围-6-6,默认都为0

码率控制选项:

-q/--qp <整数固定量化模式并设置使用的量化值,范围0~510为无损压缩,默认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
--chroma-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=<小数>(码率倍数)

--qpfile<字符串帧定义,可以在文件里定义每个帧的种类和Q

分析选项:

-A/--analyse <字符串动态块划分方法,默认"p8x8,b8x8,i8x8,i4x4"。可选项:p8x8/p4x4/b8x8/i8x8/i4x4none/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 <整数> --meumh/esa时的搜索半径,最大64,默认16
-m/--subme <整数动态预测和分区方式,可选项1~7,默认5(与压缩质量和时间关系密切,17速度的四倍以上)
1:用全像素块进行动态搜索,对每个块再用快速模式进行四分之一像素块精确搜索
2:用半像素块进行动态搜索,对每个块再用快速模式进行四分之一像素块精确搜索
3:用半像素块进行动态搜索,对每个块再用质量模式进行四分之一像素块精确搜索
4:用快速模式进行四分之一像素块精确搜索
5:用质量模式进行四分之一像素块精确搜索
6:进行IP帧像素块的速率失真最优化(rdo)
7:进行IP帧运动矢量及块内部的速率失真最优化(质量最好)
--b-rdo B帧也进行rdo,需要--subme6以上
--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~25516个整数
--cqm8 <list> 设置8x8的量化矩阵,用逗号分开,范围1~25564个整数
--cqm4i/--cqm4p/--cqm8i/--cqm8p 设置IP帧不同的量化矩阵
--cqm4iy/--cqm4ic/--cqm4py/--cqm4pc 设置亮度、色度不同的量化矩阵

视频标准化选项:
这些选项与编码无关,不过如果要用mp4之类的播放器,可以设置,风险自担
--sar width: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/bt470bgsmpte170m/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 <小数|rational> 设定帧率
--seek <整数设定起始帧
--frames <整数最大编码帧数
-o/--output 指定输出文件

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



    另外在使用命令行时可以直接将文件拖入命令行窗口以显示绝对路径名,避免繁杂的输入

    特定的,对于qcif 文件 x264 -o E:\x264\testvideo\yuvfile\foreman_cif.264 E:\x264\testvideo\yuvfile\foreman_cif.yuv 

会出现raw input requires a resolution could not open input file '...' 错误,表明需要指定yuv文件的分辨率

    有两种解决方法,一:将输入文件名foreman_cif.yuv 改为foreman_cif_352x288.yuv

                                    二:添加参数选项 --input-res 352x288 (这在输入x264 --fullhelp 可以查到)

  dos使用:x264 --fullhelp | find "asm"  可以使用这个命令查找关于x264help文件中与asm相关的指令

                    x264 --fullhelp | more 分屏显示fullhelp的内容

                    复制指令,右击选择标记,然后选择要复制的内容,再右击一次,

E:\x264\testvideo>x264 --input-res 352x288 -o --no-asm E:\x264\testvideo\yuvfile\foreman_cif.264 E:\x264\testvideo\yuvfile\foreman_cif.yuv


原创粉丝点击