标签:stream channelID flv ws _% 播放
假日出游,为什么显示有票你却抢不到?揭秘12306如何保证车票不超卖的关键技术!>>>去年年末的时候,TSINGSEE青犀视频开发了EasyWasmPlayer播放器,为了让大家尽快享受到EasyWasmPlayer播放器的优质播放性能,我们在TSINGSEE青犀视频开发的视频平台内都添加了ws_flv的播放项。
EasyCVR视频协议融合平台开启ws_flv出现一个问题,就是非GB28181协议接上来的设备请求播放时会出现无法播放的情况。
通过浏览器调用接口返回结果分析得知,非GB28181的设备以ws_flv播放的时候都会返回rtmp的地址,所以前端播放器无法播放。
GB28181协议设备以ws_flv流播放,返回的播放地址如下:
Ehome设备接入请求播放返回的播放地址如下:
所以此处我们需要对非GB28181接入设备添加ws_flv的播放协议区分。
添加如下代码:
if rtmpHost == "" {
rtmpPort := dss.GetRTMPPort()
rtspPort := dss.GetRTSPPort()
if hostname == "" {
hostname = "{host}"
}
ret = fmt.Sprintf("rtmp://%s:%d/hls/stream_%d_%d", hostname, rtmpPort, channelID, streamMode)
retMode = "SwitchMode"
if strings.EqualFold(proto, "FLV") {
ret = fmt.Sprintf("/flv/hls/stream_%d_%d.flv", channelID, streamMode)
}
if strings.EqualFold(proto, "WS_FLV") {
ret = fmt.Sprintf("/ws_flv/hls/stream_%d_%d.flv", channelID, streamMode)
}
if strings.EqualFold(proto, "HLS") || utils.Conf().Section("base_config").Key("flash_stream_type").MustBool(false) {
ret = fmt.Sprintf("/hls/stream_%d_%d/stream_%d_%d_live.m3u8", channelID, streamMode, channelID, streamMode)
retMode = "HlsModel"
}
if strings.EqualFold(proto, "RTSP") {
ret = fmt.Sprintf("rtsp://%s:%d/stream_%d_%d", hostname, rtspPort, channelID, streamMode)
retMode = "HlsModel"
}
再次测试非GB28181接入的设备,当ws_flv播放的时候返回的播放地址正常。
关于wasm播放器的开发,大家可以阅读我们《结合wasm与mse技术实现的支持H.265网页播放器为安防可视化系统带来了新的突破口》一文。如果还想了解更多关与H265播放器或者EasyCVR安防视频平台的内容,欢迎联系我们。
标签:stream,channelID,flv,ws,_%,播放 来源: https://blog.51cto.com/u_15179958/2796503
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。