videojs vue 动态source_vue项目中使用vuevideoplayer播放m3u8格式视频

安装文件

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)

0e505eb01688614436a26d3770e9f617.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() {

  },

};

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值