微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Nodejs - RTSP 实时摄像头馈送 - 分布式架构

如何解决Nodejs - RTSP 实时摄像头馈送 - 分布式架构

我们需要传递摄像机详细信息并需要在网络浏览器中向最终用户显示实时流。由于这是分布式架构,因此我们可以仅使用 Rest API 或套接字通信来实现。

技术栈

  1. Nodejs - 在后端
  2. Angular - 在前端

作为解决方案的一部分,我发现 npm - node-rtsp-stream - https://www.npmjs.com/package/node-rtsp-stream 但问题是我们必须创建 API 并在 api 中传递流,至少要有 20-30 个摄像头才能看到直播。从前端传递端口并在后端使用它。

问题 -

  • 如何在用户单击暂停按钮时停止流,我已经尝试使用 API - '/camera/Feed/stop/:port' 但它不起作用?
  • 在为流创建 API 时,流很可能会混淆,如何管理 ws 端口?
  • 使用 RTSP URL 在客户端显示流的任何更好的解决方

我尝试了以下解决方案,但没有成功

{% url 'learning_logg:index' %}

index.html

const Stream = require('node-rtsp-stream');
app.get('/camera/Feed/:camera/:port',(req,res) => {
    console.log(req.params.port);
    if (req.params.camera == 1) {
        var ip_address2 = "192.168.1.12"
        var username2 = "admin";
        var password2 = "admin";
    } else if (req.params.camera == 2) {
        var ip_address2 = "192.168.1.10"
        var username2 = "admin";
        var password2 = "admin";
    }
    stream = new Stream({
        streamUrl: 'rtsp://' + username2 + ':' + password2 + '@' + ip_address2 + ':554/cam/realmonitor?channel=1&subtype=0&unicast=true&proto=Onvif',wsPort: req.params.port
    });
    res.send('OK');
});
// Stop the stream that produce using ffmpeg
app.get('/camera/Feed/stop/:port',res) => {
    stream.stop() // This is not make ffmpeg to stop the processing stream 
    res.send('OK');
});

app.listen(port,() => {
    console.log(`Example app listening at http://localhost:${port}`)
})

谢谢。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。