Linux Apps

PipeWire – Improved Audio & Video Handling on Linux

PipeWire – Improved Audio & Video Handling on Linux
Written by Martins D. Okoi

PipeWire is a free and open source application created by Wim Taymans who works as the Principal Engineer at Red Hat and is the co-creator of the GStreamer multimedia framework.

It has been built from scratch with a particular focus on supporting Wayland and Flatpak in a bid to modernize audio and video processing. This includes support for single frame screenshots, screen capture, local desktop recording to video, and maybe even native casting of Wayland desktops to TVs and Monitors!

According to project’s website, its aim is to

greatly improve handling of audio and video under Linux. It aims to support the usecases currently handled by both PulseAudio and Jack and at the same time provide same level of powerful handling of Video input and output.

RedHat RHCSA and RHCE Certification Exam Study Ebook

It also introduces a security model that makes interacting with audio and video devices from containerized applications easy, with supporting Flatpak applications being the primary goal. Alongside Wayland and Flatpak we expect PipeWire to provide a core building block for the future of Linux application development.

Features in PipeWire

  • FOSS: Free to download and use with source code available on GitHub.
  • Excellent audio and video playback with minimal latency.
  • Real-time audio and video multiprocessing.
  • Multiprocess architecture: applications can share multimedia content.
  • Support for GSTreamer plugins to allow for widespread app integration.
  • Support for sandboxed applications e.g. Flatpak.
  • Excellent audio and video capture.
  Musique - A Music Player for a Unique Listening Experience

In this blog post, Christian explains that PipeWire introduces a security model that facilitates easier interactions between audio and video devices from sandboxed apps; and with the way Flatpak and other container models are taking over the market, this does seem like a win-win situation.

Installation and Documentation

At the time of writing PipeWire is not readily available for installation on most distros but you can work around that by grabbing its source code from GitHub and compiling from source or installing either of the packages made for Fedora 27 and Fedora Rawhide.

To clone the repo from GitHub use the code below:

$ git clone https://github.com/PipeWire/pipewire.git

Next, using the Meson build system, enter the following commands:

$ ./autogen.sh --prefix=$PREFIX
$ make
$ make install

The $PREFIX is commonly set to /usr or /usr/local.

Now, test run the PipeWire server from the source directory with the command:

$ make run

If you want to test its video capture and display with SDL from the source directory, use:

$ SPA_PLUGIN_DIR=build/spa/plugins PIPEWIRE_MODULE_DIR=build  build/src/examples/export-sink

You can play around with the other examples as well.

Remember that if you don’t set the correct environment variables as shown above the plugins and modules won’t be found.

Check for a collection of useful pages on PipeWire on its wiki page and its API documentation here.

  Gnome Pomodoro - A Timer to Help Increase Your Productivity

Clearly, it takes quite a hassle to get PipeWire running on your system, but sooner or later installation will no longer be an issue.

If you are able to get on with the installation don’t forget to share your usage experience with us in the comments section below.

Join Our Community Of 250,000+ Linux Lovers by liking us on Facebook, or follow us on Twitter, Google+ and Instagram.

If you liked this article, sign up for the fossmint newsletter for handpicked selection of stories from FossMint delivered to your inbox every day.


Top Deals

About the author

Martins D. Okoi

Martins Jr. (Dillivine) Okoi is a graduate of Computer Science with a passion for Linux and the Open Source community. He works as a Web designer & developer, technical writer, and programmer.

Show Buttons
Hide Buttons