26 ноября 2023 года Состоялся релиз стабильной версии открытого мультимедийного сервера PipeWire 1.0 (El Presidente) для обработки аудио- и видеопотоков в системах на базе Linux. Проект написан на языке C и распространяется под лицензией MIT.
Согласно данным OpenNET, на уровне API и ABI версия PipeWire 1.0 обратно совместима с предыдущей веткой по номером 0.3.
Проект PipeWire позиционируется разработчиками как сервер, идущий на смену звуковому серверу PulseAudio и отличается от него добавлением средств для работы с потоками видео, возможностью обработки звука с минимальными задержками и новой моделью безопасности для управления доступом на уровне отдельных устройств и потоков.
Сервер PipeWire поддерживается в GNOME, а также по умолчанию используется в Fedora Linux, RHEL, Ubuntu, Debian, SUSE/openSUSE и многих других дистрибутивах Linux.
Проект PipeWire предоставляет возможности для обработки любых мультимедийных потоков, способен смешивать и перенаправлять потоки с видео, может применяться для управления источниками видео, такими как устройства захвата видео, веб-камеры или выводимое приложениями содержимое экрана. PipeWire даёт возможность организовать совместную работу нескольких приложений с веб-камерой и решает проблемы с безопасным захватом содержимого экрана и удалённым доступом к экрану в окружении Wayland.
Решение PipeWire может выступать в роли звукового сервера, обеспечивающего минимальные задержки и предоставляющего функциональность, комбинирующую возможности PulseAudio и JACK, в том числе учитывающую потребности систем профессиональной обработки звука (в отличии PulseAudio).
Также PipeWire предлагает расширенную модель безопасности, позволяющую управлять доступом на уровне отдельных устройств и конкретных потоков, и упрощающую организацию проброса звука и видео из изолированных контейнеров и в них. Одной из главных целей проекта является поддержка самодостаточных приложений в формате Flatpak и работа в графическом стеке на базе Wayland.
Основные возможности и сервисы PipeWire 1.0:
захват и воспроизведение звука и видео с минимальными задержками;
средства для обработки видео и звука в режиме реального времени;
многопроцессная архитектура, позволяющая организовать совместный доступ к контенту нескольких приложений;
модель обработки на основании графа мультимедийных узлов с поддержкой циклов обратной связи и атомарных обновлений графа. Допускается подключение обработчиков как внутри сервера, так и внешних плагинов;
эффективный интерфейс доступа к видеопотокам через передачу файловых дескрипторов и доступа к звуку через совместно используемые кольцевые буферы (shared ringbuffer);
возможность обработки мультимедийных данных от любых процессов;
наличие плагина к GStreamer для упрощения интеграции с существующими приложениями;
поддержка изолированных окружений и Flatpak;
поддержка плагинов в формате SPA (Simple Plugin API) и возможность создания плагинов, работающих в режиме жесткого реального времени;
гибкая система согласования используемых мультимедийных форматов и выделения буферов;
использование одного фонового процесса для маршрутизации звука и видео. Возможность работы в форме звукового сервера, хаба для предоставления видео приложениям (например, для gnome-shell screencast API) и сервера для управления доступом к аппаратным устройствам захвата видео.
Изменений в проекте PipeWire 1.0 по сравнению с веткой 0.3:
включение по умолчанию поддержки jackdbus, позволяющей использовать PipeWire в качестве полноценного клиента звуковой системы JACK;
для ALSA в PipeWire 1.0 задействовано планирование на базе IRQ в профиле Pro-Audio, позволяющее добиться задержек на уровне JACK;
добавлена поддержка одновременно старой и новой версии webrtc-audio-processing;
в pw-cat добавлена поддержка файлов DFF DSD;
добавлена поддержка платформы GNU/Hurd.
Источник новости: habr.com