跳到主要内容
版本:3.4.0

打开流媒体通道

POST /strm/open

本接口用于打开特定终端通道的流媒体会话,并返回服务端分配的媒体地址。实时音视频、远程录像回放的流媒体会话均由本接口进行打开。如果接口调用时媒体已经可以播放 (实时音视频时,如果此前已有其它会话打开了通道并已经在播放),返回的 OpenStrmResultready属性将被设为true;否则,ready属性为false, 后续,当媒体可播放时,企业应用的 POST strm_notif SPI接口将被媒体服务调用,通知的actready

本接口成功返回后,流请求的最后流请求保持时间被置为媒体服务的当前时间,客户端此时应启动流请求保持定时器,在流请求保持间隔时间内调用 POST /strm/keep 流请求保持接口。 假设媒体服务配置的流请求保持间隔为25秒,客户端流请求保持间隔为20秒,则客户端应在本接口成功返回后20秒调用第一次流请求保持调用。

请求

POST https://n11.gratour.info:7011/strm/open
Content-Type: application/json
Authorization: Basic YWRtaW46YWRtaW4

{
"cb": "https://strm:PaEWWGCeE3Az9Z7o@n11.gratour.info:9100/v1/strm_serv",
"user": {
"token": "nYOnhfpYJ9tk8Lvt",
},
"typ": "live",
"simNo": "13320200317",
"channelId": 1,
"connIdx": 0,
"fmt": 1
}

请求实体属性

属性数据类型必要说明
reqIdstring请求ID。此请求ID可由调用者产生、提供。如果提供,则调用者应确保其符合 请求ID(reqId)的格式要求 。如果不提供,则由流媒体服务产生并返回。
cbstringY企业系统的回调接口的基地址。流媒体服务使用该地址来调用企业系统的接口(如通知媒体可用)。 如:cb
https://gratour.info:9100/v1/strm_serv
则,流媒体服务在回调流媒体通知 (POST /strm_notif)时,使用的接口地址为:
https://gratour.info:9100/v1/strm_serv/strm_noitf

此地址应使用https协议,并可在此地址带上鉴权信息。如:
https://strm:PaEWWGCeE3Az9Z7o@gratour.info:9100/v1/strm_serv
鉴权信息在回调时以Basic Authorization方式在Authorization Header中提供。
使用鉴权信息时,应产生短生命周期的随机密码,每隔一小段时间更换。但请求仍有效时,密码应保持有效。

如果不提供鉴权信息,则应确保回调接口只能供媒体服务调用。

多个打开请求可使用不同的用户名密码。媒体服务不会在请求的生存期之外缓存这些鉴权信息。
userStrmUserInfoY用户信息对象。
typstringY流的类型:
  • live: 表示打开实时音视频
  • replay: 表示打开远程录像回放
simNostringY终端识别号。
chanIdintY音视频逻辑通道号。参见JT/T 1078标准定义的车载视频逻辑通道号定义表。
dataTypint交互模式。
  • typlive (实时音频请求)数据类型:
    • 0: 音视频
    • 1: 视频
    • 2: 双向对讲
    • 3: 监听
    • 4: 中心广播(暂不支持)
    • 5: 透传(暂不支持)
  • typreplay(远程录像回放)时:
    • 0: 请求音视频回放
    • 1: 请求仅音频回放
    • 2: 请求仅视频回放
未指定时,值视为:0
codeStrmint码流类型:
  • 0: 主码流
  • 1: 子码流。
未指定时,值视为:0
fmtint请求的客户端媒体流格式:
  • 0: FLV
  • 1: HLS
未指定时值视为:0
schemestring要求的媒体播放端口。为下列值之一:
  • http: 此时媒体服务返回HTTP协议的播放地址,仅当fmt0(FLV)时可指定此值
  • https: 此时媒体服务返回HTTPS协议的播放地址
  • ws: 此时媒体服务返回WS协议的播放地址,仅当fmt0(FLV)时可指定此值
  • wss: 此时媒体服务返回WSS协议的播放地址, 仅当fmt0(FLV)时可指定此值
