视频应用
视频端口列表
协议类型拉流方式端口说明
httphls7086实时流与回放流共用一个端口
httpshls7096实时流与回放流共用一个端口
httpflv7886实时流
httpsflv7896实时流
rtmprtmp1975实时流回放流共用一个端口
rtsprtsp9100,9320实时流/语音对讲端口:9100,录像回放端口:9320,DHPlayer对接需开通
wswebsocket9100,9320实时流端口:9100,录像回放端口:9320,WSPlayer对接需开通
wsswebsocket9102,9322实时流/语音对讲端口:9102,录像回放端口:9322,WSPlayer对接需开通
设备编码模式查看

方式1.登录ICC客户端,实时预览功能,如下图



方式2:登录设备web端,以大华设备为例,浏览器输入设备ip,并输入设备用户名密码,如下图所示



方式3:vlc播放查看流媒体信息,如下图所示



友商设备无法播放尝试配置

第一步:登录ICC服务器后台,编辑PCPS.xml,命令:vim /opt/dss/PCPS/PCPS.xml
第二步:修改标签StreamConvertor由0改为1,vim保存(命令:退出编辑(Esc),再执行(:wq)保存)
第三步:查看进程,命令:pidof PCPS,如下图



第四步:重启PCPS。杀掉第三步中的进程id,PCPS服务会自动重启,如第三步进程id,命令:kill -9 9730
以上步骤仍无法解决,登录设备将视频类型由复合流改为视频流,保存重启

HLS无法播放排查步骤

1、检查通道是否离线,必须在线才能播放
    例如HLS流地址:http://172.7.2.110:7086/live/cameraid/1000158%2499/substream/1.m3u8?token=1:2cfa8e9b-e6c7-44d1-a676-6ae1cb9971e0
    平台web端 设备管理-》通道tab页 搜索1000158$1$0$99是否在线
2、7086(http)、7096(https)端口必须通
3、5.0.12及以上版本必须拼接token,token有效期2h等;5.0.12之前版本则跳过此步骤;
    5.0.12版本若取消token拼接,参考HLS/FLV/RTMP取消拼接token配置不拼接token播放hls容易造成安全泄露,请知悉
4、HLS默认不支持友商私有协议接入,推荐通过国标、onvif接入;如需支持请参考友商设备无法播放尝试配置配置
5、设备编码模式推荐H264
    多数在对接场景中web端播放是最多的,浏览器不支持H265
    vlc播放器可播放H265
6、HLS流地址播放是否是404(找不到资源),404解决参考HLS播放资源找不到
    验证404简单方法1:浏览器地址栏输入流地址,报404或网页找不到之类错误,浏览器提示下载文件说明流地址正确
    验证404简单方法2:播放客户端抓包7086,抓包分析
7、https访问需导入安全证书,配置ngnix,参考拉流https配置

HLS播放资源找不到

实时流排查步骤如下
1、MES服务器配置检查
    打开MESConfig.xml;vi /opt/dss/EIMedia/MESConfig.xml
    修改配置项ProcessRedirect;将ProcessRedirect改为true,保存
    重启MES服务
        查看MES进程:pidof mes
        杀掉MES进程:kill -9 MES 进程


2、MGW服务是否正常启动,9090端口是存在
3、服务器抓包7086、9090、9000包,重点检查9000端口
    根据9000端口与通道编码过滤,查看返回信息是否包含rtsp流地址信息,不包含说明evo-admin服务有问题(一般是级联设备支持的不好),需提供抓包与admin日志给研发分析
录像回放流排查步骤如下
1、流地址中的begintime与endtime是否存在录像,在客户端上播放这个时段录像是否正常
    比对录像信息是否正确:根据是否是报警录像调查询普通录像信息列表|查询报警录像信息列表
    再根据前一步的录像信息比对HLS流地址中的begintime、endtime、substream、recordType是否一致
        HLS流地址中的begintime与endtime必须在录像信息中的starttime与endtime的闭区间内(录像不支持跨文件播放,需注意)
        substream与流地址是否一致
        recordtype:中心录像:1表示普通录像;2表示报警录像;81表示补录录像;82表示报警预录录像;设备录像固定:0;中心录像可尝试切换1、2、81、82看看是否可以播放
3、服务器抓包7086、9090、9000包,重点检查9000端口
    根据9000端口与通道编码过滤,查看返回信息是否包含rtsp流地址信息,不包含说明evo-admin服务有问题(一般是级联设备支持的不好),需提供抓包与admin日志给研发分析

FLV无法播放排查步骤

1、检查通道是否离线,必须在线才能播放
    例如FLV流地址:http://172.7.2.110:7886/live/cameraid/1000158%2499/substream/1.flv?token=1:2cfa8e9b-e6c7-44d1-a676-6ae1cb9971e0
    平台web端 设备管理-》通道tab页 搜索1000158$1$0$99是否在线
