回答:
マルチキャストを使用しています。これにより、1つのストリームがすべてのレシーバーに同時に送信されます。
ネットワークには、有線セグメントとwifiセグメントがあります。
マルチキャストでは、ストリームは各セグメントで帯域幅を1回だけ使用します
これは、すべてのコンピューターがほぼ同時に同じパケットを受信することを意味し、スイッチでの伝搬遅延が少なくなります。伝搬遅延は、音声および人間の目に見えるビデオ(30fps)では無視できます。
起こりうる唯一のことは、異なるコンピューターがネットワークキャッシュの異なる場所で動作することです。それらを可能な限り近くに保つために、最も遅いシステム(wifi上の32ビットのラップトップ)が時々切り始めるまでキャッシュを下げ、それからもう少し与えます。
理由:vlcがバッファーを使い始めたら、バッファーの先頭に戻るまでに長い時間がかかります
また、「サーバー」で2つのvlcクライアントを使用します。1つはストリームを生成し、ローカルに表示しません。もう1つは、同じネットワークキャッシュ設定で、他のすべてのシステムと同様にストリームをリッスンする表示クライアントです。
コマンドラインで:
インターネットストリームに接続するストリーム生成クライアント(これには大きなキャッシュがあるため、切り取られず、マルチキャストネットワークに一定のストリームを配信します):
vlc -vvv http://yp.shoutcast.com/sbin/tunein-station.pls?id=154 --sout udp:239.0.0.1 --no-sout-display --sout-keep --ttl 4
(それは1行にあるはずです)
ご覧のとおり、--no-sout-displayが指定されています。ストリーム出力は生成されますが、ローカル出力は生成されません。ローカルファイル/ DVDまたはネットワークコンテンツを再生する場合でも、同じことを行います。
どこかにワイヤレスルーターがある場合は、-ttlが1より大きい値に設定されていることを確認してください。「サプライズ」が発生しないように、常に4に設定します。ただし、マルチルーターネットワークがあり、1つのネットワーク上のホストがマルチキャストを表示できない場合は、そのttlを1つか2つ上げる必要があります(または、ルーターがすべてのワイヤレスルーターではなくマルチキャストを許可するかどうかを確認します)デフォルトで設定されています)。
ストリームを生成し、非出力vlcを実行しているシステムを含むすべてのシステムで、次のvlcがあります。
vlc udp://@239.0.0.1 --network-caching 60 --sout-keep
これにより、ネットワーク内のネットワークキャッシングが設定され、最も遅いシステムのパフォーマンスが最大になります。.06秒に相当するキャッシュ。
サウンドの場合、これは約100フィートまでの伝播距離に対応します。つまり、キャッシュが最大まで消費されると、遅いシステムは100フィート離れているかのように聞こえます。
私のネットワーク遅延は0.5ミリ秒以上です(pingではなく、優先順位の低いスタックの往復であり、数ミリ秒です)。
私の代わりに、100フィート以上離れた2つのシステムを同時に見たり聞いたりすることはありません(2階と地下を爆破しません。この方法で行う利点は、リビングルームのアンプを爆破せずにどこでも同じようにすることです)。
寝室のラップトップ:頻繁に切れる場合は、ローカルでキャッシュを上げるだけで、地下または2階で聞こえません。
非常に重要:トランスコーディングが必要なときはいつでも、すべてのレシーバーが同じプロトコルとエンコーディングであり、ストリームを生成する非出力vlcでトランスコーディングを行います。
マルチキャストクライアントでトランスコードしません。各システムのパフォーマンスは異なるため、遅延が大きくなります。
このオーディオの例では、トランスコーディングはまったく行われず、すべてがshoutcastで発生したエンコーディングを理解できます。(実際には、vidのトランスコードも必要ありません...すべてのコーデックセットがすべて揃っています)。
これは役立ちますか?
ええ、ネット上に--network-synchronizationマスター/クライアントと複数のユニキャストストリーム(サーバー上の10マイルの長さのターゲット文字列:-D)を使用して同期vlcを実行する例があります。
ただし、セグメント上のn個のクライアントにユニキャストをストリーミングすると、そのセグメントでn回ストリームが表示され、元のサーバーに行くほど、同じストリームの乗算が帯域幅を消費します。1080pのビデオを見ることができません。私のワイヤレスは、それらの1つをほとんど処理できません(常に56Mb)。
ああ、あなたはGUIでどのように尋ねます:
ストリーミングウィンドウで[その他のオプション]をクリックし、ストリームを生成するvlcインスタンスの[ローカルで再生]の選択を解除します(入力としてローカルファイル、プレイリスト、またはインターネットストリームがあります)。キャッシュをデフォルト(1000ms相当のキャッシュ)のままにします。他のクライアントのいずれかがコーデックを理解できない場合、すべてが同じシステム上のコーデックを理解してトランスコードするクライアントを決定します。
宛先のオプションで、デフォルトの「ローカル表示」をオンのままにして、キャッシュを変更します:最も遅いシステムが切り取られるまでこれを再生し(100から開始して、それを下げます)、すべてのより速いシステムを同じに設定します。短いバッファの場合:クライアントが起動すると、「取得」するまで約10〜15秒かかります。
クライアントは常に100%アップしています。ストリーミングを停止すると、マルチキャストアドレスをリッスンし続けるだけです。
ポートが指定されていません。デフォルトはどこでも1234です。1つの発信サーバーを実行します。複数実行する場合は、次のようなポート番号を指定する必要があります:... 239.0.0.1:65535。私の例の番号:239/8の任意のマルチキャストアドレスを選択します。ポート:1024以上を選択します(MicrosoftではMCでも1024を使用しているため、はい、1024)。
誰もリッスンしていない場合、ストリームはネットワークにまったく表示されず、最初のリスナーがマルチキャストセッションに参加した後にのみ開始されます。したがって、10個を定義し、1つだけをリッスンする場合、帯域幅を消費する1つのストリームがあります。異なるストリームをリッスンすると、nストリームに対してn倍の帯域幅が消費されます。
マルチキャスト:使用される帯域幅は、ストリームごとに1つまたは10000のクライアントで同じです。
ユニキャストの使用:各クライアントは異なる時間に送信者のストリームをホップします。これは、キャッシュを厳しくしてもラグが存在することを意味します。ユニキャストとマルチキャストの動作はまったく異なります。それが、ユニキャストに同期機能がある理由です。
同じことをストリーミングしてターゲットストア全体を言う場合、別の方法があります。それから、ユニキャストを衛星vlcクライアントに同期してストリーミングし、そこから「音響範囲」内にあるクライアントにサービスを提供します。オフィスでは、フロアごとに1つまたは2つ行うため、すべてのフロアはユニキャストとネットワーク同期を使用して緊密に同期されます。フロア内では、通常、ネットワーク伝搬遅延は音響遅延よりもはるかに短く、音響は低下しているため、すべてのスピーカーではなく、近くのスピーカーのみが聞こえます。
ヘルプが必要な場合は、sirhelpsalot @ gmail.comまでメールでお問い合わせください。YouTubeでもこれを掲載できます。
:-)
spc-stmが述べたように、VLCではストリーミングを同期できます。これを確認してください:http : //www.hackedexistence.com/project-vlc.html