背景说明
由于互联网的飞速发展,传统安防摄像头的视频监控直播与互联网直播相结合是大势所趋。传统安防的直播大多在一个局域网内,在播放的客户端上也是有所限制,一般都需要OCX Web插件进行直播。对于安防监控的视频直播需求,根据不同的业务需求,对视频直播需求也不尽相同。针对这样的行业大环境背景,我们推出了EasyNVR、EasyDSS等解决方案。
服务器报错无法播放问题
在EasyDSS流媒体服务器的用户反馈中,我们时常会遇到同一个问题的反馈,即在chrome谷歌浏览器中经常会出现RTMP/HLS流无法播放的问题,如下图:
分析问题
分析问题可知,因为chrome禁止了flash的加载,这也从另一个角度反应了H5势在必行,各家浏览器对flash的支持也越来越严苛了:
解决问题
在这一问题的处理中我们只要在加载中将flash插件支持加上就可以了。
实际上,如今的各大视频网站基本上都采用自动检测的方法,前端都会自动加上flash检测的功能,如果flash没安装,就会跳转到flash下载的页面上,于是后续的EasyDSS前端也采用了这种方式,很好滴解决了“no compatible source was found for this media”问题的出现,很少再会出现此类报错。以企鹅直播为例,腾讯做到了专门对这种flash被异常禁用的情况的提示:
从上面可以看到,优秀的前端做了几部分的工作:
- 提示flash无法被启用;
- 点击flash会提示插件弹出被禁止;
基于以上参考,我们在EasyDSS的videojs调用flash过程加了代码,当flash被禁用的时候,提示flash未安装或者被禁用:
参考代码:
<!-- 实际上, 只要将提示信息外包一个链接到 http://www.adobe.com/go/getflashplayer 浏览器就会在地>址栏右侧提示开启Flash插件
<a href='http://www.adobe.com/go/getflashplayer' target='_blank'>
你的浏览器没有安装或开启Flash
</a>