O flash nos navegadores não reproduz som com precisão usando o áudio de rede Pulse

17

Eu uso o PulseAudio para enviar som pela LAN para um servidor de áudio.

Ao reproduzir qualquer mídia Flash no Firefox ou Chrome, o som flutua ( exemplo ), como se o volume estivesse subindo e descendo todos os segundo.

Eu descobri que posso parar o som vibrando se eu seguir estas etapas:

  • Iniciar um vídeo em Flash, como um vídeo no YouTube

  • Execute pulseaudio --kill no servidor

  • Aguarde cerca de 7 segundos

Depois disso, o servidor do PulseAudio reaparece automaticamente e o som no vídeo em Flash é bom.

O problema é que eu tenho que fazer isso toda vez eu começo um vídeo em Flash. Isso obviamente não é desejável.

Como eu faço o que é que faz o som funcionar quando eu passo essas etapas para que eu não precise fazê-las?

Eu duvido que alguém venha com uma solução imediata e simples (embora isso seja legal), então a recompensa poderia ser dada a qualquer um que forneça pelo menos um método de diagramação do problema.

Detalhes

Aqui estão as minhas configurações de saída do dispositivo de som. Até onde eu sei, todos os quatro dispositivos apontam exatamente para o mesmo dispositivo físico.

Saída de log do PulseAudio , realizada durante a tentativa de reproduzir um vídeo em Flash.

Eu tentei obter detalhes de log do Flash, mas apesar de instalar e habilitar o Flash para depuração, ele não gerou nenhuma saída no Flash. todos .

O problema não é exibido em nenhum outro software, por isso estou razoavelmente certo de que ele é específico de como o Flash interage com o meu som configurado.

Aqui está uma saída de erro que pode 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.

Aqui está a saída de pactl list do servidor (computador com alto-falantes) .

Aqui está a saída de pactl list do cliente .

    
por Questioner 13.04.2017 / 14:25

9 respostas

10

Prefácio

Eu consegui reproduzir o problema de Dave em experimentos, e eles me levaram a acreditar que o Flash está enviando o som para o PulseAudio de tal forma que ele cria muito tráfego de rede (pense em vários pacotes minúsculos, não em largura de banda) ; isso sobrecarrega o "túnel" da rede que o PulseAudio criou, ou seja, você tem

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

Eu poderia resolver o problema colocando o cliente e o servidor em sua própria rede virtual, fornecendo-lhes conectividade infinitamente rápida (10 Gbits / s) entre eles; obviamente, isso não funciona para redes do mundo real:)

Então, um pouco de googling e este post e este deu-me a ideia de largar o túnel (intermediário, como Dave o colocou corretamente), e fazer com que o cliente fale diretamente com o servidor, ou seja,

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

E isso funcionou para mim; Vídeos em Flash / reprodução de som impecável.

Vamos tentar!

Isso pressupõe que seu cliente-servidor esteja em uma rede local (roteador, etc.)

  1. Preliminar: na máquina cliente, se você tiver uma configuração existente, abra paprefs e desmarque tudo ; então mate o PulseAudio para ter certeza.

  2. Na máquina do servidor (ou seja, aquela com os alto-falantes), inicie as Preferências do PA ( paprefs ) e configure-as da seguinte forma:

    • Em seguida, feche-o e mate o PulseAudio em um terminal, como mostrado, aguarde e verifique se está agora escutando na porta 4713:

    • Se você não o visualizar, abra paprefs novamente e verifique as caixas restantes nas guias Acesso à rede e Servidor de rede (elas não causam danos)

    • Verifique se você sabe o endereço IP do servidor - use ifconfig , etc. Usaremos 192.168.0.4 em nosso exemplo.

  3. Na máquina cliente, abra um terminal e teste nossa conexão direta primeiro, com um exemplo de fala WAV (substitua 192.168 ... pelo seu servidor IP!)

    wget http://www.signalogic.com/melp/EngSamples/Orig/female.wav
    paplay --server=192.168.0.4:4713 female.wav
    
    • Abortar com Ctrl-C se funcionar, pode ficar chato;)

Agora, feche todas as instâncias do navegador em execução e, em seguida, inicie-o (assumindo o Firefox aqui com a seguinte sintaxe):

PULSE_SERVER=192.168.0.4:4713 firefox &
  • Substitua 192... pelo IP apropriado para o seu servidor!

  • Nessa instância do Firefox, abra o Youtube (ou qualquer site de vídeo em Flash) e tente reproduzir vídeos de volta --- com os dedos cruzados, deve funcionar sem trepidar / pausar!

Faça-o ficar

Se você quiser fazer essa correção se aplicar a todos os programas em vez de ter que colocar PULSE_SERVER=192.168.0.4:4713 na frente de cada comando, edite /etc/environment no cliente e adicione PULSE_SERVER=192.168.0.4:4713 em um novo linha no final do arquivo. Adicione também uma quebra de linha no final.

Isso fará com que o som all no cliente vá para o servidor Pulseaudio, por isso, certifique-se de que é o que você deseja antes de fazer essa edição no arquivo /etc/environment .

