Jak łączą się ALSA i PulseAudio?

30

Próbując uruchomić mój dźwięk , zastanawiałem się nad rolami ALSA i PulseAudio. Zainstalowałem oba i zastanawiałem się na przykład, która z nich powinna wiedzieć o mojej karcie dźwiękowej.

Oba wydają się być w stanie korzystać ze sobą, istnieje wtyczka pulseaudio dla ALSA, aw moim systemie alsa pojawia się jako karta dźwiękowa w pulseaudio.

Które z nich robi, czy są alternatywne czy komplementarne?

Hanno Fietz
źródło

Odpowiedzi:

32

ALSA to mikser dźwięku poziomu jądra, który bezpośrednio zarządza twoją kartą dźwiękową. Sam ALSA może obsługiwać tylko jedną aplikację na raz. Oczywiście istnieje „ dmix ”, który został napisany w celu rozwiązania tego problemu. (To moduł ALSA.)

PulseAudio to mikser oprogramowania, który znajduje się nad obszarem użytkownika (tak jakbyś uruchamiał aplikację). Kiedy działa, używa Alsa - bez dmixu - i samodzielnie zarządza każdym rodzajem miksowania, urządzeniami, urządzeniami sieciowymi.

W 2014 r. Nadal możesz uruchomić tylko ALSA. Ale jeśli nie skompilujesz swoich aplikacji dla siebie i nie włączysz wsparcia ALSA wszędzie - lub nie użyjesz dystrybucji opartej na źródłach, takiej jak Gentoo - możesz mieć problemy z mieszaniem. Wstępnie skompilowane aplikacje, które dystrybuują, są zwykle budowane tylko z obsługą Pulseaudio, a nie czystym ALSA. Na przykład Ubuntu woli PulseAudio. Domyślnie jest dostarczany z PulseAudio, więc każda aplikacja jest kompilowana tak, aby używać tylko PulseAudio.

PulseAudio ma swoje zalety. Ludzie mówią, że jest dobry do pracy z dźwiękiem w sieci i rozwiązuje niektóre problemy z wielokanałowymi strumieniami audio, które miały miejsce pod czystym ALSA. Podobno łatwiej jest tworzyć aplikacje dla PA. Po stronie użytkownika końcowego można łatwo wybrać nowe urządzenia, sterować głośnością według aplikacji itp.

Jednak w konfiguracji domyślnej dodaje do miksu nieistotny stopień opóźnienia. Jest to duża wada dla niektórych rodzajów zadań, które wymagają niewielkich opóźnień, takich jak niektóre gry i oprogramowanie.

OSS jest alternatywą dla obu z nich, ale nie jest licencjonowany na licencji GPL, co sprawia, że ​​mało prawdopodobne jest, aby został przyjęty przez dystrybucje.

Ilustracja :
Typowe systemy dźwiękowe zasilane PulseAudio, takie jak Ubuntu:
Jądro: ALSA -> Userland: PulseAudio -> app1, app2, app3
W typowym systemie Linux PulseAudio miksuje dźwięk ze wszystkich różnych aplikacji i przekazuje je do ALSA.

ALSA:
Jądro: ALSA -> dmix -> Userland: app1, app2, app3
Tylko czysty ALSA wymaga dmixu do mieszania wielu aplikacji. Bez tego ALSA może odtwarzać strumień audio tylko z jednej aplikacji na raz.

OSS:
Jądro: OSS -> Userland: app1, app2, app3
W OSS aplikacje użytkownika userland komunikują się bezpośrednio z OSS w jądrze, który sam miesza strumienie.

Podsumowując, w typowym systemie ALSA obecnie komunikuje się bezpośrednio z kartami dźwiękowymi, a Pulseaudio komunikuje się z aplikacjami i programami i przekazuje je do ALSA.

Apacz
źródło
2
Właściwie za każdym razem, gdy znajdowałem Pulseaudio, znajdowałem PROBLEMY! Zabawne jest to, że wydaje się (przynajmniej na podstawie moich doświadczeń) mieć problem również z wersją RT jądra, to znaczy ... czy chcesz mieć łatwe środowisko linuksowe do odtwarzania muzyki? Czy myślisz o nowym UbuntuStudio? Pomyśl jeszcze raz ...: D
dag729
4
Och, nie myśl. Grafika to też kupa… Linux NIE jest przeznaczony do komputerów stacjonarnych, mówiąc prosto i bez ogródek. Xorg to serwer X , więc po prostu uruchamiasz SERWER i go OBEJRZYJE (co za bzdury? Tak). Na MAC, Windows, Haiku, GUI działa z jądra (dobra, jest w jądrze). Dobrze. Czy to ma sens, prawda? Ponadto nie ma natywnego interfejsu. Podobnie jak w Windows, Windows.Forms. Na kakao MAC. Tutaj możesz używać tylko zestawów narzędzi FAT, takich jak GTK, Qt. | Sieć jest uzgodniona, jest w jądrze, jest OK (w porządku, jeśli producent zapewnia dobry sterownik, jak Intel) ... więc to wszystko.
Apache
3
On MAC, Windows, Haiku, GUI runs from the kernel (okay its inside the kernel). Well. It would make sense doesnt it? W rzeczywistości tak nie jest. Pamiętasz stare, złe czasy „sterowników wideo NT 4, które spowodowały awarię systemu”? Tak, właśnie to spowodowało - uruchamianie kiepskich sterowników w przestrzeni jądra. Jak myślisz, dlaczego Microsoft nagle dołożył wszelkich starań, aby podpisać sterowniki do systemu Windows? Bingo! Ponieważ kiepskie sterowniki powodowały awarie systemu. Podpisanie ich oznaczało, że zostali sprawdzeni , a specjalista ds. Kontroli jakości przechodzi długą drogę ...
Avery Payne
1
Avery: obsługuje teraz moduły nieobciążalne. Więc jeśli się zawiesi, po prostu załaduje ponownie moduł karty graficznej. Ale o ile wiem, nadal są to moduły. (Nie działa w przestrzeni użytkownika .. jest to niemożliwe). | O SDL: To ..... Każdy pisarz gier narzeka na to, ponieważ daje powolną wydajność, skomplikowane problemy itp. (Nie wymienię ich, nie przejrzę wyszukiwania). Nawet potentat transportu open source działa wolno z SDL.
Apache
2
@Skiki - Zdaję sobie sprawę, że odpowiedź jest teraz nieaktualna, ale czy możesz podać referencje, w których Valve porzuciła Linuksa? Z tego, co widzę, wciąż idą pełną parą, uważaj na kalambur.
aggregate1166877