PipeWire 0.3 multimedia server available, replacing PulseAudio

Published significant project release PipeWire 0.3.0, which develops a new generation multimedia server that replaces PulseAudio. PipeWire extends PulseAudio with video streaming, low-latency audio processing, and a new security model for per-device and per-stream access control. The project is maintained on GNOME and is already actively used on Fedora Linux for screencasting and screen sharing in Wayland-based environments. The project code is written in C language and spreads licensed under LGPLv2.1.

All changes in PipeWire 0.3:

  • The thread processing scheduler has been completely redesigned. The changes made it possible to launch a layer to ensure compatibility with the JACK sound server, the performance of which is comparable to JACK2.
  • Reworked and declared stable API. All further changes to the API are planned to be made without breaking backward compatibility with existing applications.
  • A session manager is included that allows you to manage the graph of multimedia nodes in PipeWire, as well as add new streams. So far, the manager only provides the simplest set of basic functions and in the future will be expanded or replaced with a more functional and flexible option, such as WirePlumber.
  • The included libraries have been improved to be compatible with PulseAudio, JACK, and ALSA, allowing PipeWire to be used with existing applications designed to work with other sound systems. The library for ALSA is almost ready, but the libraries for JACK and PulseAudio still need to be improved. PipeWire is not yet ready to fully replace PulseAudio and JACK, but compatibility issues will be a priority in future releases.
  • Some GStreamer plugins are included for interacting with PipeWire. The pipewiresrc plugin, which uses PipeWire as the sound source, works without problems in most situations. The pipewiresink plugin for audio output via PipeWire is not yet without some known problems.
  • PipeWire 0.3 support integrated to the Mutter window manager developed by the GNOME project.

Recall that PipeWire extends the scope of PulseAudio by processing any multimedia streams and is able to mix and redirect video streams. PipeWire also provides options for managing video sources such as video capture devices, webcams, or screen content displayed by applications. For example, PipeWire allows multiple applications to work together with a webcam and solves problems with secure screen capture and remote screen sharing in the Wayland environment.

PipeWire can also act as a sound server providing low latency and combining functionality PressAudio ΠΈ JACK, including taking into account the needs of professional audio processing systems, which PulseAudio could not claim. In addition, PipeWire offers an advanced security model that allows you to manage access on a per-device and per-stream basis, making it easier to route audio and video from and to isolated containers. One of the main goals is to support self-contained applications in the Flatpak format and work in the Wayland-based graphics stack.

All possibilities:

  • Capture and playback audio and video with minimal delays;
  • Tools for processing video and sound in real time;
  • Multi-process architecture that allows sharing content of several applications;
  • Processing model based on a graph of multimedia nodes with support for feedback loops and atomic updates of the graph. It is allowed to connect handlers both inside the server and external plugins;
  • Efficient interface for accessing video streams via file descriptors and accessing audio via shared ringbuffer;
  • Ability to process multimedia data from any processes;
  • The presence of a plugin for GStreamer to simplify integration with existing applications;
  • Support for isolated environments and Flatpak;
  • Support for plugins in the format SPA (Simple Plugin API) and the ability to create plug-ins that work in hard real time;
  • Flexible system for negotiating used multimedia formats and buffer allocation;
  • Using a single background process to route audio and video. Ability to work as a sound server, a hub for providing video to applications (for example, for the gnome-shell screencast API) and a server for controlling access to video capture hardware devices.

Source: opennet.ru

Add a comment