PipeWire

PipeWireмультимедійний сервер нового покоління, що йде на заміну PulseAudio. PipeWire розширює можливості PulseAudio засобами для роботи з потоками відео, можливістю обробки звуку з мінімальними затримками і новою моделлю безпеки для управління доступом на рівні окремих пристроїв і потоків. Проект підтримується в GNOME і станом на 2020 активно застосовується в Fedora Linux[1][2] для запису вмісту екрану (screencasting) і спільного доступу до екрана в середовищах на базі Wayland.

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

Виноски

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

Посилання

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.