Dostępny jest serwer multimediów PipeWire 0.3 zastępujący PulseAudio

opublikowany znacząca publikacja projektu PipeWire 0.3.0, opracowując serwer multimedialny nowej generacji, który ma zastąpić PulseAudio. PipeWire rozszerza możliwości PulseAudio o możliwości strumieniowego przesyłania wideo, przetwarzanie dźwięku o niskim opóźnieniu i nowy model bezpieczeństwa dla kontroli dostępu na poziomie urządzenia i strumienia. Projekt jest obsługiwany w środowisku GNOME i jest już aktywnie używany w Fedorze Linux do nagrywania i udostępniania ekranu w środowiskach opartych na Wayland. Kod projektu jest napisany w języku C i dystrybuowane przez licencjonowany na podstawie LGPLv2.1.

Głównym zmiany w PipeWire 0.3:

  • Harmonogram przetwarzania wątków został całkowicie przeprojektowany. Zmiany umożliwiły uruchomienie warstwy zapewniającej kompatybilność z serwerem dźwięku JACK, którego wydajność jest porównywalna z JACK2.
  • Przerobiono i uznano za stabilne API. Planuje się, że wszystkie dalsze zmiany w API zostaną wprowadzone bez zakłócania wstecznej kompatybilności z istniejącymi aplikacjami.
  • Zawiera menedżera sesji, który pozwala zarządzać wykresem węzłów multimedialnych w PipeWire, a także dodawać nowe strumienie. Na razie menedżer udostępnia jedynie prosty zestaw podstawowych funkcji, a w przyszłości zostanie on rozbudowany lub zastąpiony opcją bardziej funkcjonalną i elastyczną, np. Hydraulik Drutowy.
  • Dołączone biblioteki zostały ulepszone, aby zapewnić kompatybilność z PulseAudio, JACK i ALSA, umożliwiając użycie PipeWire z istniejącymi aplikacjami zaprojektowanymi do współpracy z innymi systemami audio. Biblioteka dla ALSA jest już prawie gotowa, ale biblioteki dla JACK i PulseAudio wymagają jeszcze pracy. PipeWire nie jest jeszcze gotowy, aby całkowicie zastąpić PulseAudio i JACK, ale kwestie kompatybilności będą priorytetem w przyszłych wersjach.
  • W zestawie znajduje się kilka wtyczek GStreamer umożliwiających interakcję z PipeWire. Wtyczka pipewiresrc, która wykorzystuje PipeWire jako źródło dźwięku, działa bez problemów w większości sytuacji. Wtyczka pipewiresink do wyjścia audio za pośrednictwem PipeWire nie powoduje jeszcze żadnych znanych problemów.
  • Obsługa PipeWire 0.3 zintegrowany do menedżera okien Mutter opracowanego w ramach projektu GNOME.

Przypomnijmy, że PipeWire rozszerza zakres PulseAudio o przetwarzanie dowolnych strumieni multimedialnych oraz umożliwia miksowanie i przekierowywanie strumieni wideo. PipeWire zapewnia także opcje zarządzania źródłami wideo, takimi jak urządzenia do przechwytywania wideo, kamery internetowe lub zawartość ekranu wyświetlaną przez aplikacje. Na przykład PipeWire umożliwia współpracę wielu aplikacji z kamerą internetową i rozwiązuje problemy z bezpiecznym przechwytywaniem ekranu i zdalnym udostępnianiem ekranu w środowisku Wayland.

PipeWire może również działać jako serwer audio, zapewniając minimalne opóźnienia i łącząc funkcjonalność PulseAudio и JACEK, w tym z uwzględnieniem potrzeb profesjonalnych systemów przetwarzania dźwięku, czego PulseAudio nie mógł rościć. Dodatkowo PipeWire oferuje zaawansowany model bezpieczeństwa, który umożliwia kontrolę dostępu na poziomie urządzenia i strumienia oraz ułatwia kierowanie sygnału audio i wideo do i z izolowanych kontenerów. Jednym z głównych celów jest obsługa samodzielnych aplikacji Flatpak i działanie na stosie graficznym opartym na Wayland.

Głównym możliwości:

  • Przechwytuj i odtwarzaj dźwięk i wideo z minimalnymi opóźnieniami;
  • Narzędzia do przetwarzania obrazu i dźwięku w czasie rzeczywistym;
  • Architektura wieloprocesowa umożliwiająca współdzielenie zawartości kilku aplikacji;
  • Model przetwarzania oparty na grafie węzłów multimedialnych z obsługą pętli sprzężenia zwrotnego i atomową aktualizacją wykresu. Dopuszczalne jest podłączanie handlerów zarówno wewnątrz serwera jak i zewnętrznych wtyczek;
  • Wydajny interfejs dostępu do strumieni wideo poprzez przesyłanie deskryptorów plików i dostępu do dźwięku poprzez współdzielone bufory pierścieniowe;
  • Możliwość przetwarzania danych multimedialnych z dowolnych procesów;
  • Obecność wtyczki do GStreamera upraszczającej integrację z istniejącymi aplikacjami;
  • Wsparcie dla izolowanych środowisk i Flatpak;
  • Obsługa wtyczek w formacie SPA (Simple Plugin API) i możliwość tworzenia wtyczek pracujących w trudnym czasie rzeczywistym;
  • Elastyczny system negocjacji używanych formatów multimedialnych i przydziału buforów;
  • Używanie pojedynczego procesu w tle do kierowania dźwięku i obrazu. Możliwość pracy jako serwer dźwięku, koncentrator dostarczający wideo do aplikacji (na przykład dla API screencastu powłoki gnome) oraz serwer do kontrolowania dostępu do urządzeń przechwytujących wideo.

Źródło: opennet.ru

Dodaj komentarz