1

В 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); ,

Это говорит мне (кто не много делал с ++ или 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 ответ1

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)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .