DESCRIPTION

x264 core:133 r2339 585324f Syntax: x264 [options] -o outfile infile

Infile can be raw (in which case resolution is required),

  • or YUV4MPEG (*.y4m), or Avisynth if compiled with support (yes). or libav* formats if compiled with lavf support (yes) or ffms support (yes).

Outfile type is selected by filename:

  • .264 -> Raw bytestream .mkv -> Matroska .flv -> Flash Video .mp4 -> MP4 if compiled with GPAC support (yes)

Output bit depth: 10 (configured at compile time)

OPTIONS

-h, --help

List basic options

--longhelp

List more options

--fullhelp

List all options

Example usage:

  • Constant quality mode:

  • x264 --crf 24 -o <output> <input>

  • Two-pass with a bitrate of 1000kbps:

  • x264 --pass 1 --bitrate 1000 -o <output> <input> x264 --pass 2 --bitrate 1000 -o <output> <input>

  • Lossless:

  • x264 --qp 0 -o <output> <input>

  • Maximum PSNR at the cost of speed and visual quality:

  • x264 --preset placebo --tune psnr -o <output> <input>

  • Constant bitrate at 1000kbps with a 2 second-buffer:

  • x264 --vbv-bufsize 2000 --bitrate 1000 -o <output> <input>

Presets:

--profile <string>

Force the limits of an H.264 profile Overrides all settings. - baseline:

  • --no-8x8dct --bframes 0 --no-cabac --cqm flat --weightp 0 No interlaced. No lossless.

  • - main:

  • --no-8x8dct --cqm flat No lossless.

  • - high:

  • No lossless.

  • - high10:

  • No lossless. Support for bit depth 8-10.

  • - high422:

  • No lossless. Support for bit depth 8-10. Support for 4:2:0/4:2:2 chroma subsampling.

  • - high444:

  • Support for bit depth 8-10. Support for 4:2:0/4:2:2/4:4:4 chroma subsampling.

--preset <string>

Use a preset to select encoding settings [medium] Overridden by user settings. - ultrafast:

  • --no-8x8dct --aq-mode 0 --b-adapt 0 --bframes 0 --no-cabac --no-deblock --no-mbtree --me dia --no-mixed-refs --partitions none --rc-lookahead 0 --ref 1 --scenecut 0 --subme 0 --trellis 0 --no-weightb --weightp 0

  • - superfast:

  • --no-mbtree --me dia --no-mixed-refs --partitions i8x8,i4x4 --rc-lookahead 0 --ref 1 --subme 1 --trellis 0 --weightp 1

  • - veryfast:

  • --no-mixed-refs --rc-lookahead 10 --ref 1 --subme 2 --trellis 0 --weightp 1

  • - faster:

  • --no-mixed-refs --rc-lookahead 20 --ref 2 --subme 4 --weightp 1

  • - fast:

  • --rc-lookahead 30 --ref 2 --subme 6 --weightp 1

  • - medium:

  • Default settings apply.

  • - slow:

  • --b-adapt 2 --direct auto --me umh --rc-lookahead 50 --ref 5 --subme 8

  • - slower:

  • --b-adapt 2 --direct auto --me umh --partitions all --rc-lookahead 60 --ref 8 --subme 9 --trellis 2

  • - veryslow:

  • --b-adapt 2 --bframes 8 --direct auto --me umh --merange 24 --partitions all --ref 16 --subme 10 --trellis 2 --rc-lookahead 60

  • - placebo:

  • --bframes 16 --b-adapt 2 --direct auto --slow-firstpass --no-fast-pskip --me tesa --merange 24 --partitions all --rc-lookahead 60 --ref 16 --subme 11 --trellis 2

--tune <string>

