A comprehensive set of APIs for hardware accelerated video encode and decode on Windows and Linux.


NVIDIA Video Codec SDK technology is used to stream video to Twitch with NVIDIA ShadowPlay

 

The Video Codec SDK includes a complete set of high-performance tools, samples and documentation for hardware accelerated video encode and decode on Windows and Linux. The SDK consists of two hardware acceleration interfaces: NVENCODE API for video encode acceleration and NVDECODE API (formerly called NVCUVID API) for video decode acceleration.


Download Video Codec SDK 7.0

Windows/Linux

License Agreement - By downloading the SDK, you agree to be bound by the Terms and Conditions detailed in the SOFTWARE DEVELOPER KITS, SAMPLES AND TOOLS LICENSE AGREEMENT.

Join the NVIDIA Developer Program

Get access to the latest software releases and tools and receive notifications and invites to join special developer events, early access programs and educational webinars. The program is free-to-join and open to all developers.

Sign up now!

 

What’s new in Video Codec SDK 7.0

  • HEVC 8K (8192 pixels x 8192 pixels) encoding *
  • HEVC 4:4:4 encoding *
  • HEVC 10-bit encoding *
  • HEVC lossless encoding *
  • HEVC Sample Adaptive Offset (SAO) *
  • HEVC Motion-Estimation-(ME)-only mode *
  • HEVC (up to 8K) decoding *
  • VP9 (up to 8K) decoding *
  • HEVC long term reference (LTR) frame support
  • Asynchronous H.264 Motion-Estimation-(ME)-only mode
  • Look-ahead
  • Improved H.264 spatial adaptive quantization
  • H.264 temporal adaptive quantization
  • Rate control and quality improvements

* These features require Pascal generation GPUs.
Release Date: July 18, 2016

Operating System Windows 7, 8, 10, Server 2008 R2, Server 2012, and Linux
Dependencies NVENCODE API - NVIDIA Quadro, Tesla, GRID or GeForce products with Kepler, Maxwell and Pascal generation GPUs.

NVDECODE API - NVIDIA Quadro, Tesla, GRID or GeForce products with Fermi, Kepler, Maxwell and Pascal generation GPUs.

See full list of supported GPUs See Codec Support Matrix

NVIDIA Linux display driver 367.35 or newer
NVIDIA Windows display driver 368.69 or newer


DirectX SDK (Windows only) Optional: CUDA toolkit 7.5
Development Environment Windows: Visual Studio 2010/2013/2015
Linux: gcc 4.8 or higher
 

Key Features of Video Codec SDK

Hardware-Accelerated H.264 and HEVC (H.265) Video Encoding

NVIDIA Products with the Kepler, Maxwell and Pascal generation GPUs contain a dedicated accelerator for video encoding, called NVENC, on the GPU die.

NVENCODE API enables software developers to configure this dedicated hardware video encoder. This dedicated accelerator encodes video at higher speeds and power efficiency than CUDA-based or CPU-based encoders at equivalent quality. NVENCODE API allows the programmer to control various settings of the encoder to set the desired tradeoff between quality and performance.

While using the dedicated hardware for encode or decode, the GPU’s CUDA cores and system CPU are free to run other compute-intensive tasks.


NVENC Hardware Block Diagram

 

Hardware-Accelerated Video Decoding

NVIDIA Products with Fermi, Kepler, Maxwell and Pascal generation GPUs contain a dedicated accelerator for video decoding, called NVDEC, on the GPU die.

NVDECODE API enables software developers to configure this dedicated hardware video decoder. This dedicated accelerator supports hardware-accelerated decoding of the following video codecs on Windows and Linux platforms: MPEG-2, VC-1, H.264 (AVCHD), H.265 (HEVC), VP8, VP9 (see table below for codec support for each GPU generation).

For convenience, NVDECODE API documentation and sample applications are also included in the CUDA Toolkit, in addition to the Video Codec SDK.

Note: For Video Codec SDK 7.0, NVCUVID has been renamed to NVDECODE API.

 

Video Codec SDK In Action


Cross-platform solution to record, convert and stream audio and video. Now with NVIDIA Video Hardware Acceleration

  • Hardware acceleration for most popular video and audio framework
  • Leverages FFmpeg’s Audio codec, stream muxing, and RTP protocols
  • Available for Windows, Linux
  • You can now use FFMPEG to accelerate video encoding and decoding using NVENC and NVDEC, respectively.

Get the latest version of FFMPEG from ffmpeg.org.

Learn more about FFMPEG

 

Resources

Whats included in Video Codec SDK?

The Video Codec SDK package includes the following:

Video Encoder API Documentation

Video Decoder API Documentation Sample Applications and Guide
  • SDK Samples Guide
  • Sample applications source code, along with Windows and Linux build files. These samples demonstrate how to use the hardware encoder and decoder.
Video Test Sources
 

Supported GPUs

Video Encode supported GPUs

 

Video Decode supported GPUs

Decode is supported on NVIDIA Quadro, Tesla, GRID or GeForce products with Fermi, Kepler, Maxwell and Pascal generation GPUs. Please refer to Codec Support Matrix for specific codec support.

 

Codec Support Matrix:

Fermi Kepler Maxwell
(GM10X)
Maxwell
(GM20X)
Pascal

H.264 encoding

No

Yes

Yes1

Yes

Yes

HEVC encoding

No

No

No

Yes

Yes

MPEG2, MPEG-4, H.264 decoding

Yes

Yes

Yes

Yes

Yes

HEVC decoding

No

No

No

Yes2

Yes

VP9 decoding

No

No

No

Yes

Yes

1Except GM108 in the Maxwell generation of GPUs, which does not contain any video encoder or decoder HW.
2Only GM206 in the Maxwell generation of GPUs supports hardware accelerated HEVC decoding

 

Developer Forums

Our forum community is where Developers can ask questions, share experiences and participate in discussions with NVIDIA and other experts in the field.
Check out the forums here.

Legacy Versions

Older legacy versions of NVENC SDK and Video Codec SDK are available here.

Additional Resources