Jingle和webRTC之间的互操作性

时间:2014-11-26 09:32:53

标签: javascript android video xmpp libjingle

是否可以通过webRTC客户端(浏览器)从“设备”(非浏览器)建立XMPP / Jingle(音频视频)会话?

在Jingle ICE提供/回答协商完成后,会话/流应由浏览器上的 webRTC 应用程序用于接收从Jingle设备发送的音频/视频(例如使用{ {1}}或libjitsi库)。该设备没有任何本机webRTC实现。我想,这需要将XML转换为SDP(webRTC使用SDP)。 Otalk和相关的库/工具似乎支持这一点,但找不到一个例子。有一些JavaScript演示here。但是,这些演示假定浏览器环境/上下文。我不想通过外部服务器路由音频/视频(如果可能的话,避免使用视频桥)。

问题:

  • 是否可以使用Jingle建立会话(使用外部XMPP服务器进行身份验证和会话建立)并让设备使用jingle库(特别是libjitsi等Java库)发送音频/视频/数据流或者smack或任何其他可以在node.js下运行的JavaScript库/ API,而不使用webRTC API /库(在设备上)?

  • 有没有这样做的例子/解释?

  • OR是通过网桥路由音频和视频,还是使用具有会议或“会议室”设施的MUC服务器是唯一的解决方案?

1 个答案:

答案 0 :(得分:1)

问题1:是的,这是可能的。您需要在浏览器端(在javascript应用程序中)之间在SDP和Jingle之间进行转换,因为WebRTC仅使用SDP。

问题2:一个例子是Jitsi Hammer。它使用Jingle与支持WebRTC的浏览器(或SFU /网桥,如Jitsi Videobridge)建立会话。连接后,它会流式传输预先录制的音频和/或视频文件。它使用smack作为XMPP,使用ice4j和libjitsi作为WebRTC部分。

问题3:浏览器并不关心它是否连接到另一个浏览器,MCU / SFU或其他类型的设备。只要它提供有效的remoteDescription SDP,而另一端支持WebRTC(ICE,DTLS / SRTP)所需的协议。