エラー: 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 ウィキ: HWAccelIntro:

FFmpegは、nvidiaのCUDA/nvenc/nvdec関連ライブラリ用に、わずかに変更された独自のランタイムローダーを使用するようになりました。configureからffnvcodecが見つからないというエラーが表示された場合は、これ必要なものです。

Makefileインストール ターゲットで動作します:

make install PREFIX=/usr

pkg-configFFmpeg はと呼ばれるファイル を探します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 をマスターに残すという特定の指示に従いました。

タグ n4.4 以降、FFmpeg にはCUVIDAV1PICPARAMS構造体が必要です。これは、タグ n11.0.10.0 以降、nv-codec-headers の dynlink_cuviddec.h にのみ存在します。

n11.1.5.1Ubuntu 18.04LTS nvidia-docker イメージで CUDA 11.4 用に nv-codec-headersと FFmpegを使用して正常に構成/コンパイルしましたn5.1.2(必要な追加の引数/環境変数:
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

このコミットコードでエラーが発生していることがわかりました。以前のコミットコードを使用してください

git クローン参考:

git チェックアウト 7414d0bda7763f9bd69c26c068e482ab297c1c96

git リセット --hard

関連情報