Last active
April 3, 2025 03:56
-
-
Save lextra2/f40641bdb3385ec7a986eed74f45c564 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
https://github.com/GPUOpen-LibrariesAndSDKs/AMF/tree/master/amf/public/include/components | |
https://github.com/GPUOpen-LibrariesAndSDKs/AMF/blob/master/amf/doc/AMF_Video_Encode_HEVC_API.md | |
https://github.com/GPUOpen-LibrariesAndSDKs/AMF/blob/master/amf/doc/AMF_Video_PreAnalysis_API.md | |
OBS | |
https://github.com/obsproject/obs-studio/blob/master/plugins/obs-ffmpeg/texture-amf.cpp | |
--------------------------------------------------------------------------------------------------------- | |
HevcQP_I=22 HevcQP_P=24 | |
PeakBitrate=16000000 VBVBufferSize=24000000 PAEngineType=4 PASceneChangeDetectionEnable=false | |
PeakBitrate=20000000 VBVBufferSize=80000000 PAEngineType=4 PASceneChangeDetectionEnable=false | |
https://github.com/GPUOpen-LibrariesAndSDKs/AMF/issues/439#issuecomment-1917886326 | |
https://github.com/GPUOpen-LibrariesAndSDKs/AMF/issues/417#issuecomment-2040289753 | |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"description": "VirtualDub external encoder profile collection", | |
"externalEncoders": { | |
"sets": { | |
"ProRes": { | |
"videoEncoder": "ProRes", | |
"audioEncoder": "", | |
"multiplexer": "", | |
"description": "", | |
"extension": "", | |
"processPartial": true, | |
"useOutputAsTemp": false | |
}, | |
"ProRes Q4": { | |
"videoEncoder": "ProRes Q4", | |
"audioEncoder": "", | |
"multiplexer": "", | |
"description": "", | |
"extension": "", | |
"processPartial": true, | |
"useOutputAsTemp": false | |
} | |
}, | |
"profiles": { | |
"ProRes": { | |
"name": "ProRes", | |
"program": "ffmpeg.exe", | |
"commandArguments": "-f rawvideo -pix_fmt %(pix_fmt) -s %(width)x%(height) -r %(fpsnum)/%(fpsden) -i - -c:v prores_ks -pix_fmt yuv420p10le %(tempvideofile)", | |
"outputFilename": "%(outputname).mov", | |
"type": 0, | |
"pixelFormat": "yuv444p16le", | |
"inputFormat": 0, | |
"checkReturnCode": true, | |
"logStdout": true, | |
"logStderr": true, | |
"bypassCompression": false, | |
"predeleteOutputFile": false | |
}, | |
"ProRes Q4": { | |
"name": "ProRes Q4", | |
"program": "ffmpeg.exe", | |
"commandArguments": "-f rawvideo -pix_fmt %(pix_fmt) -s %(width)x%(height) -r %(fpsnum)/%(fpsden) -i - -c:v prores_ks -q:v 4 -pix_fmt yuv420p10le %(tempvideofile)", | |
"outputFilename": "%(outputname).mov", | |
"type": 0, | |
"pixelFormat": "yuv444p16le", | |
"inputFormat": 0, | |
"checkReturnCode": true, | |
"logStdout": true, | |
"logStderr": true, | |
"bypassCompression": false, | |
"predeleteOutputFile": false | |
} | |
} | |
} | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
x264 --fullhelp | |
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 (no). | |
Outfile type is selected by filename: | |
.264 -> Raw bytestream | |
.mkv -> Matroska | |
.flv -> Flash Video | |
.mp4 -> MP4 if compiled with GPAC or L-SMASH support (lsmash) | |
Output bit depth: 8/10 | |
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: | |
--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] - Has no effect if mbtree is enabled (default) | |
--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 | |
--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. Default: 1.5x Logical Cores | |
--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 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
x265 [info]: HEVC encoder version 3.5+115-3cf6c1e53 | |
x265 [info]: build info [Windows][MSVC 1939][64 bit] 8bit+10bit+12bit | |
Syntax: x265 [options] infile [-o] outfile | |
infile can be YUV or Y4M | |
outfile is raw HEVC bitstream | |
Executable Options: | |
-h/--help Show this help text and exit | |
--fullhelp Show all options and exit | |
-V/--version Show version info and exit | |
Output Options: | |
-o/--output <filename> Bitstream output file name | |
-D/--output-depth 8|10|12 Output bit depth (also internal bit depth). Default 8 | |
--log-level <string> Logging level: none error warning info debug full. Default full | |
--no-progress Disable CLI progress reports | |
--csv <filename> Comma separated log file, if csv-log-level > 0 frame level statistics, else one line per run | |
--csv-log-level <integer> Level of csv logging, if csv-log-level > 0 frame level statistics, else one line per run: 0-2 | |
Input Options: | |
--input <filename> Raw YUV or Y4M input file name. `-` for stdin | |
--y4m 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> Chroma subsampling, auto-detected if Y4M | |
0 - i400 (4:0:0 monochrome) | |
1 - i420 (4:2:0 default) | |
2 - i422 (4:2:2) | |
3 - i444 (4:4:4) | |
--dhdr10-info <filename> JSON file containing the Creative Intent Metadata to be encoded as Dynamic Tone Mapping | |
--[no-]dhdr10-opt Insert tone mapping SEI only for IDR frames and when the tone mapping information changes. Default disabled | |
--dolby-vision-profile <float|integer> Specifies Dolby Vision profile ID. Currently only profile 5, profile 8.1 and profile 8.2 enabled. Specified as '5' or '50'. Default 0 (disabled). | |
--dolby-vision-rpu <filename> File containing Dolby Vision RPU metadata. | |
If given, x265's Dolby Vision metadata parser will fill the RPU field of input pictures with the metadata read from the file. Default NULL(disabled). | |
--nalu-file <filename> Text file containing SEI messages in the following format : <POC><space><PREFIX><space><NAL UNIT TYPE>/<SEI TYPE><space><SEI Payload> | |
-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 | |
--[no-]field Enable or disable field coding. Default disabled | |
--dither Enable dither if downscaling to 8 bit pixels. Default disabled | |
--[no-]copy-pic Copy buffers of input picture in frame. Default enabled | |
Quality reporting metrics: | |
--[no-]ssim Enable reporting SSIM metric scores. Default disabled | |
--[no-]psnr Enable reporting PSNR metric scores. Default disabled | |
Profile, Level, Tier: | |
-P/--profile <string> Enforce an encode profile: main, main10, mainstillpicture | |
--level-idc <integer|float> Force a minimum required decoder level (as '5.0' or '50') | |
--[no-]high-tier If a decoder level is specified, this modifier selects High tier of that level | |
--uhd-bd Enable UHD Bluray compatibility support | |
--[no-]allow-non-conformance Allow the encoder to generate profile NONE bitstreams. Default disabled | |
Threading, performance: | |
--pools <integer,...> Comma separated thread count per thread pool (pool per NUMA node) | |
'-' implies no threads on node, '+' implies one thread per core on node | |
-F/--frame-threads <integer> Number of concurrently encoded frames. 0: auto-determined by core count | |
--[no-]wpp Enable Wavefront Parallel Processing. Default enabled | |
--[no-]slices <integer> Enable Multiple Slices feature. Default 1 | |
--[no-]pmode Parallel mode analysis. Default disabled | |
--[no-]pme Parallel motion estimation. Default disabled | |
--[no-]asm <bool|int|string> Override CPU detection. Default: auto | |
Presets: | |
-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, grain, zerolatency, fastdecode | |
Quad-Tree size and depth: | |
-s/--ctu <64|32|16> Maximum CU size (WxH). Default 64 | |
--min-cu-size <64|32|16|8> Minimum CU size (WxH). Default 8 | |
--max-tu-size <32|16|8|4> Maximum TU size (WxH). Default 32 | |
--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 | |
--limit-tu <0..4> Enable early exit from TU recursion for inter coded blocks. Default 0 | |
Analysis: | |
--rd <1..6> Level of RDO in mode decision 1:least....6:full RDO. Default 3 | |
--[no-]psy-rd <0..5.0> Strength of psycho-visual rate distortion optimization, 0 to disable. Default 2.0 | |
--[no-]rdoq-level <0|1|2> Level of RDO in quantization 0:none, 1:levels, 2:levels & coding groups. Default 0 | |
--[no-]psy-rdoq <0..50.0> Strength of psycho-visual optimization in RDO quantization, 0 to disable. Default 0.0 | |
--dynamic-rd <0..4.0> Strength of dynamic RD, 0 to disable. Default 0.00 | |
--[no-]ssim-rd Enable ssim rate distortion optimization, 0 to disable. Default disabled | |
--[no-]rd-refine Enable QP based RD refinement for rd levels 5 and 6. Default disabled | |
--[no-]early-skip Enable early SKIP detection. Default enabled | |
--rskip <Integer> Enable recursion skip for early exit from CTU analysis during inter prediction. 1: exit using RD cost & CU homogeneity. 2: exit using CU edge density. 0: disabled. Default 1 | |
--rskip-edge-threshold Threshold in terms of percentage (an integer of range [0,100]) for minimum edge density in CU's used to prune the recursion depth. Applicable only to rskip mode 2. Value is preset dependent. Default: 5 | |
--[no-]tskip-fast Enable fast intra transform skipping. Default disabled | |
--[no-]splitrd-skip Enable skipping split RD analysis when sum of split CU rdCost larger than one split CU rdCost for Intra CU. Default disabled | |
--nr-intra <integer> An integer value in range of 0 to 2000, which denotes strength of noise reduction in intra CUs. Default 0 | |
--nr-inter <integer> An integer value in range of 0 to 2000, which denotes strength of noise reduction in inter CUs. Default 0 | |
--ctu-info <integer> Enable receiving ctu information asynchronously and determine reaction to the CTU information (0, 1, 2, 4, 6) Default 0 | |
- 1: force the partitions if CTU information is present | |
- 2: functionality of (1) and reduce qp if CTU information has changed | |
- 4: functionality of (1) and force Inter modes when CTU Information has changed, merge/skip otherwise | |
Enable this option only when planning to invoke the API function x265_encoder_ctu_info to copy ctu-info asynchronously | |
Coding tools: | |
-w/--[no-]weightp Enable weighted prediction in P slices. Default enabled | |
--[no-]weightb Enable weighted prediction in B slices. Default disabled | |
--[no-]cu-lossless Consider lossless mode in CU RDO decisions. Default disabled | |
--[no-]signhide Hide sign bit of one coeff per TU (rdo). Default enabled | |
--[no-]tskip Enable intra 4x4 transform skipping. Default disabled | |
Temporal / motion search options: | |
--max-merge <1..5> Maximum number of merge candidates. Default 3 | |
--ref <integer> max number of L0 references to be allowed (1 .. 16) Default 3 | |
--limit-refs <0|1|2|3> Limit references per depth (1) or CU (2) or both (3). Default 1 | |
--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 | |
--[no-]rect Enable rectangular motion partitions Nx2N and 2NxN. Default disabled | |
--[no-]amp Enable asymmetric motion partitions, requires --rect. Default disabled | |
--[no-]limit-modes Limit rectangular and asymmetric motion predictions. Default 0 | |
--[no-]temporal-mvp Enable temporal MV predictors. Default enabled | |
--[no-]hme Enable Hierarchical Motion Estimation. Default disabled | |
--hme-search <string> Motion search-method for HME L0,L1 and L2. Default(L0,L1,L2) is 1,2,2 | |
--hme-range <int>,<int>,<int> Motion search-range for HME L0,L1 and L2. Default(L0,L1,L2) is 16,32,48 | |
Spatial / intra options: | |
--[no-]strong-intra-smoothing Enable strong intra smoothing for 32x32 blocks. Default enabled | |
--[no-]constrained-intra Constrained intra prediction (use only intra coded reference pixels) Default disabled | |
--[no-]b-intra Enable intra in B frames in veryslow presets. Default enabled | |
--[no-]fast-intra 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: | |
--[no-]open-gop Enable open-GOP, allows I slices to be non-IDR. Default enabled | |
--cra-nal Force nal type to CRA to all frames expect first frame, works only with keyint 1. Default disabled | |
-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 | |
--gop-lookahead <integer> Extends gop boundary if a scenecut is found within this from keyint boundary. Default 0 | |
--no-scenecut Disable adaptive I-frame decision | |
--scenecut <integer> How aggressively to insert extra I-frames. Default 40 | |
--scenecut-bias <0..100.0> Bias for scenecut detection. Default 5.00 | |
--hist-scenecut Enables histogram based scene-cut detection using histogram based algorithm. | |
--no-hist-scenecut Disables histogram based scene-cut detection using histogram based algorithm. | |
--[no-]fades Enable detection and handling of fade-in regions. Default disabled | |
--scenecut-aware-qp <0..3> Enable increasing QP for frames inside the scenecut window around scenecut. Default disabled | |
0 - Disabled | |
1 - Forward masking | |
2 - Backward masking | |
3 - Bidirectional masking | |
--masking-strength <string> Comma separated values which specify the duration and offset for the QP increment for inter-frames when scenecut-aware-qp is enabled. | |
--scenecut-qp-config <file> File containing scenecut-aware-qp mode, window duration and offsets settings required for the masking. Works only with --pass 2 | |
--radl <integer> Number of RADL pictures allowed in front of IDR. Default 0 | |
--intra-refresh Use Periodic Intra Refresh instead of IDR frames | |
--rc-lookahead <integer> Number of frames for frame-type lookahead (determines encoder latency) Default 20 | |
--lookahead-slices <0..16> Number of slices to use per lookahead cost estimate. Default 8 | |
--lookahead-threads <integer> Number of threads to be dedicated to perform lookahead only. Default 0 | |
-b/--bframes <0..16> Maximum number of consecutive b-frames. 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 | |
--[no-]b-pyramid Use B-frames as references. Default enabled | |
--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,K,P,B,b. | |
QPs are restricted by qpmin/qpmax. | |
--force-flush <integer> Force the encoder to flush frames. Default 0 | |
0 - flush the encoder only when all the input pictures are over. | |
1 - flush all the frames even when the input is not over. Slicetype decision may change with this option. | |
2 - flush the slicetype decided frames only. | |
--[no-]-hrd-concat Set HRD concatenation flag for the first keyframe in the buffering period SEI. Default disabled | |
Rate control, Adaptive 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.0 | |
--[no-]lossless 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.90 | |
--vbv-end <float> Final VBV buffer emptiness (fraction of bufsize or in kbits). Default 0 (disabled) | |
--min-vbv-fullness <double> Minimum VBV fullness percentage to be maintained. Default 50.00 | |
--max-vbv-fullness <double> Maximum VBV fullness percentage to be maintained. Default 80.00 | |
--vbv-end-fr-adj <float> Frame from which qp has to be adjusted to achieve final decode buffer emptiness. Default 0 | |
--chunk-start <integer> First frame of the chunk. Default 0 (disabled) | |
--chunk-end <integer> Last frame of the chunk. Default 0 (disabled) | |
--pass Multi pass rate control. | |
- 1 : First pass, creates stats file | |
- 2 : Last pass, does not overwrite stats file | |
- 3 : Nth pass, overwrites stats file | |
--[no-]multi-pass-opt-analysis Refine analysis in 2 pass based on analysis information from pass 1 | |
--[no-]multi-pass-opt-distortion Use distortion of CTU from pass 1 to refine qp in 2 pass | |
--[no-]vbv-live-multi-pass Enable realtime VBV in rate control 2 pass.Default disabled | |
--stats Filename for stats file in multipass pass rate control. Default x265_2pass.log | |
--[no-]analyze-src-pics Motion estimation uses source frame planes. Default disable | |
--[no-]slow-firstpass Enable a slow first pass in a multipass rate control mode. Default enabled | |
--[no-]strict-cbr Enable stricter conditions and tolerance for bitrate deviations in CBR mode. Default disabled | |
--analysis-save <filename> Dump analysis info into the specified file. Default Disabled | |
--analysis-load <filename> Load analysis buffers from the file specified. Default Disabled | |
--analysis-reuse-file <filename> Specify file name used for either dumping or reading analysis data. Deault x265_analysis.dat | |
--analysis-reuse-level <1..10> Level of analysis reuse indicates amount of info stored/reused in save/load mode, 1:least..10:most. Now deprecated. Default 0 | |
--analysis-save-reuse-level <1..10> Indicates the amount of analysis info stored in save mode, 1:least..10:most. Default 0 | |
--analysis-load-reuse-level <1..10> Indicates the amount of analysis info reused in load mode, 1:least..10:most. Default 0 | |
--refine-analysis-type <string> Reuse anlaysis information received through API call. Supported options are avc and hevc. Default disabled - 0 | |
--scale-factor <int> Specify factor by which input video is scaled down for analysis save mode. Default 0 | |
--refine-intra <0..4> Enable intra refinement for encode that uses analysis-load. | |
- 0 : Forces both mode and depth from the save encode. | |
- 1 : Functionality of (0) + evaluate all intra modes at min-cu-size's depth when current depth is one smaller than min-cu-size's depth. | |
- 2 : Functionality of (1) + irrespective of size evaluate all angular modes when the save encode decides the best mode as angular. | |
- 3 : Functionality of (1) + irrespective of size evaluate all intra modes. | |
- 4 : Re-evaluate all intra blocks, does not reuse data from save encode. | |
Default:0 | |
--refine-inter <0..3> Enable inter refinement for encode that uses analysis-load. | |
- 0 : Forces both mode and depth from the save encode. | |
- 1 : Functionality of (0) + evaluate all inter modes at min-cu-size's depth when current depth is one smaller than | |
min-cu-size's depth. When save encode decides the current block as skip(for all sizes) evaluate skip/merge. | |
- 2 : Functionality of (1) + irrespective of size restrict the modes evaluated when specific modes are decided as the best mode by the save encode. | |
- 3 : Functionality of (1) + irrespective of size evaluate all inter modes. | |
Default:0 | |
--[no-]dynamic-refine Dynamically changes refine-inter level for each CU. Default disabled | |
--refine-mv <1..3> Enable mv refinement for load mode. Default 1 | |
--refine-ctu-distortion Store/normalize ctu distortion in analysis-save/load. | |
- 0 : Disabled. | |
- 1 : Store/Load ctu distortion to/from the file specified in analysis-save/load. | |
Default 0 - Disabled | |
--aq-mode <integer> Mode for Adaptive Quantization - 0:none 1:uniform AQ 2:auto variance 3:auto variance with bias to dark scenes 4:auto variance with edge information. Default 2 | |
--[no-]hevc-aq Mode for HEVC Adaptive Quantization. Default disabled | |
--aq-strength <float> Reduces blocking and blurring in flat and textured areas (0 to 3.0). Default 1.00 | |
--qp-adaptation-range <float> Delta QP range by QP adaptation based on a psycho-visual model (1.0 to 6.0). Default 1.00 | |
--[no-]aq-motion Block level QP adaptation based on the relative motion between the block and the frame. Default disabled | |
--[no-]sbrc Enables the segment based rate control. Default disabled | |
--qg-size <int> Specifies the size of the quantization group (64, 32, 16, 8). Default 32 | |
--[no-]cutree Enable cutree for Adaptive Quantization. Default enabled | |
--[no-]rc-grain Enable ratecontrol mode to handle grains specifically. turned on with tune grain. Default disabled | |
--ipratio <float> QP factor between I and P. Default 1.40 | |
--pbratio <float> QP factor between P and B. Default 1.30 | |
--qcomp <float> Weight given to predicted complexity. Default 0.60 | |
--qpstep <integer> The maximum single adjustment in QP allowed to rate control. Default 4 | |
--qpmin <integer> sets a hard lower limit on QP allowed to ratecontrol. Default 0 | |
--qpmax <integer> sets a hard upper limit on QP allowed to ratecontrol. Default 69 | |
--[no-]const-vbv Enable consistent vbv. turned on with tune grain. Default disabled | |
--cbqpoffs <integer> Chroma Cb QP Offset [-12..12]. Default 0 | |
--crqpoffs <integer> Chroma Cr QP Offset [-12..12]. Default 0 | |
--scaling-list <string> Specify a file containing HM style quant scaling lists or 'default' or 'off'. Default: off | |
--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) | |
--zonefile <filename> Zone file containing the zone boundaries and the parameters to be reconfigured. | |
--no-zonefile-rc-init This allow to use rate-control history across zones in zonefile. | |
--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 | |
--max-ausize-factor <float> This value controls the maximum AU size defined in specification. | |
It represents the percentage of maximum AU size used. Default 1.0 | |
Loop filters (deblock and SAO): | |
--[no-]deblock Enable Deblocking Loop Filter, optionally specify tC:Beta offsets Default enabled | |
--[no-]sao Enable Sample Adaptive Offset. Default enabled | |
--[no-]sao-non-deblock Use non-deblocked pixels, else right/bottom boundary areas skipped. Default disabled | |
--[no-]limit-sao Limit Sample Adaptive Offset types. Default disabled | |
--selective-sao <int> Enable slice-level SAO filter. Default 0 | |
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 | |
--display-window <string> Describe overscan cropping region as 'left,top,right,bottom' in pixels | |
--overscan <string> Specify whether it is appropriate for decoder to show cropped region: unknown, show or crop. Default unknown | |
--videoformat <string> Specify video format from unknown, component, pal, ntsc, secam, mac. Default unknown | |
--range <string> Specify black level and range of luma and chroma signals as full or limited Default limited | |
--colorprim <string> Specify color primaries from bt709, unknown, reserved, bt470m, bt470bg, smpte170m, | |
smpte240m, film, bt2020, smpte428, smpte431, smpte432. Default unknown | |
--transfer <string> Specify transfer characteristics from bt709, unknown, reserved, bt470m, bt470bg, smpte170m, | |
smpte240m, linear, log100, log316, iec61966-2-4, bt1361e, iec61966-2-1, | |
bt2020-10, bt2020-12, smpte2084, smpte428, arib-std-b67. Default unknown | |
--colormatrix <string> Specify color matrix setting from unknown, bt709, fcc, bt470bg, smpte170m, | |
smpte240m, gbr, ycgco, bt2020nc, bt2020c, smpte2085, chroma-derived-nc, chroma-derived-c, ictcp. Default unknown | |
--chromaloc <integer> Specify chroma sample location (0 to 5). Default of 0 | |
--master-display <string> SMPTE ST 2086 master display color volume info SEI (HDR) | |
format: G(x,y)B(x,y)R(x,y)WP(x,y)L(max,min) | |
--max-cll <string> Specify content light level info SEI as "cll,fall" (HDR). | |
--video-signal-type-preset <string> Specify combinations of color primaries, transfer characteristics, color matrix, range of luma and chroma signals, and chroma sample location | |
format: <system-id>[:<color-volume>] | |
This has higher precedence than individual VUI parameters. If any individual VUI option is specified together with this, | |
which changes the values set corresponding to the system-id or color-volume, it will be discarded. | |
The color-volume can be used only with the system-id options BT2100_PQ_YCC, BT2100_PQ_ICTCP, and BT2100_PQ_RGB. | |
system-id options and their corresponding values: | |
BT601_525: --colorprim smpte170m --transfer smpte170m --colormatrix smpte170m --range limited --chromaloc 0 | |
BT601_626: --colorprim bt470bg --transfer smpte170m --colormatrix bt470bg --range limited --chromaloc 0 | |
BT709_YCC: --colorprim bt709 --transfer bt709 --colormatrix bt709 --range limited --chromaloc 0 | |
BT709_RGB: --colorprim bt709 --transfer bt709 --colormatrix gbr --range limited | |
BT2020_YCC_NCL: --colorprim bt2020 --transfer bt2020-10 --colormatrix bt709 --range limited --chromaloc 2 | |
BT2020_RGB: --colorprim bt2020 --transfer smpte2084 --colormatrix bt2020nc --range limited | |
BT2100_PQ_YCC: --colorprim bt2020 --transfer smpte2084 --colormatrix bt2020nc --range limited --chromaloc 2 | |
BT2100_PQ_ICTCP: --colorprim bt2020 --transfer smpte2084 --colormatrix ictcp --range limited --chromaloc 2 | |
BT2100_PQ_RGB: --colorprim bt2020 --transfer smpte2084 --colormatrix gbr --range limited | |
BT2100_HLG_YCC: --colorprim bt2020 --transfer arib-std-b67 --colormatrix bt2020nc --range limited --chromaloc 2 | |
BT2100_HLG_RGB: --colorprim bt2020 --transfer arib-std-b67 --colormatrix gbr --range limited | |
FR709_RGB: --colorprim bt709 --transfer bt709 --colormatrix gbr --range full | |
FR2020_RGB: --colorprim bt2020 --transfer bt2020-10 --colormatrix gbr --range full | |
FRP3D65_YCC: --colorprim smpte432 --transfer bt709 --colormatrix smpte170m --range full --chromaloc 1 | |
color-volume options and their corresponding values: | |
P3D65x1000n0005: --master-display G(13250,34500)B(7500,3000)R(34000,16000)WP(15635,16450)L(10000000,5) | |
P3D65x4000n005: --master-display G(13250,34500)B(7500,3000)R(34000,16000)WP(15635,16450)L(40000000,50) | |
BT2100x108n0005: --master-display G(8500,39850)B(6550,2300)R(34000,146000)WP(15635,16450)L(10000000,1) | |
--[no-]cll Emit content light level info SEI. Default enabled | |
--[no-]hdr10 Control dumping of HDR10 SEI packet. If max-cll or master-display has non-zero values, this is enabled. Default disabled | |
--[no-]hdr-opt Add luma and chroma offsets for HDR/WCG content. Default disabled. Now deprecated. | |
--[no-]hdr10-opt Block-level QP optimization for HDR10 content. Default disabled. | |
--min-luma <integer> Minimum luma plane value of input source picture | |
--max-luma <integer> Maximum luma plane value of input source picture | |
Bitstream options: | |
--[no-]repeat-headers Emit SPS and PPS headers at each keyframe. Default disabled | |
--[no-]info Emit SEI identifying encoder and parameters. Default enabled | |
--[no-]hrd Enable HRD parameters signaling. Default disabled | |
--[no-]idr-recovery-sei Emit recovery point infor SEI at each IDR frame | |
--temporal-layers Enable a temporal sublayer for unreferenced B frames. Default disabled | |
--[no-]aud Emit access unit delimiters at the start of each access unit. Default disabled | |
--[no-]eob Emit end of bitstream nal unit at the end of the bitstream. Default disabled | |
--[no-]eos Emit end of sequence nal unit at the end of every coded video sequence. Default disabled | |
--hash <integer> Decoded Picture Hash SEI 0: disabled, 1: MD5, 2: CRC, 3: Checksum. Default 0 | |
--atc-sei <integer> Emit the alternative transfer characteristics SEI message where the integer is the preferred transfer characteristics. Default disabled | |
--pic-struct <integer> Set the picture structure and emits it in the picture timing SEI message. Values in the range 0..12. See D.3.3 of the HEVC spec. for a detailed explanation. | |
--log2-max-poc-lsb <integer> Maximum of the picture order count | |
--[no-]vui-timing-info Emit VUI timing information in the bistream. Default enabled | |
--[no-]vui-hrd-info Emit VUI HRD information in the bistream. Default enabled | |
--[no-]opt-qp-pps Dynamically optimize QP in PPS (instead of default 26) based on QPs in previous GOP. Default disabled | |
--[no-]opt-ref-list-length-pps Dynamically set L0 and L1 ref list length in PPS (instead of default 0) based on values in last GOP. Default disabled | |
--[no-]multi-pass-opt-rps Enable storing commonly used RPS in SPS in multi pass mode. Default disabled | |
--[no-]opt-cu-delta-qp Optimize to signal consistent CU level delta QPs in frame. Default disabled | |
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 | |
--recon-y4m-exec <string> pipe reconstructed frames to Y4M viewer, ex:"ffplay -i pipe:0 -autoexit" | |
--lowpass-dct Use low-pass subband dct approximation. Default disabled | |
--[no-]frame-dup Enable Frame duplication. Default disabled | |
--dup-threshold <integer> PSNR threshold for Frame duplication. Default 70 | |
--[no-]mcstf Enable GOP based temporal filter. Default 0 | |
ABR-ladder settings | |
--abr-ladder <file> File containing config settings required for the generation of ABR-ladder | |
Executable return codes: | |
0 - encode successful | |
1 - unable to parse command line | |
2 - unable to open encoder | |
3 - unable to generate stream headers | |
4 - encoder abort | |
SEI Message Options | |
--film-grain <filename> File containing Film Grain Characteristics to be written as a SEI Message | |
Complete documentation may be found at http://x265.readthedocs.org/en/default/cli.html |
x264 Updated Presets
medium
--b-adapt 2 --b-pyramid 0 --lookahead-threads 4
slow
--ref 4 --rc-lookahead 60 --subme 8 --trellis 2
slower
--ref 5 --rc-lookahead 60 --subme 9 --trellis 2 --me umh
veryslow
--ref 6 --rc-lookahead 60 --subme 10 --trellis 2 --me umh --merange 24
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
x264
too many lookahead threads significantly degrades lookahead accuracy
https://code.videolan.org/videolan/x264/-/blob/master/encoder/encoder.c?ref_type=heads#L1294
Benchmark Software Decoder
ffmpeg -benchmark -i H264.mkv -an -f null -