杰峰设备本地录像技能(开发版)支持TF卡/硬盘存储,提供录像日历查询、回放列表、回放下载、报警图片获取及主辅码流切换功能。
jf-open-pro-local-record - 杰峰设备本地录像技能(开发版)
功能概述
jf-open-pro-local-record - 杰峰设备本地录像技能(开发版)是一项面向实际任务的技能,主要用于支持杰峰设备本地录像管理功能,适用于搭载 TF 卡或硬盘存储的设备:;录像日历查询 - 查询指定月份哪些日期有录像;
核心要点
- 录像回放列表 - 获取指定时间段的录像文件列表;
- 录像回放地址 - 获取 FLV/HLS/RTSP/MP4 回放地址;
- 录像下载 - 获取 MP4 格式录像下载地址;
使用与执行
本地报警图片 - 获。它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。
结果检查与注意事项
实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。
jf-open-pro-local-record - 杰峰设备本地录像技能(开发版)
技能描述
支持杰峰设备本地录像管理功能,适用于搭载 TF 卡或硬盘存储的设备:
- 录像日历查询 - 查询指定月份哪些日期有录像
- 录像回放列表 - 获取指定时间段的录像文件列表
- 录像回放地址 - 获取 FLV/HLS/RTSP/MP4 回放地址
- 录像下载 - 获取 MP4 格式录像下载地址
- 本地报警图片 - 获取设备本地存储的报警图片
- 主辅码流切换 - 切换本地录像的主码流(高清)或辅码流(标清)
适用场景:
- 回看历史录像
- 下载重要录像片段
- 查看报警时的抓拍图片
- 调整录像存储质量(高清/标清)
触发词
- 查询录像日历 / 查询录像列表 / 录像回放
- 下载录像 / 获取报警图片 / 切换码流
- 本地录像 / 卡存录像 / TF 卡录像 / 硬盘录像
前置条件
硬件要求
- 设备支持卡存录像 - 设备需有 TF 卡或硬盘存储
- 录像已开启 - 设备已配置录像计划并正常录像
必需配置
- 签名算法 - 使用杰峰官方移位加密算法生成 signature
- 时间戳算法 - counter(7 位) + timeMillis(13 位),实时生成
- 设备绑定 - 设备需先绑定到开放平台账号
环境变量
| 变量名 | 说明 | 默认值 | 必需 |
|---|---|---|---|
JF_UUID |
开放平台用户 uuid | - | ✅ |
JF_APP_KEY |
开放平台应用 appKey | - | ✅ |
JF_APP_SECRET |
开放平台应用密钥 | - | ✅ |
JF_MOVE_CARD |
移动卡标识(用于签名) | 2 |
✅ |
JF_DEVICE_SN |
设备序列号 | - | ✅ |
JF_DEVICE_TOKEN |
设备接口访问令牌 | - | ✅ |
JF_DEVICE_USERNAME |
设备用户名 | admin |
❌ |
JF_DEVICE_PASSWORD |
设备密码 | - | ✅ |
JF_ENDPOINT |
API 接入地址 | api-cn.jftechws.com |
❌ |
API 接口
| 功能 | 地址 | 方法 | 需要 Token | 需要在线 |
|---|---|---|---|---|
| 录像日历 | POST /gwp/v3/rtc/device/cardPlaybackCalendar/{token} |
POST | ✅ | ✅ |
| 录像列表 | POST /gwp/v3/rtc/device/opdev/{token} |
POST | ✅ | ✅ |
| 回放地址 | POST /gwp/v3/rtc/device/playbackUrl/{token} |
POST | ✅ | ✅ |
| 报警图片 | POST /gwp/v3/rtc/device/getDeviceLocalPic/{token} |
POST | ✅ | ✅ |
| 切换码流 | POST /gwp/v3/rtc/device/cardVideoSwitchStream/{token} |
POST | ✅ | ✅ |
核心功能
1. 录像日历查询(CardPlaybackCalendar)
API: POST /gwp/v3/rtc/device/cardPlaybackCalendar/{deviceToken}
请求参数:
| 参数 | 类型 | 必需 | 说明 |
|---|---|---|---|
| Name | string | ✅ | 固定为 OPSCalendar |
| OPSCalendar.Event | string | ✅ | 录像类型(*=全部,A=外部报警,M=动检,H=手动等) |
| OPSCalendar.FileType | string | ✅ | 文件类型(h264=视频,jpg=图片) |
| OPSCalendar.Year | int | ✅ | 年份 |
| OPSCalendar.Month | int | ✅ | 月份(1-12) |
| OPSCalendar.Channel | int | ❌ | 通道号(默认 0) |
响应参数:
| 字段 | 类型 | 说明 |
|---|---|---|
| CalendarList | object[] | 日历列表 |
| ├─ date | string | 日期(YYYY-MM-DD) |
| ├─ is_exist | int | 是否存在录像(0=不存在,1=存在) |
2. 录像回放列表(OPFileQuery)
API: POST /gwp/v3/rtc/device/opdev/{deviceToken}
请求参数:
| 参数 | 类型 | 必需 | 说明 |
|---|---|---|---|
| Name | string | ✅ | 固定为 OPFileQuery |
| OPFileQuery.BeginTime | string | ✅ | 开始时间(yyyy-MM-dd HH:mm:ss) |
| OPFileQuery.EndTime | string | ✅ | 结束时间(yyyy-MM-dd HH:mm:ss) |
| OPFileQuery.Channel | int | ✅ | 通道号(0=第一通道) |
| OPFileQuery.Event | string | ✅ | 录像类型(*=全部,R=常规,A=报警,M=动检,H=手动等) |
| OPFileQuery.StreamType | string | ✅ | 码流类型(0x00000000=主码流,0x00000001=辅码流) |
| OPFileQuery.Type | string | ✅ | 文件类型(h264=视频,jpg=图片) |
| OPFileQuery.DriverTypeMask | string | ✅ | 固定为 0x0000FFFF |
录像类型说明:
| 类型 | 代码 | 说明 |
|---|---|---|
| 全部 | * |
所有类型的录像 |
| 常规录像 | R |
没有报警时的录像(包含 AOV 录像) |
| 外部报警 | A |
IO 口报警等非视频类报警 |
| 动态检测 | M |
移动侦测、人形检测等视频类报警 |
| 手动录像 | H |
手动开启的录像 |
| AOV 录像 | V |
低功耗全时录像 |
| 入侵 | I |
入侵检测录像 |
| 人脸 | F |
人脸识别录像 |
| 车牌 | N |
车牌识别录像 |
| 关键录像 | K |
关键录像 |
响应参数:
| 字段 | 类型 | 说明 |
|---|---|---|
| OPFileQuery | object[] | 录像文件列表 |
| ├─ BeginTime | string | 开始时间 |
| ├─ EndTime | string | 结束时间 |
| ├─ FileName | string | 录像文件名 |
| ├─ FileLength | int | 文件大小(KB) |
3. 录像回放/下载地址(PlaybackUrl)
API: POST /gwp/v3/rtc/device/playbackUrl/{deviceToken}
请求参数:
| 参数 | 类型 | 必需 | 说明 |
|---|---|---|---|
| channel | int | ✅ | 通道号(0=第一通道) |
| streamType | int | ✅ | 码流类型(0=高清主码流,1=标清辅码流) |
| protocol | string | ✅ | 播放协议(flv/hls-ts/hls-fmp4/mp4/rtsp-sdp) |
| startTime | string | ✅ | 回放开始时间 |
| endTime | string | ✅ | 回放结束时间 |
| fileName | string | ✅ | 录像文件名(从回放列表获取) |
| username | string | ✅ | 设备登录用户名 |
| password | string | ✅ | 设备登录密码 |
| download | int | ❌ | 0=在线回放,1=录像下载(仅 protocol=mp4 时有效) |
| playPrioritize | int | ❌ | 回放优先级(0-2=普通,8=优先播放,9=持续播放) |
协议说明:
| 协议 | 值 | 说明 |
|---|---|---|
| FLV | flv |
标准 FLV 封装(推荐用于 Web 播放) |
| FLV 增强 | flv-enhanced |
FLV 增强封装(H.265 编码推荐) |
| HLS-TS | hls-ts |
HLS 协议,TS 格式切片 |
| HLS-FMP4 | hls-fmp4 |
HLS 协议,FMP4 格式切片 |
| MP4 | mp4 |
HTTP 协议,MP4 格式(用于下载) |
| RTSP | rtsp-sdp |
RTSP 标准协议 |
响应参数:
| 字段 | 类型 | 说明 |
|---|---|---|
| url | string | 播放/下载地址(有效期 10 小时) |
| Ret | int | 设备响应状态码 |
⚠️ 注意:
- URL 有效期为 10 小时
- 同时只支持 一路回放或下载
- 本地录像回放和下载按照流量计费
4. 本地报警图片(GetDeviceLocalPic)
API: POST /gwp/v3/rtc/device/getDeviceLocalPic/{deviceToken}
请求参数:
| 参数 | 类型 | 必需 | 说明 |
|---|---|---|---|
| startTime | string | ✅ | 开始时间 |
| endTime | string | ✅ | 结束时间 |
| fileName | string | ✅ | 图片文件名(从录像列表获取) |
响应参数:
| 字段 | 类型 | 说明 |
|---|---|---|
| image | string | 图片地址 URL |
5. 切换主辅码流(CardVideoSwitchStream)
API: POST /gwp/v3/rtc/device/cardVideoSwitchStream/{deviceToken}
请求参数:
| 参数 | 类型 | 必需 | 说明 |
|---|---|---|---|
| stream | int | ✅ | 码流类型(0=高清主码流,1=标清辅码流) |
说明:
- 切换后新录制的视频将使用新码流
- 不影响已存储的录像文件
使用示例
环境准备
# 设置环境变量 export JF_UUID="uuidxxxx" export JF_APP_KEY="appkeyxxxx" export JF_APP_SECRET="appsecretxxxx" export JF_MOVE_CARD=0 export JF_DEVICE_SN="snxxx1" export JF_DEVICE_TOKEN="NTQ0NzQ3YmE3MXwyYzFk..." export JF_DEVICE_USERNAME="admin" export JF_DEVICE_PASSWORD="xxxx" export JF_ENDPOINT="api-cn.jftechws.com"
1. 查询录像日历
cd ~/.openclaw/workspace/skills/developer/jf-open-pro-local-record/scripts # 查询本月录像日历 python3 local_record.py --action get-calendar --year 2026 --month 5 # 查询指定月份 python3 local_record.py --action get-calendar --year 2026 --month 4
2. 查询录像列表
# 查询今天录像列表 python3 local_record.py --action get-record-list --start "2026-05-07 00:00:00" --end "2026-05-07 23:59:59" # 查询报警录像 python3 local_record.py --action get-record-list --start "2026-05-07 00:00:00" --end "2026-05-07 23:59:59" --event "AMRH"
3. 获取录像回放地址
# 获取 FLV 回放地址(Web 播放) python3 local_record.py --action get-playback-url --file-name "/idea0/2026-05-07/001/10.00.00-11.00.00[R][@12345][0].h264" --start "2026-05-07 10:00:00" --end "2026-05-07 11:00:00" --protocol flv # 获取 HLS 回放地址(移动端播放) python3 local_record.py --action get-playback-url --file-name "/idea0/2026-05-07/001/10.00.00-11.00.00[R][@12345][0].h264" --start "2026-05-07 10:00:00" --end "2026-05-07 11:00:00" --protocol hls-ts
4. 下载录像
# 获取 MP4 下载地址 python3 local_record.py --action download-record --file-name "/idea0/2026-05-07/001/10.00.00-11.00.00[R][@12345][0].h264" --start "2026-05-07 10:00:00" --end "2026-05-07 11:00:00"
5. 获取本地报警图片
# 获取报警图片地址 python3 local_record.py --action get-alarm-pic --file-name "/idea1/2026-05-07/001/10.24.01-10.24.02[M][@48][0].jpg" --start "2026-05-07 10:24:01" --end "2026-05-07 10:24:02"
6. 切换主辅码流
# 切换到标清辅码流(节省存储空间) python3 local_record.py --action switch-stream --stream 1 # 切换到高清主码流(更高画质) python3 local_record.py --action switch-stream --stream 0 # 查询当前码流状态 python3 local_record.py --action get-stream-status
状态码
平台状态码
| code | 说明 | 处理建议 |
|---|---|---|
| 2000 | 成功 | - |
| 28007 | Header 参数错误 | 检查 uuid、appKey、timeMillis、signature |
| 40103 | 无效 Token | deviceToken 过期,重新获取 |
| 50000 | 服务器内部错误 | 联系杰峰技术支持 |
设备状态码(Ret)
| Ret | 说明 |
|---|---|
| 100 | 成功 |
| 200 | 成功(图片接口) |
注意事项
- 设备要求 - 设备需支持卡存录像(TF 卡或硬盘)
- deviceToken 有效期 - 24 小时,过期需重新获取
- 设备在线要求 - 所有操作需要设备在线
- 回放 URL 有效期 - 10 小时,请及时使用
- 单路限制 - 同时只支持一路回放或下载
- 流量计费 - 本地录像回放和下载按照流量计费
- 时间格式 - 所有时间参数使用
yyyy-MM-dd HH:mm:ss格式 - 文件名获取 - 录像文件名需从回放列表接口获取
相关文件
| 文件 | 说明 |
|---|---|
SKILL.md |
技能文档 |
scripts/local_record.py |
Python 执行脚本 |
scripts/crypto.py |
签名/时间戳加密工具(复用) |
参考文档
- 杰峰开放平台
热门AI工具
相关专题
本专题介绍Gradle插件开发的基本流程,涵盖插件类编写、自定义任务注册、扩展参数设计和插件应用方法,帮助你理解插件如何组织构建逻辑,减少多个项目之间的重复配置。
0
2026.10.22
本专题介绍Gradle Wrapper的基本作用,涵盖文件组成、生成方法、版本配置和任务调用,帮助你理解项目如何使用指定的Gradle版本,减少不同开发环境带来的构建差异。
0
2026.10.22
本专题整理Golangci-lint常用Linters的用途与配置方法,覆盖错误处理、无效代码、安全、复杂度、命名和依赖检查,帮助项目合理选规则。
0
2026.10.22
本专题介绍Gradle Java项目构建方法,涵盖Java插件配置、依赖声明、源码编译、测试执行和打包检查,帮助你理解各阶段的任务关系,逐步完成项目构建。
0
2026.10.22
本专题汇总PHP常见时间戳漏洞,包括2038年溢出、时区漂移、时间戳伪造、重放攻击、时间盲注与日志审计失效等,并给出升级64位环境、使用 DateTimeImmutable、统一UTC、严格超时校验、预处理绑定、hash_equals 比对等修复方案,帮助开发者快速排查和加固时间相关代码。
0
2026.10.22
本专题聚焦Golangci-lint YAML配置文件,讲清运行参数、规则启停、目录排除、问题过滤及严重级别设置,便于团队统一检查标准。
0
2026.10.22
本专题讲解Golangci-lint的安装、初始化、基础命令和首次代码检查,覆盖本地环境、Docker及多平台用法,帮助Go开发者快速上手。
0
2026.10.22
PHP2Shell漏洞是什么,哪些PHP版本和运行环境会受到影响,服务器应该如何检测与修复?本专题提供版本自查脚本、Linux与Docker升级命令、PHP-FPM和Apache排查步骤,以及修复验证、临时缓解和应急响应方案。
0
2026.10.22
热门下载
相关下载
精品课程
共6课时 | 12.1万人学习
共79课时 | 161.5万人学习
共6课时 | 54.7万人学习
