This patch removes restriction on maximum number of simultaneous NVENC video encoding sessions imposed by Nvidia to consumer-grade GPUs.
Main target operating system is GNU/Linux, but for Windows support see win.
Requirements:
- x86_64 system architecture
- GNU/Linux operating system
- nvenc-compatible gpu (https://developer.nvidia.com/video-encode-decode-gpu-support-matrix#Encoder)
- Nvidia driver. Patch available for:
Tested on Ubuntu 18.04 LTS (GNU/Linux 4.15.0-23-generic x86_64)
# bash ./patch.sh -h
SYNOPSIS
patch.sh [OPTION]...
DESCRIPTION
The patch for Nvidia drivers to increase encoder sessions
-s Silent mode (No output)
-r Rollback to original (Restore lib from backup)
-h Print this help message
Examples are provided for driver version 418.43. All commands are runned as root.
https://download.nvidia.com/XFree86/Linux-x86_64/418.43/NVIDIA-Linux-x86_64-418.43.run
mkdir /opt/nvidia && cd /opt/nvidia
wget https://download.nvidia.com/XFree86/Linux-x86_64/418.43/NVIDIA-Linux-x86_64-418.43.run
chmod +x ./NVIDIA-Linux-x86_64-418.43.run
./NVIDIA-Linux-x86_64-418.43.run
nvidia-smi
Output should show no errors and details about your driver and GPU.
This patch performs backup of original file prior to making changes.
bash ./patch.sh
You're all set!
If something got broken you may restore patched driver from backup:
bash ./patch.sh -r
- Plex Media Server: enable HW decoding:
- Unraid / Docker:
- GH Issue
- Unraid Nvidia plugin:
- Original research behind this patch (in Russian)
If you experience CreateBitstreamBuffer failed: out of memory (10)
, then you have to lower buffers number used for every encoding session. If you are using ffmpeg
, see option -surfaces
("Number of concurrent surfaces") and try value near -surfaces 8
.