Представлен выпуск мультимедийного сервера PipeWire 1.6.0 (кодовое название Penicillin) для обработки аудио- и видеопотоков в Linux. Новая версия является API- и ABI-совместимой с предыдущей веткой 1.4.x. Выпуск стабильной версии PipeWire 1.0 произошёл в ноябре 2023 года. Проект написан на языке C и распространяется под лицензией MIT. Версия PipeWire 1.4 (Ambassador) вышла в марте 2025 года.

Проект PipeWire позиционируется разработчиками как сервер, идущий на смену звуковому серверу PulseAudio и отличается от него добавлением средств для работы с потоками видео, возможностью обработки звука с минимальными задержками и новой моделью безопасности для управления доступом на уровне отдельных устройств и потоков.

Сервер PipeWire поддерживается в GNOME, а также по умолчанию используется в Fedora Linux, RHEL, Ubuntu, SUSE/openSUSE и многих других дистрибутивах Linux.

Проект PipeWire предоставляет возможности для обработки любых мультимедийных потоков, способен смешивать и перенаправлять потоки с видео, может применяться для управления источниками видео, такими как устройства захвата, веб‑камеры или выводимое приложениями содержимое экрана. PipeWire даёт возможность организовать совместную работу нескольких приложений с веб‑камерой и решает проблемы с безопасным захватом содержимого экрана и удалённым доступом к экрану в окружении Wayland.

Решение PipeWire может выступать в роли звукового сервера, обеспечивающего минимальные задержки и предоставляющего функциональность, комбинирующую возможности PulseAudio и JACK, в том числе учитывающую потребности систем профессиональной обработки звука (в отличие от PulseAudio).

Также PipeWire предлагает расширенную модель безопасности, позволяющую управлять доступом на уровне отдельных устройств и конкретных потоков, и упрощающую организацию проброса звука и видео из изолированных контейнеров и в них. Одной из главных целей проекта является поддержка самодостаточных приложений в формате Flatpak и работа в графическом стеке на базе Wayland.

По информации OpenNET, основные изменения и дополнения в PipeWire 1.6.0:

  • добавлен декодировщик для звукового кодека LDAC, применяемого для передачи высококачественного звука поверх Bluetooth. Для декодирования задействована библиотека libldac;

  • добавлена опция bluez5-plc‑spandsp для компенсации потери пакетов при передаче звука поверх Bluetooth, используя возможности библиотеки SpanDSP;

  • добавлена безопасная реализация функций разбора и создания сериализированных объектов в формате POD (Plain Old Data) в разделяемой памяти;

  • реализована возможность передачи через метаданные информации о поддержке узлами PipeWire дополнительных возможностей (features), что может использоваться для синхронизации использования расширенной функциональности, такой как поддержка операции RELEASE;

  • добавлена поддержка прикрепления дополнительных пользовательских данных в передаваемые между узлами команды и события;

  • реализованы дополнительные вспомогательные функции для создания и разбора форматов сжатия;

  • выставляемый по умолчанию лимит на максимальное число каналов увеличен до 128. Добавлена возможность переопределения данного лимита на этапе компиляции;

  • добавлена настройка audio.layout для выставления схемы многоканального объёмного звука (например, «audio.layout = 5.1») без необходимости перечисления позиции каналов («audio.position = [ FL, FR, FC, LFE, SL, SR ]»);

  • добавлен механизм Capability Params для согласования возможностей линка на стадии до определения формата и буферов;

  • добавлена поддержка новых типов цветового представления (colortype) для HDR;

  • в циклах обработки событий реализована поддержка блокировок с инверсией приоритетов, предотвращающих ситуации, когда высокоприоритетному потоку приходится ждать освобождения блокировки, выставленной низкоприоритетным потоком. Для синхронизации состояния между потоками вместо epoll и eventfd задействованы легковесные блокировки;

  • добавлена поддержка определения позиции канала через разбор данных EDID;

  • обеспечена передача в подсистему ALSA карты каналов объёмного звука (какой канал справа, какой слева и тому подобное);

  • внесено множество улучшений, связанных с Bluetooth, RTP (Real‑time Transport Protocol) и AVB (Audio Video Bridging);

  • продолжена работа над реализацией сетевого протокола Milan для передачи мультимедийных данных в режиме реального времени;

  • в систему изменения частоты дискретизации (resampler) добавлена поддержка настраиваемых функций подавления искажений, таких как Blackman и Kaiser. Для повышения точности расчёта фаз задействованы вычисления с фиксированной запятой;

  • предоставлена возможность применения в графе узлов звуковых фильтров FFmpeg и AI‑моделей для обработки звука на базе ONNX, таких как детектор голоса Silero;

  • прекращена поддержка клиентов, использующих протокол v0, применявшийся в ранних версиях PipeWire;

  • в модуль jack‑tunnel добавлена поддержка автоматического подключения портов;

  • для системы потокового вещания ROC реализована поддержка многотрековых раскладок;

  • предоставлена возможность изменения лимитов на ресурсы (rlimit) через файл конфигурации;

  • добавлено свойство thread.reset‑on‑fork для управления сбросом потоков при вызове fork. Для клиентов JACK для повторения поведения JACK можно отключать сброс потоков через выставление «thread.reset‑on‑fork=false»;

  • добавлен флаг node.exclusive, который гарантирует, что у порта имеется только один источник и один потребитель, что необходимо для реализации механизма Explicit Sync;

  • добавлен флаг node.reliable для режима гарантированной доставки;

  • в утилиту pw‑cat добавлена поддержка MIDI‑сообщений SysEx (System Exclusive, для настройки синтезаторов), контейнера midiclip и форматов звука без сжатия. Добавлены опции для выставления форматов звуковых контейнеров и кодеков, а также просмотра списка поддерживаемых контейнеров, кодеков, раскладок объёмного звука и имён каналов.