搭建大屏的时候我们经常会需要接入监控视频,这种监控视频往往是视频流,虽然EasyV中有用于播放视频流的组件——视频流播放器,但是使用过程中我们仍然会遇到各种各样的问题。本文梳理了一下可能会遇到的问题,并对某些问题给出答案。由于作者用的是edge浏览器,所以这里仅给出edge浏览器的解决方案,其他浏览器其实也类似的,就不一一例举了。
该组件仅支持播放http/https协议下的flv和hls格式的视频流,而rtsp,rtmp等协议是不支持的。所以我们在拿到视频流地址的时候,首先要去判断这个视频流用的是什么协议和格式,那么要怎么判断呢?以下面这三个地址为例:
1.rtsp://server.exanple.org:8080/test.sdp
2.http://www.example.com/stream.flv
3.https://www.example.com/stream.m3u8
我们可以很明显的看到,以 xxx:// 开头就代表着是什么协议了,而以 .xxx 结尾,就意味着用的是什么格式,这里需要注意的是,hls格式的视频流是以 .m3u8 结尾的,而不是 .hls。
此外,我们也需要注意区分 视频流播放器 和 视频 组件的不同,视频是有固定长度的媒体资源,而监控视频流一般是没有固定长度的,它每分每秒都在产生新的内容,除非你故意将一段视频转换成视频流来传输。而且视频组件支持的是 .mp4,.ogg,.webm,.mov这四种格式的视频,和视频流播放器支持的格式是完全不一样的。
最常见的一个问题就是跨域问题了,如果大屏链接使用的协议是https的,而需要播放的视频链接是http协议的,那么就会因为协议不同而出现跨域问题。想要确定是不是跨域问题,可以打开浏览器的控制(F12),观察控制台中是否存在下面的报错:
跨域问题不一定是协议不同造成的,也可能是其他原因,所以我这里仅给出因协议不同而导致的跨域问题的解决方案——开启浏览器的允许不安全内容。
设置完毕后刷新网页才能生效。
这种情况非常少见,受限于浏览器的安全策略,一般浏览器不允许有声音的内容自动播放,所以,如果你的视频流需要播放声音且自动播放(视频流一般都是自动播放的),才会有可能出现这个问题,不过该问题的解决方案很简单,如下图所示:
设置完毕后刷新页面生效。
想要确定是不是网络问题很简单,下载一个万能的播放器——VLC,尝试用VLC打开对应的视频流地址,如果无法播放,则说明该视频流压根访问不到,让运维去解决网络问题即可。VLC播放视频流的方法如下:
打开VLC,点击菜单栏:媒体——打开网络串流——输入视频流地址,点击播放
由于版权问题,经过h265编码后的视频流往往无法被正常播放,这个除了改成h264没有什么特别好的解决方案,如果是flv格式的经h265编码后的视频流,可以试着使用jessbuca播放器来播放,其他格式的话暂未开发。不过jessbuca播放器组件属于项目中的定制组件,如需使用,请联系运营同学。
那么我们该怎么来确定是否是编码器的问题呢?方法和网络问题类似,先用VLC播放器打开对应的视频流,然后,在VLC的工具——编解码器信息中,可以查看编码器信息。
最后,如果还有遇到过其他问题及解决方案的,欢迎交流补充。
文章
3.2K人气
8粉丝
1关注
©Copyrights 2016-2022 杭州易知微科技有限公司 浙ICP备2021017017号-3 浙公网安备33011002011932号
互联网信息服务业务 合字B2-20220090