
Debian 9.3에서 Nvidia Cuda 지원을 사용하여 FFMPEG를 컴파일하려고 합니다. 매개변수, 내가 사용하는 것:
--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가 설치되었습니다. ffmpeg를 구성하려고 하면 다음과 같이 표시됩니다.
ERROR: cuvid requested, but not all dependencies are satisfied: cuda
최신 ffmpeg는 유사하고 다시 표현된 메시지를 표시합니다.
ERROR: cuda requested, but not all dependencies are satisfied: ffnvcodec
ffmpeg
모든 트랜스코딩 서버에서 컴파일하고 있기 때문에 왜 이 문제가 발생하는지 전혀 모르겠습니다 .
답변1
NVIDIA 헤더는 FFmpeg 코드베이스에서독립형 저장소커밋 중27cbbbb. 커밋 메시지에서:
외부 헤더는 유지 관리 부담을 증가시키기 때문에 ffmpeg 코드베이스에서 더 이상 환영받지 않습니다. 그러나 NVidia의 경우 바닐라 헤더를 ffmpeg에서 사용하려면 일부 수정이 필요하므로 여전히 이를 제공하지만 별도의 저장소에 있습니다.
FFmpeg는 이제 nvidias CUDA/nvenc/nvdec 관련 라이브러리에 대해 약간 수정된 자체 런타임 로더를 사용합니다. ffnvcodec 누락에 대해 불평하는 구성 오류가 발생하는 경우,이것당신이 필요로하는 것입니다.
Makefile
설치 대상으로 작업하고 있습니다 .make install PREFIX=/usr
FFmpeg
pkg-config
는ffnvcodec.pc
. 에 있는지 확인하세요PKG_CONFIG_PATH
.
FFmpeg NVIDIA 헤더("ffnvcodec")를 컴파일하려면:
git clone https://git.videolan.org/git/ffmpeg/nv-codec-headers.git
cd nv-codec-headers
make
sudo make install
이제 ffmpeg
평소대로 컴파일하세요. 헤더는 자동으로 감지되어야 합니다. 그렇지 않은 경우 FFmpeg를 실행할 때 위치 PKG_CONFIG_PATH
를 가리키는 경로를 선언하십시오 . 예를 들어:ffnvcodec.pc
configure
PKG_CONFIG_PATH="/path/to/lib/pkgconfig" ./configure
답변2
비슷한 오류가 발생했지만 도구 패키지 구성 누락으로 인해 발생한 것으로 나타났습니다. Ubuntu 16.04에서는 다음을 실행할 수 있습니다.
apt-get install pkgconf
누락된 패키지가 실제로 누락되었는지 여부를 확인하십시오.
pkgconf --list-all | grep package-name
답변3
이는 nv-codec-headers와 FFmpeg 간의 버전 불일치로 인해 발생할 수 있습니다. 원인: nv-codec-headers를 n8.2.15.8에 고정했지만 FFmpeg를 마스터에 두는 특정 지침을 따랐습니다.
n4.4 태그로 시작하는 FFmpeg에는 CUVIDAV1PICPARAMS
구조체가 필요합니다. 이는 n11.0.10.0 태그로 시작하는 nv-codec-headers의 dynlink_cuviddec.h에서만 찾을 수 있습니다.
n11.1.5.1
Ubuntu 18.04LTS nvidia-docker 이미지에서 CUDA 11.4용 nv-codec-headers 및 FFmpeg를 사용하여 성공적으로 구성/컴파일했습니다 n5.1.2
(추가 인수/env.vars. 필요:
PKG_CONFIG_PATH="<path_to_ffnvcodec.pc_folder>"
및 --nvccflags="-gencode arch=compute_52,code=sm_52 -O2"
)
답변4
https://github.com/FFmpeg/FFmpeg/commit/27cbbbb33f259de7c795d2b75edf7b240f0f82e6
이 커밋 코드 발생 오류를 발견했습니다. 이전 커밋 코드 사용
자식 클론https://github.com/FFmpeg/FFmpeg.git
자식 체크아웃 7414d0bda7763f9bd69c26c068e482ab297c1c96
자식 재설정 --하드