Поиск по сайту:

PipeWire 1.0: аудио в Linux достигает совершеннолетия

Когда-то у серьезных пользователей аудио, таких как музыканты и звукоинженеры, были серьезные проблемы с Linux. С появлением PipeWire 1.0 ситуация изменилась.

Когда-то (и это было не так уж давно), если вы хотели по-настоящему работать со звуком с малой задержкой в Linux, вы столкнулись с серьезной проблемой. Это уже не так. PipeWire 1.0, программная шина потоковой передачи аудио/видео, наконец-то появилась после 15 лет разработки.

Проблема, которую решает PipeWire, заключается в том, что на протяжении многих лет в Linux существовало три разных, а иногда и противоречивых, способа работы со звуком: Advanced Linux Sound Architecture (ALSA), PulseAudio и JACK Audio Connection Kit (JACK).

ALSA предоставляет разработчикам приложений драйверы звуковых карт, управляемые ядром, и библиотеки пользовательского пространства. PulseAudio обеспечивает маршрутизацию звука и уровень управления поверх ALSA. У обеих этих программ были проблемы, особенно в первые годы их существования. JACK, тем временем, представляет собой API звукового сервера и демон для поддержки соединений между приложениями в режиме реального времени с малой задержкой.

ALSA — важный инструмент для всей работы со звуком в Linux. PulseAudio ориентирован больше на потребителей. Когда вы слушаете YouTube Music, Spotify или Pandora на своем рабочем столе Linux, вы почти наверняка используете PulseAudio. Но если вы профессиональный музыкант или звукоинженер, вам нужен JACK. PipeWire, однако, работает как для обычных пользователей, которые хотят слушать свою музыку, так и для людей, микширующих 24-дорожечные аудиосессии.

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

В частности, разработчики полагали, что PipeWire сможет устранить конфликты и ограничения PulseAudio и JACK. Однако PipeWire не просто пытается заменить эти инструменты. Как объяснил Вим Тайманс, главный инженер-программист Red Hat и создатель PipeWire, в интервью журналу Fedora Magazine: «Идея по-прежнему заключается в использовании API-интерфейсов PulseAudio и JACK. Они проверены, работают и полностью поддерживаются».

Действительно, Тайманс продолжил: «Мы также еще не видели, чтобы приложения использовали библиотеку WirePlumber. Я думаю, это отчасти потому, что совместимость PulseAudio настолько хороша, что пока нет необходимости в собственных приложениях».

Сегодня PipeWire служит мостом между приложениями и устройствами. Он предоставляет приложениям универсальный метод создания медиапотоков. Эти потоки можно направить на любое устройство или приложение для воспроизведения или записи. Кроме того, чтобы облегчить обмен потоками, PipeWire включает систему для определения соединений между приложениями и устройствами, определяющую связь, способ и время этих соединений.

PipeWire уже является аудиосервером по умолчанию для новых дистрибутивов Linux для настольных компьютеров, Fedora Linux, Pop! ОС, Ubuntu и openSUSE. Я не сомневаюсь, что PipeWire скоро появится в каждом дистрибутиве Linux.

Чтобы помочь вам использовать PipeWire, Collabora, компания по поддержке и консалтингу Linux и открытого исходного кода, предоставляет WirePlumber в качестве менеджера сеансов для медиаконвейеров PipeWire. Более подробную информацию о том, как максимально эффективно использовать PipeWire, можно найти на сайте LinuxMusicians и на форуме LinuxAudio Reddit. 

Статьи по данной тематике