x264 core:164 r3095 baee400 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).
- .264 -> Raw bytestream .mkv -> Matroska .flv -> Flash Video .mp4
-> MP4 if compiled with GPAC or L-SMASH support (gpac)
Output bit depth: 8/10
- -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:
- --direct auto --rc-lookahead 50 --ref 5
--subme 8 --trellis 2
- - 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 - 6: mono - 2D frame without any frame packing - 7:
tile format - L is on top-left, R split across
Ratecontrol:
- -q, --qp
<integer>
- Force constant QP (0-81, 0=lossless)
- -B, --bitrate
<integer>
- Set bitrate (kbit/s)
- --crf
<float>
- Quality-based VBR (-12-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 - 3: Auto-variance AQ with bias to dark scenes
- --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"] - flat, jvt
- --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,
bt2020, smpte428,
- smpte431, smpte432
- --transfer
<string>
- Specify transfer characteristics ["undef"] - undef, bt709,
bt470m, bt470bg, smpte170m,
- smpte240m,
linear, log100, log316,
- iec61966-2-4, bt1361e, iec61966-2-1, bt2020-10, bt2020-12, smpte2084,
smpte428, arib-std-b67
- --colormatrix
<string>
- Specify color matrix setting ["???"] - undef, bt709, fcc,
bt470bg, smpte170m,
- smpte240m,
GBR, YCgCo, bt2020nc, bt2020c,
- smpte2085, chroma-derived-nc, chroma-derived-c, ICtCp
- --chromaloc
<integer>
- Specify chroma sample location (0 to 5) [0]
- --mastering-display
<string> Specify 'G(x,y)B(x,y)R(x,y)WP(x,y)L(max,min)'
- for primaries, white point, and display brightness
- --cll
<string>
- Specify 'max_content,max_frame_average' content light levels
- --alternative-transfer
<string> Specify an alternative transfer
- characteristics ["undef"]
- - same values as --transfer
- --nal-hrd
<string>
- Signal HRD information (requires vbv-bufsize) - none, vbr, cbr (cbr not
allowed in .mp4)
- --filler
- Force hard-CBR and generate filler (implied by --nal-hrd cbr)
- --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:
- i400, i420, yv12, nv12,
nv21, i422, yv16, nv16,
- yuyv, uyvy, 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, uyvy422, uyyvyy411,
bgr8, bgr4, bgr4_byte, rgb8, rgb4, rgb4_byte, nv12, nv21, argb, rgba,
abgr, bgra, gray16be, gray16le, yuv440p, yuvj440p, yuva420p, rgb48be,
rgb48le, rgb565be, rgb565le, rgb555be, rgb555le, bgr565be, bgr565le,
bgr555be, bgr555le, vaapi_moco, vaapi_idct, vaapi_vld, yuv420p16le,
yuv420p16be, yuv422p16le, yuv422p16be, yuv444p16le, yuv444p16be,
dxva2_vld, rgb444le, rgb444be, bgr444le, bgr444be, ya8, bgr48be, bgr48le,
yuv420p9be, yuv420p9le, yuv420p10be, yuv420p10le, yuv422p10be,
yuv422p10le, yuv444p9be, yuv444p9le, yuv444p10be, yuv444p10le, yuv422p9be,
yuv422p9le, gbrp, gbrp9be, gbrp9le, gbrp10be, gbrp10le, gbrp16be,
gbrp16le, yuva422p, yuva444p, yuva420p9be, yuva420p9le, yuva422p9be,
yuva422p9le, yuva444p9be, yuva444p9le, yuva420p10be, yuva420p10le,
yuva422p10be, yuva422p10le, yuva444p10be, yuva444p10le, yuva420p16be,
yuva420p16le, yuva422p16be, yuva422p16le, yuva444p16be, yuva444p16le,
vdpau, xyz12le, xyz12be, nv16, nv20le, nv20be, rgba64be, rgba64le,
bgra64be, bgra64le, yvyu422, ya16be, ya16le, gbrap, gbrap16be, gbrap16le,
qsv, mmal, d3d11va_vld, cuda, 0rgb, rgb0, 0bgr, bgr0, yuv420p12be,
yuv420p12le, yuv420p14be, yuv420p14le, yuv422p12be, yuv422p12le,
yuv422p14be, yuv422p14le, yuv444p12be, yuv444p12le, yuv444p14be,
yuv444p14le, gbrp12be, gbrp12le, gbrp14be, gbrp14le, yuvj411p,
bayer_bggr8, bayer_rggb8, bayer_gbrg8, bayer_grbg8, bayer_bggr16le,
bayer_bggr16be, bayer_rggb16le, bayer_rggb16be, bayer_gbrg16le,
bayer_gbrg16be, bayer_grbg16le, bayer_grbg16be, xvmc, yuv440p10le,
yuv440p10be, yuv440p12le, yuv440p12be, ayuv64le, ayuv64be,
videotoolbox_vld, p010le, p010be, gbrap12be, gbrap12le, gbrap10be,
gbrap10le, mediacodec, gray12be, gray12le, gray10be, gray10le, p016le,
p016be, d3d11, gray9be, gray9le, gbrpf32be, gbrpf32le, gbrapf32be,
gbrapf32le, drm_prime, opencl, gray14be, gray14le, grayf32be, grayf32le,
yuva422p12be, yuva422p12le, yuva444p12be, yuva444p12le, nv24, nv42,
vulkan, y210be, y210le, x2rgb10le, x2rgb10be
- --output-csp
<string>
- Specify output colorspace ["i420"] - i400, i420, i422, i444,
rgb
--input-depth <integer> Specify input bit depth
for raw input
--output-depth <integer> Specify output bit
depth
- --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
- --avcintra-class
<integer> Use compatibility hacks for AVC-Intra class
- - 50, 100, 200, 300, 480
- --avcintra-flavor
<string> AVC-Intra flavor ["panasonic"]
- - panasonic, sony
- --stitchable
- Don't optimize headers based on video content Ensures ability to recombine
a segmented encode
- -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
- --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]: i400, i420, yv12, nv12, nv21, i422,
yv16, nv16, yuyv, uyvy, 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.nl/index.php/Select#SelectEvery
(libswscale 5.9.100) (libavformat 58.76.100) (ffmpegsource
3.0.1.0) (gpac 2.0) built on Jun 10 2022, gcc: 11.3.0 x264 configuration:
--chroma-format=all libx264 configuration:
--chroma-format=all x264 license: GPL version 2 or later
libswscale/libavformat/ffmpegsource license: GPL version 2 or later