jf-open-pro-livestream

API key required
Other

杰峰设备直播预览技能(开发版)。支持多端集成实时视频播放,兼容 HLS、RTSP、RTMP、FLV、MP4、WebRTC 等主流协议,适配 H.264/H.265 设备。

Install

openclaw skills install jf-open-pro-livestream

jf-open-pro-livestream - 杰峰设备直播预览技能(开发版)

技能描述

支持杰峰设备实时直播地址获取,适用于多端集成播放:

  • 多协议支持 - HLS、RTSP、RTMP、FLV、MP4、WebRTC
  • 多端适配 - Web、微信小程序、H5、第三方播放器
  • 编码兼容 - H.264、H.265 视频编码
  • 低时延 - WebRTC 低时延预览(仅 H.264)

适用场景:

  • Web 页面嵌入实时监控
  • 微信小程序视频播放
  • 第三方播放器集成
  • 移动端 APP 视频预览

触发词

  • 获取直播地址 / 直播预览 / 实时播放
  • 视频流地址 / 获取播放 URL / 直播流

前置条件

设备要求

  1. 设备在线 - 设备需在线且可访问
  2. 低功耗设备 - 获取 URL 后必须在 3 秒内播放
  3. 编码配置 - H.265 设备建议使用特定协议

必需配置

  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_DEVICE_USERNAME设备用户名admin
JF_DEVICE_PASSWORD设备密码-
JF_ENDPOINTAPI 接入地址api-cn.jftechws.com

API 接口

功能地址方法需要 Token需要在线
获取直播地址POST /gwp/v3/rtc/device/livestream/{token}POST

支持的协议

FLV 协议族

协议说明适用场景
FLVflv标准 FLV 封装Web 端(H.264/H.265)
FLV 增强flv-enhancedFLV-enhanced 封装VLC 4.0+、ffmpeg 6.1+
WS-FLVws-flvWebSocket FLVWeb 端低时延
WS-FLV 增强ws-flv-enhancedWebSocket FLV-enhancedWeb 端低时延
WS 私有ws-pri杰峰私有协议杰峰 WEB 播放器

HLS 协议族

协议说明适用场景
HLS-TShls-tsHLS+TS 切片iOS、Safari
HLS-FMP4hls-fmp4HLS+fMP4 切片iOS、Safari

RTMP 协议族

协议说明适用场景
RTMP-FLVrtmp-flvRTMP+FLV微信小程序
RTMP 增强rtmp-enhancedRTMP+FLV-enhanced微信小程序

RTSP 协议族

协议说明适用场景
RTSP-SDPrtsp-sdpRTSP 标准协议VLC、FFmpeg
RTSP 私有rtsp-priRTSP 私有协议杰峰客户端

MP4 协议

协议说明适用场景
MP4mp4HTTP+MP4Chrome 23+

WebRTC 协议

协议说明适用场景
WebRTCwebrtcWebRTC 协议仅 H.264,低时延

使用场景推荐

微信小程序

组件支持协议
live-playerhttp-flvrtmphls

H5 页面/Web 端

播放方式支持协议说明
<video> 标签hlsmp4仅 H.264
flv.jshttp-flv需要 H.264
WebRTC APIwebrtc仅 H.264,低时延
杰峰 WEB 播放器全部支持 H.264/H.265

第三方播放器

播放器推荐协议
VLC 4.0+flv-enhancedrtsp
FFmpeg 6.1+flv-enhancedrtsp
PotPlayerrtsprtmp

使用示例

环境准备

# 设置环境变量
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. 获取 FLV 直播地址(Web 端推荐)

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

# 获取 FLV 地址(标清辅码流)
python3 livestream.py --action get-url --protocol flv

# 获取 FLV 地址(高清主码流)
python3 livestream.py --action get-url --protocol flv --stream 0

2. 获取 HLS 地址(iOS/小程序推荐)

# 获取 HLS-TS 地址
python3 livestream.py --action get-url --protocol hls-ts

# 获取 HLS-FMP4 地址
python3 livestream.py --action get-url --protocol hls-fmp4

3. 获取 RTMP 地址(微信小程序)

# 获取 RTMP-FLV 地址
python3 livestream.py --action get-url --protocol rtmp-flv

4. 获取 WebRTC 地址(低时延,仅 H.264)

# 获取 WebRTC 地址(仅支持 H.264 设备)
python3 livestream.py --action get-url --protocol webrtc

5. 获取 RTSP 地址(VLC/FFmpeg)

# 获取 RTSP 地址
python3 livestream.py --action get-url --protocol rtsp-sdp

6. 设置 URL 有效期

# 设置 24 小时有效期
python3 livestream.py --action get-url --protocol flv --expire-hours 24

# 设置 7 天有效期
python3 livestream.py --action get-url --protocol flv --expire-days 7

请求参数

参数类型必需默认值说明
channelstring0通道号(0=第一通道)
streamstring1码流(0=高清主码流,1=标清辅码流)
protocolstring-播放协议
usernamestringadmin设备登录用户名
passwordstring``设备登录密码
expireTimestring10 小时URL 有效期(毫秒时间戳)

响应参数

字段类型说明
codeint平台状态码(2000=成功)
msgstring响应消息
dataobject响应数据
├─ Retint设备状态码(100=成功)
├─ urlstring播放地址 URL
└─ retMsgstring设备错误信息(失败时)

状态码

平台状态码

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

设备状态码(Ret)

Ret说明处理建议
100成功-
101登录连接超时检查设备是否在线
106用户名或密码错误检查设备凭证

注意事项

  1. URL 有效期 - 默认 10 小时,可自定义 30 秒 -720 天
  2. 低功耗设备 - 获取 URL 后必须在 3 秒内播放
  3. 设备休眠 - 低功耗设备需先唤醒再获取 URL
  4. 编码格式 - WebRTC 仅支持 H.264 设备
  5. H.265 设备 - 建议使用 flv-enhanced 或 ws-flv-enhanced
  6. 重复使用 - 有效期内 URL 可重复使用,减少起播时长
  7. 单路限制 - 部分设备同时只支持一路直播流

相关文件

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

参考文档