jf-open-pro-device-osd

内容来源:clawhub · 原始地址 · 查看安装指南

原始内容


name: jf-open-pro-device-osd description: 杰峰设备 OSD 水印设置技能(开发版)。支持设备实时画面水印设置,可配置通道标题、时间标题、隐私区域等 OSD 叠加属性。 metadata: version: 1.0.0 author: JFTech category: video tags: - 杰峰 - OSD 水印 - 通道标题 - 时间标题 - 隐私区域 - 视频叠加 triggers: - 设置 OSD 水印 - 查询 OSD 配置 - 通道标题设置 - 时间标题设置 - 隐私区域 - 视频水印 prerequisites: - 配置必需的环境变量 - 设备需已完成配网和绑定 - 设备需在线 region: - CN: api-cn.jftechws.com (中国大陆) - AS: api-as.jftechws.com (亚洲) - EU: api-eu.jftechws.com (欧洲) - NA: api-na.jftechws.com (北美洲)


jf-open-pro-device-osd - 杰峰设备 OSD 水印设置技能(开发版)

技能描述

支持杰峰设备 OSD(On-Screen Display)水印配置功能:

  • 单行 OSD 配置 - 获取/设置单行 OSD 叠加配置
  • 多行 OSD 配置 - 获取/设置多行 OSD 叠加配置
  • 通道标题 - 设置通道名称显示
  • 时间标题 - 设置时间戳显示属性和位置
  • 隐私区域 - 设置画面隐私遮挡区域

触发词

  • 设置 OSD 水印 / 查询 OSD 配置
  • 通道标题设置 / 时间标题设置
  • 隐私区域 / 视频水印

前置条件

必需配置

  1. 签名算法 - 使用杰峰官方移位加密算法生成 signature
  2. 时间戳算法 - counter(7 位) + timeMillis(13 位),实时生成
  3. 设备绑定 - 设备需先绑定到开放平台账号

环境变量

变量名 说明 默认值 必需
JF_UUID 开放平台用户 uuid -
JF_APP_KEY 开放平台应用 appKey -
JF_APP_SECRET 开放平台应用密钥 -
JF_MOVE_CARD 移动卡标识(用于签名) 2
JF_DEVICE_SN 设备序列号 -
JF_DEVICE_TOKEN 设备接口访问令牌 -
JF_ENDPOINT API 接入地址 api-cn.jftechws.com

API 接口

功能 地址 方法
获取单行 OSD 配置 POST /gwp/v3/rtc/device/getconfig/{token} POST
设置单行 OSD 配置 POST /gwp/v3/rtc/device/setconfig/{token} POST
获取多行 OSD 配置 POST /gwp/v3/rtc/device/getconfig/{token} POST
设置多行 OSD 配置 POST /gwp/v3/rtc/device/setconfig/{token} POST

核心功能

1. 单行 OSD 配置(AVEnc.VideoWidget)

API: POST /gwp/v3/rtc/device/getconfig/{token} / setconfig/{token}

Name: AVEnc.VideoWidget

配置项:

字段 类型 说明
ChannelTitle object 通道标题配置
├─ Name string 通道名称
├─ SerialNo string 设备序列号
ChannelTitleAttribute object 通道标题属性
├─ BackColor string 背景色(RGBA)
├─ FrontColor string 前景色(RGBA)
├─ EncodeBlend bool 编码叠加使能
├─ PreviewBlend bool 预览叠加使能
├─ RelativePos int[] 相对位置坐标 [x1,y1,x2,y2]
TimeTitleAttribute object 时间标题属性
├─ BackColor string 背景色
├─ FrontColor string 前景色
├─ EncodeBlend bool 编码叠加使能
├─ PreviewBlend bool 预览叠加使能
├─ RelativePos int[] 相对位置坐标
Covers object[] 隐私区域配置
CoversNum int 隐私区域个数

2. 多行 OSD 配置

API: POST /gwp/v3/rtc/device/getconfig/{token} / setconfig/{token}

Name: AVEnc.VideoOSD

配置项: 支持多行文本叠加配置

使用示例

环境准备

# 设置环境变量(使用占位符,请替换为实际值)
export JF_UUID="uuidxxxx"
export JF_APP_KEY="appkeyxxxx"
export JF_APP_SECRET="appsecretxxxx"
export JF_MOVE_CARD="2"
export JF_DEVICE_SN="devicesnxxxx"
export JF_DEVICE_TOKEN="devicetokenxxxx"
export JF_ENDPOINT="api-cn.jftechws.com"

1. 查询单行 OSD 配置

cd ~/.openclaw/workspace/skills/developer/jf-open-pro-device-osd/scripts

# 查询当前 OSD 配置
python3 osd_config.py --action get-single

2. 设置通道标题

# 设置通道标题
python3 osd_config.py --action set-channel-title \
  --title "大门摄像头" \
  --enable

# 关闭通道标题
python3 osd_config.py --action set-channel-title \
  --title "大门摄像头" \
  --disable

3. 设置时间标题

# 启用时间标题显示
python3 osd_config.py --action set-time-title --enable

# 设置时间标题位置
python3 osd_config.py --action set-time-title \
  --pos-x 100 --pos-y 50 \
  --enable

4. 设置隐私区域

# 添加隐私遮挡区域
python3 osd_config.py --action add-cover \
  --pos-x 1000 --pos-y 1000 \
  --width 500 --height 500

5. 查询多行 OSD 配置

# 查询多行 OSD 配置
python3 osd_config.py --action get-multi

坐标说明

相对位置坐标(RelativePos)

坐标值按比例转换为 0-8192 范围:

实际像素值
转换公式:坐标值 = (像素值 / 总像素) × 8192

示例:
- 画面宽度 1920 像素
- 标题左上角 X 坐标 100 像素
- 转换后:(100 / 1920) × 8192 ≈ 427

坐标格式: [x1, y1, x2, y2]

  • x1, y1: 左上角坐标(有效)
  • x2, y2: 右下角坐标(仅设置左上角时有效)

颜色格式

RGBA 颜色字符串

格式:"0xRRGGBBAA"

  • RR: 红色分量(00-FF)
  • GG: 绿色分量(00-FF)
  • BB: 蓝色分量(00-FF)
  • AA: 透明度分量(00-FF,00=完全透明,FF=完全不透明)

示例:

  • "0x000000FF" - 黑色,不透明
  • "0xFFFFFFFF" - 白色,不透明
  • "0x00000080" - 黑色,半透明

状态码

平台状态码

code 说明 处理建议
2000 成功 -
28007 Header 参数错误 检查 uuid、appKey、timeMillis、signature
40103 无效 Token deviceToken 过期,重新获取
50000 服务器内部错误 联系杰峰技术支持

设备状态码(Ret)

Ret 说明
100 成功

注意事项

  1. 坐标范围 - 坐标值必须在 0-8192 范围内
  2. 颜色格式 - 使用 0xRRGGBBAA 格式
  3. 叠加使能 - EncodeBlend 控制录像叠加,PreviewBlend 控制预览叠加
  4. 隐私区域 - 设置后画面相应区域会被遮挡

相关文件

文件 说明
SKILL.md 技能文档
scripts/osd_config.py Python 执行脚本
scripts/crypto.py 签名/时间戳加密工具(复用)

参考文档