
В Ubuntu 14.04 я следую инструкциис сайта NVIDIAчтобы запустить ffmpeg с использованием кодирования на GPU.
Я следовал инструкциям (насколько я могу судить), установил локальный .dep NVIDIA SDK, установил пакет cuda
и nvidia-352
пакет, затем скомпилировал ffmpeg.
Однако, когда я пытаюсь сделать следующий вызов:
ffmpeg -i ~/test/StreamInstructions.mp4 -vcodec nvenc -b:v 5M -f avi output.mp4
ffmpeg мне говорит Failed loading CUDA library
.
Поиск в Google показал, что исходный код этого сообщения об ошибке находится в строке кода: dl_fn->cuda_lib = dlopen("libcuda.so", RTLD_LAZY);
.
Это говорит мне (я не особо много работал с C++ или Linux за последнее десятилетие), что он не может найти общую библиотеку libcuda.so.
Выполнив поиск в файловой системе, я обнаружил, что они libcuda.so
находятся в следующих местах:
/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
Я не могу найти никаких других результатов поиска, которые помогли бы решить эту проблему, и из-за этого у меня возникает ощущение, что я делаю что-то неправильно на уровне Linux, а не на уровне ffmpeg.
У кого-нибудь есть предложения, куда двигаться дальше?
Редактировать:
Я только что заметил, что это ldconfig -p
на самом деле показывает, что он может найти libcuda.so
библиотеку, но я все еще получаю ошибки о том, что он не может найти библиотеку:
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
решение1
ПРИМЕЧАНИЕ:
Сначала сделайте резервную копию старого LD_LIBRARY_PATH!
Эта команда поместит значение переменной среды LD_LIBRARY_PATH в ваш домашний каталог в файле "LD_LIBRARY_PATH.old"
#>$ echo $LD_LIBRARY_PATH >> ~/LD_LIBRARY_PATH.old
МОЕ ИСПРАВЛЕНИЕ:
У меня была эта проблема, когда я установил драйверы NVidia/Cuda в Fedora. Мне пришлось обновить путь к библиотекам:
#>$ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/path/to/cuda/lib
ОТМЕНИТЬ ИЗМЕНЕНИЯ:
#>$ export LD_LIBRARY_PATH=$(cat ~/LD_LIBRARY_PATH.old)