Reinicie e desfrute de uma experiência de áudio smooooooth. ;)

    
por izx 07.08.2012 / 08:44
3

Se o problema for o Gnash, veja como corrigi-lo:

Feche todos os navegadores e execute estes comandos:

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

então este     sudo apt-get instala adobe-flashplugin

isso corrigiu meus problemas: basicamente remove tudo relacionado ao Gnash e instala o Flash.

    
por zeitue 27.04.2012 / 08:24
2

Acho que seu problema pode estar relacionado ao Flash Player.

Existe um Flash-Aid do FireFox que instala a versão flash do appx de acordo para o seu ambiente.

    
por Searock 26.04.2012 / 19:46
2

Consegui corrigir o problema de inversão de cores de vídeo desmarcando (desativando) a caixa de seleção Habilitar aceleração de hardware ao clicar com o botão direito no flash player e clicar em Configurações (Atualize para ver seu efeito).

Eu tenho os mesmos problemas de gagueira de áudio que você. Ele funciona inicialmente, depois de um tempo a gagueira entra em ação. Espero que alguém consiga consertar isso - embora eu esteja curioso para saber como você pode ignorar o servidor de áudio pulsado para obter som (estou usando apenas um laptop sem necessidade de áudio de rede) .

(Eu tenho o Flash 11.2 r202 no Firefox Kubuntu 12.04 amd64)

    
por pd12 11.06.2012 / 19:00
2

Você tem o MIXX dj Player instalado? Às vezes, atrapalha o servidor de som. Pelo menos se você instalá-lo, ele mudará seu tema de som padrão "ubuntu" para freedesktop.

Você pode tentar instalar o "PulseAudio Preferences" do Ubuntu software center.
Existem algumas opções de configuração relacionadas à rede.

    
por Curious Apprentice 28.04.2012 / 14:32
1

Eu tenho o mesmo problema e ainda não encontrei uma solução perfeita para o problema. Eu notei algumas coisas que podem ajudá-lo:

1) Acontece para mim com flash, mas também às vezes com a versão html5 do youtube. Isso também acontece com você? ( link você pode habilitar a versão html5 do youtube aqui). Isso sugere que o problema não é exclusivo para flash (mas talvez de alguma forma navegadores?)

2) Eu posso obter o som funcionando corretamente como você sem ir ao servidor usando pavucontrol, definindo o dispositivo de saída para o dispositivo local e, em seguida, de volta ao servidor remoto. Isso resolve a gagueira de áudio e pausas aleatórias e pulos de vídeo. Isso só funciona até o próximo vídeo começar.

3) Tenho certeza de que, enquanto pesquisava esse problema, encontrei algumas pessoas dizendo que o problema estava relacionado aos contadores de relógio do cliente e o servidor não estar vinculado corretamente e é isso que é redefinido reiniciando o servidor ou reconectando com o cliente (ou seja, ponto 2). Vou tentar descobrir isso para você.

Não consegui encontrar a discussão prometida, mas encontrei algumas informações básicas sobre o agendamento baseado no timer: link

    
por HansHarhoff 29.07.2012 / 16:12
1

Estou muito feliz por ter encontrado esta página finalmente.

Eu tive esse problema desde muitas versões do Ubuntu (ele começou a ficar ruim quando o padevchooser foi abandonado) e agora com o Arch. A solução para definir & amp; Exporte a variável de ambiente PULSE_SERVER antes de iniciar o navegador sempre funcionou bem para mim. Não é necessário alterar nada no servidor.

Mas há uma coisa que não entendo: quando inicio meu navegador (Chromium) a partir de um terminal dentro do ambiente de área de trabalho, o som funciona. Quando eu inicio o navegador de um launcher (Xfce, Gnome, ...) como deveria ser normalmente, os problemas descritos acima estão lá. Eu acho que isso tem algo a ver com as variáveis de ambiente do X11, mas isso está além das minhas habilidades.

Para mim, resolvi o problema agora editando meu arquivo chromium.desktop e adicionando o Pulse-Server lá:

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

    
por Armin Hahn 07.09.2013 / 22:56
1

Você precisa ter esses plugins no firefox para executar qualquer mídia sem falhas. Verifique qual deles você tem e o que você não tem.

O perfil deve ser este:

    
por Curious Apprentice 30.04.2012 / 03:44
0

Eu encontrei uma solução para consertar a gagueira usando o dissipador de encapsulamento de módulo.

Tudo o que você precisa fazer é baixar a versão 10.3 do Flash Player (que também tem suporte para aceleração de hardware, e a Adobe a colocou na versão 11).

Aqui está o binário x86_64

Para instalá-lo, extraia a biblioteca libflashplayer.so para o diretório ~/.mozilla/plugins ou altere o link atual usando update-alternatives .

Por favor, esteja ciente de que a versão 10.3 tem muitas vulnerabilidades de segurança, então você a usa por sua conta e risco.

    
por patataj 11.03.2017 / 22:40