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 audio-only 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.

Breaking News Show | eTurboNews Juergen Thomas Steinmetz News is relevant to the global travel and tourism industry, human rights and global issues.Breaking news when it happens and only from the source. That Hoarder: Overcome Compulsive Hoarding That Hoarder Hoarding disorder is stigmatised and people who hoard feel vast amounts of shame. This podcast began life as an audio diary, an anonymous outlet for somebody with this weird condition. That Hoarder speaks about her experiences living with compulsive hoarding, she interviews therapists, academics, researchers, children of hoarders, professional organisers and influencers, and she shares insight and tips for others with the problem. Listened to by people who hoard as well as those who love them and those who work with them, Overcome Compulsive Hoarding with That Hoarder aims to shatter the stigma, share the truth and speak openly and honestly to improve lives. HOMELAND HOMELAND The Church is a body not a building. It's the bride of Jesus Christ! Jesus is coming back for a mature bride. That means it's time for the church of Jesus Christ to move from milk to meat. This is the hour of maturity!HOMELAND is an announcement that the church is being set free. Only the church has the ability to transform the world. The kingdom's of this world will become the kingdoms of our Lord and Savior!All of creation has been waiting for this moment! Sons and daughters of God are rising up and taking their seat! 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

Frequently Asked Questions

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

This episode is 51 minutes long.

When was this Chaos Computer Club - recent audio-only 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 audio-only 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!