通过Websocket发送WebRTC MediaStream(通过HTTP / Websocket进行RTP)

时间:2012-11-21 10:36:41

标签: websocket rtp webrtc

除其他外,WebRTC用于实时浏览器到浏览器媒体通信,但在我的情况下,它将用于浏览器到服务器的音频通信。

根据我收集的信息,使用RTP over UDP传输MediaStream。

除了用于信令的协议之外,这还需要至少两个额外的端口,我想避免这种情况。

在WebRTC中,是否有可能在Websocket上使用RTP而不是在UDP上使用RTP,这样我只需要使用端口80或443?

2 个答案:

答案 0 :(得分:8)

不,使用WebRTC是不可能的。

WebRTC旨在为浏览器提供三个主要功能:

  1. 能够访问设备的摄像头和麦克风;
  2. 能够建立SRTP会话以发送/接收音频和视频;
  3. 能够在浏览器之间建立点对点数据通道;
  4. 通过定义的here Javascript API,Web应用程序可以访问此功能。 要访问媒体设备,您可以使用getUserMedia(),然后您将获得一个MediaStream以附加到HTML5音频和视频标签。 要创建SRTP会话,您需要create a peer connection并管理要使用的流。

    您必须向浏览器请求媒体SDP优惠并使用任何协议(例如websockets)将其发送给另一方。当对方收到您的SDP优惠时,它可以将其注入浏览器,请求SDP答案,然后将其发回。一旦两个浏览器都有这些优惠,他们就会使用ICE启动SRTP协商。

    因此,您将无法访问RTP数据包以通过websockets发送它们。

答案 1 :(得分:3)

实际上,该计划是支持RTCP-mux RFC 5761和某种形式的BUNDLE(仍然存在争议)将所有流合并到一个端口上。但是,端口将由ICE / STUN选择。如果需要,它也会使用TURN,并最终支持TURN-TCP,它可以在端口80上运行我相信。然而,质量将受到影响。