Vue接入hls/m3u8直播视频
麦忙 人气:0前言
最近做了一个后台系统,需要调取工厂监控视频流显示在前端的页面上,其中遇到了一些坑,在这里做个记录,希望对前端小伙伴有所帮助吧!废话不多说了,直接开搞
互联网网络流媒体简介
这块我也不是很懂,博大精深,不在这扯皮了,大家只需要知道常见的几种流媒体格式就行,至于发展与演变,里面的专业知识,我也不懂,主要的流媒体格式有RTSP,RTMP,HLS,WebRtc,这些足够解决日常开发了
播放HLS格式的视频
为什么要选择HLS格式的视频呢?因为浏览器没有办法支持播放RTSP,无法识别这种类型的视频流,RTMP格式的视频是需要借助Flash否则也是无法播放,但是Chrome 88彻底禁用Flash,于是跟同事商量选择了HLS,接下里就是踩坑的开始
安装
前端采用插件video.js
npm install --save video.js
现在下载的版本应该是7.0以上的,这个是有用的,因为这个版本以上的不需要因为安装videojs-contrib-hls
插件,它是用来解析HLS视频的,但是只要你的版本在7.0以上就无需安装,直接使用
"video.js": "^7.19.2",
实现
<template> <div> <video id="my-video" class="video-js vjs-default-skin" controls preload="auto" width="500px"> <source :src="srcUrl" /> </video> </div> </template> <script> import videojs from "video.js"; export default { props:{ "srcUrl":{ type:String, default:'http://ivi.bupt.edu.cn/hls/cctv1hd.m3u8' } }, mounted() { this.getVideo(); }, methods:{ getVideo() { videojs( "my-video", { bigPlayButton: true, textTrackDisplay: false, posterImage: true, errorDisplay: false, controlBar: false }, function() { this.play(); } ); }, } } </script>
main.js 引入样式
import 'video.js/dist/video-js.css'
这就是所有的代码,这里已经封装成组件了,直接用就行,传入地址即可,样式自己修改吧!
坑
这些都是开发中我从网上搜集的,第一做一脸茫然,百度上的东一句西一句,代码拿过来也是无法播放,于是直到我看到了这个
果真是这样,只需要将vlc的编码器信息改为h264,一切都是顺利成章了,当然这个需要联系给你视频地址的那个人进行配合,网上我看到的其他方式我测试都是不可以播放的,好了,就是这样,希望对遇到同样问题的小伙伴有所帮助吧!!!
总结
加载全部内容