安裝檔案
npm install --save vue-video-player
npm install --save videojs-contrib-hls
理論上安裝這兩個就夠了,但我安裝時給的提示需要再安裝一個:
npm install --save mux.js/lib/mp4/caption-parser
but安裝這一條會報錯
要安裝這個:pm 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)
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLicmbw5yNxYjZ5UGM3czMkZjMhZzM0QTM2gDO2EDMiVWNwUTZw8CX0JXZ252bj91Ztl2Lc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
播放頁面的設定
首先通過FFmpeg(開源多媒體視訊處理軟體),運作批處理指令,将MP4格式的視訊轉為m3u8檔案和ts視訊片段,m3u8檔案是服務端建立的分片TS檔案的索引,浏覽器端請求并解析服務端的m3u8檔案,擷取分片資訊之後,按照順序向服務端請求下載下傳TS分片的檔案,實作視訊的完整播放。
前端使用開源元件vue-video-player播放視訊,引入樣式檔案,需要安裝适合HLS的依賴,即videojs-contrib-hls,視訊檔案的sources[0].types設為application/x-mpegURL,src設為m3u8檔案位址。
ref="videoPlayer"
:playsinline="true"
:options="playerOptions"
style='width: 1200px;margin:0 auto;height: auto'
>
網絡例子
伺服器result例子
mp4
export default {
data() {
//這裡存放資料
return {
playerOptions: {
playbackRates: [0.7, 1.0, 1.5, 2.0], //播放速度
autoplay: false, //如果true,浏覽器準備好時開始回放。
muted: false, // 預設情況下将會消除任何音頻。
loop: false, // 導緻視訊一結束就重新開始。
preload: "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() {
},
};