錯誤:已請求 cuvid,但並非所有依賴項都滿足:cuda/ffnvcodec

錯誤:已請求 cuvid,但並非所有依賴項都滿足:cuda/ffnvcodec

我正在嘗試在 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 Wiki:HWAccelIntro:

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.pcconfigure

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 保留在 master 上。

從標籤 n4.4 開始 FFmpeg 需要該CUVIDAV1PICPARAMS結構。僅在以標籤 n11.0.10.0 開頭的 nv-codec-headers 的 dynlink_cuviddec.h 中找到。

我在 Ubuntu 18.04LTS nvidia-docker 映像中成功配置/編譯了 CUDA 11.4 的 nv-codec-headersn11.1.5.1和 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

git結帳7414d0bda7763f9bd69c26c068e482ab297c1c96

git重置——硬

相關內容