根据我收集的信息,使用RTP over UDP传输MediaStream。
除了用于信令的协议之外,这还需要至少两个额外的端口,我想避免这种情况。
在WebRTC中,是否有可能在Websocket上使用RTP而不是在UDP上使用RTP,这样我只需要使用端口80或443?
答案 0 :(得分:8)
不,使用WebRTC是不可能的。
WebRTC旨在为浏览器提供三个主要功能:
通过定义的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上运行我相信。然而,质量将受到影响。