LRI: yêu cầu cuvid, nhưng không phải tất cả các phụ thuộc đều được thỏa mãn: cuda / ffnvcodec


18

Tôi đang cố gắng biên dịch FFMPEG với sự hỗ trợ của Nvidia Cuda, trên Debian 9.3. Các thông số, những gì tôi đang sử dụng:

--enable-cuda --enable-cuvid --enable-nvenc --extra-cflags=-I/usr/local/cuda/include --extra-ldflags=-L/usr/local/cuda/lib64 --enable-gpl --enable-libx264 --disable-x86asm --enable-libx265 --enable-libfdk-aac --enable-nonfree

Nvidia Cuda với trình điều khiển được cài đặt. Khi tôi cố gắng cấu hình ffmpeg, nó báo:

ERROR: cuvid requested, but not all dependencies are satisfied: cuda

Ffmpeg mới hơn sẽ hiển thị một thông báo tương tự, được viết lại:

ERROR: cuda requested, but not all dependencies are satisfied: ffnvcodec

Tôi hoàn toàn không biết tại sao tôi gặp phải vấn đề này, vì tôi đang biên dịch ffmpegtrên tất cả các máy chủ chuyển mã của chúng tôi.


Config.log nói gì về cuối? Nó sẽ có trong ffbuild /
Gyan

Câu trả lời:


49

Các tiêu đề NVIDIA đã được chuyển ra khỏi cơ sở mã FFmpeg sang một kho lưu trữ độc lập trong cam kết 27cbbbb . Từ thông điệp cam kết:

Các tiêu đề bên ngoài không còn được chào đón trong cơ sở mã ffmpeg vì chúng làm tăng gánh nặng bảo trì. Tuy nhiên, trong trường hợp NVidia, các tiêu đề vanilla cần một số sửa đổi để có thể sử dụng được trong ffmpeg do đó chúng tôi vẫn cung cấp chúng, nhưng trong một kho lưu trữ riêng.

Ngoài ra, từ FFmpeg Wiki: HWAccelIntro :

FFmpeg hiện sử dụng trình tải thời gian chạy được sửa đổi một chút của riêng nó cho các thư viện liên quan đến nvidias CUDA / nvenc / nvdec. Nếu bạn gặp lỗi từ cấu hình phàn nàn về việc thiếu ffnvcodec, đây là thứ bạn cần.

Nó hoạt động Makefilevới mục tiêu cài đặt:

make install PREFIX=/usr

FFmpeg sẽ tìm pkg-configtập tin của nó , được gọi ffnvcodec.pc. Hãy chắc chắn rằng nó là trong của bạn PKG_CONFIG_PATH.

Để biên dịch các tiêu đề NVIDIA FFmpeg ("ffnvcodec"):

git clone https://git.videolan.org/git/ffmpeg/nv-codec-headers.git
cd nv-codec-headers
make
sudo make install

Bây giờ biên dịch ffmpegnhư bình thường. Các tiêu đề nên được tự động phát hiện. Nếu không thì khai báo PKG_CONFIG_PATHtrỏ đến đường dẫn ffnvcodec.pcđược đặt khi chạy configurecho FFmpeg. Ví dụ:

PKG_CONFIG_PATH="/path/to/lib/pkgconfig" ./configure

4

Tôi gặp một lỗi tương tự nhưng hóa ra, đó là do thiếu cấu hình gói công cụ. Trên Ubuntu 16.04, bạn có thể chạy

apt-get install pkgconf

và kiểm tra xem gói bị thiếu có thực sự bị bỏ lỡ hay không:

pkgconf --list-all | grep package-name

-1

https://github.com/FFmpeg/FFmpeg/commit/27cbbbb33f259de7c795d2b75edf7b240f0f82e6

Tôi tìm thấy mã cam kết này xảy ra lỗi. Sử dụng mã xác nhận trước đó

git clone https://github.com/FFmpeg/FFmpeg.git

kiểm tra git 7414d0bda7763f9bd69c26c068e482ab297c1c96

thiết lập lại git -


Điều này sẽ hạn chế bạn bị mắc kẹt với cam kết 7414d0bvô thời hạn. Chỉ cần tải xuống và cài đặt các tiêu đề NVIDIA trước khi biên dịch ffmpeg.
llogan
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.