Tune the settings for a particular type of source or situation

  • Overridden by user settings. Multiple tunings are separated by commas. Only one psy tuning can be used at a time. - film (psy tuning):

  • --deblock -1:-1 --psy-rd <unset>:0.15

  • - animation (psy tuning):

  • --bframes {+2} --deblock 1:1 --psy-rd 0.4:<unset> --aq-strength 0.6 --ref {Double if >1 else 1}

  • - grain (psy tuning):

  • --aq-strength 0.5 --no-dct-decimate --deadzone-inter 6 --deadzone-intra 6 --deblock -2:-2 --ipratio 1.1 --pbratio 1.1 --psy-rd <unset>:0.25 --qcomp 0.8

  • - stillimage (psy tuning):

  • --aq-strength 1.2 --deblock -3:-3 --psy-rd 2.0:0.7

  • - psnr (psy tuning):

  • --aq-mode 0 --no-psy

  • - ssim (psy tuning):

  • --aq-mode 2 --no-psy

  • - fastdecode:

  • --no-cabac --no-deblock --no-weightb --weightp 0

  • - zerolatency:

  • --bframes 0 --force-cfr --no-mbtree --sync-lookahead 0 --sliced-threads --rc-lookahead 0

--slow-firstpass

Don't force these faster settings with --pass 1: --no-8x8dct --me dia --partitions none --ref 1 --subme {2 if >2 else unchanged} --trellis 0 --fast-pskip

Frame-type options: -I, --keyint <integer or "infinite"> Maximum GOP size [250]

-i, --min-keyint <integer>

Minimum GOP size [auto]

--no-scenecut

Disable adaptive I-frame decision

--scenecut <integer>

How aggressively to insert extra I-frames [40]

--intra-refresh

Use Periodic Intra Refresh instead of IDR frames

-b, --bframes <integer>

Number of B-frames between I and P [3]

--b-adapt <integer>

Adaptive B-frame decision method [1] Higher values may lower threading efficiency. - 0: Disabled - 1: Fast - 2: Optimal (slow with high --bframes)

--b-bias <integer>

Influences how often B-frames are used [0]

--b-pyramid <string>

Keep some B-frames as references [normal] - none: Disabled - strict: Strictly hierarchical pyramid - normal: Non-strict (not Blu-ray compatible)

--open-gop

Use recovery points to close GOPs Only available with b-frames

--no-cabac

Disable CABAC

-r, --ref <integer>

Number of reference frames [3]

--no-deblock

Disable loop filter

-f, --deblock <alpha:beta>

Loop filter parameters [0:0]

--slices <integer>

Number of slices per frame; forces rectangular slices and is overridden by other slicing options

--slices-max <integer>

Absolute maximum slices per frame; overrides slice-max-size/slice-max-mbs when necessary --slice-max-size <integer> Limit the size of each slice in bytes --slice-max-mbs <integer> Limit the size of each slice in macroblocks (max) --slice-min-mbs <integer> Limit the size of each slice in macroblocks (min)

--tff

Enable interlaced mode (top field first)

--bff

Enable interlaced mode (bottom field first)

--constrained-intra

Enable constrained intra prediction.

--pulldown <string>

Use soft pulldown to change frame rate - none, 22, 32, 64, double, triple, euro (requires cfr input)

--fake-interlaced

Flag stream as interlaced but encode progressive. Makes it possible to encode 25p and 30p Blu-Ray streams. Ignored in interlaced mode.

--frame-packing <integer> For stereoscopic videos define frame arrangement

- 0: checkerboard - pixels are alternatively from L and R - 1: column alternation - L and R are interlaced by column - 2: row alternation - L and R are interlaced by row - 3: side by side - L is on the left, R on the right - 4: top bottom - L is on top, R on bottom - 5: frame alternation - one view per frame

Ratecontrol:

-q, --qp <integer>

Force constant QP (0-69, 0=lossless)

-B, --bitrate <integer>

Set bitrate (kbit/s)

--crf <float>

Quality-based VBR (0-51) [23.0] --rc-lookahead <integer> Number of frames for frametype lookahead [40] --vbv-maxrate <integer> Max local bitrate (kbit/s) [0] --vbv-bufsize <integer> Set size of the VBV buffer (kbit) [0]

--vbv-init <float>

Initial VBV buffer occupancy [0.9]

--crf-max <float>

With CRF+VBV, limit RF to this value May cause VBV underflows!

--qpmin <integer>

Set min QP [0]

--qpmax <integer>

Set max QP [81]

--qpstep <integer>

Set max QP step [4]

--ratetol <float>

Tolerance of ABR ratecontrol and VBV [1.0]

--ipratio <float>

QP factor between I and P [1.40]

--pbratio <float>

QP factor between P and B [1.30]

--chroma-qp-offset <integer>

QP difference between chroma and luma [0]

--aq-mode <integer>

AQ method [1] - 0: Disabled - 1: Variance AQ (complexity mask) - 2: Auto-variance AQ (experimental)

--aq-strength <float>

Reduces blocking and blurring in flat and textured areas. [1.0]

-p, --pass <integer>

Enable multipass ratecontrol - 1: First pass, creates stats file - 2: Last pass, does not overwrite stats file - 3: Nth pass, overwrites stats file

--stats <string>

Filename for 2 pass stats ["x264_2pass.log"]

--no-mbtree

Disable mb-tree ratecontrol.

--qcomp <float>

QP curve compression [0.60]

--cplxblur <float>

Reduce fluctuations in QP (before curve compression) [20.0]

--qblur <float>

Reduce fluctuations in QP (after curve compression) [0.5]

--zones <zone0>/<zone1>/...

Tweak the bitrate of regions of the video Each zone is of the form

  • <start frame>,<end frame>,<option> where <option> is either

  • q=<integer> (force QP)

or

b=<float> (bitrate multiplier)

--qpfile <string>

Force frametypes and QPs for some or all frames Format of each line: framenumber frametype QP QP is optional (none lets x264 choose). Frametypes: I,i,K,P,B,b.

  • K=<I or i> depending on open-gop setting

  • QPs are restricted by qpmin/qpmax.

Analysis:

-A, --partitions <string>

Partitions to consider ["p8x8,b8x8,i8x8,i4x4"] - p8x8, p4x4, b8x8, i8x8, i4x4 - none, all (p4x4 requires p8x8. i8x8 requires --8x8dct.)

--direct <string>

Direct MV prediction mode ["spatial"] - none, spatial, temporal, auto

--no-weightb

Disable weighted prediction for B-frames

--weightp <integer>

Weighted prediction for P-frames [2] - 0: Disabled - 1: Weighted refs - 2: Weighted refs + Duplicates

--me <string>

Integer pixel motion estimation method ["hex"] - dia: diamond search, radius 1 (fast) - hex: hexagonal search, radius 2 - umh: uneven multi-hexagon search - esa: exhaustive search - tesa: hadamard exhaustive search (slow)

--merange <integer>

Maximum motion vector search range [16]

--mvrange <integer>

Maximum motion vector length [-1 (auto)]

--mvrange-thread <int>

Minimum buffer between threads [-1 (auto)]

-m, --subme <integer>

Subpixel motion estimation and mode decision [7] - 0: fullpel only (not recommended) - 1: SAD mode decision, one qpel iteration - 2: SATD mode decision - 3-5: Progressively more qpel - 6: RD mode decision for I/P-frames - 7: RD mode decision for all frames - 8: RD refinement for I/P-frames - 9: RD refinement for all frames - 10: QP-RD - requires trellis=2, aq-mode>0 - 11: Full RD: disable all early terminations

--psy-rd <float:float>

Strength of psychovisual optimization ["1.0:0.0"] #1: RD (requires subme>=6) #2: Trellis (requires trellis, experimental)

--no-psy

Disable all visual optimizations that worsen both PSNR and SSIM.

--no-mixed-refs

Don't decide references on a per partition basis

--no-chroma-me

Ignore chroma in motion estimation

--no-8x8dct

Disable adaptive spatial transform size

-t, --trellis <integer>

Trellis RD quantization. [1] - 0: disabled - 1: enabled only on the final encode of a MB - 2: enabled on all mode decisions

--no-fast-pskip

Disables early SKIP detection on P-frames

--no-dct-decimate

Disables coefficient thresholding on P-frames

--nr <integer>

