6 марта 2025 года вышел мультимедийный сервер PipeWire 1.4 (Ambassador) для обработки аудио- и видеопотоков в Linux. Релиз стабильной версии PipeWire 1.0 произошёл в ноябре 2023 года. Проект написан на языке C и распространяется под лицензией MIT.
На уровне API и ABI версия PipeWire 1.4 обратно совместима с ветками под номерами 1.2.х и 1.0.х.
Проект PipeWire позиционируется разработчиками как сервер, идущий на смену звуковому серверу PulseAudio и отличается от него добавлением средств для работы с потоками видео, возможностью обработки звука с минимальными задержками и новой моделью безопасности для управления доступом на уровне отдельных устройств и потоков.
Сервер PipeWire поддерживается в GNOME, а также по умолчанию используется в Fedora Linux, RHEL, Ubuntu, Debian, SUSE/openSUSE и многих других дистрибутивах Linux.
Проект PipeWire предоставляет возможности для обработки любых мультимедийных потоков, способен смешивать и перенаправлять потоки с видео, может применяться для управления источниками видео, такими как устройства захвата видео, веб-камеры или выводимое приложениями содержимое экрана. PipeWire даёт возможность организовать совместную работу нескольких приложений с веб-камерой и решает проблемы с безопасным захватом содержимого экрана и удалённым доступом к экрану в окружении Wayland.
Решение PipeWire может выступать в роли звукового сервера, обеспечивающего минимальные задержки и предоставляющего функциональность, комбинирующую возможности PulseAudio и JACK, в том числе учитывающую потребности систем профессиональной обработки звука (в отличие от PulseAudio).
Также PipeWire предлагает расширенную модель безопасности, позволяющую управлять доступом на уровне отдельных устройств и конкретных потоков, и упрощающую организацию проброса звука и видео из изолированных контейнеров и в них. Одной из главных целей проекта является поддержка самодостаточных приложений в формате Flatpak и работа в графическом стеке на базе Wayland.
Основные изменения и дополнения в PipeWire 1.4:
появилась поддержка систем на базе архитектуры RISC‑V, а также внесены ассемблерные оптимизации для данной архитектуры;
добавлена поддержка формата UMP (Universal MIDI Packet), предоставляющего контейнер для сообщений протокола MIDI 2.0. UMP теперь применяется по умолчанию для MIDI1 и MIDI2 в PipeWire.
добавлены функции для преобразования старого формата MIDI в UMP;
добавлена поддержка доставки звука по Bluetooth одновременно нескольким устройствам, используя широковещательные каналы (broadcast link), определённые в профиле BAP (Basic Audio Profile), предоставляющем возможности для управления доставкой звуковых потоков на устройства, использующие Bluetooth LE (Low Energy);
включена собственная реализация JACK‑сервера pipewire_jackserver (Jack Audio Connection Kit), предоставляющего API PipeWire JACK Control;
добавлена поддержка слуховых аппаратов, подключаемых через Bluetooth и соответствующих спецификации ASHA. Для подобных устройств добавлен звуковой кодек G722. Улучшена обработка данных о задержках в Bluetooth‑соединениях;
в плагин для звуковой системы ALSA добавлена поддержка воспроизведения формата DSD (Direct Stream Digital), при его явном указании в свойстве alsa.format;
в resampler добавлена возможность предварительного вычисления на стадии компиляции некоторых фильтров, применяемых при преобразовании частоты дискретизации звукового сигнала;
модуль module‑filter‑chain вынесен в отдельный SPA‑плагин filter‑graph, в который также добавлены плагины EBUR128, param_eq и dcblock, и задействована библиотека fftw для выполнения дискретного преобразования Фурье;
оптимизирован плагин audioconvert, в который добавлена поддержка включения дополнительных фильтров при обработке звука;
добавлена поддержка разделения PCM (Pulse‑Code Modulation) через ALSA UCM (Use Case Manager);
в модуль подавления эха (echo‑cancel) добавлена поддержка протокола WebRTC2;
добавлен плагин преобразования видео videoconvert, основанный на FFmpeg;
в модуль combine‑stream добавлена поддержка микширования потоков;
в утилиту pw‑cat добавлена поддержка стандартного входного и выходного потоков (stdin и stdout);
для pipewire‑pulse добавлен сервис systemd.
Источник новости: habr.com