使用 Janus 进行实时流媒体网络摄像头

Joh*_*ohn 6 janus webrtc

我正在尝试使用 WebRTC 从用户的网络摄像头实时传输视频和音频。我不知道如何使用 Janus Webrtc 网关来做到这一点,以便一个人可以流式传输网络摄像头,而其他人可以在另一个网页上查看它。

我已经安装了 Janus,并且可以使用浏览器连接 Janus 服务器。我将会话附加到流媒体插件,然后使用createOffer. 该onlocalstream函数被调用,并且我设置了srcObject视频元素的 。

广播公司
可以将会话附加到流媒体插件,如下所示:

janus.attach({
   plugin: "janus.plugin.streaming",    
    [...]
Run Code Online (Sandbox Code Playgroud)

..然后在成功处理程序中我创建一个如下的报价:

success: function(pluginHandle) {
    streaming = pluginHandle;
    var body = { "audio": { deviceId: { exact: audioSelect.value }},"video": { deviceId: { exact: videoSelect.value }} };
    streaming.createOffer({
        media: {
            audioSend: true,
            videoSend: true,
            audioRecv: false,
            videoRecv: false,
            audio: { deviceId: { exact: audioSelect.value }},
            video: { deviceId: { exact: videoSelect.value }}
       },
       success: function(jsep) {
           console.log("jsep = " + jsep);
           streaming.send({"message": body, "jsep": jsep});
       },
       error: function(error) { 
           console.log("error creating offer: " + error); 
       }
    });
},
Run Code Online (Sandbox Code Playgroud)

查看器
在查看器页面上,我也附加了流媒体插件,但在这里我真的不知道该怎么做。createOffer我要使用, 或 来创建报价吗createAnswer

流媒体插件是我想要的正确插件吗?

当广播公司连接时,我确实在 Janus 服务器上看到错误:
[ERR] [plugins/janus_streaming.c:janus_streaming_handle_message:3614] Missing mandatory element (request)

我希望用户流式传输网络摄像头,其他用户会看到它(一对多广播)。我读过这个帖子,用户 nschoe 说 Janus 是可能的: WebRTC - 可扩展的实时流广播/多播

Rip*_*ill 1

最近我在使用 Python 的示例实现中遇到了这个问题。请尝试添加

media:{
    request:"request type"
    ....
}
Where "request type" can be list, info, create, destroy, recording, edit, enable and disable
Run Code Online (Sandbox Code Playgroud)

您可以在其Streaming API 文档中获取更多信息