PipeWire

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку
PipeWire
Файл:Pipewire logo.svg
Тип Звуковий сервер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. Пізніше проект назвали Pinus (в честь міста Pinus 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.

Посилання[ред. | ред. код]