Flash nei browser non riproduce l'audio in modo accurato utilizzando l'audio della rete Pulse


18

Uso PulseAudio per inviare l'audio tramite LAN a un server audio.

Durante la riproduzione di qualsiasi supporto Flash in Firefox o Chrome, il suono si alza ( esempio ), come se il volume aumentasse e diminuisse ogni secondo.

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

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

  • Esegui pulseaudio --killsul server

  • Attendere circa 7 secondi

Successivamente, il server PulseAudio viene rigenerato automaticamente e il suono nel video Flash va bene.

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

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

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


Dettagli

Ecco le impostazioni di uscita del mio dispositivo audio. Per quanto ne so, tutti e quattro i dispositivi indicano esattamente lo stesso dispositivo fisico.

impostazioni audio

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

Ho cercato di ottenere i dettagli di registrazione da Flash, ma nonostante l'installazione e l'abilitazione di Flash per il debug, non ha generato alcun risultato .

Il problema non si manifesta 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 pactl listdal server (computer con gli altoparlanti) .

Ecco l'output pactl listdal client .


Che tipo di connessione di rete esiste tra l'origine / il sink?
Ish,

@izx: non so cosa intendi per "sorgente / sink". Se questo è un altro modo di dire "server / client", allora è una connessione LAN ethernet. Se è qualcos'altro, dovrai spiegare cosa intendi.
Interrogante

Dave, puoi unirti alla chat room? Penso di avere probabilmente una soluzione, ma devo parlare ...
ish,

In caso contrario, intendevo solo cablato o wireless e alcuni dettagli, ad esempio cablato = router da 100 MBps, ecc. O wireless = 802.11G, N, ecc.
ish

@izx: Oh, capisco. È una LAN cablata con un router tra di loro. Credo che sia 100 Mbps. Penso che il client sia in grado di 1GBps, ma la scheda LAN del server è ancora 100GBps. Se questo è importante e c'è un comando che posso eseguire per ottenere una velocità esatta, per favore fatemi sapere.
Interrogante

Risposte:


10

Prefazione

Sono stato in grado di replicare il problema di Dave negli esperimenti e mi portano a credere che Flash in qualche modo stia inviando il suono a PulseAudio in modo tale da creare molto traffico di rete (pensa a molti piccoli pacchetti, non a larghezza di banda); questo travolge la rete "tunnel" che PulseAudio ha creato, cioè che hai

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

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

Quindi, un po 'di googling e questo post e questo mi hanno dato l'idea di abbandonare il tunnel (intermediario, come Dave lo ha giustamente messo) e di far parlare il client direttamente al server, cioè

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

E quello ha funzionato per me; I video / suoni flash vengono riprodotti in modo impeccabile.

Proviamolo!

