浙江大华 ICC平台第三方拉流文档
说明
拉流方式 | 支持H265 | 延迟(秒) | 优点 | 缺点 |
hls/flv/rtmp | 否 | 3-10 | 无插件,前端引入hls.js 即可播放 | 延迟大,不支持H265,不支持海康私有协议设备 |
flv | 否 | 2-5 | 低延迟,无插件,前端引入flv.js即可播放 | 不支持H265,不支持海康私有协议设备 |
rtmp | 否 | 2-5 | 低延迟 | 不支持H265,不支持海康私有协议设备,需通过ffmpeg转换推流 |
rtsp插件 | 是 | 0-2 | 延迟小,兼容好,稳定 | 需要安装插件,浏览器web页面使用,控件不好固定,页面体验差 |
路数支持情况
HLS/FLV/RTMP实时流
拼接方法
HLS
拼接规则
http(s)://平台IP:端口/live/cameraid/设备编号%24通道号/substream/码流类型.m3u8
拼接说明
http端口:7086
https端口:7096(demo示例有证书错误,需技术支持配置忽略证书)
设备编号:平台上设备编号,例如1000004
通道号:设备下通道,从0(通道一)开始。
码流类型:1代表主码流,2代表辅码流
示例
本级设备拉流
以通道1000004$1$0$3为例
http
http://20.2.42.185:7086/live/cameraid/1000004%243/substream/1.m3u8
https
https://20.2.42.185:7096/live/cameraid/1000004%243/substream/1.m3u8
级联设备拉流
以通道1000004@001$1$0$3为例
http
http://20.2.42.185:7086/live/cameraid/1000004%40001%243/substream/1.m3u8
https
https://20.2.42.185:7096/live/cameraid/1000004%40001%243/substream/1.m3u8
%40 是域标识符号@的转义符, %24 是$的转义符
FLV
拼接规则
http(s)://平台IP:端口/live/cameraid/设备编号%24通道号/substream/码流类型.flv
拼接说明
http端口:7886
https端口:7896(https访问需导入证书、配置ngnix代理,具体参考常见问题)
设备编号:平台上设备编号,例如1000004
通道号:设备下通道,从0(通道一)开始。
码流类型:1代表主码流,2代表辅码流
示例
本级设备拉流
以通道1000004$1$0$3为例
http
http://20.2.42.185:7886/live/cameraid/1000004%243/substream/1.flv
https
https://20.2.42.185:7896/live/cameraid/1000004%243/substream/1.flv
级联设备拉流
以通道1000004@001$1$0$3为例
http
http://20.2.42.185:7886/live/cameraid/1000004%40001%243/substream/1.flv
https
http://20.2.42.185:7896/live/cameraid/1000004%40001%243/substream/1.flv
%40 是域标识符号@的转义符, %24 是$的转义符
RTMP
拼接规则
rtmp://平台IP:端口/live/cameraid/设备编号%24通道号;substream=码流类型
拼接说明
端口:1975
设备编号:平台上设备编号,例如1000004
通道号:设备下通道,从0(通道一)开始。
码流类型:1代表主码流,2代表辅码流
示例
本级设备拉流
以通道1000004$1$0$3为例
rtmp://10.35.239.168:1975/live/cameraid=1001337%240;substream=1
级联设备拉流
以通道1000004@001$1$0$3为例
rtmp://10.35.239.168:1975/live/cameraid=1001337%40001%240;substream=1
%40 是域标识符号@的转义符, %24 是$的转义符
RTSP
有内外网映射问题,默认内网访问,外网访问需配置MTS配置
拼接规则
rtsp://{服务器IP}:9090/dss/monitor/param?cameraid={设备编号}%24{通道号}&substream={码流类型}
拼接说明
服务器IP - ICC主服务的IP地址
设备编号 - 设备编号,可通过设备列表接口获取,对应结果字段 deviceCode
通道号 - 默认为0,部分设备有多个通道,按需修改即可
码流类型 - 默认为1,码流类型:1=主码流, 2=辅码流
DHplayer插件播放 trackID=701固定值,不要删除!其他播放器播放必须去掉
示例
rtsp://10.35.183.10:9090/dss/monitor/param?cameraid=1000000%240&substream=1
接口方式
HLS/FLV/RTMP获取拉流地址
接口地址
/evo-apigw/admin/API/video/stream/realtime
请求方式
POST
数据提交格式
application/json
请求参数
参数名 | 必选 | 类型 | 说明 |
data | true | string | Json串 |
- channelId | true | string | 视频通道编码 |
- streamType | true | string | 码流类型:1=主码流, 2=辅码流,3=辅码流2 |
- type | true | string | hls,hlss,flv,flvs,rtmp |
请求示例
{
"data": {
"channelId": "1000067$1$0$0",
"streamType": "1",
"type": "hls"
}
}
返回参数
名称 | 类型 | 说明 |
code | int | 错误代码 |
desc | string | 结果描述 |
data | string | Json串 |
- url | string | 拉流url |
返回示例
{
"code": 1000,
"desc": "Success",
"data": {
"url": "http://172.7.2.110:7086/live/cameraid/1000000%240/substream/1.m3u8"
}
}
RTSP获取拉流地址
流地址仅能播放一次,接口调用后30秒内播放
接口地址
/evo-apigw/admin/API/MTS/Video/StartVideo
请求方式
POST
数据提交格式
application/json
请求参数
参数名 | 必选 | 类型 | 说明 |
data | true | string | Json串 |
- channelId | true | string | 视频通道编码 |
- dataType | true | string | 视频类型:1=视频 |
- streamType | true | string | 码流类型:1=主码流,2=辅码流,3=辅码流2 |
请求示例
{
"data": {
"channelId": "1000018$1$0$0",
"dataType": "1",
"streamType": "1"
}
}
返回参数
名称 | 类型 | 说明 |
code | int | 错误代码 |
desc | string | 结果描述 |
data | string | Json串 |
- minRate | string | 最低码流,要求客户具备的最低码流 |
- protocol | string | 协议:1=CNM3, 2=RTSP |
- ip | string | IP地址,根据类型可能是转发服务器IP,也可能是设备IP |
- port | string | 端口 |
- stunEnable | string | 是否支持STUN协议:1=支持, 0=不支持 |
- stunPort | string | STUN协议端口 |
- url | string | RTSP地址,和VDTS IP/Port是互斥关系 |
- connectType | string | 类型:1=转发模式,2=直连模式 |
- session | string | 转发会话ID |
- token | string | 令牌,有效期30秒,播放成功后可一直播放 |
- trackId | string | 轨道ID |
返回示例
{
"code": 1000,
"desc": "Success",
"data": {
"minRate": null,
"protocol": null,
"ip": null,
"port": null,
"stunEnable": null,
"stunPort": null,
"url": "rtsp://10.35.239.81:9100/dss/monitor/param/cameraid=1000018%240%26substream=1",
"connectType": null,
"session": "170",
"token": "170",
"trackId": null
}
}
录像回放
录像回放步骤:先查询录像信息-》获取流地址
查询录像信息
普通录像需配置录像计划,报警录像需配置报警预案与联动录像
普通录像查询
参考地址:
报警录像查询
参考地址:
获取流地址
拼接方式
HLS
中心录像拼接规则
http(s)://[服务IP]:[服务端口]/vod/center/cameraid/[摄像头ID]/substream/[码流类型]/recordtype/[中心录像类型]/totallength/[实际总录像时长]/begintime/[开始时间]/endtime/[结束时间].m3u8
设备录像拼接规则
http(s)://[服务IP]:[服务端口]/vod/device/cameraid/[摄像头ID]/substream/[码流类型]/recordtype/[设备录像类型]/totallength/[实际总录像时长]/begintime/[开始时间]/endtime/[结束时间].m3u8
拼接说明
[服务IP]:MES所在服务器的ip地址,若MES是分布式部署的话,IP为MESGW服务所在服务器的IP
[服务端口]:MES服务监听的http端口,默认7086,https端口是7096,若MES是分布式部署的话,端口为MESGW服务监听的Port
[摄像头ID]:请参看大华标准URL文档说明,一般型如:1000000%40001%240 1000000代表设备编号,001代表级联号,
两者间以“%40”即“@”分隔 %24代表符号“$”,后面的0代表通道1(从0开始)
[码流类型]:1表示主码流,2表示辅码流
[实际总录像时长] :向SS查询到的实际总录像长度,单位秒。
[中心录像类型]:1表示普通录像;2表示报警录像;81表示补录录像;82表示报警预录录像
[设备录像类型]:2报警录像,3 移动侦测类型, 6普通录像类型
[开始时间] 和 [结束时间] :录像块的开始和结束时间,int类型表示的,单位秒。
示例
以视频通道1000221$1$0$1为例
中心录像拼接示例
设备录像拼接示例
RTMP
中心录像拼接规则
rtmp://[服务IP]:1975/vod/center/cameraid=[摄像头ID];substream=[码流类型];recordtype=[中心录像类型];begintime=[开始时间];endtime=[结束时间]
设备录像拼接规则
rtmp://[服务IP]:1975/vod/device/cameraid=[摄像头ID];substream=[码流类型];recordtype=[设备录像类型];begintime=[开始时间];endtime=[结束时间]
拼接说明
[服务IP]:MES所在服务器的ip地址,若MES是分布式部署的话,IP为MESGW服务所在服务器的IP
[服务端口]:MES服务监听的http端口,默认7086,https端口是7096,若MES是分布式部署的话,端口为MESGW服务监听的Port
[摄像头ID]:请参看大华标准URL文档说明,一般型如:1000000%40001%240 1000000代表设备编号,001代表级联号,
两者间以“%40”即“@”分隔 %24代表符号“$”,后面的0代表通道1(从0开始)
[码流类型]:1表示主码流,2表示辅码流
[中心录像类型]:1表示普通录像;2表示报警录像;81表示补录录像;82表示报警预录录像
[设备录像类型]:2报警录像,3 移动侦测类型, 6普通录像类型
[开始时间] 和 [结束时间] :录像块的开始和结束时间,int类型表示的,单位秒。
示例
以视频通道1000018$1$0$0为例
中心录像拼接示例
rtmp://10.35.239.81:1975/vod/center/cameraid=1000018%240;substream=1;recordtype=1;begintime=1642475411;endtime=1642648211
设备录像拼接示例
rtmp://10.35.239.81:1975/vod/device/cameraid=1000018%240;substream=1;recordtype=1;begintime=1642475411;endtime=1642648211
RTSP
拼接方式外网 访问修改SS服务配置
拼接规则
rtsp://{服务器IP}:9090/dss/playback/param?cameraid={设备编号}%24{通道号}&substream={码流类型}&type={录像回放类型}&recordType={录像类型}&begintime={开始时间}&endtime={结束时间}
拼接说明
服务器IP - ICC主服务的IP地址
设备编号 - 设备编号,可通过设备列表接口获取,对应结果字段 deviceCode
通道号 - 默认为0,部分设备有多个通道,按需修改即可
码流类型 - 默认为1,码流类型:1=主码流, 2=辅码流
录像回放类型 - 2:回放设备录像 3:回放平台录像
录像类型- 1 表示普通录像;2表示报警录像;81表示补录录像;82表示报警预录录像
开始时间 - 录像块的开始时间,int类型表示的,单位秒。
结束时间 - 录像块的结束时间,int类型表示的,单位秒。
DHplayer插件播放 trackID=701固定值,不要删除!其他播放器播放必须去掉
示例
以视频通道1000001$1$0$2为例
rtsp://20.2.34.231:9090/dss/playback/param?cameraid=1000001%242&substream=1&type=3&recordType=1&begintime=1590112800&endtime=1590113400
接口方式
HLS/RTMP获取流地址
接口地址
/evo-apigw/admin/API/video/stream/record
请求方式
POST
数据提交格式
application/json
请求参数
参数名 | 必选 | 类型 | 说明 |
data | true | string | Json串 |
- channelId | true | string | 视频通道编码 |
- streamType | true | string | 码流类型:1=主码流, 2=辅码流,3=辅码流2 |
- type | true | string | 支持hls/hlss/rtmp格式, flv录像类型不支持 |
- recordType | true | string | 录像类型:1 表示普通录像 |
- beginTime | true | string | 开始时间,格式:"2020-11-12 11:10:11" |
- endTime | true | string | 结束时间,格式:"2020-11-12 23:10:11" |
- recordSource | true | string | 录像来源:2:设备 device,3:中心 center |
请求示例
{
"data": {
"channelId": "1000018$1$0$0",
"streamType": "1",
"type": "hls",
"recordType": "1",
"beginTime": "2022-1-18 11:10:11",
"endTime": "2022-1-20 11:10:11",
"recordSource": "3"
}
}
返回参数
名称 | 类型 | 说明 |
code | int | 错误代码 |
desc | string | 结果描述 |
data | string | Json串 |
- url | string | 拉流url |
返回示例
HLS示例
{
"code": 1000,
"desc": "Success",
"data": {
"url": "http://10.35.239.81:7086/vod/center/cameraid/1000018%240/substream/1/recordtype/1/totallength/91439/begintime/1642475411/endtime/1642648211.m3u8"
}
}
RTMP示例
{
"code": 1000,
"desc": "Success",
"data": {
"url": "rtmp://10.35.239.81:1975/vod/center/cameraid=1000018%240;substream=1;recordtype=1;begintime=1642475411;endtime=1642648211"
}
}
RTSP获取流地址
以文件形式回放与以时间形式回放两个接口都支持获取rtsp地址;
中心录像建议调“以文件形式回放”接口
设备录像推荐使用“以时间形式回放”接口
以文件形式回放录像
以文件形式回放
参考地址:
以时间形式回放录像
参考地址:
Demo下载地址
HLS/FLV demo地址
RTSP demo地址
插件地址
demo参考播放demo文件夹;
插件常见问题可参考DHPlayer-FAQ.md
插件说明文档
常见问题
参考地址: