Wiele źródeł audio do jednego urządzenia ALSA na różnych szybkościach transmisji

0

Buduję streamer audio oparty na linuxie dla wysokiej jakości dźwięku. Mam kilka aplikacji, które chcę mieć dostęp do urządzenia audio w tym samym czasie. (jak demon shairport-sync, roon i odtwarzacz muzyki)

Znalazłem dmix wtyczka do ALSA, która umożliwia połączenie dwóch strumieni audio w jedno urządzenie audio. Jednak, dmix wymaga ode mnie ustawienia częstotliwości próbkowania podczas definiowania urządzenia dmix i potrzebuję, aby częstotliwość próbkowania była zmienna w zależności od częstotliwości próbkowania wysyłanej ze źródła.

Czy istnieje wtyczka umożliwiająca przełączanie między wejściami? A może brakuje mi czegoś w dmixie?

Milan van Dijck
źródło
2
PulseAudio robi to automatycznie, w oparciu o częstotliwość próbkowania pierwszego strumienia.
CL.
1
Po raz drugi używałbym PulseAudio do ponownego próbkowania / transportu rzeczy - znacznie łatwiejsze do skonfigurowania.
dirkt

Odpowiedzi:

1

Powinieneś użyć oceniać (konwersja stawki) lub wtyczka Wtyczki (automatyczna konwersja). Zobacz lista wtyczek alsa-lib .

Konfigurację należy wykonać w pliku konfiguracyjnym alsa-lib znajdującym się w domu użytkownika ( .asoundrc ).

Oceniać

Ta wtyczka konwertuje szybkość strumienia. Formaty wejściowe i wyjściowe muszą być liniowe.

Przykład użycia:

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

Wtyczka

Ta wtyczka konwertuje kanały, stawki i format na żądanie.

Przykład użycia:

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

Przykład użycia wtyczek dmix i automatycznej konwersji

# 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
    }
}
Ricardo Biehl Pasquali
źródło