Noise reduction [0]

--deadzone-inter <int>

Set the size of the inter luma quantization deadzone [21]

--deadzone-intra <int>

Set the size of the intra luma quantization deadzone [11] Deadzones should be in the range 0 - 32.

--cqm <string>

Preset quant matrices ["flat"] - jvt, flat

--cqmfile <string>

Read custom quant matrices from a JM-compatible file Overrides any other --cqm* options.

--cqm4 <list>

Set all 4x4 quant matrices Takes a comma-separated list of 16 integers.

--cqm8 <list>

Set all 8x8 quant matrices Takes a comma-separated list of 64 integers.

--cqm4i, --cqm4p, --cqm8i, --cqm8p <list>

Set both luma and chroma quant matrices

--cqm4iy, --cqm4ic, --cqm4py, --cqm4pc <list>

Set individual quant matrices

Video Usability Info (Annex E): The VUI settings are not used by the encoder but are merely suggestions to the playback equipment. See doc/vui.txt for details. Use at your own risk.

--overscan <string>

Specify crop overscan setting ["undef"] - undef, show, crop

--videoformat <string>

Specify video format ["undef"] - component, pal, ntsc, secam, mac, undef

--range <string>

Specify color range ["auto"] - auto, tv, pc

--colorprim <string>

Specify color primaries ["undef"] - undef, bt709, bt470m, bt470bg

  • smpte170m, smpte240m, film

--transfer <string>

Specify transfer characteristics ["undef"] - undef, bt709, bt470m, bt470bg, linear,

  • log100, log316, smpte170m, smpte240m

--colormatrix <string>

Specify color matrix setting ["???"] - undef, bt709, fcc, bt470bg

  • smpte170m, smpte240m, GBR, YCgCo

--chromaloc <integer>

Specify chroma sample location (0 to 5) [0]

--nal-hrd <string>

Signal HRD information (requires vbv-bufsize) - none, vbr, cbr (cbr not allowed in .mp4)

--pic-struct

Force pic_struct in Picture Timing SEI

--crop-rect <string>

Add 'left,top,right,bottom' to the bitstream-level cropping rectangle

Input/Output:

-o, --output <string>

Specify output file

--muxer <string>

Specify output container format ["auto"] - auto, raw, mkv, flv, mp4

--demuxer <string>

Specify input container format ["auto"] - auto, raw, y4m, avs, lavf, ffms

--input-fmt <string>

Specify input file format (requires lavf support)

--input-csp <string>

Specify input colorspace format for raw input - valid csps for `raw' demuxer:

  • i420, yv12, nv12, i422, yv16, nv16, i444, yv24, bgr, bgra, rgb

  • - valid csps for `lavf' demuxer:

  • yuv420p, yuyv422, rgb24, bgr24, yuv422p, yuv444p, yuv410p, yuv411p, gray, monow, monob, pal8, yuvj420p, yuvj422p, yuvj444p, xvmcmc, xvmcidct, uyvy422, uyyvyy411, bgr8, bgr4, bgr4_byte, rgb8, rgb4, rgb4_byte, nv12, nv21, argb, rgba, abgr, bgra, gray16be, gray16le, yuv440p, yuvj440p, yuva420p, vdpau_h264, vdpau_mpeg1, vdpau_mpeg2, vdpau_wmv3, vdpau_vc1, rgb48be, rgb48le, rgb565be, rgb565le, rgb555be, rgb555le, bgr565be, bgr565le, bgr555be, bgr555le, vaapi_moco, vaapi_idct, vaapi_vld, yuv420p16le, yuv420p16be, yuv422p16le, yuv422p16be, yuv444p16le, yuv444p16be, vdpau_mpeg4, dxva2_vld, rgb444le, rgb444be, bgr444le, bgr444be, y400a, bgr48be, bgr48le, yuv420p9be, yuv420p9le, yuv420p10be, yuv420p10le, yuv422p10be, yuv422p10le, yuv444p9be, yuv444p9le, yuv444p10be, yuv444p10le, yuv422p9be, yuv422p9le, vda_vld, gbrp, gbrp9be, gbrp9le, gbrp10be, gbrp10le, gbrp16be, gbrp16le

