NV Encode SDK 2.0に含まれている nvEncoder サンプル アプリケーションを実行しようとすると、エンコード セッションを開くことができません。出力は次のとおりです。
C:\Users\Timothy\Downloads\nvenc_2.0_pkg\Samples\nvEncodeApp>1080p_heavyhand_3se c.bat C:\Users\Timothy\Downloads\nvenc_2.0_pkg\Samples\nvEncodeApp>nvEncoder -infile=. .\yuv\1080p\HeavyHandIdiot.3sec.yuv -outfile=HeavyHandIdiot.3sec.264 -width=1920 -高さ=1080 -ビットレート=6000000 > Encoder[0] の NVEncode 構成パラメーター > GPU デバイス ID = 0 > 入力ファイル = ..\yuv\1080p\HeavyHandIdiot.3sec.yuv > 出力ファイル = HeavyHandIdiot.3sec.264 > フレーム [000--01] = 0 フレーム > マルチビュー コーデック = いいえ > 幅、高さ = [1920,1080] > ビデオ出力コーデック = 4 - H.264 コーデック > 平均ビットレート = 6000000 (bps/秒) > ピーク ビットレート = 24000000 (bps/秒) > バッファサイズ = 3000000 > レート制御モード = 2 - CBR (固定ビットレート) > フレームレート (Num/Denom) = (30000/1001) 29.9700 fps > GOP の長さ = 30 > 初期 RC QP = 0 に設定 > 初期 RC QP (I、P、B) = I(0)、P(0)、B(0) > B フレーム数 = 0 > 表示アスペクト比 X = 1920 > 表示アスペクト比 Y = 1080 > B フレーム数 = 0 > QP (全フレーム) = 26 > QP (I フレーム) = 25 > QP (P フレーム) = 28 > QP (B フレーム) = 31 > 階層 P フレーム = 0 > 階層 B フレーム = 0 > SVC の時間的スケーラビリティ = 0 > 時間レイヤーの数 = 0 > アウトバンド SPSPPS = 0 > ビデオ コーデック プロファイル = 100 > ステレオ 3D モード = 0 > ステレオ 3D 有効 = いいえ > フレームあたりのスライス数 = 1 > エンコーダー プリセット = 3 - 高性能 (HP) プリセット > 非同期モード = はい > YUV 入力フォーマット = NV12 (セミプレーナー UV インターリーブ) ピッチ リニア > NVENC API インターフェイス = 2 - CUDA > Map Resource API Demo = いいえ > 動的解像度変更 = 0 > 動的ビットレート変更 = 0 入力ファイルサイズ: 236390400 バイト 入力ファイル名: ..\yuv\1080p\HeavyHandIdiot.3sec.yuv 自動検出 (nvAppEncoderParams.endFrame = 76 フレーム) >> GetNumberEncoders() は 1 つの CUDA 対応 GPU デバイスを検出しました << [ GPU #0 - < GeForce GTX 670 > は Compute SM 3.0、NVENC 利用可能 ] >> InitCUDA() は 1 つの CUDA 対応 GPU デバイスを検出しました<< [ GPU #0 - < GeForce GTX 670 > は Compute SM 3.0 を搭載し、NVENC を使用可能 ] >> GPU #0 を選択 - < GeForce GTX 670 > は SM 3.0 と NVENC をサポート ファイル: src\CNVEncoder.cpp、行: 1380、nvEncOpenEncodeSessionEx() が e で返される エラー21 注: GUID キーが無効または正しくない可能性があります。ドライバをアップグレードすることをお勧めします 新しい鍵を入手する src\CNVEncoder.cpp:1382 code=21 での NVENC エラー (c では NVENC 機能を使用できません 現在のライセンス キーの種類) "nvStatus"
API によると、エラー コード 21 はNV_ENC_ERR_INCOMPATIBLE_CLIENT_KEY
であり、次のコメントが含まれています。
/**
* This indicates that the client is attempting to use a feature
* that is not available for the license type for the current system.
*/
プログラミングガイドには次のように書かれています。
2. エンコードのためのハードウェアのセットアップ
2.1 エンコード セッションを開く
NVENC インターフェイスをロードした後、クライアントは最初に呼び出し
NvEncOpenEncodeSession
てエンコード セッションを開く必要があります。NVENC インターフェイスは、クライアントにエンコード セッション ハンドルを提供します。これは、現在のセッションでの以降のすべての API 呼び出しに使用する必要があります。2.1.1 ライセンス クライアント キー GUID の使用:
クライアントは、この SDK で提供されるか、ライセンスの一部として個別に購入されたキー GUID へのポインターを渡す必要があります。
NV_ENC_OPEN_ENCODE_SESSION_EX_PARAMS::clientKeyPtr
ガイドによると、サンプルコードは設定されていないため無効NV_ENC_OPEN_ENCODE_SESSION_EX_PARAMS::clientKeyPtr
です。しかし、ガイドにあるように、SDK には主要な GUID が付属していませんでした。
誰かがここで同じ問題を抱えていて、無料の試用版キーを使用して解決しました. SDK の 2.0 ベータ版に含まれていたようですが、これは利用できなくなりました。
また、ドライバー 311.06、312.07、および 314.22 をインストールしようとしましたが、成功しませんでした。GeForce GTX 670 を持っています。
解決策はありますか?