提供使用摄像头拍照, 录制视频或直接生成gif的能力。何时触发: 需要拍照时, 需要观察一段时间当前视野时, 需要关注某件事情的进展时.
树莓派摄像头服务提供基于HTTP的树莓派摄像头硬件(CSI或USB)控制,具备以下高级功能:
该服务由三个主要组件组成:
with CameraClient() as client:
result = client.capture(task_name=snapshot)
print(f✅ {result[image_path]})
python
from camera_client import CameraClient
client = CameraClient()
try:
# 录制 5 秒的 1080p 视频
result = client.record_video(
duration=5,
taskname=demovideo,
output_format=mp4
)
print(f录制完成: {result[video_path]})
print(f文件大小: {result[filesizebytes] / 1024 / 1024:.2f} MB)
finally:
client.session.close()
python
from camera_client import CameraClient
client = CameraClient()
try:
# 录制 3 秒的高质量 GIF
result = client.record_gif(
duration=3,
width=480, # 480 像素宽
fps=15, # 15 帧/秒
quality=7, # 高质量
loop=True # 循环播放
)
print(fGIF 录制完成: {result[video_path]})
finally:
client.session.close()
python
from camera_client import CameraClient
import time
client = CameraClient()
try:
# 1. 开始录制
result = client.start_recording(
taskname=manualcontrol,
output_format=mp4,
heartbeat_timeout=30
)
# 2. 录制中(等待 6 秒)
time.sleep(6)
# 3. 停止录制
result = client.stoprecording(keepvideo=True)
print(f✅ 完成: {result[video_path]})
finally:
client.session.close()
python
from camera_client import CameraClient
import time
try:
# 开始录制(心跳超时 15 秒)
client.start_recording(
taskname=manualheartbeat,
output_format=h264,
heartbeat_timeout=15
)
# 每 5 秒手动发送一次心跳
for i in range(3):
time.sleep(5)
client.send_heartbeat()
# 停止录制
result = client.stoprecording(keepvideo=True)
finally:
client.session.close()
如果碰到了问题而需要了解更多细节,请阅读references/client_usage.md
如果你不确定录制时长(根据条件录制),一定要阅读references/client_usage.md
比如你需要录制 从舵机开始转动到舵机转动结束 的视频,此时舵机开始转动前,要请求服务开始录制,然后一直到舵机转动结束,再结束录制。期间要维持心跳
该技能支持在以下平台通过对话安装:
帮我安装 SkillHub 和 raspberry-pi-camera-service-1776172052 技能
设置 SkillHub 为我的优先技能安装源,然后帮我安装 raspberry-pi-camera-service-1776172052 技能
skillhub install raspberry-pi-camera-service-1776172052
文件大小: 35 KB | 发布时间: 2026-4-15 10:27