Hybrid disables options when they are not supported by the graphic card and driver combination (check 'NVEncC --check-features') or when another option is in conflict with them. For me GeForce GTX 980ti for example, I too can't use those options when encoding to H.265, but I can when encoding to H.264.
Here's the output I get from check-features:
+ calling just 'NVEncC' gives me:
important part is the second one:
=> Similar outputs on your system should explain why Hybrid acts the way it does.
Cu Selur
Here's the output I get from check-features:
List of available features.
Codec: H.264/AVC
Max Bframes 4
RC Modes 63
Field Encoding 1
MonoChrome 0
FMO 0
Quater-Pel MV 1
B Direct Mode 1
CABAC 1
Adaptive Transform 1
Max Temporal Layers 0
Hierarchial P Frames 0
Hierarchial B Frames 0
Max Level 51
Min Level 1
4:4:4 1
Max Width 4096
Max Height 4096
Dynamic Resolution Change 1
Dynamic Bitrate Change 1
Forced constant QP 1
Dynamic RC Mode Change 0
Subframe Readback 1
Constrained Encoding 1
Intra Refresh 1
Custom VBV Bufsize 1
Dynamic Slice Mode 1
Ref Pic Invalidiation 1
PreProcess 0
Async Encoding 1
Max MBs 65536
MAX MB per sec 983040
Lossless 1
SAO 0
Me Only Mode 1
Lookahead 1
AQ (temporal) 1
10bit depth 0
Codec: H.265/HEVC
Max Bframes 0
RC Modes 63
Field Encoding 0
MonoChrome 0
Quater-Pel MV 1
B Direct Mode 0
Max Temporal Layers 0
Hierarchial P Frames 0
Hierarchial B Frames 0
Max Level 62
Min Level 1
4:4:4 0
Max Width 4096
Max Height 4096
Dynamic Resolution Change 1
Dynamic Bitrate Change 1
Forced constant QP 1
Dynamic RC Mode Change 0
Subframe Readback 1
Constrained Encoding 0
Intra Refresh 1
Custom VBV Bufsize 1
Dynamic Slice Mode 1
Ref Pic Invalidiation 1
PreProcess 0
Async Encoding 1
Max MBs 65536
MAX MB per sec 983040
Lossless 0
SAO 0
Me Only Mode 0
Lookahead 1
AQ (temporal) 0
10bit depth 0
NVEncC (x64) 3.06 by rigaya [NVENC API v7.1, CUDA 8.0], Feb 5 2017 21:10:22
reader: raw, avs, vpy, avcuvid [H.264/AVC, H.265/HEVC, MPEG1, MPEG2, VP8, VP9]
Usage: NVEncC.exe [Options] -i <input file> -o <output file>
Input can be avs, raw YUV, YUV4MPEG2(y4m).
When Input is in raw format, fps, input-res is required.
Ouput format will be in raw H.264/AVC or H.265/HEVC ES.
Example:
NVEncC -i "<avsfilename>" -o "<outfilename>"
avs2pipemod -y4mp "<avsfile>" | NVEncC --y4m -i - -o "<outfilename>"
Information Options:
-h,-? --help print help
-v,--version print version info
--check-device show DeviceId for GPUs available on system --check-hw [<int>] check NVEnc codecs for specefied DeviceId
if unset, will check DeviceId #0
--check-features [<int>] check for NVEnc Features for specefied DeviceId
if unset, will check DeviceId #0
--check-environment check for Environment Info
--check-avversion show dll version
--check-codecs show codecs available
--check-encoders show audio encoders available
--check-decoders show audio decoders available
--check-formats show in/out formats available
--check-protocols show in/out protocols available
--check-filters show filters available
Basic Encoding Options:
-d,--device <int> set DeviceId used in NVEnc (default:0)
-i,--input <filename> set input filename
-o,--output <filename> set output filename
Input formats (auto detected from extension of not set)
--raw set input as raw format
--y4m set input as y4m format
--avs set input as avs format
--vpy set input as vpy format
--vpy-mt set input as vpy(mt) format
--avcuvid [<string>] use libavformat + cuvid for input
this enables full hw transcode and resize.
avcuvid mode could be set as a option
- native (default)
- cuda
--avsw set input to use avcodec + sw deocder
--input-analyze <int> set time (sec) which reader analyze input file.
default: 5 (seconds).
could be only used with avcuvid/avsw reader.
use if reader fails to detect audio stream.
--video-track <int> set video track to encode in track id
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
--audio-source <string> input extra audio file
--audio-file [<int>?][<string>:]<string>
extract audio into file.
could be only used with avcuvid/avsw reader.
below are optional,
in [<int>?], specify track number to extract.
in [<string>?], specify output format.
--trim <int>:<int>[,<int>:<int>]...
trim video for the frame range specified.
frame range should not overwrap each other.
--seek [<int>:][<int>:]<int>[.<int>] (hh:mm:ss.ms)
skip video for the time specified,
seek will be inaccurate but fast.
--input-format <string> set input format of input file.
this requires use of avcuvid/avsw reader.
-f,--output-format <string> set output format of output file.
if format is not specified, output format will
be guessed from output file extension.
set "raw" for H.264/ES output.
--audio-copy [<int>[,...]] mux audio with video during output.
could be only used with
avcuvid/avsw reader and avcodec muxer.
by default copies all audio tracks.
"--audio-copy 1,2" will extract
audio track #1 and #2.
--audio-codec [<int>?]<string>
encode audio to specified format.
in [<int>?], specify track number to encode.
--audio-bitrate [<int>?]<int>
set encode bitrate for audio (kbps).
in [<int>?], specify track number of audio.
--audio-ignore-decode-error <int> (default: 10)
set numbers of continuous packets of audio decode
error to ignore, replaced by silence.
--audio-ignore-notrack-error ignore error when audio track is unfound.
--audio-samplerate [<int>?]<int>
set sampling rate for audio (Hz).
in [<int>?], specify track number of audio.
--audio-resampler <string> set audio resampler.
swr (swresampler: default), soxr (libsoxr)
--audio-stream [<int>?][<string1>][:<string2>][,[<string1>][:<string2>]][..
set audio streams in channels.
in [<int>?], specify track number to split.
in <string1>, set input channels to use from source stream.
if unset, all input channels will be used.
in <string2>, set output channels to mix.
if unset, all input channels will be copied without mixing.
example1: --audio-stream FL,FR
splitting dual mono audio to each stream.
example2: --audio-stream :stereo
mixing input channels to stereo.
example3: --audio-stream 5.1,5.1:stereo
keeping 5.1ch audio and also adding downmixed stereo stream.
usable simbols
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 + 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-filter [<int>?]<string>
set audio filter.
in [<int>?], specify track number of audio.
--chapter-copy copy chapter to output file.
--chapter <string> set chapter from file specified.
--sub-copy [<int>[,...]] copy subtitle to output file.
these could be only used with
avcuvid/avsw reader and avcodec muxer.
below are optional,
in [<int>?], specify track number to copy.
--avsync <string> method for AV sync (default: through)
through ... assume cfr, no check but fast
forcecfr ... check timestamp and force cfr.
-m,--mux-option <string1>:<string2>
set muxer option name and value.
these could be only used with
avcuvid/avsw reader and avcodec muxer.
--input-res <int>x<int> set input resolution
--crop <int>,<int>,<int>,<int> crop pixels from left,top,right,bottom
left crop is unavailable with avcuivid reader
--output-res <int>x<int> set output resolution
--fps <int>/<int> or <float> set framerate
-c,--codec <string> set ouput codec
h264 (or avc), h265 (or hevc)
--profile <string> set codec profile
H.264: baseline, main, high(default), high444
HEVC : main, main10, main444
--level <string> set codec level
- H.264: auto(default), 1, 1b, 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(default), 1, 2, 2.1, 3, 3.1, 4
4.1, 5, 5.1, 5.2, 6, 6.1, 6.2
--output-depth <int> set output bit depth ( 8(default), 10 )
--sar <int>:<int> set SAR ratio
--dar <int>:<int> set DAR ratio
--cqp <int> or encode in Constant QP mode
<int>:<int>:<int> Default: <I>:<P>:<B>=<20>:<23>:<25>
--vbr <int> set bitrate for VBR mode (kbps)
--vbrhq <int> set bitrate for VBR (High Quality) mode (kbps)
--cbr <int> set bitrate for CBR mode (kbps)
--cbrhq <int> set bitrate for CBR (High Quality) mode (kbps)
Default: 7500 kbps
--vbr-quality <int> set target quality for VBR mode (0-51, 0 = auto)
--max-bitrate <int> set Max Bitrate (kbps)
--qp-init <int> or set initial QP
<int>:<int>:<int> Default: auto
--qp-max <int> or set max QP
<int>:<int>:<int> Default: unset
--qp-min <int> or set min QP
<int>:<int>:<int> Default: unset
--lookahead <int> enable lookahead and set lookahead depth (1-32)
Default: 16 frames
--gop-len <int> set GOP Length / Default: 0 frames
--strict-gop avoid GOP len fluctuation
--no-i-apdat disable adapt. I frame insertion on lookahead mode
--no-b-apdat disable adapt. B frame insertion on lookahead mode
Default: off
-b,--bframes <int> set B frames / Default 1457204848 frames
--ref <int> set Ref frames / Default 3 frames
--enable-ltr enable LTR (Long Term Reference pictures)
--aq enable spatial adaptive quantization
--aq-temporal enable temporal adaptive quantization (FOR H.264 ONLY)
--aq-strength <int> set aq strength (weak 1 - 15 strong)
FOR H.264 ONLY, Default: auto(= 0)
--mv-precision <string> set MV Precision / Default: Q-pel
Q-pel (High Quality)
half-pel
full-pel (Low Quality)
--vbv-bufsize <int> set vbv buffer size (kbit) / Default: auto
--vpp-deinterlace <string> set deinterlace mode / Default: none
none, bob, adaptive (normal)
available only with avcuvid reader
--vpp-resize <string> default, nn, npp_linear, cubic
cubic_bspline, cubic_catmull, cubic_b05c03
super, lanczos, bilinear, spline36
default: default
--vpp-gauss <int> disabled, 3, 5, 7
default: disabled
--vpp-knn [<param1>=<value>][,<param2>=<value>][...] enable denoise filter by K-nearest neighbor.
params
radius=<int> set radius of knn (default=3)
strength=<float> set strength of knn (default=0.08, 0.0-1.0)
lerp=<float> set balance of orig and blended pixel (default=0.20)
lower value results strong denoise.
th_lerp=<float> set threshold for detecting edge (default=0.80, 0.0-1.0)
higher value will preserve edge.
--vpp-pmd [<param1>=<value>][,<param2>=<value>][...] enable denoise filter by pmd.
params
apply_count=<int> set count to apply pmd denoise (default=2)
strength=<float> set strength of pmd (default=100.00, 0.0-100.0)
threshold=<float> set threshold of pmd (default=100.00, 0.0-255.0)
lower value will preserve edge.
--vpp-delogo <string> set delogo file path
--vpp-delogo-select <string> set target logo name or auto select file
or logo index starting from 1.
--vpp-delogo-pos <int>:<int> set delogo pos offset
--vpp-delogo-depth <int> set delogo depth [default:-544]
--vpp-delogo-y <int> set delogo y param
--vpp-delogo-cb <int> set delogo cb param
--vpp-delogo-cr <int> set delogo cr param
--vpp-perf-monitor check duration of each filter.
may decrease overall transcode performance.
--videoformat <string> undef, ntsc, component, pal, secam, mac
default: undef
--colormatrix <string> undef, auto, bt709, smpte170m, bt470bg
smpte240m, YCgCo, fcc, GBR, bt2020nc
bt2020c
default: undef
--colorprim <string> undef, auto, bt709, smpte170m, bt470m
bt470bg, smpte240m, film, bt2020
default: undef
--transfer <string> undef, auto, bt709, smpte170m, bt470m
bt470bg, smpte240m, linear, log100, log316
iec61966-2-4, bt1361e, iec61966-2-1
bt2020-10, bt2020-12, smpte-st-2084
smpte-st-428, arib-srd-b67
default: undef
--fullrange set fullrange
--output-buf <int> buffer size for output in MByte
default 8 MB (0-128)
--max-procfps <int> limit encoding performance to lower resource usage.
default:0 (no limit)
--output-thread <int> set output thread num
-1: auto (= default)
0: disable (slow, but less memory usage)
1: use one thread
--log <string> set log file name
--log-level <string> set log level
debug, info(default), warn, error
--log-framelist <string> output frame info of avcuvid reader to path
H.264/AVC
--tff same as --interlaced tff
--bff same as --interlaced bff
--interlaced <string> interlaced encoding
tff, bff
--cabac use CABAC
--cavlc use CAVLC (no CABAC)
--bluray for bluray / Default: off
--lossless for lossless / Default: off
--(no-)deblock enable(disable) deblock filter
H.265/HEVC
--cu-max <int> set max CU size
--cu-min <int> set min CU size
8, 16, 32 are avaliable
warning: it is not recommended to use --cu-max or --cu-min,
leaving it auto will enhance video quality.
--aq enable spatial adaptive quantization
--aq-temporal enable temporal adaptive quantization (FOR H.264 ONLY)
--aq-strength <int> set aq strength (weak 1 - 15 strong)
FOR H.264 ONLY, Default: auto(= 0)
=> Similar outputs on your system should explain why Hybrid acts the way it does.
Cu Selur
----
Dev versions are in the 'experimental'-folder of my GoogleDrive, which is linked on the download page.
Dev versions are in the 'experimental'-folder of my GoogleDrive, which is linked on the download page.