Il flash nei browser non riproduce correttamente il suono utilizzando l'audio di rete Pulse

17

Uso PulseAudio per inviare il suono sulla LAN a un server audio.

Durante la riproduzione di qualsiasi supporto Flash in Firefox o Chrome, il suono flutter ( esempio ), come se il volume salisse e scendesse ogni secondo.

Ho scoperto che posso interrompere il suono svolazzante se seguo questi passaggi:

  • Avvia un video Flash, ad esempio un video su YouTube

  • Esegui pulseaudio --kill sul server

  • Attendi circa 7 secondi

Dopo questo, il server PulseAudio si rigenera automaticamente e il suono nel video Flash va bene.

Il problema è che devo fare questo ogni volta avvio un video Flash. Questo ovviamente non è desiderabile.

Come faccio a fare tutto ciò che fa funzionare il suono quando passo attraverso questi passaggi in modo da non doverli fare?

Dubito che qualcuno troverà una soluzione immediata e semplice (anche se sarebbe bello), quindi la taglia potrebbe andare a chiunque fornisca almeno un metodo per diagonizzare il problema.

Dettagli

Ecco le impostazioni di uscita del mio dispositivo audio. Per quanto ne so, tutti e quattro i dispositivi puntano allo stesso identico dispositivo fisico.

Uscita del registro PulseAudio , scattata durante il tentativo di riprodurre un video Flash.

Ho cercato di ottenere i dettagli di registrazione da Flash, ma nonostante l'installazione e l'attivazione di Flash per il debug, non ha generato alcuna uscita a tutto .

Il problema non si presenta con nessun altro software, quindi sono ragionevolmente certo che sia specifico del modo in cui Flash interagisce con la mia configurazione audio.

Ecco alcuni output di errore che potrebbero essere utili:

$ 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.

Ecco l'output da pactl list da il server (computer con altoparlanti) .

Ecco l'output da pactl list da il cliente .

    
posta Questioner 13.04.2017 - 14:25

9 risposte

10

Prefazione

Sono stato in grado di replicare il problema di Dave in esperimenti e mi hanno portato a credere che Flash stia in qualche modo inviando il suono a PulseAudio in modo tale da creare un sacco di traffico di rete (molti pacchetti minuscoli, non larghezza di banda) ; questo travolge il "tunnel" di rete che PulseAudio ha creato, ovvero

Youtube => [PA-client => network => PA-server] => speakers

Potrei risolvere il problema mettendo sia il client che il server sulla propria rete virtuale, offrendo loro una connettività infinitamente veloce (10 Gbit / sec) tra di loro; ovviamente, questo non funziona per le reti del mondo reale:)

Quindi, un po 'di googling e questo post e questo mi ha dato l'idea di far cadere il tunnel (middleman, come Dave ha giustamente messo), e avere il client parla direttamente al server, cioè

Youtube => network => PA-server => speakers

E quello ha funzionato per me; Flash video / suono riproducono in modo impeccabile.

Provalo!

Questo presuppone che il tuo client-server sia su una rete locale (router, ecc.)

  1. Preliminare: sul computer client, se hai una configurazione esistente, apri paprefs e deseleziona tutto ; quindi uccidi PulseAudio per essere sicuro.

  2. Sulla macchina server (vale a dire, quella con i diffusori), avvia PA Preferences ( paprefs ) e impostala come segue:

    • Quindi chiudilo e uccidi PulseAudio in un terminale come mostrato, aspetta e verifica che sia ora in ascolto sulla porta 4713:

    • Se non lo vedi, apri paprefs di nuovo e controlla le rimanenti caselle nelle schede Accesso di rete e Server di rete (non fanno male)

    • Assicurati di conoscere l'indirizzo IP del server - usa ifconfig , ecc. Nel nostro esempio utilizzeremo 192.168.0.4 .

  3. Sul computer client, apri un terminale e verifica prima la connessione diretta, con un esempio vocale WAV (sostituisci 192.168 ... con il tuo IP del server!)

    wget http://www.signalogic.com/melp/EngSamples/Orig/female.wav
    paplay --server=192.168.0.4:4713 female.wav
    
    • Annulla con Ctrl-C se funziona, può diventare noioso;)

Ora, chiudi tutte le istanze del browser in esecuzione, quindi avvialo (assumendo Firefox qui con la seguente sintassi):

PULSE_SERVER=192.168.0.4:4713 firefox &
  • Sostituisci 192... con l'IP appropriato per il tuo server!

  • In questa istanza di Firefox, apri YouTube (o qualsiasi sito di video Flash) e prova a riprodurre i video --- dita incrociate, dovrebbe funzionare senza rallentamenti / pause!

Mantieni il bastone

Se vuoi applicare questa correzione a tutti i programmi invece di dover mettere PULSE_SERVER=192.168.0.4:4713 davanti a ogni comando, modifica /etc/environment sul client e aggiungi PULSE_SERVER=192.168.0.4:4713 a una nuova linea alla fine del file. Aggiungi anche un'interruzione di riga alla fine.

Questo renderà tutto il suono sul client andare al server Pulseaudio, quindi assicurati che sia quello che vuoi prima di apportare questa modifica al tuo file /etc/environment .

