3

ピアツーピア オーバーレイ (Chord など) でブロードキャストするには、ピアがデータを転送できる必要があります。各ノード (ピア) がデータを受信すると、ルーティング テーブル内の他のすべてのノードにデータを転送し、リング内のすべてのノードがデータを受信するまで、ノードは同じデータを再度転送します。たとえば、構造化された p2p WebRTC ブロードキャストには、WebRTC ビデオ ストリームを転送する手段が必要です。

私の理解では、javascript WebRTC API は、開発者が接続をセットアップできるように設計されていますが、メディア ストリームを直接処理することはできません。高レベルのビデオ オブジェクトが接続オブジェクトに「プラグイン」され、ビデオ データへの下位レベルのアクセスなしでビデオ ストリームを消費すること。

質問

  1. WebRTC クライアント内で生のビデオ ストリームに到達する方法はありますか?
  2. WebRTC には生の消費者オブジェクトまたは転送/中継オブジェクトの形式はありますか?
4

3 に答える 3

5

着信ストリームをある RTCPeerConnection から別の RTCPeerConnection に転送することは確かに可能です。例を次に示します: https://github.com/git-matrix/webrtc/tree/master/samples/web/content/peerconnection/multiple-relay ただし、このシナリオではフレームへの低レベル アクセスは取得できません。 、コンテンツはそのまま渡されるのではなく、デコードおよび再エンコードされます。

于 2014-11-05T20:57:36.550 に答える
2

まず、A のビデオを C に中継できたと思います。1 台の PC (ラップトップ) と 2 台の異なるカメラでテストしているので、100% 確実ではありませんが、完了したと思います。RTCPeerconnection のようです。リモートストリームを取得できます。

ところで、テストする実行可能な単純なコードが見つからないため、easyrtc ライブラリを使用しています。

したがって、基本的な考え方は、

A はイベント ビデオを取得します。B は A に接続し、

B は、A から受け取ったリモート ストリーム参照を保存します。

C は B に接続し、

B は、ローカル メディア ストリームを渡す代わりに、リモート メディア ストリームを C に渡します。

C はそのリモート メディア ストリームを保存します。

D が C に接続すると、C は B から受信したリモート メディア ストリーム (実際には A から受信したもの) を D に渡します。

同様に、流れは続きます...つまり、Aのメディアストリームは波のようにB、C、D、Eを通過します....

接続フローが次のようになることに注意してください: A<-->B<-->C<-->D<-->E... すべてのノードには、前のノードと次のノードの 2 つの接続しかありません。 .

ただし、簡単に言えば、メディア ストリームにアクセスして別のリモート接続に渡すことができます。

AがBに接続する、またはその逆の、動作する生のJSベースのwebrtcコードを提供できる専門家が必要です。適切なテストのために、Bに接続するCおよびCコードに接続するDを記述しようとします。

于 2014-02-08T20:40:01.033 に答える