ブラウザのFlashは、Pulseネットワークオーディオを使用してサウンドを正確に再生しません


18

PulseAudioを使用して、音声をLAN経由でオーディオサーバーに送信します。

FirefoxまたはChromeでFlashメディアを再生すると、音量が1秒ごとに上下するように音がちらつきます()。

次の手順を実行すると、音がひらひらするのを止めることができることがわかりました。

  • YouTubeのビデオなどのFlashビデオを開始します

  • サーバーで実行pulseaudio --killする

  • 約7秒待ちます

この後、PulseAudioサーバーは自動的に再生成され、Flashビデオのサウンドは問題ありません。

問題は、Flashビデオを開始するたびにこれを行う必要があることです。これは明らかに望ましくありません。

これらの手順を実行するときにサウンドが機能するようにするために、それらを実行する必要がないようにするにはどうすればよいですか?

誰かがすぐに簡単に修正できるとは思いませんが(それはいいことですが)、少なくとも問題を診断する方法を提供してくれる人なら誰にでも賞金を渡すことができます。


詳細

サウンドデバイスの出力設定は次のとおりです。私の知る限り、4つのデバイスはすべて、まったく同じ物理デバイスを指しています。

サウンド設定

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:「ソース/シンク」の意味がわかりません。それが「サーバー/クライアント」の別の言い方である場合、それはイーサネットLAN接続です。それが他の何かである場合、あなたはあなたが何を意味するかを説明する必要があります。
質問者

デイブ、チャットルームに参加できますか?私はおそらく解決策があると思うが、話をする必要がある
...-ish

そうでない場合、私は、有線または無線のものといくつかの詳細、例えば有線= 100Mbpsのルータなど、またはワイヤレス=など802.11G、N、
っぽい

@izx:なるほど。それは、それらの間にルーターを備えた有線LANです。100MBpsだと思います。クライアントは1GBpsの能力があると思いますが、サーバーのLANカードはまだ100GBpsです。それが重要で、正確な速度を得るために実行できるコマンドがある場合は、お知らせください。
質問者

回答:


10

序文

私は実験でDaveの問題を再現することができました。そして、Flashが何らかの方法でサウンドをPulseAudioに送信し、大量のネットワークトラフィック(帯域幅ではなく、多くの小さなパケットを考えてください)を送信していると信じるようになりました。これは、PulseAudioが作成したネットワーク「トンネル」を圧倒します。つまり、

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

クライアントとサーバーの両方を独自の仮想ネットワークに配置し、それらの間に実質的に無限の高速接続(10ギガビット/秒)を与えることで問題を解決できました。明らかに、それは実際のネットワークでは機能しません:)

だから、ちょっとしたグーグルとこの投稿これは私にトンネル(ミドルマン、デイブが適切に言ったように)を落とし、クライアントに直接サーバーと話すようにするアイデアを与えました、すなわち

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

そしてそれは私のために働いた。Flashビデオ/サウンドは問題なく再生されます。

試してみよう!

これは、クライアントサーバーがローカルネットワーク(ルーターなど)上にあることを前提としています

  1. 予備:クライアントマシンで、既存のセットアップがある場合は、すべてを開いpaprefsてチェックを外します。確認するためにPulseAudioを強制終了してください。

  2. サーバーマシン(つまり、スピーカーのあるマシン)で、PA Preferences(paprefs)を起動し、次のように設定します。

    ここに画像の説明を入力してください ここに画像の説明を入力してください ここに画像の説明を入力してください ここに画像の説明を入力してください

    • 次に、それを閉じて、示されているようにターミナルでPulseAudioを強制終了し、待機して、ポート4713でリッスンしていることを確認します。

    ここに画像の説明を入力してください

    • 表示されない場合は、paprefs再度開いて、[ネットワークアクセス]タブと[ネットワークサーバー]タブの残りのボックスをオンにします(これらは破損しません)

    • サーバーのIPアドレスを知っていることを確認してください-use 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クライアントで編集してPULSE_SERVER=192.168.0.4:4713、ファイルの最後に新しい行を追加します。また、最後に改行を追加します。

これにより、クライアント上のすべてのサウンドがPulseaudioサーバーに送られるため、この編集を/etc/environmentファイルに加える前に、それが目的のものであることを確認してください。

再起動して、smoooooothオーディオエクスペリエンスをお楽しみください。;)


邪魔なファイアウォールはありますか?どこにでも192.168.0.4を配置しますか?場合でも、とにかくFirefoxのを試してみてfemale.wav動作しませんでした...
っぽい

ああ、私は一歩を忘れました-この行を/etc/pulse/system.pa クライアントの最後に追加してください:load-module module-native-protocol-tcp auth-anonymous=1; 保存して、pulseaudioを終了し、今すぐ試してください。
ISH

はい、クライアント-サーバーのpaprefs設定で既に有効になっているはずです。サーバーに追加することもできますが、害はありません
...-ish

@DaveMG:申し訳ありませんが、クライアントのこれらの2行のコメントを外していたと思います。すみません、最後の日かそこらで忙しかったので、休みでした。JSTの午前11時30分頃に戻り、再開できます。それまでの間、あなたが私が面白かったデフォルトのトンネル設定の次の2つのビデオを見つけるかもしれません:stutteringworking
ish

ご存知のとおり、回答を編集し、コメントを整理しているので、この回答を読んでいる人には少しわかりやすくなります(だから私のコメントは削除されます)。の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

あなたの問題はフラッシュプレーヤーに関連していると思います。

