by rigaya
このソフトウェアは、NVIDIAのGPU/APUに搭載されているHWエンコーダ(NVENC)の画質や速度といった性能の実験を目的としています。 Aviutlの出力プラグイン版と単体で動作するコマンドライン版があります。
-
NVEncC.exe
単体で動作するコマンドライン版については、こちらを参照してください。 -
NVEnc.auo
NVIDIAのNVEncを使用してエンコードを行うAviutlの出力プラグインです。本項で説明します。 -
cufilters
Aviutl用CUDAフィルタです。
こちらから、Aviutl_NVEnc_x.xx.zipをダウンロードしてください。
無保証です。自己責任で使用してください。
NVEncを使用したことによる、いかなる損害・トラブルについても責任を負いません。
NVEncによる出力は、max_dec_frame_buffering フィールドを含まないことがあり、 一部の再生環境では問題となることがあります。
まず、NVEncをこちらから、Aviutl_NVEnc_x.xx.zipをダウンロードしてください。
ダウンロードしたzipファイルをダブルクリックして開きます。中身はこんな感じです。
中身をすべてAviutlフォルダにコピーします。
更新時には、下記のように上書きするか聞いてくることがあります。
その場合には「ファイルを置き換える」を選択して上書きしてください。
このあとAviutlをダブルクリックして起動してください。
初回起動時に必要に応じて下の図のようにNVEncの使用準備をするというメッセージが出ます。環境によっては準備が不要な場合があり、その場合は表示されません。
OKをクリックすると使用準備が開始されます。
下の図のように、「この不明な発行元からのアプリがデバイスに変更を加えることを許可しますか?」というメッセージが表示されますので、「はい」をクリックしてください。
下の図のようなウィンドウが表示され、NVEncの使用に必要なモジュールがインストールされます。
エラーなくインストールが完了すると下記のように表示されますので、右上の[x]ボタンでウィンドウを閉じてください。
これで使用準備は完了です。
NVEnc がAviutlに認識されているか確認します。
Aviutlの [その他] > [出力プラグイン情報]を選択します。
拡張 NVEnc 出力 が表示されていれば成功です。
[ ファイル ] > [ プラグイン出力 ] > [ 拡張 NVEnc 出力 ] を選択し、出力ファイル名を入力して、「保存」をクリックしてください。
エンコードが開始されます。
エンコードが完了するまで待ちます。お疲れ様でした。
Windows 10/11 (x86/x64)
Aviutl 1.00 以降 (NVEnc.auo)
NVEncが載ったハードウェア
NVIDIA製 GPU GeForce Kepler世代以降 (GT/GTX 6xx 以降)
※GT 63x, 62x等はFermi世代のリネームであるため非対応なものがあります。
NVEnc | 対応するNVENC SDK API | 必要なグラフィックドライバのバージョン |
---|---|---|
NVEnc 0.00 以降 | 4.0 | NVIDIA グラフィックドライバ 334.89 以降 |
NVEnc 1.00 以降 | 5.0 | NVIDIA グラフィックドライバ 347.09 以降 |
NVEnc 2.00 以降 | 6.0 | NVIDIA グラフィックドライバ 358 以降 |
NVEnc 2.08 以降 | 7.0 | NVIDIA グラフィックドライバ 368.69 以降 |
NVEnc 3.02 以降 | 7.0 | NVIDIA グラフィックドライバ 369.30 以降 |
NVEnc 3.08 以降 | 8.0 | NVIDIA グラフィックドライバ 378.66 以降 |
NVEnc 4.00 以降 | 8.1 | NVIDIA グラフィックドライバ 390.77 以降 |
NVEnc 4.31 以降 | 9.0 | NVIDIA グラフィックドライバ 418.81 以降 |
NVEnc 4.51 以降 | 9.1 | NVIDIA グラフィックドライバ 436.15 以降 |
NVEnc 5.10 以降 | 9.0, 9.1, 10.0 | NVIDIA グラフィックドライバ 418.81 以降 |
NVEnc 5.18 以降 | 9.0, 9.1, 10.0, 11.0 | NVIDIA グラフィックドライバ 418.81 以降 (x64) NVIDIA グラフィックドライバ 456.81 以降 (x86) |
NVEnc 5.24 以降 | 9.0, 9.1, 10.0, 11.0 | NVIDIA グラフィックドライバ 418.81 以降 (x64) NVIDIA グラフィックドライバ 456.81 以降 (x86) |
NVEnc 5.36 以降 | 9.0, 9.1, 10.0, 11.0, 11.1 | NVIDIA グラフィックドライバ 418.81 以降 (x64) NVIDIA グラフィックドライバ 456.81 以降 (x86) |
対応するNVENC SDK API | 必要なグラフィックドライバのバージョン |
---|---|
9.0 | NVIDIA グラフィックドライバ (Win 418.81 / Linux 418.30) 以降 |
9.1 | NVIDIA グラフィックドライバ (Win 436.15 / Linux 435.21) 以降 |
10.0 | NVIDIA グラフィックドライバ (Win 445.87 / Linux 450.51) 以降 |
11.0 | NVIDIA グラフィックドライバ (Win 456.71 / Linux 455.28) 以降 |
11.1 | NVIDIA グラフィックドライバ (Win 471.41 / Linux 470.57.02) 以降 |
CUDAバージョン | 必要なグラフィックドライバのバージョン |
---|---|
10.1 | NVIDIA グラフィックドライバ (Win 418.96 / Linux 418.39) 以降 |
10.2.89 | NVIDIA グラフィックドライバ (Win 440.33 / Linux 441.22) 以降 |
11.0.2 | NVIDIA グラフィックドライバ (Win 451.48 / Linux 450.51.05) 以降 |
11.0.3 | NVIDIA グラフィックドライバ (Win 451.82 / Linux 450.51.06) 以降 |
11.1.0 | NVIDIA グラフィックドライバ (Win 456.38 / Linux 455.23) 以降 |
11.1.1 | NVIDIA グラフィックドライバ (Win 456.81 / Linux 455.32) 以降 |
11.2 | NVIDIA グラフィックドライバ (Win 460.89 / Linux 460.27.04) 以降 |
NVEncC --check-features の結果をまとめたものです。ドライバに問い合わせた結果となっています。そのため、ドライバのバージョンによって結果が異なる可能性があります。
GPU世代 | Windows | Linux |
---|---|---|
Kepler | GTX660Ti | Tesla K80 |
Maxwell | GTX970 | Tesla M80 |
Pascal | GTX1080, GTX1070, GTX1060 | GTX1080 |
Volta | GTX1650 | |
Turing | RTX2070, RTX2060, GTX1660Ti, GTX1650 Super | Tesla T4 |
Ampere | RTX3090, RTX3080 |
NVEncCでは、NVENCを実行可能なGPUが複数存在する場合、 指定されたオプションをもとに実行時に最適なGPUを自動選択します。 自動選択に任せず、自分でGPUを選択する場合には--deviceオプションで指定してください。
- 指定オプションを実行可能なGPUを選択
指定されたオプションから下記をチェックします。
- 指定されたコーデック、プロファイル、レベルのサポート
- 下記を指定した場合、それをサポートしているかチェック
- 10ビット深度
- ロスレス
- インターレース保持
- psnr/ssim/vmaf計算時のHWデコード
- 指定オプションを満たすGPUを優先
下記条件のチェックし、実行可能なGPUを優先します。
- Bフレームの使用が指定された場合、Bフレームのサポート
- 1と2の条件を満たすGPUが複数ある場合、下記のGPUを優先して自動選択します。
- Video Engine(VE)使用率の低いもの
- GPU使用率の低いもの
- GPUの世代の新しいもの
- GPUのCUDAコア数の多いもの VE/GPU使用率の低いGPUで実行することで、複数のGPUを効率的に使用し、エンコード速度の最大限引き出します。また、一般に世代が新しく、CUDAコア数の多いGPUのほうが高速であると考えこれを優先します。
なお、VE/GPU使用率の取得はエンコードの開始時に行われ、その値には数秒のタイムラグがあるため、 エンコードをほぼ同時に複数開始すると、複数のエンコードが同じGPUに割り当てられてしまうことが 多いのでご注意ください。
NVEnc の Aviutl から削除するには、"plugins" フォルダ内の下記ファイルとフォルダを削除してください。
- [フォルダ] NVEnc_stg
- [ファイル] NVEnc.auo
- [ファイル] NVEnc.conf (存在する場合のみ)
- [ファイル] NVEnc(.ini)
- [ファイル] auo_setup.auf
現在、日本語、英語、中国語の切り替えに対応しています。
中国語については、Aviutlの中国語対応をされているNsyw様に翻訳いただきました。メッセージ量の多い中、ご対応いただき、ありがとうございました!
他の言語については、NVEnc.auoと同じフォルダに下記2ファイルを置くことで、新たな言語を追加できます。
ファイル名 | 翻訳元 |
---|---|
NVEnc.<2文字の言語コード>.lng | NVEnc.ja.lng |
NVEnc.<2文字の言語コード>.ini | NVEnc.ja.ini |
いずれもUTF-8で保存してください。