ข้อผิดพลาด: cuvid ร้องขอ แต่ไม่พึงพอใจต่อการอ้างอิงทั้งหมด: cuda / ffnvcodec


18

ฉันพยายามรวบรวม FFMPEG ด้วยการสนับสนุน Nvidia Cuda บน Debian 9.3 พารามิเตอร์สิ่งที่ฉันใช้:

--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เซิร์ฟเวอร์ trans-coding ของเราทั้งหมด


config.log พูดว่าอะไรในตอนท้าย? มันจะอยู่ใน ffbuild /
Gyan

คำตอบ:


49

ส่วนหัวของ NVIDIA ถูกย้ายออกจาก FFmpeg codebase ไปยังพื้นที่เก็บข้อมูลแบบสแตนด์อโลนในการกระทำ27cbbbb จากข้อความคอมมิชชัน:

ส่วนหัวภายนอกไม่ได้รับการต้อนรับใน ffmpeg codebase อีกต่อไปเพราะมันเพิ่มภาระการบำรุงรักษา อย่างไรก็ตามในกรณี NVidia ส่วนหัวของวานิลลาต้องการการแก้ไขบางอย่างเพื่อให้สามารถใช้งานได้ใน ffmpeg ดังนั้นเราจึงยังคงให้พวกมัน แต่ในที่เก็บแยกต่างหาก

นอกจากนี้จากFFmpeg Wiki: HWAccelIntro :

ตอนนี้ FFmpeg ใช้ runtime-loader ที่แก้ไขเล็กน้อยสำหรับ nvidias CUDA / nvenc / nvdec หากคุณได้รับข้อผิดพลาดจากการกำหนดค่าบ่นเกี่ยวกับการขาด ffnvcodec นี่คือสิ่งที่คุณต้องการ

มันทำงานMakefileกับเป้าหมายการติดตั้ง:

make install PREFIX=/usr

FFmpeg จะมองหาของไฟล์ที่เรียกว่าpkg-config ตรวจสอบให้แน่ใจว่ามันอยู่ในของคุณffnvcodec.pcPKG_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ตามปกติ ส่วนหัวควรตรวจสอบอัตโนมัติ ถ้าไม่เช่นนั้นให้ประกาศการPKG_CONFIG_PATHชี้ไปยังเส้นทางที่ffnvcodec.pcตั้งอยู่เมื่อใช้งานconfigureFFmpeg ตัวอย่างเช่น:

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

4

ฉันพบข้อผิดพลาดที่คล้ายกัน แต่ปรากฎว่าเกิดจากการขาดการกำหนดค่าแพคเกจเครื่องมือ บน Ubuntu 16.04 คุณสามารถเรียกใช้

apt-get install pkgconf

และตรวจสอบว่าแพ็คเกจที่หายไปนั้นพลาดไปจริงหรือ

pkgconf --list-all | grep package-name

-1

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

ฉันพบข้อผิดพลาดนี้เกิดขึ้น ใช้รหัสการกระทำก่อนหน้า

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

git checkout 7414d0bda7763f9bd69c26c068e482ab297c1c96

รีเซ็ต git - ฮาร์ด


สิ่งนี้จะ จำกัด ให้คุณติดอยู่กับการกระทำ7414d0bอย่างไม่มีกำหนด เพียงดาวน์โหลดและติดตั้งหัว NVIDIA ffmpegก่อนที่จะรวบรวม
llogan
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.