不指定时,fmt0时,默认为wssfmt1时,默认为https
connIdxint连接序号。用于后台分配不同的服务器给客户端。未指定时值视为:0
talkSendProtoVerint对讲时服务端向客户端的语音向终端发送码流时所采用的协议版本:
  • (不指定):按服务端配置的协议版本
  • 0: 使用短终端号(2013)码流格式
  • 1: 使用长终端号(2019)码流格式
仅当typlivedataTyp2时有效。
exclusiveboolean是否以独占方式打开媒体流。为true时,成功打开媒体后,其它流请求将均返回-25。未指定时,值视为false
recordboolean是否在播放的同时在服务端进行存储。目前仅当fmt0时才能指定此属性为true。未指定时,值视为false
detectMediaTypboolean部分终端存在无音频的情况,即使下发请求音视频请求,终端实际推送的也只有视频而无音频,此时可使用媒体服务的码流媒体类型检测功能,由媒体服务根据码流确定实际媒体类型(结果由OpenStrmResultmediaTyp属性返回)。本属性用于指示是否强制服务端对终端实际码流进行媒体类型(mediaTyp)检测。如指定了true值,则服务端将进行媒体类型检测,并将检测到的媒体类型返回到OpenStrmResult结构的mediaTyp属性。如指定了false值,则直接根据dataTyp的值进行判断,而不进行媒体类型检测。不指定时,值视为false
keepIntvint约定的保持调用( POST /strm/keep )间隔,单位:秒。客户端如果需要指定比服务配置的更长的保持调用间隔时,可指定本属性。指定时,此属性值不能小于15秒,不能大于600秒。不指定时,使用服务配置的默认值。
audioCfgAudioConfig输出到客户端的音频的配置。不指定时,由服务端决定输出的音频配置。
rtspSrcRtspSource采用RTSP源进行播放。打开JT/T 1078协议终端时,不需要指定本属性。
httpboolean是否要求HTTP/WS媒体播放端口,而不是HTTPS/WSS媒体播放端口。为true,媒体服务返回 HTTPS 或 WSS协议
timedTokenstring政府平台播放的时效口令。当请求为政府平台播放请求时,必须提供此属性;当政府平台打开媒体时,服务会比对此时效口令以验证身份。为了在时效口令更新的时段,政府平台能够平滑地用或新或旧的口令访问媒体,本属性支持传送最多两个时效口令(新口令和旧口令)。当传递两个时效口令时,以,分隔。如果政府平台请求播放时并不是处于时效口令更新的时段,则只应传递一个口令。

StrmUserInfo

属性数据类型必要说明
userIdstring用户ID,用于日志和调试用途
userGradeint用户级别(暂未使用)
tokenstringY用户的会话令牌。此令牌字符串由企业应用产生。当使用websocket接收码流时,返回的websocket播放地址会包含此令牌,以便websocket端验证令牌

AudioConfig

属性数据类型必要说明
sampleRateintY采样率。为下列值之一:
  • 8000
  • 11025
  • 22050
  • 44100
  • 48000
  • 64000
  • 96000
指定高于音频源的采样率不能提高音质
channelsintY声道数。为下列值之一:
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 8
指定高于音频源的声道数不能提高音质

RtspSource

属性数据类型必要说明
urlstringY所要抓取的RTSP流源地址。如:rtsp://n11.gratour.info/test/strm1,此地址必须要能被媒体服务所能访问到。当媒体源要求鉴权时,可以在url中带用户名和密码(不推荐),如: rtsp://user:passwd@n11.gratour.info/test/strm1 ,此时,本结构的 userpwd属性被忽略
userstring当媒体源要求鉴权时,本属性指定用户名。当url属性中包含用户名时,本属性被忽略
pwdstring当媒体源要求鉴权时,本属性指定用户密码。当url属性中包含用户密码时,本属性被忽略

