PipeWire
PipeWire — мультимедійний сервер нового покоління, що йде на заміну PulseAudio. PipeWire розширює можливості PulseAudio засобами для роботи з потоками відео, можливістю обробки звуку з мінімальними затримками і новою моделлю безпеки для управління доступом на рівні окремих пристроїв і потоків. Проект підтримується в GNOME і станом на 2020 активно застосовується в Fedora Linux[1][2] для запису вмісту екрану (screencasting) і спільного доступу до екрана в середовищах на базі Wayland.
Тип | Звуковий серверd і Відеосервер |
---|---|
Автор(и) | Wim Taymans |
Розробники | Red Hat і Wim Taymansd |
Репозиторій | https://gitlab.freedesktop.org/pipewire/pipewire |
Платформа | Linux |
Операційна система | Linux |
Мова програмування | C |
Ліцензія | MIT License |
Онлайн-документація |
docs.pipewire.org gitlab.freedesktop.org/pipewire/pipewire/-/wikis/home |
Вебсайт | pipewire.org |
PipeWire у Вікісховищі |
Код проекту написаний мовою Сі і поширюється під ліцензією LGPLv2.1.
Історія
Спочатку проект називався PulseVideo. Пізніше проект назвали Pinos (в честь міста Pinos de Alhaurin в Іспанії, в якому жив Вім Тайманс). Однією з початкових цілей було поліпшити роботу з відео під Linux таким же чином, як PulseAudio поліпшив роботу з аудіо[3]. Ідеї для проекту були взяті з PulseVideo Вільяма Менлі (William Manley) (назва "PulseVideo", що використовується Вільямом Менлі, не пов'язане з тією ж назвою, яке використовував ДІМ Тайман на початку проекту) [4][5].
Огляд
PipeWire розширює сферу застосування PulseAudio обробкою будь-яких мультимедійних потоків і здатний змішувати і перенаправляти потоки з відео. PipeWire також надає можливості для управління джерелами відео, такими як пристрої захоплення відео, веб-камери або виведений застосунками вміст екрану. Наприклад, PipeWire дає можливість організувати спільну роботу декількох застосунків з веб-камерою і вирішує проблеми з безпечним захопленням вмісту екрану і віддаленим доступом до екрану в оточенні Wayland.
PipeWire також може виступати в ролі звукового сервера, що забезпечує мінімальні затримки і надає функціональність комбінування можливостей PulseAudio і JACK, в тому числі враховує потреби систем професійної обробки звуку, на яку не міг претендувати PulseAudio. Крім того, PipeWire пропонує розширену модель безпеки, що дозволяє управляти доступом на рівні окремих пристроїв і конкретних потоків, і спрощує організацію проштовхування звуку і відео з ізольованих контейнерів і в них. Однією з головних цілей є підтримка самодостатніх застосунків в форматі Flatpak[1][6][7] і робота в графічному стеці на базі Wayland.
Основні можливості
- Захоплення і відтворення звуку і відео з мінімальними затримками;
- Засоби для обробки відео і звуку в режимі реального часу;
- Багато-процесна архітектура, що дозволяє організувати спільний доступ до контенту декількох застосунків;
- Модель обробки на основі графа мультимедійних вузлів з підтримкою циклів зворотного зв'язку і атомарних оновлень графа. Допускається підключення оброблювачів як всередині сервера, так і зовнішніх плагінів;
- Ефективний інтерфейс доступу до відеопотоку через передачу файлових дескрипторів і доступу до звуку через спільно використовувані кільцеві буфери (shared ringbuffer);
- Можливість обробки мультимедійних даних від будь-яких процесів;
- Наявність плагіну до GStreamer для спрощення інтеграції з існуючими застосунками;
- Підтримка ізольованих оточень і Flatpak;
- Підтримка плагінів в форматі SPA (Simple Plugin API) і можливість створення плагінів, які працюють в режимі жорсткого реального часу;
- Гнучка система узгодження використовуваних мультимедійних форматів і виділення буферів;
- Використання одного фонового процесу для маршрутизації звуку і відео. Можливість роботи в формі звукового сервера, хаба для надання відео застосунків (наприклад, для gnome-shell screencast API) і сервера для управління доступом до апаратних пристроїв захоплення відео.
Виноски
- Lerch, Ryan (20 вересня 2017). Improved multimedia support with Pipewire in Fedora 27. Fedora Magazine. Процитовано 5 липня 2019.
- Sneddon, Joey (21 вересня 2017). PipeWire aims to do for video what PulseAudio did for sound. OMG! Ubuntu!. Процитовано 5 липня 2019.
- Schaller, Christian (19 вересня 2017). Launching Pipewire!. Christian F.K. Schaller. Процитовано 29 червня 2019.
- Schaller, Christian (1 липня 2015). Comment on: How is this project related to PulseVideo?. Christian F.K. Schaller. Процитовано 29 червня 2019.
- Willis, Nathan (21 жовтня 2015). 3D video and device mediation with GStreamer. LWN.new. Процитовано 29 червня 2019.
- Larabel, Michael (3 лютого 2019). PipeWire Should Be One Of The Exciting Linux Desktop Technologies For 2019. Phoronix. Процитовано 5 липня 2019.
- Kaskinen, Tanu (12 листопада 2018). PipeWire Hackfest 2018 in Edinburgh. Tanu's Blog. Процитовано 5 липня 2019.