Home

Awesome

NVEnc

by rigaya

日本語版はこちら>> 简体中文版本>>

Build Windows Releases Build Linux Packages

This software is meant to investigate performance and image quality of HW encoder (NVENC) of NVIDIA. There are 2 types of software developed, one is command line version that runs independently, and the nother is a output plug-in of Aviutl.

Downloads & update history

rigayaの日記兼メモ帳>>
github releases

Install

Install instructions for Windows and Linux

Build

Build instructions for Windows and Linux

System Requirements

Windows 10/11 (x86 / x64)
Linux (x64/aarch64)
Aviutl 1.00 or later (NVEnc.auo)
Hardware which supports NVENC
NVIDIA GPU GeForce Kepler gen or later (GT / GTX 6xx or later)
※ Since GT 63x, 62x etc. are renames of the Fermi generation, they cannot run NVEnc.

NVEncSupported NVENC APIRequired graphics driver version
NVEnc 0.00 or later4.0NVIDIA graphics driver 334.89 or later
NVEnc 1.00 or later5.0NVIDIA graphics driver 347.09 or later
NVEnc 2.00 or later6.0NVIDIA graphics driver 358 or later
NVEnc 2.08 or later7.0NVIDIA graphics driver 368.69 or later
NVEnc 3.02 or later7.0NVIDIA graphics driver 369.30 or later
NVEnc 3.08 or later8.0NVIDIA graphics driver 378.66 or later
NVEnc 4.00 or later8.1NVIDIA graphics driver 390.77 or later
NVEnc 4.31 or later9.0NVIDIA graphics driver 418.81 or later
NVEnc 4.51 or later9.1NVIDIA graphics driver 436.15 or later
NVEnc 5.10 or later9.0 - 10.0NVIDIA graphics driver 418.81 or later
NVEnc 5.18 or later9.0 - 11.0NVIDIA graphics driver 418.81 or later
NVEnc 5.24 or later9.0 - 11.0NVIDIA graphics driver 418.81 or later (x64) <br> NVIDIA graphics driver 456.81 or later (x86)
NVEnc 5.36 or later9.0 - 11.1NVIDIA graphics driver 418.81 or later (x64) <br> NVIDIA graphics driver 456.81 or later (x86)
NVEnc 7.00 or later9.0 - 12.0NVIDIA graphics driver 418.81 or later (x64) <br> NVIDIA graphics driver 456.81 or later (x86)
NVEnc 7.26 or later9.0 - 12.1NVIDIA graphics driver 418.81 or later (x64) <br> NVIDIA graphics driver 456.81 or later (x86)
NVEnc 7.49 or later9.0 - 12.2NVIDIA graphics driver 418.81 or later (x64) <br> NVIDIA graphics driver 456.81 or later (x86)
Supported NVENC APIRequired graphics driver version
9.0NVIDIA graphics driver (Win 418.81 / Linux 418.30) or later
9.1NVIDIA graphics driver (Win 436.15 / Linux 435.21) or later
10.0NVIDIA graphics driver (Win 445.87 / Linux 450.51) or later
11.0NVIDIA graphics driver (Win 456.71 / Linux 455.28) or later
11.1NVIDIA graphics driver (Win 471.41 / Linux 470.57.02) or later
12.0???
12.1NVIDIA graphics driver (Win 531.61 / Linux 530.41.03) or later
12.2NVIDIA graphics driver (Win 551.76 / Linux 550.54.144) or later
CUDA versionRequired graphics driver version
10.1NVIDIA graphics driver (Win 418.96 / Linux 418.39) or later
10.2.89NVIDIA graphics driver (Win 440.33 / Linux 441.22) or later
11.0.2NVIDIA graphics driver (Win 451.48 / Linux 450.51.05) or later
11.0.3NVIDIA graphics driver (Win 451.82 / Linux 450.51.06) or later
11.1.0NVIDIA graphics driver (Win 456.38 / Linux 455.23) or later
11.1.1NVIDIA graphics driver (Win 456.81 / Linux 455.32) or later
11.2NVIDIA graphics driver (Win 460.89 / Linux 460.27.04) or later

Usage and options of NVEncC

Option list and details of NVEncC

Examples of supported encode features

Result of --check-features, a feature list returned from the driver. May depend on the driver version.

GPU GenWindowsLinux
KeplerGTX660TiTesla K80
MaxwellGTX970Tesla M80
PascalGTX1080, GTX1070, GTX1060, GTX1050TiGTX1080
VoltaGTX1650
TuringRTX2070, RTX2060, GTX1660Ti, GTX1650 SuperTesla T4, Tesla T4G @ aarch64
AmpereRTX3090, RTX3080, RTX3050Ti
Ada LovelaceRTX4090, RTX4080

Precautions for using NVEnc

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND.

Main usable functions

Common to NVEnc / NVEncC

NVEncC

NVEnc.auo (Aviutl plugin)

NVEnc.auo

Auto GPU selection in multi GPU envinronment

NVEncC will automatically select a GPU depending on the options used, when there are multiple GPUs available which support NVENC. --device option can be used to specify on which GPU to run manually.

  1. Select GPU which supports...
    Items below will be checked whether the GPU supports it or not
  1. Prefer GPU which supports...
  1. If there are multiple GPUs which suports all the items checked in 1. and 2., GPU below will be prefered.

The purpose of selecting GPU with lower VE/GPU ulitization is to assign tasks to mulitple GPUs and improve the throughput of the tasks. Also, newer Gen GPU and GPU with more cores are assumed to have improved performance.

Please note that VE and GPU ulitization are check at the initialization pahse of the app, and there are delays in values taken. Therefore, it is likely that the multiple tasks started at the same time to run on the same GPU, and divided into multiple GPUs, even if the options are supported in every GPUs.

NVEnc source code

About source code

Windows ... VC build

Character code: UTF-8-BOM
Line feed: CRLF
Indent: blank x4