explaingit

keylase/nvidia-patch

4,662PythonAudience · ops devopsComplexity · 2/5LicenseSetup · easy

TLDR

Two shell scripts that patch Nvidia's Linux drivers to remove the artificial limit on simultaneous video encoding sessions, unlocking the GPU's full hardware capabilities for consumer cards.

Mindmap

mindmap
  root((nvidia-patch))
    What it does
      Removes NVENC session cap
      Unlocks NvFBC capture
    Supported platforms
      Linux primary
      Windows notes
    Use cases
      Media servers
      OBS streaming
      Video transcoding
    How to use
      Check driver version
      Run patch script
    License
      MIT open source
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Run more than two or three simultaneous NVENC encoding jobs on a consumer Nvidia GPU for a media server or streaming setup.

USE CASE 2

Unlock NvFBC on a consumer Nvidia card to enable fast GPU-based screen capture for software like OBS.

USE CASE 3

Remove the software-imposed encoding session cap on a Plex or Jellyfin server that transcodes multiple streams at once.

Tech stack

PythonShell

Getting it running

Difficulty · easy Time to first run · 5min

You must match your installed Nvidia driver version to the supported versions table in the README before running the patch script.

Use, modify, and share freely for any purpose, including commercial use, as long as you keep the copyright notice.

In plain English

Nvidia sells graphics cards aimed at consumers and a separate line aimed at professionals and data centers. One difference between them is a software-imposed limit: consumer cards are restricted to a small number of simultaneous video encoding sessions, while the professional cards are not. This limit is enforced inside the Nvidia driver software, not in the hardware itself. This project provides two shell scripts that modify the Nvidia driver files on a Linux system to remove those restrictions. The first script, patch.sh, removes the cap on how many simultaneous NVENC encoding sessions you can run. NVENC is the hardware video encoding engine built into most Nvidia cards, used by software like OBS, Handbrake, Plex, and others. The second script, patch-fbc.sh, unlocks NvFBC, a feature that lets software capture the screen through the GPU rather than through slower software methods. The README includes a version table listing every supported Nvidia driver version, with direct download links for each. You check your installed driver version, find it in the table, run the appropriate patch script, and the restriction is gone. The project notes which driver versions support just the NVENC patch, and which also support the NvFBC patch. The primary target is GNU/Linux, though there is a separate folder with notes for Windows users. This patch is useful for anyone running a media server, a streaming setup, or video transcoding work on a consumer Nvidia card who keeps running into session limit errors. Without the patch, you might hit the cap at just two or three simultaneous encoding jobs. With the patch removed, the only ceiling is what the GPU hardware itself can actually handle. The project is open source and MIT licensed. The author asks that donations go to open source organizations like FFmpeg or VideoLAN rather than to the project directly. The full README is longer than what was shown.

Copy-paste prompts

Prompt 1
How do I identify my Nvidia driver version on Linux and find the right patch in the keylase/nvidia-patch version table?
Prompt 2
Walk me through running nvidia-patch's patch.sh to remove the NVENC session limit on my consumer Nvidia GPU.
Prompt 3
How do I use nvidia-patch to unlock NvFBC for GPU-accelerated screen capture on my GTX or RTX card?
Prompt 4
My Plex server keeps hitting max encoding sessions errors with my Nvidia card. How do I use keylase/nvidia-patch to fix this?
Open on GitHub → Explain another repo

← keylase on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.