Skip to content


NVidia decoder

Register name used to load filter: nvdec
This filter may be automatically loaded during graph resolution.

This filter decodes MPEG-2, MPEG-4 Part 2, AVC|H264 and HEVC streams through NVidia decoder. It allows GPU frame dispatch or direct frame copy.
If the SDK is not available, the configuration key nvdec@disabled will be written in configuration file to avoid future load attempts.

The absolute path to cuda lib can be set using the cuda_lib option in core or temp section of the config file, e.g. -cfg=temp:cuda_lib=PATH_TO_CUDA. The absolute path to cuvid lib can be set using the cuvid_lib option in core or temp section of the config file, e.g. -cfg=temp:cuvid_lib=PATH_TO_CUDA.


num_surfaces (uint, default: 20): number of hardware surfaces to allocate
unload (enum, default: no): decoder unload mode
no: keep inactive decoder alive
destroy: destroy inactive decoder
* reuse: detach decoder from inactive PIDs and reattach to active ones

vmode (enum, default: cuvid): video decoder backend
cuvid: use dedicated video engines directly
cuda: use a CUDA-based decoder if faster than dedicated engines
* dxva: go through DXVA internally if possible (requires D3D9)

fmode (enum, default: gl): frame output mode
copy: each frame is copied and dispatched
single: frame data is only retrieved when used, single memory space for all frames (not safe if multiple consumers)
* gl: frame data is mapped to an OpenGL texture