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