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