Flash en los navegadores no reproduce el sonido con precisión utilizando el audio de red Pulse

17

Uso PulseAudio para enviar sonido a través de la LAN a un servidor de audio.

Al reproducir cualquier contenido multimedia Flash en Firefox o Chrome, el sonido vibra ( ejemplo ), como si el volumen subiera y bajara cada segundo.

Descubrí que puedo detener el sonido si sigo estos pasos:

  • Iniciar un video Flash, como un video en YouTube

  • Ejecute pulseaudio --kill en el servidor

  • Espere unos 7 segundos

Después de esto, el servidor PulseAudio reaparece automáticamente y el sonido en el video Flash está bien.

El problema es que tengo que hacer esto todas las veces Empiezo un video Flash. Esto obviamente no es deseable.

¿Cómo hago lo que sea que hace que el sonido funcione cuando sigo estos pasos para no tener que hacerlos?

Dudo que alguien presente una solución inmediata y simple (aunque sería bueno), por lo que la recompensa podría ir a cualquiera que proporcione al menos un método para diagnosticar el problema.

Detalles

Aquí están las configuraciones de salida de mi dispositivo de sonido. Por lo que puedo decir, los cuatro dispositivos apuntan al mismo dispositivo físico exacto.

Salida de registro PulseAudio , tomada al intentar reproducir un video Flash.

Intenté obtener detalles de registro de Flash, pero a pesar de instalar y habilitar Flash para la depuración, no generó ninguna salida en todo .

El problema no se muestra con ningún otro software, por lo que estoy razonablemente seguro de que es específico de cómo Flash interactúa con mi configuración de sonido.

Aquí hay un resultado de error que podría ser útil:

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

Aquí está el resultado de pactl list de el servidor (computadora con parlantes) .

Aquí está el resultado de pactl list de el cliente .

    
pregunta Questioner 13.04.2017 - 12:25

9 respuestas

10

Prefacio

Pude replicar el problema de Dave en experimentos, y me llevan a creer que Flash está de alguna manera enviando el sonido a PulseAudio de tal manera que crea mucho tráfico de red (piense en muchos paquetes pequeños, no en ancho de banda) ; esto abruma el "túnel" de red que PulseAudio ha creado, es decir, usted tiene

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

Podría resolver el problema colocando el cliente y el servidor en su propia red virtual, dándoles una conectividad infinitamente rápida (10 Gbits / seg) entre ellos; obviamente, eso no funciona para las redes del mundo real:)

Así que, un poco de googlear y esta publicación y éste me dieron la idea de abandonar el túnel (intermediario, como bien lo dijo Dave), y hacer que el cliente hable directamente con el servidor, es decir,

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

Y eso funcionó para mí; Flash videos / reproducción de sonido sin problemas.

¡Probémoslo!

Esto supone que su cliente-servidor se encuentra en una red local (enrutador, etc.)

  1. Preliminar: en la máquina cliente, si tiene una configuración existente, abra paprefs y desmarque todo ; luego mata a PulseAudio para estar seguro.

  2. En la máquina del servidor (es decir, la que tiene los altavoces), inicie Preferencias de PA ( paprefs ) y configúrelo de la siguiente manera:

    • Luego ciérrelo, y elimine PulseAudio en un terminal como se muestra, espere y verifique que ahora esté escuchando en el puerto 4713:

    • Si no lo ve, abra paprefs nuevamente y marque los recuadros restantes en las pestañas Acceso de red y Servidor de red (no hacen daño)

    • Asegúrese de conocer la dirección IP del servidor: use ifconfig , etc. Usaremos 192.168.0.4 en nuestro ejemplo.

  3. En la máquina cliente, abra una terminal y pruebe primero nuestra conexión directa, con una muestra de voz WAV (reemplace 192.168 ... con su IP de servidor!)

    wget http://www.signalogic.com/melp/EngSamples/Orig/female.wav
    paplay --server=192.168.0.4:4713 female.wav
    
    • Abortar con Ctrl-C si funciona, puede ser aburrido;)

Ahora, cierre todas las instancias del navegador en ejecución y luego inícielo (suponiendo que Firefox está aquí con la siguiente sintaxis):

PULSE_SERVER=192.168.0.4:4713 firefox &
  • ¡Reemplaza 192... con la IP apropiada para tu servidor!

  • En esa instancia de Firefox, abre Youtube (o cualquier sitio de Flash video), e intenta reproducir videos de vuelta --- ¡dedos cruzados, debería funcionar sin tartamudear / pausar!

Hacer que se adhiera

Si desea que esta corrección se aplique a todos los programas en lugar de tener que poner PULSE_SERVER=192.168.0.4:4713 delante de cada comando, edite /etc/environment en el cliente y agregue PULSE_SERVER=192.168.0.4:4713 en un nuevo línea al final del archivo. También agregue un salto de línea al final.

Esto hará que el sonido todo en el cliente vaya al servidor Pulseaudio, así que asegúrese de que eso es lo que quiere antes de hacer esta edición en su archivo /etc/environment .