2、7886(http)、7896(https)端口必须通
3、5.0.12及以上版本必须拼接token,token有效期2h等;5.0.12之前版本则跳过此步骤;
    5.0.12版本若取消token拼接,参考HLS/FLV/RTMP取消拼接token配置不拼接token播放flv容易造成安全泄露,请知悉
4、FLV默认不支持友商私有协议接入,推荐通过国标、onvif接入;如需支持请参考友商设备无法播放尝试配置配置
5、设备编码模式必须H264
6、FLV流地址播放是否是404(找不到资源),404解决参考FLV播放资源找不到
    验证404简单方法1:浏览器地址栏输入流地址,报404或网页找不到之类错误
    验证404简单方法2:播放客户端抓包7086,抓包分析
7、https访问需导入安全证书,配置ngnix,参考拉流https配置

FLV播放资源找不到

实时流排查步骤如下
1、MGW服务是否正常启动,9090端口是存在
2、服务器抓包7886、9090、9000包,重点检查9000端口
    根据9000端口与通道编码过滤,查看返回信息是否包含rtsp流地址信息,不包含说明evo-admin服务有问题(一般是级联设备支持的不好),需提供抓包与admin日志给研发分析

RTMP无法播放排查步骤

1、检查通道是否离线,必须在线才能播放
    例如RTMP流地址:rtmp://10.35.239.168:1975/live/cameraid=1001337%2426;substream=1;token=1:2cfa8e9b-e6c7-44d1-a676-6ae1cb9971e0
    平台web端 设备管理-》通道tab页 搜索1001337$1$0$26是否在线
2、1975端口必须通
3、5.0.12及以上版本必须拼接token,token有效期2h等;5.0.12之前版本则跳过此步骤;
    5.0.12版本若取消token拼接,参考HLS/FLV/RTMP取消拼接token配置不拼接token播放flv容易造成安全泄露,请知悉
4、RTMP默认不支持友商私有协议接入,推荐通过国标、onvif接入;如需支持请参考友商设备无法播放尝试配置配置 5、设备编码模式必须H264
6、服务器抓包1975、9090、9000包,重点检查9000端口
    根据9000端口与通道编码过滤,查看返回信息是否包含rtsp流地址信息,不包含说明evo-admin服务有问题(一般是级联设备支持的不好),需提供抓包与admin日志给研发分析
7、录像回放流排查步骤如下
    7.1、流地址中的begintime与endtime是否存在录像,在客户端上播放这个时段录像是否正常
    7.2、比对录像信息是否正确:根据是否是报警录像调查询普通录像信息列表|查询报警录像信息列表
    7.3、再根据前一步的录像信息比对HLS流地址中的begintime、endtime、substream、recordType必须一致
        HLS流地址中的begintime与endtime必须在录像信息中的starttime与endtime的闭区间内(录像不支持跨文件播放,需注意)
        substream与流地址是否一致
        recordtype:中心录像:1表示普通录像;2表示报警录像;81表示补录录像;82表示报警预录录像;设备录像固定:0;中心录像可尝试切换1、2、81、82看看是否可以播放

HLS/FLV拉流https配置

第一步:第三方提供安全证书,证书格式需ngnix格式;证书参考示例说明
第二步:ssh登录ICC后台,切root用户操作
第三步:同步证书到流媒体服务命令

https地址播放示例说明

WSPlayer拉流wss配置

第一步:第三方提供安全证书,证书格式需ngnix格式;证书参考示例说明
第二步:ssh登录ICC后台,切root用户操作
第三步:同步证书到流媒体服务命令

HLS/FLV/RTMP取消拼接token配置

ICC5.0.12及以上版本才支持修改
HLS/RTMP配置修改
    编辑命令:vi /opt/dss/EIMedia/MESConfig.xml,将SRDEnable标签改为false
    重启MES服务
        查看MES进程:pidof mes
        杀掉MES进程:kill -9 MES 进程


FLV配置修改
    编辑命令:vi /opt/dss/EIFLV/FLVConfig.xml,将SRDEnable标签改为false
    重启FLV服务
        查看FLV进程:pidof flv
        杀掉FLV进程:kill -9 FLV 进程


HLS/FLV播放会黑屏排查步骤

设备编码模式为H265,改成H264、H264B、H264H
切换码流类型
重启设备、MTS、MES服务

IOS无法播放HLS流

打开MESConfig.xml;vi /opt/dss/EIMedia/MESConfig.xml
修改配置项RTPStd;将RTPStd改为false;
修改配置项LHLSEnable;将LHLSEnable改为true;
重启MES服务
    查看MES进程:pidof mes
    杀掉MES进程:kill -9 MES 进程


RTSP无法播放

