node.js中创建流媒体服务器将监控摄像头的rtsp串流推流给前端播放
在Node.js中,你可以使用node-rtsp-stream
库来从摄像头接收RTSP流,并使用ws
库来建立WebSocket连接,以实现将流媒体推送到客户端。以下是一个简化的示例代码:
首先,安装所需的库:
npm install node-rtsp-stream
npm install ws
然后,使用以下代码创建流媒体服务器:
const Stream = require('node-rtsp-stream');
const WebSocket = require('ws');
// 设置RTSP流
const stream = new Stream({
name: 'name',
streamUrl: 'rtsp://your_camera_ip:port/stream',
wsPort: 9999,
ffmpegOptions: { // ffmpeg标志
'-stats': '', // 打印编码进度统计信息
'-r': 30 // 设置帧率
}
});
// 初始化WebSocket服务器
const wss = new WebSocket.Server({ port: 9999 });
wss.on('connection', function (ws) {
console.log('Client connected');
ws.on('message', function (message) {
// 处理客户端发送的消息(如果需要的话)
});
ws.send('{"type":"start"}'); // 发送开始信号
ws.on('close', function () {
console.log('Client disconnected');
});
});
console.log('Stream Ready');
前端代码可以使用HTML5的<video>
标签接收WebSocket流:
<video autoplay playsinline src="ws://localhost:9999/"></video>
<script>
// 确保WebSocket连接正常工作
</script>
确保将your_camera_ip
和port
替换为实际摄像头的IP地址和端口号。这个简单的例子展示了如何使用Node.js和WebSocket推送实时视频流。根据实际情况,你可能需要添加更多的错误处理和配置选项。
评论已关闭