Flash у веб-переглядачах не відтворює звук точно за допомогою мережевого звуку Pulse


18

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

Під час відтворення будь-яких флеш-носіїв у Firefox чи Chrome, звук тремтить ( наприклад ), ніби гучність піднімається та зменшується щосекунди.

Я виявив, що можу зупинити звук, що тремтить, якщо виконувати ці кроки:

  • Створіть Flash-відео, наприклад, відео на YouTube

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

  • Зачекайте близько 7 секунд

Після цього сервер PulseAudio автоматично відновлюється, і звук у флеш-відео чудово.

Проблема полягає в тому, що мені доводиться робити це кожного разу, коли запускаю 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від клієнта .


Яке мережне з'єднання між джерелом / раковиною?
Останній

@izx: Я не знаю, що ви маєте на увазі під "джерелом / раковиною". Якщо це ще один спосіб сказати "сервер / клієнт", то це з'єднання Ethernet LAN. Якщо це щось інше, вам доведеться пояснити, що ви маєте на увазі.
Питання

Дейв, ти можеш приєднатися до чату? Я думаю, що, мабуть, у мене є рішення, але мені потрібно поговорити ...
останній

Якщо немає, я просто мав в виду дротового або бездротового і деякі деталі, наприклад , провідний = 100 Mbps маршрутизатор, і т.д. , або бездротової = 802.11G, N і т.д.
іш

@izx: О, бачу. Це дротова мережа з маршрутизатором між ними. Я вважаю, що це 100MBps. Я думаю, що клієнт здатний до 1 Гбіт / с, але локальна локальна карта сервера все ще становить 100 Гбіт / с. Якщо це важливо і є команда, яку я можу виконати, щоб отримати точну швидкість, будь ласка, дайте мені знати.
Запитувач

Відповіді:


10

Передмова

Мені вдалося повторити проблему Дейва в експериментах, і вони спонукають мене до думки, що Flash якимось чином передає звук PulseAudio таким чином, що він створює багато мережевого трафіку (думайте, що багато крихітних пакетів, а не пропускна здатність); це переповнює мережу "тунелю", яку створив PulseAudio, тобто у вас є

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

Я міг би вирішити проблему, поставивши і клієнта, і сервера у власну віртуальну мережу, даючи їм безмежно швидке з'єднання (10 Гбіт / с) між ними; очевидно, що це не працює для реальних мереж :)

Отже, трохи гуглити і цей пост, і цей, дав мені ідею скинути тунель (посередник, як влучно висловився Дейв), і змусити клієнта поговорити безпосередньо з сервером, тобто

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/f 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на клієнті і додати PULSE_SERVER=192.168.0.4:4713в новий рядок в кінці файлу. Також в кінці додайте розрив рядка.

Це призведе до того, що весь звук клієнта перейде на сервер Pulseaudio, тому будьте впевнені, що ви хочете, перш ніж зробити це редагуванням у вашому /etc/environmentфайлі.

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


Якісь брандмауери на шляху? і ви кладете 192.168.0.4 скрізь, правда? Спробуйте Firefox в будь-якому випадку , навіть якщо female.wavне вийшло ...
Робочі

Argh, я забув один крок - будь ласка , додайте цей рядок в кінець /etc/pulse/system.pa на клієнті : load-module module-native-protocol-tcp auth-anonymous=1; збережіть, вбийте pulseaudio та спробуйте зараз.
Останній

Так, клієнт - параметри папрефів на сервері повинні це вже включити. Ви можете додатково додати його на сервер теж не зашкодить ...
Робочі

@DaveMG: Вибачте, я припускаю, що ви б зараз прокоментували ці два рядки на клієнті. Так вибачте, був зайнятий останній день чи так, і не далі. Я повернусь близько 11:30 ранку JST, і ми можемо відновити. Тим часом, ви можете знайти ці два відео конфігурації тунелю за замовчуванням, які мені зробили цікавими: заїкання , робота
останній

Просто ви знаєте, я відредагував відповідь, і я консолідував коментарі, так що це трохи зрозуміліше для всіх, хто може прочитати цю відповідь (саме тому мої коментарі видалено). Мені було просто цікаво, чи слід включати load-module module-native-protocol-tcp auth-anonymous=1;рядок у /etc/pulse/system.paвідповідь, чи це частина діагностичного процесу, яку можна відкинути?
Запитувач

3

Якщо проблема полягає в Gnash, ось як її виправити:

Закрийте всі веб-переглядачі та виконайте ці команди:

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

то цей sudo apt-get install Adobe-flashplugin

це вирішило мої проблеми: в основному він видаляє все, що стосується Gnash, і встановлює Flash.


скажіть, чи це працює
zeitue

Дякую за пропозиції. Згідно з моїм оновленим запитанням, здається, що зміна плагін Flash не допоможе проблемі.
Запитувач

2

Я думаю, що ваша проблема може бути пов’язана з флеш-програвачем.

Існує плагін FireFox Flash-Aid, який встановлює версію флеш-програми appx відповідно до вашого оточення.


Дякую за пораду. Завантажили його, встановили, спробували кілька різних варіацій Flash. На жаль, проблема із звукоімпульсом зберігається.
Запитувач

2

