使用 Janus 直播网络摄像头

Posted

技术标签:

【中文标题】使用 Janus 直播网络摄像头【英文标题】:Live streaming webcam with Janus 【发布时间】:2020-01-09 13:13:46 【问题描述】:

我正在尝试使用 WebRTC 从用户的网络摄像头直播视频和音频。我不知道如何使用 Janus Webrtc 网关进行操作,以便一个人可以流式传输网络摄像头,而其他人可以在另一个网页上查看它。

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

广播公司 我可以像这样将会话附加到流插件:

janus.attach(
   plugin: "janus.plugin.streaming",    
    [...]

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

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); 
       
    );
,

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

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

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

我希望用户流式传输网络摄像头,而其他用户会看到它(一对多广播)。我已经阅读了这个帖子,用户 nschoe 说 Janus 是可能的: WebRTC - scalable live stream broadcasting / multicasting

【问题讨论】:

你是怎么解决这个问题的? 我也在尝试这样做 【参考方案1】:

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

media:
    request:"request type"
    ....

Where "request type" can be list, info, create, destroy, recording, edit, enable and disable

您可以在其Streaming API documentation获取更多信息

【讨论】:

以上是关于使用 Janus 直播网络摄像头的主要内容,如果未能解决你的问题,请参考以下文章

如何从 http 网络摄像头直播中捕获图像

使用ffmpeg进行网络直播

处理 chrome 的 rtp 流需要哪些 gstreamer 管道设置?

监控摄像头如何进行互联网实时直播

海康大华安防网络摄像头OnvifRTSP网络无插件直播流媒体服务解决方案EasyNVR表单重复提交的优化方案

不同网络情况的安防摄像头如何通过手机进行直播?