
En Ubuntu 14.04 estoy siguiendo la guía de instruccionesdel sitio de NVIDIApara ejecutar ffmpeg usando codificación GPU.
Seguí las instrucciones (hasta donde yo sé), instalé el .dep local del SDK de NVIDIA, instalé el cuda
paquete y el nvidia-352
paquete, luego compilé ffmpeg.
Sin embargo, cuando intento hacer la siguiente llamada:
ffmpeg -i ~/test/StreamInstructions.mp4 -vcodec nvenc -b:v 5M -f avi output.mp4
ffmpeg me dice Failed loading CUDA library
.
La búsqueda en Google me muestra que el código fuente de este mensaje de error se origina en la línea de código: dl_fn->cuda_lib = dlopen("libcuda.so", RTLD_LAZY);
.
Esto me dice (que no ha hecho mucho C++ o Linux en la última década) que no puede encontrar la biblioteca compartida libcuda.so.
Al realizar una búsqueda en el sistema de archivos, veo que libcuda.so
se encuentra en las siguientes ubicaciones:
/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
No puedo encontrar ningún otro resultado en mi búsqueda para ayudar a resolver este problema, y por eso siento que podría estar haciendo algo mal en el nivel de Linux en lugar de en el nivel de ffmpeg.
¿Alguien tiene alguna sugerencia sobre adónde ir desde aquí?
Editar:
Me acabo de dar cuenta de que ldconfig -p
en realidad muestra que puede encontrar la libcuda.so
biblioteca, pero sigo recibiendo errores que indican que no puede encontrar la 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
Respuesta1
NOTA:
¡Primero haga una copia de seguridad de su antiguo LD_LIBRARY_PATH!
Este comando colocará el valor de la variable de entorno LD_LIBRARY_PATH en su directorio de inicio en el archivo "LD_LIBRARY_PATH.old".
#>$ echo $LD_LIBRARY_PATH >> ~/LD_LIBRARY_PATH.old
MI SOLUCIÓN:
Tuve este problema cuando instalé los controladores NVidia/Cuda en Fedora. Tuve que actualizar la ruta de mi biblioteca:
#>$ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/path/to/cuda/lib
REVERTIR CAMBIOS:
#>$ export LD_LIBRARY_PATH=$(cat ~/LD_LIBRARY_PATH.old)