提问 发文

视频流播放器无法播放视频流的原因

赵炎飞

| 2023-09-24 13:32 274 0 0

简介

        搭建大屏的时候我们经常会需要接入监控视频,这种监控视频往往是视频流,虽然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这四种格式的视频,和视频流播放器支持的格式是完全不一样的。

问题排查

1.协议跨域

        最常见的一个问题就是跨域问题了,如果大屏链接使用的协议是https的,而需要播放的视频链接是http协议的,那么就会因为协议不同而出现跨域问题。想要确定是不是跨域问题,可以打开浏览器的控制(F12),观察控制台中是否存在下面的报错:

        跨域问题不一定是协议不同造成的,也可能是其他原因,所以我这里仅给出因协议不同而导致的跨域问题的解决方案——开启浏览器的允许不安全内容

        设置完毕后刷新网页才能生效。

2.无法自动播放

        这种情况非常少见,受限于浏览器的安全策略,一般浏览器不允许有声音的内容自动播放,所以,如果你的视频流需要播放声音且自动播放(视频流一般都是自动播放的),才会有可能出现这个问题,不过该问题的解决方案很简单,如下图所示:

        设置完毕后刷新页面生效。

3.网络问题

        想要确定是不是网络问题很简单,下载一个万能的播放器——VLC,尝试用VLC打开对应的视频流地址,如果无法播放,则说明该视频流压根访问不到,让运维去解决网络问题即可。VLC播放视频流的方法如下:

打开VLC,点击菜单栏:媒体——打开网络串流——输入视频流地址,点击播放

4.编码器问题

        由于版权问题,经过h265编码后的视频流往往无法被正常播放,这个除了改成h264没有什么特别好的解决方案,如果是flv格式的经h265编码后的视频流,可以试着使用jessbuca播放器来播放,其他格式的话暂未开发。不过jessbuca播放器组件属于项目中的定制组件,如需使用,请联系运营同学。

        那么我们该怎么来确定是否是编码器的问题呢?方法和网络问题类似,先用VLC播放器打开对应的视频流,然后,在VLC的工具——编解码器信息中,可以查看编码器信息。

    最后,如果还有遇到过其他问题及解决方案的,欢迎交流补充。

收藏 0
分享
分享方式
微信

评论

游客

全部 0条评论

轻松设计高效搭建,减少3倍设计改稿与开发运维工作量

开始免费试用 预约演示

扫一扫关注公众号 扫一扫联系客服

©Copyrights 2016-2022 杭州易知微科技有限公司 浙ICP备2021017017号-3 浙公网安备33011002011932号

互联网信息服务业务 合字B2-20220090

400-8505-905 复制
免费试用
微信社区
易知微-数据可视化
微信扫一扫入群