streaming audio na inny komputer na żądanie (Linux)

0

tl; dr jak niezawodnie przesyłać strumieniowo dźwięk na żądanie między 2 maszynami z systemem Linux w sieci na żądanie?


Cześć, czasami chcę odtwarzać coś z laptopa przez większe głośniki domowego systemu dźwiękowego. Ten system jest podłączony do innego laptopa, który służy głównie do oglądania wideo. Początkowo myślałem o zakupie bezprzewodowego odbiornika do domowego systemu dźwiękowego, ale wydaje mi się, że łatwiej jest po prostu wyłączyć multimedialnego laptopa i przesyłać strumieniowo do niego zamiast zmieniać wejście systemu dźwiękowego itp.

Ponieważ na obu maszynach działa najnowszy fedora linux, pomyślałem, że to będzie łatwe, ale okazało się, że nie jest takie łatwe. Początkowo próbowałem użyć przesyłania strumieniowego PulseAudio. To rzeczywiście działało, ale ponieważ laptop multimedialny jest starszy i ma tylko 54mbitowe połączenie Wi-Fi z siecią, dźwięk często miał usterki. Uderzyłem też pulsujący błąd audio polegający na tym, że konfiguracja lokalnej transmisji multiemisji PULSE_SINK faktycznie DoSes sieć lokalna (tutaj) i (tutaj) .

Pomyślałem więc, że potrzebuję bardziej profesjonalnego protokołu do przesyłania strumieniowego, niż tworzy surowe pulsowanie audio. Widzę, że w tym celu sugeruje się VLC. Ale chciałbym móc przesyłać strumieniowo do zdalnego serwera tylko wtedy, gdy chcę. Oznacza to, że gdy ustawię $ PULSE_SINK na inną wartość, zdalny serwer powinien grać, w przeciwnym razie dźwięk powinien być odtwarzany lokalnie jak zwykle.

Zastanawiałem się, czy ktoś to zrobił - utwórz odbiornik VLC, a następnie utwórz lokalny zlew PulseAudio, który wysyła tam dźwięk, jeśli jest używany. W przeciwnym razie nie wysyłaj niczego. Widzę, jak utworzyć detektor VLC, ale nie jestem zorientowany w PulseAudio i zanim stracę zbyt wiele więzi z tym, miałem nadzieję, że ktoś może mi powiedzieć, jak to zrobić lub przynajmniej zasugerować, że coś działa, więc nie konfiguruję czegoś, co nie działałby cicho zgodnie z oczekiwaniami.

Jestem otwarty na rozwiązania inne niż VLC, pod warunkiem, że nie zalewają sieci i dźwięku bez zakłóceń.

Dziękuję Ci!

akostadinov
źródło

Odpowiedzi:

0

Moją osobistą metodą strumieniowego przesyłania dźwięku na żądanie jest użycie MPD , który ma wbudowany serwer http i został zaprojektowany jako aplikacja audio oparta na bazie danych muzyki bezgłowej, która jest kontrolowana przez zaskakującą liczbę programów klienckich . Ta metoda jest szczególnie przydatna, jeśli być może potrzebujesz dostępu z hosta, który nie znajduje się w twojej sieci LAN.

Korzystanie ze zdalnych interfejsów HTTP lub Telnet VLC jest również opcją, jeśli z jakiegoś powodu naprawdę wolisz korzystać z VLC, chociaż oprogramowanie klienckie ma nieco więcej kosztów ogólnych i mniej, co oznacza mniejszą elastyczność. Moje własne doświadczenie ogranicza się do aplikacji na Androida „VLC Direct Pro”, ale ogólne instrukcje korzystania z serwera http VLC można znaleźć tutaj Ogólny zarys jest następujący:

  1. Aby aktywować interfejs sieciowy, kliknij menu Narzędzia w VLC i wybierz Preferencje. Kliknij opcję Wszystkie w obszarze Pokaż ustawienia, aby wyświetlić zaawansowane ustawienia VLC. Przewiń listę ustawień zaawansowanych i wybierz Główne interfejsy pod nagłówkiem Interfejs. Kliknij pole wyboru Internet, aby włączyć interfejs HTTP. Zapisz ustawienia i uruchom ponownie VLC. Za każdym razem, gdy uruchomisz VLC, serwer WWW będzie uruchamiany w tle.

  2. Skieruj swoją przeglądarkę internetową, http://localhost:8080/aby uzyskać dostęp do interfejsu sieciowego VLC.

  3. Aby włączyć łączność z innymi komputerami, dodaj je do /usr/share/vlc/lua/http/.hostspliku. Jeśli przemierzasz bramę NAT, otwórz niezbędne porty.

  4. „Kontrola dostępu została uproszczona w VLC 2.1.0. Możesz ograniczyć dostęp do interfejsu internetowego, używając prostego hasła, które można ustawić w Narzędzia → Preferencje (wszystkie) → Interfejsy → Główne interfejsy → Lua → Lua HTTP → Hasło”. (z dokumentacji VLC tutaj ). Należy pamiętać, że jest to miara uwierzytelnienia http, a nie https, więc warto rozważyć ograniczenie się do sieci LAN / VPN, jeśli bezpieczeństwo stanowi w ogóle problem.

Oprócz tych opcji funkcja sterowania HTTP jest zdecydowanie dość popularną opcją, znajdowaną w innych odtwarzaczach multimedialnych, takich jak Winamp lub XBMC (tuż nad moją głową ... lista jest naprawdę długa), więc możesz sobie pozwolić wybierz dowolną opcję, która najbardziej Ci odpowiada.

0xDAFACADE
źródło
Zasadniczo chcę ustawić zmienną PULSE_SINK lub inną zmienną i muzykę do odtwarzania na innym komputerze. Nie obchodzi mnie, czy będzie to VLC czy coś innego. Rzucę okiem na MPD, ale potrzebuję, aby klient (odtwarzacz) był zawsze włączony i czekał na odbiór treści, a nie odwrotnie. A może nie rozumiem, co to jest klient. Przeczytam o tym, aby się upewnić.
akostadinov