www.wikidata.de-de.nina.az
PulseAudio fruher auch PolypAudio genannt s u ist eine netzwerktransparente plattformunabhangige Sound Middleware deren API sich an Konzepte des davon abgelosten Enlightened Sound Daemon ESD anlehnt PulseAudioPulseAudio Device Chooser padevchooser BasisdatenMaintainer Lennart Poettering Pierre Ossman Shahms E King u a Entwickler Lennart PoetteringErscheinungsjahr 17 Juli 2004 1 Aktuelle Version 16 1 2 22 Juni 2022 Betriebssystem Unix GNU Linux BSD Solaris WindowsProgrammiersprache C 3 Kategorie Middleware SoundserverLizenz LGPL 2 1 Freie Software 4 pulseaudio orgDie Client Bibliotheken sind auf jeder netzwerkfahigen Plattform nutzbar z B auch eingebettete oder mobile Gerate der PulseAudio Daemon als zentraler Soundserver und Hardware Schnittstelle sowie die dazugehorigen Hilfsprogramme sind auf allen POSIX kompatiblen Systemen und mit einer veralteten Version auf Windows verfugbar PulseAudio ist freie Software gemass den Bestimmungen der GNU Lesser General Public License 4 Inhaltsverzeichnis 1 Funktionsweise 1 1 Vorteile 1 2 Nachteile 1 2 1 Gerateunabhangigkeit 1 3 Kopplung an die Benutzersitzung 1 3 1 Netzwerkfahigkeit 1 3 2 Soundfilter 2 Eigenschaften 3 Alternativen 4 Weblinks 5 EinzelnachweiseFunktionsweise BearbeitenPulseAudio basiert auf zwei grundlegenden Prinzipien Alle Audiostrome werden durch den PulseAudio Daemon Soundserver geleitet Ausschliesslich der PulseAudio Daemon selbst greift auf die Hardware Soundschnittstelle Software Abstraktion der physischen Soundhardware des Systems zu auf dem er lauft Die meisten Programme konnen direkt mit PulseAudio kommunizieren Soundquelle PulseAudio ALSA Treiber HardwareWenige Programme konnen nicht mit PulseAudio kommunizieren Soundquelle ALSA PulseAudio ALSA Treiber HardwarePulseAudio ist auch netzwerkfahig Soundquelle PulseAudio Netzwerk PulseAudio ALSA Treiber HardwareOhne PulseAudio kann das Programm direkt mit dem Soundkarten Treiber hier ein ALSA Treiber kommunizieren Soundquelle ALSA Treiber HardwareAlternativ sollten Programme mit dem ALSA Soundserver kommunizieren Soundquelle ALSA ALSA Treiber HardwareDaraus ergeben sich sowohl Vor als auch Nachteile Vorteile Bearbeiten Ein zentrales Anliegen von PulseAudio ist es einerseits die Anwendungen weitestgehend von der tatsachlichen Soundhardware zu trennen Abstrahierung ihnen aber andererseits mehr Einfluss auf das Verhalten der Audiostrome zu geben ohne die Komplexitat ubermassig zu vergrossern durch Metadaten Erreicht wird dies durch die oben genannten Prinzipien aufgrund welcher alle Prozesse gezwungen sind ihre Sounddaten an PulseAudio zu ubergeben Dadurch entfallt die Verantwortung der einzelnen Programme fur die Sounddaten und wird an zentraler Stelle namlich dem PulseAudio Daemon gebundelt Dessen Schnittstelle ermoglicht Einfluss auf die Audiodaten zu nehmen ohne dass die einzelnen Prozesse in irgendeiner Form darin involviert sind Nachteile Bearbeiten Erste und offensichtlichste Folge ist dass ausschliesslich Programme die die PulseAudio Client Bibliotheken verwenden in der Lage sind Soundein oder Ausgabestrome zu benutzen Solange keine Legacy Anwendungen zum Einsatz kommen ist dies nicht relevant fast alle aktuellen Audio und Mediaplayer sowie die meisten portablen Audio Bibliotheken z B OpenAL oder SDL unterstutzen PulseAudio direkt nbsp Schema der Audiostrome durch PulseAudioDamit sich PulseAudio jedoch auch bei Verwendung alterer Programme moglichst nahtlos ins System einfugt wurden zusammen mit dem eigentlichen Soundserver eine Reihe spezialisierter Anwendungen entwickelt Diese Adapter genannten Programme sind einerseits normale PulseAudio Clients andererseits bieten sie aber Prozessen auch den Zugriff uber andere auch normalerweise exklusive Audio Schnittstellen an wobei die Daten dann transparent via PulseAudio weiterverarbeitet werden ohne dass seitens der Legacy Programme Anderungen notig sind Aufgrund der Vielzahl dieser Adapter entstand der ursprungliche Name PolypAudio Ein Beispiel ist die Verwendung unter Linux wo als Hardware Soundschnittstelle normalerweise ALSA zum Einsatz kommt Wahrend einige wenige Linux Treiber fur Soundkarten Mixing in Hardware durchaus unterstutzen und ausserdem ALSA auch selbst standardmassig einen simplen Software Mischer in Form des DMix Plugins mitbringt und so theoretisch der PulseAudio Daemon parallel zu reinen ALSA Anwendungen betrieben werden kann wird fur gewohnlich ein anderer Weg beschritten Statt des Dmix Plugins wird der ALSA PulseAudio Adapter geladen der die PulseAudio Kanale als ALSA Soundgerate den Anwendungen zur Verfugung stellt Die physischen ALSA Gerate werden vom PulseAudio Daemon im exklusiven Zugriff gesperrt und der PulseAudio Adapter als Standard Audio Gerat fur ALSA definiert Damit nutzen alle Programme die ALSA verwenden automatisch PulseAudio Ob der Daemon selbst die ALSA Hardware zur Soundausgabe nutzt oder nicht spielt keine Rolle Damit ist es moglich selbst auf einem System das uber keinerlei physische Soundhardware verfugt und die Audioausgabe z B uber einen per WLAN verbundenen Audioverstarker erledigt normale ALSA Software ohne Anderungen zu verwenden Einschrankungen gibt es wenn Programme bestimmte Hardwareeigenschaften oder verhalten erwarten die vom Adapter nicht emuliert werden konnen z B festes RAM Locking oder eine bestimmte Gerate Nummerierung sowie bei gemischten 32 64bit Systemen wenn nicht alle Bibliotheken in beiden Versionen vorliegen Die Schnittstelle zum alteren Open Sound System OSS kann durch ALSA emuliert werden aoss PulseAudio stellt jedoch auch einen eigenen Adapter padsp bereit der die OSS Geratedateien z B dev dsp selbst erstellt und verwaltet Programme die statt PulseAudio noch den Enlightened Sound Daemon ESD erwarten werden direkt unterstutzt da PulseAudio als vollstandiger Ersatz fur ESD fungiert und dessen Schnittstellen mit ubernommen hat Gerateunabhangigkeit Bearbeiten Die einzelnen Audiostrome sind nicht an eine bestimmte Hardware gebunden und konnen ohne dass die damit verbundenen Prozesse davon beeinflusst werden im laufenden Betrieb auf andere Gerate umgeleitet werden Dies kann sowohl manuell uber die von den PulseAudio Hilfsprogrammen bereitgestellte grafische Oberflache erfolgen als auch automatisch Dafur stellt PulseAudio eine skriptfahige Schnittstelle zur Verfugung die z B beim Anschliessen oder Entfernen eines Soundgerates verwendet wird Durch benutzerdefinierbare Praferenzen kann so bestimmte Soundhardware wenn sie verfugbar ist gegenuber anderer bevorzugt werden Ein Beispiel ist die Verwendung eines Notebooks das beim Verbinden mit der Dock Station die Soundausgabe automatisch von den integrierten Lautsprechern auf den WLAN Verstarker und die Soundeingabe auf das feste Mikrofon umschaltet ohne dass es dabei zu einer Unterbrechung der Audiostrome kommt Beim Entfernen vom Dock tritt der umgekehrte Effekt ein Praferenzen konnen mehrstufig sein z B kann ein Bluetooth oder USB Headset wiederum eine noch hohere Prioritat haben und so zeitweise sowohl die eingebaute als auch die Soundhardware des Docks verdrangen unabhangig davon ob es zuhause oder unterwegs angeschlossen wird Neben den Audiodaten konnen PulseAudio Clients auch zusatzliche Metadaten an den Soundserver schicken die bei der Auswahl des Zielgerates berucksichtigt werden So konnen z B die Sounds von Systemmeldungen immer uber die eingebauten Lautsprecher Musik und die Audiospur von Videos uber das jeweils bevorzugte Gerat VoIP Telefonate aber nur uber das Headset geleitet werden Neben dem Wechsel von Geraten konnen auch virtuelle Gerate z B als Zusammenfassung mehrerer physischer oder logischer Soundgerate definiert werden die von den Clients normal benutzt werden konnen Fur ein Screencast lasst sich so z B die komplette Ausgabe der PulseAudio Soundpipeline plus der Eingabe des Mikrofons als neues Eingabegerat entweder gemischt oder als zusatzliche Spur schaffen von dem problemlos einzeln aufgenommen werden kann ohne spateres Mischen oder Nachbearbeiten zu erfordern Damit verbunden lassen sich mehrere Kanale synchronisieren ohne dass die Clients selbst die notwendige Wartelogik implementieren mussen Ein grundsatzliches Problem bei der Audioausgabe unter Linux ist dass es keine klare Schichtung gibt sondern verschiedene Systemedienste bzw Subsysteme die den Zugriff auf die Audiohardware Anpassungen der Abtastrate Mischen gleichzeitiger Audiostrome Sitzungsmanagement Zugriffskontrolle sowie fortgeschrittene Signalverarbeitung in uberlappender Weise implementieren PulseAudio verfolgt dabei den Ansatz einen vergleichsweise grossen Umfang von Diensten in einem Teilsystem zu vereinigen Kopplung an die Benutzersitzung Bearbeiten Der PulseAudio Server ist nicht als systemweiter Server konzipiert der unabhangig von einer Benutzersitzung lauft vielmehr ist die Hardware ahnlich wie Maus und Bildschirm beim X Window Display der Benutzersitzung zugeordnet Fur die meisten Desktop Applikationen ist dies wunschenswert da ein Zugriff auf die Audio Eingange es prinzipiell auch ermoglicht ein System uber das Internet abzuhoren was ein erhebliches Sicherheitsrisiko darstellen kann Eine Konfiguration im sogenannten system mode ist prinzipiell moglich jedoch wird hiervon sowohl aus Grunden der Sicherheit als auch aufgrund gravierender technischer Nachteile ausdrucklich abgeraten 5 Dies steht im Konflikt zu Konzepten bei denen ein Medienserver wie etwa Music Player Daemon normalerweise als Systemdienst fur einen direkten Zugriff auf die Audio Hardware konzipiert ist ohne dass notwendigerweise die vollstandigen Audio Daten ubertragen werden Es ist jedoch moglich auf PulseAudio Dienste systemweit uber die Netzwerk Schnittstelle zuzugreifen wobei sich allerdings fur die Zugriffsregelung noch kein durchgangiges und einheitliches Konzept etabliert hat wie es im Bereich der Texteingabe beispielsweise mit den Pseudoterminals besteht Netzwerkfahigkeit Bearbeiten Durch die Abstraktion konnen PulseAudio Clients entfernte und lokale Soundhardware gleichermassen benutzen ohne dass dies zusatzlichen Programmieraufwand erfordert Moglich ist sowohl dass der lokale PulseAudio Daemon die Daten einem anderen per Netzwerk erreichbaren Daemon uberlasst als auch dass der Client direkt einen anderen PulseAudio Server im Netz kontaktiert Da ein PulseAudio Daemon eine Moglichkeit ist per Netzwerk auf physische Soundhardware zuzugreifen muss auf Systemen ohne Soundhardware kein Soundserver laufen Somit kann in einem Netz mit zentralen Audiogeraten z B einem Heimkino oder in einem Studio von allen Systemen aus der gleiche zentrale Soundserver benutzt werden jedoch s u bzgl Zugriff und Sicherheit Soundfilter Bearbeiten Alle Audiodaten passieren zwangsweise den PulseAudio Daemon der damit auch ein geeigneter Ort fur die Anwendung von Soundfiltern ist zumal die meisten heutigen Prozessoren in der Lage sind gleichartige Berechnungen parallel auf mehreren Datensatzen durchzufuhren Wichtigster und auch in den grafischen Benutzeroberflachen essentiellster Punkt ist die Moglichkeit die Lautstarke jedes Audiokanals und jedes Audiostroms jeder Anwendung einzeln zu konfigurieren oder stummzuschalten auch wenn das entsprechende Programm dafur keine eigene Moglichkeit bietet 6 Diese Einstellungen konnen gespeichert werden und bleiben dann fur die jeweilige Anwendung bestehen Daneben konnen auch Equalizer Funktionen genutzt werden Nicht jede Soundhardware kann die gleichen oder uberhaupt unterschiedliche Samplingfrequenzen verarbeiten Manche Anwendungen erzeugen Audiostrome mit festen Abtastraten und erwarten auch solche als Eingabe Der PulseAudio Daemon nimmt die notwendige Konvertierung automatisch vor und stellt dafur unterschiedlich CPU intensive Algorithmen zur Verfugung Damit verbunden ist ein vielfach auftretendes Problem dass ein qualitativ besserer aber auch rechenintensiverer Algorithmus voreingestellt ist resample method in etc pulse daemon conf Eigenschaften BearbeitenAn physischer Soundhardware unterstutzt PulseAudio alles was das jeweils native Soundsystem des Betriebssystems unterstutzt Unter GNU Linux ist dies ALSA OSS unter BSD und DirectSound unter Microsoft Windows Jedes Soundgerat ist entweder Quelle Source oder Senke Sink fur Audiodaten Daneben kommen andere uber das Netzwerk verbundene PulseAudio Server sowie Gerate oder Prozesse die das RTS Protokoll unterstutzen in Frage Auch PulseAudio Clients selbst konnen sowohl Senke als auch Quelle sein Viele Adapter unterstutzen jedoch oft nur die Funktion als Quelle fur den adaptierten Prozess PulseAudio kann auf Bluetooth Audiogerate zugreifen auch wenn das native Soundsystem diese nicht unterstutzt solange Bluetooth allgemein unterstutzt wird Der PulseAudio Daemon bietet die Moglichkeit wahrend der Laufzeit durch ladbare binare Module erweitert zu werden Die meisten Adapter und Filter sind auf diese Weise implementiert Die Latenz der meisten Operationen ist sehr niedrig 7 und kann von den Clients gemessen und beeinflusst werden Eine hohe Latenz kann auf embedded und mobilen Geraten zu Energieeinsparungen fuhren eine geringe Latenz ist z B fur VoIP oder Multiplayer Spiele erforderlich Innerhalb des Daemons sowie der lokalen Clients kommt die PulseAudio Soundarchitektur ohne das zeitaufwandige Umkopieren von Audiodaten aus zero copy architecture dies gilt jedoch nur begrenzt bei der Verwendung von Adaptern Aufgrund der Abhangigkeit vom Zugang zum PulseAudio Daemon fur alle Audiofunktionen ist dieser in der PulseAudio Client Bibliothek zentral und automatisch geregelt welche neben dem reinen Auffinden eines Servers die Moglichkeit der bevorzugten Auswahl aus mehreren verfugbaren bietet Sofern nicht abgeschaltet ist ein Server mittels Zeroconf im Netz automatisch auffindbar Lokal kann dies via D Bus erfolgen Adapter insbesondere der ALSA Adapter und auch PulseAudio Clients konnen jedoch auch selbst den PulseAudio Daemon starten wenn dieser so konfiguriert ist und lokal noch nicht lauft X11 Desktopumgebungen erledigen dies normalerweise automatisch Auf unterster Ebene sind fur den Zugang zum Server zwei Umgebungsvariablen notwendig PULSE SERVER und PULSE COOKIE Diese werden von der PulseAudio Client Bibliothek ausgewertet oder wenn sie noch nicht existieren gesetzt Standardmassig ist der Daemon X11 sessionbasiert konfiguriert d h die Variablen sind nicht gesetzt die Einstellungen werden jedoch beim Start des Daemons in die Ressourcen des Root X Window eingetragen und von den Clients dort ausgelesen und konnen so z B auch uber eine SSH getunnelte Verbindung mitgenommen werden Ohne die X11 Sitzungsverwaltung konnen die Zugangsdaten via D Bus erfragt werden Fur die Zugriffskontrolle auf den Server ubernimmt PulseAudio die Methode von X11 und verwendet dafur ein pseudozufallig generiertes Cookie das in PULSE COOKIE erwartet wird und standardmassig aus der Datei pulse cookie des Benutzers stammt unter dessen Konto der Daemon lauft Normalerweise ist PulseAudio so konfiguriert dass ohne dieses Cookie ein Zugriff auf den Server auch lokal nicht moglich ist selbst wenn der Prozess dem gleichen Benutzer gehort wie der Daemon Alternativen BearbeitenIn professionellen Anwendungen unter Linux wird gerne JACK als ebenfalls freie Alternative oder Erganzung zu PulseAudio verwendet PipeWire welches bspw ab Fedora 34 PulseAudio und Jack ersetzt 8 Teile der Funktionalitat von PulseAudio konnen mit spezielleren und teilweise proprietaren Losungen wie AVB Dante oder Soundgrid realisiert werden Weblinks Bearbeiten nbsp Commons PulseAudio Sammlung von Bildern Projekthauptseite englisch Einzelnachweise Bearbeiten Version 0 1 http freedesktop org software pulseaudio releases polypaudio 0 1 tar gz released abgerufen am 22 Februar 2023 ANNOUNCE PulseAudio 16 1 22 Juni 2022 abgerufen am 23 Juni 2022 Ohloh Analysis Summary PulseAudio Ohloh abgerufen am 14 Mai 2010 a b About Pulseaudio freedesktop org abgerufen am 17 September 2019 What is wrong with system mode PulseAudio Abgerufen am 30 Juni 2022 Interviews LennartPoettering In Fedora Project Wiki 2 November 2007 abgerufen am 5 Februar 2008 englisch JD Mars Better Latent Than Never Nicht mehr online verfugbar Archiviert vom Original am 17 August 2016 abgerufen am 5 Februar 2008 englisch nbsp Info Der Archivlink wurde automatisch eingesetzt und noch nicht gepruft Bitte prufe Original und Archivlink gemass Anleitung und entferne dann diesen Hinweis 1 2 Vorlage Webachiv IABot www digitalprosound com Releases 34 ChangeSet Fedora Project Wiki Abgerufen am 20 Marz 2022 Abgerufen von https de wikipedia org w index php title PulseAudio amp oldid 235014960