Debian 9.3でFFMPEGをNvidia Cudaサポート付きでコンパイルしようとしています。パラメータ、私が使っているもの:
--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
をコンパイルしているからです。
NVIDIAヘッダはFFmpegコードベースから スタンドアロンリポジトリ にコミットされました 27cbbbb コミットメッセージから:
Ffmpegコードベースでは、メンテナンスの負担が増えるため、外部ヘッダーは歓迎されません。しかし、NVidiaの場合、Vanillaヘッダーはffmpegで使用できるようにするためにいくつかの修正が必要です。
また、 からFFmpeg Wiki:HWAccelIntro :
FFmpegは、nvidias CUDA/nvenc/nvdec関連ライブラリ用に、独自にわずかに修正されたランタイムローダーを使用するようになりました。あなたがffnvcodecの欠如について文句を言うconfigureからエラーを得るなら、 これ はあなたが必要とするものです。
それはインストールターゲットで動作する
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に対してconfigure
を実行するときにPKG_CONFIG_PATH
が配置されているパスを指すffnvcodec.pc
を宣言します。例えば:
PKG_CONFIG_PATH="/path/to/lib/pkgconfig" ./configure
私は同じようなエラーに遭遇しました、しかしそれは結局のところ、それは不足しているツールパッケージ構成によって引き起こされました。 Ubuntu 16.04では、実行できます
apt-get install pkgconf
そして不足しているパッケージが本当に見逃されていないかどうかをチェックします。
pkgconf --list-all | grep package-name