--output-csp <string>

Specify output colorspace ["i420"] - i420, i422, i444, rgb --input-depth <integer> Specify input bit depth for raw input

--input-range <string>

Specify input color range ["auto"] - auto, tv, pc

--input-res <intxint>

Specify input resolution (width x height)

--index <string>

Filename for input index file

--sar width:height

Specify Sample Aspect Ratio

--fps <float|rational>

Specify framerate

--seek <integer>

First frame to encode

--frames <integer>

Maximum number of frames to encode

--level <string>

Specify level (as defined by Annex A)

--bluray-compat

Enable compatibility hacks for Blu-ray support

-v, --verbose

Print stats for each frame

--no-progress

Don't show the progress indicator while encoding

--quiet

Quiet Mode

--log-level <string>

Specify the maximum level of logging ["info"] - none, error, warning, info, debug

--psnr

Enable PSNR computation

--ssim

Enable SSIM computation

--threads <integer>

Force a specific number of threads --lookahead-threads <integer> Force a specific number of lookahead threads

--sliced-threads

Low-latency but lower-efficiency threading

--thread-input

Run Avisynth in its own thread --sync-lookahead <integer> Number of buffer frames for threaded lookahead

--non-deterministic

Slightly improve quality of SMP, at the cost of repeatability

--cpu-independent

Ensure exact reproducibility across different cpus, as opposed to letting them select different algorithms

--asm <integer>

Override CPU detection

--no-asm

Disable all CPU optimizations

--opencl

Enable use of OpenCL --opencl-clbin <string> Specify path of compiled OpenCL kernel cache

--opencl-device <integer>

Specify OpenCL device ordinal

--visualize

Show MB types overlayed on the encoded video

--dump-yuv <string>

Save reconstructed frames

--sps-id <integer>

Set SPS and PPS id numbers [0]

--aud

Use access unit delimiters

--force-cfr

Force constant framerate timestamp generation

--tcfile-in <string>

Force timestamp generation with timecode file

--tcfile-out <string>

Output timecode v2 file from input timestamps

--timebase <int/int>

Specify timebase numerator and denominator

<integer>

Specify timebase numerator for input timecode file or specify timebase denominator for other input

--dts-compress

Eliminate initial delay with container DTS hack

Filtering: --vf, --video-filter <filter0>/<filter1>/... Apply video filtering to the input file

  • Filter options may be specified in <filter>:<option>=<value> format.

  • Available filters: crop:left,top,right,bottom

  • removes pixels from the edges of the frame

  • resize:[width,height][,sar][,fittobox][,csp][,method]

  • resizes frames based on the given criteria: - resolution only: resizes and adapts sar to avoid stretching - sar only: sets the sar and resizes to avoid stretching - resolution and sar: resizes to given resolution and sets the sar - fittobox: resizes the video based on the desired constraints

  • - width, height, both

  • - fittobox and sar: same as above except with specified sar - csp: convert to the given csp. syntax: [name][:depth]

  • - valid csp names [keep current]: i420, yv12, nv12, i422, yv16, nv16, i444, yv24, bgr, bgra, rgb - depth: 8 or 16 bits per pixel [keep current]

  • note: not all depths are supported by all csps. - method: use resizer method ["bicubic"]

  • - fastbilinear, bilinear, bicubic, experimental, point, - area, bicublin, gauss, sinc, lanczos, spline

  • select_every:step,offset1[,...]

  • apply a selection pattern to input frames step: the number of frames in the pattern offsets: the offset into the step to select a frame see: http://avisynth.org/mediawiki/Select#SelectEvery

(libswscale 2.1.2) (libavformat 55.1.0) (ffmpegsource 2.17.4.0) built on Jul 26 2013, gcc: 4.8.1 configuration: --bit-depth=10 --chroma-format=all x264 license: GPL version 2 or later libswscale/libavformat/ffmpegsource license: GPL version 2 or later