由于项目中的视频返回格式是m3u8,于是选择较为成熟的video.js,这里先贴上官网文档地址 https://docs.videojs.com/
进入可以看到插件的API和使用指南,还包括angularJS、react等框架的使用方法,因为我们项目用的vue框架,这里直接看vue的使用。
npm install --save-dev video.js
安装成功后,在man.ts文件下引入对应的css样式,并进行全局组件注册
到这一步视频就可以播放了,因为我们项目的视频是m3u8格式,在设置sources的时候,type需要设置为 application/x-mpegURL ,目前使用已知支持的视频格式有mp4、rtmp、flv还有目前正在使用的m3u8,其他格式需要各位看官自行搜索是否是否支持了。同时,options可设置的不仅仅是上面的内容,通过文档可以查看其他设置, https://docs.videojs.com/tutorial-options.html#controls 。
我们项目里用到的是实时监控画面,所以需要切换不同的监控点,下面对于切换视频地址贴上简单的示例。
到此,视频地址的切换功能也完成了。因为是实时监控视频,目前还有个问题还没解决,当视频播放到一定时间后,就会存在视频加载问题,会造成视频播放不够流畅,这个问题还在研究中,解决后会继续更新到这篇文章里。由于初次使用videoJS插件,还有很多功能不够熟悉需要继续研究,各位看官也可以直接在评论区进行交流。
有,而且也很多。\x0d\x0a1.在目前支持较好的仍然是使用FlashPlayer来播放m3u8格式的视频,这样能够很好的利用计算机的性能,使视频质量达到最优良的效果,但不是h5。\x0d\x0a2.H5支持的视频格式,默认使用的是video标签,但是video不支持m3u8格式,因此需要用到开源的js库来解码视频流。\x0d\x0a3.总结调研结果,推荐常用的有hls.js,video.js,都是开源免费。还有几个需要注册才能使用的,不罗列说明。\x0d\x0a4.原生的标签支持,目前无法实现,再浏览器的不断更新迭代基础上,未来是会支持的,不需要我们自己扩展。\x0d\x0a5.除了3中说的几个,还有很多浏览器插件支持的方式,比如vlc插件,就很好用。\x0d\x0a\x0d\x0a总结,推荐在github上搜索hls.js,会发现很多可用的内容。