x256(1) encoder for creating H.265/HVEC video streams


x265 [options] infile [-o] outfile


x256 is a commandline encoder for creating H.265/High Efficency Video Coding (HEVC) video streams. infile can be a YUV or Y4M video stream. outfile will be used to store the raw HEVC bitstream.

Executable Options:

Show this help text and exit

Output Options:

-o/--output <filename>
Bitstream output file name
--log-level <string>
Logging level: none error warning info debug full. Default info
Disable CLI progress reports
Enable logging stats about distribution of cu across all modes. Default disabled
--csv <filename>
Comma separated log file, log level >= 3 frame log, else one line per run

Input Options:

--input <filename>
Raw YUV or Y4M input file name. `-` for stdin
Force parsing of input stream as YUV4MPEG2 regardless of file extension
--fps <float|rational>
Source frame rate (float or num/denom), auto-detected if Y4M
--input-res WxH
Source picture size [w x h], auto-detected if Y4M
--input-depth <integer>
Bit-depth of input file. Default 8
--input-csp <string>
Source color space: i420, i444 or i422, auto-detected if Y4M. Default: i420
-f/--frames <integer>
Maximum number of frames to encode. Default all
--seek <integer>
First frame to encode
--[no-]interlace <bff|tff>
Indicate input pictures are interlace fields in temporal order. Default progressive
Enable dither if downscaling to 8 bit pixels. Default disabled

Quality reporting metrics:

Enable reporting SSIM metric scores. Default disabled
Enable reporting PSNR metric scores. Default disabled

Profile, Level, Tier:

--profile <string>
Enforce an encode profile: main, main10, mainstillpicture
--level-idc <integer|float>
Force a minumum required decoder level (as '5.0' or '50')
If a decoder level is specified, this modifier selects High tier of that level

Threading, performance:

--threads <integer>
Number of threads for thread pool (0: detect CPU core count, default)
-F/--frame-threads <integer>
Number of concurrently encoded frames. 0: auto-determined by core count
Enable Wavefront Parallel Processing. Default enabled
Parallel mode analysis. Default disabled
Parallel motion estimation. Default disabled
--[no-]asm <bool|int|string>
Override CPU detection. Default: auto


-p/--preset <string>
Trade off performance for compression efficiency. Default medium
ultrafast, superfast, veryfast, faster, fast, medium, slow, slower, veryslow, or placebo
-t/--tune <string>
Tune the settings for a particular type of source or situation:
psnr, ssim, zerolatency, or fastdecode

Quad-Tree size and depth:

-s/--ctu <64|32|16>
Maximum CU size (default: 64x64). Default 64
--tu-intra-depth <integer>
Max TU recursive depth for intra CUs. Default 1
--tu-inter-depth <integer>
Max TU recursive depth for inter CUs. Default 1
Enable rectangular motion partitions Nx2N and 2NxN. Default disabled
Enable asymmetric motion partitions, requires --rect. Default disabled


--rd <0..6>
Level of RD in mode decision 0:least....6:full RDO. Default 3
--psy-rd <0..2.0>
Strength of psycho-visual rate distortion optimization, 0 to disable. Default 0.000000
--psy-rdoq <0..50.0>
Strength of psycho-visual optimization in quantization, 0 to disable. Default 0.000000
--nr <integer>
An integer value in range of 100 to 1000, which denotes strength of noise reduction. Default disabled
Enable fast intra transform skipping. Default disabled
Enable early SKIP detection. Default disabled
Enable early outs based on whether residual is coded. Default disabled

Coding tools:

Enable weighted prediction in P slices. Default enabled
Enable weighted prediction in B slices. Default disabled
Consider lossless mode in CU RDO decisions. Default disabled
Hide sign bit of one coeff per TU (rdo). Default enabled
Enable intra 4x4 transform skipping. Default disabled

Temporal / motion search options:

--me <string>
Motion search method dia hex umh star full. Default 1
-m/--subme <integer>
Amount of subpel refinement to perform (0:least .. 7:most). Default 2
--merange <integer>
Motion search range. Default 57
--max-merge <1..5>
Maximum number of merge candidates. Default 2
Enable temporal MV predictors. Default enabled

Spatial / intra options:

--[no-]strong-intra-smoothing Enable strong intra smoothing for 32x32 blocks. Default enabled
Constrained intra prediction (use only intra coded reference pixels) Default disabled
Enable intra in B frames in veryslow presets. Default disabled
Enable faster search method for angular intra predictions. Default disabled
--rdpenalty <0..2>
penalty for 32x32 intra TU in non-I slices. 0:disabled 1:RD-penalty 2:maximum. Default 0

Slice decision options:

Enable open-GOP, allows I slices to be non-IDR. Default enabled
-I/--keyint <integer>
Max IDR period in frames. -1 for infinite-gop. Default 250
-i/--min-keyint <integer>
Scenecuts closer together than this are coded as I, not IDR. Default: auto
Disable adaptive I-frame decision
--scenecut <integer>
How aggressively to insert extra I-frames. Default 40
--rc-lookahead <integer>
Number of frames for frame-type lookahead (determines encoder latency) Default 20
--bframes <integer>
Maximum number of consecutive b-frames (now it only enables B GOP structure) Default 4
--bframe-bias <integer>
Bias towards B frame decisions. Default 0
--b-adapt <0..2>
0 - none, 1 - fast, 2 - full (trellis) adaptive B frame scheduling. Default 2
Use B-frames as references. Default enabled
--ref <integer>
max number of L0 references to be allowed (1 .. 16) Default 3
--qpfile <string>
Force frametypes and QPs for some or all frames Format of each line: framenumber frametype QP QP is optional (none lets x265 choose). Frametypes: I,i,P,B,b. QPs are restricted by qpmin/qpmax.

