NVEncC option list
August 12, 2026 · View on GitHub
- Command line example
- Basic commands
- More practical commands
- example of using hw decoder
- example of using hw decoder (interlaced)
- avs (Avisynth) example (avs and vpy can also be read via vfw)
- example of pipe usage
- pipe usage from ffmpeg
- Passing video & audio from ffmpeg
- Passing filtered results & audio to ffmpeg
- Copy all tracks and metadata during video encode
- Option format
- Display options
- -h, -? --help
- -v, --version
- --option-list
- --check-device
- --check-hw [<int>]
- --check-features [<int>]
- --check-preset-params
- --check-environment
- --check-codecs, --check-decoders, --check-encoders
- --check-profiles <string>
- --check-formats
- --check-protocols
- --check-avdevices
- --check-filters
- --check-avversion
- Basic encoding options
- -d, --device <int>
- -c, --codec <string>
- -o, --output <string>
- -i, --input <string>
- --raw
- --y4m
- --avi
- --avs
- --vpy
- --avsw [<string>]
- --avhw
- --interlace <string>
- --video-track <int>
- --crop <int>,<int>,<int>,<int>
- --frames <int>
- --fps <int>/<int> or <float>
- --input-res <int>x<int>
- --output-res <int>x<int>[,<string>=<string>]
- --input-csp <string>
- Encode Mode Options
- Other Options for Encoder
- -u, --preset
- --tune <string>
- --output-depth <int>
- --output-csp <string>
- --multipass <string>
- --lossless [H.264/HEVC]
- --max-bitrate <int>
- --vbv-bufsize <int>
- --qp-init <int> or <int>:<int>:<int>
- --qp-min <int> or <int>:<int>:<int>
- --qp-max <int> or <int>:<int>:<int>
- --chroma-qp-offset <int> [H.264/HEVC]
- --vbr-quality <float>
- --dynamic-rc <int>:<int>:<int><int>,<param1>=<value1>[,<param2>=<value2>],...
- --lookahead <int>
- --lookahead-level <int>
- --no-i-adapt
- --no-b-adapt
- --strict-gop
- --gop-len <int>
- -b, --bframes <int>
- --ref <int>
- --multiref-l0 <int> [H.264/HEVC]
- --multiref-l1 <int> [H.264/HEVC]
- --weightp
- --nonrefp
- --unidirectb
- --aq
- --aq-temporal
- --aq-strength <int>
- --bref-mode <string>
- --direct <string> [H.264]
- --(no-)adapt-transform [H.264]
- --hierarchial-p [H.264]
- --hierarchial-b [H.264]
- --temporal-layers <int>
- --mv-precision <string>
- --slices <int> [H.264/HEVC]
- --cabac [H.264]
- --cavlc [H.264]
- --bluray [H.264]
- --(no-)deblock [H.264]
- --cu-max <int> [HEVC]
- --cu-min <int> [HEVC]
- --alpha-bitrate-ratio <int> [HEVC]
- --alpha-channel-mode <string> [HEVC]
- --tf-level <int>
- --part-size-min <int> [AV1]
- --part-size-max <int> [AV1]
- --tile-columns <int> [AV1]
- --tile-rows <int> [AV1]
- --refs-forward <int> [AV1]
- --refs-backward <int> [AV1]
- --bitstream-padding [AV1]
- --level <string>
- --profile <string>
- --tier <string> [HEVC only]
- --sar <int>:<int>
- --dar <int>:<int>
- --colorrange <string>
- --videoformat <string>
- --colormatrix <string>
- --colorprim <string>
- --transfer <string>
- --chromaloc <int> or "auto"
- --max-cll <int>,<int> or "copy" [HEVC, AV1]
- --master-display <string> or "copy" [HEVC, AV1]
- --atc-sei <string> or <int> [HEVC only]
- --dhdr10-info <string> [HEVC, AV1]
- --dhdr10-info copy [HEVC, AV1]
- --dolby-vision-profile <string> [HEVC, AV1]
- --dolby-vision-rpu <string> [HEVC, AV1]
- --dolby-vision-rpu copy [HEVC, AV1]
- --dolby-vision-rpu-prm <param1>=<value1>[,<param2>=<value2>]...
- --aud [H.264/HEVC]
- --repeat-headers
- --pic-struct [H.264/HEVC]
- --split-enc <string>
- --ssim
- --psnr
- --vmaf [<param1>=<value1>][,<param2>=<value2>],...
- --vship-ssimulacra2
- --vship-butteraugli [<param1>=<value1>[,<param2>=<value2>]...]
- --vship-cvvdp [<param1>=<value1>[,<param2>=<value2>]...]
- IO / Audio / Subtitle Options
- --input-analyze <float>
- --input-probesize <int>
- --trim <int>:<int>[,<int>:<int>][,<int>:<int>]...
- --seek [<int>:][<int>:]<int>[.<int>]
- --seekto [<int>:][<int>:]<int>[.<int>]
- --input-format <string>
- -f, --output-format <string>
- --video-track <int>
- --video-streamid <int>
- --video-tag <string>
- --video-metadata <string> or <string>=<string>
- --avcodec-prms <string>
- --audio-copy [<int/string>;[,<int/string>]...]
- --audio-codec [[<int/string>?]<string>[:<string>=<string>[,<string>=<string>]...]...]
- --audio-encode-other-codec-only
- --audio-bitrate [<int/string>?]<int> or [<int/string>?]<string>:<int>[,<string>:<int>][,...]
- --audio-quality [<int/string>?]<int>
- --audio-profile [<int/string>?]<string>
- --audio-stream [<int/string>?]{<string1>}[:<string2>]
- --audio-samplerate [<int/string>?]<int>
- --audio-resampler <string>
- --audio-delay [<int/string>?]<float>
- --audio-file [<int/string>?][<string>]<string>
- --audio-filter [<int/string>?]<string>
- --audio-disposition [<int/string>?]<string>[,<string>][]...
- --audio-metadata [<int/string>?]<string> or [<int/string>?]<string>=<string>
- --audio-bsf [<int/string>?]<string>
- --audio-ignore-decode-error <int>
- --audio-source <string>[:{<int>?}[;<param1>=<value1>...]/[]...]
- --chapter <string>
- --chapter-copy
- --chapter-no-trim
- --key-on-chapter
- --keyfile <string>
- --sub-source <string>[:{<int>?}[;<param1>=<value1>...]/[]...]
- --sub-copy [<int/string>;[,<int/string>]...]
- --sub-disposition [<int/string>?]<string>
- --sub-metadata [<int/string>?]<string> or [<int/string>?]<string>=<string>
- --sub-bsf [<int/string>?]<string>
- --data-copy [<int>[,<int>]...]
- --attachment-copy [<int>[,<int>]...]
- --attachment-source <string>[:{<int>?}[;<param1>=<value1>]...]...
- --input-option <string1>:<string2>
- -m, --mux-option <string1>:<string2>
- --metadata <string> or <string>=<string>
- --avsync <string>
- --muxer-add-cmd
- --timecode [<string>]
- --tcfile-in <string>
- --timebase <int>/<int>
- --input-hevc-bsf <string>
- --adapt-resolution <int>x<int>
- --input-pixel-format <string>
- --offset-video-dts-advance
- --allow-other-negative-pts
- Vpp Options
- Vpp Filtering order
- --vpp-colorspace [<param1>=<value1>][,<param2>=<value2>],...
- --vpp-libplacebo-tonemapping [<param1>=<value1>][,<param2>=<value2>],...
- --vpp-libplacebo-tonemapping-lut <string>
- --vpp-delogo <string>[,<param1>=<value1>][,<param2>=<value2>],...
- --vpp-rff
- --vpp-deinterlace <string>
- --vpp-deint-csp <string>
- --vpp-afs [<param1>=<value1>][,<param2>=<value2>],...
- --vpp-nnedi [<param1>=<value1>[,<param2>=<value2>]...]
- --vpp-rtgmc [<param1>=<value1>]
- --vpp-rtgmc-bob [<param1>=<value1>]
- --vpp-rtgmc-search-prefilter [<param1>=<value1>]
- --vpp-rtgmc-edi [<param1>=<value1>]
- --vpp-rtgmc-retouch [<param1>=<value1>]
- --vpp-rtgmc-shimmer-repair [<param1>=<value1>]
- --vpp-rtgmc-primitive [<param1>=<value1>]
- --vpp-kfm [<param1>=<value1>[,<param2>=<value2>]...]
- --vpp-yadif [<param1>=<value1>]
- --vpp-bwdif [<param1>=<value1>]
- --vpp-decomb [<param1>=<value1>][,<param2>=<value2>],...
- --vpp-ivtc [<param1>=<value1>[,<param2>=<value2>]...]
- --vpp-decimate [<param1>=<value1>][,<param2>=<value2>],...
- --vpp-mpdecimate [<param1>=<value1>][,<param2>=<value2>],...
- --vpp-select-every <int>[,<param1>=<int>]
- --vpp-rotate <int>
- --vpp-transform [<param1>=<value1>][,<param2>=<value2>],...
- --vpp-convolution3d [<param1>=<value1>][,<param2>=<value2>],...
- --vpp-nvvfx-denoise [<param1>=<value1>][,<param2>=<value2>],...
- --vpp-nvvfx-artifact-reduction [<param1>=<value1>][,<param2>=<value2>],...
- --vpp-smooth [<param1>=<value1>][,<param2>=<value2>],...
- --vpp-msmooth [<param1>=<value1>][,<param2>=<value2>],...
- --vpp-denoise-dct [<param1>=<value1>][,<param2>=<value2>],...
- --vpp-fft3d [<param1>=<value1>][,<param2>=<value2>],...
- --vpp-degrain [<param1>=<value1>]
- --vpp-knn [<param1>=<value1>][,<param2>=<value2>],...
- --vpp-nlmeans [<param1>=<value1>[,<param2>=<value2>]...]
- --vpp-pmd [<param1>=<value1>][,<param2>=<value2>],...
- --vpp-hqdn3d [<param1>=<value1>[,<param2>=<value2>]...]
- --vpp-descale [<param1>=<value1>[,<param2>=<value2>]...]
- --vpp-gauss <int>
- --vpp-subburn [<param1>=<value1>][,<param2>=<value2>],...
- --vpp-libplacebo-shader [<param1>=<value1>][,<param2>=<value2>],...
- --vpp-resize <string> or [<param1>=<value1>][,<param2>=<value2>],...
- --vpp-unsharp [<param1>=<value1>][,<param2>=<value2>],...
- --vpp-vinverse [<param1>=<value1>[,<param2>=<value2>]...]
- --vpp-chromashift [<param1>=<value1>][,<param2>=<value2>],...
- --vpp-deblock [<param1>=<value1>][,<param2>=<value2>],...
- --vpp-deflicker [<param1>=<value1>][,<param2>=<value2>],...
- --vpp-stab [<param1>=<value1>[,<param2>=<value2>]...]
- --vpp-colorfix [<param1>=<value1>][,<param2>=<value2>],...
- --vpp-dehalo [<param1>=<value1>[,<param2>=<value2>]...]
- --vpp-finedehalo [<param1>=<value1>[,<param2>=<value2>]...]
- --vpp-hqdering [<param1>=<value1>[,<param2>=<value2>]...]
- --vpp-edgelevel [<param1>=<value1>][,<param2>=<value2>],...
- --vpp-msharpen [<param1>=<value1>][,<param2>=<value2>],...
- --vpp-cas [<param1>=<value1>][,<param2>=<value2>],...
- --vpp-detailsharpen [<param1>=<value1>][,<param2>=<value2>],...
- --vpp-warpsharp [<param1>=<value1>][,<param2>=<value2>],...
- --vpp-maa [<param1>=<value1>[,<param2>=<value2>]...]
- --vpp-softlight [<param1>=<value1>][,<param2>=<value2>],...
- --vpp-tweak [<param1>=<value1>][,<param2>=<value2>],...
- --vpp-curves [<param1>=<value1>][,<param2>=<value2>],...
- --vpp-deband [<param1>=<value1>][,<param2>=<value2>],...
- --vpp-libplacebo-deband [<param1>=<value1>][,<param2>=<value2>],...
- --vpp-pad <int>,<int>,<int>,<int>
- --vpp-overlay [<param1>=<value1>][,<param2>=<value2>],...
- --vpp-ngx-truehdr [<param1>=<value1>][,<param2>=<value2>],...
- --vpp-fruc [<param1>=<value1>][,<param2>=<value2>],...
- --vpp-anime4k-shader [<param1>=<value1>][,<param2>=<value2>],...
- --vpp-onnx [<param1>=<value1>][,<param2>=<value2>],...
- --vpp-onnx-deint [<param1>=<value1>][,<param2>=<value2>],...
- --vpp-onnx-model-dir <string>
- --vpp-onnx-cache-dir <string>
- --vpp-rife-ov [<param1>=<value1>][,<param2>=<value2>],...
- --vpp-perf-monitor
- --vpp-nvvfx-model-dir <string>
- Other Options
- --parallel [<int>] or [<string>]
- --parallel-force-large-memory-filters
- --cuda-schedule <string>
- --cuda-stream <int>
- --cuda-mt <int>
- --disable-nvml <int>
- --disable-nvml
- --output-buf <int>
- --output-thread <int>
- --log <string>
- --log-level [<param1>=]<value>[,<param2>=<value>]...
- --log-opt <param1>=<value>[,<param2>=<value>]...
- --log-framelist [<string>]
- --log-packets [<string>]
- --log-mux-ts [<string>]
- --thread-affinity [<string1>=]{<string2>[#<int>[:<int>]...] or 0x<hex>}
- --thread-priority [<string1>=]<string2>[#<int>[:<int>]...]
- --thread-throttling [<string1>=]<string2>[#<int>[:<int>]...]
- --option-file <string>
- --max-procfps <int>
- --lowlatency
- --fallback-bitdepth
- --avsdll <string>
- --vsdir <string>
- --vpy-assume-script-dir
- --process-codepage <string> [Windows OS only]
- --task-perf-monitor
- --perf-monitor [<string>[,<string>]...]
- --perf-monitor-interval <int>
Command line example
Basic commands
NVEncC.exe [Options] -i <filename> -o <filename>
More practical commands
example of using hw decoder
NVEncC --avhw -i "<mp4(H.264/AVC) file>" -o "<outfilename.264>"
example of using hw decoder (interlaced)
NVEncC --avhw --interlace tff -i "<mp4(H.264/AVC) file>" -o "<outfilename.264>"
avs (Avisynth) example (avs and vpy can also be read via vfw)
NVEncC -i "<avsfile>" -o "<outfilename.264>"
example of pipe usage
avs2pipemod -y4mp "<avsfile>" | NVEncC --y4m -i - -o "<outfilename.264>"
pipe usage from ffmpeg
ffmpeg -y -i "<inputfile>" -an -pix_fmt yuv420p -f yuv4mpegpipe - | NVEncC --y4m -i - -o "<outfilename.264>"
Passing video & audio from ffmpeg
--> use "nut" to pass both video & audio through pipe.
ffmpeg -y -i "<input>" <options for ffmpeg> -codec:a copy -codec:v rawvideo -pix_fmt yuv420p -f nut - | NVEncC --avsw -i - --audio-codec aac -o "<outfilename.mp4>"
Passing filtered results & audio to ffmpeg
--> use "nut" to pass both video & audio through pipe.
NVEncC -i "<input>" <filter options> --audio-copy -c raw --output-format nut -o - | ffmpeg -y -f nut -i - <encode options for ffmpeg> -o output.mp4
Copy all tracks and metadata during video encode
NVEncC -i "<input>" <encode options> --colormatrix auto --transfer auto --colorprim auto --chromaloc auto --max-cll copy --master-display copy --dhdr10-info copy --dolby-vision-rpu copy --video-metadata copy --audio-copy --audio-metadata copy --sub-copy --sub-metadata copy --data-copy --attachment-copy --chapter-copy -o output.mkv
Option format
-<short option name>, --<option name> <argument>
The argument type is
- none
- <int> ... use integer
- <float> ... use decimal point
- <string> ... use character string
The argument with [ ] { } brackets are optional.
"..." means repeat of previous block.
--(no-)xxx
If it is attached with --no-xxx, you get the opposite effect of --xxx.
Example 1: --xxx: enable xxx → --no-xxx: disable xxx
Example 2: --xxx: disable xxx → --no-xxx: enable xxx
Display options
-h, -? --help
Show help
-v, --version
Show version of NVEncC
--option-list
Show option list.
--check-device
Show the DeviceId and PCI Bus ID of available GPUs recognized by NVEnc. DeviceId follows the CUDA device order.
--check-hw [<int>]
Check whether the specified device is able to run NVEnc. DeviceID: "0" will be checked if not specified.
--check-features [<int>]
Show the information of features of the specified device. DeviceID: "0" will be checked if not specified.
--check-preset-params
Show preset and tune params. shall be used with --codec, --device, --preset and --tune.
--check-environment
Show environment information recognized by NVEncC
--check-codecs, --check-decoders, --check-encoders
Show available audio codec names
--check-profiles <string>
Show profile names available for specified codec
--check-formats
Show available output format
--check-protocols
Show available protocols
--check-avdevices
Show available devices (from libavdevice)
--check-filters
Show available audio filters
--check-avversion
Show version of ffmpeg dll
Basic encoding options
-d, --device <int>
Specify the deviceId to be used with NVEnc. deviceID can be checked with --check-device.
If unspecified, and you are running on multi-GPU environment, the device to be used will automatically selected, depending on following conditions...
- whether the device supports specified encoding
- if --avhw is specified, then check whether the device supports hw decoding for the input file
- if interlaced encoding is specified, then check if it is supported
- device with lower Video Engine Utilization will be favored
- device with lower GPU Utilization will be favored
- later generation GPU will be favored
- GPU with more cores will be favored
Utilization of the Video Engine and GPU is obtained using NVML library in x64 version, and nvidia-smi.exe is executed in x86 version.
nvidia-smi is usually installed in "C:\Program Files\NVIDIA Corporation\NVSMI\nvidia-smi.exe" with the driver.
-c, --codec <string>
Specify the output codec
- h264 (default)
- hevc
- av1
- raw
- av_xxx (to use avcodec encoder)
When using avcodec encoders (av_xxx format), you can check available encoders with --check-encoders option. In this case parameters can be set only by --avcodec-prms option.
-c raw will not encode and output raw frames.
-o, --output <string>
Set output file name, pipe output with "-".
-i, --input <string>
Set input file name, pipe input with "-".
Table below shows the supported readers of NVEnc. When input format is not set, reader used will be selected depending on the extension of input file.
Auto selection of reader
| reader | target extension |
|---|---|
| Avisynth reader | avs |
| VapourSynth reader | vpy |
| avi reader | avi |
| y4m reader | y4m |
| raw reader | yuv |
| avhw/avsw reader | others |
color format supported by reader
| reader | yuv420 | yuy2 | yuv422 | yuv444 | rgb24 | rgb32 |
|---|---|---|---|---|---|---|
| raw | ◎ | ◎ | ◎ | |||
| y4m | ◎ | ◎ | ◎ | |||
| avi | ○ | ○ | ○ | ○ | ||
| avs | ◎ | ○ | ◎ | ◎ | ○ | ○ |
| vpy | ◎ | ◎ | ◎ | |||
| avhw | □ | ◇ | ||||
| avsw | ◎ | ◎ | ◎ | ○ | ○ |
◎ ... 8bit / 9bit / 10bit / 12bit / 14bit / 16bit supported
◇ ... 8bit / 10bit / 12bit supported
□ ... 8bit / 10bit supported
○ ... support only 8 bits
No marks ... not supported
--raw
Set the input to raw format. input resolution & input fps must also be set.
--y4m
Read input as y4m (YUV4MPEG2) format.
--avi
Read avi file using avi reader.
--avs
Read Avisynth script file using avs reader.
NVEncC works on UTF-8 mode as default, so the Avisynth script is required to be also in UTF-8 when using non ASCII characters. When using scripts in the default codepage of the OS, such as ANSI, you will need to add "--process-codepage os" option to change NVEncC also work on the default codepage of the OS.
--vpy
Read VapourSynth script file using vpy reader.
--avsw [<string>]
Read input file using avformat + libavcodec's sw decoder. The optional parameter will set decoder name to be used, otherwise decoder will be selected automatically.
--avhw
Read input file using avformat + QSV hw decoder. Using this mode will provide maximum performance, since entire transcode process will be run on the GPU.
Codecs supported by avhw reader
| Codecs | Status |
|---|---|
| MPEG1 | ○ |
| MPEG2 | ○ |
| H.264/AVC | ○ |
| H.265/HEVC | ○ |
| VP8 | × |
| VP9 | ○ |
| AV1 | ○ |
| VC-1 | ○ |
| WMV3/WMV9 | × |
○ ... supported
× ... no support
--interlace <string>
Set interlace flag of input frame.
Deinterlace is available through --vpp-deinterlace or --vpp-afs. If deinterlacer is not activated for interlaced input, then interlaced encoding is performed.
- parameters
--video-track <int>
Set video track to encode in track id. Will be active when used with avhw/avsw reader.
- 1 (default) highest resolution video track
- 2 next high resolution video track ...
- -1 lowest resolution video track
- -2 next low resolution video track ...
--crop <int>,<int>,<int>,<int>
Number of pixels to cropped from left, top, right, bottom.
--frames <int>
Number of frames to input. (Note: input base, not output base)
--fps <int>/<int> or <float>
Set the input frame rate when --raw is used. Not recommended to be used with readers other than --raw.
Only valid for raw format (when --raw is used), otherwise it will be ignored or only treated as a hint.
--input-res <int>x<int>
Set input resolution. Only valid for raw format, otherwise it will be ignored.
--output-res <int>x<int>[,<string>=<string>]
Set output resolution. When it is different from the input resolution, HW/GPU resizer will be activated automatically.
If not specified, it will be same as the input resolution. (no resize)
-
Special Values
- 0 ... Will be same as input.
- One of width or height as negative value
Will be resized keeping aspect ratio, and a value which could be divided by the negative value will be chosen.
-
parameters
- preserve_aspect_ratio=<string>
Resize to specified width or height, while preserving input aspect ratio.- increase ... preserve aspect ratio by increasing resolution.
- decrease ... preserve aspect ratio by decreasing resolution.
- ignore_sar=<bool>
When auto resizing with negative value, ignore in/out SAR ratio in calculation. Default = off.
- preserve_aspect_ratio=<string>
-
Example
When input is 1280x720... --output-res 1024x576 -> normal --output-res 960x0 -> resize to 960x720 (0 will be replaced to 720, same as input) --output-res 1920x-2 -> resize to 1920x1080 (calculated to keep aspect ratio) --output-res 1440x1440,preserve_aspect_ratio=increase -> resize to 2560x1440 --output-res 1440x1440,preserve_aspect_ratio=decrease -> resize to 1440x810
--input-csp <string>
Set input colorspace for --raw input. Default is yv12.
yv12, nv12, p010, yuv420p9le, yuv420p10le, yuv420p12le, yuv420p14le, yuv420p16le
yuv422p, yuv422p9le, yuv422p10le, yuv422p12le, yuv422p14le, yuv422p16le
yuv444p, yuv444p9le, yuv444p10le, yuv444p12le, yuv444p14le, yuv444p16le
Encode Mode Options
The default is QVBR (constant quality mode).
--qvbr <float>
Encode using constant quality mode. (0.0-51.0, 0.0-63.0 for AV1, 0 = automatic)
This is equivalent to --vbr 0 --vbr-quality <float>.
--cbr <int>
--vbr <int>
Set bitrate in kbps.
--cqp <int> or <int>:<int>:<int>
Set the QP value of <I frame>:<P frame>:<B frame>
Generally, it is recommended to set the QP value to be I < P < B.
Other Options for Encoder
-u, --preset
Encode quality preset. P1~P7 preset is available from API v10.0.
- default
- performance
- quality
- P1 (= performance)
- P2
- P3
- P4 (= default)
- P5
- P6
- P7 (= quality)
--tune <string>
Extra tuning option to preset.
- hq (default)
- uhq
For HEVC and AV1 only, and requires Turing Gen GPU or later. - lowlatency
- ultralowlatency
- lossless
Implicitly enables --lossless.
--output-depth <int>
Set output bit depth.
- 8 ... 8 bits (default)
- 10 ... 10 bits
--output-csp <string>
Set output colorspace.
- yuv420 (default)
- yuv422
- yuv444
- rgb
- yuva420
--multipass <string>
Multi pass mode. Available only for --vbr and --cbr. [API v10.0]
In 1-pass rate control modes, the encoder will estimate the required QP for the macroblock and immediately encode the macroblock.
In 2-pass rate control modes, NVENC estimates the complexity of the frame to be encoded and determines bit distribution across the frame in the first pass. In the second pass, NVENC encodes macroblocks in the frame using the distribution determined in the first pass. 2-pass rate control modes can distribute the bits more optimally within the frame and can reach closer to the target bitrate, especially for CBR encoding.
-
none
1pass mode. (fast) -
2pass-quarter
Runs first pass in quater resolution, which results in larger motion vectors being caught and fed as hints to second pass. -
2pass-full
Runs first pass in full resolution, slower but generating better statistics for the second pass.
--lossless [H.264/HEVC]
Perform lossless output. (Default: off)
--max-bitrate <int>
Maximum bitrate (in kbps).
--vbv-bufsize <int>
Set vbv buffer size (in kbps). (default: auto)
--qp-init <int> or <int>:<int>:<int>
Set the initial QP value with <I frame>:<P frame>:<B frame>. This option will be ignored in CQP mode.
These QP values will be applied at the beginning of encoding. Use this option when you want to adjust the image quality at the beginning of the movie, which sometimes gets unstable in CBR/VBR modes.
--qp-min <int> or <int>:<int>:<int>
Set the minimum QP value with <I frame>:<P frame>:<B frame>. This option will be ignored in CQP mode.
It could be used to suppress bitrate being used unnecessarily to a portion of movie with still image.
--qp-max <int> or <int>:<int>:<int>
Set the maximum QP value to <I frame>:<P frame>:<B frame>. This option will be ignored in CQP mode.
It could be used to maintain certain degree of image quality in any part of the video, even if doing so may exceed the specified bitrate.
--chroma-qp-offset <int> [H.264/HEVC]
Set the QP offset for chroma. (default: 0)
--vbr-quality <float>
Set target quality when using VBR mode. (0.0-51.0, 0.0-63.0 for AV1, 0 = automatic)
--dynamic-rc <int>:<int>:<int><int>,<param1>=<value1>[,<param2>=<value2>],...
Change the rate control mode and rate control params within the specified range of input frames.
-
required parameters It is required to specify one of the params below.
-
additional parameters
- max-bitrate=<int>
- vbr-quality=<float> (0.0-51.0, 0.0-63.0 for AV1, 0 = automatic)
- multipass=<string>
-
Examples
Example1: Encode by vbr(12000kbps) in output frame range 3000-3999, encode by constant quality mode(29.0) in output frame range 5000-5999, and encode by constant quality mode(25.0) on other frame range. --vbr 0 --vbr-quality=25.0 --dynamic-rc 3000:3999,vbr=12000 --dynamic-rc 5000:5999,vbr=0,vbr-quality=29.0 Example2: Encode by vbr(6000kbps) to output frame number 2999, and encode by vbr(12000kbps) from output frame number 3000 and later. --vbr 6000 --dynamic-rc start=3000,vbr=12000
--lookahead <int>
Enable lookahead, and specify its target range by the number of frames. (0 - 32)
This is useful to improve image quality, allowing adaptive insertion of I and B frames.
Default depends on --preset and --tune.
--lookahead-level <int>
Set level of lookahead, higher level may improve quality at the expense of performance. (0 - 3, default = 0)
Default depends on --preset and --tune.
--no-i-adapt
Disable adaptive I frame insertion when lookahead is enabled. Default depends on --preset and --tune.
--no-b-adapt
Disable adaptive B frame insertion when lookahead is enabled. Default depends on --preset and --tune.
--strict-gop
Force fixed GOP length. Default depends on --preset and --tune.
--gop-len <int>
Set maximum GOP length. When lookahead is off, this value will always be used. (Not variable, fixed GOP)
-b, --bframes <int>
Set the number of consecutive B frames. Default depends on --preset and --tune.
--ref <int>
Set the reference distance (max=16).
--multiref-l0 <int> [H.264/HEVC]
--multiref-l1 <int> [H.264/HEVC]
Set max number of reference frames in reference picture list L0/L1 (max=7). Avaialble from API v9.1.
--weightp
Enable weighted P frames. Default depends on --preset and --tune.
--nonrefp
enable automatic insertion of non-reference P-frames. Default depends on --preset and --tune.
--unidirectb
Enable uni-directional B-frames (both references from the past) for low-latency use cases. It will give better compression efficiency for LowLatency/UltraLowLatency use case. Value of parameter is ignored when regular B frames are used.
--aq
Enable adaptive quantization in frame (spatial). (Default: off) Default depends on --preset and --tune.
--aq-temporal
Enable adaptive quantization between frames (temporal). (Default: off) Default depends on --preset and --tune.
--aq-strength <int>
Specify the AQ strength. (1 (weak) - 15 (strong), 0 = auto) Default depends on --preset and --tune.
--bref-mode <string>
Specify B frame reference mode.
- auto (default)
- disabled
- each ... use each B frames as references
- middle ... only (Number of B-frame)/2 th B-frame will be used for reference
- hierarchical ... use hierarchical B-frame references (AV1, NVENC API 13.1 or later)
hierarchical has the following restrictions.
--bframesmust be 0, 1, 3, 7, 15, or 31.- Lookahead must be disabled. When enabling Lookahead, specify
--lookahead-level 0,--no-i-adapt, and--no-b-adapttogether. --multipassmust benone.--split-encmust beauto(recommended) ordisable.- PTD must be enabled. NVEncC always enables PTD.
--direct <string> [H.264]
Specify H.264 B Direct mode.
- auto (default)
- disabled
- spatial
- temporal
--(no-)adapt-transform [H.264]
Enable (or disable) adaptive transform mode of H.264.
--hierarchial-p [H.264]
Enable hierarchial P frames.
--hierarchial-b [H.264]
Enable hierarchial B frames.
--temporal-layers <int>
Specifies number of temporal layers to be used for hierarchical coding. Default depends on --preset and --tune.
--mv-precision <string>
Motion vector accuracy / default: auto
- auto ... automatic
- Q-pel ... 1/4 pixel accuracy (high precision)
- half-pel ... 1/2 pixel precision
- full-pel ... 1 pixel accuracy (low accuracy)
--slices <int> [H.264/HEVC]
Set number of slices.
--cabac [H.264]
Use CABAC. (Default: on)
--cavlc [H.264]
Use CAVLC. (Default: off)
--bluray [H.264]
Perform output for Bluray. (Default: off)
--(no-)deblock [H.264]
Enable deblock filter. (Default: on)
--cu-max <int> [HEVC]
--cu-min <int> [HEVC]
Specify the maximum and minimum size of CU respectively. 8, 16, 32 can be specified. Since it is known that image quality may be degraded when this option is used, it is recommended not to use these options.
--alpha-bitrate-ratio <int> [HEVC]
Set bitrate ratio for alpha channel which can be used with --output-csp yuva420. Default value is 0 (for "auto").
When the value is set to "x", then approximately "1 / (x+1)" of the bitrate will be used for alpha channel. Therefore, smaller value will result more bitrate to be spent for alpha layer.
--alpha-channel-mode <string> [HEVC]
Set alpha channel mode. (default: straight)
- straight
- premultiplied
--tf-level <int>
Set temporal filtering, requires bframes >= 4. (Default: 0) Default depends on --preset and --tune.
0, 4
--part-size-min <int> [AV1]
Specifies the minimum size of luma coding block partition. (default: 0 = auto)
0 (auto), 4, 8, 16, 32, 64
--part-size-max <int> [AV1]
Specifies the maximum size of luma coding block partition. (default: 0 = auto)
0 (auto), 4, 8, 16, 32, 64
--tile-columns <int> [AV1]
Set number of tile columns. (default: 0 = auto)
0 (auto), 1, 2, 4, 8, 16, 32, 64
--tile-rows <int> [AV1]
Set number of tile rows. (default: 0 = auto)
0 (auto), 1, 2, 4, 8, 16, 32, 64
--refs-forward <int> [AV1]
Specifies max number of forward reference frame used for prediction of a frame. (default: 0 = auto)
It must be in range 1-4 (Last, Last2, last3 and Golden). It's a suggestive value not necessarily be honored always.
--refs-backward <int> [AV1]
pecifies max number of L1 list reference frame used for prediction of a frame. (default: 0 = auto)
It must be in range 1-3 (Backward, Altref2, Altref). It's a suggestive value not necessarily be honored always.
--bitstream-padding [AV1]
Enable bitstream padding for AV1 CBR encoding. (default: off)
--level <string>
Specify the Level of the codec to be encoded. If not specified, it will be automatically set.
h264: auto, 1, 1 b, 1.1, 1.2, 1.3, 2, 2.1, 2.2, 3, 3.1, 3.2, 4, 4.1, 4.2, 5, 5.1, 5.2
hevc: auto, 1, 2, 2.1, 3, 3.1, 4, 4.1, 5, 5.1, 5.2, 6, 6.1, 6.2
av1 : auto, 2, 2.1, 3, 3.1, 4, 4.1, 5, 5.1, 5.2, 5.3, 6, 6.1
--profile <string>
Specify the profile of the codec to be encoded. If not specified, it will be automatically set.
h264: auto, baseline, main, high, high10, high422, high444
hevc: auto, main, main10, main444
av1 : auto, main, high
--tier <string> [HEVC only]
Specify the tier of the codec.
hevc: main, high
--sar <int>:<int>
Set SAR ratio (pixel aspect ratio).
--dar <int>:<int>
Set DAR ratio (screen aspect ratio).
--colorrange <string>
"auto" will copy characteristic from input file (available when using avhw/avsw reader).
limited, full, auto
--videoformat <string>
undef, ntsc, component, pal, secam, mac
--colormatrix <string>
"auto" will copy characteristic from input file (available when using avhw/avsw reader).
undef, auto, bt709, smpte170m, bt470bg, smpte240m, YCgCo, fcc, GBR, bt2020nc, bt2020c
--colorprim <string>
"auto" will copy characteristic from input file (available when using avhw/avsw reader).
undef, auto, bt709, smpte170m, bt470m, bt470bg, smpte240m, film, bt2020
--transfer <string>
"auto" will copy characteristic from input file (available when using avhw/avsw reader).
undef, auto, bt709, smpte170m, bt470m, bt470bg, smpte240m, linear,
log100, log316, iec61966-2-4, bt1361e, iec61966-2-1,
bt2020-10, bt2020-12, smpte2084, smpte428, arib-std-b67
--chromaloc <int> or "auto"
Set chroma location flag of the output bitstream from values 0 ... 5.
"auto" will copy from input file (available when using avhw/avsw reader)
default: 0 = unspecified
--max-cll <int>,<int> or "copy" [HEVC, AV1]
Set MaxCLL and MaxFall in nits. "copy" will copy values from the input file. (available when using avhw/avsw reader)
Please note that this option will implicitly activate --repeat-headers.
Example1: --max-cll 1000,300
Example2: --max-cll copy # copy values from source
--master-display <string> or "copy" [HEVC, AV1]
Set Mastering display data. "copy" will copy values from the input file. (available when using avhw/avsw reader)
Please note that this option will implicitly activate --repeat-headers.
Example1: --master-display G(13250,34500)B(7500,3000)R(34000,16000)WP(15635,16450)L(10000000,1)
Example2: --master-display copy # copy values from source
--atc-sei <string> or <int> [HEVC only]
Set alternative transfer characteristics SEI from below or by integer, Required for HLG (Hybrid Log Gamma) signaling.
undef, auto, bt709, smpte170m, bt470m, bt470bg, smpte240m, linear,
log100, log316, iec61966-2-4, bt1361e, iec61966-2-1,
bt2020-10, bt2020-12, smpte2084, smpte428, arib-std-b67
--dhdr10-info <string> [HEVC, AV1]
Apply HDR10+ dynamic metadata from specified json file. Requires hdr10plus_gen.exe module additionally.
--dhdr10-info copy [HEVC, AV1]
Copy HDR10+ dynamic metadata from input file.
Limitations for avhw reader: this option uses timestamps to reorder frames to decoded order to presentation order.
Therefore, input files without timestamps (such as raw ES), are not supported. Please try for avsw reader for that case.
--dolby-vision-profile <string> [HEVC, AV1]
Output file which is specified in Dolby Vision profile. Recommended to be used with --dolby-vision-rpu.
For HEVC Dolby Vision output, this automatically applies Dolby Vision VUI settings and enables --repeat-headers, --aud and --pic-struct.
"copy" will use dolby vision profile from input file (available when using avhw/avsw reader).
unset, copy, 5.0, 8.1, 8.2, 8.4, 10.0, 10.1, 10.2, 10.4
--dolby-vision-rpu <string> [HEVC, AV1]
Interleave Dolby Vision RPU metadata from the specified file into the output file. Recommended to be used with --dolby-vision-profile.
Current Dolby Vision output is BL+RPU only. BL+EL output is not supported.
To better satisfy Dolby Vision profile/level bitrate and HRD limits, use bitrate/VBV-controlled modes and set --max-bitrate / --vbv-bufsize appropriately. --cqp can also be used, but it does not enforce those limits by itself.
--dolby-vision-rpu copy [HEVC, AV1]
Interleave Dolby Vision RPU metadata copied from HEVC input file. Recommended to be used with --dolby-vision-profile.
Limitations for avhw reader: this option uses timestamps to reorder frames to decoded order to presentation order. Therefore, input files without timestamps (such as raw ES), are not supported. Please try for avsw reader for that case.
--dolby-vision-rpu-prm <param1>=<value1>[,<param2>=<value2>]...
Set parameters for --dolby-vision-rpu.
-
parameters
- crop=<bool>
Set active area offsets to 0 (no letterbox bars).
- crop=<bool>
-
Examples
Example: --dolby-vision-rpu-prm crop=true
--aud [H.264/HEVC]
Insert Access Unit Delimiter NAL.
--repeat-headers
Output VPS, SPS and PPS for every IDR frame.
--pic-struct [H.264/HEVC]
Insert picture timing SEI.
--split-enc <string>
- Parameters
-
auto
Split frame forced mode disabled, split frame auto mode enabled. -
auto_forced
Split frame forced mode enabled with number of strips automatically selected by driver to best fit configuration. -
forced_2
Forced 2-strip split frame encoding (if NVENC number > 1, 1-strip encode otherwise). -
forced_3
Forced 3-strip split frame encoding (if NVENC number > 2, NVENC number of strips otherwise). -
forced_4
Forced 4-strip split frame encoding (if NVENC number > 3, NVENC number of strips otherwise). -
disable
Both split frame auto mode and forced mode are disabled.
-
--ssim
Calculate ssim of the encoded video.
--psnr
Calculate psnr of the encoded video.
--vmaf [<param1>=<value1>][,<param2>=<value2>],...
Calculate vmaf score of the encoded video. Please note that the vmaf score calculation is run by libvmaf on CPU, and is highly likely to become a bottleneck and result in poor encoding performance.
-
Parameters
-
model=<string>
Set internal model version of libvmaf, or external model file path. Default is internal "vmaf_v0.6.1".Built-in model names available in the bundled libvmaf 3.2.0 build:
vmaf_v0.6.1vmaf_b_v0.6.3vmaf_v0.6.1negvmaf_4k_v0.6.1vmaf_4k_v0.6.1negvmaf_v1.0.16_3d0hvmaf_v1.0.16_3d0h_2160vmaf_v1.0.16_5d0hvmaf_v1.0.16_1d5h_2160vmaf_v1.0.16_hfr_3d0hvmaf_v1.0.16_hfr_3d0h_2160vmaf_v1.0.16_hfr_5d0hvmaf_v1.0.16_hfr_1d5h_2160
To use an external model file, download a json format model file from
link and set the existing.jsonfile path by this option. -
threads=<int> (default: 0)
CPU thread(s) to calculate vmaf score. Default is to use all physical cores. -
subsample=<int> (default: 1)
Interval for frame subsampling calculating vmaf score. -
phone_model=<bool> (default: false)
Use phone model which generate higher vmaf score. -
enable_transform=<bool> (default: false)
Enable transform when calculating vmaf score.
-
-
Examples
Example: --vmaf model=vmaf_v0.6.1 Example: --vmaf model=/path/to/vmaf_4k_v0.6.1neg.json
--vship-ssimulacra2
Calculate SSIMULACRA2 score using Vship library (GPU accelerated). At the end, the log also shows the standard deviation, median, 5th percentile, 95th percentile, minimum, and maximum in the same line as the average score.
--vship-butteraugli [<param1>=<value1>[,<param2>=<value2>]...]
Calculate Butteraugli score using Vship library (GPU accelerated).
- Parameters
- Qnorm=<int> (default: 2)
Normalization parameter for Butteraugli distance. - intensity_multiplier=<float> (default: 80.0)
Intensity multiplier for calculation.
- Qnorm=<int> (default: 2)
--vship-cvvdp [<param1>=<value1>[,<param2>=<value2>]...]
Calculate CVVDP (Compressed Video Visual Difference Predictor) score using Vship library (GPU accelerated). A quality metric that takes temporal dependencies between frames into account.
- Parameters
- model=<string> (default: standard_4k)
Display model key (e.g. "standard_4k", "standard_fhd"). - model_config_json=<string>
Path to custom display configuration JSON file. - resize=<bool> (default: false)
Resize frames to the display resolution defined by the model.
- model=<string> (default: standard_4k)
IO / Audio / Subtitle Options
--input-analyze <float>
Specify the length in seconds that libav parses for file analysis. The default is 5 (sec). If audio / subtitle tracks etc. are not detected properly, try increasing this value (eg 60).
--input-probesize <int>
Set the maximum size in bytes that libav parses for file analysis.
--trim <int>:<int>[,<int>:<int>][,<int>:<int>]...
Encode only frames in the specified range.
- Examples
Example 1: --trim 0:1000,2000:3000 (encode from frame #0 to #1000 and from frame #2000 to #3000) Example 2: --trim 2000:0 (encode from frame #2000 to the end)
--seek [<int>:][<int>:]<int>[.<int>]
The format is hh:mm:ss.ms. "hh" or "mm" could be omitted. The transcode will start from the time specified.
Seeking by this option is not exact but fast, compared to --trim. If you require exact seek, use --trim.
- Examples
Example 1: --seek 0:01:15.400 Example 2: --seek 1:15.4 Example 3: --seek 75.4
--seekto [<int>:][<int>:]<int>[.<int>]
The format is hh:mm:ss.ms. "hh" or "mm" could be omitted.
Set encode finish time. This might be inaccurate, so if you require exact number of frames to encode, use --trim.
- Examples
Example 1: --seekto 0:01:15.400 Example 2: --seekto 1:15.4 Example 3: --seekto 75.4
--input-format <string>
Specify input format for avhw / avsw reader.
-f, --output-format <string>
-
For normal encode
Specify output format for muxer.
Since the output format is automatically determined by the output extension, it is usually not necessary to specify it, but you can force the output format with this option.
Available formats can be checked with --check-formats. To output H.264 / HEVC as an Elementary Stream, specify "raw".
-
For raw output (Used with
-c raw)Specify output format for raw frame.
- Parameters
- y4m (default)
- raw
- Parameters
--video-track <int>
Set video track to encode by resolution. Will be active when used with avhw/avsw reader.
- 1 (default) highest resolution video track
- 2 next high resolution video track ...
- -1 lowest resolution video track
- -2 next low resolution video track ...
--video-streamid <int>
Set video track to encode in stream id.
--video-tag <string>
Specify video tag.
- Examples
-o test.mp4 -c hevc --video-tag hvc1
--video-metadata <string> or <string>=<string>
Set metadata for video track.
-
copy ... copy metadata from input if possible
-
clear ... do not copy metadata (default)
-
Examples
Example1: copy metadata from input file --video-metadata 1?copy Example2: clear metadata from input file --video-metadata 1?clear Example3: set metadata --video-metadata 1?title="video title" --video-metadata 1?language=jpn
--avcodec-prms <string>
Set parameters for avcodec video encoder in key=value format, separated by commas.
This option is only available when avcodec encoder is enabled by specifying -c av_xxx (e.g., -c av_libsvtav1, -c av_libvvenc, -c av_libvpx-vp9).
- Examples
Example1: Set preset and CRF for libsvtav1 -c av_libsvtav1 --avcodec-prms "preset=6,crf=30,svtav1-params=enable-variance-boost=1:variance-boost-strength=2" Example2: Set quality and threads for libvvenc -c av_libvvenc --avcodec-prms qp=28,preset=medium,threads=4 Example3: Set parameters for libvpx-vp9 -c av_libvpx-vp9 --avcodec-prms crf=30,b=0,cpu-used=2
--audio-copy [<int/string>;[,<int/string>]...]
Copy audio track into output file. Available only when avhw / avsw reader is used.
If it does not work well, try encoding with --audio-codec, which is more stable.
You can also specify the audio track (1, 2, ...) to extract with [<int>], or select audio track to copy by language with [<string>].
Prefix languages with ! to select all tracks except those languages (for example, !eng,!jpn).
- Examples
Example: Copy all audio tracks --audio-copy Example: Extract track numbers #1 and #2 --audio-copy 1,2 Example: Extract audio tracks marked as English and Japanese --audio-copy eng,jpn
--audio-codec [[<int/string>?]<string>[:<string>=<string>[,<string>=<string>]...]...]
Encode audio track with the codec specified. If codec is not set, most suitable codec will be selected automatically. Codecs available could be checked with --check-encoders.
You can select audio track (1, 2, ...) to encode with [<int>], or select audio track to encode by language with [<string>].
Prefix languages with ! to select all tracks except those languages (for example, --audio-codec !eng,!jpn?copy).
Also, after ":" you can specify params for audio encoder, after "#" you can specify params for audio decoder.
- Examples
Example 1: encode all audio tracks to mp3 --audio-codec libmp3lame Example 2: encode the 2nd track of audio to aac --audio-codec 2?aac Example 3: encode the English audio track to aac --audio-codec eng?aac Example 4: encode the English audio track and Japanese audio track to aac --audio-codec eng?aac --audio-codec jpn?aac Example 5: set param "aac_coder" to "twoloop" which will improve quality at low bitrate for aac encoder --audio-codec aac:aac_coder=twoloop
--audio-encode-other-codec-only
When used together with --audio-codec, if the input audio codec equals the codec specified by --audio-codec, the audio will be copied (--audio-copy). Encoding will be performed only when the codec differs.
- Examples
Example: Copy when input is AAC, otherwise encode to AAC --audio-codec aac --audio-encode-other-codec-only
--audio-bitrate [<int/string>?]<int> or [<int/string>?]<string>:<int>[,<string>:<int>][,...]
Specify the bitrate in kbps when encoding audio.
You can select audio track (1, 2, ...) to encode with [<int>] before ?, or select audio track to encode by language with [<string>] before ?.
You can set different bitrate to different audio channels, by using [<string>] after ?, using symbols below.
mono, stereo, 2.1, 3.0, 3.0(back), 3.1, 4.0, quad, quad(side), 5.0, 5.1, 6.0, 6.0(front), hexagonal, 6.1, 6.1(front), 7.0, 7.0(front), 7.1, 7.1(wide)
- Examples
Example 1: --audio-bitrate 192 (set bitrate of audio track to 192 kbps) Example 2: --audio-bitrate 1?320 --audio-bitrate 2?256 (set bitrate of 1st audio track to to 320 kbps, 2nd audio track to to 256 kbps) Example 3: --audio-bitrate stereo:256,5.1:640 (stereoを256kbpsで、5.1chを640kbpsで変換)
--audio-quality [<int/string>?]<int>
Specify the quality when encoding audio. The value depends on the codec used.
You can select audio track (1, 2, ...) to encode with [<int>], or select audio track to encode by language with [<string>].
--audio-profile [<int/string>?]<string>
Specify audio codec profile when encoding audio.You can select audio track (1, 2, ...) to encode with [<int>], or select audio track to encode by language with [<string>].
--audio-stream [<int/string>?]{<string1>}[:<string2>]
Separate or merge audio channels. Audio tracks specified with this option will always be encoded. (no copying available)
By comma(",") separation, you can generate multiple tracks from the same input track.
-
format
Specify the track to be processed by <int>.
Specify the channel to be used as input by <string1>. If omitted, input will be all the input channels.
Specify the output channel format by <string2>. If omitted, all the channels of <string1> will be used.
-
Examples
Example 1: --audio-stream FR,FL Separate left and right channels of "dual mono" audio track, into two mono audio tracks. Example 2: --audio-stream :stereo Convert any audio track to stereo. Example 3: --audio-stream 2?5.1,5.1:stereo While encoding the 2nd 5.1 ch audio track of the input file as 5.1 ch, another stereo downmixed audio track will be generated from the same source audio track. -
Available symbols
mono = FC stereo = FL + FR 2.1 = FL + FR + LFE 3.0 = FL + FR + FC 3.0(back) = FL + FR + BC 3.1 = FL + FR + FC + LFE 4.0 = FL + FR 4.0 = FL + FR + FC + BC quad = FL + FR + BL + BR quad(side) = FL + FR + SL + SR 5.0 = FL + FR + FC + SL + SR 5.1 = FL + FR + FC + LFE + SL + SR 6.0 = FL + FR + FC + BC + SL + SR 6.0(front) = FL + FR + FLC + FRC + SL + SR hexagonal = FL + FR + FC + BL + BR + BC 6.1 = FL + FR + FC + LFE + BC + SL + SR 6.1(front) = FL + FR + LFE + FLC + FRC + SL + SR 7.0 = FL + FR + FC + BL + BR + SL + SR 7.0(front) = FL + FR + FC + FLC + FRC + SL + SR 7.1 = FL + FR + FC + LFE + BL + BR + SL + SR 7.1(wide) = FL + FR + FC + LFE + FLC + FRC + SL + SR
--audio-samplerate [<int/string>?]<int>
Specify the sampling frequency of the sound in Hz. You can select audio track (1, 2, ...) to encode with [<int>], or select audio track to encode by language with [<string>].
- Examples
Example 1: --audio-bitrate 44100 (converting sound to 44100 Hz) Example 2: --audio-bitrate 2?22050 (Convert the second track of voice to 22050 Hz)
--audio-resampler <string>
Specify the engine used for mixing audio channels and sampling frequency conversion.
- swr ... swresampler (default)
- soxr ... sox resampler (libsoxr)
--audio-delay [<int/string>?]<float>
Specify audio delay in milli seconds. You can select audio track (1, 2, ...) to encode with [<int>], or select audio track to encode by language with [<string>].
--audio-file [<int/string>?][<string>]<string>
Extract audio track to the specified path. The output format is determined automatically from the output extension. Available only when avhw / avsw reader is used.
You can select audio track (1, 2, ...) to encode with [<int>], or select audio track to encode by language with [<string>].
- Examples
Example: extract audio track number #2 to test_out2.aac --audio-file 2?"test_out2.aac"
[<string>] allows you to specify the output format.
- Examples
Example: Output in adts format without extension --audio-file 2?adts:"test_out2"
--audio-filter [<int/string>?]<string>
Apply filters to audio track. Filters could be slected from link.
You can select audio track (1, 2, ...) to encode with [<int>], or select audio track to encode by language with [<string>].
- Examples
Example 1: --audio-filter volume=0.2 (lowering the volume) Example 2: --audio-filter 2?volume=-4dB (lowering the volume of the 2nd track)
--audio-disposition [<int/string>?]<string>[,<string>][]...
set disposition for the specified audio track. You can select audio track (1, 2, ...) to encode with [<int>], or select audio track to encode by language with [<string>].
-
list of dispositions
default dub original comment lyrics karaoke forced hearing_impaired visual_impaired clean_effects attached_pic captions descriptions dependent metadata copy -
Examples
Example: --audio-disposition 2?default,forced
--audio-metadata [<int/string>?]<string> or [<int/string>?]<string>=<string>
Set metadata for audio track.
- copy ... copy metadata from input if possible (default)
- clear ... do not copy metadata
You can select audio track (1, 2, ...) to encode with [<int>], or select audio track to encode by language with [<string>].
- Examples
Example1: copy metadata from input file --audio-metadata 1?copy Example2: clear metadata from input file --audio-metadata 1?clear Example3: set metadata --audio-metadata 1?title="audio title" --audio-metadata 1?language=jpn
--audio-bsf [<int/string>?]<string>
Apply bitstream filter to audio track.
--audio-ignore-decode-error <int>
Ignore the consecutive audio decode error, and continue transcoding within the threshold specified. The portion of audio which could not be decoded properly will be replaced with silence.
The default is 10.
- Examples
Example1: Quit transcoding for a 5 consecutive audio decode error. --audio-ignore-decode-error 5 Example2: Quit transcoding for a single audio decode error. --audio-ignore-decode-error 0
--audio-source <string>[:{<int>?}[;<param1>=<value1>...]/[]...]
Mux an external audio file specified.
-
file params
- format=<string>
Specify input format for the file. - input_opt=<string>
Specify input options for the file.
- format=<string>
-
track params
-
copy
Copy audio track. -
codec=<string>
Encode audio to specified audio codec. -
profile=<string>
Specify audio codec profile when encoding audio. -
bitrate=<int>
Specify audio bitrate in kbps. -
samplerate=<int>
Specify audio sampling rate. -
delay=<int>
Set audio delay in milli seconds. -
dec_prm=<string>
Specify params for audio decoder. -
enc_prm=<string>
Specify params for audio encoder. -
filter=<string>
Specify filters for audio. -
disposition=<string>
Specify disposition for audio. -
metadata=<string1>=<string2>
Specify metadata for audio track. -
bsf=<string>
Specify bitstream filter for audio track.
-
-
Examples
Example1: --audio-source "<audio_file>:copy" Example2: --audio-source "<audio_file>:codec=aac" Example3: --audio-source "<audio_file>:1?codec=aac;bitrate=256/2?codec=aac;bitrate=192;metadata=language=jpn;disposition=default,forced" Example4: --audio-source "hw:1:format=alsa/codec=aac;bitrate=256"
--chapter <string>
Set chapter in the (separate) chapter file. The chapter file could be in nero format, apple format or matroska format. Cannot be used with --chapter-copy.
-
nero format
CHAPTER01=00:00:39.706 CHAPTER01NAME=chapter-1 CHAPTER02=00:01:09.703 CHAPTER02NAME=chapter-2 CHAPTER03=00:01:28.288 CHAPTER03NAME=chapter-3 -
apple format (should be in utf-8)
<?xml version="1.0" encoding="UTF-8" ?> <TextStream version="1.1"> <TextStreamHeader> <TextSampleDescription> </TextSampleDescription> </TextStreamHeader> <TextSample sampleTime="00:00:39.706">chapter-1</TextSample> <TextSample sampleTime="00:01:09.703">chapter-2</TextSample> <TextSample sampleTime="00:01:28.288">chapter-3</TextSample> <TextSample sampleTime="00:01:28.289" text="" /> </TextStream> -
matroska format (hould be in utf-8)
Other Samples>><?xml version="1.0" encoding="UTF-8"?> <Chapters> <EditionEntry> <ChapterAtom> <ChapterTimeStart>00:00:00.000</ChapterTimeStart> <ChapterDisplay> <ChapterString>chapter-0</ChapterString> </ChapterDisplay> </ChapterAtom> <ChapterAtom> <ChapterTimeStart>00:00:39.706</ChapterTimeStart> <ChapterDisplay> <ChapterString>chapter-1</ChapterString> </ChapterDisplay> </ChapterAtom> <ChapterAtom> <ChapterTimeStart>00:01:09.703</ChapterTimeStart> <ChapterDisplay> <ChapterString>chapter-2</ChapterString> </ChapterDisplay> </ChapterAtom> <ChapterAtom> <ChapterTimeStart>00:01:28.288</ChapterTimeStart> <ChapterTimeEnd>00:01:28.289</ChapterTimeEnd> <ChapterDisplay> <ChapterString>chapter-3</ChapterString> </ChapterDisplay> </ChapterAtom> </EditionEntry> </Chapters>
--chapter-copy
Copy chapters from input file.
--chapter-no-trim
Do not apply --trim when reading chapters.
--key-on-chapter
Set keyframes on chapter position.
--keyfile <string>
Set keyframes on frames (starting from 0, 1, 2, ...) specified in the file. There should be one frame ID per line.
--sub-source <string>[:{<int>?}[;<param1>=<value1>...]/[]...]
Read subtitle from the specified file and mux into the output file.
-
file params
- format=<string>
Specify input format for the file. - input_opt=<string>
Specify input options for the file.
- format=<string>
-
track params
-
disposition=<string>
Specify disposition for subtitle. -
metadata=<string1>=<string2>
Specify metadata for subtitle track. -
bsf=<string>
Specify bitstream filter for subtitle track.
-
-
Examples
Example1: --sub-source "<sub_file>" Example2: --sub-source "<sub_file>:disposition=default,forced;metadata=language=jpn"
--sub-copy [<int/string>;[,<int/string>]...]
Copy subtitle tracks from input file. Available only when avhw / avsw reader is used.
It is also possible to specify subtitle tracks (1, 2, ...) to extract with [<int>], or select subtitle tracks to copy by language with [<string>].
Prefix languages with ! to select all tracks except those languages (for example, !eng,!jpn).
Supported subtitles are PGS / srt / txt / ttxt.
- Examples
Example: Copy all subtitle tracks --sub-copy Example: Copy subtitle track #1 and #2 --sub-copy 1,2 Example: Copy subtitle tracks marked as English and Japanese --sub-copy eng,jpn
--sub-disposition [<int/string>?]<string>
set disposition for the specified subtitle track.
- list of dispositions
default dub original comment lyrics karaoke forced hearing_impaired visual_impaired clean_effects attached_pic captions descriptions dependent metadata copy
--sub-metadata [<int/string>?]<string> or [<int/string>?]<string>=<string>
Set metadata for subtitle track.
-
copy ... copy metadata from input if possible (default)
-
clear ... do not copy metadata
-
Examples
Example1: copy metadata from input file --sub-metadata 1?copy Example2: clear metadata from input file --sub-metadata 1?clear Example3: set metadata --sub-metadata 1?title="subtitle title" --sub-metadata 1?language=jpn
--sub-bsf [<int/string>?]<string>
Apply bitstream filter to subtitle track.
--data-copy [<int>[,<int>]...]
Copy data stream from input file. Available only when avhw / avsw reader is used.
--attachment-copy [<int>[,<int>]...]
Copy attachment stream from input file. Available only when avhw / avsw reader is used.
--attachment-source <string>[:{<int>?}[;<param1>=<value1>]...]...
Read attachment from the specified file and mux into the output file.
-
params
- metadata=<string1>=<string2>
Specify metadata for the attachment, setting mimetype is required.
- metadata=<string1>=<string2>
-
Examples
Example1: --attachment-source <png_file>:metadata=mimetype=image/png Example2: --attachment-source <font_file>:metadata=mimetype=application/x-truetype-font
--input-option <string1>:<string2>
Pass optional parameters for input for avhw/avsw reader. Specify the option name in <string1>, and the option value in <string2>.
- Examples
Example: Reading playlist 1 of bluray -i bluray:D:\ --input-option playlist:1
-m, --mux-option <string1>:<string2>
Pass optional parameters to muxer. Specify the option name in <string>, and the option value in <string2>.
- Examples
Example: Output for HLS -i <input> -o test.m3u8 -f hls -m hls_time:5 -m hls_segment_filename:test_%03d.ts --gop-len 30 Example: Pass through "default" disposition even if there are no "default" tracks in the output (mkv only) -m default_mode:infer_no_subs
--metadata <string> or <string>=<string>
Set global metadata for output file.
-
copy ... copy metadata from input if possible (default)
-
clear ... do not copy metadata
-
Examples
Example1: copy metadata from input file --metadata copy Example2: clear metadata from input file --metadata clear Example3: set metadata --metadata title="video title" --metadata language=jpn
--avsync <string>
-
auto (default)
-
forcecfr Check pts from the input file, and duplicate or remove frames if required to keep CFR, so that synchronization with the audio could be maintained. Please note that this could not be used with --trim.
-
vfr
Honor source timestamp and enable vfr output. Only available for avsw/avhw reader, and could not be used with --trim.
--muxer-add-cmd
Append input command line parameters to encoding_tool in muxer metadata.
--timecode [<string>]
Write timecode file to the specified path. If the path is not set, it will be written to "<output file path>.timecode.txt".
--tcfile-in <string>
Read timecode file for input frames, can be used with readers except avhw.
--timebase <int>/<int>
Set timebase for transcoding and timecode file.
--input-hevc-bsf <string>
switch hevc bitstream filter used for hw decoder input. (for debug purpose)
-
Parameters
-
internal
use internal implementation. (default) -
libavcodec
use hevc_mp4toannexb bitstream filter.
-
--adapt-resolution <int>x<int>
Specify the maximum resolution allowed for mid-stream resolution changes.
For avhw, this sets the CUVID decoder max resolution. For avsw, this sets the allocation size of input surfaces. The value must be greater than or equal to the initial input resolution. When omitted, the container-declared input resolution is used as the upper limit.
Larger limits increase memory usage for decode/input surfaces.
--input-pixel-format <string>
Set "pixel_format" for input avdevice. (not intended on other situations)
--offset-video-dts-advance
Offset timestamp to cancel bframe delay.
--allow-other-negative-pts
Allow negative timestamps for audio, subtitles. Intended for debug purpose only.
Vpp Options
These options will apply filters before encoding.
Vpp Filtering order
Vpp filters will be applied in fixed order, regardless of the order in the commandline.
- --vpp-deinterlace
- --vpp-colorspace
- --vpp-libplacebo-tonemapping
- --vpp-rff
- --vpp-delogo
- --vpp-afs
- --vpp-nnedi
- --vpp-rtgmc
- --vpp-kfm
- --vpp-rtgmc-bob
- --vpp-rtgmc-search-prefilter
- --vpp-rtgmc-edi
- --vpp-degrain (
mode=analyze) - --vpp-yadif
- --vpp-bwdif
- --vpp-decomb
- --vpp-ivtc
- --vpp-decimate
- --vpp-mpdecimate
- --vpp-select-every
- --vpp-transform/rotate
- --vpp-convolution3d
- --vpp-nvvfx-denoise
- --vpp-nvvfx-artifact-reduction
- --vpp-smooth
- --vpp-denoise-dct
- --vpp-fft3d
- --vpp-knn
- --vpp-nlmeans
- --vpp-pmd
- --vpp-hqdn3d
- --vpp-descale
- --vpp-degrain (
mode=degrain/tr=1,2) - --vpp-rtgmc-shimmer-repair (
stage=rep1/rep2) - --vpp-rtgmc-retouch
- --vpp-rtgmc-primitive
- --vpp-gauss
- --vpp-subburn
- --vpp-libplacebo-shader
- --vpp-resize
- --vpp-unsharp
- --vpp-vinverse
- --vpp-chromashift
- --vpp-deblock
- --vpp-deflicker
- --vpp-stab
- --vpp-colorfix
- --vpp-dehalo
- --vpp-finedehalo
- --vpp-hqdering
- --vpp-edgelevel
- --vpp-cas
- --vpp-detailsharpen
- --vpp-warpsharp
- --vpp-maa
- --vpp-curves
- --vpp-softlight
- --vpp-tweak
- --vpp-deband
- --vpp-libplacebo-deband
- --vpp-padding
- --vpp-overlay
- --vpp-ngx-truehdr
- --vpp-fruc
- --vpp-anime4k-shader
- --vpp-onnx
- --vpp-onnx-deint
- --vpp-onnx-model-dir
- --vpp-onnx-cache-dir
- --vpp-rife-ov
--vpp-colorspace [<param1>=<value1>][,<param2>=<value2>],...
Converts colorspace of the video. Available on x64 version.
Values for parameters will be copied from input file for "input" when using avhw/avsw reader.
-
parameters
- matrix=<from>:<to>
bt709, smpte170m, bt470bg, smpte240m, YCgCo, fcc, GBR, bt2020nc, bt2020c, auto- colorprim=<from>:<to>
bt709, smpte170m, bt470m, bt470bg, smpte240m, film, bt2020, auto- transfer=<from>:<to>
bt709, smpte170m, bt470m, bt470bg, smpte240m, linear, log100, log316, iec61966-2-4, iec61966-2-1, bt2020-10, bt2020-12, smpte2084, arib-std-b67, auto- range=<from>:<to>
limited, full, auto-
lut3d=<string>
Apply a 3D LUT to an input video. Curretly supports .cube file only. -
lut3d_interp=<string>
nearest, trilinear, tetrahedral, pyramid, prism -
hdr2sdr=<string>
Enables HDR10 to SDR by selected tone-mapping.-
none (default)
hdr2sdr processing is disabled. -
hable
Trys to preserve both bright and dark detailes, but with rather dark result. You may specify addtional params (a,b,c,d,e,f) for the hable tone-mapping function below.hable(x) = ( (x * (ax + cb) + de) / (x * (ax + b) + d*f) ) - e/f
output = hable( input ) / hable( (source_peak / ldr_nits) )defaults: a = 0.22, b = 0.3, c = 0.1, d = 0.2, e = 0.01, f = 0.3
-
mobius
Trys to preserve contrast and colors while bright details might be removed.- transition=<float> (default: 0.3)
Threshold to move from linear conversion to mobius tone mapping. - peak=<float> (default: 1.0)
reference peak brightness
- transition=<float> (default: 0.3)
-
reinhard
- contrast=<float> (default: 0.5)
local contrast coefficient - peak=<float> (default: 1.0)
reference peak brightness
- contrast=<float> (default: 0.5)
-
bt2390
Perceptual tone mapping curve (EETF) specified in BT.2390.
-
-
source_peak=<float> (default: 1000.0)
-
ldr_nits=<float> (default: 100.0)
Target brightness for hdr2sdr function. -
desat_base=<float> (default: 0.18)
Offset for desaturation curve used in hdr2sr. -
desat_strength=<float> (default: 0.75)
Strength of desaturation curve used in hdr2sr. 0.0 will disable the desaturation, 1.0 will make overly bright colors will tend towards white. -
desat_exp=<float> (default: 1.5)
Exponent of the desaturation curve used in hdr2sr. This controls the brightness of which desaturated is going to start. Lower value will make the desaturation to start earlier.
-
Examples
example1: convert from BT.601 -> BT.709 --vpp-colorspace matrix=smpte170m:bt709 example2: using hdr2sdr (hable tone-mapping) --vpp-colorspace hdr2sdr=hable,source_peak=1000.0,ldr_nits=100.0 example3: using hdr2sdr (hable tone-mapping) and setting the coefs (this is example for the default settings) --vpp-colorspace hdr2sdr=hable,source_peak=1000.0,ldr_nits=100.0,a=0.22,b=0.3,c=0.1,d=0.2,e=0.01,f=0.3 example4: using lut3d --vpp-colorspace lut3d="example.cube",lut3d_interp=trilinear
--vpp-libplacebo-tonemapping [<param1>=<value1>][,<param2>=<value2>],...
Performs tone mapping using libplacebo.
-
Parameters
-
src_csp=<string>
Input color space.auto, sdr, hdr10, hlg, dovi, rgb -
dst_csp=<string>
Output color space.auto, sdr, hdr10, hlg, dovi, rgb -
src_max=<float>
Input maximum luminance (nits). (Default: auto, tries to get info from input file if possible, otherwise 1000.0 (HDR) / 203.0 (SDR)) -
src_min=<float>
Input minimum luminance (nits). (Default: auto, tries to get info from input file if possible, otherwise 0.005 (HDR) / 0.2023 (SDR)) -
dst_max=<float>
Output maximum luminance (nits). (Default: auto, tries to get info from parameters if possible, otherwise 1000.0 (HDR) / 203.0 (SDR)) -
dst_min=<float>
Output minimum luminance (nits). (Default: auto, tries to get info from parameters if possible, otherwise 0.005 (HDR) / 0.2023 (SDR)) -
dynamic_peak_detection=<bool>
Enables computation of signal stats to optimize HDR tone mapping quality. Default: true -
smooth_period=<float>
Smoothing coefficient for detected values. Default: 20.0 -
scene_threshold_low=<float>
Lower threshold for scene change detection (dB). Default: 1.0 -
scene_threshold_high=<float>
Upper threshold for scene change detection (dB). Default: 3.0 -
percentile=<float>
Percentile to consider for luminance histogram. Default: 99.995 -
black_cutoff=<float>
Black level cutoff intensity (PQ%). Default: 1.0 -
gamut_mapping=<string>
Gamut mapping mode. (Default: perceptual)clip, perceptual, softclip, relative, saturation, absolute, desaturate, darken, highlight, linear -
tonemapping_function=<string>
Tone mapping function. (Default: bt2390)clip, st2094-40, st2094-10, bt2390, bt2446a, spline, reinhard, mobius, hable, gamma, linear, linearlight -
for tonemapping_function=st2094-40, st2094-10, spline
-
knee_adaptation=<float> (float, 0.0 - 1.0, default: 0.4)
Configures the knee point as a ratio between the source and target average brightness in PQ space.- 1.0: Always adapts source scene average to scaled target average
- 0.0: Never modifies scene brightness
-
knee_min=<float> (0.0 - 0.5, default: 0.1)
Minimum knee point in ratio of PQ luminance range. -
knee_max=<float> (0.5 - 1.0, default: 0.8)
Maximum knee point in ratio of PQ luminance range. -
knee_default=<float> (knee_min - knee_max, default: 0.4)
Default knee point used when source scene average metadata is unavailable.
-
-
for tonemapping_function=bt2390
- knee_offset=<float> (0.5 - 2.0, default: 1.0)
Knee point offset.
- knee_offset=<float> (0.5 - 2.0, default: 1.0)
-
for tonemapping_function=spline
-
slope_tuning=<float> (0.0 - 10.0, default: 1.5)
Coefficient for the slope of the spline curve. -
slope_offset=<float> (0.0 - 1.0, default: 0.2)
Slope offset of the spline curve. -
spline_contrast=<float> (0.0 - 1.5, default: 0.5)
Contrast for the spline function. Higher values preserve midtones but may lose shadow/highlight details.
-
-
for tonemapping_function=reinhard
- reinhard_contrast=<float> (0.0 - 1.0, default: 0.5)
contrast coefficient at display peak for the reinhard function.
- reinhard_contrast=<float> (0.0 - 1.0, default: 0.5)
-
for tonemapping_function=mobius, gamma
- linear_knee=<float> (0.0 - 1.0, default: 0.3)
-
for tonemapping_function=linear, linearlight
- exposure=<float> (0.0 - 10.0, default: 1.0)
Linear exposure/gain applied.
- exposure=<float> (0.0 - 10.0, default: 1.0)
-
metadata=<int>
Data source to use for tone mapping.any, none, hdr10, hdr10plus, cie_y -
contrast_recovery=<float>
Contrast recovery strength. Default: 0.3 -
contrast_smoothness=<float>
Contrast recovery lowpass kernel size. Default: 3.5 -
inverse_tone_mapping=<bool>
Inverse tone mapping. Default: false -
visualize_lut=<bool>
Visualize tone mapping curve/LUT. Default: false -
show_clipping=<bool>
Graphically highlight hard-clipped pixels. Default: false -
use_dovi=<bool>
Whether to use Dolby Vision RPU as ST2086 metadata. Default: auto (enabled when tone mapping from Dolby Vision) -
dst_pl_transfer=<string>
Output transfer function. Must be used withdst_pl_colorprim.unknown, srgb, bt1886, linear, gamma18, gamma20, gamma22, gamma24, gamma26, gamma28, prophoto, st428, pq, hlg, vlog, slog1, slog2 -
dst_pl_colorprim=<string>
Output color primaries. Must be used withdst_pl_transfer.unknown, bt601_525, bt601_625, bt709, bt470m, ebu_3213, bt2020, apple, adobe, prophoto, cie_1931, dci_p3, display_p3, v_gamut, s_gamut, film_c, aces_ap0, aces_ap1
-
-
Examples
Example: Dolby Vision to SDR tone mapping --vpp-libplacebo-tonemapping src_csp=dovi,dst_csp=sdr
--vpp-libplacebo-tonemapping-lut <string>
lut file path used in --vpp-libplacebo-tonemapping.
--vpp-delogo <string>[,<param1>=<value1>][,<param2>=<value2>],...
Specify the logo file and settings for the logo to be eliminated. The logo file supports ". lgd", ". ldp", and ". ldp2" formats.
-
Parameters
-
select=<string>
For logo pack, specify the logo to use with one of the following.-
Logo name
-
Index (1, 2, ...)
-
Automatic selection ini file
[LOGO_AUTO_SELECT] logo<num>=<pattern>,<logo name>Example:
[LOGO_AUTO_SELECT] logo1= (NHK-G).,NHK総合 1440x1080 logo2= (NHK-E).,NHK-E 1440x1080 logo3= (MX).,TOKYO MX 1 1440x1080 logo4= (CTC).,チバテレビ 1440x1080 logo5= (NTV).,日本テレビ 1440x1080 logo6= (TBS).,TBS 1440x1088 logo7= (TX).,TV東京 50th 1440x1080 logo8= (CX).,フジテレビ 1440x1088 logo9= (BSP).,NHK BSP v3 1920x1080 logo10= (BS4).,BS日テレ 1920x1080 logo11= (BSA).,BS朝日 1920x1080 logo12= (BS-TBS).,BS-TBS 1920x1080 logo13= (BSJ).,BS Japan 1920x1080 logo14= (BS11).,BS11 1920x1080 v3
-
-
pos <int>:<int>
Adjustment of logo position with 1/4 pixel accuracy in x:y direction. -
depth <int>
Adjustment of logo transparency. Default 128. -
y=<int>
-
cb=<int>
-
cr=<int>
Adjustment of each color component of the logo. -
auto_fade=<bool>
Adjust fade value dynamically. default=false. -
auto_nr=<bool>
Adjust strength of noise reduction dynamically. default=false. -
nr_area=<int>
Area of noise reduction near logo. (default=0 (off), 0 - 3) -
nr_value=<int>
Strength of noise reduction near logo. (default=0 (off), 0 - 4) -
log=<bool>
log the offset of the fade value when using auto_fade and auto_nr.
-
-
Examples
example: --vpp-delogo logodata.ldp2,select=delogo.auf.ini,auto_fade=true,auto_nr=true,nr_value=3,nr_area=1,log=true
--vpp-rff
Reflect the Repeat Field Flag. The avsync error caused by rff could be solved. Available only when --avhw or --avsw is used.
rff of 2 or more will not be supported (only supports rff = 1). Also, it can not be used with --trim, --vpp-deinterlace.
--vpp-deinterlace <string>
Activate hw deinterlacer. Available only when used with --avhw(hw decode) and --interlace tff or --interlace bff is specified.
- none ... no deinterlace (default)
- normal ... standard 60i → 30p interleave cancellation.
- adaptive ... same as normal
- bob ... 60i → 60p interleaved.
for IT(inverse telecine), use --vpp-afs.
--vpp-deint-csp <string>
Select the CSP used for deinterlace filters. Default is input.
- parameters
- input When CUDA deinterlace filters are enabled, run deinterlace and closely related filters on the input CSP.
- output Run deinterlace filters on the output CSP, matching the previous behavior.
--vpp-afs [<param1>=<value1>][,<param2>=<value2>],...
Activate Auto Field Shift (AFS) deinterlacer.
-
parameters
-
top=<int>
-
bottom=<int>
-
left=<int>
-
right=<int>
clip out the range to decide field shift. -
method_switch=<int> (0 - 256)
threshold to swicth field shift algorithm. -
coeff_shift=<int> (0 - 256)
threshold for field shift, with bigger value, more field shift will be occurred. -
thre_shift=<int> (0 - 1024)
threshold for stripe detection which will be used on shift decision. Lower value will result more stripe detection. -
thre_deint=<int> (0 - 1024)
threshold for stripe detection which will be used on deinterlacing. Lower value will result more stripe detection. -
thre_motion_y=<int> (0 - 1024)
-
thre_motion_c=<int> (0 - 1024)
threshold for motion detection. Lower value will result more motion detection. -
level=<int> (0 - 4)
Select how to remove the stripes.level process target decription 0 none Stripe removing process will not be done.
New frame generated by field shift will be the output.1 triplication all pixels Blend previous field into new frame generated by field shift.
Stripe caused be motion will all become afterimage.2 duplicate stripe-detected pixels Blend previous field into new frame generated by field shift, only on stripe detected pixels.
Should be used for movies with little motion.3 (default) duplicate motion-detected pixels Blend previous field into new frame generated by field shift, only on motion detected pixels.
This mode can preserve more edges or small letters compared to level 2.4 interpolate motion-detected pixels On motion detected pixels, drop one field, and generate pixel by interpolating from the other field.
There will be no afterimage, but the vertical resolution of pixels with motion will halved. -
shift=<bool>
Enable field shift. -
drop=<bool>
drop frame which has shorter display time than "1 frame". Note that enabling this option will generate VFR (Variable Frame Rate) output. When muxing is done by NVEncC, the timecode will be applied automatically. However, when using raw output, you will need output timecode file by adding "timecode=true" to vpp-afs option, and mux the timecode file later. -
smooth=<bool>
Smoothen picture display timing. -
24fps=<bool>
Force 30fps -> 24fps conversion. -
tune=<bool>
When this options is set true, the output will be the result of motion and stripe detection, shown by the color below.color description dark blue motion was detected grey stripe was detected light blue motion & stripe was detected -
rff=<bool>
When this options is set true, rff flag from input will be checked, and when there is progressive frame coded with rff, then deinterlacing will not be applied. -
log=<bool>
Generate log of per frame afs status (for debug). -
preset=<string>
Parameters will be set as below.preset name default triple double anime
cinemamin_afterimg 24fps 30fps method_switch 0 0 0 64 0 92 0 coeff_shift 192 192 192 128 192 192 192 thre_shift 128 128 128 128 128 448 128 thre_deint 48 48 48 48 48 48 48 thre_motion_y 112 112 112 112 112 112 112 thre_motion_c 224 224 224 224 224 224 224 level 3 1 2 3 4 3 3 shift on off on on on on off drop off off on on on on off smooth off off on on on on off 24fps off off off off off on off tune off off off off off off off rff off off off off off off off
-
-
Examples
example: same as --vpp-afs preset=24fps --vpp-afs preset=anime,method_switch=92,thre_shift=448,24fps=true
--vpp-nnedi [<param1>=<value1>[,<param2>=<value2>]...]
nnedi deinterlacer.
-
parameters
- planes=<string>
Target planes.all, or:-separated list ofy,u,v. Default:all. - field=<string>
Target field selector.bob,auto(default),top,bottom,bob_tff,bob_bff. - nsize=<string>
Neighborhood size.8x6,16x6,32x6,48x6,8x4,16x4,32x4(default). - nns=<int>
Neuron count.16,32(default),64,128,256. - quality=<string>
Quality mode.fast(default) orslow. - prescreen=<int>
Supported values:2/3/4.0/1are not implemented. Default:2. - errortype=<string>
Error type.abs(default) orsquare. - clamp=<int>
Clamp range mode.0-4. Default:1. - double_height=<bool>
Double output height. Supported only withfield=auto/top/bottom. Default: off. - weightfile=<path>
Path tonnedi3_weights.bin. If omitted, Windows builds search fornnedi3_weights.bin, and Linux builds use embedded weights.
- planes=<string>
-
Note
prescreen=0/1is currently unsupported.
-
Examples
example: --vpp-nnedi field=auto,nns=64,nsize=32x6,quality=slow,prescreen=2,clamp=1
--vpp-rtgmc [<param1>=<value1>]
High quality QTGMC deinterlacer with relaxed implementation for GPU.
-
major parameters
-
preset=<string>
slower,slow,medium,fast,faster(default),veryfast,superfast,ultrafast,draft. This refers the original values. -
tuning=<string>
none(default),dv-sd,dv-hd. -
preset expansion table (implementation values)
preset tr0 tr1 tr2 rep0-thin rep2-thin edi nnsize nneurons search_refine search searchparam pelsearch search_early_sad chroma_motion precise prog_sad_mask slower 2 2 1 4 4 nnedi3 1 1 3 4 2 2 0 on off 10.0 slow 2 1 1 4 4 nnedi3 1 1 3 4 2 2 0 off off 10.0 medium 2 1 1 3 4 nnedi3 5 1 3 4 2 1 8 off off 10.0 fast 2 1 0 3 4 nnedi3 5 0 2 4 2 1 8 off off 0.0 faster 1 1 0 0 4 nnedi3 4 0 2 4 2 1 16 off off 0.0 veryfast 1 1 0 0 4 nnedi3 4 0 2 4 1 1 16 off off 0.0 superfast 1 1 0 0 3 nnedi3 4 0 1 0 1 1 16 off off 0.0 ultrafast 1 1 0 0 3 repyadif 4 0 1 0 1 1 16 off off 0.0 draft 0 1 0 0 0 bob 4 0 0 0 1 1 16 off off 0.0 blksizeis tuning-dependent (dv-hd=32, otherwise16) forslower..fast, and fixed to32forfaster..draft.overlapisblksize/2forslower..faster, andblksize/4forveryfast..draft.subpelis2forslower..slow, and1formedium..draft.
-
source_match=<int>
0-3.match_tr1/match_tr2are0-2;match_enhanceis0.0-1.0. -
edi/match_edi=<string>
bob,yadif,cyadif,repyadif,repcyadif,nnedi3,passthrough. Forsource_match>0,match_ediis limited tobob/yadif/cyadif/repyadif/repcyadif/nnedi3. -
tr0/rep0-thin/rep0-pad/search_refine
tr0=-1..2,rep0-thin=0-7,rep0-pad=0-3,search_refine=0-3. -
mv_spatial_refine=<int|auto>
Motion-vector spatial refinement count. Motion estimation proceeds through a coarse-to-fine pyramid of analysis levels; this option controls how many spatial refinement passes (which consult neighboring block motion vectors to further improve precision) are run at each level. Default isauto(-1): perform spatial refinement only at the coarsest (lowest-resolution) level, where the block count is smallest, and skip it at all finer levels. This concentrates spatial-neighbor based refinement on the level where its serial-dependency cost is negligible, while letting the finer levels (with many blocks) run with maximum GPU parallelism.0disables spatial refinement at every level;1runs one pass at every level,2runs two passes at every level, and so on. -
search_early_sad=<int|off>
Skip the level0 full search when the predictor SAD is below this threshold. The value is in 8x8-block, 8-bit SAD units (0-65535) and is scaled automatically for blksize and bit depth;off(-1) disables it. Preset defaults are listed above. -
spatial_early_sad=<int|off>
Skip spatial refinement for a block when the SAD selected by the level1 search is below this threshold. The value is in 8x8-block, 8-bit SAD units (0-65535) and is scaled automatically for blksize and bit depth. Default:off(-1). -
rep1-thin/rep1-pad/rep2-thin/rep2-pad
repN-thin=0-7,repN-pad=0-3. -
noise group This stage controls noise extraction, denoising, and grain/noise restoration.
noise_processMaster mode for the noise path.0disables noise processing,1enables the current denoise/restore path,2is currently unsupported.denoiserDenoiser selection.nlmeansuses the NLMeans path, whilefft3duses the FFT3D path.noise_deintDeinterlace mode for extracted noise.nonekeeps as-is,bobuses bob-style interpolation,generateis currently unsupported.sigmaDenoise strength proxy; higher values increase smoothing.chroma_noiseWhether chroma planes are included in noise processing.grain_restore/noise_restoreAmount of texture/noise restored after denoising; currently valid only withnoise_process=1. Effective support is constrained as listed in Note below.
-
motion group This stage controls motion-vector search behavior and temporal reference direction.
searchparam/pelsearchSearch preset factors.1is lighter/faster,2is more exhaustive.useflagTemporal direction limit.0uses both directions,1backward-only,2forward-only.pel/levels/lambda/lsad/pnew/plevel/globalmotionAdditional block-matching controls for subpixel granularity, search hierarchy, penalties, and global motion handling.subpelinterp=2,truemotion=false, anddct=0are fixed for CUDA-reference compatibility.
-
retouch group Final resharpen/limit stage for edge recovery and anti-overshoot control.
sharpnessBase sharpening amount (0.0-1.0).limitLegacy-compatible limiting factor (0.0-1.0) to reduce sharpening overshoot.smodeSharpening path selector (0-2).0is effectively off;1/2use different retouch paths.slmode/slrad/sovsSharpen-limit mode, radius, and overshoot allowance (slmode=0-4,slrad=0-3,sovs>=0).svthinVertical thinning strength (0.0-1.0) to suppress line-thickening artifacts.sbbBack-blend mode (0-3) controlling where sharpen/unsharpen differences are mixed.preciseEnables the precise retouch path variant (on/off).
-
-
Note (Limitations)
- EDI is limited to bob/yadif/cyadif/repyadif/repcyadif/nnedi3(rnnedi3)-equivalent modes. NNEDI2/NNEDI/ EEDI3(+NNEDI3)/EEDI2/TDeint, EdiMaxD, and EdiThreads are not supported.
- chroma_edi supports only none or nnedi3(rnnedi3).
- Noise processing does not support noise_process=2, ezkeepgrain, denoise_mc=true, noise_tr>0, noise_deint=generate, ShowNoise, StabilizeNoise, dfttest/KNLMeansCL, or lsb/lsbd/DftDither-equivalent paths.
- source_match supports stages 0-3, but per-stage MatchPreset/MatchPreset2 settings, independent MatchEdi2, and EdiMaxD-related settings are not supported. match_edi is limited to bob/yadif/cyadif/repyadif/repcyadif/nnedi3.
- Motion blur and frame decimation options such as FPSDivisor, ShutterBlur, ShutterAngleSrc/Out, and SBlurLimit are not supported.
- Some KTGMC/MVTools parameters are fixed or restricted: subpelinterp=2, dct=0, truemotion=false, and searchparam/ pelsearch are limited to 1-2.
--vpp-rtgmc-bob [<param1>=<value1>]
For debug. Parameters: order=auto|tff|bff.
--vpp-rtgmc-search-prefilter [<param1>=<value1>]
For debug. Parameters: tr0, rep0-thin, rep0-pad, search_refine, tv_range, chroma_motion, dump_y4m, dump_stage, dump_max_frames.
--vpp-rtgmc-edi [<param1>=<value1>]
For debug. Parameters: mode, nnsize, nneurons, ediqual, chroma_edi.
--vpp-rtgmc-retouch [<param1>=<value1>]
For debug. Parameters: sharpness, limit, smode, slmode, slrad, sovs, svthin, sbb, precise, tr1, tr2.
--vpp-rtgmc-shimmer-repair [<param1>=<value1>]
For debug. Parameters: stage=rep1|rep2, rep-thin, rep-pad, rep_chroma.
--vpp-rtgmc-primitive [<param1>=<value1>]
For debug. Parameters: op, ref, mode, weight, chroma.
--vpp-kfm [<param1>=<value1>[,<param2>=<value2>]...]
Adaptive inverse telesine filter supporting 24/30/60 mixed VFR output.
Please note that this filter is slow, recommended to be used on dGPUs.
-
parameters
- mode=<string>
Output mode.vfr(default),60,24. - preset=<string>
Reserved nested preset.slower,slow,medium,fast,faster(default),veryfast,superfast,ultrafast,draft. - search_early_sad=<int|auto|off>
SAD threshold for skipping the level0 full search, in 8x8-block, 8-bit SAD units (0-65535), scaled automatically for blksize and bit depth.auto(default) uses the preset value;off(-1) disables it. - spatial_early_sad=<int|auto|off>
Skip spatial refinement for a block when the SAD selected by the level1 search is below this threshold. The value is in 8x8-block, 8-bit SAD units (0-65535) and is scaled automatically for blksize and bit depth.auto(default) uses the preset value (slower/slow: 0,medium: 16,fast: 32,fasterthroughdraft: 64);off(-1) disables it. - timing=<string>
Timing analysis mode.realtime,realtime+(default),strict. - past_cycles=<int>
Commit delay cycles forrealtime+. Default: 30. - thswitch=<float>
60p switch threshold. Default: 0.5. - ucf=<bool>
Enable the UCF stage. Default: off. - nr=<bool>
Apply degrain on the final KFM output stream. Default: off. - is120=<bool>
Reserve 120fps duration correction flag. Default: on. - rff=<bool>
Preserve progressive RFF input frames without deinterlacing them. The input timestamps are used as the timing anchor. Default: on. - debug=<bool>
Write.result.datand.frameinfo.tsvdumps whentimecodeis specified. Default: off. - debug_stage=<string>
none,switch-flag(switch-flag-min),contains-combe,combe-mask(combe-mask-min). Used for 24p debug output selection. - timecode=<path>
Timecode v2 dump path. Inmode=24/vfr,*.duration.txtis also emitted.
- mode=<string>
--vpp-yadif [<param1>=<value1>]
Yadif deinterlacer.
-
parameters
-
mode
- auto (default)
Generate latter field from first field. - tff
Generate bottom field using top field. - bff
Generate top field using bottom field. - bob
Generate one frame from each field. - bob_tff
Generate one frame from each field assuming top field first. - bob_bff
Generate one frame from each field assuming bottom field first.
- auto (default)
-
--vpp-bwdif [<param1>=<value1>]
Bwdif deinterlacer.
-
parameters
-
mode
- frame (default) Output at the same frame rate as the input.
- bob Output at double frame rate.
-
order
- auto (default) Detect field order from each input frame automatically.
- tff Process as top field first.
- bff Process as bottom field first.
-
deint=<all|interlaced>
Frames to deinterlace. Default: all.interlacedpasses through frames not flagged as interlaced. -
thr=<float>
Motion detection threshold. Default 0.0 (0.0 - 100.0).
-
--vpp-decomb [<param1>=<value1>][,<param2>=<value2>],...
Decomb deinterlaer.
-
parameters
- full=<bool>
deinterlace all frames. default on. - threshold=<int>
threshold for combed frame detection. default 20 (0 - 255). - dthreshold=<int>
threshold for deinterlacing frames detected as combed. default 7 (0 - 255). - blend=<bool>
blend rather than interpolate. default off.
- full=<bool>
--vpp-ivtc [<param1>=<value1>[,<param2>=<value2>]...]
Inverse telecine for soft-telecine / hard-telecine sources.
- parameters
- guide=<int> (default: 1)
Matching mode.- 0 Select the candidate with the minimum match-quality from C/P/N.
- 1 Prefer C when it is clean enough, otherwise choose from P/N.
- 2 PAL 2:2 mode.
- post=<int> (default: 2)
Post process for residual combing.- 0 No post process.
- 2 Apply adaptive blend only to pixels detected as combed.
- cycle=<auto|int> (default: auto)
Decimation cycle.autoenables 3:2 decimation only when input fps is 26 or higher. - drop=<int> (default: 1)
Frames to drop per cycle. Currently only1is supported. - combthresh=<float> (default: 0.12)
Per-pixel combing threshold.0.0 - 1.0. - cleanfrac=<float> (default: 0.20)
Fraction of combed pixels still allowed for C to be treated as clean. - dthresh=<int> (default: 7)
Per-pixel deinterlace gate.0 - 255.0disables the gate. - chroma=<bool>
Include chroma planes in match-quality scoring. - back=<int>
When to test match=P.0= always test,1= only when C looks combed. - y0=<int>
- y1=<int>
Exclusion band for the combing metric. Useful for burned-in subtitles. - nt=<int> (default: 10)
Match-metric noise tolerance in 8-bit scale. - cthresh=<int> (default: 4)
Per-pixel comb threshold used in match scoring in 8-bit scale. - combpel=<int> (default: 8)
Number of combed pixels per 32x8 block before the block is counted as combed. - scthresh=<float> (default: 0.0)
Scene-change threshold as a fraction of max SAD.0.0uses the adaptive threshold. - cadlock=<auto|on|off>
Enable cadence pattern lock.autoenables it whenguide>=1. - gthresh=<int>
Tolerance for cadence-predicted match override.0 - 100.0disables override. - vthresh=<int>
Post-assembly combing veto threshold.0 - 256.0disables it. - expand=<auto|on|off>
DGDecode-compatible RFF expansion.autoenables it whenguide>=1and soft-telecine is detected. - mixed=<bool>
Mixed mode for inputs containing both RFF/progressive sections and true interlaced sections. Requires--avswor--avhw. - hysteresis=<float>
Penalty against switching the chosen match type between adjacent frames.0.0 - 1.0. - tff=<auto|on|off>
Field order.autoderives it from inputpicstruct. - log=<path|bool>
Write per-frame match log.
- guide=<int> (default: 1)
--vpp-decimate [<param1>=<value1>][,<param2>=<value2>],...
Drop duplicated frame in cycles set.
- parameters
-
cycle=<int> (default: 5)
num of frame to select frame(s) to be droppped. -
drop=<int> (default: 1)
num of frame(s) to drop within a cycle. -
thredup=<float> (default: 1.1, 0.0 - 100.0)
duplicate threshold. -
thresc=<float> (default: 15.0, 0.0 - 100.0)
scene change threshold. -
blockx=<int>
-
blocky=<int>
block size of x and y direction, default = 32. block size could be 4, 8, 16, 32, 64. -
chroma=<bool>
consdier chroma (default: on). -
log=<bool>
output log file (default: off).
-
--vpp-mpdecimate [<param1>=<value1>][,<param2>=<value2>],...
Drop consequentive duplicate frame(s) and create a VFR video, which might improve effective encoding performance, and improve compression efficiency. Please note that --avsync vfr is automatically activated when using this filter.
- parameters
- hi=<int> (default: 768, 8x8x12)
The frame might be dropped if no 8x8 block difference is more than "hi". - lo=<int> (default: 320, 8x8x5)
- frac=<float> (default: 0.33)
The frame might be dropped if the fraction of 8x8 blocks with difference smaller than "lo" is more than "frac". - max=<int> (default: 0)
Max consecutive frames which can be dropped (if positive). Min interval between dropped frames (if negative). - keep=<int> (default: 0)
Number of similar consecutive frames to keep before starting to drop. - log=<bool>
output log file. (default: off)
- hi=<int> (default: 768, 8x8x12)
--vpp-select-every <int>[,<param1>=<int>]
select one frame per specified frames and create output.
-
parameters
-
step=<int>
-
offset=<int> (default: 0)
-
-
Examples
example1 (same as "select even"): --vpp-select-every 2 example2 (same as "select odd "): --vpp-select-every 2,offset=1
--vpp-rotate <int>
Rotate video. 90, 180, 270 degrees is allowed.
--vpp-transform [<param1>=<value1>][,<param2>=<value2>],...
- Parameters
-
flip_x=<bool>
-
flip_y=<bool>
-
transpose=<bool>
-
--vpp-lenscorrection [<param1>=<value1>][,<param2>=<value2>],...
Correct radial lens distortion using Brown-Conrady coefficients.
- k1=<float>, k2=<float>: radial distortion coefficients.
- cx=<float>, cy=<float>: correction centre in normalized image coordinates (default: 0.5).
--vpp-lenscorrection k1=-0.20,k2=0.04
--vpp-v360 [<param1>=<value1>][,<param2>=<value2>],...
Convert between equirect, flat, and cubemap projections.
- in=<string>, out=<string>: input/output projection: equirect / flat / cubemap.
- yaw=<float>, pitch=<float>, roll=<float>: view rotation in degrees.
- h_fov=<float>: horizontal field of view for flat output.
- w=<int>, h=<int>: output resolution.
--vpp-v360 in=equirect,out=flat,yaw=30,pitch=0,h_fov=90,w=1920,h=1080
--vpp-convolution3d [<param1>=<value1>][,<param2>=<value2>],...
3d noise reduction.
-
Parameters
-
matrix=<string> (default=original)
select matrix to use.- standard
1 2 1 2 4 2 1 2 1 2 4 1 4 8 4 2 4 1 1 2 1 2 4 2 1 2 1 - simple
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
- standard
-
fast=<bool> (default=false)
Use more simple fast mode. -
ythresh=<float> (default=3, 0-255)
Spatial luma threshold to take care of edges. Larger threshold will result stronger denoising, but blurring might occur arround edges. -
cthresh=<float> (default=4, 0-255)
Spatial chroma threshold. Larger threshold will result stronger denoising, but blurring might occur arround edges. -
t_ythresh=<float> (default=3, 0-255)
Temporal luma threshold. Larger threshold will result stronger denoising, but ghosting might occur. Threshold below 10 is recommended. -
t_cthresh=<float> (default=4, 0-255)
Temporal chroma threshold. Larger threshold will result stronger denoising, but ghosting might occur. Threshold below 10 is recommended.
-
-
Examples
Example: using simple matrix --vpp-convolution3d matrix=simple
--vpp-nvvfx-denoise [<param1>=<value1>][,<param2>=<value2>],...
Webcam denoise filter from NVIDIA MAXINE VideoEffects SDK, which is supported on x64 version only. This will removes low-light camera noise from a webcam video while preserving the texture details, supporting resolutions between 80p to 1080p.
This fitler is supported on Turing Gen GPU (RTX20xx) or later. Please download and install Video Effect models and runtime dependencies to use this filter.
- parameters
- strength=<int>
-
0
Weaker effect, which places a higher emphasis on texture preservation. -
1
Stronger effect, which places a higher emphasis on noise removal.
-
- strength=<int>
--vpp-nvvfx-artifact-reduction [<param1>=<value1>][,<param2>=<value2>],...
Artifact reduction filter from NVIDIA MAXINE VideoEffects SDK, which is supported on x64 version only. This will reduce encoder artifacts, while preserving the details of orginal video, supporting resolutions between 90p to 1080p.
This fitler is supported on Turing Gen GPU (RTX20xx) or later. Please download and install Video Effect models and runtime dependencies to use this filter.
- parameters
- mode=<int>
-
0 (default)
Removes lesser artifacts, preserves low gradient information better, and is suited for higher bitrate videos. -
1
Results stronger effect, suitable for lower bitrate videos.
-
- mode=<int>
--vpp-smooth [<param1>=<value1>][,<param2>=<value2>],...
- parameters
-
quality=<int> (default=3, 1-6)
Quality of the filter. Larger value should result in higher quality but with lower speed. -
qp=<int> (default=12, 1 - 63)
Strength of the filter. Larger value will result stronger denoise but with blurring. -
prec
Select precision.-
auto (default)
Use fp16 whenever it is available and will be faster, otherwise use fp32. -
fp16
Force to use fp16. x64 only. -
fp32
Force to use fp32.
-
-
--vpp-msmooth [<param1>=<value1>][,<param2>=<value2>],...
Edge-preserving smoothing filter.
-
Parameters
-
strength=<int> (default=3, 0 - 20)
Strength of smoothing (number of iterations). -
threshold=<float> (default=15.0, 0.0 - 255.0)
Threshold for edge detection. -
threshold_c=<float> (default=-1.0, -1.0 / 0.0 - 255.0)
Edge detection threshold for chroma planes. -1.0 uses the same value as threshold. -
highq=<bool> (default=true)
High quality mode. Increases the number of edge detection points. -
mask=<bool> (default=false)
Output edge mask (for debugging).
-
-
Examples
--vpp-msmooth strength=3,threshold=15.0,threshold_c=18.0
--vpp-denoise-dct [<param1>=<value1>][,<param2>=<value2>],...
- parameters
-
step=<int>
Quality of the filter. Smaller value should result in higher quality but with lower speed.- 1 (high quality, slow)
- 2 (default)
- 4
- 8 (fast)
-
sigma=<float> (default=4.0)
Strength of the filter. Larger value will result stronger denoise but with blurring. -
block_size=<int> (default=8)
- 8
- 16 (slow)
-
--vpp-fft3d [<param1>=<value1>][,<param2>=<value2>],...
FFT based denoise filter.
- parameters
-
sigma=<float>
Strength of filter. (default=1.0, 0.0 - 100.0) -
sigma2=<float> / sigma3=<float> / sigma4=<float>
Filter strength for mid-high / mid-low / low frequencies. 0.0 uses the same value as sigma. (default=0.0, 0.0 - 100.0) -
amount=<float> (default=1.0, 0.0 - 1.0)
Amount of denoising. -
block_size=<int> (default=32)
- 8
- 16
- 32
- 64
-
overlap=<float> (default=0.5, 0.2 - 0.8)
Block overlap, value 0.5 or larger is recomended. -
method=<int> (default = 0)
- 0 ... wiener method
- 1 ... hard thresholding
-
temporal=<int> (default = 1)
- 0 ... spatial filtering only
- 1 ... enable temporal filtering
-
bt=<int> (default = 0)
- 0 ... follow temporal
- 1 ... spatial only
- 2 ... previous + current frame
- 3 ... previous + current + next frame
- 4 ... 2 previous + previous + current + next frame
- -1 ... sharpen/degrid only
-
sharpen=<float>
Frequency-domain sharpening strength. 0.0 disables it. (default=0.0, -10.0 - 10.0) -
scutoff=<float>
Sharpen cutoff frequency. (default=0.30, 0.0 - 1.0) -
svr=<float>
Sharpen vertical ratio. 0.0 disables vertical sharpening. (default=1.00, 0.0 - 10.0) -
smin=<float> / smax=<float>
Minimum / maximum sharpening limits. (default=10.0/100.0) -
degrid=<float>
Block grid compensation strength. 0.0 disables it, 1.0 applies the standard compensation. (default=0.0, 0.0 - 2.0) -
signorm=<bool>
Interpret sigma/smin/smax as real noise-power units. false keeps the legacy-compatible scale. (default=false) -
prec=<string> (default = auto)
- auto ... use fp16 if possible (faster)
- fp32 ... always use fp32
-
--vpp-degrain [<param1>=<value1>]
Motion compensated degrain debug filter.
-
parameters
- preset=<string>
Surface preset.custom(default),auto. This refers the original values. - mode=<string>
Output mode.source,analyze,compb,compf,compb2,compf2,degrain(default),mv,sad. - stage=<string>
Step2 stage marker.auto(default),tr1,tr2. - tr=<int>
Auto preset temporal radius.1or2. Setsmode=degrain,stage, anddelta. - blksize/search/overlap/delta/levels/pel
Block matching geometry and temporal radius parameters. - thsad/thsadc/thscd1/thscd2
Degrain and scene-change thresholds. - tr0/rep0/search_refine
Search reference prefilter parameters. - searchparam/pelsearch/truemotion/lambda/lsad/pnew/plevel/globalmotion/dct/useflag
Motion search tuning parameters. - mv_spatial_refine=<int|auto>
Motion-vector spatial refinement count. Default isauto(-1): run spatial refinement only at the coarsest analysis level, and skip it at all finer levels. - search_early_sad=<int|off>
Skip the level0 full search when the predictor SAD is below this threshold. The value is in 8x8-block, 8-bit SAD units (0-65535) and is scaled automatically for blksize and bit depth. Default:off(-1). - spatial_early_sad=<int|off>
Skip spatial refinement for a block when the SAD selected by the level1 search is below this threshold. The value is in 8x8-block, 8-bit SAD units (0-65535) and is scaled automatically for blksize and bit depth. Default:off(-1). - chroma/binomial/tv_range
Chroma analysis and prefilter/range controls.
- preset=<string>
-
Note (Limitations)
mode=analyzeis inserted after--vpp-kfm;mode=degrain/tr=1,2are inserted after denoise filters. This matches the multi-stage degrain pipeline.- Analysis modes require levels=2.
- Analysis supports only blksize=8, 16, or 32.
- overlap supports only 0 or blksize/2.
- delta supports 1-5, but delta>2 is supported only for analyze or stage=tr2 degrain.
- pel supports only 1, 2, or 4.
--vpp-knn [<param1>=<value1>][,<param2>=<value2>],...
Strong noise reduction filter.
-
Parameters
-
radius=<int> (default=3, 1-5)
radius of filter. Larger value will result stronger denosing, but will require more calculation. -
d=<int> (default=0, 0 - 2)
Temporal radius. Previous/next frames are included in the weighting window. -
strength=<float> (default=0.08, 0.0 - 1.0)
Strength of the filter. Larger value will result stronger denosing. -
lerp=<float> (default=0.2, 0.0 - 1.0)
The degree of blending of the original pixel to the noise reduction pixel. -
th_lerp=<float> (default=0.8, 0.0 - 1.0)
Threshold of edge detection.
-
-
Examples
Example: slightly stronger than default --vpp-knn radius=3,strength=0.10,lerp=0.1
--vpp-nlmeans [<param1>=<value1>[,<param2>=<value2>]...]
Non local means noise reduction filter. Only supported in 64bit binary.
-
Parameters
-
sigma=<float> (default=0.005, 0.0 -)
Noise variance. Larger value will result stronger denosing. -
h=<float> (default=0.05, 0.0 <)
Parameter. Larger value will result the weight to be more flat. -
patch=<int> (default=5, 3 - 21)
Set patch size. Must be odd number. -
search=<int> (default=11, 3 - 21)
Set search size. Must be odd number. -
d=<int> (default=0, 0 - 5)
Temporal radius.0uses spatial NLMeans only. -
search_t=<int> (default=11, 3 - 21)
Set temporal search size. Must be odd number. -
fp16=<string> (default=blockdiff)
-
none
Do not use fp16 and use fp32. High precision but slow. -
blockdiff
Use fp16 in block diff calculation. Balanced between performace and precision. -
all
Additionally use fp16 in weight calculation. Fast but low precision.
-
-
-
Examples
Example: Use larger search area --vpp-nlmeans patch=7,search=15 Example: Enable temporal NLMeans --vpp-nlmeans d=1,search_t=7
--vpp-pmd [<param1>=<value1>][,<param2>=<value2>],...
Rather weak noise reduction by modified pmd method, aimed to preserve edge while noise reduction.
-
Parameters
-
apply_count=<int> (default=2, 1- )
Number of times to apply the filter. Applying filter many times will remove noise stronger. -
strength=<float> (default=100, 0-100)
Strength of the filter. -
threshold=<float> (default=100, 0-255)
Threshold for edge detection. The smaller the value is, more will be detected as edge, which will be preserved. -
useexp=<bool> (default=true)
Use exp function for coefficient calculation. If set to false, a simplified formula will be used.
-
-
Examples
Example: Slightly weak than default --vpp-pmd apply_count=2,strength=90,threshold=120
--vpp-hqdn3d [<param1>=<value1>[,<param2>=<value2>]...]
HQDN3D spatial and temporal denoise filter. The CUDA path uses FP32 scratch buffers.
-
Parameters
- luma_spatial=<float> (default=4.0, 0-255)
Spatial denoise strength for luma. - chroma_spatial=<float> (default=3.0, 0-255)
Spatial denoise strength for chroma. - luma_temporal=<float> (default=6.0, 0-255)
Temporal denoise strength for luma. - chroma_temporal=<float> (default=4.5, 0-255)
Temporal denoise strength for chroma.
- luma_spatial=<float> (default=4.0, 0-255)
-
Examples
--vpp-hqdn3d luma_spatial=4.0,chroma_spatial=3.0,luma_temporal=6.0,chroma_temporal=4.5
--vpp-descale [<param1>=<value1>[,<param2>=<value2>]...]
Undo upscaling by solving the inverse system for a known upscaler kernel and output a lower native resolution.
-
Parameters
-
kernel=<string>
Upscaler kernel to invert. Default: bicubic.bilinear, bicubic, spline16, spline36, spline64, lanczos2, lanczos3, lanczos4, auto -
width=<int> / height=<int>
Target native resolution. Specify both for an explicit kernel. -
b=<float>, c=<float>
Bicubic parameters. Default: b=0.0, c=0.5. -
src_left=<float>, src_top=<float>
Source sub-pixel offsets. Default: 0.0. -
src_width=<float>, src_height=<float>
Fractional active source width/height for sources whose native size is not integer. Default: 0.0 (off). -
border_handling=<string>
Border extension mode. Default: mirror.mirror, zero, repeat -
auto=<bool>
Enablekernel=autoand native resolution search. This opens the input separately and analyzesdetect_framesframes, so stdin and pipes are unsupported. -
search_min=<int>, search_max=<int>, search_step=<int>
Search range and fine step forauto=true. Default search_step: 1. -
detect_frames=<int>
Number of frames averaged by auto detection. Default: 10. -
show_scores=<bool>
Log per-candidate auto-detection scores. Default: false.
-
-
Examples
--vpp-descale kernel=bicubic,width=1280,height=720,b=0,c=0.5 --vpp-descale auto=true,detect_frames=8
--vpp-gauss <int>
Specify the size of Gaussian filter, from 3, 5 or 7. It is necessary to add nppc64_11.dll, nppif64_11.dll, nppig64_11.dll in the same folder of NVEncC64, and could be used only in x64 version.
The npp dlls can be downloaded from this link (npp64_11_dll.7z). It can also be found under <CUDA Install Path>\bin if you install CUDA 11.
--vpp-subburn [<param1>=<value1>][,<param2>=<value2>],...
"Burn in" specified subtitle to the video. Text type subtitles will be rendered by libass.
-
Parameters
-
track=<int>
Select subtitle track of the input file to burn in, track count starting from 1. Available when --avhw or --avsw is used. -
filename=<string>
Select subtitle file path to burn in. -
charcode=<string>
Specify subtitle charcter code to burn in, for text type sub. -
shaping=<string>
Rendering quality of text, for text type sub.- simple
- complex (default)
-
scale=<float> (default=0.0 (auto))
scaling multiplizer for bitmap fonts. -
transparency=<float> (default=0.0, 0.0 - 1.0)
adds additional transparency for subtitle. -
brightness=<float> (default=0.0, -1.0 - 1.0)
modifies brightness of the subtitle. -
contrast=<float> (default=1.0, -2.0 - 2.0)
modifies contrast of the subtitle. -
vid_ts_offset=<bool>
add timestamp offset to match the first timestamp of the video file (default on) Please note that when "track" is used, this options is always on. -
ts_offset=<float> (default=0.0)
add offset in seconds to the subtitle timestamps (for debug perpose). -
fontsdir=<string>
directory with fonts used. -
forced_subs_only=<bool>
render forced subs only (default: off).
-
-
Examples
Example1: burn in subtitle from the track of the input file --vpp-subburn track=1 Example2: burn in PGS subtitle from file --vpp-subburn filename="subtitle.sup" Example3: burn in ASS subtitle from file which charcter code is Shift-JIS --vpp-subburn filename="subtitle.sjis.ass",charcode=sjis,shaping=complex
--vpp-libplacebo-shader [<param1>=<value1>][,<param2>=<value2>],...
Apply custom shaders in the specified path using libplacebo.
-
Parameters
-
shader=<string>
Target shader file path. (glsl file) -
<name>=<value>
Replace the value of#define <name> ...in the shader before it is parsed. This is a shader-source (compile-time) parameter and may be specified multiple times. It is separate fromcustom=parameters. -
custom=<name>=<value>
Set a runtime parameter declared with//!PARAMin the shader. libplacebo checks the parameter type and range. This parameter may be specified multiple times. -
res=<int>x<int>
Output resolution of the filter. -
csp=<string>
Input CSP passed to libplacebo.yuv444(default) keeps the current behavior and upsamples to 4:4:4 before shader processing.yuv420skips this upsampling for 4:2:0 input and lets libplacebo handle chroma processing internally.yuv444, yuv420 -
colorsystem=<string>
Color system to use. Default: auto detect.unknown, bt601, bt709, smpte240m, bt2020nc, bt2020c, bt2100pq, bt2100hlg, dolbyvision, ycgco, rgb, xyz, ycgco-re, ycgco-ro -
transfer=<string>
Output transfer function. Default: auto detect.unknown, srgb, bt1886, linear, gamma18, gamma20, gamma22, gamma24, gamma26, gamma28, prophoto, st428, pq, hlg, vlog, slog1, slog2 -
resampler=<string>
Filter function to use when resample is required. Default: libplacebo-ewa-lanczos.libplacebo-spline16, libplacebo-spline36, libplacebo-spline64, libplacebo-nearest, libplacebo-bilinear, libplacebo-gaussian, libplacebo-sinc, libplacebo-lanczos, libplacebo-ginseng, libplacebo-ewa-jinc, libplacebo-ewa-lanczos, libplacebo-ewa-lanczossharp, libplacebo-ewa-lanczos4sharpest, libplacebo-ewa-ginseng, libplacebo-ewa-hann, libplacebo-ewa-hanning, libplacebo-bicubic, libplacebo-triangle, libplacebo-hermite, libplacebo-catmull-rom, libplacebo-mitchell, libplacebo-mitchell-clamp, libplacebo-robidoux, libplacebo-robidouxsharp, libplacebo-ewa-robidoux, libplacebo-ewa-robidouxsharp -
radius=<float>
Adjust the function's radius. Default: auto. Must be between 0.0 and 16.0. -
clamp=<float>
Clamping coefficient for negative weights. Default: 0.0. Must be between 0.0 and 1.0. -
taper=<float>
Additional taper coefficient. Default: 0.0. Must be between 0.0 and 1.0. -
blur=<float>
Additional blur coefficient. Default: 0.0. Must be between 0.0 and 100.0. -
antiring=<float>
Antiringing strength. Default: 0.0. Must be between 0.0 and 1.0. -
linear=<bool>
Linearize the image before scaling. Default: false. -
sigmoid=<bool>
Enable sigmoidization during scaling. Default: false. Requireslinear=trueand is primarily effective on upscaling paths. -
sigmoid_center=<float>
Sigmoid center parameter. Must be between 0.0 and 1.0. If omitted, libplacebo default (0.75) is used. -
sigmoid_slope=<float>
Sigmoid slope parameter. Must be between 1.0 and 20.0. If omitted, libplacebo default (6.5) is used.
-
-
Examples
Example: Apply a custom shader (1280x720 -> 2560x1440) --vpp-libplacebo-shader shader=default-shader-pack-2.1.0\Anime4K_Upscale_CNN_x2_L.glsl,res=2560x1440 Example: Set a shader //!PARAM. --vpp-libplacebo-shader shader=example.glsl,custom=GAIN=1.5 Example: Set a shader #define. --vpp-libplacebo-shader shader=example.glsl,GAIN=1.5
--vpp-resize <string> or [<param1>=<value1>][,<param2>=<value2>],...
Specify the resizing algorithm.
-
options
-
algo=<string>
When unspecified, it will be auto selected. select which algorithm to use.-
CUDA based resize filters.
name description auto auto select bilinear linear interpolation bicubic bicubic interpolation spline16 4x4 spline curve interpolation spline36 6x6 spline curve interpolation spline64 8x8 spline curve interpolation lanczos2 4x4 Lanczos resampling lanczos3 6x6 Lanczos resampling lanczos4 8x8 Lanczos resampling lanczos5 10x10 Lanczos resampling lanczos6 12x12 Lanczos resampling lanczos7 14x14 Lanczos resampling lanczos8 16x16 Lanczos resampling mitchell Mitchell-Netravali filter catmull-rom Catmull-Rom filter hermite Hermite filter jinc36 EWA Jinc resampling (radius=3) jinc64 EWA Jinc resampling (radius=4) jinc144 EWA Jinc resampling (radius=6) jinc256 EWA Jinc resampling (radius=8) nis NVIDIA Image Scaling 1.0.3 fsr1 AMD FidelityFX Super Resolution 1.0 (EASU + RCAS) -
Additional parameters for fsr1
- sharpness=<float>
RCAS sharpness. (0.0 - 1.0, default = 0.5)
- sharpness=<float>
-
Additional parameters for nis / bicubic
- sharpness=<float>
NIS sharpness. (0.0 - 1.0, default = 0.5) - cascade=<string>
NIS cascade mode for scaling over 2x: auto, on, off. - hdr=<string>
NIS sharpening band: auto, sdr, pq. - b=<float>, c=<float>
Mitchell-Netravali B/C coefficients for bicubic. (default B=0.0, C=0.6)
- sharpness=<float>
-
-
npp library resize filters
name description nn nearest neighbor npp_linear linear interpolation by NPP library cubic 4x4 cubic interpolation super So called "super sampling" by NPP library (downscale only) lanczos Lanczos interpolation Filters on the table will use the NPP library, which supports x64 version only. To use those algorithms, you need to download nppc64_11.dll, nppif64_11.dll, nppig64_11.dll separately and place it in the same folder as NVEncC64.exe. The npp dlls can be downloaded from this link (npp64_11_dll.7z). It can also be found under
<CUDA Install Path>\binif you install CUDA 11. -
nvvfx library resize filters
name description nvvfx-superres Super Resolution based on nvvfx library (upscale only) nvvfx-superresis super resolution filter from NVIDIA MAXINE VideoEffects SDK, which is supported on x64 version only. This mode is supported on Turing Gen GPU (RTX20xx) or later. Please download and install Video Effect models and runtime dependencies to use this mode.- Additional parameters
-
superres-mode=<int>
select mode for nvvfx-superres- 0 ... conservative
- 1 ... aggressive (default)
-
superres-strength=<float>
strength for nvvfx-superres (0.0 - 1.0, default = 0.4)
-
- Additional parameters
-
NGX library resize filters
name description ngx-vsr NVIDIA VSR (Video Super Resolution) Requires Turing GPUs or later, and requires driver version 550.58 or higher. Supported on Windows system only.
- Additional parameters
- vsr-quality=<int>
quality for ngx-vsr (1 - 4, default=1) larger value results higher quality.
- vsr-quality=<int>
- Additional parameters
-
libplacebo library resize filters
name description resizable libplacebo-spline16 4x4 spline curve interpolation libplacebo-spline36 6x6 spline curve interpolation libplacebo-spline64 8x8 spline curve interpolation libplacebo-nearest nearest neighbor libplacebo-bilinear linear interpolation ✓ libplacebo-gaussian Gaussian filter ✓ libplacebo-sinc Sinc filter ✓ libplacebo-lanczos Lanczos resampling ✓ libplacebo-ginseng Ginseng filter ✓ libplacebo-ewa-jinc EWA Jinc resampling ✓ libplacebo-ewa-lanczos EWA Lanczos resampling ✓ libplacebo-ewa-lanczossharp EWA Lanczos sharp resampling ✓ libplacebo-ewa-lanczos4sharpest EWA Lanczos 4 sharpest resampling ✓ libplacebo-ewa-ginseng EWA Ginseng resampling ✓ libplacebo-ewa-hann EWA Hann filter ✓ libplacebo-ewa-hanning EWA Hanning filter ✓ libplacebo-bicubic Bicubic interpolation libplacebo-triangle Triangle filter libplacebo-hermite Hermite filter libplacebo-catmull-rom Catmull-Rom spline interpolation libplacebo-mitchell Mitchell-Netravali filter libplacebo-mitchell-clamp Mitchell-Netravali filter with clamping libplacebo-robidoux Robidoux filter libplacebo-robidouxsharp Robidoux sharp filter libplacebo-ewa-robidoux EWA Robidoux filter libplacebo-ewa-robidouxsharp EWA Robidoux sharp filter These filters are supported on Windows x64 version only.
-
Additional parameters
-
pl-radius=<float>
Radius used for resizable algorithm in libplacebo-resample. (0.0 - 16.0, default = auto) -
pl-clamp=<float>
Clamp coefficient for negative weights used in libplacebo-resample, 1.0 will make weight 0 for negative weights. (0.0 - 1.0, default = 0.0) -
pl-taper=<float>
Taper will flatten weight function in the center for libplacebo-resample. (0.0 - 1.0, default = 0.0) -
pl-blur=<float>
Additional blur coefficient for libplacebo-resample. (0.0 - 100.0, default = 0.0) -
pl-antiring=<float>
Antiringing strength for libplacebo-resample. (0.0 - 1.0, default = 0.0)
-
-
-
-
-
Examples
Examples: Use spline64 (in short) --vpp-resize spline64 Examples: Use spline64 --vpp-resize algo=spline64 Examples: Use nvvfx-superres in mode 1 --vpp-resize algo=nvvfx-superres,superres-mode=1 Examples: Use ngx-vsr in best quality --vpp-resize algo=ngx-vsr,vsr-quality=4 Examples: Use libplacebo resize filters --vpp-resize algo=libplacebo-sinc,pl-radius=3.0,pl-antiring=0.5 Examples: Use fsr1 --vpp-resize algo=fsr1,sharpness=0.8 Examples: Use nis --vpp-resize algo=nis,sharpness=0.5,cascade=auto,hdr=sdr Examples: Use jinc144 --vpp-resize algo=jinc144
--vpp-unsharp [<param1>=<value1>][,<param2>=<value2>],...
unsharp filter, for edge and detail enhancement.
-
Parameters
-
radius=<int> (default=3, 1-9)
radius of edge / detail detection. -
weight=<float> (default=0.5, 0-10)
Strength of edge and detail emphasis. Larger value will result stronger effect. -
threshold=<float> (default=10.0, 0-255)
Threshold for edge and detail detection.
-
-
Examples
Example: Somewhat stronger --vpp-unsharp weight=1.0
--vpp-vinverse [<param1>=<value1>[,<param2>=<value2>]...]
Removes residual combing left after deinterlace.
-
Parameters
- mode=<vinverse|vinverse2> (default=vinverse)
Filter mode. - sstr=<float> (default=2.7, 0.0 - 8.0)
Strength of the contra reference. - amnt=<float> (default=255.0, 0.0 - 255.0)
Maximum per-pixel delta in 8-bit scale. 255.0 disables the cap. - scl=<float> (default=0.25, 0.0 - 4.0)
Soft clip scale used when residual and reference difference have opposite signs. - thr=<float> (default=0.0, 0.0 - 255.0)
Residual threshold in 8-bit scale. Pixels below this threshold are left unchanged. - chroma=<bool> (default=true)
Process chroma planes.
- mode=<vinverse|vinverse2> (default=vinverse)
-
examples
--vpp-vinverse --vpp-vinverse mode=vinverse2,sstr=2.0,amnt=160,thr=4,chroma=false
--vpp-chromashift [<param1>=<value1>][,<param2>=<value2>],...
Shift chroma planes to correct chroma/luma alignment.
-
Parameters
- x=<float> (default=0.0, -4.0 - 4.0)
Horizontal shift in luma pixels. - y=<float> (default=0.0, -4.0 - 4.0)
Vertical shift in luma pixels. - show=<normal|laplacian> (default=normal)
Output diagnostic laplacian image. - auto=<bool> (default=false)
Detect shift from early frames. - auto_frames=<int> (default=5, 1-100)
Number of accepted analysis frames for auto detection. - auto_min_pairs=<int> (default=200, 10-10000)
Minimum zero-crossing pairs per analysis frame.
- x=<float> (default=0.0, -4.0 - 4.0)
-
Examples
--vpp-chromashift x=1.0,y=-0.5 --vpp-chromashift auto=true,auto_frames=5 --vpp-chromashift show=laplacian
--vpp-deblock [<param1>=<value1>][,<param2>=<value2>],...
H.264 non-strong style spatial deblocking filter. This is a VPP filter applied to the input image, and is separate from the encoder-side --no-deblock option.
-
Parameters
- qp=<int> (default=24, 0-51)
QP used for filter strength. - alpha=<int> (default=0, -6 - 6)
Alpha offset. - beta=<int> (default=0, -6 - 6)
Beta offset. - chroma=<bool> (default=false)
Apply to planar chroma planes as well. Disabled for semi-planar chroma such as NV12/P010.
- qp=<int> (default=24, 0-51)
-
examples
--vpp-deblock --vpp-deblock qp=30,alpha=2,beta=2,chroma=true
--vpp-deflicker [<param1>=<value1>][,<param2>=<value2>],...
Temporal filter to stabilize frame-to-frame brightness flicker statistically.
-
Parameters
- strength=<float> (default=1.0, 0.0-1.0)
Blend strength of the correction. - damping=<float> (default=0.8, 0.0-1.0)
Temporal damping using the previous frame's correction. - scene_threshold=<float> (default=2.0, 0.5-5.0)
Scene change detection threshold. Detected frames pass through without correction. - frames=<int> (default=30, 5-300)
Rolling frame count used for reference statistics. - predictor=<bool> (default=true)
Use a two-pass predictor-corrector refinement. - chroma=<bool> (default=false)
Apply correction to chroma planes as well.
- strength=<float> (default=1.0, 0.0-1.0)
-
examples
--vpp-deflicker --vpp-deflicker strength=0.8,damping=0.9,frames=60,predictor=false,chroma=true
--vpp-stab [<param1>=<value1>[,<param2>=<value2>]...]
CUDA camera-shake stabilizer that estimates frame-to-frame translation from the luma plane using phase correlation and warps the frame to compensate.
-
Parameters
- strength=<float> (default=1.0, 0.0 - 1.0)
Correction strength. - damping=<float> (default=0.9, 0.0 - 1.0)
Smoothing damping. - trust=<float> (default=0.3, 0.0 - 1.0)
Trust threshold for phase-correlation peaks. - max_shift=<float> (default=32.0, 1 - 256)
Maximum compensated shift in pixels. - border=<string> (default=black)
Border mode, one of black, clamp, mirror.
- strength=<float> (default=1.0, 0.0 - 1.0)
-
examples
--vpp-stab --vpp-stab strength=0.8,damping=0.95,trust=0.25,max_shift=48,border=mirror
--vpp-colorfix [<param1>=<value1>][,<param2>=<value2>],...
Corrects color cast and white balance.
-
Parameters
- mode=<manual|auto|gray> (default=manual)
Correction mode. - space=<auto|rgb|yuv> (default=auto)
Working color space. - matrix=<auto|bt601|bt709|bt2020> (default=auto)
YUV/RGB conversion matrix. - white=<rrggbb> (default=ffffff)
Manual white point. - black=<rrggbb> (default=000000)
Manual black point. - frames=<int> (default=30, 10-5000)
Analysis frames for auto/gray modes. - strength=<float> (default=1.0, 0.0-1.0)
Correction strength for auto/gray modes. - variance_threshold=<float> (default=2.0, >0)
Flash/fade rejection threshold.
- mode=<manual|auto|gray> (default=manual)
-
examples
--vpp-colorfix --vpp-colorfix mode=auto,frames=60,strength=0.8 --vpp-colorfix mode=manual,space=rgb,white=fff6e8,black=050505
--vpp-dehalo [<param1>=<value1>[,<param2>=<value2>]...]
Halo removal filter. Applies correction to luma and copies chroma unchanged.
-
Parameters
- mode=<string> (default=legacy, legacy|alpha)
Filter mode.legacykeeps the previous implementation,alphauses the high-precision halo detection path. - rx=<float> (default=2.0, 0.5 - 10.0)
Horizontal halo radius. - ry=<float> (default=2.0, 0.5 - 10.0)
Vertical halo radius. - darkstr=<float> (default=1.0, 0.0 - 1.0)
Strength for darkening bright halos. - brightstr=<float> (default=0.0, 0.0 - 1.0)
Strength for brightening dark halos. - lowsens=<int> (default=50, 0 - 100)
Lower anchor of the sensitivity ramp. - highsens=<int> (default=50, 0 - 100)
Upper anchor of the sensitivity ramp. - ss=<float> (default=1.5, 1.0 - 4.0)
Supersampling ratio. - search_rade=<int> (default=auto, 1 - 10)
Expand-side search radius for mask generation inmode=alpha. If omitted, usesmax(round(max(rx,ry)),3). - search_radi=<int> (default=search_rade, 1 - 10)
Inpand-side search radius for mask generation inmode=alpha. If omitted, usessearch_rade.
- mode=<string> (default=legacy, legacy|alpha)
-
examples
--vpp-dehalo --vpp-dehalo mode=alpha,rx=2.4,ry=2.0,darkstr=0.8,brightstr=0.1,lowsens=40,highsens=70,ss=1.5,search_rade=3
--vpp-finedehalo [<param1>=<value1>[,<param2>=<value2>]...]
Fine halo removal filter with edge protection.
-
Parameters
- mode=<string> (default=alpha, legacy|alpha)
Internal dehalo mode. - rx, ry, darkstr, lowsens, highsens, ss
Same as
--vpp-dehalo. - search_rade=<int> (default=1, 1 - 10)
Expand-side search radius for the internal dehalo inmode=alpha. - search_radi=<int> (default=search_rade, 1 - 10)
Inpand-side search radius for the internal dehalo inmode=alpha. If omitted, usessearch_rade. - brightstr=<float> (default=1.0, 0.0 - 1.0)
Strength for brightening dark halos. - thmi=<int> (default=80, 0 - 255)
Lower threshold of the edge mask. - thma=<int> (default=128, 0 - 255)
Upper threshold of the edge mask. - thlimi=<int> (default=50, 0 - 255)
Lower threshold of the light edge mask. - thlima=<int> (default=100, 0 - 255)
Upper threshold of the light edge mask. - showmask=<int> (default=0, 0 - 4)
Debug mask output. 1=outside, 2=shrink, 3=edges, 4=strong. - excl=<bool> (default=true)
Enable the exclusion zone around strong and nearby light edges. - edgeproc=<float> (default=0.0, 0.0 - 1.0)
Adds the strong edge mask to the outside mask. - edge=<string> (default=prewitt)
Edge detector: prewitt, sobel, scharr, kirsch, laplacian.
- mode=<string> (default=alpha, legacy|alpha)
-
examples
--vpp-finedehalo --vpp-finedehalo edge=scharr,thmi=60,thma=160,thlimi=30,thlima=120,showmask=4
--vpp-hqdering [<param1>=<value1>[,<param2>=<value2>]...]
DCT ringing reduction filter. Applies correction to luma by default.
-
Parameters
- mrad=<int> (default=1, 1 - 3)
Ring mask expansion radius. - mthr=<int> (default=10, 0 - 255)
Edge mask threshold. - sigma=<float> (default=1.5, 0.5 - 5.0)
Gaussian blur sigma. - showmask=<bool> (default=false)
Output the effective mask only. - protect=<bool> (default=true)
Protect original edge pixels. - edge=<string> (default=log)
Edge detector: log, sobel, prewitt, scharr, kirsch, laplacian. - thr=<int> (default=0)
Limit for the change per pixel in 8-bit scale.0disables the limit. - elast=<float> (default=2.0, 1.0 - 3.0)
Elastic falloff forthr. - darkthr=<int> (default=-1)
Separate limit for darkening.-1followsthr. - minp=<int> (default=0, 0 - 3)
Edge-core inpand iterations excluded from the ring mask. - msmooth=<int> (default=0, 0 - 3)
Ring mask smoothing iterations. - drrep=<int> (default=0)
Repair blurred clip.0=off,1=clamp to the source 3x3 min/max. - sharp=<int> (default=0, 0 - 3)
Contra-sharpening level. Restores line strength lost to blur without reintroducing ringing. - planes=<string> (default=y)
Target planes.all, or:-separated list ofy,u,v.
- mrad=<int> (default=1, 1 - 3)
-
examples
--vpp-hqdering --vpp-hqdering mrad=2,mthr=12,sigma=2.0,protect=true,edge=scharr
--vpp-edgelevel [<param1>=<value1>][,<param2>=<value2>],...
Edge level adjustment filter, for edge sharpening.
-
Parameters
-
strength=<float> (default=5.0, -31 - 31)
Strength of edge sharpening. Larger value will result stronger edge sharpening. -
threshold=<float> (default=20.0, 0 - 255)
Noise threshold to avoid enhancing noise. Larger value will treat larger luminance change as noise. -
black=<float> (default=0.0, 0-31)
strength to enhance dark part of edges. -
white=<float> (default=0.0, 0-31)
strength to enhance bright part of edges.
-
-
Examples
Example: Somewhat stronger (Aviutl version default) --vpp-edgelevel strength=10.0,threshold=16.0,black=0,white=0 Example: Strengthening the black part of the outline --vpp-edgelevel strength=5.0,threshold=24.0,black=6.0
--vpp-msharpen [<param1>=<value1>][,<param2>=<value2>],...
Dynamic edge-based sharpening filter. Sharpens only around edges.
-
Parameters
-
strength=<float> (default=1.0, 0.0 - 1.0)
Strength of sharpening. -
threshold=<float> (default=15.0, 0.0 - 255.0)
Threshold for edge detection. -
slope=<float> (default=0.0, 0.0 -)
Slope of the sigmoid soft mask. 0.0 keeps the legacy binary mask. -
luma_limit=<float> (default=0.0, 0.0 - 255.0)
Reduces sharpening in luma areas darker than this value. 0.0 disables it. -
block_protect=<float> (default=0.0, 0.0 - 1.0)
Reduces sharpening near detected DCT block boundaries. 0.0 disables it. -
highq=<bool> (default=true)
High quality mode. Increases the number of edge detection points. -
mask=<bool> (default=false)
Output edge mask (for debugging).
-
-
Examples
--vpp-msharpen strength=1.0,threshold=15.0 Example: Use soft mask, dark luma attenuation, and block protection --vpp-msharpen strength=0.8,threshold=18.0,slope=8.0,luma_limit=32.0,block_protect=0.5
--vpp-cas [<param1>=<value1>][,<param2>=<value2>],...
Contrast Adaptive Sharpening filter. Applies CAS to luma by default.
-
Parameters
- sharpness=<float> (default=0.4, 0.0 - 1.0)
Sharpening strength. Internally maps to the CAS peak value. - hdr=<bool> (default=false)
Skips the SDR gamma 2.0 luma approximation. Enable this for HDR sources such as PQ or HLG. - chroma=<bool> (default=false)
Also sharpen chroma planes.
- sharpness=<float> (default=0.4, 0.0 - 1.0)
-
examples
Example: Default settings --vpp-cas Example: Stronger sharpening --vpp-cas sharpness=0.7 Example: HDR source --vpp-cas sharpness=0.5,hdr=true
--vpp-detailsharpen [<param1>=<value1>][,<param2>=<value2>],...
Sharpening filter for fine detail enhancement. It boosts texture and low-amplitude detail while suppressing strong enhancement on large edges.
-
Parameters
- z=<float> (default=4.0, 0.001 - 64.0)
Zero point. Larger values treat smaller luminance differences more weakly. - sstr=<float> (default=1.5, 0.0 - 16.0)
Strength of enhancement. Larger values boost details more strongly. - power=<float> (default=4.0, 1.0 - 16.0)
Exponent for nonlinear enhancement. Larger values prioritize mid-amplitude detail. - ldmp=<float> (default=1.0, 0.0 - 1000.0)
Low-amplitude damping. Larger values suppress tiny changes close to noise. - mode=<int> (default=1, 0 - 1)
Blur type. 0 uses 3x3 Gauss, and 1 uses 3x3 Box. - med=<bool> (default=false)
Apply an additional 3x3 median to the blurred image.
- z=<float> (default=4.0, 0.001 - 64.0)
-
Examples
Example: default --vpp-detailsharpen Example: using gauss blur and median with slightly stronger enhancement --vpp-detailsharpen z=3,sstr=2.0,power=3,mode=0,med=true
--vpp-warpsharp [<param1>=<value1>][,<param2>=<value2>],...
Edge warping (sharpening) filter.
-
Parameters
-
threshold=<float> (default=128.0, 0 - 255)
Threshold used when detencting edges. Raising this value will result stronger sharpening. -
blur=<int> (default=2)
Number of times to blur. More times of blur will result weaker sharpening. -
type=<int> (default=0)
- 0 ... use 13x13 size blur.
- 1 ... use 5x5 size blur. This results higher quality, but requires more blur counts.
-
depth=<float> (default=16.0, -128.0 - 128.0)
Depth of warping, raising this value will result stronger sharpening. -
chroma=<int> (default=0)
Select how to process chroma channels.- 0 ... Use luma based mask to process hcroma channels.
- 1 ... Create individual mask for each chroma channels.
-
depth_min=<float> (default=same as depth, -128.0 - 128.0)
Warp depth used on weak edge mask pixels. This may be larger thandepth_maxto reduce warp on strong edges. -
depth_max=<float> (default=same as depth, -128.0 - 128.0)
Warp depth used on strong edge mask pixels. -
edge_thr=<float> (default=192.0, 1.0 - 255.0)
Edge mask value, in 8-bit scale, where adaptive depth reachesdepth_max. -
gamma=<float> (default=1.0, 0.01 - 8.0)
Response curve for adaptive depth. Values below 1.0 increase the effect on weak edges, values above 1.0 focus the effect on strong edges.
-
-
Examples
Example: Using type 1. --vpp-warpsharp threshold=128,blur=3,type=1 Example: Adaptive depth. --vpp-warpsharp depth=8,depth_min=4,depth_max=12,edge_thr=192,gamma=0.7
--vpp-maa [<param1>=<value1>[,<param2>=<value2>]...]
Masked anti-aliasing for animated content (anime, cel-shaded). This combines directional 9-cost AA with edge masking to anti-alias diagonal lines without damaging non-edge content.
-
Parameters
- ss=<float> (default=2.0, 1.0 - 4.0)
Supersample factor. - aa=<int> (default=48, 0 - 255)
Luma AA strength. - aac=<int> (default=aa-8, 0 - 255)
Chroma AA strength. Only used when chroma=on. - mask=<bool> (default=on)
Enable edge mask. - mthresh=<int> (default=7, 1 - 255)
Edge threshold. Higher values treat fewer pixels as edges. - chroma=<bool> (default=off)
Process chroma planes. This is approximately 50-100% slower. - show=<int> (default=0)
Debug overlay mode. 0=normal, 1=mask only, 2=mask+AA. - edge=<string> (default=sobel)
Edge operator. Select from sobel, prewitt, sobel_full, scharr, kirsch, laplacian.
- ss=<float> (default=2.0, 1.0 - 4.0)
-
examples
Example: Default settings --vpp-maa Example: Stronger luma AA with edge mask --vpp-maa aa=64,mthresh=8 Example: Use Scharr edge detection --vpp-maa edge=scharr
--vpp-softlight [<param1>=<value1>][,<param2>=<value2>],...
Neutralize color casts, normalize lightness, or boost contrast/saturation using whole-frame statistics.
-
Parameters
-
mode=<string> (default=neutralize)
- neutralize: neutralize color cast while preserving original brightness.
- lightness: normalize brightness while preserving original hue and saturation.
- neutralize_boost_sat: neutralize color cast and boost saturation.
- neutralize_full: neutralize color and brightness without restoring brightness.
- neutralize_boost: neutralize_full plus RGB contrast boost.
- boost: apply RGB contrast boost only.
- saturation: apply saturation boost only.
-
formula=<string> (default=pegtop)
- pegtop
- illusionshu
- w3c
-
skipblack=<bool> (default=false)
Exclude pure black pixels from the average, useful for sources with letterbox areas.
-
-
Examples
Example: --vpp-softlight --vpp-softlight mode=lightness --vpp-softlight mode=boost,formula=w3c --vpp-softlight mode=neutralize,skipblack=true
--vpp-tweak [<param1>=<value1>][,<param2>=<value2>],...
-
Parameters
-
brightness=<float> (default=0.0, -1.0 - 1.0)
-
contrast=<float> (default=1.0, -2.0 - 2.0)
-
gamma=<float> (default=1.0, 0.1 - 10.0)
-
saturation=<float> (default=1.0, 0.0 - 3.0)
-
hue=<float> (default=0.0, -180 - 180)
-
coring=<bool> (default=false)
-
start_hue=<float> (default=0.0, 0.0 - 360.0)
-
end_hue=<float> (default=360.0, 0.0 - 360.0)
Limit hue/saturation adjustment to the hue angle range. -
swapuv=<bool> (default=false)
-
y_offset=<float> (default=0.0, -1.0 - 1.0)
-
y_gain=<float> (default=1.0, -2.0 - 2.0)
-
cb_offset=<float> (default=0.0, -1.0 - 1.0)
-
cb_gain=<float> (default=1.0, -2.0 - 2.0)
-
cr_offset=<float> (default=0.0, -1.0 - 1.0)
-
cr_gain=<float> (default=1.0, -2.0 - 2.0)
-
r_offset=<float> (default=0.0, -1.0 - 1.0)
-
r_gain=<float> (default=1.0, -2.0 - 2.0)
-
r_gamma=<float> (default=1.0, 0.1 - 10.0)
-
g_offset=<float> (default=0.0, -1.0 - 1.0)
-
g_gain=<float> (default=1.0, -2.0 - 2.0)
-
g_gamma=<float> (default=1.0, 0.1 - 10.0)
-
b_offset=<float> (default=0.0, -1.0 - 1.0)
-
b_gain=<float> (default=1.0, -2.0 - 2.0)
-
b_gamma=<float> (default=1.0, 0.1 - 10.0)
-
-
Examples
Example: --vpp-tweak brightness=0.1,contrast=1.5,gamma=0.75
--vpp-curves [<param1>=<value1>][,<param2>=<value2>],...
Apply color adjustments using curves.
-
Parameters
-
preset=<float>
- none
- color_negative
- process
- darker
- lighter
- increase_contrast
- linear_contrast
- medium_contrast
- strong_contrast
- negative
- vintage
-
m=<string>
Set master curve points, post process for luminance. -
r=<string>
Set curve points for red. Will override preset settings. -
g=<string>
Set curve points for green. Will override preset settings. -
b=<string>
Set curve points for blue. Will override preset settings. -
all=<string>
Set curve points for r,g,b when not specified. Will override preset settings. -
interp=<string> (default=spline)
Interpolation method.splineuses natural cubic spline,pchipuses monotone cubic interpolation that avoids overshoot between points.
-
-
Examples
Example: --vpp-curves r="0/0.11 0.42/0.51 1/0.95":g="0/0 0.50/0.48 1/1":b="0/0.22 0.49/0.44 1/0.8"
--vpp-deband [<param1>=<value1>][,<param2>=<value2>],...
-
Parameters
-
range=<int> (default=15, 0-127)
Blur range. Samples to be used for blur are taken from pixels within this range. -
sample=<int> (default=1, 0-2)
-
sample = 0 Processing is performed by referring a pixel within "range".
-
sample = 1 Blur processing is performed by referring total of 2 pixels, a pixel within "range" and its point symmetric pixel.
-
sample = 2 Blur processing is performed by referring total of 4 pixels including 2 pixels within "range" and their point symmetric pixels.
-
-
thre=<int> (set same threshold for y, cb & cr)
-
thre_y=<int> (default=15, 0-31)
-
thre_cb=<int> (default=15, 0-31)
-
thre_cr=<int> (default=15, 0-31)
Threshold for y, cb, cr blur. If this value is high, the filter will be stronger, but thin lines and edges are likely to disappear. -
dither=<int> (set same dither for y & c)
-
dither_y=<int> (default=15, 0-31)
-
dither_c=<int> (default=15, 0-31)
Dither strength of y & c. -
seed=<int>
Change of random number seed. (default = 1234) -
blurfirst (default=off)
Stronger effect could be expected, by processing blur first. However side effects may also become stronger, which might make thin lines to disappear. -
rand_each_frame (default=off) Change the random number used by the filter every frame.
-
keep_tv_range=<bool> (default=off)
Clamp output to TV range, scaled by bit depth (Y: 16-235,Cb/Cr: 16-240).
-
-
Examples
Example: --vpp-deband range=31,dither=12,rand_each_frame
--vpp-libplacebo-deband [<param1>=<value1>][,<param2>=<value2>],...
Deband filter by libplacebo.
-
Parameters
-
iterations=<int>
iterations (default=1, 0-) -
threshold=<float>
cut-off threshold (default=4.0, 0-) -
radius=<float>
initial radius (default=16.0, 0-) -
grain_y=<float>
extra noise for luma (default=6.0, 0-) -
grain_c=<float>
extra noise for chroma (default=grain_y, 0-) -
dither=<string>
dither mode, only for 8bit.- none
- blue_noise (default)
- ordered_lut
- ordered_fixed
- white_noise
-
lut_size=<int>
size of LUT. (default=64)2, 4, 8, 16, 32, 64, 128, 256
-
-
Examples
Example: --vpp-libplacebo-deband iterations=1,radius=32
--vpp-pad <int>,<int>,<int>,<int>
add padding to left,top,right,bottom (in pixels)
--vpp-overlay [<param1>=<value1>][,<param2>=<value2>],...
Overlay image on top of base video.
-
Parameters
-
file=<string>
source file path of the image. When video is used for file, video framerate should be equal to base video file. -
pos=<int>x<int>
position to add image. -
size=<int>x<int>
size of image. -
alpha=<float> (default: 1.0 (0.0 - 1.0))
alpha value of overlay. -
alpha_mode=<string>
- override ... set value of alpha
- mul ... multiple original value
- lumakey ... set alpha depending on luma
-
lumakey_threshold=<float> (default: 0.0 (dark: 0.0 - 1.0 :bright))
luma used for tranparency. -
lumakey_tolerance=<float> (default: 0.1 (0.0 - 1.0))
set luma range to be keyed out. -
lumakey_softness=<float> (default: 0.0 (0.0 - 1.0))
set the range of softness for lumakey.
-
-
Example:
--vpp-overlay file=logo.png,pos=1620x780,size=300x300 --vpp-overlay file=logo.mp4,pos=0x800,alpha_mode=lumakey,lumakey_threshold=0.0,lumakey_tolerance=0.1
--vpp-ngx-truehdr [<param1>=<value1>][,<param2>=<value2>],...
AI enhanced SDR to HDR conversion using RTX Video SDK. Output will be converted to colormatrix bt.2020.
Adding --colormatrix bt2020nc --colorprim bt2020 --transfer smpte2084 is recommended.
Requires Turing GPUs or later, and requires driver version 550.58 or higher. Supported on Windows system only.
Default paramters are based on the values on the link. Please note that the parameter range for contrast and saturation differs from the link, you will need to add "+100" for contrast and saturation written in the link.
-
Parameters
- contrast=<int> (default=125, 0 - 200)
adjusts the difference between lights and darks. - saturation=<int> (default=75, 0 - 200)
adjusts color intensity. - middlegray=<int> (default=44, 10 - 100)
adjusts average brightness. - maxluminance=<int> (default=1000, 400 - 2000)
adjusts peak brightness in nits.
- contrast=<int> (default=125, 0 - 200)
-
Examples
--vpp-ngx-truehdr maxluminance=1200
--vpp-fruc [<param1>=<value1>][,<param2>=<value2>],...
Frame rate conversion based on NVIDIA Optical Flow FRUC(Frame Rate Up Conversion).
Requires Turing GPUs or later, and requires driver version 528.24 or higher. Supported on Windows system only.
Also, due to limitation of NVIDIA Optical Flow FRUC, this filter will be process in 8bit mode, even if input or output is 10bit.
-
Parameters
- double Convert to double framerate.
- fps=<int>/<int>
Convert to framerate specified.
-
Examples
Example: Convert to double framerate --vpp-fruc double Example: Convert to 59.94fps --vpp-fruc fps=60000/1001
--vpp-anime4k-shader [<param1>=<value1>][,<param2>=<value2>],...
Enable a CUDA luma enhancement / 2x upscale chain based on bloc97 Anime4K v3.2. Currently supports 8bit YUV420 input only.
The CNN models are not included in this filter; use --vpp-onnx for CNN-based models.
A complete chain in one pass: optional pre-filter denoise -> main Anime4K mode -> optional line darken / thin / denoise -> optional highlight clamp and anti-ring -> chroma handling -> end-of-chain resize.
-
Parameters
-
mode=<string> (default: ani4k_original)
Select the Anime4K variant.- ani4k_original ... edge-refine 2x upscale (strength 0.5)
- ani4k_deblur ... edge-refine 2x upscale, stronger (strength 1.0)
- ani4k_darken_hq ... line-darkening 2x upscale
- ani4k_thin_hq ... line-thinning 2x upscale
- ani4k_dog_sharpen ... 1x Difference-of-Gaussians sharpen
- ani4k_dog ... 2x DoG upscale
- ani4k_dtd ... 2x composite darken-thin-deblur upscale
-
scale=<int> (default: 2)
1 = refine at source resolution, 2 = 2x upscale + refine. Some modes imply scale (dog_sharpen=1, dog/dtd=2). -
strength=<float> (default: 0.50)
Refine strength multiplier. Promoted to 1.0 for mode=ani4k_deblur with no explicit value. -
prefilter_denoise=<string> (default: off)
Denoise the luma before the main pass. off / mean / median / mode (bilateral) -
darken=<string> (default: off)
Line-darkening pass after the main pass. off / hq / fast / veryfast -
thin=<string> (default: off)
Line-thinning pass after the main pass. off / hq / fast / veryfast -
denoise=<string> (default: off)
Denoise pass after the main pass. off / mean / median / mode (bilateral) -
denoise_intensity, denoise_spatial, denoise_curve, denoise_hist_reg=<float>
Fine-tune the denoise passes (advanced, optional). -
clamp_highlights=<bool> (default: false)
Clamp output highlights to the local source max. -
antiring=<float> (default: 0.0)
Anti-ringing strength. Clamps each upscaled luma pixel to its 2x2 source min/max envelope. -
chroma_resize=<string> (default: spline36)
U/V resize kernel when scale=2. spline36 / bilinear / bicubic / lanczos3 / joint joint = luma-guided joint-bilateral chroma rebuild. -
chroma=<bool> (default: true)
When scale=2, resize chroma (true) or pass it through unchanged (false). scale=1 always passes through. -
out_res=<WxH>
End-of-chain resize to an arbitrary final size, applied after the Anime4K stage. A negative value on one axis keeps the source aspect (e.g. out_res=-2x1080). -
resize=<string> (default: spline16)
Resampler for out_res.
lanczos4 / spline16 / spline36 / jinc144 / nis / bicubic / ...
-
-
Examples
--vpp-anime4k-shader mode=ani4k_original,scale=2 --vpp-anime4k-shader mode=ani4k_deblur,antiring=0.8,chroma_resize=joint --vpp-anime4k-shader mode=ani4k_dog_sharpen,strength=0.6,out_res=1920x1080
--vpp-onnx [<param1>=<value1>][,<param2>=<value2>],...
CNN filter which runs an ONNX model through ONNX Runtime CUDA / TensorRT provider. The ONNX Runtime GPU package built for CUDA 12 is required.
Windows
The required ONNX Runtime / cuDNN / TensorRT DLLs are packaged at the link below. Download it, extract the 7z archive, and place the DLLs in the same folder as NVEncC64.exe.
The same package works when using only provider=cuda. TensorRT DLLs are not loaded at runtime unless provider=tensorrt is used.
Required module details
When collecting DLLs manually, make sure the following DLLs are visible from PATH or placed in the same folder as NVEncC64.exe.
NVEncC64.exe
├─ onnxruntime.dll
│ ├─ onnxruntime_providers_shared.dll
│ ├─ onnxruntime_providers_cuda.dll
│ │ ├─ cudart64_12.dll
│ │ ├─ cublas64_12.dll
│ │ ├─ cublasLt64_12.dll
│ │ ├─ cufft64_11.dll
│ │ └─ cudnn64_9.dll
│ │ ├─ cudnn_adv64_9.dll
│ │ ├─ cudnn_cnn64_9.dll
│ │ ├─ cudnn_ext64_9.dll
│ │ ├─ cudnn_graph64_9.dll
│ │ │ ├─ cudnn_heuristic64_9.dll
│ │ │ ├─ cudnn_engines_precompiled64_9.dll
│ │ │ ├─ cudnn_engines_runtime_compiled64_9.dll
│ │ │ └─ cudnn_engines_tensor_ir64_9.dll
│ │ └─ cudnn_ops64_9.dll
│ └─ onnxruntime_providers_tensorrt.dll (when using provider=tensorrt)
│ ├─ nvinfer_10.dll
│ │ └─ nvinfer_builder_resource_*.dll
│ ├─ nvonnxparser_10.dll
│ ├─ nvinfer_plugin_10.dll
│ ├─ cudart64_12.dll
│ ├─ cublas64_12.dll
│ └─ cudnn64_9.dll
Even when using provider=tensorrt, the CUDA provider DLL set is required because NVEnc also appends the CUDA provider as a fallback for ops that TensorRT cannot run.
nvinfer_builder_resource_*.dll is a GPU-architecture-specific resource DLL used when TensorRT builds an engine; * is replaced by names such as sm89 or ptx. nvinfer_plugin_10.dll is required by models that use TensorRT plugins, so it is recommended for the additional TensorRT DLL package.
nvinfer_dispatch_10.dll, nvinfer_lean_10.dll, and nvinfer_vc_plugin_10.dll are not required for normal ONNX Runtime TensorRT provider execution.
- ONNX Runtime: Download the CUDA-enabled Windows x64 GPU package (
onnxruntime-win-x64-gpu-*.zip) from ONNX Runtime Releases. Example:onnxruntime-win-x64-gpu-1.23.2.zip - CUDA runtime / cuBLAS / cuFFT: Install CUDA 12.x from CUDA Toolkit Downloads or CUDA Toolkit Archive.
- cuDNN: Install cuDNN 9.x for CUDA 12.x from cuDNN Downloads.
- TensorRT (only when using
provider=tensorrt): Install TensorRT 10.x for Windows x64 / CUDA 12.x from TensorRT Downloads. Downloading may require signing in to NVIDIA Developer and accepting the license.
Linux
Install the required ONNX Runtime / cuDNN / TensorRT modules as follows. Extract the ONNX Runtime GPU package, and install CUDA/cuDNN/TensorRT through NVIDIA apt repositories.
tar xf onnxruntime-linux-x64-gpu-*.tgz
export LD_LIBRARY_PATH=/path/to/onnxruntime-linux-x64-gpu/lib:/usr/local/cuda/targets/x86_64-linux/lib:$LD_LIBRARY_PATH
Example for CUDA 12.8:
sudo apt-get install cuda-cudart-12-8 libcublas-12-8 libcufft-12-8 libcurand-12-8
For cuDNN 9 / TensorRT 10, register NVIDIA local repository .deb packages, then install the runtime libraries.
sudo dpkg -i cudnn-local-repo-ubuntu2404-9.x.y_1.0-1_amd64.deb
sudo cp /var/cudnn-local-repo-ubuntu2404-9.x.y/cudnn-*-keyring.gpg /usr/share/keyrings/
sudo apt-get update
sudo apt-get install libcudnn9-cuda-12
sudo dpkg -i nv-tensorrt-local-repo-ubuntu2404-10.x.x-cuda-12.x_1.0-1_amd64.deb
sudo cp /var/nv-tensorrt-local-repo-ubuntu2404-10.x.x-cuda-12.x/*-keyring.gpg /usr/share/keyrings/
sudo apt-get update
sudo apt-get install libnvinfer10 libnvonnxparsers10
Required module details
On Linux, extract the ONNX Runtime GPU .so files and install the CUDA/cuDNN/TensorRT runtime libraries through apt. Make the extracted ONNX Runtime lib directory visible through LD_LIBRARY_PATH.
nvencc
└─ libonnxruntime.so -> libonnxruntime.so.1 -> libonnxruntime.so.1.23.2
├─ libonnxruntime_providers_shared.so
├─ libonnxruntime_providers_cuda.so
│ ├─ libcudart.so.12 (cuda-cudart-12-8)
│ ├─ libcublas.so.12 (libcublas-12-8)
│ ├─ libcublasLt.so.12 (libcublas-12-8)
│ ├─ libcurand.so.10 (libcurand-12-8)
│ ├─ libcufft.so.11 (libcufft-12-8)
│ └─ libcudnn.so.9 (libcudnn9-cuda-12)
│ ├─ libcudnn_adv.so.9
│ ├─ libcudnn_cnn.so.9
│ ├─ libcudnn_ext.so.9
│ ├─ libcudnn_graph.so.9
│ ├─ libcudnn_heuristic.so.9
│ ├─ libcudnn_engines_precompiled.so.9
│ ├─ libcudnn_engines_runtime_compiled.so.9
│ ├─ libcudnn_engines_tensor_ir.so.9
│ └─ libcudnn_ops.so.9
└─ libonnxruntime_providers_tensorrt.so (when using provider=tensorrt)
├─ libnvinfer.so.10 (libnvinfer10)
│ └─ libnvinfer_builder_resource_*.so.10
├─ libnvonnxparser.so.10 (libnvonnxparsers10)
├─ libcudart.so.12
├─ libcublas.so.12
├─ libcublasLt.so.12
└─ libcudnn.so.9
- ONNX Runtime: Download the CUDA-enabled Linux x64 GPU package (
onnxruntime-linux-x64-gpu-*.tgz) from ONNX Runtime Releases and extract it anywhere. - CUDA runtime / cuBLAS / cuFFT / cuRAND: Configure the NVIDIA CUDA apt repository from CUDA Toolkit Downloads, then install the packages matching the CUDA 12.x version in use. Example for CUDA 12.8:
sudo apt-get install cuda-cudart-12-8 libcublas-12-8 libcufft-12-8 libcurand-12-8
- cuDNN: Download the cuDNN 9 local repository
.debfor Ubuntu / x86_64 / CUDA 12 from cuDNN Downloads, then installlibcudnn9-cuda-12.
sudo dpkg -i cudnn-local-repo-ubuntu2404-9.x.y_1.0-1_amd64.deb
sudo cp /var/cudnn-local-repo-ubuntu2404-9.x.y/cudnn-*-keyring.gpg /usr/share/keyrings/
sudo apt-get update
sudo apt-get install libcudnn9-cuda-12
- TensorRT (only when using
provider=tensorrt): Download the TensorRT 10 local repository.debfor Ubuntu / x86_64 / CUDA 12 from TensorRT Downloads, then install the runtime libraries. Downloading may require signing in to NVIDIA Developer and accepting the license.
sudo dpkg -i nv-tensorrt-local-repo-ubuntu2404-10.x.x-cuda-12.x_1.0-1_amd64.deb
sudo cp /var/nv-tensorrt-local-repo-ubuntu2404-10.x.x-cuda-12.x/*-keyring.gpg /usr/share/keyrings/
sudo apt-get update
sudo apt-get install libnvinfer10 libnvonnxparsers10
libcudnn*.so.9, libnvinfer*.so.10, and libnvonnxparser.so.10 are usually installed under /lib/x86_64-linux-gnu and become visible through ldconfig after apt installation. If CUDA libraries are not found, also add the CUDA lib directory to LD_LIBRARY_PATH.
Models can be downloaded from https://github.com/rigaya/HWEnc-onnx-models/releases. Extract the archive and specify the directory with --vpp-onnx-model-dir when using short model names such as model=artcnn_c4f32.
Pre/post processing is inferred from the model channel count: 1ch=luma SR, 3ch=RGB, 4ch=RGB+noise, 2ch=gray+noise, 3->2ch=chroma.
-
Parameters
-
model=<string>
Path to the ONNX model file (required). A model registered in models.json can be specified without extension when--vpp-onnx-model-diris specified. -
provider=<string> (default: auto)
Execution provider. auto / cuda / tensorrt (trt) -
prec=<string> (default: auto)
TensorRT calculation precision. auto / fp16 (f16) / fp32 (f32). auto uses fp16 with TensorRT. The CUDA provider uses fp32. -
colormatrix=<string> (default: auto)
Accepts the same names as--colormatrix.--vpp-onnxsupports auto / auto_res / smpte170m / bt470bg / bt709 / bt2020nc. The legacy names bt601 and bt2020 are also accepted as aliases for smpte170m and bt2020nc. -
colormatrix_out=<string> (default: auto)
Output-side RGB to YUV color matrix.autouses the same matrix ascolormatrix. Use bt2020nc for SDR-to-HDR models that output BT.2020/PQ RGB. -
colorrange=<string> (default: auto)
Accepts the same names as--colorrange.--vpp-onnxsupports auto / tv / limited / pc / full. -
colorspace=<string> (default: rgb)
Color space for 3ch models. rgb / ycbcr (for ArtCNN *_YCbCr models) -
noise=<int> (default: 15, range: 0 - 255)
Noise sigma for noise models. -
frames=<int> (default: 1)
Temporal window size for models withT*3RGB input channels and 3 output channels. Specify a positive odd number so that the output corresponds to the centre frame. For registered models withframesset inmodels.json, the registry value takes precedence. -
mask=<string>
Grayscale mask image for a two-input ONNX model. White pixels are processed and black pixels are retained. This is intended for static masks such as logo or watermark removal. -
out_res=<WxH>
End-of-chain resize to an arbitrary final size, applied after model inference. A negative value on one axis keeps the source aspect (e.g. out_res=-2x1080). -
resize=<string> (default: lanczos4)
Resampler for out_res. -
list List the models registered in models.json.
--vpp-onnx-model-dirmust be specified.
-
-
Compatibility parameters
- device=<string>, interop=<string>
Accepted for CLI compatibility with QSVEnc/VCEEnc, but NVEnc does not use them to select the inference device or transfer mode. Inference is bound to the CUDA device used by the encoder and uses the host-readback path.
- device=<string>, interop=<string>
-
Available model names
Models registered in models.json can be specified without extension (e.g.
model=artcnn_c4f32).--vpp-onnx-model-dirmust be specified to use this feature. Registered models can specify"colormatrix_out": "bt2020nc"in models.json. Whencolormatrix_out=auto, NVEnc uses the registered output matrix.Family Model names ArtCNN artcnn_c4f16, artcnn_c4f16_dn, artcnn_c4f16_ds, artcnn_c4f32, artcnn_c4f32_dn, artcnn_c4f32_ds, artcnn_r4f32, artcnn_r4f32_dn, artcnn_r8f64, artcnn_r8f64_chroma, artcnn_r8f64_chroma_dn, artcnn_r8f64_chroma_dn_int8_perf, artcnn_r8f64_chroma_int8_perf, artcnn_r8f64_int8_perf, artcnn_r8f64_jpeg420, artcnn_r8f64_jpeg420_ycbcr, artcnn_r8f64_jpeg444, artcnn_r8f64_jpeg444_ycbcr, artcnn_r8f64_rgb, artcnn_r16f96, artcnn_r16f96_int8_perf, artcnn_r16f128, artcnn_r16f128_int8, artcnn_r16f128_int8_perf ACNet acnet_s, acnet_s_box, acnet_s_box_hdn, acnet_s_hdn, acnet_m, acnet_m_box, acnet_m_box_hdn, acnet_m_hdn, acnet_l, acnet_l_box, acnet_l_box_hdn, acnet_l_hdn ARNet arnet_s, arnet_s_box, arnet_s_box_hdn, arnet_s_hdn, arnet_m, arnet_m_box, arnet_m_box_hdn, arnet_m_hdn, arnet_l, arnet_l_box, arnet_l_box_hdn, arnet_l_hdn, arnet_xl, arnet_xl_box, arnet_xl_box_hdn, arnet_xl_hdn FSRCNNX fsrcnnx_s, fsrcnnx_s_dp, fsrcnnx_m, fsrcnnx_m_dp Anime3D anime3d_aa_x2, anime3d_x2 Anime4K Restore anime4k_restore_cnn_l, anime4k_restore_cnn_soft_l, anime4k_restore_cnn_soft_ul, anime4k_restore_cnn_soft_vl, anime4k_restore_cnn_ul, anime4k_restore_cnn_vl Anime4K Upscale CNN anime4k_upscale_cnn_s, anime4k_upscale_cnn_s_dn, anime4k_upscale_cnn_m, anime4k_upscale_cnn_m_dn, anime4k_upscale_cnn_l, anime4k_upscale_cnn_l_dn, anime4k_upscale_cnn_ul, anime4k_upscale_cnn_ul_dn, anime4k_upscale_cnn_vl, anime4k_upscale_cnn_vl_dn Anime4K GAN anime4k_gan_s_x2, anime4k_gan_m_x2, anime4k_gan_l_x3, anime4k_gan_vl_x3, anime4k_gan_ul_x4, anime4k_gan_uul_x4 HDRTVNet++ hdrtvnetpp_agcm_dynamic, hdrtvnetpp_ensemble_dynamic FBCNN fbcnn_color_blind, fbcnn_gray_blind, fbcnn_color_flex, fbcnn_gray_flex NAFNet nafnet_gopro_width32, nafnet_reds_width64, nafnet_sidd_width32, nafnet_sidd_width64 super-image pan_2x/3x/4x, pan_bam_2x/3x/4x, carn_2x/3x/4x, carn_bam_2x/3x/4x, a2n_2x/3x/4x, awsrn_bam_2x/3x/4x, msrn_2x/3x/4x WebSR websr_cnn2x_s_rl, websr_cnn2x_s_an, websr_cnn2x_s_3d, websr_cnn2x_m_rl, websr_cnn2x_m_an, websr_cnn2x_m_3d, websr_cnn2x_l_rl, websr_cnn2x_l_an, websr_cnn2x_l_3d waifu2x CUNet waifu2x_cunet_scale2x, waifu2x_cunet_noise0, waifu2x_cunet_noise0_scale2x, waifu2x_cunet_noise1, waifu2x_cunet_noise1_scale2x, waifu2x_cunet_noise2, waifu2x_cunet_noise2_scale2x, waifu2x_cunet_noise3, waifu2x_cunet_noise3_scale2x waifu2x UpConv7 waifu2x_upconv7_art_scale2x, waifu2x_upconv7_art_noise0_scale2x, waifu2x_upconv7_art_noise1_scale2x, waifu2x_upconv7_art_noise2_scale2x, waifu2x_upconv7_art_noise3_scale2x, waifu2x_upconv7_photo_scale2x, waifu2x_upconv7_photo_noise0_scale2x, waifu2x_upconv7_photo_noise1_scale2x, waifu2x_upconv7_photo_noise2_scale2x, waifu2x_upconv7_photo_noise3_scale2x waifu2x VGG7 waifu2x_vgg7_art_scale2x, waifu2x_vgg7_art_noise0, waifu2x_vgg7_art_noise1, waifu2x_vgg7_art_noise2, waifu2x_vgg7_art_noise3, waifu2x_vgg7_art_y_scale2x, waifu2x_vgg7_art_y_noise1, waifu2x_vgg7_art_y_noise2, waifu2x_vgg7_art_y_noise3, waifu2x_vgg7_photo_scale2x, waifu2x_vgg7_photo_noise0, waifu2x_vgg7_photo_noise1, waifu2x_vgg7_photo_noise2, waifu2x_vgg7_photo_noise3, waifu2x_vgg7_ukbench_scale2x Real-CUGAN up2x_latest_no_denoise, up2x_latest_conservative, up2x_latest_denoise1x, up2x_latest_denoise2x, up2x_latest_denoise3x, up3x_latest_no_denoise, up3x_latest_conservative, up3x_latest_denoise3x, up4x_latest_no_denoise, up4x_latest_conservative, up4x_latest_denoise3x, upcunet2x_no_denoise, upcunet2x_no_denoise_int8, upcunet2x_no_denoise_int8_v2 Real-ESRGAN realesr_animevideov3, realesr_general_x4v3, realesr_general_wdn_x4v3, realesrgan_anime_6b, realesrgan_anime_6b_int8, realesrgan_anime_6b_int8_v3, realesrgan_x2plus, realesrgan_x4plus, realesrgan_x4plus_anime_6b, realesrnet_x4plus BSRGAN bsrgan, bsrganx2, bsrnet RAVU ravu_lite_r2, ravu_lite_r3, ravu_lite_r4, ravu_r2, ravu_r3, ravu_r4, ravu_3x_r2, ravu_3x_r3, ravu_3x_r4, ravu_zoom_2x_r2, ravu_zoom_2x_r2_ar, ravu_zoom_3x_r2, ravu_zoom_3x_r2_ar, ravu_zoom_4x_r2, ravu_zoom_4x_r2_ar, ravu_zoom_2x_r3, ravu_zoom_2x_r3_ar, ravu_zoom_3x_r3, ravu_zoom_3x_r3_ar, ravu_zoom_4x_r3, ravu_zoom_4x_r3_ar EDSR edsr_baseline_x2, edsr_baseline_x3, edsr_baseline_x4 ESRGAN/FSSR/RealSR esrgan, fssr_dped, fssr_jpeg, realsr_dped, realsr_jpeg NNEDI3 nnedi3_nns16_win8x4, nnedi3_nns16_win8x6, nnedi3_nns32_win8x4, nnedi3_nns32_win8x6, nnedi3_nns64_win8x4, nnedi3_nns64_win8x6, nnedi3_nns128_win8x4, nnedi3_nns128_win8x6, nnedi3_nns256_win8x4, nnedi3_nns256_win8x6 KAIR Denoise dncnn3, dncnn_15, dncnn_25, dncnn_50, dncnn_color_blind, dncnn_gray_blind, drunet_color, drunet_color_int8, drunet_gray, drunet_deblocking_color, drunet_deblocking_grayscale, fdncnn_color, fdncnn_color_clip, fdncnn_gray, fdncnn_gray_clip, ffdnet_color, ffdnet_color_clip, ffdnet_gray, ffdnet_gray_clip KAIR SR dpsr_x2, dpsr_x2_int8, dpsr_x3, dpsr_x4, dpsr_x4_gan, srmd_x2, srmd_x3, srmd_x4, srmdnf_x2, srmdnf_x3, srmdnf_x4 -
Examples
--vpp-onnx model=artcnn_c4f32 --vpp-onnx model=acnet/acnet_s.onnx,provider=cuda,out_res=1920x1080,resize=lanczos4 --vpp-onnx model=anime4k_restore_cnn_l,out_res=-2x1080 --vpp-onnx model=hdrtvnetpp_agcm_dynamic,colormatrix=bt709 --output-depth 10 --colormatrix bt2020nc --colorprim bt2020 --transfer smpte2084
--vpp-onnx-deint [<param1>=<value1>][,<param2>=<value2>],...
ONNX model based deinterlacing filter. The model is selected by its registered name in onnx_deint_models.json; direct ONNX paths are not accepted. The architecture field in that manifest is internal metadata and cannot be selected as a command-line parameter.
The stdeint and stdeint_fast registrations use ST-DeInt (3-channel input, 6-channel half-height output). The DDD registration uses DDD (three-field, transposed 9-channel input and 3-channel output). mode=bob outputs two progressive frames per input frame and doubles the frame rate; mode=normal outputs one frame using the first displayed field. TFF and BFF field order are preserved. Progressive input is passed through without neural deinterlacing.
This filter accepts 8-bit YUV420 input only, with an even frame height of at least 4. Inference uses ONNX Runtime with the CUDA or TensorRT execution provider. DDD keeps tensor packing and output weaving on host memory, while inference still runs on the GPU.
- Parameters
- enable=<bool> (default: true when this option is present)
Enable or disable the filter. - model=<string> (required)
Registered name fromonnx_deint_models.jsonunder--vpp-onnx-model-dir. Names such asstdeint,stdeint_fast, andDDDare examples; a file path is rejected. - precision=<string> (default: fp32)
Inference precision: fp32 / auto.autoallows TensorRT fp16. - mode=<string> (default: bob)
Output mode: bob / normal. - colormatrix=<string> (default: auto)
Input color matrix: auto / auto_res / bt709 / smpte170m / bt470bg / bt2020nc. - colorrange=<string> (default: auto)
Input color range: auto / limited (tv) / full (pc).
- enable=<bool> (default: true when this option is present)
Neither NVEnc nor the HWEnc-onnx-models release archives include ST-DeInt or DDD model files. Check the applicable rights and licenses, place or generate the models separately, then run run_all.py in the HWEnc-onnx-models repository to generate onnx_deint_models.json.
--vpp-onnx-model-dir C:\models\HWEnc-onnx-models
--vpp-onnx-deint model=stdeint,mode=bob,precision=fp32
--vpp-onnx-deint model=DDD,mode=normal,precision=auto
--vpp-onnx-model-dir <string>
Specify the directory containing models.json and the model files for registered ONNX models.
This option is required when using short model names with --vpp-onnx model=<name>, or when listing registered models with --vpp-onnx list.
Model files can be downloaded from https://github.com/rigaya/HWEnc-onnx-models/releases. Download the zip archive, extract it to an arbitrary directory, and specify that directory.
The release archives do not contain ST-DeInt or DDD models, or the deinterlacer manifest. Generate or place those files separately, verify their rights and licenses, and generate onnx_deint_models.json with run_all.py before using --vpp-onnx-deint.
This option only specifies where model files are located. The ONNX Runtime GPU, CUDA runtime, cuDNN, TensorRT, and related DLLs must still be made visible separately through PATH or by placing them next to NVEncC64.exe.
--vpp-onnx-model-dir C:\models\HWEnc-onnx-models
--vpp-onnx-cache-dir <string>
Directory used to cache TensorRT engines.
The cache is disabled when this option is omitted. The first run builds an engine, while later runs with the same model content, precision, input shape, and runtime environment can load the cached engine and substantially reduce startup time.
Separate directories are used for each NVEnc version and revision, ONNX Runtime version, CUDA driver API version, and GPU. A TensorRT version mismatch is detected by TensorRT's own engine compatibility check, after which the affected engine is rebuilt once. Models in the same runtime environment share a timing cache. Directories for older environments are not removed automatically.
--vpp-onnx-cache-dir C:\models\HWEnc-onnx-cache
--vpp-rife-ov [<param1>=<value1>][,<param2>=<value2>],...
RIFE v4.x frame interpolation filter using ONNX Runtime CUDA/TensorRT. Input must be 8-bit YUV420 and its width and height must be multiples of 32.
-
Parameters
- model=<string>
Registered RIFE v4.x model name or path to an ONNX model (required). When--vpp-onnx-model-diris specified, a name fromrife_ov_models.jsonsuch asrife_v4_6can be used. Values containing/,\\, or.are treated as direct paths for compatibility. - multi=<int> (default: 2, minimum: 2)
Frame-rate multiplier. - device=<string> (default: GPU.0)
Accepted for cross-encoder compatibility; NVEnc uses its selected CUDA device. - colormatrix=<string> (default: auto)
auto / bt601 / bt709 / bt2020. - colorrange=<string> (default: auto)
auto / tv / pc.
--vpp-onnx-model-dir C:\models\HWEnc-onnx-models --vpp-rife-ov model=rife_v4_6,multi=2 --vpp-rife-ov model=C:\models\rife_v4.6.onnx,multi=2 - model=<string>
--vpp-perf-monitor
Monitor the performance of each vpp filter, and output the average per frame processing time of the applied filter(s). Note that the overall encoding performance may slightly be harmed.
--vpp-nvvfx-model-dir <string>
Set path to the model folder of Video Effect models.
Other Options
--parallel [<int>] or [<string>]
Enables parallel encoding by file splitting. Divides the input file into multiple chunks and encodes them in parallel using separate threads to accelerate processing.
In most cases, it is recommended to use parallel counts below the encoder count available on system. Max parallel counts available is max((NVENC encoder num available on system)*2, 4).
-
Restrictions
Parallel encoding will be automatically disabled in the following cases:
- Input is from pipe
- Input is not seekable
- Frame timestamps are unstable
- No encoding is performed (-c raw)
- --dynamic-rc is enabled
- --trim option is enabled
- --timecode option is specified
- --tcfile-in option is specified
- --keyfile option is specified
- --key-on-chapter option is enabled
- ssim/psnr/vmaf is enabled
- --vpp-subburn (subtitle burn-in) is specified
- --vpp-fruc (frame interpolation) is enabled
-
Examples
Example: Auto-determine number of parallel processes --parallel auto Example: Run with 3 parallel threads --parallel 3 -
Compared to --split-enc (Frame-split encoding)
--split-enc
(Frame-split encoding)--parallel
(File-split encoding)Parallel Encode only Read/Decode
Filter/EncodeSupported readers All avsw / avhw / avs / vpy Supported codecs HEVC/AV1 All Multi-GPU Not supported Supported Compression loss Small Minimal Restrictions None Many (as mentioned above) RAM Usage Normal High
--parallel-force-large-memory-filters
Disables the automatic --parallel count limit applied when filters with high GPU memory usage are enabled.
Use this only when enough GPU memory is available, as it can increase the risk of GPU memory allocation errors or performance drops.
--cuda-schedule <string>
Change the behavior of the CPU when waiting for GPU task completion. The default is auto.
- paramters
-
auto (default) Leave the mode decision to the driver of CUDA.
-
spin Always keep the CPU monitoring the GPU task to finish. The latency of synchronization will be minimun, but will always utilize 100% of one logical CPU core.
-
yeild Basically it is the same as spin, but switching to another running thread will be allowed.
-
sync Sleep a thread until the end of the GPU task. Performance might decrease, but will reduce CPU utilization especially when decoding is done by HW.
-
--cuda-stream <int>
Enable CUDA stream based optimization. Default is 1 (=on).
- Notes
- When enabled, it may improve performance by better overlapping GPU tasks.
- On some GPUs/drivers, enabling this might cause instability. If you experience hangs or crashes, try disabling this option.
--cuda-mt <int>
Enable multi-threaded control for CUDA operations. Default is 0 (=off), and recommended to keep this disabled.
- Notes
- When enabled, it may slightly improve performance by parallelizing CUDA control from the host.
- On some GPUs/drivers, enabling this might cause instability. If you experience hangs or crashes, try disabling this option.
--disable-nvml <int>
Disable NVML GPU monitoring。
- Paramters
-
0 (default)
Enable NVML. -
1 Disable NVML when system has one CUDA devices.
-
2 Always disable NVML.
-
--disable-nvml
Skip DX11 initilization. NGX and libplacebo filters cannot be used with this option.
--output-buf <int>
Specify the output buffer size in MB. The default is 8 and the maximum value is 128.
The output buffer will store output data until it reaches the buffer size, and then the data will be written at once. Higher performance and reduction of file fragmentation on the disk could be expected.
On the other hand, setting too much buffer size could decrease performance, since writing such a big data to the disk will take some time. Generally, leaving this to default should be fine.
If a protocol other than "file" is used, then this output buffer will not be used.
--output-thread <int>
Specify whether to use a separate thread for output.
- -1 ... auto (default)
- 0 ... do not use output thread
- 1 ... use output thread
Using output thread increases memory usage, but sometimes improves encoding speed.
--log <string>
Output the log to the specified file.
--log-level [<param1>=]<value>[,<param2>=<value>]...
Select the level of log output.
-
level
- trace ... Output information for each frame (slow)
- debug ... Output additional information, mainly for debug
- info ... Display general encoding information (default)
- warn ... Show errors and warnings
- error ... Display only errors
- quiet ... Show no logs
-
Target
Target category of logs. Will be handled asallwhen omitted.- all ... Set all targets.
- app ... Set all targets, except libav, libass, perfmonitor, amf.
- device ... Device initialization.
- core ... Application core logs, including core_progress and core_result
- core_progress ... Progress indicator
- core_result ... Encode result
- parallel ... Parallel
- gpu_select ... GPU auto select
- decoder ... decoder logs
- input ... File input logs
- output ... File output logs
- vpp ... logs of vpp fitlers
- amf ... logs of amf library
- opencl ... logs of opencl
- libav ... internal logs of libav library
- libass ... logs of ass library
- perfmonitor ... logs of perf monitoring
-
Examples
Example: Enable debug messages --log-level debug Example: Show only application debug messages --log-level app=debug Example: Show progress only --log-level error,core_progress=info
--log-opt <param1>=<value>[,<param2>=<value>]...
additional options for log output.
- parameters
-
addtime (default=off)
Add time of to each line of the log. -
addlevel (default=off)
Show loglevel to each line of the log. -
color (default=on) Enable/disable log color.
-
--log-framelist [<string>]
FOR DEBUG ONLY! Output debug log for avsw/avhw reader.
--log-packets [<string>]
FOR DEBUG ONLY! Output debug log for packets read in avsw/avhw reader.
--log-mux-ts [<string>]
FOR DEBUG ONLY! Output debug log for packets written.
--thread-affinity [<string1>=]{<string2>[#<int>[:<int>]...] or 0x<hex>}
Set thread affinity to the process or threads of the application.
-
target (<string1>) Set target of which thread affinity will be set. Default is "all".
- all ... All targets below.
- process ... process of NVEncC.
- main ... main thread
- decoder ... avhw decode thread
- csp ... colorspace conversion threads (CPU)
- input ... input thread
- output ... output thread
- audio ... audio processing threads
- perfmonitor ... performance monitoring threads
- videoquality ... ssim/psnr/vmaf calculation thread
-
thread affinity (<string2>)
- all ... All cores(no limit)
- pcore ... performance cores (hybrid architecture only)
- ecore ... efficiency cores (hybrid architecture only)
- logical ... logical cores specified by the numbers after "#". (Windows only)
- physical ... physical cores specified by the numbers after "#". (Windows only)
- cachel2 ... cores which share the L2 cache specified by the numbers after "#". (Windows only)
- cachel3 ... cores which share the L3 cache specified by the numbers after "#". (Windows only)
... set by 0x (same as "start /affinity")
-
Examples
Example: Set process affinity to physical 0,1,2,5,6 cores --thread-affinity process=physical#0-2:5:6 Example: Set process affinity to logical 0,1,2,3 cores --thread-affinity process=0x0f --thread-affinity process=logical#0-3 --thread-affinity process=logical#0:1:2:3 Example: Set performance monitoring thread to efficiency core on hybrid architecture --thread-affinity perfmonitor=ecore Example: Set process affinity to firect CCX on Ryzen CPUs --thread-affinity process=cachel3#0
--thread-priority [<string1>=]<string2>[#<int>[:<int>]...]
Set priority to the process or threads of the application. [Windows OS only]
-
target (<string1>) Set target of which thread priority will be set. Default is "all".
- all ... All targets below.
- process ... whole process
- main ... main thread
- decoder ... avhw decode thread
- csp ... colorspace conversion threads (CPU)
- input ... input thread
- encoder ... background encoder threads
- output ... output thread
- audio ... audio processing threads
- perfmonitor ... performance monitoring threads
- videoquality ... ssim/psnr/vmaf calculation thread
-
Priority (<string2>)
- background, idle, lowest, belownormal, normal (default), abovenormal, highest
-
Examples
Example: apply belownormal priority to whole process --thread-priority process=belownormal Example: apply belownormal priority to output thread, and background priority to performance monitoring threads --thread-priority output=belownormal,perfmonitor=background
--thread-throttling [<string1>=]<string2>[#<int>[:<int>]...]
Set power throttling mode to the threads of the application. [Windows OS only]
-
target (<string1>) Set target of which thread power throttling mode will be set. Default is "all".
- all ... All targets below.
- main ... main thread
- decoder ... avhw decode thread
- csp ... colorspace conversion threads (CPU)
- input ... input thread
- filter ... filter thread
- encoder ... background encoder threads
- output ... output thread
- audio ... audio processing threads
- perfmonitor ... performance monitoring threads
- videoquality ... ssim/psnr/vmaf calculation thread
-
mode (<string2>)
- unset (default) ... mode will be set automatically depending on the encode target.
- auto ... Let OS decide.
- on ... prefer power efficiency.
- off ... prefer performance.
-
Examples
Example: prefer power efficiency in output and performance monitoring threads --thread-throttling output=on,perfmonitor=on Example: prefer performance in main and input threads --thread-throttling main=off,input=off
--option-file <string>
File which containes a list of options to be used. Line feed is treated as a blank, therefore an option or a value of it should not splitted in multiple lines.
--max-procfps <int>
Set the upper limit of transcode speed. The default is 0 (= unlimited).
This could be used when you want to encode multiple stream and you do not want one stream to use up all the power of CPU or GPU.
- Examples
Example: Limit maximum speed to 90 fps --max-procfps 90
--lowlatency
Tune for lower transcoding latency, but will hurt transcoding throughput. Not recommended in most cases.
When outputting to a pipe and --output-thread is left on auto, this mode automatically disables the output thread
and shortens the video mux queue to reduce shutdown latency after the input stream stops.
--fallback-bitdepth
When enabled, if all available GPUs do not support 10-bit encoding, the encoder will automatically fall back to 8-bit encoding. If there is at least one GPU that supports 10-bit encoding, that GPU will be selected instead.
--avsdll <string>
Specifies AviSynth DLL location to use. When unspecified, the default AviSynth.dll will be used.
--vsdir <string>
Specifies vapoursynth portable directory to use. Supported on Windows only.
--vpy-assume-script-dir
When using the vpy reader, resolves relative paths in .vpy against the script file's directory instead of the current working directory.
--process-codepage <string> [Windows OS only]
- parameters
-
utf8
Use UTF-8 as the codepage of the process. (Default) -
os
Change the character code of the process to be in the default codepage set in the Operating System.This shall allow AviSynth scripts using non-ASCII characters with legacy codepage to work again.
When this option is set, a copy of the exe file will be created in the same directory of the original exe file, and the manifest file of the copy will be modified using UpdateResourceW API to switch back code page to the default of the OS, and then the copied exe will be run, allowing us to handle the AviSynth scripts using legacy code page.
-
--task-perf-monitor
Output rough time consumed for each main thread tasks, including wait time.
--perf-monitor [<string>[,<string>]...]
Outputs performance information. You can select the information name you want to output as a parameter from the following table. The default is all (all information).
- parameters
all ... monitor all info cpu_total ... cpu total usage (%) cpu_kernel ... cpu kernel usage (%) cpu_main ... cpu main thread usage (%) cpu_enc ... cpu encode thread usage (%) cpu_in ... cpu input thread usage (%) cpu_out ... cpu output thread usage (%) cpu_aud_proc ... cpu aud proc thread usage (%) cpu_aud_enc ... cpu aud enc thread usage (%) cpu ... monitor all cpu info gpu_load ... gpu usage (%) gpu_clock ... gpu avg clock vee_load ... gpu video encoder usage (%) ved_load ... gpu video decoder usage (%) gpu ... monitor all gpu info queue ... queue usage mem_private ... private memory (MB) mem_virtual ... virtual memory (MB) mem ... monitor all memory info io_read ... io read (MB/s) io_write ... io write (MB/s) io ... monitor all io info fps ... encode speed (fps) fps_avg ... encode avg. speed (fps) bitrate ... encode bitrate (kbps) bitrate_avg ... encode avg. bitrate (kbps) frame_out ... written_frames
--perf-monitor-interval <int>
Specify the time interval for performance monitoring with --perf-monitor in ms (should be 50 or more). The default is 500.