是否可以使用webRTC客户端(浏览器)从"设备"(不是浏览器)建立XMPP/Jingle(音频视频)会话?
在Jingle ICE报价/答案协商完成后,浏览器上的webRTC应用程序应使用会话/流来接收从Jingle设备发送的音频/视频(例如使用libjitsi
或smack
库)。该设备没有任何原生的webRTC实现。我想,这将需要将XML转换为SDP(webRTC使用SDP)。Otalk和相关库/工具似乎支持这一点,但找不到示例。这里有一些JavaScript演示。但是,这些演示假定浏览器环境/上下文。我不想通过外部服务器路由音频/视频(即,如果可能,请避免使用视频桥接器)。
问题:
-
是否可以使用 Jingle 建立会话(使用外部 XMPP 服务器进行身份验证和会话建立),并让设备使用叮当库(特别是 Java 库,如 libjitsi 或 smack 或任何其他可以在 node.js 下运行的 JavaScript 库/API)发送音频/视频/数据流,而无需使用 webRTC API/库(在设备上)?
-
有没有这样做的例子/解释?
-
或者是否通过网桥路由音频和视频或使用带有会议或"房间"设施的 MUC 服务器是唯一的解决方案?
问题 1:是的,这是可能的。你需要在浏览器端(在javascript应用程序中)在SDP和Jingle之间进行转换,因为WebRTC只使用SDP。
问题2:一个例子是Jitsi Hammer。它使用Jingle与支持WebRTC的浏览器(或SFU/bridge,如Jitsi Videobridge)建立会话。连接后,它会流式传输预先录制的音频和/或视频文件。它使用 smack 表示 XMPP,使用 ice4j 和 libjitsi 表示 WebRTC 部分。
问题3:浏览器并不真正关心它是否连接到另一个浏览器,MCU/SFU或其他类型的设备。只要它提供了一个有效的remoteDescription SDP,而另一端支持WebRTC(ICE,DTLS/SRTP)所需的协议。