Riavvia e goditi un'esperienza audio deliziosa. ;)

    
risposta data izx 07.08.2012 - 08:44
3

Se il problema è Gnash, ecco come risolverlo:

Chiudi tutti i browser ed esegui questi comandi:

sudo apt-get purge gnash mozilla-plugin-gnash adobe-flashplugin

allora questo     sudo apt-get install adobe-flashplugin

questo ha risolto i miei problemi: in pratica rimuove tutto ciò che riguarda Gnash e installa Flash.

    
risposta data zeitue 27.04.2012 - 08:24
2

Penso che il tuo problema potrebbe essere correlato al flash player.

C'è un plugin FireFox Flash-Aid che installa la versione di appx flash secondo al tuo ambiente.

    
risposta data Searock 26.04.2012 - 19:46
2

Sono stato in grado di correggere il problema dell'inversione dei colori del video deselezionando (disattivando) la casella di controllo Abilita accelerazione hardware quando fai clic con il pulsante destro del mouse sul flash player e fai clic su Impostazioni (Aggiorna per vedere il suo effetto).

Ho gli stessi problemi di audio-balbuzie di te. Funziona inizialmente, poi dopo un po 'inizia la balbuzie. Speriamo che qualcuno possa aggiustarlo - anche se sono curioso di sapere come si può ignorare il server audio a impulsi per ottenere il suono (sto solo usando un laptop senza bisogno di audio di rete) .

(Ho Flash 11.2 r202 su Firefox Kubuntu 12.04 amd64)

    
risposta data pd12 11.06.2012 - 19:00
2

Hai installato MIXX dj Player? A volte incasina il server audio. Se lo installi, Atleast cambierà il tuo tema sonoro predefinito "ubuntu" in freedesktop.

Puoi provare a installare "PulseAudio Preferences" dal centro del software Ubuntu.
Ci sono alcune opzioni di configurazione relative alla rete.

    
risposta data Curious Apprentice 28.04.2012 - 14:32
1

Ho lo stesso problema e non ho ancora trovato una soluzione perfetta al problema. Ho notato alcune cose che potrebbero aiutarti:

1) Succede per me con il flash, ma a volte anche con la versione html5 di youtube. Succede anche per te? ( link puoi abilitare qui la versione html5 di youtube). Questo suggerisce che il problema non è esclusivo di flash (ma forse in qualche modo i browser?)

2) Posso far funzionare correttamente il suono come te senza andare al server usando pavucontrol impostando il dispositivo di output sul dispositivo locale e poi di nuovo sul server remoto. Questo risolve la balbuzie di audio e pause casuali e salti di video. Questo purtroppo funziona solo fino all'avvio del prossimo video.

3) Sono abbastanza sicuro che mentre cercavo su Google questo problema mi sono imbattuto in alcune persone che dicevano che il problema era legato ai contatori del clock del client e che il server non era collegato correttamente e questo è ciò che viene ripristinato riavviando il server o ricollegamento con il cliente (es. punto 2). Cercherò di scoprirlo per te.

Non sono riuscito a trovare la discussione promessa, ma ho trovato alcune informazioni di base sulla pianificazione basata su timer: link

    
risposta data HansHarhoff 29.07.2012 - 16:12
1

Sono davvero contento di aver finalmente trovato questa pagina.

Ho avuto questo problema da molte versioni di Ubuntu (ha iniziato a diventare sgradevole quando padevchooser è stato abbandonato) e ora con Arch. La soluzione per impostare & amp; esportare la variabile d'ambiente PULSE_SERVER prima di avviare il browser ha sempre funzionato bene per me. Non è necessario modificare nulla sul server.

Ma c'è una cosa che non capisco: quando avvio il mio browser (Chromium) da un terminale all'interno dell'ambiente desktop, il suono funziona. Quando avvio il browser da un launcher (Xfce, Gnome, ...) come dovrebbe essere normalmente, i problemi descritti sopra sono presenti. Penso che abbia qualcosa a che fare con le variabili di ambiente X11, ma questo va oltre le mie capacità.

Per me ho risolto il problema ora modificando il mio file chromium.desktop e aggiungendo il Pulse-Server lì:

Exec=sh -c "PULSE_SERVER=mice.local chromium %U"

    
risposta data Armin Hahn 07.09.2013 - 22:56
1

Devi avere questi plugin su firefox per eseguire senza problemi qualsiasi supporto. Controlla quale hai e quale no.

Il profilo dovrebbe essere questo:

    
risposta data Curious Apprentice 30.04.2012 - 03:44
0

Ho trovato una soluzione per correggere la balbuzie mentre utilizzo il sink del tunnel dei moduli.

Tutto ciò che devi fare è scaricare la versione 10.3 di Flash Player (che ha anche il supporto per l'accelerazione hardware, Adobe lo ha abbandonato nella versione 11).

Ecco il file binario x86_64

Per installarlo estrai libflashplayer.so library in ~/.mozilla/plugins directory o modifica il link corrente usando update-alternatives .

Tieni presente che la versione 10.3 presenta molte vulnerabilità di sicurezza, quindi la usi a tuo rischio.

    
risposta data patataj 11.03.2017 - 22:40

Leggi altre domande sui tag