Rate control, Quantization:

--bitrate <integer>
Target bitrate (kbps) for ABR (implied). Default 0
-q/--qp <integer>
QP for P slices in CQP mode (implied). --ipratio and --pbration determine other slice QPs
--crf <float>
Quality-based VBR (0-51). Default 28.000000
Enable lossless: bypass transform, quant and loop filters globally. Default disabled
--crf-max <float>
With CRF+VBV, limit RF to this value. Default 0.000000 May cause VBV underflows!
--crf-min <float>
With CRF+VBV, limit RF to this value. Default 0.000000 this specifies a minimum rate factor value for encode!
--vbv-maxrate <integer>
Max local bitrate (kbit/s). Default 0
--vbv-bufsize <integer>
Set size of the VBV buffer (kbit). Default 0
--vbv-init <float>
Initial VBV buffer occupancy (fraction of bufsize or in kbits). Default 0.900000
--aq-mode <integer>
Mode for Adaptive Quantization - 0:none 1:uniform AQ 2:auto variance. Default 2
--aq-strength <float>
Reduces blocking and blurring in flat and textured areas.(0 to 3.0). Default 1.000000
Enable cutree for Adaptive Quantization. Default enabled
--ipratio <float>
QP factor between I and P. Default 1.400000
--pbratio <float>
QP factor between P and B. Default 1.300000
--cbqpoffs <integer>
Chroma Cb QP Offset. Default 0
--crqpoffs <integer>
Chroma Cr QP Offset. Default 0
Filename for stats file in multipass pass rate control. Default x265_2pass.log
Multi pass rate control. 1: First pass, creates stats file 2: Last pass, does not overwrite stats file 3: Nth pass, overwrites stats file
Enable a slow first pass in a multipass rate control mode. Default disabled
--analysis-mode <string|int>
save - Dump analysis info into file, load - Load analysis buffers from the file. Default 0
--analysis-file <filename>
Specify file name used for either dumping or reading analysis data.
--scaling-list <string>
Specify a file containing HM style quant scaling lists or 'default' or 'off'. Default: off
--lambda-file <string>
Specify a file containing replacement values for the lambda tables MAX_MAX_QP+1 floats for lambda table, then again for lambda2 table Blank lines and lines starting with hash(#) are ignored Comma is considered to be white-space

Loop filters (deblock and SAO):

Enable Deblocking Loop Filter. Default enabled
Enable Sample Adaptive Offset. Default enabled
Use non-deblocked pixels, else right/bottom boundary areas skipped. Default disabled

VUI options:

--sar <width:height|int>
Sample Aspect Ratio, the ratio of width to height of an individual pixel. Choose from 0=undef, 1=1:1("square"), 2=12:11, 3=10:11, 4=16:11, 5=40:33, 6=24:11, 7=20:11, 8=32:11, 9=80:33, 10=18:11, 11=15:11, 12=64:33, 13=160:99, 14=4:3, 15=3:2, 16=2:1 or custom ratio of <int:int>. Default 0
--crop-rect <string>
Add 'left,top,right,bottom' to the bitstream-level cropping rectangle
--overscan <string>
Specify whether it is appropriate for decoder to show cropped region: undef, show or crop. Default undef
--videoformat <string>
Specify video format from undef, component, pal, ntsc, secam, mac. Default undef
--range <string>
Specify black level and range of luma and chroma signals as full or limited Default limited
--colorprim <string>
Specify color primaries from undef, bt709, bt470m, bt470bg, smpte170m, smpte240m, film, bt2020. Default undef
--transfer <string>
Specify transfer characteristics from undef, bt709, bt470m, bt470bg, smpte170m, smpte240m, linear, log100, log316, iec61966-2-4, bt1361e, iec61966-2-1, bt2020-10, bt2020-12. Default undef
--colormatrix <string>
Specify color matrix setting from undef, bt709, fcc, bt470bg, smpte170m, smpte240m, GBR, YCgCo, bt2020nc, bt2020c. Default undef
--chromaloc <integer>
Specify chroma sample location (0 to 5). Default of 0

Bitstream options:

Emit SEI identifying encoder and parameters. Default enabled
Emit access unit delimiters at the start of each access unit. Default disabled
Enable HRD parameters signalling. Default disabled
Emit SPS and PPS headers at each keyframe. Default disabled
--hash <integer>
Decoded Picture Hash SEI 0: disabled, 1: MD5, 2: CRC, 3: Checksum. Default 0

Reconstructed video options (debugging):

-r/--recon <filename>
Reconstructed raw image YUV or Y4M output file name
--recon-depth <integer>
Bit-depth of reconstructed raw image file. Defaults to input bit depth, or 8 if Y4M