Video Encoding
Download
Report
Transcript Video Encoding
Volar Video
a video encoding project
Our Customer
Volar Video in downtown lex
Specialize in live event streaming
Architect the software to make that
happen
Team Members
Implement h.264 encoder for Nvidia CUDA
and Nvidia NVENC
Sam Morris: CUDA
Derek Buchanan: NVENC
SDKs for the Volar client API
Steven Hornung
Anthony Saunders
Project Overview
Problem:
Current video encoding is performed through software and
executed solely on the CPU. Doing so causes CPU to idle at
60% while encoding 720p video on a modern i7 processor.
Solution:
Implement an h.264 video encoder
Two proposed encoding methods:
Nvidia NVCUVID(general GPU computing)
Nvidia NVENC(dedicated VE hardware)
Create a command line interface
Gather performance metrics for analysis and comparison
between the two
Production Truck
Hardware Requirements
Kepler-based GPU, GTX 760+ (NVENC)
G8x or higher GPU(NVCUVID)
Lots of RAM
Windows, Linux(optional)
Libraries (ffmpeg...)
Video Encoding
Video encoding is...
analog to digital signal processing
compression
performed by a 'codec'
very processor intensive
h.264(MPEG-4) advanced video coding
Most common video compression
formats
~2:1 compression ratio
Blu-ray, vimeo,youtube,itunes store
Nvidia NVCUVID
a video codec sdk
Allows programmer
to parallelize video
encoding across
PEs on GPU
Nvidia NVENC
NVENC enables software developers to
access the high-performance H.264
hardware video encoder introduced in
Kepler-class NVIDIA GPUs
By dedicating hardware to the encoding
task, it also frees up CUDA cores and/or the
CPU to be used for other compute-intensive
tasks.
This hardware encoder is designed to
encode 1080p video at 240 fps