2台のマシンでVLCプレーヤーを同期する


15

2台の異なるマシンでVLCの再生を同期することは可能ですか?家の異なる部分にある2台のPCで同じビデオを再生したいので、この問題を解決する他の提案も歓迎します!

回答:


9

マルチキャストを使用しています。これにより、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でもこれを掲載できます。

:-)


3
SuperUserへようこそ、貢献してくれてありがとう!不要なコメントを削除して、回答を少し減らしてください。現在、それは真のテキストの壁であり、実際の答えは把握するのがかなり難しいです。
インドレック

1
ビデオを同期するためのストリーミング/マルチキャストの信頼性はどのくらいですか?VLCを実行している16進数のデスクトップとomxplayerを実行しているraspberry piがある場合、omxplayerがストリームを開くのに3秒以上かかることはありません。
プーク

4

VLCはネットワーク経由で出力をストリーミングし、ローカルで再生できるため、1台のマシンでネットワーク経由で出力をストリーミングすることをお勧めしますが、[宛先]タブで[ローカルに表示]オプションをオンにします。

以下は、ストリーミングに使用する設定の簡単な説明です。


1

VLCの使用(またはドキュメントの更新はありません)にはnetsyncと呼ばれるモジュールがありますが、ほとんどの珍しいVLCモジュールと同様にバグが多く、ほとんどドキュメント化されておらず、無視されています。私はそれが機能することは一度もありません。


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