Getting Your Hands Dirty with Video Output on Linux Using C++ (froscon2025) episode artwork

EPISODE · Aug 16, 2025 · 51 MIN

Getting Your Hands Dirty with Video Output on Linux Using C++ (froscon2025)

from Chaos Computer Club - recent events feed · host Hermann Voßeler, mebenn

Most people will use some video app to obtain video output on Linux. But video output is still generally steeped in mystery and viewed as a magic blackbox among the Linux community. However the Lumiera team were confronted with having to examine the magic blackbox themselves. In this talk we demonstrate several well established mechanisms that can be used to display video frames from a Linux desktop application. We explain the technical prerequisites to display video frames, discuss the challenges and we show some widely available technologies used to implement video display. Lumiera is a video editing application under development in C++ — which we use here to illustrate how raw video output is at the heart of a video processing render engine. Most video formats are compressed and packed into containers for performance and storage reasons. To edit a video it is essential to use a video in a raw format as a sequence of individual frames. Raw video is processed as buffers filled with pixel data. The pixels are encoded with respect to some colour space, and there are a variety of standard mechanisms available, which will be discussed in the talk. Handling raw video requires to access, process and transfer an enormous amount of data. While modern CPUs are more than capable of managing such tasks in real time, modern special purpose hardware (GPU) is geared towards mastering these steps with precision and speed. The downside is obviously that addressing the GPU requires hardware specific programming, i.e., slightly different software implementations for the various GPUs on the market. Fortunately the variations of the hardware implementations can be accommodated by a software stack comprising vendor specific micro code, a driver in the kernel, and several layers of adaptor libraries in userland. For this talk we focus on displaying direct video output from a C++ application that uses some long and well established standard frameworks that are widely available not only on GNU/Linux, but on various Unix flavours: XVideo SDL OpenGL Vulkan X Window System (aka X11, X) is a graphics protocol most widely used on Linux and even older than Linux itself. It has several implementations, e.g., Xorg server. There is an extension to X to accommodate video output which is capable of using video hardware to achieve optimum output while not taxing the CPU. This is known as the X Video Extension (aka "Xv"). The X protocol specifies only primitive drawing features, so in addition to using X other graphic layers can be used that provide the user with more high-level graphic tools: OpenGL and Vulkan. In this talk we would like to present a bare-bone application in C++ to play and display a sequence of raw video frames to illuminate the various aforementioned frameworks. Licensed to the public under http://creativecommons.org/licenses/by/4.0 about this event: https://programm.froscon.org/2025/events/3316.html

Most people will use some video app to obtain video output on Linux. But video output is still generally steeped in mystery and viewed as a magic blackbox among the Linux community. However the Lumiera team were confronted with having to examine the magic blackbox themselves. In this talk we demonstrate several well established mechanisms that can be used to display video frames from a Linux desktop application. We explain the technical prerequisites to display video frames, discuss the challenges and we show some widely available technologies used to implement video display. Lumiera is a video editing application under development in C++ — which we use here to illustrate how raw video output is at the heart of a video processing render engine. Most video formats are compressed and packed into containers for performance and storage reasons. To edit a video it is essential to use a video in a raw format as a sequence of individual frames. Raw video is processed as buffers filled with pixel data. The pixels are encoded with respect to some colour space, and there are a variety of standard mechanisms available, which will be discussed in the talk. Handling raw video requires to access, process and transfer an enormous amount of data. While modern CPUs are more than capable of managing such tasks in real time, modern special purpose hardware (GPU) is geared towards mastering these steps with precision and speed. The downside is obviously that addressing the GPU requires hardware specific programming, i.e., slightly different software implementations for the various GPUs on the market. Fortunately the variations of the hardware implementations can be accommodated by a software stack comprising vendor specific micro code, a driver in the kernel, and several layers of adaptor libraries in userland. For this talk we focus on displaying direct video output from a C++ application that uses some long and well established standard frameworks that are widely available not only on GNU/Linux, but on various Unix flavours: XVideo SDL OpenGL Vulkan X Window System (aka X11, X) is a graphics protocol most widely used on Linux and even older than Linux itself. It has several implementations, e.g., Xorg server. There is an extension to X to accommodate video output which is capable of using video hardware to achieve optimum output while not taxing the CPU. This is known as the X Video Extension (aka "Xv"). The X protocol specifies only primitive drawing features, so in addition to using X other graphic layers can be used that provide the user with more high-level graphic tools: OpenGL and Vulkan. In this talk we would like to present a bare-bone application in C++ to play and display a sequence of raw video frames to illuminate the various aforementioned frameworks. Licensed to the public under http://creativecommons.org/licenses/by/4.0 about this event: https://programm.froscon.org/2025/events/3316.html

NOW PLAYING

Getting Your Hands Dirty with Video Output on Linux Using C++ (froscon2025)

0:00 51:53

No transcript for this episode yet

We transcribe on demand. Request one and we'll notify you when it's ready — usually under 10 minutes.

LIGHTS, CAMERA, SMILE! Creatives Club Media Lights, Camera, Smile, is a podcast for anyone with a dream to share something with the world, out of the overflow of themselves - be it their mind, their heart, their personalities, and much more. Each of us are alive in this moment in time, with an innate ability to have ideas and create various things to benefit both ourselves and the people around us for a reason, and here, you will find the encouragement, the inspiration, and the motivation to do just that. Hosted by Cicily, founder of Creatives Club, she dives into various topics surrounding creativity and business. Exploring entrepreneurship for creatives in a corporate reality, sharing tips and tricks in a media centered company, answering questions regarding what a creative actually is are just a few of the things discussed on this podcast. Be encouraged to create for yourself as Cicily gets vulnerable by pivoting the camera to herself for the first time.To submit questions for Cicily to answer, or have her address certain t The PFN Cincinnati Bengals Podcast Pro Football Network The PFN Cincinnati Bengals Podcast is where you can stay up-to-date with the latest news and analysis on the Cincinnati Bengals! Our hosts, industry experts Jay Morrison and Dallas Robinson, provide weekly coverage of all the latest rumors and updates about the Bengals. Don’t forget to follow the show to receive new episodes directly in your podcast feed and leave a rating and review to let us know your thoughts. Piramidi Club The Bitcoin Butcher La Migliore Pizza di Firenze IT IS WHAT IT IS with SHALLZ - SHALLY ZOMORODI Shally Zomorodi What?  "It is what it is" with ShallZ – Shally ZomorodiWhen? WeeklyHow long? 35 minutesEvery week, Mother of 4, wife, morning TV news anchor and ultimate hostess, Shally Zomorodi talks about life - its up's and downs and how to stay on track in her weekly podcast, ‘It is what it is.’  Known for her high energy, infectious smile and ability to see the cup as half full Shally talks about all things in life and how to work through its challenges. From parenting, marriage, friendships, current events to how to smile when it just seems impossible ‘It is what it is’ is the perfect podcast to help inspire you to dance through the rain.

Frequently Asked Questions

How long is this episode of Chaos Computer Club - recent events feed?

This episode is 51 minutes long.

When was this Chaos Computer Club - recent events feed episode published?

This episode was published on August 16, 2025.

What is this episode about?

Most people will use some video app to obtain video output on Linux. But video output is still generally steeped in mystery and viewed as a magic blackbox among the Linux community. However the Lumiera team were confronted with having to examine...

Can I download this Chaos Computer Club - recent events feed episode?

Yes, you can download this episode by clicking the download button on the episode player, or subscribe to the podcast in your preferred podcast app for automatic downloads.
URL copied to clipboard!