Git Product home page Git Product logo

nvenc's Introduction

NVEnc

by rigaya

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

Build status Build Status

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.

  • NVEncC.exe ... Command line version supporting transcoding.
  • NVEnc.auo ... Output plugin for Aviutl.

Downloads & update history

rigayaの日記兼メモ帳>>

System Requirements

Windows 10 (x86 / x64)
Linux (x64)
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.

NVEnc Supported NVENC API Required graphics driver version
NVEnc 0.00 or later 4.0 NVIDIA graphics driver 334.89 or later
NVEnc 1.00 or later 5.0 NVIDIA graphics driver 347.09 or later
NVEnc 2.00 or later 6.0 NVIDIA graphics driver 358 or later
NVEnc 2.08 or later 7.0 NVIDIA graphics driver 368.69 or later
NVEnc 3.02 or later 7.0 NVIDIA graphics driver 369.30 or later
NVEnc 3.08 or later 8.0 NVIDIA graphics driver 378.66 or later
NVEnc 4.00 or later 8.1 NVIDIA graphics driver 390.77 or later
NVEnc 4.31 or later 9.0 NVIDIA graphics driver 418.81 or later
NVEnc 4.51 or later 9.1 NVIDIA graphics driver 436.15 or later
NVEnc 5.10 or later 9.0, 9.1, 10.0 NVIDIA graphics driver 418.81 or later
NVEnc 5.18 or later 9.0, 9.1, 10.0, 11.0 NVIDIA graphics driver 418.81 or later
NVEnc 5.24 or later 9.0, 9.1, 10.0, 11.0 NVIDIA graphics driver 418.81 or later (x64)
NVIDIA graphics driver 456.81 or later (x86)
Supported NVENC API Required graphics driver version
9.0 NVIDIA graphics driver (Win 418.81 / Linux 418.30) or later
9.1 NVIDIA graphics driver (Win 436.15 / Linux 435.21) or later
10.0 NVIDIA graphics driver (Win 445.87 / Linux 450.51) or later
11.0 NVIDIA graphics driver (Win 456.71 / Linux 455.28) or later
CUDA version Required graphics driver version
10.1 NVIDIA graphics driver (Win 418.96 / Linux 418.39) or later
10.2.89 NVIDIA graphics driver (Win 440.33 / Linux 441.22) or later
11.0.2 NVIDIA graphics driver (Win 451.48 / Linux 450.51.05) or later
11.0.3 NVIDIA graphics driver (Win 451.82 / Linux 450.51.06) or later
11.1.0 NVIDIA graphics driver (Win 456.38 / Linux 455.23) or later
11.1.1 NVIDIA graphics driver (Win 456.81 / Linux 455.32) or later
11.2 NVIDIA 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 Gen 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

Precautions for using NVEnc

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

The output from NVEnc may not include the max_dec_frame_buffering field, which might cause problem in some playback environments.

Main usable functions

Common to NVEnc / NVEncC

  • Encoding using NVENC
    • H.264 / AVC
      • YUV420 / YUV444
    • H.265 / HEVC (2nd Gen Maxwell or later)
      • YUV420 / YUV444
      • 10 bits
  • Each encode mode of NVENC
    • CQP (fixed quantization)
    • CBR (Constant bitrate)
    • CBRHQ (Constant bitrate, high quality)
    • VBR (Variable bitrate)
    • VBRHQ (Variable bitrate, high quality)
  • Interlaced encoding (by PAFF)
  • Lossless output (YUV 420 / YUV 444)
  • supports setting of codec profile & level, SAR, colormatrix, maxbitrate, GOP len, etc...

NVEncC

  • Supports cuvid decoding
    • MPEG1
    • MPEG2
    • H.264 / AVC
    • HEVC (10 bit / 12bitdepth with YUV444 support)
    • VC-1
    • VP9
  • Supports various formats such as avs, vpy, y4m, and raw
  • Supports demux/muxing using libavformat
  • Supports decode using libavcodec
  • Calculation of ssim/psnr/vmaf of the encode
  • High performance filtering (VPP, Video Pre-Processing)
    • cuvid built-in hw processing
      • resize
      • deinterlace (normal / bob)
    • GPU filtering by CUDA
      • rff (apply rff flag)
      • deinterlacer
        • afs (Automatic field shift)
        • nnedi
        • yadif
      • decimate
      • mpdecimate
      • colorspace conversion (x64 version only)
        • hdr2sdr
      • delogo
      • subburn
      • resize
        • bilinear
        • spline16, spline36, spline64
        • lanczos2, lanczos3, lanczos4
        • various algorithms by npp library are available (x64 version only)
      • padding
      • select-every
      • deband
      • noise reduction
        • knn (K-nearest neighbor)
        • pmd (modified pmd method)
        • gauss (npp library, x64 version only)
      • edge / detail enhancement
        • unsharp
        • edgelevel (edge ​​level adjustment)

NVEnc.auo (Aviutl plugin)

  • Audio encoding
  • Mux audio and chapter
  • afs (Automatic field shift) support

cufilters.auf (Aviutl plugin)

  • supported filters
    • nnedi
    • resize
    • noise reduction
      • knn (K-nearest neighbor)
      • pmd (modified pmd method)
    • edge / detail enhancement
      • unsharp
      • edgelevel (edge ​​level adjustment)
    • deband

NVEnc source code

  • MIT license.

  • This program is based on NVIDA CUDA Samples and includes sample code. This software contains source code provided by NVIDIA Corporation.

  • This software depends on jitify, ffmpeg, vmaf, tinyxml2, dtl, libass, ttmath & Caption2Ass. For these licenses, please see the header part of the corresponding source and NVEnc_license.txt.

  • How to build

About source code

Windows ... VC build

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

nvenc's People

Contributors

rigaya avatar last-order avatar fawdlstty avatar yckimura avatar narazaka avatar yumetodo avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.