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 (将#修改为@)