

Figure 2: Transcoding pipeline with FFmpeg using NVIDIA hardware accelerationįFmpeg supports hardware accelerated decoding and encoding via the hwaccel cuda, h264_cuvid, hevc_cuvid and h264_nvenc, hevc_nvenc modules. Figure 2 shows the different elements of the transcoding process with FFmpeg. Hardware acceleration dramatically improves the performance of the workflow. Using the FFmpeg library is common practice when transcoding video data. Figure 1: GPU hardware capabilities Hardware accelerated transcoding with FFmpeg An up-to-date support matrix can be found at the Video Encode and Decode Support Matrix page. Actual support depends on the GPU that is used. Figure 1 lists many of the codecs, format and features supported with current NVIDIA hardware. NVENC and NVDEC support the many important codecs for encoding and decoding. Separate from the CUDA cores, NVENC/NVDEC run encoding or decoding workloads without slowing the execution of graphics or CUDA workloads running at the same time. NVIDIA GPUs ship with an on-chip hardware encoder and decoder unit often referred to as NVENC and NVDEC. Let’s take a look at how NVIDIA GPUs incorporate dedicated video processing hardware and how you can take advantage of it. The massive video content generated on all fronts requires robust hardware acceleration of video encoding, decoding, and transcoding. Video providers want to reduce the cost of delivering more content with great quality to more screens. The ideal solution for transcoding needs to be cost effective in terms of cost (Dollar/stream) and power efficiency (Watts/stream) along with delivering high quality content with maximum throughput for the datacenter. This makes video transcoding a critical piece of an efficient video pipeline – whether it is 1:N or M:N profiles. Content in production may arrive in one of the large numbers of codec formats that needs to be transcoded into another for distribution or archiving. Video content distributed to viewers is often transcoded into several adaptive bit rate (ABR) profiles for delivery. Live streaming will drive overall video data traffic growth for both cellular and Wi-Fi as consumers move beyond watching on-demand video to viewing live streams. All social media applications now include the feature on their respective platforms. Consumer behavior has evolved, evident in the trends of OTT video subscription and the rapid uptake of live streaming. The processing demands from high quality video applications have pushed limits for broadcast and telecommunication networks.

As of July 2019 Kepler, Maxwell, Pascal, Volta and Turing generation GPUs support hardware encoding, and Fermi, Kepler, Maxwell, Pascal, Volta and Turing generation GPUs support hardware decoding. All NVIDIA GPUs starting with the Kepler generation support fully-accelerated hardware video encoding, and all GPUs starting with Fermi generation support fully-accelerated hardware video decoding.
