LINUX.ORG.RU

Представлен мультимедийный сервер PipeWire, идущий на смену PulseAudio

 , ,


6

3

Кристиан Шаллер (Christian Schaller), возглавляющий группу по развитию десктоп-систем в компании Red Hat и Fedora Desktop Team, официально анонсировал проект PipeWire, в рамках которого развивается мультимедийный сервер нового поколения, расширяющий возможности PulseAudio средствами для обработки потоков видео, и в будущем идущий на замену PulseAudio. Первым этапом внедрения станет поставка PipeWire в Fedora 27 для обработки видео, в то время как PulseAudio пока продолжит применяться для звука. Код проекта написан на языке Си и распространяется под лицензией LGPLv2.1.

Изначально проект развивался одним из создателей фреймворка GStreamer под именами PulseVideo и Pinos (в честь испанского города), но позднее было выбрано более подходящее имя. PipeWire расширяет область применения PulseAudio обработкой любых мультимедийных потоков и способен смешивать и перенаправлять потоки с видео. PipeWire также предоставляет возможности для управления источниками видео, такими как устройства захвата видео, web-камеры или выводимое приложениями содержимое экрана. Например, PipeWire позволяет организовать совместную работу нескольких приложений с веб-камерой и решает проблемы с безопасным захватом содержимого экрана и удалённым доступом к экрану в окружении Wayland.

PipeWire также может выступать в роли звукового сервера, обеспечивающего минимальные задержки и предоставляющего функциональность комбинирующую возможности PulseAudio и JACK, в том числе учитывающую потребности систем профессиональной обработки звука, на которую не мог претендовать PulseAudio. Кроме того, PipeWire предлагает расширенную модель безопасности, позволяющую управлять доступом на уровне отдельных устройств и конкретных потоков и упрощающую организацию проброса звука и видео из изолированных контейнеров и в них. Одной из главных целей является поддержка самодостаточных приложений в формате Flatpak и работа в графическом стеке на базе Wayland.

Основные возможности:

  • захват и воспроизведение звука и видео с минимальными задержками;
  • средства для обработки видео и звука в режиме реального времени;
  • многопроцессная архитектура, позволяющая организовать совместный доступ к контенту нескольких приложений;
  • модель обработки на основании графа мультимедийных узлов с поддержкой циклов обратной связи и атомарных обновлений графа;
  • возможность подключение обработчиков как внутри сервера, так и внешних плагинов;
  • эффективный интерфейс доступа к видеопотокам через передачу файловых дескрипторов и доступа к звуку через совместно используемые кольцевые буферы (shared ringbuffer);
  • возможность обработки мультимедийных данных от любых процессов;
  • наличие плагина к GStreamer для упрощения интеграции с существующими приложениями;
  • поддержка изолированных окружений и Flatpak;
  • поддержка плагинов в формате SPA (Single Page Application) и возможность создания плагинов, работающих в режиме жесткого реального времени;
  • гибкая система согласования используемых мультимедийных форматов и выделения буферов;
  • использование одного фонового процесса для маршрутизации звука и видео, а также возможность работы в форме звукового сервера, хаба для предоставления видео приложениям (например, для gnome-shell screencast API) и сервера для управления доступом к аппаратным устройствам захвата видео.

>>> Подробности



Проверено: Shaman007 ()
Последнее исправление: cetjs2 (всего исправлений: 2)

Это может служить заменой jack?

Или просто призван но решать самую крупную проблему вяленого — отсутствия единого api для видеозахвата и записи скринкастов?

energetix_user ★★
()
Ответ на: комментарий от energetix_user

Это может служить заменой jack?

В перспективе - да. PipeWire хочет заменить собой пульсу и джэк, и при этом ещё рулить видеопотоками. Единая сущность

Sunderland93 ★★★★★
()
Ответ на: комментарий от templarrr

А зачем ему рулить видео?

