Nvidia NVENC not working with applications

I’m having a serious issue here with Nvidia NVENC not working with my applications, the application being OBS Studio. Everything broke when I updated my packages, I can no longer record or stream using Nvidia NVENC encoder with OBS and I don’t know why it decides to break after an update.

I tried to install the Nvidia SDK which has the Nvidia NVENC stuff because apparently OBS reports the following;

[h264_nvenc @ 0x562a180420c0] Driver does not support the required nvenc API version. Required: 10.0 Found: 9.1
[h264_nvenc @ 0x562a180420c0] The minimum required Nvidia driver for nvenc is (unknown) or newer
warning: [NVENC encoder: 'recording_h264'] Failed to open NVENC codec: Function not implemented

this is so annoying, and it’s preventing me from getting stuff done. When I go to try download the NVENC API version 10.0.26, it fails to download and install because it says in the PKGBUILD that you have to manually download the stuff from NVIDIA site because of their licencing stuff because they’ve changed it so you can no longer just download using pacman like usual. – So I did just that after faffing about trying to get that downloaded and installed, but it still doesn’t work.

I don’t know what to even do right now, I don’t want to have to go re-install Manjaro from new again just because one package couldn’t be found when it’s present.

Could it be possible that you installed obs as flatpak? I get the same error there. When i use the official package from the manjaro repo it works.

Only getting this warning:

[matroska @ 0x557a0411fac0] Using AVStream.codec to pass codec parameters to muxers is deprecated, use AVStream.codecpar instead.
1 Like

I have the same issue, tried both flatpak and oficial repo, both on stable and testing branches, and none of them work, always having the same error:

Failed to open NVENC codec: Function not implemented
Please check your video drivers are up to date.

It’s not from flatpak, it’s from official AOR repositories, I can’t even see Flatpak apps in Pamac, I only see AUR and AOR packages.

I’ve been using OBS just fine yesterday, then I did a system update, and then it just breaks completely and now I can’t even use NVENC codec now. I don’t know how or why, I don’t get how it can just break from an update like that. Before I tried downloading the Nvidia SDK with the NVENC API 10.0.26-1 it broke, and after installing, it was still broken and OBS thinks it’s still using the old NVENC API 9.1.

Yep that error, says function not implemented when it clearly is, it’s just pulling these errors out it’s ass, because the video drivers are up-to-date. As of current Nvidia Drivers 440.100 is what I have installed.

Maybe it is worth a try if the problem is causing by obs. Did you try to downgrade obs?

sudo pacman -S downgrade

export DOWNGRADE_FROM_ALA=1

downgrade obs-studio

Maybe some configs are at obs’ way?

mv ~/.config/obs-studio ~/.config/obs-studio.old

and start obs again?

Weird, even after using “export DOWNGRADE_FROM_ALA=1” it still prompts me to use it in order to downgrade.

Also using

mv ~/.config/obs-studio ~/.config/obs-studio.old

didn’t do anything particularly useful.

Another issue I found with a specific package related to OBS is with obs-linuxbrowser, since one of its requirements is having cef-minimal<75, and the current version with the update is 80.0.8-1. Even changing back and forth between it and cef-minimal-3770 didn’t make it work, forcing me to go back to obs-qtwebkit. I know it’s AUR stuff, but it’s still a problem.

I can’t downgrade, it says it can’t. I tried export and prefix before the command.

$ DOWNGRADE_FROM_ALA=1 downgrade obs

Downgrading from A.L.A. is disabled on the stable branch. To override this behavior, set DOWNGRADE_FROM_ALA to 1 .
See https://wiki.manjaro.org/index.php?title=Using_Downgrade  for more details.

Unable to downgrade obs
1 Like
% export DOWNGRADE_FROM_ALA=1                                                                                  ~/
% downgrade obs-studio                                                                                                         ~/

Downgrading from A.L.A. is disabled on the stable branch. To override this behavior, set DOWNGRADE_FROM_ALA to 1 .
See https://wiki.manjaro.org/index.php?title=Using_Downgrade  for more details.

Available packages:

    1)  obs-studio    23.0.1  1  x86_64  (remote)
    2)  obs-studio    23.0.2  1  x86_64  (remote)
    3)  obs-studio    23.0.2  2  x86_64  (remote)
    4)  obs-studio    23.1.0  1  x86_64  (remote)
    5)  obs-studio    23.2.1  1  x86_64  (remote)
    6)  obs-studio    23.2.1  2  x86_64  (remote)
    7)  obs-studio    24.0.1  1  x86_64  (remote)
    8)  obs-studio    24.0.3  1  x86_64  (remote)
    9)  obs-studio    24.0.3  2  x86_64  (remote)
   10)  obs-studio    24.0.4  1  x86_64  (remote)
   11)  obs-studio    24.0.5  1  x86_64  (remote)
   12)  obs-studio    24.0.5  2  x86_64  (remote)
   13)  obs-studio    24.0.6  1  x86_64  (remote)
   14)  obs-studio    25.0.1  1  x86_64  (remote)
   15)  obs-studio    25.0.3  1  x86_64  (remote)
   16)  obs-studio    25.0.4  1  x86_64  (remote)
