跳至正文

Streaming IP Camera NodeJS

标签:

使用 NodeJS 显示 IP 摄像头。

主要步骤请参见文章,但是和文档中不同的是安装 ffmpeg,安装 ffmpeg 请参见文章。另外还有几个问题需要注意:

在桌面新建一个文件夹 IPCamera,然后在此文件夹中

git clone https://github.com/xpcrts/Steaming-IP-Camera-Nodejs

npm install node-onvif -s

npm i node-rtsp-stream -s

IPCamera 文件夹的结构应该是这样的:

IP Camera 激活可以用浏览器或者“萤石云APP”,具体请参见说明书

IP Camera 浏览器查看,目前只支持 Safari,地址:192.168.1.64,用户名:admin,密码:激活时设置的密码;

IP Camera 的 rtsp 地址,请参见文章

按照 Steaming IP Camera NodeJS 的文档,更改 app.js 中对应的内容,就可以看到 IP Camera 的画面了。

// 摄像头地址
var ip_address = "192.168.1.64"
// 摄像头用户名及密码
var username = "admin";
var password="激活时设置的密码";

Stream = require('node-rtsp-stream');
stream = new Stream({
    // 主码流
    streamUrl: 'rtsp://' + username + ':' + password + '@' + ip_address + ':554/h264/ch1/main/av_stream',
    // 子码流
    //streamUrl: 'rtsp://' + username + ':' + password + '@' + ip_address + '/h264/ch1/sub/av_stream',
    // WebSocket 端口
    wsPort: 9999,
    // ffmpeg 参数
    ffmpegOptions: {
    	'-r': 25,
    	'-b:v': '5M'
    }
});

如果希望在局域网中都能访问,还需要把 index.html 中的 WebSocket 地址改成主机地址:

// 原来为 127.0.0.1:9999
var websocket = new WebSocket("ws://192.168.1.111:9999");

IP Camera 的设置请在浏览器中完成,截图如下:

PC 和 Mac 下配置,主要的不同就在于 ffmpeg。PC 需要去官网下载 ffmpeg,这里选择的是 ffmpeg-v4.3.1-2020-11-19-essentials 的 7z 版本;解压缩后,把 bin 文件夹放在 IP Camera 文件夹中;在系统(用户)变量中添加此 bin 文件夹路径。

结束之后,进入 cmd 输入 ffmpeg -version 看看是否可以正常工作;其他的就和 Mac 下是一样的了。

可以选择 browser-sync 替代 http-server。

发现清晰度不够,请在 app.js ffmpeg options 中调整比特率。

node rtsp streamjsmpegbrowser-sync

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注