NVIDIA VIDEO CODEC SDK
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:
NVIDIA GPUs contain one or more hardware-based decoder and encoder(s) (separate from the CUDA cores) which provides fully-accelerated hardware-based video decoding and encoding for several popular codecs. With decoding/encoding offloaded, the graphics engine and the CPU are free for other operations.
GPU hardware accelerator engine for video decoding (referred to as NVDEC) supports faster than real-time decoding which makes it suitable to be used for transcoding applications, in addition to video playback applications.
![](https://developer.nvidia.com/sites/default/files/akamai/designworks/images/VCSDK_001_b.png)
* Diagram represents support for the NVIDIA Pascal GPU family
** 4:2:2 is not natively supported on HW
*** Support is codec dependent
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. GPU Support Matrix NVIDIA Linux display driver 375.20 or newer NVIDIA Windows display driver 375.95 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 |
Get NVIDIA Video Codec SDK
If you are looking to make use of the dedicated decoding/encoding hardware on your GPU in an existing application you can leverage the integration already available in the FFmpeg/libav. FFmpeg/libav should be used for evaluation or quick integration, but it may not provide control over every encoder parameter. NVDECODE and NVENCODE APIs should be used for low-level granular control over various encode/decode parameters and if you want to directly tap into the hardware decoder/encoder. This access is available through the Video Codec SDK.
For application users
![](https://developer.nvidia.com/sites/default/files/akamai/designworks/images/ffmpeg.png)
![](https://developer.nvidia.com/sites/default/files/akamai/designworks/images/libav.png)
Cross-platform solution to record, convert and stream audio and video. Includes NVIDIA Video Hardware Acceleration
- Hardware acceleration for most popular video 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.
For application developers
Download Video Codec SDK 7.1
To download, you must be a member of NVIDIA Developer - DesignWorks.
By clicking the "Agree & Download" button below, you are confirming that you have read and agree to be bound by the SOFTWARE DEVELOPER KITS, SAMPLES AND TOOLS LICENSE AGREEMENT for use of the SDK package. The download will begin immediately after clicking on the "Agree & Download"button below.
Video Codec SDK in Action
NVIDIA GeForce NOW™ is an on-demand service that connects you to NVIDIA’s cloud-gaming supercomputers to stream PC games to your SHIELD device at up to 1080p resolution and 60 frames per second.
NVIDIA GameStream™ technology brings the highest resolution PC gaming to your NVIDIA SHIELD device. It harnesses the power of GeForce® GTX™ graphics cards by accessing encoding APIs using Video Codec SDK to encode your games and cast it from your PC to your SHIELD device.>
Key Features of Video Codec SDK
NVENC - Hardware-Accelerated Video Encoding
NVIDIA GPUs - beginning with the Kepler generation - contain a hardware-based encoder (referred to as NVENC) which provides fully-accelerated hardware-based video encoding and is independent of graphics performance. With complete encoding (which is computationally complex) offloaded to NVENC, the graphics engine and the CPU are free for other operations. For example, in a game recording scenario, encoding being completely offloaded to NVENC makes the graphics engine bandwidth fully available for game rendering.
* Diagram represents support for the NVIDIA Pascal GPU family
** 4:2:2 is not natively supported on HW
GPU | H.264 (AVCHD) YUV 4:2:0 | H.264 (AVCHD) YUV 4:4:4 | H.264 (AVCHD) LOSSLESS | H.265 (HEVC) YUV 4:2:0 | H.265 (HEVC) YUV 4:4:4 | H.265 (HEVC) LOSSLESS | ||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
MAX Color | MAX Res. | MAX Color | MAX Res. | MAX Color | MAX Res. | MAX Color | MAX Res. | MAX Color | MAX Res. | MAX Color | MAX Res. | |
Kepler | 8-bit | 4096 x 4096 | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A |
Maxwell (1st Gen)* | 8-bit | 4096 x 4096 | 8-bit | 4096 x 4096 | 8-bit | 4096 x 4096 | N/A | N/A | N/A | N/A | N/A | N/A |
Maxwell (2nd Gen) | 8-bit | 4096 x 4096 | 8-bit | 4096 x 4096 | 8-bit | 4096 x 4096 | 8-bit | 4096 x 4096 | N/A | N/A | N/A | N/A |
Maxwell (GM206) | 8-bit | 4096 x 4096 | 8-bit | 4096 x 4096 | 8-bit | 4096 x 4096 | 8-bit | 4096 x 4096 | 8-bit | 4096 x 4096 | 8-bit | 4096 x 4096 |
Pascal | 8-bit | 4096 x 4096 | 8-bit | 4096 x 4096 | 8-bit | 4096 x 4096 | 10-bit | 8192 x 8192** | 10-bit | 8192 x 8192** | 10-bit | 8192 x 8192** |
* Except GM108
** Except GP100 (is limited to 4K resolution)
Performance: 5X Increase over x264(CPU)
![](https://developer.nvidia.com/sites/default/files/akamai/designworks/images/VidEncode_001_b.png)
Performance represents measured average performance and quality of different classes of videos (camcorder, gaming, screen, synthetic, and telepresence). Performance may vary based on OS and software versions, and motherboard configuration.
NVDEC - Hardware-Accelerated Video Decoding
NVIDIA GPUs contain a hardware-based decoder (referred to as NVDEC) which provides fully-accelerated hardware-based video decoding for several popular codecs. With complete decoding offloaded to NVDEC the graphics engine and the CPU are free for other operations. NVDEC supports much faster than real-time decoding which makes it suitable to be used for transcoding applications, in addition to video playback applications.
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).
* Diagram represents support for the NVIDIA Pascal GPU family
** 4:2:2 is not natively supported on HW
GPU | H.265 (HEVC) | H.264 (AVCHD) | VP9 | VP8 | MPEG-2 | VC-1 | ||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
MAX Color | MAX Res. | MAX Color | MAX Res. | MAX Color | MAX Res. | MAX Color | MAX Res. | MAX Color | MAX Res. | MAX Color | MAX Res. | |
Kepler | N/A | N/A | 8-bit | 4096 x 4096 | N/A | N/A | N/A | N/A | 8-bit | 4080 x 4080 | 8-bit | 2048 x 1024 |
Maxwell (1st Gen) | N/A | N/A | 8-bit | 4096 x 4096 | N/A | N/A | N/A | N/A | 8-bit | 4080 x 4080 | 8-bit | 2048 x 1024 |
Maxwell (2nd Gen) | N/A | N/A | 8-bit | 4096 x 4096 | N/A | N/A | 8-bit | 4096 x 4096 | 8-bit | 4080 x 4080 | 8-bit | 2048 x 1024 |
Maxwell (GM206) | 10-bit* | 4096 x 2304 | 8-bit | 4096 x 4096 | 8-bit | 4096 x 2304 | 8-bit | 4096 x 4096 | 8-bit | 4080 x 4080 | 8-bit | 2048 x 1024 |
Pascal | 12-bit* | 8192 x 8192** | 8-bit | 4096 x 4096 | 12-bit**** | 8192 x 8192** | 8-bit | 4096 x 4096*** | 8-bit | 4080 x 4080 | 8-bit | 2048 x 1024 |
* HEVC/VP9 10/12 bit decoding SW support coming in Video Codec SDK 8.0
** Max resolution support is limited to selected Pascal chips
*** VP8 decode support is limited to selected Pascal chips
**** VP9 10/12 bit decode support is limited to select Pascal chips
Performance
![](https://developer.nvidia.com/sites/default/files/akamai/designworks/images/VidDecode_001.png)
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.
Direct API access via Video Codec SDK
INPUT
There are two methods to allocate and pass input buffers to the video encoder.
- Input buffers allocated through NVIDIA Video Encoder Interface (CPU pointer)
- Input buffers allocated externally (Mapped Resource)
The source content can be:
- 8-bit YUV 4:2:0 sequence
- 10-bit YUV 4:2:0 sequence
- ARGB input
For more information refer to the NVIDIA Decoder (NVDEC) Programming Guide
OUTPUT
Upon completion of the encoding process for an input picture, the client gets a CPU pointer to the encoded bit stream. The client can make a local copy of the encoded data or pass the CPU pointer for further processing (e.g. to a media file writer).
The output can be:
- H.264 (HACV) bit stream
- H.264 Motion Estimation (ME) - Macro-block level motion vectors and intra/inter modes
- H.265 (HEVC) bit stream
- HEVC Motion Estimation (ME) - CTB level motion vectors and intra/inter modes
- 8K (8192 x 8192) H.265 (HEVC) bit stream
For more information refer to the NVIDIA Encoder (NVENC) Programming Guide
Code Samples
- 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.
Documentation
- NVEncode API Reference Manual: PDF Format, CHM Format
- NVEncode Programming Guide
- NVDecode Programming Guide
- NVEncode Spec Sheet
- NVDecode Spec Sheet
- Viceo Codec SDK Samples Guide
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
'4K, 8K UHDTV' 카테고리의 다른 글
HDR 성능 수준을 명확히하는 DisplayHDR Spec (1) | 2017.12.12 |
---|---|
2018 년의 4K / 8K 실제 방송에서 CAS는 어떻게됩니까? 이름은 ACAS 카드 대신 IC 칩에 (0) | 2017.09.19 |
UHD 101: DEMYSTIFYING 4K, UHD BLU RAY, WIDE COLOR GAMUT, HDR, 4:4:4, 18GBPS AND THE REST! (0) | 2016.09.27 |
VIZIO P50-C1 Model Information (1) | 2016.06.24 |
2016 KOBA - 한국 지상파 방송 UHD HDR 시험방송 시연 (1) | 2016.05.27 |