使用 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 中调整比特率。