Основная причина - захват экрана в Wayland (скринкастинг, скриншаринг и так далее) и проброс видеопотоков из Flatpak-приложений, ну или из изолированных окружений в принципе. В Wayland только композитор имеет прямой доступ к содержимому окон. И никто более. Поэтому делается так: в композитор добавляется пара-тройка D-BUS обработчиков, в качестве интерфейса, с которыми уже работает PipeWire. Это позволяет абсолютно безопасно обеспечить не только захват экрана, но и проброс видеопотока по сети. Так реализовано в GNOME (сейчас на стадии тестирования), и точно также будет реализовано в KDE (они там как раз с Гномовцами и обсуждали как сделать всё оптимально и красиво, первые патчи уже есть)

Sunderland93 ★★★★★
()
Ответ на: комментарий от Sunderland93

Основная причина - захват экрана в Wayland

Т.е. он только-только родился, а уже костылями подпирают? Шикарно.

проброс видеопотоков из Flatpak-приложений, ну или из изолированных окружений в принципе.

Ну так да, возможно нужно.

templarrr ★★★★★
()
Ответ на: комментарий от Sunderland93

Ну почему-то мне казалось, что такие вещи должны быть включены в протокол и реализовываться композиторами. А так wayland уже начинает напоминать современные иксы, обвешенные расширениями.

templarrr ★★★★★
()
Ответ на: комментарий от templarrr

В иксах захват содержимого экрана и окон сделан самым дырявым и небезопасным способом в нашей галактике. И я не преувеличиваю, получить доступ к содержимому экрана или любому окну - как два пальца. В Wayland предлагали сперва протокол для захвата экрана, но эта идея противоречила самой концепции, далее предлагали механизм разрешений, наподобие тех, что используются при установке софта в Андроиде. Но в итоге, во всех композиторах (включая Weston), самым простым способом оказалось направлять содержимое экрана через D-BUS. Именно так сейчас работают скриншотилки в KDE, GNOME и Weston. И аналогичным образом решили поступить и с видео, но нужен был сервер, для управления потоками, предотвращения безконтрольного доступа к содержимому экрана, в общем со всеми фичами, удовлетворяющими идеям Wayland. И им стал PipeWire. Ну, может быть решение не идеальное, конечно, но обсуждали всё это не один год, и ничего лучше не придумали

Sunderland93 ★★★★★
()
Ответ на: комментарий от Sunderland93

В иксах захват содержимого экрана и окон сделан самым дырявым и небезопасным способом в нашей галактике

А я слышал, что в дальнем от нас рукаве нашей галактики ещё хуже сделали.

anonymous
()
Ответ на: комментарий от Sunderland93

В иксах захват содержимого экрана и окон сделан самым дырявым и небезопасным способом

Не совсем понимаю, к чему вообще эти разговоры про безопасность. Захват экрана - сугубо юзерская примочка. Запустил рекордер, система (на всякий) спрашивает, будем грабить экран, окно или это вирус хочет заскринить. Юзер разрешил - всё, дальше можешь работать ЛЮБЫМ методом! Как Хэ разруливает доступ к окну или всему экрану - дело десятое, факт тот, что тут ничего не надо наворачивать - решение простейшее.

matumba ★★★★★
()
Ответ на: комментарий от matumba

Не совсем понимаю, к чему вообще эти разговоры про безопасность. Захват экрана - сугубо юзерская примочка. Запустил рекордер, система (на всякий) спрашивает, будем грабить экран, окно или это вирус хочет заскринить. Юзер разрешил - всё, дальше можешь работать ЛЮБЫМ методом! Как Хэ разруливает доступ к окну или всему экрану - дело десятое, факт тот, что тут ничего не надо наворачивать - решение простейшее.

К тому что в X имеется рут доступ к любому окну и его содержимому, и это никак не решить, это by design. Один из самых главных недостатков иксов. А про механизм разрешений я уже говорил. Оказалось неэффективным. И кто сказал что реализовываться будет на уровне ОС? Что вообще за «уровень ОС?»

Sunderland93 ★★★★★
()
Ответ на: комментарий от energetix_user

Нет - не может. PipeWire не предназначен для профессионального аудио.

Quasar ★★★★★
()
Ответ на: комментарий от Sunderland93

Из этого видно, что вяленд - высер, состоящий на 100% из дефективности, которому для готовности к повседневному использованию необходимы костыли.

Quasar ★★★★★
()
Ответ на: комментарий от templarrr

Flatpak в данном случае - неправильное решение.

Quasar ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.