
No Ubuntu 14.04 estou seguindo o guia de instruçõesdo site da NVIDIApara executar o ffmpeg usando codificação GPU.
Segui as instruções (até onde sei), instalei o .dep local do NVIDIA SDK, instalei o cuda
pacote e o nvidia-352
pacote e compilei o ffmpeg.
Porém, 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
.
Pesquisar no Google me mostra que o código-fonte dessa mensagem de erro se origina na linha de código: dl_fn->cuda_lib = dlopen("libcuda.so", RTLD_LAZY);
.
Isso me diz (que não fez muito c++ ou linux na última década) que não consegue encontrar a biblioteca compartilhada libcuda.so.
Fazendo 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 em minha pesquisa para ajudar a resolver esse problema e, por causa disso, sinto que posso estar fazendo algo errado no nível do Linux, e não no nível do ffmpeg.
Alguém tem alguma sugestão sobre para onde ir a partir daqui?
Editar:
Acabei de notar que isso ldconfig -p
realmente mostra que ele pode encontrar a libcuda.so
biblioteca, mas ainda estou recebendo erros de que ele não consegue 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
Responder1
OBSERVAÇÃO:
Faça 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
MINHA CORREÇÃO:
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 ALTERAÇÕES:
#>$ export LD_LIBRARY_PATH=$(cat ~/LD_LIBRARY_PATH.old)