Мені вдалося виправити проблему з інверсією кольорів відео, знявши галочку (відключивши) Активоване апаратне прискорення при натисканні правою кнопкою миші на плеєрі та натисніть Налаштування (Оновити, щоб побачити його ефект).

У мене такі самі проблеми із заїканням аудіо як у вас. Він працює спочатку, потім через деякий час заїкається заїкання. Сподіваємось, хтось може це виправити - хоча мені цікаво, як можна обійти імпульсний аудіосервер, щоб отримати звук (я просто використовую ноутбук без мережевих аудіозаписів) .

(У мене Flash 11.2 r202 на Firefox Kubuntu 12.04 amd64)


Дякую за пропозицію. Я спробував увімкнути та вимкнути апаратне прискорення, але це, здається, для мене нічого не змінило. Крім того, я не знаю, що ви маєте на увазі під "обхід імпульсного звуку".
Запитувач

2

У вас встановлений MIXX dj Player? Іноді псується звуковий сервер. Принаймні, якщо встановити його, він змінить вашу звукову тему "ubuntu" за замовчуванням на freedesktop.

Ви можете спробувати встановити "PulseAudio Preferences" з програмного центру Ubuntu.
Є деякі параметри конфігурації, пов’язані з мережею.


1

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

1) Це трапляється зі мною зі спалахом, але також іноді з html5 версією youtube. Це трапляється і для вас? ( http://www.youtube.com/html5/ ви можете включити html5 версію YouTube тут). Це говорить про те, що проблема не полягає лише у флеш (але, можливо, якось браузери?)

2) Я можу змусити звук працювати так, як ви, не відвідуючи сервер, використовуючи pavucontrol, встановивши пристрій виводу на локальний пристрій, а потім повернутися на віддалений сервер. Це вирішує заїкання аудіо та випадкових пауз та пропусків відео. Це, на жаль, працює лише до початку наступного відео.

3) Я майже впевнений, що під час goggling цієї проблеми я зіткнувся з деякими людьми, які говорять про те, що проблема пов’язана з тим, що лічильники годин клієнта і сервера не підключені належним чином, і це те, що скидається через перезапуск сервера або повторне з'єднання з клієнт (тобто пункт 2). Я спробую це викопати для тебе.

Не вдалося знайти обіцяну дискусію, але я знайшов деяку довідкову інформацію щодо планування на основі таймера: http://0pointer.de/blog/projects/pulse-glitch-free.html


+1 за те, що я дав мені знати, що я не один у Всесвіті! Для пункту 1 я намагався використати html5 версію YouTube, намагаючись вирішити це, але відео не відтворювалося правильно та зовсім по-іншому, тому я вважав, що це було якось непереконливо (можливо, це інша проблема). Для пункту 2 це цікаво, і я побачу, чи працює він і для мене. Це здається різним вирішенням тієї самої проблеми. І точка 3 є найбільш обнадійливою інформацією, оскільки має потенціал почати вести до фактичного пояснення причини. Дякуємо за відгук!
Запитувач

Без проблем. Я шукав інформацію, на яку я посилався, але не зміг її знайти знову.
HansHarhoff

1
Тут я опублікував звіт про помилку до запуску: bugs.launchpad.net/ubuntu/+source/pulseaudio/+bug/1030559 Давайте подивимось, чи дає нам це деякі покажчики.
HansHarhoff

Приємно. Я опублікував коментар про помилку, тому, сподіваюся, мені буде повідомлено про будь-які оновлення. Я не публікував свій власний звіт про помилку, тому що я ніколи не міг зрозуміти, як користуватися Apport таким чином, щоб мати змогу складати звіт про помилки, коли не було конкретного збою програмного забезпечення.
Запитувач

1

Я дуже радий, що знайшов цю сторінку нарешті.

У мене була ця проблема, оскільки багато версій Ubuntu (вона почала набридати, коли відмовився від padevchooser) і тепер з Arch. Рішення встановити та експортувати змінну середовища PULSE_SERVER перед запуском браузера для мене завжди добре працювало. Не потрібно нічого змінювати на сервері.

Але є одне, чого я не розумію: коли я запускаю браузер (Chromium) з терміналу всередині робочого середовища, звук працює. Коли я запускаю браузер із запуску (Xfce, Gnome, ...), як це має бути нормально, проблеми, описані вище, є. Я думаю, що це має щось спільне з змінними середовища XX, але це поза моїми навичками.

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

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


1

Вам потрібно мати ці плагіни на Firefox, щоб бездоганно запускати будь-які медіа. Перевірте, який у вас є, а який - ні.

Профіль повинен бути таким:


0

Я знайшов рішення виправити заїкання, використовуючи модуль-тунель-мийку.

Все, що вам потрібно зробити, це завантажити Flash Player версії 10.3 (яка також підтримує апаратне прискорення, Adobe випустила її у версії 11).

Ось двійковий файл x86_64

Щоб встановити його, витягніть libflashplayer.soбібліотеку до ~/.mozilla/pluginsкаталогу або змініть поточне посилання за допомогоюupdate-alternatives .

Зауважте, що версія 10.3 має багато вразливих місць безпеки, тому ви використовуєте її на свій страх і ризик.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.