Вспышка в браузерах не воспроизводит звук точно с использованием импульсного сетевого аудио

17

Я использую PulseAudio для передачи звука по локальной сети на аудиосервер.

При воспроизведении любых флеш-носителей в Firefox или Chrome звук трепетает ( пример ), как если бы объем поднимался и опускался каждый второй.

Я обнаружил, что могу остановить звук, если я выполню следующие шаги:

  • Запустите Flash-видео, например видео на YouTube

  • Запустите pulseaudio --kill на сервере

  • Подождите около 7 секунд

После этого сервер PulseAudio автоматически восстает, и звук в Flash-видео прекрасен.

Проблема в том, что я должен делать это каждый раз . Я запускаю Flash-видео. Это явно нежелательно.

Как я могу сделать все, что заставляет звук работать, когда я прохожу через эти шаги, чтобы я не делал их?

Я сомневаюсь, что кто-то придумает немедленное и простое исправление (хотя это было бы неплохо), поэтому щедрость может пойти на всех, кто предоставляет хотя бы метод диагноза проблемы.

Подробнее

Ниже приведены настройки выходных данных звукового устройства. Насколько я могу судить, все четыре устройства указывают на то же физическое устройство.

выход журнала PulseAudio , сделанный при попытке воспроизведения видео в формате Flash.

Я попытался получить информацию о регистрации из Flash, но, несмотря на установку и включение Flash для отладки, он не генерировал никаких выводов на все .

Проблема не проявляется ни в одном другом программном обеспечении, поэтому я уверен, что она специфична для того, как Flash взаимодействует с моим звуком.

Вот некоторые ошибки, которые могут быть полезны:

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

Вот результат из pactl list из сервера (компьютер с динамиками) .

Вот результат от pactl list от клиента .

    
задан Questioner 13.04.2017 в 14:25
источник

9 ответов

10

Введение

Я смог воспроизвести проблему Дейва в экспериментах, и они заставили меня поверить, что Flash каким-то образом отправляет звук в PulseAudio таким образом, что он создает много сетевого трафика (думаю, много крошечных пакетов, а не полосы пропускания) ; это переполняет сетевой «туннель» PulseAudio, т. е. у вас

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

Я мог бы решить проблему, поставив как клиент, так и сервер в свою собственную виртуальную сеть, обеспечивая им бесконечно быструю связь (10 Гбит / с) между ними; очевидно, что это не работает для реальных сетей:)

Итак, немного googling и этот пост и этот дал мне идею отказаться от туннеля (посредник, как полагал Дэйв) и клиент обращается непосредственно к серверу, то есть

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

И это сработало для меня; Flash-видео / звуковая игра безупречно.

Попробуем!

Предполагается, что ваш клиент-сервер находится в локальной сети (маршрутизатор и т. д.).

  1. Предварительно: на клиентской машине, если у вас есть существующая настройка, откройте paprefs и снимите флажок все ; а затем убить PulseAudio.

  2. На серверной машине (то есть с громкоговорителями) запустите настройки PA ( paprefs ) и настройте его следующим образом:

    • Затем закройте его и запустите PulseAudio в терминале, как показано, подождите и проверьте, что он теперь прослушивает порт 4713:

    • Если вы его не видите, откройте paprefs и проверьте оставшиеся поля на вкладках «Сетевой доступ» и «Сетевой сервер» (они не пострадают).

    • Убедитесь, что вы знаете IP-адрес сервера - используйте ifconfig и т. д. Мы будем использовать 192.168.0.4 в нашем примере.

  3. На клиентской машине откройте терминал и сначала проверьте наше прямое соединение с образцом WAV речи (замените 192.168 ... на ваш сервер IP!)

    wget http://www.signalogic.com/melp/EngSamples/Orig/female.wav
    paplay --server=192.168.0.4:4713 female.wav
    
    • Отменить с помощью Ctrl-C, если он работает, он может стать скучным;)

Теперь закройте все запущенные экземпляры браузера и запустите его (предполагая, что Firefox здесь со следующим синтаксисом):

PULSE_SERVER=192.168.0.4:4713 firefox &
  • Замените 192... соответствующим IP-адресом для вашего сервера!

  • В этом примере Firefox откройте Youtube (или любой другой сайт Flash-видео) и попробуйте воспроизвести видео обратно - пальцы скрещены, он должен работать без заикания / паузы!

Заставьте его придерживаться

Если вы хотите, чтобы это исправление применимо ко всем программам вместо того, чтобы помещать PULSE_SERVER=192.168.0.4:4713 перед каждой командой, отредактируйте /etc/environment на client и добавьте PULSE_SERVER=192.168.0.4:4713 в новую строка в конце файла. Также добавьте разрыв строки в конце.

Это приведет к тому, что звук all на клиенте перейдет на сервер Pulseaudio, поэтому убедитесь, что это именно то, что вы хотите, прежде чем делать это редактирование в файле /etc/environment .

