vue项目中使用vue-video-player播放m3u8文件视频
vue项目中将MP4文件转为m3u8文件并播放视频安装文件引入样式在需要播放的Vue文件中引入功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流
安装文件
npm install --save vue-video-player
npm install --save videojs-contrib-hls
理论上安装这两个就够了,但我安装时给的提示需要再安装一个:
npm install --save mux.js/lib/mp4/caption-parser
but安装这一条会报错
要安装这个:npm install --save mux.js
引入样式
在需要main.js文件中引入
import VideoPlayer from ‘vue-video-player’
import ‘vue-video-player/src/custom-theme.css’
import ‘video.js/dist/video-js.css’
import hls from ‘videojs-contrib-hls’
Vue.use(hls)
播放页面的设置
首先通过FFmpeg(开源多媒体视频处理软件),运行批处理命令,将MP4格式的视频转为m3u8文件和ts视频片段,m3u8文件是服务端建立的分片TS文件的索引,浏览器端请求并解析服务端的m3u8文件,获取分片信息之后,按照顺序向服务端请求下载TS分片的文件,实现视频的完整播放。
前端使用开源组件vue-video-player播放视频,引入样式文件,需要安装适合HLS的依赖,即videojs-contrib-hls,视频文件的sources[0].types设为application/x-mpegURL,src设为m3u8文件地址。
<template>
<div class>
<video-player
class="video-player vjs-custom-skin"
ref="videoPlayer"
:playsinline="true"
:options="playerOptions"
style='width: 1200px;margin:0 auto;height: auto'
></video-player>
<button @click="test(1)">网络例子</button>
<button @click="test(2)">服务器result例子</button>
<button @click="test(3)">mp4</button>
</div>
</template>
<script>
export default {
data() {
//这里存放数据
return {
playerOptions: {
playbackRates: [0.7, 1.0, 1.5, 2.0], //播放速度
autoplay: false, //如果true,浏览器准备好时开始回放。
muted: false, // 默认情况下将会消除任何音频。
loop: false, // 导致视频一结束就重新开始。
preload: "auto", // 建议浏览器在<video>加载元素后是否应该开始下载视频数据。auto浏览器选择最佳行为,立即开始加载视频(如果浏览器支持)
language: "zh-CN",
aspectRatio: "16:9", // 将播放器置于流畅模式,并在计算播放器的动态大小时使用该值。值应该代表一个比例 - 用冒号分隔的两个数字(例如"16:9"或"4:3")
fluid: true, // 当true时,Video.js player将拥有流体大小。换句话说,它将按比例缩放以适应其容器。
sources: [
{
type: "application/x-mpegURL", //这里的种类支持很多种:基本视频格式、直播、流媒体等,具体可以参看git网址项目
src:
"http://hls01open.ys7.com/openlive/6d499d610a0c4a6182e36ac7dca124ad.m3u8", //url地址
},
],
// poster: "../../static/images/test.jpg", //你的封面地址
// width: document.documentElement.clientWidth, //播放器宽度
hls: true, // 启用hls?
notSupportedMessage: "此视频暂无法播放,请稍后再试", //允许覆盖Video.js无法播放媒体源时显示的默认信息。
controlBar: {
timeDivider: true,
durationDisplay: true,
remainingTimeDisplay: false,
fullscreenToggle: true, //全屏按钮
},
},
};
},
//监听属性 类似于data概念
computed: {},
//监控data中的数据变化
watch: {},
//方法集合
methods: {
test(val){
if(val==1){
this.playerOptions.sources[0].src = 'http://hls01open.ys7.com/openlive/6d499d610a0c4a6182e36ac7dca124ad.m3u8'
}
else if(val==2){
this.playerOptions.sources[0].src = 'http://noncoal.ahutit.com/upload/CourseVideo/202004/result/test.m3u8'
}
else{
this.playerOptions.sources[0].src = '/api/upload/CourseVideo/Video/3-2017年矿业科技大会/4.22葛新建:新型辊压机在冶金矿山应用的前景分析.mp4'
}
console.log(this.playerOptions.sources)
},
},
mounted() {
},
};
</script>
<style scoped>
</style>
更多推荐
所有评论(0)