1

私はこのコマンドでビデオをストリーミングしようとしています:

$ vlc [path to file] --sout udp:// [destination path]

また、宛先では、コマンドによって1つのストリームを再生する2つのVLCプレーヤーを実行します。

$ vlc udp:// [source path]

最初のプレーヤーを実行するとビデオが再生されますが、2番目のプレーヤーを実行すると最初のプレーヤーが停止し、2番目のプレーヤーのみがストリームを再生します。

2人で1つのストリームを再生するにはどうすればよいですか?

4

2 に答える 2

0

宛先パスはプレーヤーの IP とポートであると想定しています。つまり、ストリームをそのエンドポイントに直接ユニキャストしています。プレーヤーでストリームを開くと、そのソケットにバインドされ、パケットが読み取られます。その後、パケットは「なくなり」ます。通常、プレーヤーはアドレスを予約して、他のプログラムがそこでソケットを開くことができないようにしますが、ここではこれが行われていないように思われるため、2 番目のプレーヤーが同じソケットを乗っ取り、UDP パケットを取得します。

両方のプレイヤーが同じホスト上にある場合、マルチキャストも機能しません。サポートする必要があるプレーヤーの数が決まっている場合は、VLC に出力を複製させることができます。

--sout '#duplicate{dst=rtp{mux=ts,dst=192.168.1.10,port=50002}, dst=rtp{mux=ts,dst=192.168.1.40,port=50004}}'

不明な数のクライアントを動的にサポートする必要がある場合は、ストリーミング サーバーを混在させる必要があります。どちらが実際に何を達成したいかによって異なります。VLC は直接ストリーミング サーバーとしても機能する可能性がありますが、試したことはありません。

于 2011-10-18T14:51:34.700 に答える
0

あなたの場合、特定のポートに送信されたUDPパケットを同じマシン上の他のいくつかのポートに複製するユーティリティがあると便利です。

このアプリケーションの実装は簡単です。

于 2011-10-18T15:31:03.350 に答える