J'utilise PulseAudio pour envoyer du son via le LAN vers un serveur audio.
Lors de la lecture d'un média Flash dans Firefox ou Chrome, le son flotte ( exemple ), comme si le volume montait et descendait chaque seconde.
J'ai découvert que je peux arrêter le flottement du son en suivant ces étapes:
Démarrer une vidéo Flash, telle qu'une vidéo sur YouTube
Exécuter
pulseaudio --kill
sur le serveurAttendez environ 7 secondes
Après cela, le serveur PulseAudio réapparaît automatiquement et le son de la vidéo Flash est correct.
Le problème est que je dois le faire chaque fois que je démarre une vidéo Flash. Ce n'est évidemment pas souhaitable.
Comment puis-je faire ce qui fait que le son fonctionne lorsque je passe par ces étapes pour ne pas avoir à les faire?
Je doute que quelqu'un vienne avec une solution immédiate et simple (bien que ce serait bien), donc la prime pourrait aller à toute personne qui fournit au moins une méthode pour diagonaliser le problème.
Détails
Voici les paramètres de sortie de mon périphérique audio. Autant que je sache, les quatre appareils pointent exactement vers le même appareil physique.
Sortie du journal PulseAudio , prise lors de la tentative de lecture d'une vidéo Flash.
J'ai essayé d'obtenir les détails de journalisation de Flash, mais malgré l'installation et l'activation de Flash pour le débogage, cela n'a généré aucune sortie .
Le problème ne se pose avec aucun autre logiciel, donc je suis raisonnablement certain qu'il est spécifique à la façon dont Flash interagit avec ma configuration sonore.
Voici une sortie d'erreur qui pourrait être utile:
$ 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.
Voici la sortie pactl list
du serveur (ordinateur avec haut - parleurs) .
Voici la sortie pactl list
du client .
la source
Réponses:
Préface
J'ai pu reproduire le problème de Dave dans des expériences, et ils me portent à croire que Flash envoie le son à PulseAudio de telle manière qu'il crée beaucoup de trafic réseau (pensez à beaucoup de petits paquets, pas à la bande passante); cela submerge le "tunnel" réseau créé par PulseAudio, c’est-à-dire que vous
Je pouvais résoudre le problème en plaçant le client et le serveur sur leur propre réseau virtuel, en leur donnant une connectivité effectivement infiniment rapide (10 Gbits / sec) entre eux; évidemment, cela ne fonctionne pas pour les réseaux du monde réel :)
Donc, un peu de recherche sur Google et ce post et celui-ci m'ont donné l'idée de laisser tomber le tunnel (intermédiaire, comme Dave l'a bien dit), et de faire parler directement le client au serveur, c'est-à-dire
Et cela a fonctionné pour moi; Les vidéos / sons Flash sont parfaitement lus.
Essayons!
Cela suppose que votre client-serveur se trouve sur un réseau local (routeur, etc.)
Préliminaire: sur la machine cliente, si vous avez une configuration existante, ouvrez
paprefs
et décochez tout ; puis tuez PulseAudio pour être sûr.Sur la machine serveur (c'est-à-dire celle avec les haut-parleurs), démarrez Préférences PA (
paprefs
) et configurez-la comme suit:Si vous ne le voyez pas, ouvrez-le à
paprefs
nouveau et cochez les cases restantes dans les onglets Accès réseau et Serveur réseau (ils ne font pas de mal)Assurez-vous de connaître l'adresse IP du serveur - utilisation
ifconfig
, etc. Nous utiliserons192.168.0.4
dans notre exemple.Sur la machine cliente, ouvrez un terminal, et testez d'abord notre connexion directe, avec un échantillon de parole WAV (remplacez 192.168 ... par votre IP serveur!)
Maintenant, fermez toutes les instances de navigateur en cours d'exécution, puis démarrez-le (en supposant que Firefox ici avec la syntaxe suivante):
Remplacez
192...
par l'IP appropriée pour votre serveur!Dans cette instance de Firefox, ouvrez Youtube (ou n'importe quel site de vidéo Flash), et essayez de lire des vidéos en arrière --- les doigts croisés, cela devrait fonctionner sans bégayer / s'arrêter!
Faites-le coller
Si vous voulez que ce correctif s'applique à tous les programmes au lieu d'avoir à mettre
PULSE_SERVER=192.168.0.4:4713
devant chaque commande, éditez/etc/environment
sur le client et ajoutezPULSE_SERVER=192.168.0.4:4713
une nouvelle ligne à la fin du fichier. Ajoutez également un saut de ligne à la fin.Cela fera que tout le son du client ira au serveur Pulseaudio, alors assurez-vous que c'est ce que vous voulez avant de faire cette modification dans votre
/etc/environment
fichier.Redémarrez et profitez d'une expérience audio fluide. ;)
la source
female.wav
n'a pas fonctionné .../etc/pulse/system.pa
sur le client :load-module module-native-protocol-tcp auth-anonymous=1
; enregistrez, tuez pulseaudio et essayez maintenant.load-module module-native-protocol-tcp auth-anonymous=1;
ligne d'entrée/etc/pulse/system.pa
devait être incluse dans la réponse, ou si elle faisait partie du processus de diagnostic qui pouvait être écartée?Si le problème est Gnash, voici comment le résoudre:
Fermez tous les navigateurs et exécutez ces commandes:
puis ce sudo apt-get install adobe-flashplugin
cela a résolu mes problèmes: en gros, il supprime tout ce qui concerne Gnash et installe Flash.
la source
Je pense que votre problème pourrait être lié au lecteur flash.
Il existe un plugin FireFox Flash-Aid qui installe la version flash appx en fonction de votre environnement.
la source
J'ai pu résoudre le problème d'inversion des couleurs vidéo en décochant (désactivant) la case à cocher Activer l'accélération matérielle lorsque vous cliquez avec le bouton droit sur le lecteur flash et cliquez sur Paramètres (Actualiser pour voir son effet).
J'ai les mêmes problèmes de bégaiement audio que vous. Cela fonctionne d'abord, puis après un certain temps, le bégaiement entre en jeu. J'espère que quelqu'un peut résoudre ce problème - bien que je sois curieux de savoir comment vous pouvez contourner le serveur audio à impulsions pour obtenir du son (j'utilise simplement un ordinateur portable sans besoins audio réseau) .
(J'ai Flash 11.2 r202 sur Firefox Kubuntu 12.04 amd64)
la source
Avez-vous installé MIXX dj Player? Il gâche parfois le serveur de son. Au moins si vous l'installez, il changera votre thème sonore par défaut "ubuntu" en freedesktop.
Vous pouvez essayer d'installer "Préférences PulseAudio" à partir du centre logiciel Ubuntu.
Il existe quelques options de configuration liées au réseau.
la source
J'ai le même problème et je n'ai pas encore trouvé de solution parfaite au problème. J'ai remarqué certaines choses qui pourraient vous aider:
1) Cela m'arrive avec le flash, mais aussi parfois avec la version html5 de youtube. Cela vous arrive-t-il aussi? ( http://www.youtube.com/html5/ vous pouvez activer la version html5 de youtube ici). Cela suggère que le problème n'est pas exclusif au flash (mais peut-être en quelque sorte aux navigateurs?)
2) Je peux faire fonctionner le son correctement comme vous sans aller sur le serveur en utilisant pavucontrol en définissant le périphérique de sortie sur le périphérique local, puis sur le serveur distant. Cela résout le bégaiement des pauses et sauts audio et aléatoires de la vidéo. Cela ne fonctionne hélas que jusqu'au début de la prochaine vidéo.
3) Je suis à peu près sûr qu'en parcourant ce problème sur Google, j'ai rencontré des personnes disant que le problème était lié aux compteurs d'horloge du client et que le serveur n'était pas correctement connecté et que c'était réinitialisé en redémarrant le serveur ou en se reconnectant avec le client (c.-à-d. point 2). Je vais essayer de trouver ça pour vous.
Je n'ai pas pu trouver la discussion promise, mais j'ai trouvé des informations générales sur la planification basée sur la minuterie: http://0pointer.de/blog/projects/pulse-glitch-free.html
la source
Je suis vraiment content d'avoir enfin trouvé cette page.
J'ai eu ce problème depuis de nombreuses versions d'Ubuntu (il a commencé à devenir méchant lorsque padevchooser a été abandonné) et maintenant avec Arch. La solution pour définir et exporter la variable d'environnement PULSE_SERVER avant de démarrer le navigateur a toujours bien fonctionné pour moi. Il n'est pas nécessaire de changer quoi que ce soit sur le serveur.
Mais il y a une chose que je ne comprends pas: lorsque je démarre mon navigateur (Chromium) à partir d'un terminal à l'intérieur de l'environnement de bureau, le son fonctionne. Lorsque je démarre le navigateur à partir d'un lanceur (Xfce, Gnome, ...) comme il se doit normalement, les problèmes décrits ci-dessus sont là. Je pense que cela a quelque chose à voir avec les variables d'environnement X11, mais cela dépasse mes compétences.
Pour moi, j'ai résolu le problème maintenant en modifiant mon
chromium.desktop
fichier et en y ajoutant le Pulse-Server:Exec=sh -c "PULSE_SERVER=mice.local chromium %U"
la source
Vous devez avoir ces plugins sur Firefox pour exécuter sans problème n'importe quel média. Vérifiez celui que vous avez et celui que vous n'avez pas.
Le profil doit être le suivant:
la source
J'ai trouvé une solution pour corriger le bégaiement lors de l'utilisation de module-tunnel-sink.
Tout ce que vous avez à faire est de télécharger Flash Player version 10.3 (qui prend également en charge l'accélération matérielle, Adobe l'a supprimé dans la version 11).
Voici le binaire x86_64
Pour l'installer, extrayez la
libflashplayer.so
bibliothèque dans le~/.mozilla/plugins
répertoire ou modifiez le lien actuel à l'aide deupdate-alternatives
.Veuillez noter que la version 10.3 comporte de nombreuses failles de sécurité, vous l'utilisez donc à vos risques et périls.
la source