rpistreaming WebSocket低延迟摄像头流媒体方案
Raspberry Pi 的 MJPEG 流媒体搞起来其实没那么麻烦,rpistreaming 就是个挺轻巧的方案。它直接用 raspivid 把摄像头画面吐出来,通过 WebSocket 二进制发给前端,省了 base64
转换那道工序,延迟也低,画面响应挺快的。
项目结构也比较清晰,一条命令拉下来解压后,npm install
node server.js
就能跑。网页端访问 http://你的 RPI-IP:8080
,就能直接看到摄像头画面,挺适合做点实时预览的东西。
核心原理是每一帧 JPEG 用 Buffer
传,像这样:
streamCamera.on('frame', data => {
// data 是 JPEG 的 Buffer
// 直接通过 WebSocket 发给前端
});
比起传统的 HTTP MJPEG 流,这种方式更灵活,是你需要嵌进自己的页面里,或者做点画面啥的,配合 Node.js 的 WebSocket 库,顺手。
如果你正好手头有台 Raspberry Pi,想要搞点实时图像的东西,这个项目值得一试。也可以看看这些相关文章,打个底:
- Node.js WebSocket 实例
- WebSocket Server Implementation with Node.js
- NodePush: Node.js 中的 WebSocket 推送服务器
注意点:网络差的情况下,延迟还是会有波动的。部署时建议用有线连接,稳定多。
如果你是做 IoT 或边缘计算相关的,rpistreaming 还挺好集成的,轻便、实用,不用装一堆重库。
242.96KB
文件大小:
评论区