znacząca wersja projektu , rozwijającego multimedialny serwer nowej generacji, zastępujący PulseAudio. PipeWire rozszerza możliwości PulseAudio o funkcje do obsługi strumieni wideo, przetwarzanie dźwięku z minimalnymi opóźnieniami oraz nowy model bezpieczeństwa do zarządzania dostępem na poziomie pojedynczych urządzeń i strumieni. Projekt jest wspierany w GNOME i jest już aktywnie wykorzystywany w Fedora Linux do nagrywania zawartości ekranu i udostępniania ekranu w środowiskach opartych na Wayland. Kod projektu został napisany w języku C i jest objęty licencją LGPLv2.1.
Podstawowe w PipeWire 0.3:
- Całkowicie przebudowano harmonogram przetwarzania strumieni. Zmiany pozwoliły na uruchomienie warstwy do zapewnienia zgodności z serwerem dźwiękowym JACK, której wydajność jest porównywalna z JACK2.
- Przebudowany i uznany za stabilny . Wszystkie dalsze zmiany w API planowane są bez naruszania wstecznej kompatybilności z istniejącymi aplikacjami.
- W skład wchodzi menedżer sesji, pozwalający zarządzać grafem multimedialnych węzłów w PipeWire oraz dodawać nowe strumienie. Na razie menedżer oferuje jedynie podstawowy zestaw funkcji, a w przyszłości zostanie rozszerzony lub zastąpiony bardziej funkcjonalną i elastyczną wersją, taką jak .
- Ulepszono biblioteki wchodzące w skład pakietu dla zapewnienia zgodności z PulseAudio, JACK i ALSA, umożliwiające użycie PipeWire z istniejącymi aplikacjami skupionymi na innych systemach dźwiękowych. Biblioteka dla ALSA jest już niemal gotowa, ale biblioteki dla JACK i PulseAudio nadal wymagają dopracowania. PipeWire nie jest jeszcze gotowy do pełnego zastąpienia PulseAudio i JACK, ale w kolejnych wersjach kwestie zgodności będą priorytetowo traktowane.
- W skład wchodzą również niektóre wtyczki GStreamer do interakcji z PipeWire. Wtyczka pipewiresrc, używająca PipeWire jako źródła dźwięku, w większości sytuacji działa bez problemu. Wtyczka pipewiresink do wyjścia dźwięku przez PipeWire wciąż ma kilka znanych problemów.
- Wsparcie PipeWire 0.3 w menedżerze okien Mutter, rozwijanym przez projekt GNOME.
Przypomnijmy, że PipeWire rozszerza zastosowanie PulseAudio przez obsługę wszelkich strumieni multimedialnych i jest w stanie mieszać oraz przekierowywać strumienie wideo. PipeWire także oferuje możliwości zarządzania źródłami wideo, takimi jak urządzenia do przechwytywania wideo, kamery internetowe czy wyjściowe zawartości aplikacji na ekranie. Na przykład, PipeWire umożliwia współpracę kilku aplikacji z kamerą internetową i rozwiązuje problemy z bezpiecznym przechwytywaniem zawartości ekranu oraz zdalnym dostępem do ekranu w środowisku Wayland.
PipeWire może również działać jako serwer dźwięku, zapewniając minimalne opóźnienia oraz łącząc funkcjonalności i , w tym uwzględniając potrzeby systemów profesjonalnego przetwarzania dźwięku, o które nie mogło ubiegać się PulseAudio. Ponadto, PipeWire oferuje rozszerzony model bezpieczeństwa, który umożliwia zarządzanie dostępem na poziomie poszczególnych urządzeń i konkretnych strumieni, a także upraszcza organizację przesyłania dźwięku i wideo z izolowanych kontenerów i do nich. Jednym z głównych celów jest wsparcie w pełni samodzielnych aplikacji w formacie Flatpak oraz działanie w graficznym stosie opartym na Wayland.
:
- Przechwytywanie i odtwarzanie dźwięku i wideo z minimalnymi opóźnieniami;
- Narzędzia do przetwarzania dźwięku i wideo w czasie rzeczywistym;
- Architektura wieloprocesowa, umożliwiająca współdzielenie treści między różnymi aplikacjami;
- Model przetwarzania na podstawie grafu węzłów multimedialnych z obsługą cykli sprzężenia zwrotnego i atomowych aktualizacji grafu. Dozwolone jest podłączanie przetwarzaczy zarówno wewnątrz serwera, jak i zewnętrznych wtyczek;
- Efektywny interfejs dostępu do strumieni wideo poprzez przesyłanie deskryptorów plików oraz dostęp do dźwięku przez współdzielone bufory cykliczne (shared ringbuffer);
- Możliwość przetwarzania danych multimedialnych z dowolnych procesów;
- Obecność wtyczki do GStreamer w celu uproszczenia integracji z istniejącymi aplikacjami;
- Wsparcie dla izolowanych środowisk oraz Flatpak;
- Obsługa wtyczek w formacie (Simple Plugin API) oraz możliwość tworzenia wtyczek działających w trybie twardego czasu rzeczywistego;
- Elastyczny system zgłaszania używanych formatów multimedialnych i przydzielania buforów;
- Użycie jednego procesu roboczego do routingu dźwięku i wideo. Możliwość pracy w formie serwera dźwiękowego, hubu do dostarczania wideo aplikacjom (na przykład dla API gnome-shell screencast) oraz serwera do zarządzania dostępem do urządzeń sprzętowych przechwytujących wideo.
Źródło: opennet.ru