Перезагрузитесь и наслаждайтесь непринужденным звуком. ;)     

ответ дан izx 07.08.2012 в 08:44
источник
3

Если проблема в Gnash, вот как ее исправить:

Закройте все браузеры и выполните следующие команды:

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

, то это     sudo apt-get install adobe-flashplugin

это устранило мои проблемы: в основном он удаляет все, что связано с Gnash, и устанавливает Flash.

    
ответ дан zeitue 27.04.2012 в 08:24
2

Я думаю, что ваша проблема может быть связана с флэш-плеером.

Существует плагин FireFox Flash-Aid , который устанавливает флеш-версию appx согласно к вашей среде.

    
ответ дан Searock 26.04.2012 в 19:46
2

Я смог исправить проблему инверсии цвета видео, сняв флажок Включить аппаратное ускорение , когда вы щелкните правой кнопкой мыши флеш-плеер и нажмите Настройки (Обновить, чтобы увидеть его эффект).

У меня такие же проблемы с заиканием звука, как у вас. Сначала он работает, потом через какое-то время заикается. Надеюсь, кто-то может это исправить - хотя мне любопытно, как вы можете обходить импульсный звуковой сервер, чтобы получить звук (я просто использую ноутбук без сетевых звуковых потребностей) ,

(У меня есть Flash 11.2 r202 на Firefox Kubuntu 12.04 amd64)

    
ответ дан pd12 11.06.2012 в 19:00
2

У вас установлен MIXX dj Player? Это иногда испортит звуковой сервер. По крайней мере, если вы установите его, он изменит вашу звуковую тему по умолчанию «ubuntu» на freedesktop.

Вы можете попробовать установить «Настройки PulseAudio» в программном центре Ubuntu.
Существуют некоторые параметры конфигурации, связанные с сетью.

    
ответ дан Curious Apprentice 28.04.2012 в 14:32
1

У меня такая же проблема, и я еще не нашел идеального решения проблемы. Я заметил некоторые вещи, которые могут вам помочь:

1) Это случается для меня со вспышкой, но также иногда с html5-версией youtube. Это также происходит для вас? ( Ссылка вы можете включить html5 версию youtube здесь). Это говорит о том, что проблема заключается не только в flash (но, может быть, в некоторых браузерах?)

2) Я могу заставить звук работать нормально, как вы, не заходя на сервер с помощью pavucontrol, установив выходное устройство на локальное устройство, а затем обратно на удаленный сервер. Это решает заикание звуковых и случайных пауз и пропусков видео. Это, увы, работает только до следующего запуска видео.

3) Я почти уверен, что при поиске этой проблемы я столкнулся с некоторыми людьми, говоря, что проблема связана с счетчиками часов клиента, а сервер не связан должным образом, и это то, что сбрасывается перезагрузкой сервера или повторное соединение с клиентом (т. п. 2). Я попытаюсь выкопать это для вас.

Я не смог найти обещанное обсуждение, но я нашел некоторую справочную информацию о планировании на основе таймера: Ссылка

    
ответ дан HansHarhoff 29.07.2012 в 16:12
1

Я очень рад, что наконец нашел эту страницу.

У меня была эта проблема, так как многие версии Ubuntu (она начала гадать, когда padevchooser был оставлен) и теперь с Arch. Решение установить & amp; экспортировать переменную окружения PULSE_SERVER перед запуском браузера всегда работало хорошо для меня. Не нужно ничего менять на сервере.

Но есть одна вещь, которую я не понимаю: когда я запускаю свой браузер (Chromium) из терминала внутри среды рабочего стола, звук работает. Когда я запускаю браузер из launcher (Xfce, Gnome, ...), как это должно быть, проблемы, описанные выше, есть. Я думаю, что это имеет какое-то отношение к переменным среды X11, но это выходит за рамки моих навыков.

Для меня я решил проблему сейчас, отредактировав файл chromium.desktop и добавив там Pulse-Server:

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

ответ дан Armin Hahn 07.09.2013 в 22:56
1

Вам нужно, чтобы эти плагины на firefox безупречно запускали любые носители. Проверьте, какой у вас есть, а какой нет.

Профиль должен быть следующим:

    
ответ дан Curious Apprentice 30.04.2012 в 03:44
0

Я нашел решение для исправления заикания при использовании модульного туннельного приемника.

Все, что вам нужно сделать, это загрузить версию Flash Player версии 10.3 (которая также поддерживает аппаратное ускорение, Adobe упала в версии 11).

Вот двоичный файл x86_64

Чтобы установить библиотеку libflashplayer.so в каталог ~/.mozilla/plugins или изменить текущую ссылку, используя update-alternatives .

Имейте в виду, что в версии 10.3 есть много уязвимостей, поэтому вы используете их на свой страх и риск.

    
ответ дан patataj 11.03.2017 в 22:40