環境に応じてappxフラッシュバージョンをインストールするFireFoxプラグインFlash-Aidがあります。


ヒントをありがとう。それをダウンロードしてインストールし、いくつかの異なるバリエーションのFlashを試しました。残念ながら、音の脈動の問題は続いています。
質問者

2

Flash Playerを右クリックし、[ 設定] (更新して効果を確認する)をクリックしたときに[ ハードウェアアクセラレーションを有効にする]チェックボックスをオフ(無効)にすることで、ビデオの色反転の問題を修正できました。

私はあなたと同じ音声のutter音の問題を抱えています。最初は動作し、しばらくするとst音が鳴ります。誰かがこれを修正できることを願っています-パルスオーディオサーバーをバイパスしてサウンドを取得する方法については興味があります(ネットワークオーディオを必要としないラップトップを使用しています) 。

(Firefox Kubuntu 12.04 amd64にFlash 11.2 r202があります)


提案をありがとう。ハードウェアアクセラレーションを有効または無効にしようとしましたが、何も変わらないようです。また、「パルスオーディオをバイパスする」とはどういう意味かわかりません。
質問者

2

MIXX dj Playerがインストールされていますか?それは時々サウンドサーバーを台無しにします。少なくともインストールすると、デフォルトのサウンドテーマ「ubuntu」がfreedesktopに変更されます。

Ubuntuソフトウェアセンターから「PulseAudio Preferences」をインストールしてみてください。
ネットワークに関連するいくつかの設定オプションがあります。


1

私は同じ問題を抱えており、問題の完全な解決策をまだ見つけていません。私はあなたを助けるかもしれないいくつかのことに気づきました:

1)私はフラッシュを使用していますが、html5バージョンのyoutubeを使用している場合もあります。これはあなたにも起こりますか?(http://www.youtube.com/html5/ここでyoutubeのhtml5バージョンを有効にできます)。これは、問題がフラッシュに限定されないことを示唆しています(しかし、おそらくどういうわけかブラウザ?)

2)出力デバイスをローカルデバイスに設定してからリモートサーバーに戻すことにより、pavucontrolを使用することにより、サーバーに移動することなく、サウンドを適切に機能させることができます。これにより、音声のst音とビデオのランダムな一時停止とスキップが解決されます。これは、次のビデオが始まるまで機能しません。

3)この問題をグーグルで検索しているときに、クライアントとサーバーのクロックカウンターが正しくリンクされていないことに関連し、サーバーを再起動するか、クライアント(つまり、ポイント2)。私はあなたのためにそれを掘り下げてみます。

約束された議論は見つかりませんでしたが、タイマーベースのスケジューリングに関する背景情報をいくつか見つけました:http : //0pointer.de/blog/projects/pulse-glitch-free.html


宇宙にいるのは私だけではないことを知らせてくれたため、+ 1!ポイント1では、これを解決しようとしてhtml5バージョンのYouTubeを使用しようとしましたが、ビデオは正しく再生されず、まったく異なる方法で再生されたため、それは一種の決定的ではないと感じました(別の問題かもしれません)。ポイント2については、それは興味深いものであり、私にとってもうまくいくかどうかを確認します。同じ問題に対する別の回避策のように見えます。また、ポイント3は最も有望な情報であり、原因の実際の説明につながる可能性があるためです。返信いただきありがとうございます!
質問者

問題ない。参照している情報を探しましたが、再び見つけることができませんでした。
ハンスハルホフ

1
バグレポートをここにランチパッドに投稿しました:bugs.launchpad.net/ubuntu/+source/pulseaudio/+bug/1030559 これが私たちにいくつかの指針を与えるかどうかを見てみましょう。
ハンスハルホフ

いいね バグに関するコメントを投稿したので、更新があれば通知されることを願っています。特定のソフトウェアがクラッシュしなかったときにバグレポートを作成できるような方法でApportを使用する方法がわからなかったため、自分のバグレポートを投稿していませんでした。
質問者

1

このページをようやく見つけてよかったです。

Ubuntuの多くのバージョン(padevchooserが放棄されたときに厄介になり始めた)以来、現在Archでこの問題が発生しました。ブラウザを起動する前に環境変数PULSE_SERVERを設定およびエクスポートするソリューションは、常に私にとってうまく機能しました。サーバー上の何かを変更する必要はありません。

しかし、理解できないことが1つあります。デスクトップ環境内の端末からブラウザー(Chromium)を起動すると、サウンドが機能します。通常のランチャー(Xfce、Gnomeなど)からブラウザーを起動すると、上記の問題が発生します。X11環境変数と関係があると思いますが、これは私のスキルを超えています。

私にとっては、chromium.desktopファイルを編集し、そこにPulse-Serverを追加することで、問題を解決しました。

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


1

メディアを完璧に実行するには、Firefoxにこれらのプラグインが必要です。持っているものと持っていないものを確認してください。

プロファイルは次のようになります。


0

module-tunnel-sinkの使用中にst音を修正する解決策を見つけました。

あなたがしなければならないのは、Flash Playerバージョン10.3をダウンロードすることです(これにはハードウェアアクセラレーションのサポートもあり、Adobeはバージョン11でこれを廃止しました)。

これがx86_64バイナリです

それをインストールするには、libflashplayer.soライブラリを~/.mozilla/pluginsディレクトリに抽出するか、を使用して現在のリンクを変更しupdate-alternativesます。

10.3バージョンには多くのセキュリティ脆弱性があるため、ご自身の責任で使用してください。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.