RTSP 视频流播放
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_a706bb76/xb202605。
技能介绍
要解决什么问题
IP 摄像头和 NVR 往往只暴露 rtsp:// 地址,而不是可直接在浏览器里打开的 HTTP 页面。工程师在排查监控、做临时取证或验证设备是否在线时,需要在 Agent 环境里拉流、看一帧、录一段,有时还要按间隔抓图或把多张截图合成 GIF,而不是手动开 VLC 或写一次性脚本。
技能如何工作
技能把常见 RTSP 操作收敛成可执行的 exec 路径,并约定实现优先级:
- 首选
python3+opencv-python:通过cv2.VideoCapture(rtsp_url)读帧,用于播放预览(在无 GUI 时降级为截图)、单帧保存、定时连续截图(自然语言间隔会换算成time.sleep秒数),以及用 Pillow 将多张 JPG 合成 GIF(duration、loop等参数)。 - 备选 ffmpeg / ffprobe:
-rtsp_transport tcp提高跨网稳定性;-vframes 1截一帧;-t限制录制时长,避免长时间阻塞;timeout 5 ffprobe检测流是否可用。 - 参数与 URL:支持无鉴权与
user:pass@host形式;路径因品牌而异(如/live、/stream1)。跨网络场景建议始终用 TCP 传输。
适用边界与注意点
- 本地文件(
.mp4等)、格式转码、通用图像处理应交给 media-processing / image-processing 等技能;USB 本地摄像头不走 RTSP。 - 不要在回复中泄露或持久化用户提供的鉴权密码;不要用 browser/read 去「访问」RTSP URL。
- 不猜测地址:URL 不完整时要求用户补全端口与路径。定时任务若未指定张数,需设上限以防无限循环;单帧失败可跳过继续。OpenCV/ffmpeg 均不可用时,应明确降级并给出本地 VLC 等替代方案。
使用场景
- 机房或网络割接后,需对多台 IPC 的 `rtsp://` 地址做 ffprobe 检测,确认设备仍在线且能解析出码流信息。
- 用户给出完整 RTSP URL,要求在 Agent 里查看实时画面;无 GUI 时改为读一帧保存为 JPG 并返回文件路径。
- 集成或验收阶段,需从带鉴权的 RTSP 主码流用 ffmpeg 限时录制一段 mp4,作为故障复现或交付附件。
- 按自然语言间隔(如每30秒、每5分钟)从同一路监控流连续截图,并将多张 JPG 用 Pillow 合成 GIF 写入巡检或日报。
适合人员
- 负责监控/弱电运维、割接或改 VLAN 后必须逐路确认 RTSP 是否通流的现场工程师
- 对接海康、大华等 NVR/IPC、需按厂商路径拼 URL 并试连抓图或录短片的弱电集成实施
- 在远程 Agent 沙箱里无法开 VLC、却要从指定 rtsp 地址截图留证的安全运营或事件分析人员
- 编写自动化巡检脚本、需要把「每 N 秒/分钟抓图」和 GIF 合成参数说清楚的产品或平台技能维护者