Falha ao carregar a biblioteca CUDA ao tentar usar o ffmpeg com nvenc

1

No Ubuntu 14.04 estou seguindo o guia de instruções do site da NVIDIA para obter o ffmpeg em execução usando a codificação da GPU.

Eu segui as instruções (até onde eu sei), instalei o .dep local do SDK da NVIDIA, instalei o pacote cuda e o pacote nvidia-352 , então o ffmpeg compilado.

No entanto, quando tento fazer a seguinte chamada:

ffmpeg -i ~/test/StreamInstructions.mp4 -vcodec nvenc -b:v 5M -f avi output.mp4

ffmpeg me diz Failed loading CUDA library .

A pesquisa no google mostra-me que o código-fonte desta mensagem de erro tem origem na linha de código: dl_fn->cuda_lib = dlopen("libcuda.so", RTLD_LAZY); .

Isso me diz (quem não fez muito c ++ ou linux na última década) que não consegue encontrar a biblioteca compartilhada libcuda.so.

Ao fazer uma pesquisa no sistema de arquivos, vejo que libcuda.so está nos seguintes locais:

/usr/local/cuda-7.5/doc/man/man7/libcuda.so.7
/usr/local/cuda-7.5/targets/x86_64-linux/lib/stubs/libcuda.so
/usr/lib/i386-linux-gnu/libcuda.so.1
/usr/lib/i386-linux-gnu/libcuda.so
/usr/lib/i386-linux-gnu/libcuda.so.352.63
/usr/lib/x86_64-linux-gnu/libcuda.so.1
/usr/lib/x86_64-linux-gnu/libcuda.so.352.63

Não consigo encontrar nenhum outro resultado na minha pesquisa para ajudar a resolver esse problema e, por causa disso, sinto que posso estar fazendo algo errado no nível do Linux, em vez do nível do ffmpeg.

Alguém tem alguma sugestão sobre para onde ir a partir daqui?

Editar: Acabei de notar que ldconfig -p realmente mostra que pode encontrar a biblioteca libcuda.so , mas ainda estou recebendo erros que não podem encontrar a biblioteca:

 ldconfig -p | grep cuda
        libicudata.so.52 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libicudata.so.52
        libcuda.so.1 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libcuda.so.1
        libcuda.so.1 (libc6) => /usr/lib/i386-linux-gnu/libcuda.so.1
        libcuda.so (libc6) => /usr/lib/i386-linux-gnu/libcuda.so
    
por KallDrexx 04.12.2015 / 20:04

1 resposta

1

NOTA:
Faça o backup do seu antigo LD_LIBRARY_PATH primeiro!
Este comando colocará o valor da variável de ambiente LD_LIBRARY_PATH em seu diretório inicial no arquivo "LD_LIBRARY_PATH.old" #>$ echo $LD_LIBRARY_PATH >> ~/LD_LIBRARY_PATH.old

MY FIX:
Eu tive esse problema quando instalei os drivers NVidia / Cuda no Fedora. Eu tive que atualizar o caminho da minha biblioteca: #>$ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/path/to/cuda/lib

REVERTER MUDANÇAS: #>$ export LD_LIBRARY_PATH=$(cat ~/LD_LIBRARY_PATH.old)

    
por 06.12.2015 / 02:55