1、保证客户端正常播放
2、接口方式获取流地址
    2.1 端口9100(实时流)、9320(录像回放)对应端口必须通,用telnet ip 端口命令检测,例如rtsp 实时流拉流:telnet 101.155.26.33 9100
    2.2 rtsp流地址需拼接上"?token=xxx",token为获取流地址接口返回token,非鉴权接口的access_token
    2.3 插件播放运行9090端口流地址时,插件需手动开启支持重定向
    2.4 插件播放运行vue2_Version demo 需要修改demo.vue中的pathList中的redirect配置,重定向配置作为入参送false,重新编译运行
    2.5 VLC不能播放,提示输入用户名密码,流地址后面需加上trackID=0
    2.6 2.5仍不能播放,请设置下VLC播放器:工具-》偏好设置-》输入/编解码器下的live55流传输下RTP over RTSP(TCP)
3、拼接方式获取流地址
    3.1 9090(MGW)、9100(实时流)、9320(录像回放)端口通,用telnet ip 端口命令检测,例如rtsp 实时流拉流:telnet 101.155.26.33 9100
    3.2 VLC播放是否正常
    3.3 插件播放需拼接"?trackID=701",
    3.4 内外网拉流需改MTS配置,调整内外网映射加载优先级,默认支持内网,不支持双网卡
        实时流配置
        a.打开MTS.xml:vi /opt/dss/MTS/MTS.xml
        b.修改带有
RtspUrlAddr
的标签,将外网设置默认加载即外网ip:端口,内网ip:端口
        c.重启MTS服务
        录像回放流配置
        a.打开SS.xml:vi /opt/dss/SS/SS.xml
        b.修改带有RtspUrlAddr的标签,将外网设置默认加载即外网ip:端口,内网ip:端口
        c.重启SS服务

路数支持说明

录像回放接口中的通道编码、ssid diskid 与streamid如何获取

参考API文档-视频应用-录像回放-获取普通/报警录像接口返回报文,根据字段对应即可,无需关心含义

录像回放对接流程

先获取录像信息->根据录像信息调用获取流地址接口(返回录像列表)->客户端播放
录像是不能跨文件播放的,因此需要先获取录像信息
根据录像信息调获取录像回放流地址
用客户端播放流地址,多个流地址处理:监听录像播放结束时间,继续播放下一个

云台控制支持设备类型

球机设备
枪机设备必须勾选云台控制能力级

接口报1001|Failed

客户端鉴权模式需要在headers上添加参数User-Id为1
通道编码是否存在
    1、通道是否真实存在
    2、此鉴权用户是否有此视频通道权限,根据此用户登录ICC平台查看设备管理-》通道tab页
body参数json格式化后试一下:可能入参可能存在看不到的转义符

VLC播放器播放RTSP流提示输入用户名密码

原因:token过期报401错误,排查步骤如下:
1、查看token是否过期:token有效期30秒,token只能使用一次
    token只能使用一次如何理解
    RTSP拼接token播放成功与否,服务会将token清空,第二次将无法使用
2、token与trackID是否拼接:token是必须的,trackID主要看ICC版本
    正确示例:rtsp://10.35.239.81:9100/dss/monitor/param/cameraid=1000018%240%26substream=1?token=170;
    低版本可能需要拼接trackID=0才能播放,可尝试拼接trackID=0,完整地址:rtsp://10.35.239.81:9100/dss/monitor/param/cameraid=1000018%240%26substream=1?token=170&trackID=0;
2、设备接入协议为友商设备私有协议接入,默认不支持,若需支持,请参考友商设备无法播放尝试配置配置
3、若以上配置仍无法解决,请设置下VLC播放器:工具-》偏好设置-》输入/编解码器下的live555流传输下RTP over RTSP项,如下图所示




如何实现录像下载功能

客户在对接录像下载中一般指的是指定某个时间段下载录像(rtsp录像下载),而不是录制视频功能下载(边播边录)
    rtsp录像下载一般建议客户对接dpsdk,目前只有C++语言,目前没有相关API接口,支持需定制
    rtsp录像下载还有另一种方式:前端浏览器页面通过集成大华播放插件实现rtsp录像下载,场景较少,一般很少对接

为什么无插件WSPlayer播放平台可以demo却不行

首先需明确报错原因:wss首次访问不安全,报错:NET::ERR_CERT_COMMON_NAME_INVALID,被播放器拦截导致的
平台web端播放无插件解决方法是ngnix服务做了代理,代理了9102、9322端口,统一用443端口访问
    1、在播放视频之前,首先访问平台web端口,即ngnix443端口,即使浏览器提示不安全,点击继续访问,则说明已经让浏览器信任此ip与端口协议,如下图所示:




    2、信任ip和端口后,wss建立websocket连接时则会安全跳过
三方对接推荐购买证书,直连ICC服务器拉流;并非平台web端播放方式(ngnix代理),不推荐代理方式原因如下:
    原因1、三方提供代理服务器,会占用代理服务器宽带,会影响代理服务器的其他业务
    原因2、如果ICC平台存在分布式,相当于代理服务器要代理多个分布式节点,无法支持ICC转发能力700M的横向扩展,即压力均在代理服务器上,转发能力700M无法扩展