Ciò presuppone che il server client sia su una rete locale (router, ecc.)

  1. Preliminare: sul computer client, se si dispone di un'installazione esistente, aprire paprefse deselezionare tutto ; quindi uccidi PulseAudio per essere sicuro.

  2. Sul computer server (ovvero quello con gli altoparlanti), avviare Preferenze PA ( paprefs) e configurarlo come segue:

    inserisci qui la descrizione dell'immagine inserisci qui la descrizione dell'immagine inserisci qui la descrizione dell'immagine inserisci qui la descrizione dell'immagine

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

    inserisci qui la descrizione dell'immagine

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

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

  3. Sul computer client, apri un terminale e testa prima la nostra connessione diretta, con un WAV di esempio vocale (sostituisci 192.168 ... con l' IP del tuo 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 e quindi avviarlo (supponendo che Firefox abbia la sintassi seguente):

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

  • In quell'istanza di Firefox, apri Youtube (o qualsiasi altro sito di video Flash) e prova a riprodurre i video --- dita incrociate, dovrebbe funzionare senza balbettare / mettere in pausa!

Fallo attaccare

Se si desidera applicare questa correzione a tutti i programmi invece di dover inserire PULSE_SERVER=192.168.0.4:4713tutti i comandi, modificare /etc/environmentsul client e aggiungerePULSE_SERVER=192.168.0.4:4713 una nuova riga alla fine del file. Aggiungi anche un'interruzione di riga alla fine.

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

Riavvia e goditi un'esperienza audio fluida. ;)


Qualche firewall sulla strada? e metti 192.168.0.4 ovunque, giusto? Prova comunque il firefox anche se female.wavnon ha funzionato ...
ish,

Argh, ho dimenticato un passo - si prega di aggiungere questa linea alla fine /etc/pulse/system.pa sul client : load-module module-native-protocol-tcp auth-anonymous=1; salva, uccidi pulseaudio e prova ora.
Ish,

Sì, il client: le impostazioni paprefs sul server avrebbero già dovuto abilitarlo. Potresti anche aggiungerlo anche al server, non ti farà male ...
Ish,

@DaveMG: Mi spiace, suppongo che per ora avresti decommentato quelle due righe sul client. Mi dispiace, è stato occupato per l'ultimo giorno o giù di lì e non acceso. Ritornerò alle 11:30 JST e potremo riprendere. Nel frattempo, potresti trovare questi due video della configurazione predefinita del tunnel che ho reso interessante: balbuzie , lavoro
ish

Proprio per questo, ho modificato la risposta e sto consolidando i commenti, quindi è un po 'più chiaro per chiunque possa leggere questa risposta (ecco perché i miei commenti sono stati rimossi). Mi stavo solo chiedendo se la load-module module-native-protocol-tcp auth-anonymous=1;linea di /etc/pulse/system.paingresso dovesse essere inclusa nella risposta, o se fosse parte del processo diagnostico che poteva essere scartato?
Interrogante

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

quindi questo sudo apt-get installa adobe-flashplugin

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


dimmi se funziona
zeitue,

Grazie per i suggerimenti Secondo la mia domanda aggiornata, tuttavia, la modifica del plug-in Flash non sembra aiutare il problema.
Interrogante

2

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

Esiste un plug -in FireFox Flash-Aid che installa la versione flash di appx in base al proprio ambiente.


Grazie per il consiglio. Scaricato, installato, provato diverse varianti di Flash. Sfortunatamente, il problema del suono pulsante persiste.
Interrogante

2

Sono stato in grado di risolvere il problema di inversione del colore del video deselezionando (disabilitando) la casella di controllo Abilita accelerazione hardware quando fai clic con il pulsante destro del mouse su Flash Player e fai clic su Impostazioni (Aggiorna per vedere il suo effetto).

Ho i tuoi stessi problemi di balbuzie audio. Funziona inizialmente, poi dopo un po 'inizia la balbuzie. Spero che qualcuno possa risolvere questo problema - anche se sono curioso di sapere come puoi bypassare il server audio a impulsi per ottenere l'audio (sto solo usando un laptop senza necessità di audio di rete) .

(Ho Flash 11.2 r202 su Firefox Kubuntu 12.04 amd64)


Grazie per il suggerimento Ho provato ad abilitare e disabilitare l'accelerazione hardware, ma non sembra cambiare nulla per me. Inoltre, non so cosa intendi per "bypassare l'audio dell'impulso".
Interrogante

2

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

Puoi provare a installare "Preferenze PulseAudio" dal centro software Ubuntu.
Esistono alcune opzioni di configurazione relative alla rete.


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 Flash, ma a volte anche con la versione HTML5 di YouTube. Questo succede anche per te? ( http://www.youtube.com/html5/ puoi abilitare la versione html5 di YouTube qui). Ciò 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 quindi di nuovo sul server remoto. Questo risolve la balbuzie dell'audio e pause e salti casuali di video. Questo ahimè funziona solo fino all'inizio del prossimo video.

3) Sono abbastanza sicuro che durante la ricerca su Google di questo problema mi sono imbattuto in alcune persone dicendo che il problema era correlato ai contatori di clock del client e al server non collegato correttamente e che è ciò che viene ripristinato riavviando il server o riconnettendosi con il cliente (es. punto 2). Proverò a scavare per te.

Non sono riuscito a trovare la discussione promessa, ma ho trovato alcune informazioni di base sulla pianificazione basata sul timer: http://0pointer.de/blog/projects/pulse-glitch-free.html


+1 per avermi fatto sapere che non sono solo nell'universo! Per il punto 1, ho provato ad usare la versione html5 di YouTube mentre cercavo di risolverlo, ma i video non venivano riprodotti correttamente e in un modo completamente diverso, quindi ho ritenuto che fosse un po 'inconcludente (forse è un problema diverso). Per il punto 2, questo è interessante e vedrò se funziona anche per me. Sembra una soluzione alternativa allo stesso problema. E il punto 3 è l'informazione più incoraggiante, in quanto ha il potenziale per iniziare a condurre a una spiegazione effettiva della causa. Grazie per aver risposto!
Interrogante

Nessun problema. Ho cercato le informazioni a cui mi riferivo, ma non sono riuscito a trovarle di nuovo.
HansHarhoff,

1
Ho pubblicato una segnalazione di bug sul launchpad qui: bugs.launchpad.net/ubuntu/+source/pulseaudio/+bug/1030559 Vediamo se questo ci dà alcuni suggerimenti.
HansHarhoff,

Bello. Ho pubblicato un commento sul bug, quindi spero di essere avvisato di eventuali aggiornamenti. Non avevo pubblicato la mia segnalazione di bug perché non riuscivo mai a capire come usare Apport in modo tale da poter fare una segnalazione di bug in assenza di un particolare crash del software.
Interrogante

1

Sono davvero contento di aver finalmente trovato questa pagina.

Ho avuto questo problema da molte versioni di Ubuntu (ha iniziato a diventare brutto quando Padevchooser è stato abbandonato) e ora con Arch. La soluzione per impostare ed esportare la variabile di 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, ci sono i problemi sopra descritti. 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 chromium.desktopfile e aggiungendo il Pulse-Server lì:

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


1

È necessario disporre di questi plugin su Firefox per eseguire in modo impeccabile qualsiasi supporto. Controlla quale hai e quale no.

Il profilo dovrebbe essere questo:


0

Ho trovato una soluzione per correggere la balbuzie durante l'utilizzo del modulo-tunnel-sink.

Tutto quello che devi fare è scaricare Flash Player versione 10.3 (che ha anche il supporto per l'accelerazione hardware, Adobe lo ha rilasciato nella versione 11).

Ecco il binario x86_64

Per installarlo estrarre la libflashplayer.solibreria nella ~/.mozilla/pluginsdirectory o modificare il collegamento corrente utilizzandoupdate-alternatives .

Si noti che la versione 10.3 presenta molte vulnerabilità di sicurezza, quindi la si utilizza a proprio rischio.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.