+  17)  obs-studio    25.0.8  1  x86_64  (remote)
+  18)  obs-studio    25.0.8  1  x86_64  (local)
   19)  obs-studio    25.0.8  2  x86_64  (remote)

select a package by number: 

Works for me?! :confused:

Edit: yes i see… not obs but obs-studio :man_facepalming:

1 Like

yes i see… not obs but obs-studio

All of us were just dumb, now the downgrade command worked for me as well. Will try downgrading it to see if it works for now. It’s still an issue that needs to be solved tho.

This problem is caused by the latest version of ffmpeg. The new nvidia-450 driver is available since last month and the repository binary was probably compiled with it.

For some unknown reason, the Manjaro repository has yet to be upgraded to add nvidia-450 driver support. It’s quite unfortunate this reached the stable version after lots of complaints from testing folks.

The solution, for now, is to install the 450 drivers from an external source or downgrade FFmpeg.

5 Likes

I managed to downgrade OBS to the previous working version that I was last using, but it’s still broken and looking for NVENC API 9.1 instead of 10.0.26 version that I installed. I’ve asked about this issue on the OBS Discord, but they’re not much help tbh… they claim it’s not their error but FFMPEG so maybe that?

is there a link to this external source so it can be downloaded?

Yeah, downgrading OBS didn’t help, so I’ll try downgrading ffmpeg for now. The NVIDIA drivers had some issues on my system before, so it’s a last resort for me.

Just do the same as with obs-studio:

downgrade ffmpeg

ffmpeg wont let me downgrade it just gives an error.

loading packages...
warning: downgrading package ffmpeg (2:4.3.1-2 => 2:4.2.3-2)
resolving dependencies...
warning: cannot resolve "libx264.so=159-64", a dependency of "ffmpeg"
:: The following package cannot be upgraded due to unresolvable dependencies:
      ffmpeg

:: Do you want to skip the above package for this upgrade? [y/N] y
looking for conflicting packages...
 there is nothing to do
add ffmpeg to IgnorePkg? [y/N] n

Looks like I’m stuck and forced to use this version of FFMPEG :confused:

Try compiling ffmpeg from source. It will take a while on slow systems but it should work. Installing ffmpeg-git from AUR automates this process.

It worked for me

Warnung: Downgrade des Paketes ffmpeg (2:4.2.4-1 => 2:4.2.3-2)
Löse Abhängigkeiten auf...
Suche nach in Konflikt stehenden Paketen...

Pakete (1) ffmpeg-2:4.2.3-2

Gesamtgröße der installierten Pakete:  30,16 MiB
Größendifferenz der Aktualisierung:   0,00 MiB

