Używam PulseAudio do wysyłania dźwięku przez sieć LAN do serwera audio.
Podczas odtwarzania dowolnego nośnika Flash w przeglądarce Firefox lub Chrome dźwięk trzepocze ( przykład ), jakby głośność zwiększała się i zmniejszała co sekundę.
Odkryłem, że mogę przestać trzepotać, jeśli wykonam następujące kroki:
Rozpocznij wideo Flash, na przykład wideo na YouTube
Uruchom
pulseaudio --kill
na serwerzePoczekaj około 7 sekund
Następnie serwer PulseAudio odradza się automatycznie, a dźwięk w wideo Flash jest w porządku.
Problem polega na tym, że muszę to robić za każdym razem, gdy uruchamiam film Flash. To oczywiście nie jest pożądane.
Jak zrobić wszystko, co sprawia, że dźwięk działa, kiedy przechodzę przez te kroki, aby nie musiałem ich robić?
Wątpię, aby ktoś wymyślił natychmiastową i prostą naprawę (choć byłoby to miło), aby nagroda mogła trafić do każdego, kto zapewni przynajmniej metodę przekątnej problemu.
Detale
Oto ustawienia wyjściowe mojego urządzenia dźwiękowego. O ile wiem, wszystkie cztery urządzenia wskazują dokładnie to samo urządzenie fizyczne.
Wyjście dziennika PulseAudio , zrobione podczas próby odtworzenia wideo Flash.
Próbowałem uzyskać szczegóły rejestrowania z Flasha, ale pomimo zainstalowania i włączenia Flasha do debugowania, nie wygenerował żadnego wyjścia .
Problem nie występuje w żadnym innym oprogramowaniu, więc jestem pewien, że jest specyficzny dla tego, w jaki sposób Flash współdziała z moją konfiguracją dźwięku.
Oto kilka danych wyjściowych błędów, które mogą być pomocne:
$ cat /var/log/syslog | grep pulseaudio
Jul 30 01:40:08 mythbuntu pulseaudio[17388]: [pulseaudio] module.c: Failed to open module "module-esound-protocol-tcp": file not found
Jul 30 01:40:08 mythbuntu pulseaudio[17388]: [pulseaudio] module-gconf.c: pa_module_load() failed
Jul 30 01:40:08 mythbuntu pulseaudio[17388]: [pulseaudio] module.c: module-combine is deprecated: Please use module-combine-sink instead of module-combine!
Jul 30 01:40:08 mythbuntu pulseaudio[17388]: [pulseaudio] module-combine.c: We will now load module-combine-sink. Please make sure to remove module-combine from your configuration.
Jul 30 01:55:07 mythbuntu pulseaudio[17406]: [pulseaudio] module.c: Failed to open module "module-esound-protocol-tcp": file not found
Jul 30 01:55:07 mythbuntu pulseaudio[17406]: [pulseaudio] module-gconf.c: pa_module_load() failed
Jul 30 01:55:07 mythbuntu pulseaudio[17406]: [pulseaudio] module.c: module-combine is deprecated: Please use module-combine-sink instead of module-combine!
Jul 30 01:55:07 mythbuntu pulseaudio[17406]: [pulseaudio] module-combine.c: We will now load module-combine-sink. Please make sure to remove module-combine from your configuration.
Jul 30 02:04:43 mythbuntu pulseaudio[17433]: [pulseaudio] module.c: Failed to open module "module-esound-protocol-tcp": file not found
Jul 30 02:04:43 mythbuntu pulseaudio[17433]: [pulseaudio] module-gconf.c: pa_module_load() failed
Jul 30 02:04:43 mythbuntu pulseaudio[17433]: [pulseaudio] module.c: module-combine is deprecated: Please use module-combine-sink instead of module-combine!
Jul 30 02:04:43 mythbuntu pulseaudio[17433]: [pulseaudio] module-combine.c: We will now load module-combine-sink. Please make sure to remove module-combine from your configuration.
Oto wyjściowy pactl list
z serwera (komputer z głośnikami) .
Oto wyjściowy pactl list
z klientem .
źródło
Odpowiedzi:
Przedmowa
Udało mi się powtórzyć problem Dave'a w eksperymentach, co doprowadziło mnie do przekonania, że Flash w jakiś sposób wysyła dźwięk do PulseAudio w taki sposób, że generuje duży ruch sieciowy (pomyśl o wielu małych pakietach, a nie o przepustowości); to przytłacza sieciowy „tunel”, który stworzył PulseAudio, tzn. masz
Mógłbym rozwiązać ten problem, umieszczając zarówno klienta, jak i serwer we własnej sieci wirtualnej, zapewniając im efektywnie nieskończenie szybką łączność (10 Gb / s) między nimi; oczywiście to nie działa w sieciach w świecie rzeczywistym :)
Trochę googlowania i ten post i ten podsunęły mi pomysł upuszczenia tunelu (pośrednik, jak trafnie to ujął Dave) i umożliwienia klientowi rozmowy bezpośrednio z serwerem, tj.
I to działało dla mnie; Filmy Flash / dźwięk odtwarzają się bezbłędnie.
Spróbujmy!
Zakłada się, że twój klient-serwer jest w sieci lokalnej (router itp.)
Wstęp: Na komputerze klienckim, jeśli masz istniejącą konfigurację, otwórz
paprefs
i odznacz wszystko ; następnie dla pewności zabij PulseAudio.Na serwerze (tj. Tym z głośnikami) uruchom Preferencje PA (
paprefs
) i skonfiguruj go w następujący sposób:Jeśli go nie widzisz, otwórz
paprefs
ponownie i zaznacz pozostałe pola na kartach Dostęp do sieci i Serwer sieci (nie boli)Upewnij się, że znasz adres IP serwera - użyj
ifconfig
itp. Użyjemy192.168.0.4
w naszym przykładzie.Na komputerze klienckim otwórz terminal i najpierw przetestuj nasze bezpośrednie połączenie za pomocą próbki mowy WAV (zastąp 192.168 ... adresem IP swojego serwera!)
Teraz zamknij wszystkie działające instancje przeglądarki, a następnie uruchom je (zakładając, że Firefox ma następującą składnię):
Zastąp
192...
odpowiedni adres IP swojego serwera!W tym wystąpieniu Firefoksa otwórz Youtube (lub dowolną witrynę Flash) i spróbuj odtworzyć wideo --- kciuki, powinno działać bez zacinania się / pauzy!
Niech się przyklei
Jeśli chcesz, aby ta poprawka dotyczyła wszystkich programów, zamiast umieszczać
PULSE_SERVER=192.168.0.4:4713
przed każdym poleceniem, edytuj/etc/environment
na kliencie i dodajPULSE_SERVER=192.168.0.4:4713
nowy wiersz na końcu pliku. Dodaj także podział linii na końcu.Spowoduje to, że cały dźwięk na kliencie przejdzie na serwer Pulseaudio, więc upewnij się, że tego właśnie chcesz przed dokonaniem tej edycji
/etc/environment
pliku.Uruchom ponownie i ciesz się gładkim dźwiękiem. ;)
źródło
female.wav
nie działał .../etc/pulse/system.pa
na kliencie :load-module module-native-protocol-tcp auth-anonymous=1
; zapisz, zabij pulseaudio i spróbuj teraz.load-module module-native-protocol-tcp auth-anonymous=1;
wiersz/etc/pulse/system.pa
powinien zostać uwzględniony w odpowiedzi, czy może był to element procesu diagnostycznego, który można odrzucić?Jeśli problemem jest Gnash, oto jak to naprawić:
Zamknij wszystkie przeglądarki i uruchom następujące polecenia:
to sudo apt-get install Adobe Flashplugin
naprawiło to moje problemy: w zasadzie usuwa wszystko związane z Gnash i instaluje Flasha.
źródło
Myślę, że twój problem może być związany z Flash Playerem.
Istnieje wtyczka FireFox Flash-Aid, która instaluje wersję Flash Appx zgodnie z Twoim środowiskiem.
źródło
Udało mi się rozwiązać problem z odwróceniem koloru wideo poprzez odznaczenie (wyłączenie) pola wyboru Włącz przyspieszenie sprzętowe po kliknięciu prawym przyciskiem myszy odtwarzacza Flash i kliknięciu opcji Ustawienia (Odśwież, aby zobaczyć jego efekt).
Mam takie same problemy z zacinaniem się dźwięku jak ty. Działa początkowo, a potem po chwili zaczyna się jąkanie. Mam nadzieję, że ktoś może to naprawić - chociaż jestem ciekawy, jak można ominąć pulsacyjny serwer audio, aby uzyskać dźwięk (używam laptopa bez potrzeby sieciowego audio) .
(Mam Flash 11.2 r202 na Firefox Kubuntu 12.04 amd64)
źródło
Czy masz zainstalowany MIXX dj Player? Czasami miesza się z serwerem dźwięku. Przynajmniej jeśli go zainstalujesz, zmieni domyślny motyw dźwiękowy „ubuntu” na freedesktop.
Możesz spróbować zainstalować „Preferencje PulseAudio” z centrum oprogramowania Ubuntu.
Istnieje kilka opcji konfiguracji związanych z siecią.
źródło
Mam ten sam problem i nie znalazłem jeszcze idealnego rozwiązania problemu. Zauważyłem kilka rzeczy, które mogą ci pomóc:
1) Zdarza mi się to z Flashem, ale czasem także z wersją HTML5 youtube. Czy to też się zdarza dla ciebie? ( http://www.youtube.com/html5/ możesz tutaj włączyć wersję HTML5 youtube). Sugeruje to, że problem nie dotyczy wyłącznie flashowania (ale może w jakiś sposób przeglądarki?)
2) Mogę sprawić, aby dźwięk działał poprawnie, tak jak ty, bez wchodzenia na serwer, używając pavucontrol, ustawiając urządzenie wyjściowe na urządzenie lokalne, a następnie z powrotem na serwer zdalny. To rozwiązuje problem zacinania się dźwięku oraz losowych pauz i przeskoków wideo. To niestety działa tylko do momentu rozpoczęcia następnego filmu.
3) Jestem całkiem pewien, że podczas przeglądania tego problemu natknąłem się na niektóre osoby, które mówiły, że problem dotyczy liczników zegara klienta i serwera nie jest poprawnie połączony, i to jest resetowane przez ponowne uruchomienie serwera lub ponowne połączenie z klient (tj. pkt 2). Spróbuję to dla ciebie wykopać.
Nie mogłem znaleźć obiecanej dyskusji, ale znalazłem podstawowe informacje na temat planowania opartego na zegarze: http://0pointer.de/blog/projects/pulse-glitch-free.html
źródło
Bardzo się cieszę, że w końcu znalazłem tę stronę.
Miałem ten problem od wielu wersji Ubuntu (zaczęło się paskudnie, gdy padevchooser został porzucony), a teraz z Arch. Rozwiązanie, aby ustawić i wyeksportować zmienną środowiskową PULSE_SERVER przed uruchomieniem przeglądarki, zawsze działało dobrze dla mnie. Nie trzeba nic zmieniać na serwerze.
Ale jest jedna rzecz, której nie rozumiem: kiedy uruchamiam przeglądarkę (Chromium) z terminala w środowisku pulpitu, dźwięk działa. Kiedy uruchamiam przeglądarkę z programu uruchamiającego (Xfce, Gnome, ...), tak jak powinno być normalnie, występują problemy opisane powyżej. Myślę, że ma to coś wspólnego ze zmiennymi środowiskowymi X11, ale to przekracza moje umiejętności.
Dla mnie rozwiązałem problem, edytując mój
chromium.desktop
plik i dodając tam Pulse-Server:Exec=sh -c "PULSE_SERVER=mice.local chromium %U"
źródło
Musisz mieć te wtyczki w Firefoksie, aby bezbłędnie uruchamiać dowolne media. Sprawdź, który masz, a który nie.
Profil powinien wyglądać tak:
źródło
Znalazłem rozwiązanie, aby naprawić jąkanie podczas korzystania z zlewu tunelowego.
Wszystko, co musisz zrobić, to pobrać Flash Player w wersji 10.3 (który również obsługuje przyspieszenie sprzętowe, Adobe upuścił go w wersji 11).
Oto plik binarny x86_64
Aby zainstalować, wypakuj
libflashplayer.so
bibliotekę do~/.mozilla/plugins
katalogu lub zmień bieżący link za pomocąupdate-alternatives
.Należy pamiętać, że wersja 10.3 ma wiele luk w zabezpieczeniach, więc używasz jej na własne ryzyko.
źródło