
Представлен выпуск мультимедийного сервера 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 и форматов звука без сжатия. Добавлены опции для выставления форматов звуковых контейнеров и кодеков, а также просмотра списка поддерживаемых контейнеров, кодеков, раскладок объёмного звука и имён каналов.

