3

对等点必须能够转发数据才能在对等覆盖(例如 Chord)中进行广播。当每个节点(对等体)收到数据时,它会将数据转发给其路由表中的所有其他节点,然后这些节点将再次转发相同的数据,直到环中的所有节点都收到数据。例如,结构化 p2p WebRTC 广播需要一种转发 WebRTC 视频流的方法。

据我了解,javascript WebRTC API 旨在允许开发人员设置连接但不直接处理媒体流。将高级视频对象“插入”到连接对象中以使用视频流,而无需对视频数据进行较低级别的访问。

问题

  1. 有没有办法在 WebRTC 客户端中访问原始视频流?
  2. WebRTC 中是否有任何形式的原始消费者对象或转发/中继对象?
4

3 回答 3

5

当然可以将传入流从一个 RTCPeerConnection 转发到另一个。这是一个示例:https ://github.com/git-matrix/webrtc/tree/master/samples/web/content/peerconnection/multiple-relay 但是,在这种情况下,您无法获得对帧的低级访问权限,并且内容将被解码和重新编码,而不是按原样传递。

于 2014-11-05T20:57:36.550 回答
2

首先,我想我已经设法将 A 的视频转发给 C。由于我只使用一台 PC(笔记本电脑)和两个不同的相机进行测试,我不能 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... 每个节点只有两个连接.. 前一个节点和下一个节点.

但是,长话短说 - 是的,您可以访问媒体流并将其交给另一个远程连接

我只需要一个专家,他可以给我一个工作的基于 JS 的 webrtc 代码,其中 A 与 B 连接,反之亦然。我会尝试编写 C 与 B 连接,D 与 C 代码连接以进行适当的测试。

于 2014-02-08T20:40:01.033 回答
1
  1. 不,客户端没有。你必须将它发送到服务器,在那里你可以做任何你想做的事情。
  2. 您必须为要转发到的每个对等方打开一个单独的对等连接。

来源:http ://www.youtube.com/watch?v=E8C8ouiXHHk

于 2013-11-06T09:00:23.170 回答