Даступны мультымедыйны сервер PipeWire 0.3, які ідзе на змену PulseAudio

Апублікаваны значны выпуск праекта PipeWire 0.3.0, які развівае мультымедыйны сервер новага пакалення, які ідзе на замену PulseAudio. PipeWire пашырае магчымасці PulseAudio сродкамі для працы са струменямі відэа, магчымасцю апрацоўкі гуку з мінімальнымі затрымкамі і новай мадэллю бяспекі для кіравання доступам на ўзроўні асобных прылад і струменяў. Праект падтрымліваецца ў GNOME і ўжо актыўна ўжываецца ў Fedora Linux для запісу змесціва экрана (screencasting) і сумеснага доступу да экрана ў асяроддзі на базе Wayland. Код праекта напісаны на мове Сі і распаўсюджваецца пад ліцэнзіяй LGPLv2.1.

Асноўныя змены у PipeWire 0.3:

  • Поўнасцю перапрацаваны планавальнік апрацоўкі патокаў. Змены дазволілі дамагчыся магчымасці запуску праслойкі для забеспячэння сумяшчальнасці са гукавым серверам JACK, прадукцыйнасць якой параўнальная з JACK2.
  • Перапрацаваны і аб'яўлены стабільным API. Усе далейшыя змены ў API плануецца вырабляць без парушэння зваротнай сумяшчальнасці з існуючымі праграмамі.
  • У склад уключаны менеджэр сеансаў, які дазваляе кіраваць графам мультымедыйных вузлоў у PipeWire, а таксама дадаваць новыя патокі. Пакуль мэнэджар толькі падае найпросты набор базавых функцый і ў будучыні будзе пашыраны ці заменены на больш функцыянальны і гнуткі варыянт, такі як WirePlumber.
  • Палепшаны ўваходныя ў склад бібліятэкі для забеспячэння сумяшчальнасці з PulseAudio, JACK і ALSA, якія дазваляюць выкарыстоўваць PipeWire з існуючымі праграмамі, разлічанымі на працу з іншымі гукавымі сістэмамі. Бібліятэка для ALSA ужо амаль даведзена да поўнай гатоўнасці, але бібліятэкі для JACK і PulseAudio яшчэ патрабуюць дапрацоўкі. PipeWire пакуль не гатовы для поўнай замены PulseAudio і JACK, але ў наступных выпусках пытанням сумяшчальнасці будзе нададзена першачарговая ўвага.
  • У склад уключаны некаторыя плагіны GStreamer для ўзаемадзеяння з PipeWire. Убудова pipewiresrc, выкарыстоўвалы PipeWire у якасці крыніцы гуку, у большасці сітуацый працуе без праблем. Убудова pipewiresink для вываду гуку праз PipeWire пакуль не пазбаўлены асобных вядомых праблем.
  • Падтрымка PipeWire 0.3 інтэграваная у аконны менеджэр Mutter, які развіваецца праектам GNOME.

Нагадаем, PipeWire пашырае вобласць ужывання PulseAudio апрацоўкай любых мультымедыйных струменяў і здольны змешваць і перанакіроўваць струмені з відэа. PipeWire таксама дае магчымасці для кіравання крыніцамі відэа, такімі як прылады захопу відэа, web-камеры або якое выводзіцца прыкладаннямі змесціва экрана. Напрыклад, PipeWire дае магчымасць арганізаваць сумесную працу некалькіх прыкладанняў з вэб-камерай і вырашае праблемы з бяспечным захопам змесціва экрана і аддаленым доступам да экрана ў асяроддзі Wayland.

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

Асноўныя магчымасці:

  • Захоп і ўзнаўленне гуку і відэа з мінімальнымі затрымкамі;
  • Сродкі для апрацоўкі відэа і гуку ў рэжыме рэальнага часу;
  • Шматпрацэсная архітэктура, якая дазваляе арганізаваць сумесны доступ да кантэнту некалькіх прыкладанняў;
  • Мадэль апрацоўкі на падставе графа мультымедыйных вузлоў з падтрымкай цыклаў зваротнай сувязі і атамарных абнаўленняў графа. Дапушчаецца падлучэнне апрацоўшчыкаў як усярэдзіне сервера, так і вонкавых убудоў;
  • Эфектыўны інтэрфейс доступу да відэаструменяў праз перадачу файлавых дэскрыптараў і доступу да гуку праз сумесна выкарыстоўваныя колцавыя буферы (shared ringbuffer);
  • Магчымасць апрацоўкі мультымедыйных даных ад любых працэсаў;
  • Наяўнасць плагіна да GStreamer для спрашчэння інтэграцыі з існуючымі праграмамі;
  • Падтрымка ізаляваных акружэнняў і Flatpak;
  • Падтрымка плагінаў у фармаце SPA (Simple Plugin API) і магчымасць стварэння плагінаў, якія працуюць у рэжыме жорсткага рэальнага часу;
  • Гнуткая сістэма ўзгаднення мультымедыйных фарматаў і вылучэнні буфераў;
  • Выкарыстанне аднаго фонавага працэсу для маршрутызацыі гуку і відэа. Магчымасць працы ў форме гукавога сервера, хаба для падавання відэа прыкладанням (напрыклад, для gnome-shell screencast API) і сервера для кіравання доступам да апаратных прылад захопу відэа.

Крыніца: opennet.ru

Дадаць каментар