Warning
Vibe-coded personal fork. AI-written, unreviewed, tested on exactly one machine — mine. I can't promise support for this plugin in case it croaks or smthn.
Really made specifically for the GTX 750 Ti. NVIDIA killed support for Kepler's NVENC block, and GM10x (750 / 750 Ti) shares it. They killed support for a perfectly fine piece of hardware and I'm pissed when it got dropped.
Real work is upstream: RanAwaySuccessfully/nvenckepler.
This is pretty much a copy-paste of the existing obs-nvenc plugin that comes bundled with OBS Studio adapted to still be compatible with Kepler and first-generation Maxwell (GM10x, e.g. GTX 750 / 750 Ti) cards. This required a downgrade to remove features introduced after NVIDIA Video Codec SDK v11.1 such as AV1 support and split encoding removed (although they have been removed quite hastily and as such, some non-functional leftovers may still be found here and there).
If you want to use NVENC on OBS Studio 31 and above on an older Nvidia graphics card, this plugin is for you.
This plugin has been adapted to use the official plugin template, but it is very much a non-official plugin.
NOTE: NVENC detection works in this fork. The plugin ships a small helper binary (nvenc-kepmax-test) that probes the GPU's encoders at load time, so the NVENC encoders only show up when your hardware actually supports them (H.264 on Kepler and GM10x Maxwell, H.264 + HEVC on GM20x Maxwell and newer).
Grab the most recent release from the Releases section and download the one appropriate for your platform.
You must have the NVIDIA driver v471 installed. Minor version differences like v470 or v475 should be fine. Major differences like v450 or v515 are unlikely to work. Grab the most recent driver that your graphics card supports.
KEPMAX NOTE This works for gtx570ti, so this should work regardless of driver number.
Install the build prerequisites for your distribution. You need libobs headers, the
NVENC (ffnvcodec) headers, CMake, Ninja and a C/C++ compiler:
# Arch / CachyOS / Manjaro
sudo pacman -S base-devel cmake ninja ffnvcodec-headers obs-studio
# Debian / Ubuntu (libobs-dev comes from the OBS PPA; the NVENC headers are built from source)
sudo add-apt-repository ppa:obsproject/obs-studio
sudo apt update
sudo apt install build-essential cmake ninja-build libobs-dev git
git clone https://github.com/FFmpeg/nv-codec-headers.git /tmp/nv-codec-headers
sudo make -C /tmp/nv-codec-headers installIf your NVENC headers live somewhere non-standard, point CMake at them by appending
-DFFnvcodec_INCLUDE_DIR=/path/to/include to the cmake --preset command.
Then configure, build and install with the linux-x86_64 preset:
cmake --preset linux-x86_64
cmake --build --preset linux-x86_64When it finishes, the plugin is staged inside the build directory:
build_linux/rundir/RelWithDebInfo/nvenc-kepmax.so
build_linux/rundir/RelWithDebInfo/nvenc-kepmax/locale/*.ini
Install for your user only (no sudo, recommended):
mkdir -p ~/.config/obs-studio/plugins/nvenc-kepmax/bin/64bit
cp build_linux/rundir/RelWithDebInfo/nvenc-kepmax.so ~/.config/obs-studio/plugins/nvenc-kepmax/bin/64bit/
cp -r build_linux/rundir/RelWithDebInfo/nvenc-kepmax ~/.config/obs-studio/plugins/nvenc-kepmax/data
# the NVENC detection helper must live in the plugin's data folder as well:
cp build_linux/src/tester/nvenc-kepmax-test ~/.config/obs-studio/plugins/nvenc-kepmax/data/Install system-wide (needs sudo):
sudo cmake --install build_linux --prefix /usrThis places nvenc-kepmax.so in the OBS plugin directory (for example /usr/lib/obs-plugins/
on Arch, or /usr/lib/x86_64-linux-gnu/obs-plugins/ on Debian) and the locale files in
/usr/share/obs/obs-plugins/nvenc-kepmax/.
This fork registers its own encoder IDs (nvenc_kepmax_*), so it coexists with the NVENC
encoders that ship with OBS — you do not need to remove or disable the bundled obs-nvenc
plugin. In the encoder list the fork's encoders appear with a (Kepler/Maxwell Plugin) suffix,
e.g. NVIDIA NVENC H.264 (Kepler/Maxwell Plugin). (As noted above, they only show up when the
nvenc-kepmax-test helper reports that your GPU and driver actually support them.)
Flatpak / Snap OBS: the plugin cannot be loaded into the sandboxed build of OBS. Use a distribution-packaged (native) OBS instead.
Change the preset to windows-x64 when making a Windows build. Builds for macOS are not
currently supported by this fork (they can be attempted with the macos preset, but expect to
tinker with the CMake settings until it works).
cmake --preset windows-x64
cmake --build --preset windows-x64Once the commands finish, the resulting nvenc-kepmax.dll (or .so for Linux) can be found in
the rundir\RelWithDebInfo folder inside the build directory.
Mostly because I had a spare Kepler card I kept as a secondary/tertiary graphics card and while using it is more of a novelty than anything else, I still want NVENC to be available with it in the future. Providing support for these cards is unlikely to get any easier with time, and I don't plan on doing anything other than the extreme basics with this plugin (pull requests are more than welcome though).
Do note that using this plugin is only a solution if you are OK and able to keep an older NVIDIA driver installed, which may become more difficult with newer operating system updates and releases.
If Nouveau had video encoding support via VA-API I wouldn't even have bothered with this plugin, but they only have decoding support, and only up until Kepler. NVENC is listed on a TODO list with a "Hard" difficulty attached to it, so I imagine this is not going to be ready anytime soon.