Mehrere Audioquellen für ein ALSA-Gerät mit unterschiedlichen Bitraten

566
Milan van Dijck

Ich baue einen Audio-Streamer auf Linux-Basis für hochwertige Audioqualität. Ich habe mehrere Anwendungen, mit denen ich gleichzeitig auf das Audiogerät zugreifen kann. (wie Shairport-Sync, Roon und Music Player Daemon)

Ich habe das dmix- Plugin für ALSA gefunden, mit dem zwei Audiostreams in ein Audiogerät gemischt werden können. Bei dmix muss jedoch die Abtastrate eingestellt werden, wenn das dmix-Gerät definiert wird. Die Abtastrate muss variabel sein, abhängig von der Abtastrate, die von der Quelle ausgegeben wird.

Gibt es ein Plugin, das das Umschalten zwischen Eingängen ermöglicht? Oder fehlt mir etwas in dmix?

0
PulseAudio führt dies automatisch aus, basierend auf der Abtastrate des ersten Streams. CL. vor 5 Jahren 2
Zweitens benutze ich PulseAudio zum Resampling / Transport-Material - viel einfacher einzurichten. dirkt vor 5 Jahren 1

1 Antwort auf die Frage

1
Ricardo Biehl Pasquali

Sie sollten die Plugins Rate (Rate Conversion) oder Plug (Automatische Konvertierung) verwenden. Siehe die Liste der alsa-lib-Plugins .

Die Konfiguration sollte in der alsa-lib-Konfigurationsdatei im Home des Benutzers ( .asoundrc) erfolgen.

Bewertung

Dieses Plugin konvertiert eine Streamrate. Die Eingabe- und Ausgabeformate müssen linear sein.

Anwendungsbeispiel:

pcm.<name> { type rate slave <slave_name> } 

Stecker

Dieses Plugin konvertiert Kanäle, Rate und Format auf Anfrage.

Anwendungsbeispiel:

pcm.<name> { type plug slave <slave_name> } 

Beispiel mit dmix und automatischen Konvertierungs-Plugins

# Overwrites 'default' pcm.!default { type plug slave.pcm "dmixer" }  pcm.dmixer { type dmix ipc_key 1024 # Any unique value for Interprocess Communication slave { pcm "hw:1,0" period_size 1024 buffer_size 4096 rate 44100 } }