:: Installation fortsetzen? [J/n] 
(1/1) Prüfe Schlüssel im Schlüsselring                                      [###########################################] 100%
(1/1) Überprüfe Paket-Integrität                                            [###########################################] 100%
(1/1) Lade Paket-Dateien                                                    [###########################################] 100%
(1/1) Prüfe auf Dateikonflikte                                              [###########################################] 100%
(1/1) Überprüfe verfügbaren Festplattenspeicher                             [###########################################] 100%
:: Verarbeite Paketänderungen...
(1/1) Downgrading ffmpeg                                                    [###########################################] 100%
:: Starte post-transaction hooks...
(1/1) Arming ConditionNeedsUpdate...
add ffmpeg to IgnorePkg? [y/n] n

Weird … is x264 installed on your system?

pamac search libx264

Maybe you removed it by accident?

Otherwise remove ffmpeg completely and reinstall :smiley:

libx264 appears to be installed.

uninstalling ffmpeg will cause it to uninstall a bunch of other stuff which I don’t want it to uninstall, and I can’t be bothered going through all that hassle of trying to install it again.

UPDATE: I instead went ahead and installed the latest NVIDIA drivers from their website which is version 450.57 as of current. While this has fix the issue I was having with OBS now, I have to go back and fix some of the OBS plugins that got messed up in the process.

In the end the only way all my issues were solved was by installing the nvidia-beta drivers. After that still I wasn’t able to properly install obs-linuxbrowser, but obs-qtwebkit works and everything just works now.

1 Like

So what should one do if he can’t downgrade ffmpeg thru downgrade nor upgrade to nvidia-beta?
I can only jump between ffmpeg or ffmpeg-git (aur), is there a way to pamac build a git tag ? Or well, might as well do it myself.

I can’t do any of the proposed solutions because both lead to dependency inferno.

pamac install nvidia-beta
╭─tomas@tomas-80yy ~ 
╰─$ pamac install nvidia-beta
Warning: nvidia-beta is only available from AUR
Build nvidia-beta from AUR ? [y/N] y

Preparing...
Cloning nvidia-beta build files...
Checking nvidia-beta dependencies...
Cloning nvidia-utils-beta build files...
Checking nvidia-utils-beta dependencies...
Warning: removing nvidia-440xx-utils breaks dependency 'nvidia-440xx-utils' required by lib32-nvidia-440xx-utils
Add lib32-nvidia-440xx-utils to remove
Warning: removing nvidia-440xx-utils breaks dependency 'nvidia-440xx-utils=440.100' required by linux57-nvidia-440xx
Add linux57-nvidia-440xx to remove
Error: Failed to prepare transaction:
could not satisfy dependencies:
- removing linux57-nvidia-440xx breaks dependency 'linux57-nvidia-440xx' required by linux-latest-nvidia-440xx,
- if possible, remove linux-latest-nvidia-440xx and retry
Resolving dependencies...
Checking inter-conflicts...
Error: Failed to prepare transaction:
could not satisfy dependencies:
- removing linux57-nvidia-440xx breaks dependency 'linux57-nvidia-440xx' required by linux-latest-nvidia-440xx,
- if possible, remove linux-latest-nvidia-440xx and retry

Edit build files ? [y/N] 

Transaction cancelled.
downgrade ffmpeg
╭─tomas@tomas-80yy ~ 
╰─$ DOWNGRADE_FROM_ALA=1 downgrade ffmpeg                                                               130 ↵

Downgrading from A.L.A. is disabled on the stable branch. To override this behavior, set DOWNGRADE_FROM_ALA to 1 .
See https://wiki.manjaro.org/index.php?title=Using_Downgrade  for more details.

Available packages:

    1)  ffmpeg  1  4.1    2  x86_64  (remote)
    2)  ffmpeg  1  4.1    3  x86_64  (remote)
    3)  ffmpeg  1  4.1    4  x86_64  (remote)
    4)  ffmpeg  1  4.1.1  1  x86_64  (remote)
    5)  ffmpeg  1  4.1.1  2  x86_64  (remote)
    6)  ffmpeg  1  4.1.2  1  x86_64  (remote)
    7)  ffmpeg  1  4.1.2  2  x86_64  (remote)
    8)  ffmpeg  1  4.1.3  1  x86_64  (remote)
    9)  ffmpeg  1  4.1.3  2  x86_64  (remote)
   10)  ffmpeg  1  4.1.4  1  x86_64  (remote)
   11)  ffmpeg  1  4.2    1  x86_64  (remote)
   12)  ffmpeg  1  4.2    2  x86_64  (remote)
   13)  ffmpeg  1  4.2    3  x86_64  (remote)
   14)  ffmpeg  1  4.2    4  x86_64  (remote)
   15)  ffmpeg  1  4.2.1  1  x86_64  (remote)
   16)  ffmpeg  1  4.2.1  2  x86_64  (remote)
   17)  ffmpeg  1  4.2.1  3  x86_64  (remote)
   18)  ffmpeg  1  4.2.1  4  x86_64  (remote)
   19)  ffmpeg  1  4.2.2  1  x86_64  (remote)
   20)  ffmpeg  1  4.2.2  2  x86_64  (remote)
   21)  ffmpeg  1  4.2.2  3  x86_64  (remote)
   22)  ffmpeg  1  4.2.2  4  x86_64  (remote)
   23)  ffmpeg  1  4.2.2  5  x86_64  (remote)
   24)  ffmpeg  1  4.2.2  6  x86_64  (remote)
   25)  ffmpeg  1  4.2.2  7  x86_64  (remote)
   26)  ffmpeg  1  4.2.2  8  x86_64  (remote)
   27)  ffmpeg  1  4.2.3  1  x86_64  (remote)
   28)  ffmpeg  1  4.2.3  2  x86_64  (remote)
   29)  ffmpeg  1  4.2.3  3  x86_64  (remote)
   30)  ffmpeg  1  4.2.3  4  x86_64  (remote)
   31)  ffmpeg  1  4.2.3  5  x86_64  (remote)
   32)  ffmpeg  1  4.3    1  x86_64  (remote)
   33)  ffmpeg  1  4.3    1  x86_64  (local)
   34)  ffmpeg  2  4.2.3  1  x86_64  (remote)
   35)  ffmpeg  2  4.2.3  2  x86_64  (remote)
-  36)  ffmpeg  2  4.2.4  1  x86_64  (local)
   37)  ffmpeg  2  4.3.1  1  x86_64  (remote)
+  38)  ffmpeg  2  4.3.1  2  x86_64  (remote)
+  39)  ffmpeg  2  4.3.1  2  x86_64  (local)

select a package by number: 36
[sudo] password for tomas: 
loading packages...
warning: downgrading package ffmpeg (2:4.3.1-2 => 2:4.2.4-1)
resolving dependencies...
warning: cannot resolve "libx264.so=159-64", a dependency of "ffmpeg"
:: The following package cannot be upgraded due to unresolvable dependencies:
      ffmpeg

:: Do you want to skip the above package for this upgrade? [y/N] 
error: failed to prepare transaction (could not satisfy dependencies)
:: unable to satisfy dependency 'libx264.so=159-64' required by ffmpeg