Uso PulseAudio para enviar sonido a través de la LAN a un servidor de audio.
Al reproducir cualquier medio Flash en Firefox o Chrome, el sonido se agita (por ejemplo ), como si el volumen subiera y bajara cada segundo.
He descubierto que puedo detener el sonido que agita si sigo estos pasos:
Comience un video Flash, como un video en YouTube
Ejecutar
pulseaudio --kill
en el servidorEspera 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 cada vez que inicio un video Flash. Esto obviamente no es deseable.
¿Cómo hago lo que sea que haga que el sonido funcione cuando sigo estos pasos para que no tenga que hacerlos?
Dudo que alguien presente una solución inmediata y simple (aunque eso 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 exactamente al mismo dispositivo físico.
Salida de registro de 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 ha generado ninguna salida .
El problema no se presenta 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 algunos resultados de error que pueden ser útiles:
$ 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á la salida de pactl list
desde el servidor (ordenador con altavoces) .
Aquí está la salida de pactl list
desde el cliente .
fuente
Respuestas:
Prefacio
Pude replicar el problema de Dave en experimentos, y me llevaron a creer que Flash de alguna manera está 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 la red "túnel" que PulseAudio ha creado, es decir, tiene
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 redes del mundo real :)
Entonces, un poco de búsqueda en Google y esta publicación y esta me dieron la idea de soltar el túnel (intermediario, como lo dijo Dave acertadamente), y hacer que el cliente hable directamente con el servidor, es decir
Y eso funcionó para mí; Los videos flash / sonido se reproducen perfectamente.
¡Vamos a intentarlo!
Esto supone que su cliente-servidor está en una red local (enrutador, etc.)
Preliminar: en la máquina cliente, si tiene una configuración existente, abra
paprefs
y desmarque todo ; luego mata PulseAudio para estar seguro.En la máquina del servidor (es decir, la que tiene los altavoces), inicie Preferencias PA (
paprefs
) y configúrelo de la siguiente manera:Si no lo ve, abra
paprefs
nuevamente y marque las casillas restantes en las pestañas Acceso a la red y Servidor de red (no están dañadas)Asegúrese de conocer la dirección IP del servidor: uso
ifconfig
, etc. Lo usaremos192.168.0.4
en nuestro ejemplo.En la máquina del cliente, abra una terminal y pruebe primero nuestra conexión directa, con una muestra de voz WAV (reemplace 192.168 ... ¡con la IP de su servidor!)
Ahora, cierre todas las instancias del navegador en ejecución y luego inícielo (suponiendo que Firefox aquí tenga la siguiente sintaxis):
¡Reemplácelo
192...
con la IP apropiada para su servidor!En esa instancia de Firefox, abra Youtube (o cualquier sitio de videos Flash) e intente reproducir videos de nuevo --- con los dedos cruzados, ¡debería funcionar sin tartamudear / pausar!
Haz que se pegue
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 agreguePULSE_SERVER=192.168.0.4:4713
una nueva línea al final del archivo. Agregue también un salto de línea al final.Esto hará que todo el sonido del cliente vaya al servidor Pulseaudio, así que asegúrese de que eso es lo que desea antes de realizar esta edición en su
/etc/environment
archivo.Reinicia y disfruta de una experiencia de audio excelente. ;)
fuente
female.wav
no funcionó .../etc/pulse/system.pa
en el cliente :load-module module-native-protocol-tcp auth-anonymous=1
; guarde, mate pulseaudio e intente ahora.load-module module-native-protocol-tcp auth-anonymous=1;
línea/etc/pulse/system.pa
debería incluirse en la respuesta, o si era parte del proceso de diagnóstico que se puede descartar.Si el problema es Gnash, aquí está cómo solucionarlo:
Cierre todos los navegadores y ejecute estos comandos:
entonces este sudo apt-get install adobe-flashplugin
Esto solucionó mis problemas: básicamente elimina todo lo relacionado con Gnash e instala Flash.
fuente
Creo que su problema podría estar relacionado con el reproductor flash.
Hay un complemento de FireFox Flash-Aid que instala la versión flash de appx de acuerdo con su entorno.
fuente
Pude solucionar el problema de inversión de color del video desmarcando (deshabilitando) la casilla de verificación Habilitar aceleración de hardware al hacer clic con el botón derecho en Flash Player y hacer clic en Configuración (Actualizar para ver su efecto).
Tengo los mismos problemas de tartamudeo de audio que tú. Funciona inicialmente, luego, después de un tiempo, comienza la tartamudez. Espero que alguien pueda solucionar esto, aunque tengo curiosidad por saber cómo puede 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)
fuente
¿Tiene instalado MIXX dj Player? 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.
fuente
Tengo el mismo problema y todavía 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 sucede a ti? ( http://www.youtube.com/html5/ puede habilitar la versión html5 de youtube aquí). Esto sugiere que el problema no es exclusivo de flash (¿pero quizás de alguna manera navegadores?)
2) Puedo hacer que el sonido funcione correctamente 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 aleatorias y saltos de video. Esto, por desgracia, solo funciona hasta que comience el próximo 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 de reloj del cliente y el servidor no estaba conectado correctamente y eso es lo que se restablece al reiniciar el servidor o volver a conectarse con el cliente (es decir, punto 2). Trataré de desenterrar eso por ti.
No pude encontrar la discusión prometida, pero encontré información de fondo sobre la programación basada en temporizador: http://0pointer.de/blog/projects/pulse-glitch-free.html
fuente
Estoy realmente contento de haber encontrado esta página finalmente.
He tenido este problema desde muchas versiones de Ubuntu (comenzó a ponerse desagradable cuando se abandonó el padevchooser) y ahora con Arch. La solución para configurar y exportar la variable de entorno PULSE_SERVER antes de iniciar el navegador siempre me ha funcionado bien. 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 lanzador (Xfce, Gnome, ...) como debería ser normalmente, los problemas descritos anteriormente están ahí. Creo que eso tiene algo que ver con las variables de entorno X11, pero esto está más allá de mis habilidades.
Para mí, resolví el problema ahora editando mi
chromium.desktop
archivo y agregando el Pulse-Server allí:Exec=sh -c "PULSE_SERVER=mice.local chromium %U"
fuente
Debe tener estos complementos en Firefox para ejecutar sin problemas cualquier medio. Comprueba cuál tienes y cuál no.
El perfil debería ser este:
fuente
Encontré una solución para corregir la tartamudez mientras usa module-tunnel-sink.
Todo lo que tiene que hacer es descargar Flash Player versión 10.3 (que también tiene soporte de aceleración de hardware, Adobe lo dejó en la versión 11).
Aquí está el binario x86_64
Para instalarlo, extraiga la
libflashplayer.so
biblioteca al~/.mozilla/plugins
directorio o cambie el enlace actual usandoupdate-alternatives
.Tenga en cuenta que la versión 10.3 tiene muchas vulnerabilidades de seguridad, por lo que la usa bajo su propio riesgo.
fuente