web-dev-qa-db-ja.com

複数のマシンで同期されたオーディオ出力? VLC?ハードウェアソリューション?

ネットワーク上の複数のコンピューターまたはデバイス間でオーディオまたはオーディオとビデオを同期するためのソフトウェアまたはハードウェアソリューションがあるかどうか疑問に思っています。

Sonosを見たことがありますが、これは良い解決策かもしれませんが、非常に高価な解決策でもあります。

1台のPCでリアルタイムのオーディオ出力で何かを再生できるようにしたいのですが、ホームシアターレシーバーや別の部屋の別のコンピューターなど、家中のスピーカーでそれを聞きます。

Apple iport expressを使用した解決策を見ましたが、音楽以外ではレイテンシーは許容できませんでした。バラン付きのオーディオワイヤーを、あちこちに散らばっているアンプの束に接続することは避けたいです。 cat5をどこでも実行させている場所。

ホームオーディオ全体にこの種のプロセスを使用することに慣れている人はいますか?サウンドにビデオを添付している場合(ホッケーの試合を観戦する場合など)、レイテンシーは私にとって大きな問題です。

[〜#〜] update [〜#〜]

それ以来、音楽の目的で家の周りにいくつかのスクイーズボックスを設置し、シリアル制御のオンキヨーレシーバーをオートメーションシステムに接続しました。これにより、柔軟性が少し向上します。ほとんどのゾーンでは、レシーバーのマルチゾーンを使用してゲームからリアルタイムオーディオを取得できます。音楽の場合は、残りのゾーンをすべて同期させることができます。 sqeezeboxは互いに同期します(ライブイベントには待ち時間があると思います)これが問題となる領域(ホッケーの試合を観戦するなど)では、マトリックススイッチを使用してHDMIを4つの異なるテレビに配信しました。その部屋のアンプに。ビデオが必要なライブイベントの場合、部屋全体の待ち時間をゼロにすることができます。

全体として、私は応答に感謝しますが、それらのどれも私のために働きませんでした。 HDMIディストリビューションは、ビデオとオーディオに最適なものの1つであり、squeezeboxはオーディオのsonosよりも安価だと思います(そして、少し調整するだけで任意のPCで実行できるソフトウェアプレーヤーがあり、同期することができます。多くのゾーンのホームオーディオソリューション)

7
zimmer62

待ち時間が許容できない場合、最善の策は、FMまたはワイヤレススピーカー(またはケーブル)を介して家の周りにオーディオを送信することかもしれません インターネットラジオをチューナーにパイプする方法は?

1
Matthew Lock

Airfoil 試してみてください。はい、音楽に最適ですが、あらゆるアプリケーションからのあらゆるオーディオ出力を処理できます。独自のビデオプレーヤーアプリがあり、ビデオファイルのオーディオ/ビデオの同期を維持します。

コンピューターかエアポートエクスプレスのどちらかに接続されたスピーカーが家のあちこちに散らばっています。家の中のどのコンピューターのどのプログラムからでも音を出力し、どのスピーカーから音を出すかを選ぶことができます。パーティーの最中も、屋外のポータブルスピーカーにiPodtouchを接続することで知られています。

3
Curtis Tasker

この回答の長さについて申し訳ありません-それは数週間の試行錯誤の研究を表しています。詳細が重要になるのではないかと思いますので、少なからず多めに提供しました。オーディオ共有に焦点を当てています

このスレッドの他の人と同じように、私は、音響環境が重なるスペースで家全体に同期されたオーディオを分散させることに興味がありました。音は約1フィート/ミリ秒で伝わるため、これには約10ミリ秒レベルでの同期が必要です。私はこれをVLCで動作させ、さまようことなく何時間も同期を維持する方法を見つけました。使用されているクロックを理解するためにVLCソースコードを調べたことは認めますが、そこで何が起こっているのかを理解するふりをしていません。さらに、私が行ったことの多くは経験的なものです。したがって、VLCを本当に理解している人々が、これを行うためのより良い方法について説明を提供する場合、私は最も受け入れやすいです。これらの警告が邪魔にならないので、これが私がやったことで、うまくいくようです。

構成

オーディオを共有したい4つの領域と、オーディオを提供するために捧げたいさまざまなヴィンテージのコンピューターのコレクションがあります。これらのマシンの中にはLinux(Ubuntu 12.04)を実行するものもあれば、Windowsを実行するものもあります。全体として、LinuxボックスはWindowsボックスよりも同期が簡単でしたが、それは可能でした。

Linuxボックスでは、低遅延バージョンを取得するために、ppa:ubuntu-audio-dev/ppaを使用してpulseaudioドライバーを更新する必要がありました。それ以外の場合、構成はバニラでした。 VLCは、このアップグレードなしの遅延について不平を言いました。 14.04を入手すると、この問題が解消されることを願っています。

Windowsボックスでは、Windows 7Proを実行しています。

オーディオは、再生マシンから独立したLinuxボックスのVLCから提供されます。ネットワークが家に入るのはファイアウォールのすぐ下流です。

ネットワークは、ギガビットの有線と無線(802.11g)が混在しています。

関係ないかもしれないこと

私はタイムナットなので、NTPを使用して、すべてのマシンがサブミリ秒レベルで時間内にロックされます。 Linuxボックスでは、これは簡単です。 Windowsボックスでは、ntpのMeinberg実装を使用しています( http://www.meinbergglobal.com/english/sw/ntp.htm にあります)オーディオを提供しているボックスは通常の外部タイムサーバーに同期されます。ただし、再生マシンの時間はオーディオサーバーに排他的に同期され、厳密に追跡されます。これを行う再生マシンのntp.configファイルの行は次のとおりです。

_server 10.17.0.12 iburst burst minpoll 4 maxpoll 4 prefer
_

これにより、時間チェックが16秒ごとに実行されるようになります。明らかに、ネットワークトラフィックについては心配していません。

サーバー

サーバーはPulseAudioストリームを監視するように設定されているため、サーバーで再生したものはすべて出力ストリームに送られます。

出力ストリームは、44.1kHzで2つのチャネルにサービスを提供するrtspストリームです。繰り返しになりますが、帯域幅を節約するためにできることはおそらくありますが、帯域幅を最小化することよりも、同期を正しく行うことに関心があります。

環境設定(ツールの下)

  1. シンプル設定で、オーディオ-タイムストレッチオーディオが有効になっていることを確認します

    残りの設定については、[設定]ページの下部にある[すべて]をクリックします

  2. リアルタイムの優先順位を許可する

  3. ネットワーク同期-ネットワークマスタークロックを確認し、マスターサーバー(私の場合はこのマシン)のIPを提供します
  4. オーディオ-高品質のオーディオリサンプリングを有効にし、[タイムストレッチオーディオを有効にする]をオンにします
  5. 入力/コーデック-これが最も重要なようです-ページの一番下までスクロールします
    1. ネットワークキャッシングを300msに設定します-マシンの速度と競合に基づいてこれを変更する必要があるかもしれません-私の300では十分です
    2. クロック基準平均カウンター-1000がうまく機能していることがわかりました-これは、同期が時間の小さな変化に追随する速度に影響を与えるようです
    3. クロック同期を有効にする
    4. クロックジッター-30msは私のシステムで動作します
    5. ネットワーク同期を確認してください
    6. RecordディレクトリとTimeshiftディレクトリのファイル名を指定しました-これが重要かどうかはわかりません
    7. タイムシフトの粒度-1000に設定しましたが、これが重要かどうかはわかりません。

クライアント

サーバーが提供しているストリームを再生するようにクライアントを設定します。

クライアントは、いくつかの例外を除いてマスターと一致するように設定されています-ここでは違いだけをリストします

Windows-設定

  1. プロセスの優先度を上げる
  2. クロックソースをシステム時間に設定します(危険です!)-他の設定を試しましたが、ドリフトする傾向があります。これは、NTPが機能している限り、うまく機能しているようです。NTPをオフにすると、状況が変化し始めます。ソースコードを見ると、このオプションはGetSystemTimePreciseAsFileTime ()-最近のシステムでは、これはサブマイクロ秒のタイマーであり、NTPが管理している時計のようです。危険とマークされている理由があると確信しているので、自己リスク-それは私のために働いているようです。
  3. ネットワーク同期の場合-ネットワークマスタークロックをチェックしないでください(これは結局のところクライアントです)マスタークロックのIPを指定してください。

それ以外は、すべてがマスターと同じです。

Linux-

環境設定

  1. 時間に選択肢はありません。Windowsの場合と同じように、マスターのIPを指定する必要があります。

警告

上記のすべてを言っても、私がセットアップしたすべてのLinuxクライアントはうまく機能しているようです-馬力が非常に少ない非常にアンティークなネットブックですら。

Windowsは別の話です。私は両方ともi7プロセッサを搭載した2つのボックスを試しました-それらは比較的新しくて高速です。 1つはLenovoラップトップで、上記のレシピで動作します。もう1つのシャトルボックスはある程度機能しましたが、数時間後にドリフトが始まりました。私はついに諦めて、Ubuntuとのデュアルブートに設定しました。私がそれをしたら、すべてがうまくいきました。私は存在証明を持っているのでWindowsを動作させることができると確信していますが、Linuxは信頼できるソリューションに近いようです。 Linuxクライアントに3つのボックスがあり、それらはすべて問題なく動作し、VLCクライアントを再起動しなくても何時間もの時間スケールで同期を維持します。

2

pulseaudio 私が信じていることをするべきです-少なくともそれはFAQ

2
Journeyman Geek

この目的のためにVLCを使用することが可能であるはずです。

たとえば、 ハウツー:VLCを使用してほとんどすべてをストリーミング

「...コンピュータからネットワーク上の別のデバイスにあらゆる種類のメディアファイルをストリーミングする方法を紹介します...これらの手法を使用して、オフィスのコンピュータからリビングルームのテレビに接続されたラップトップにビデオをストリーミングできます。 PDAでプレイリストを制御します。」

1
Peter Mortensen