vue+video.js实现trmp协议多个视频直播

1、npm包准备css

cnpm i video.js -S
cnpm i videojs-flash -S

2、main.js 中进行引入html

import Video from "video.js";
import "videojs-flash";
import "video.js/dist/video-js.min.css";
Vue.prototype.$video = Video;

3、组件中进行使用vue

<!-- 视频组件 html部分 -->
<div class="mp4-wrap" v-for="item in videoList" :key="item.id">
  <video
    :id="`myVideo${item.id}`"
    class="video-js vjs-big-play-centered"
    data-setup="{}"
    v-for="item in video"
    :key="item.id"
  >
    <source :src="item.url" type="rtmp/flv" />
  </video>
</div>
data(){
  return {
    videoList: [//trmp视频源数组
        {
          url: "rtmp://58.200.131.2:1935/livetv/hunantv",
          id: 2
        },
        {
          url:
            "rtmp://rtmp01open.ys7.com/openlive/f01018a141094b7fa138b9d0b856507b.hd",
          id: 4
        },
        {
          url: "rtmp://119.23.19.140:1935/live/openUrl/YaVoFjO",
          id: 1
        },
        {
          url: "rtmp://58.200.131.2:1935/livetv/gxtv",
          id: 9
        }
      ],
  }
}

mounted(){
  this.initVideo();
},

methods:{
    initVideo() {
      let videoArr = [];
      this.video.map((item,index) => {
       //把视频配置项 push 进新数组逐个播放
        videoArr.push(
            this.$video("myVideo" + item.id, {
            controls: true,//显示控件
            autoplay: true,//自动播放
            preload: "auto",//预加载
            // poster: "",//封面图
          })
        )
        videoArr[index].play();
      });
      //离开组件时销毁每一个实例
      this.$once('hook:beforeDestroy',()=>{
        for(let i in this.video){
          videoArr[i].dispose();
        }
      })
    },
}

/*
  Author:XiNine
 下期:vue + vue-video-player实现 HSL 多视频直播(海康)
*/

Tips:
1.通过试验,海康威视的trmp流没法播放,具体缘由还不知道
2.不过下期的文章,有能够现实海康直播流的方案。npm

效果图
vue+video.js播放trmp协议直播.png数组

相关文章
相关标签/搜索