OpenClaw获取摄像头画面推流项目
本文最后更新于18 天前,其中的信息可能已经过时,如有错误请发送邮件到2275012286@qq.com,或者在下方留言。

想了解更多项目请搜索“项目”标签或者访问我的github仓库。
仓库地址:QianmoNai’s Repositories

基于树莓派docker容器部署下的OpenClaw获取USB摄像头推流画面项目

1.项目背景

最近尝试扩展一下openclaw的玩法,于是就想着能不能用usb摄像头来给龙虾“长眼睛”,关于如何在树莓派中部署openclaw,本文不展示部署过程,详细可以参考这个视频⚡极致挑战:树莓派上部署 OpenClaw 小龙虾🦞!

2.项目介绍

项目所用到的:部署完成并且成功接入飞书的openclaw、树莓派5(8G)、usb摄像头。

如上所示,最终成果是能够得到一个局域网内任意设备都能实时看摄像头的推流网页,和一个能感知外界“长眼睛的龙虾”

①推流视频网页部分:

工作原理:

摄像头 → ffmpeg (采集+MJPEG编码) → Python HTTP服务器 → 客户端浏览器

核心代码:

  • 采集视频: 用 ffmpeg 从 /dev/video0 采集 MJPEG 格式
  • HTTP 响应: 返回 multipart/x-mixed-replace 类型,浏览器可实时显示
  • 帧解析:从 ffmpeg 输出中提取完整 JPEG 帧 (\xff\xd8 到 \xff\xd9)
  • 抢占机制: 新客户端连接时,终止旧的 ffmpeg 进程和 socket

同时发现单单只有服务器代码运行小概率会出现进程卡死的情况,可能是视频流阻塞?所以加上了一个的专门用于视频服务器自动监控与重启程序,在服务器出现问题的时候重启服务器,后续也只需要开机自启动这个程序即可。

  • 多维度检测:进程存活 + 端口连通 + HTTP 响应,避免单一检测维度的误判;
  • 自动恢复:异常达到阈值后自动重启服务器,无需人工干预;
  • 日志清晰:输出带时间戳的状态日志,便于定位问题;
  • 鲁棒性:捕获异常(如网络超时、命令执行失败),避免监控程序自身崩溃;
  • 后台运行:启动服务器时重定向输出,且新建会话,保证服务独立运行。

其他:

要让局域网下其他设备能够访问要开放防火墙(8080端口)

sudo ufw allow 8080/tcp

访问地址——http://树莓派ip:8080/

①openclaw容器部分:

最简单的方法是把推流地址发给openclaw然后让它自己想办法把画面给你,最后别忘记把流程总结添加到TOOLS.md中让龙虾能记住操作流程。我添加的内容如下如下:

### 局域网摄像头

**地址:** http://192.168.1.112:8080/

**查看流程:**
1. 使用 browser 工具打开地址(profile: openclaw)
2. 刷新页面(navigate 同一地址)
3. 截图(screenshot)
4. 用 image 工具分析画面内容

3.项目重点内容

①推流核心是 ffmpeg 采集 MJPEG 格式视频,结合 Python HTTP 服务器实现浏览器实时播放;

②设计了抢占式单客户端机制,保证同一时间只有一个最新访问的客户端能访问摄像头流;

③OpenClaw 集成只需配置推流地址和预设工具流程,即可实现摄像头画面的获取与分析。

✧(≖ ◡ ≖✿)有问题欢迎在下方留言,你的建议是我更新的动力!
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