应答

{
"data": [
{
"reqId": "AbctuB9sSJe8bbBzv-yr9g",
"ctrl": true,
"ready": false,
"playUrl": "https://t2.gratour.info:20022/s/13320200317_1_1?a\u003dS7rAwnY0\u0026b\u003dS91-lPEJg_yulbO6okcRQrguBqEFlUH-YmSXQewOJYSpWg8_7Jx2xZdBYiNZhWZETYFmZ3Kd8j_qguPRf10Yfvl_WB8H5tFUHkh6nILIiZU6wKN3buuvaXAKNA93QmIsk77baWYzkuY70l9TQswdvRRNOBXz9fszrWeQ5aeca6B9PXXUw_WVZiQBiUfrgF7CS2N\u0026reqId\u003dM2MyM2FmMTA3NDQyNGE1YzhlY2VkMzc3ZWU3ZDEwYTQ",
"mediaTyp": "av"
}
],
"errCode": 0,
"message": "OK."
}

应答实体属性

属性数据类型必要说明
errCodeintY错误码。
  • 如果请求流时恰好遇到流正在关闭,返回错误码-207:操作失败,请重试
  • 如果设备不在线,返回错误码:-27
  • 如果长时间未能打开流,返回错误码:-5
  • 服务端发生异常时,返回错误码:-2
  • 其它错误,如设备连上随即断开连接,返回错误码:-3
messagestringY错误信息
dataarray[OpenStrmResult]返回的结果对象数组。元素为OpenStrmResult类型,见下
countint返回的记录数

OpenStrmResult

属性数据类型必要说明
reqIdstringY由平台分配或调用者传入的请求ID,用于监测流通知,或播放控制
ctrlbooleanY当前请求是否获得音视频的控制权(是否此通道上唯一的流请求)。只当ctrltrue时,企业应用才可向终端下发推流指令。
playUrlstringY播放地址
readybooleanY流是否已经可以播放。为false时,要等到收到act为ready的流媒体通知才能播放。
taUrlstringWebSocket地址,用于对讲时客户端提交音频数据。此地址使用二进制websocket协议。仅当请求的流类型为实时流,且数据类型(dataTyp)为2: 对讲时有效。
wsUrlstringWebSocket地址,用于对讲时客户端提交音频数据。此地址使用stomp协议。仅当请求的流类型为实时流,且数据类型(dataTyp)为2: 对讲时有效。
mediaTypstringY流的媒体类型:
  • av: 音频和视频
  • a: 仅音频
  • v: 仅视频
keepIntvintY要求的保持调用(POST /strm/keep)的时间间隔,单位:秒
hoststringY终端码流推流地址的主机名。企业应用在向终端下发推流指令时应传此主机名。
portintY采用JT/T 808-2013协议的终端的码流推流地址的端口号。如果终端采用JT/T 808-2013协议,企业应用在向终端下发推流指令时应传此端口号。
tcpbooleanY指出port属性所指代的端口号是否TCP端口。false时表示UDP端口。
port2019intY采用JT/T 808-2019协议的终端的码流推流地址的端口号。如果终端采用JT/T 808-2019协议,企业应用在向终端下发推流指令时应传此端口号。
tcp2019booleanY指出port2019属性所指代的端口号是否TCP端口。false时表示UDP端口。
recordingboolean服务端是否在播放的同时将媒体转储成录像文件。 为false时,无此属性。
audioCfgAudioConfig输出到客户端的音频的配置。未指定时,无此属性。
detectMediaTypboolean是否已使用媒体服务的码流媒体类型检测功能。为false时,无此属性。

部分厂商使用对讲功能注意事项

  1. channel(通道号)参数
    • 博实结使用的通道号为36
  2. talkSendProtoVer参数
    • 使用博实结终端进行对讲时,需要设置talkSendProtoVer参数,指定值为1