OBS Studio: "Falha ao abrir o codec NVENC: Unknown error occurred"

Instalei hoje openSUSE Tumbleweed no Desktop com NVIDIA GTX 960, e não estou conseguindo gravar com NVENC no OBS Studio.

Ao tentar gravar com NVENC, surge a mensagem de erro:
image
“Falha ao abrir o codec NVENC: Unknown error occurred
Por favor, verifique se os seus drivers de vídeo estão atualizados.”

Saída do terminal: “…Cannot init CUDA”

O driver de vídeo instalado é o 450.80.02 (x11-video-nvidiaG05);

A versão do OBS Studio é 26.0.2 (Repositório Packman).
Também tentei a versão Flatpak, ocorreu o mesmo erro.

x264 funciona normal, mas eu tenho preferência pelo NVENC, então x264 não seria uma solução.

Alguém saberia me dizer o que está acontecendo? Há algo que eu possa fazer?

Desde já agradeço pelo suporte.

Aparentemente por segurança ou algo assim tem que carregar o componente CUDA do driver manualmente com o comando sudo nvidia-modprobe -u -c=0. Depois disso aplicativos sem root vão poder usar CUDA.

Fonte

1 Curtida

Executei este comando, mas o problema persiste.

Antes de instalar o openSUSE, eu estava com Manjaro nesse PC, e este problema aconteceu com Manjaro após alguma atualização de Julho 2020, e eu fiquei este tempo todo sem NVENC…

Ontem, por algum motivo, visitei as configurações do Manjaro, e percebi que havia lançado o nvidia-driver 450xx, enquanto eu ainda estava usando 440xx.

Removi o 440xx, e instalei o 450xx, e depois disto, o NVENC voltou a funcionar no Manjaro.

Agora, com openSUSE Tumbleweed, eu estou com OBS Studio 26.0.2 e o nvidia-driver 450, e mesmo assim estou tendo este problema.

Estou na dúvida, se é a versão do OBS Studio que não está identificando o NVENC… ou se é a versão do nvidia-driver que está com algum bug.

Você acha que isto é um problema que possa ser resolvido após algum futuro update?

Pelo bug report que tem na fonte (mostre os comentários “raiz”), esse bug é uma loteria no openSUSE, em que dois usuários com a mesma configuração tem bugs.

Aliás, dúvida talvez óbvia, você também instalou o pacote nvidia-compute-G05 (com OpenCL/CUDA) e rodou mkinitrd?

Instalei o nvidia-compute-G05 via Yast Gerenciador de Software.

Não rodei mkinitrd… eu não sei o que é isto. Devo executar este comando?

Comando que regera o initrd (pequeno arquivo com as primeiras instruções a serem executadas pelo kernel Linux). É a última etapa do guia oficial executar esse comando. para desinstalação, ignore.

1 Curtida

Executei mkinitrd como su, saída foi esta:

Reiniciei o sistema, tentei gravar com OBS, e o erro com NVENC continua.

Então experimentei rodar “sudo nvidia-modprobe -u -c=0” novamente, e gravar, e o mesmo erro persiste.

@ryu_ketsueki @fastos2016 sabem de algo sobre isto?

recomendo reportar aqui Issues · flathub/com.obsproject.Studio · GitHub

2 Curtidas

Reportado: Failed to open NVENC codec: Unknown error occurred. Please make sure your video drivers are up to date. · Issue #89 · flathub/com.obsproject.Studio · GitHub

Bem… espero que eu tenha passado informações o suficiente para eles.

2 Curtidas

Que eu me lembre apenas o Leap tinha o cuda suportado pela Nvidia. Não sei se mudou nos últimos tempos. Antes era necessário a instalação manual.

[EDIT]

Pesquisei aqui e achei um artigo informando o mesmo, e demonstrando como proceder.

1 Curtida

Eu li a matéria, até pensei que daria certo, visto que se trata da instalação do CUDA, realizei a instalação e configurei os caminhos, e mesmo assim não funcionou.

Este é o único problema que estou tendo no openSUSE Tumbleweed, problema que não me atrapalha, visto que não sou Youtuber, nem Streamer, eu fazia transmissão de jogos apenas por hobbie mesmo.

