PipeWire
![]() | |
![]() | |
Тип | Звуковий серверd і Відеосервер ![]() |
---|---|
Автор | Wim Taymans |
Розробники | Red Hat і Wim Taymansd ![]() |
Платформа | Linux ![]() |
Операційна система | Linux |
Мова програмування | C |
Ліцензія | MIT License |
Онлайн-документація | docs.pipewire.org gitlab.freedesktop.org/pipewire/pipewire/-/wikis/home ![]() |
Репозиторій | https://gitlab.freedesktop.org/pipewire/pipewire |
Вебсайт | pipewire.org |
PipeWire — мультимедійний сервер нового покоління, що йде на заміну PulseAudio. PipeWire розширює можливості PulseAudio засобами для роботи з потоками відео, можливістю обробки звуку з мінімальними затримками і новою моделлю безпеки для управління доступом на рівні окремих пристроїв і потоків. Проект підтримується в GNOME і станом на 2020 активно застосовується в Fedora Linux[1][2] для запису вмісту екрана (screencasting) і спільного доступу до екрана в середовищах на базі Wayland.
Код проекту написаний мовою Сі і поширюється під ліцензією 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. Процитовано 5 липня 2019.
- ↑ Sneddon, Joey (21 вересня 2017). PipeWire aims to do for video what PulseAudio did for sound. OMG! Ubuntu!. Архів оригіналу за 5 липня 2019. Процитовано 5 липня 2019.
- ↑ Schaller, Christian (19 вересня 2017). Launching Pipewire!. Christian F.K. Schaller. Архів оригіналу за 29 червня 2019. Процитовано 29 червня 2019.
- ↑ Schaller, Christian (1 липня 2015). Comment on: How is this project related to PulseVideo?. Christian F.K. Schaller. Архів оригіналу за 29 червня 2019. Процитовано 29 червня 2019.
- ↑ Willis, Nathan (21 жовтня 2015). 3D video and device mediation with GStreamer. LWN.new. Архів оригіналу за 29 червня 2019. Процитовано 29 червня 2019.
- ↑ Larabel, Michael (3 лютого 2019). PipeWire Should Be One Of The Exciting Linux Desktop Technologies For 2019. Phoronix. Архів оригіналу за 7 грудня 2019. Процитовано 5 липня 2019.
- ↑ Kaskinen, Tanu (12 листопада 2018). PipeWire Hackfest 2018 in Edinburgh. Tanu's Blog. Архів оригіналу за 5 липня 2019. Процитовано 5 липня 2019.
Посилання
- Офіційний сайт
- Presentation of Pinos by Wim Taymans [Архівовано 7 травня 2021 у Wayback Machine.]
- The PipeWire multimedia framework and its potential in AGL [Архівовано 21 березня 2021 у Wayback Machine.] (PDF)
- PulseVideo [Архівовано 24 січня 2021 у Wayback Machine.]