Reinicia y disfruta de una experiencia de audio deslumbrante. ;)

    
respondido por el izx 07.08.2012 - 06:44
3

Si el problema es Gnash aquí, es cómo solucionarlo:

Cierre todos los navegadores y ejecute estos comandos:

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

luego esto     sudo apt-get install adobe-flashplugin

esto solucionó mis problemas: básicamente elimina todo lo relacionado con Gnash e instala Flash.

    
respondido por el zeitue 27.04.2012 - 06:24
2

Creo que su problema podría estar relacionado con el reproductor flash.

Hay un complemento de FireFox Flash-Aid que instala la versión de appx flash de acuerdo a su entorno.

    
respondido por el Searock 26.04.2012 - 17:46
2

Pude solucionar el problema de inversión de color del video desactivando (deshabilitando) la casilla de verificación Activar aceleración de hardware al hacer clic con el botón derecho en el reproductor flash y hacer clic en Configuración (Refrescar para ver su efecto).

Tengo los mismos problemas de audio que tú. Funciona inicialmente, luego, después de un rato, comienza el tartamudeo. Espero que alguien pueda solucionarlo, aunque tengo curiosidad por saber cómo evitar el servidor de audio de pulso para obtener sonido (solo estoy usando una computadora portátil sin necesidad de audio de red). .

(Tengo Flash 11.2 r202 en Firefox Kubuntu 12.04 amd64)

    
respondido por el pd12 11.06.2012 - 17:00
2

¿Tienes MIXX dj Player instalado? A veces se equivoca con el servidor de sonido. Al menos, si lo instala, cambiará su tema de sonido predeterminado "ubuntu" a freedesktop.

Puede intentar instalar "Preferencias de PulseAudio" desde el centro de software de Ubuntu.
Hay algunas opciones de configuración relacionadas con la red.

    
respondido por el Curious Apprentice 28.04.2012 - 12:32
1

Tengo el mismo problema y aún no he encontrado una solución perfecta para el problema. He notado algunas cosas que pueden ayudarte:

1) Me pasa con flash, pero también a veces con la versión html5 de youtube. ¿Esto también te pasa? ( enlace puedes habilitar la versión html5 de youtube aquí). Esto sugiere que el problema no es exclusivo de flash (¿pero quizás de alguna manera los navegadores?)

2) Puedo hacer que el sonido funcione como usted sin tener que ir al servidor usando pavucontrol configurando el dispositivo de salida en el dispositivo local y luego de vuelta al servidor remoto. Esto resuelve el tartamudeo de audio y pausas y saltos aleatorios de video. Esto, por desgracia, solo funciona hasta que comience el siguiente video.

3) Estoy bastante seguro de que, mientras buscaba en Google este problema, me encontré con algunas personas que decían que el problema estaba relacionado con los contadores del reloj del cliente y el servidor no se conectaba correctamente y eso es lo que reinicia al reiniciar el servidor o reconectando con el cliente (es decir, el punto 2). Trataré de averiguarlo por ti.

No pude encontrar la discusión prometida, pero encontré información de contexto sobre la programación basada en temporizador: enlace

    
respondido por el HansHarhoff 29.07.2012 - 14:12
1

Estoy muy contento de haber encontrado esta página finalmente.

He tenido este problema desde muchas versiones de Ubuntu (comenzó a ponerse desagradable cuando se abandonó padevchooser) y ahora con Arch. La solución para configurar & amp; exportar la variable de entorno PULSE_SERVER antes de iniciar el navegador siempre me ha funcionado. No es necesario cambiar nada en el servidor.

Pero hay una cosa que no entiendo: cuando inicio mi navegador (Chromium) desde una terminal dentro del entorno de escritorio, el sonido funciona. Cuando inicio el navegador desde un iniciador (Xfce, Gnome, ...) como debería ser normalmente, los problemas descritos anteriormente están ahí. Creo que tiene algo que ver con las variables de entorno X11, pero esto está más allá de mis habilidades.

Para mí, resolví el problema editando mi archivo chromium.desktop y agregando el servidor de pulsos allí:

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

    
respondido por el Armin Hahn 07.09.2013 - 20:56
1

Necesitas tener estos complementos en firefox para ejecutar de manera impecable cualquier medio. Comprueba cuál tienes y cuál no.

El perfil debería ser este:

    
respondido por el Curious Apprentice 30.04.2012 - 01:44
0

Encontré una solución para arreglar el tartamudeo al usar module-tunnel-sink.

Todo lo que tiene que hacer es descargar la versión 10.3 de Flash Player (que también admite la aceleración de hardware, Adobe la eliminó en la versión 11).

Aquí está el binario x86_64

Para instalarlo, extrae libflashplayer.so library a ~/.mozilla/plugins directory o cambia el enlace actual usando update-alternatives .

Tenga en cuenta que la versión 10.3 tiene muchas vulnerabilidades de seguridad, por lo que la usa bajo su propio riesgo.

    
respondido por el patataj 11.03.2017 - 21:40

Lea otras preguntas en las etiquetas