基于vue使用videojs播放m3u8直播流

最近遇到项目中使用m3u8直播流的需求,原生h5的video标签不支持该类型的视频资源,所以选择使用videojs

<template>
  <div class="video-box">
    <video id="myVideo"
            class="video-js vjs-default-skin"
            autoplay="false"
            width="422px"
            preload="auto"
            playsinline>
      <source src="http://*******.m3u8" type="application/x-mpegURL" />
    </video>
  </div>
</template>

<script>  
import videojs from "video.js";
import 'video.js/dist/video-js.css'
import "videojs-contrib-hls";     // 支持 m3u8 格式、并且是 hls 流,因为videojs支持多平台播放,主要用以兼容处理
export default {
  components: {

  },
  data () {
    return { 

    }
  },
  mounted () { 
    this.getVideo();   // 如果出现获取不到dom 可以用异步处理一下
  },
  methods: { 
    getVideo () { 
      videojs('myVideo', {
         controls: true, // 是否显示控制条
        bigPlayButton: true,
        textTrackDisplay: false,
        posterImage: true,  // 是否显示封面
        errorDisplay: false,
        controlBar: true
      })
    }
  },

}
</script>

<style lang="scss" scoped>
.video-box {
   video {
    width: 100%;
    height: 100%;
    object-fit: fill;   // 用以去除视频黑边,将视频撑满
  }
  ::v-deep .video-js .vjs-big-play-button {
    font-size: 20px;
    width: 50px;
    height: 50px;
    top: 20px;
    left: 20px;   // 控制播放按钮的位置
  }
}
 
</style>

通过以上视频应该就可以正常播放,同时要注意视频的资源格式,可以使用VLC或者PotPlayer直接查看对应网络资源的文件信息,同时注意,h265视频资源在web端是不被支持的,会导致浏览器如下报错 !!!(注意文件格式,普遍格式为h264,不过若是监控设备一般都可以让提供方直接转换,别的方法那就自行参悟,也欢迎互相指点学习)

 VIDEOJS: ERROR: (CODE:3 MEDIA_ERR_DECODE) Playback cannot continue. No available working or supported playlists. ma {code: 3, message: 'Playback cannot continue. No available working or supported playlists.'}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值