播放接口概览
本文概述 实时音视频播放 与 远程录像回放 相关的 HTTP API,说明各接口在一次完整播放中的位置与协作关系。调用约定(鉴权、URL、应答格式)见 HTTP 接口约定。
应用侧集成流程与示例请参阅 应用指南概览、音视频请求的生命周期。
功能
播放接口组负责:
- 向终端(或 RTSP 源)发起 实时或历史媒体流
- 返回客户端可用的 播放地址(
playUrl) - 在播放过程中 保活、控制 与 关闭 媒体请求
- 查询播放过程中 服务端转储 的录像文件
不包含:终端录像列表查询与文件上传(见 录像上传 API)、纯终端指令下发(见 终端指令 API)。
主要概念
| 概念 | 说明 |
|---|---|
| reqId | 一次媒体请求的唯一 ID;保活、控制、关闭时使用 |
| playUrl | 返回给客户端的播放地址,协议由打开请求中的 proto 决定(FLV / HLS / RTSP) |
| ready | 打开接口应答或 StrmNotif 通知中的标志,表示是否可立即加载 playUrl |
| async | 打开模式:false 同步等待终端推流;true 立即返回并依赖 WebSocket 通知 |
| ctrl | 打开应答中的控制权标志;true 表示当前请求可执行切流、暂停等控制 |
实时播放流程
POST /login
→ POST /strm/live/open 创建实时请求,返回 reqId、playUrl
→ (异步)订阅 StrmNotif act=ready 时可播放
→ 客户端加载 playUrl FLV / HLS / RTSP 播放器
→ POST /strm/keep_alive 约每 15 秒
→ POST /strm/live/ctrl 可选:切流、暂停、恢复
→ POST /strm/close 或 live/ctrl 关闭

dataType 可指定音视频、仅视频、监听、对讲等,见 打开实时音视频。
远程回放流程
GET /strm/stored 查询终端录像列表
→ POST /strm/replay/open 指定时间段与存储位置,打开回放
→ (异步)等待 StrmNotif ready
→ 客户端加载 playUrl
→ POST /strm/keep_alive
→ POST /strm/replay/ctrl 可选:暂停、快进、拖动
→ POST /strm/close
远程回放 不支持 同通道多会话共享;打开前须先 查询终端远程录像。
同步与异步打开
| 模式 | 请求 | 返回时机 | WebSocket 通知 |
|---|---|---|---|
| 同步 | async: false 或不传 | 终端推流就绪或失败后返回 | 可选 |
| 异步 | async: true | 分配 reqId 后立即返回 | 必须 订阅 /user/{token}/queue/strm |
异步模式下须处理 StrmNotif 中 sent、failed、ready、closed 等 act 值。详见 音视频请求的生命周期。
接口列表
共用
| 接口 | 方法 | 用途 |
|---|---|---|
| 音视频流请求保持 | POST /strm/keep_alive | 保活一个或多个 reqId,建议间隔 15 秒 |
| 关闭媒体请求 | POST /strm/close | 批量关闭媒体请求(实时或回放) |
| 查询转储文件信息 | GET /strm/played_av_dump | 查询 saveOnServer=true 时服务端转储文件 |
实时音视频
| 接口 | 方法 | 用途 |
|---|---|---|
| 打开实时音视频 | POST /strm/live/open | 打开实时流;支持 JT/T 1076 终端与 RTSP 源 |
| 实时音视频控制 | POST /strm/live/ctrl | 切流、暂停、恢复、关闭等 |
远程录像回放
| 接口 | 方法 | 用途 |
|---|---|---|
| 打开远程录像回放 | POST /strm/replay/open | 按查询结果打开终端历史录像 |
| 远程录像回放控制 | POST /strm/replay/ctrl | 暂停、快进、拖动、关闭等 |
客户端协议(proto)
打开接口中的 proto 决定 playUrl 的协议类型:
| proto | 协议 | 典型播放器 |
|---|---|---|
0 | FLV(HTTP / WebSocket) | mpegts.js / flv.js |
1 | HLS | hls.js 或 Safari 原生 |
4 | RTSP | 原生 / 专用播放器 |
选型说明见 客户端播放协议的选择。
相关通知(异步模式)
使用 HTTP API 且 async: true 时,须通过 STOMP WebSocket 订阅:
| 通知 | 订阅地址 |
|---|---|
| 流媒体状态 StrmNotif | /user/{token}/queue/strm |
WebSocket 连接约定见 STOMP WebSocket 基本约定。
v4 起也可改用 WebSocket API 与 strm-js,在单连接上完成 API 调用与通知,见 HTTP 与 WebSocket API 选型。
集成示例
| 场景 | 示例 |
|---|---|
| 同步 HTTP-FLV 实时播放 | example-1-live |
| 异步 HTTP-FLV 实时播放 | example-2-live |
| HLS 实时播放 | example-3-live-hls |
| 远程回放 | example-4-replay |
| RTSP 摄像头 | example-5-rtsp-src |
| WebSocket API(v4) | ws-example-1-live |
注意事项
- 除登录外,所有接口须在请求头携带
X-Auth-Token(见 会话与 token)。 - 未及时 保活 会导致请求被服务端关闭(
closeCause常为保活超时)。 - 实时通道 对讲 与 远程回放 对共享打开有限制,见 生命周期 · 共享打开。
- 常见错误码:
-27终端不在线、-21资源占用、-25无控制权、-5超时。见 错误码定义 与 常见问题与排错。