Continuarei aguardando por alguma solução, nem que seja através de updates por parte do OBS ou NVIDIA…

Agradeço pelo comentário.

Por parte do OBS Studio vai ser difícil, improvável ( o CUDA é proprietário), pois o suporte não depende deles. Já a Nvidia não demonstra interesses em suportar além do Leap.

Então ou é usar sem, migrar para o Leap, ou outra distro com o suporte.

Claro, nada impede de continuar esperando. Mas se tratando de Nvidia, e como essa decisão tem anos, como mencionei acima é muito improvável suportarem essa versão do OpenSuse.

1 Curtida

Outro detalhe, você baixou a versão certa do CUDA referente ao seu driver? Tipo se estiver usando à última versão stable é interessante também pegar uma versão relativamente nova do CUDA.

Talvez a Nvidia te responda, logo que você questionou isso com eles.

1 Curtida

vc tem que compilar o obs com o suporte ao nvenc.
se não credita, veja essa referencia

vi que vc tem feito em outros forums a mesma pergunta

Sim, vejo muitas pessoas sugeriram isto, e de fato deve ser a solução, porém, eu confesso que não sei compilar, mas pretendo aprender em breve.

O que eu gostaria de entender, é o porquê de só no Tumbleweed eu precisar compilar, visto que eu estava gravando com NVENC normalmente no KDE Neon 20.04 e Manjaro 20.1, apenas instalando os pacotes obs-studio e nvidia-driver, sem a necessidade de eu compilar.

Acabei de conversar com alguns usuários gringos no servidor do openSUSE do Discord, e eles não estavam cientes sobre NVENC e Tumbleweed, e após alguns minutos de pesquisa, um usuário do Discord me enviou esta mensagem do repositório NVIDIA:

image

Desabilitado build do módulo de kernel nvidia-uvm em Tumbleweed. Desde o kernel 5.9 não é mais permitido usar símbolos de módulos proprietários (aqui “nvidia” com licença “NVIDIA”) para módulos compatíveis com GPL (aqui “nvidia-uvm” para licenciar “Dual MIT/GPL”). Alterar a licença de “nvidia-uvm” para a licença “MIT” não ajuda, pois usa o símbolo somente GPL ‘__mmu_notifier_register’

No instante momento, meu Tumbleweed ainda é kernel 5.8, mas enfim…

Segundo este usuário do Discord, instalar o driver NVIDIA no modo “hard way” deve contornar o problema da falta do NVENC: SDB:NVIDIA the hard way - openSUSE Wiki

Sinceramente, estou um pouco receoso de realizar uma instalação modo “hard way”, por conta disto:

Atualizações de kernel e compatibilidade de driver

“Você terá que repetir esses passos sempre que atualizar o kernel. Isso é necessário porque, ao contrário do driver NVIDIA dos repositórios openSUSE da NVIDIA, este driver não é copiado para diretórios de KMPs que permanecem válidos nas atualizações do kernel.”

Neste caso, talvez eu continue fazendo o uso do Tumbleweed “sem NVENC”, visto que está sendo minha primeira experiência Rolling Release em uma distribuição nova, e também pelo fato do NVENC ser algo que eu usaria de vez em quando, apenas por hobby mesmo.

Qualquer novidade estarei comentando aqui.

Desde já agradeço pelos comentários.

Uhmmm.
Se estava funcionando no Manjato, eh pq o pacote dele foi compilado com suporte nvenc , mas nem todas as distros compilam seus obs com essa opção,

Ps: não precisa instalar o cuda tb? Veja aí se nao eh isso que falta do contrário não tenho mais dicas. Boa sorte

1 Curtida

Sim, já instalei o CUDA e ffnvcodec da comunidade home:regataos, os resultados são sempre os mesmos, não funciona.

Provavelmente a solução seja compilar ou instalar o driver no modo “hard way”.

Supondo que o binário da sua distro já foi compilado
com suport ao nvenc,
parece que o problema é que mudou alguma coisa no ffmpeg.

então você teria mais duas opções:

Mude para ramo de testes (se sua distro tiver essa opção) e instale a série de drivers 450 para Nvidia
Ou faça downgrade de FFMPEG e x264

Achei nesse link:

1 Curtida