Unter Ubuntu 14.04 folge ich der Bedienungsanleitung von der NVIDIA-Website ffmpeg mit GPU-Codierung zum Laufen zu bringen.
Ich habe die Anweisungen befolgt (soweit ich das beurteilen kann), das NVIDIA SDK local .dep installiert und das cuda
Paket und die nvidia-352
Paket, dann kompiliert ffmpeg.
Wenn ich jedoch versuche, den folgenden Anruf zu tätigen:
ffmpeg -i ~/test/StreamInstructions.mp4 -vcodec nvenc -b:v 5M -f avi output.mp4
ffmpeg sagt es mir Failed loading CUDA library
.
Durchsuchen von Google zeigt mir, dass der Quellcode für diese Fehlermeldung aus der folgenden Codezeile stammt: dl_fn->cuda_lib = dlopen("libcuda.so", RTLD_LAZY);
.
Dies sagt mir (wer in den letzten zehn Jahren nicht viel mit C ++ oder Linux gemacht hat), dass es die gemeinsam genutzte Bibliothek libcuda.so nicht finden kann.
Bei einer Suche im Dateisystem sehe ich das libcuda.so
befindet sich an folgenden Orten:
/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
Ich kann keine anderen Ergebnisse bei meiner Suche finden, um dieses Problem zu beheben. Aus diesem Grund habe ich das Gefühl, dass ich auf der Linux-Ebene etwas falsch mache, anstatt auf der ffmpeg-Ebene.
Hat jemand Vorschläge, wohin man von hier aus gehen soll?
Bearbeiten: Das ist mir gerade aufgefallen ldconfig -p
zeigt eigentlich, dass es das finden kann libcuda.so
Bibliothek, dennoch erhalte ich die Fehlermeldung, dass die Bibliothek nicht gefunden werden kann:
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
ldconfig -p | grep cuda
Das macht das Ganze noch verwirrender.