PipeWire

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) і сервера для управління доступом до апаратних пристроїв захоплення відео.

Виноски

  1. ↑ а б Lerch, Ryan (20 вересня 2017). Improved multimedia support with Pipewire in Fedora 27. Fedora Magazine. Архів оригіналу за 5 липня 2019. Процитовано 5 липня 2019.
  2. ↑ Sneddon, Joey (21 вересня 2017). PipeWire aims to do for video what PulseAudio did for sound. OMG! Ubuntu!. Архів оригіналу за 5 липня 2019. Процитовано 5 липня 2019.
  3. ↑ Schaller, Christian (19 вересня 2017). Launching Pipewire!. Christian F.K. Schaller. Архів оригіналу за 29 червня 2019. Процитовано 29 червня 2019.
  4. ↑ Schaller, Christian (1 липня 2015). Comment on: How is this project related to PulseVideo?. Christian F.K. Schaller. Архів оригіналу за 29 червня 2019. Процитовано 29 червня 2019.
  5. ↑ Willis, Nathan (21 жовтня 2015). 3D video and device mediation with GStreamer. LWN.new. Архів оригіналу за 29 червня 2019. Процитовано 29 червня 2019.
  6. ↑ Larabel, Michael (3 лютого 2019). PipeWire Should Be One Of The Exciting Linux Desktop Technologies For 2019. Phoronix. Архів оригіналу за 7 грудня 2019. Процитовано 5 липня 2019.
  7. ↑ Kaskinen, Tanu (12 листопада 2018). PipeWire Hackfest 2018 in Edinburgh. Tanu's Blog. Архів оригіналу за 5 липня 2019. Процитовано 5 липня 2019.

Посилання