Vue如何接入hls/m3u8的直播视频详解

前言

最近做了一个后台系统,需要调取工厂监控视频流显示在前端的页面上,其中遇到了一些坑,在这里做个记录,希望对前端小伙伴有所帮助吧!废话不多说了,直接开搞

互联网网络流媒体简介

这块我也不是很懂,博大精深,不在这扯皮了,大家只需要知道常见的几种流媒体格式就行,至于发展与演变,里面的专业知识,我也不懂,主要的流媒体格式有RTSP,RTMP,HLS,WebRtc,这些足够解决日常开发了

播放HLS格式的视频

为什么要选择HLS格式的视频呢?因为浏览器没有办法支持播放RTSP,无法识别这种类型的视频流,RTMP格式的视频是需要借助Flash否则也是无法播放,但是Chrome 88彻底禁用Flash,于是跟同事商量选择了HLS,接下里就是踩坑的开始

安装

前端采用插件video.js

npm install --save video.js

现在下载的版本应该是7.0以上的,这个是有用的,因为这个版本以上的不需要因为安装videojs-contrib-hls插件,它是用来解析HLS视频的,但是只要你的版本在7.0以上就无需安装,直接使用

"video.js": "^7.19.2",

实现

<template>
  <div>
    <video
      id="my-video"
      class="video-js vjs-default-skin"
      controls
      preload="auto"
      width="500px">
      <source :src="srcUrl" />
    </video>
  </div>
</template>

<script>
import videojs from "video.js";
  export default {
    props:{
      "srcUrl":{
        type:String,
        default:'http://ivi.bupt.edu.cn/hls/cctv1hd.m3u8'
      }
    },
    mounted() {
        this.getVideo();
    },
    methods:{
      getVideo() {
        videojs(
            "my-video",
            {
                bigPlayButton: true,
                textTrackDisplay: false,
                posterImage: true,
                errorDisplay: false,
                controlBar: false
            },
            function() {
                this.play();
            }
        );
      },
}
  }
</script>

main.js 引入样式

import 'video.js/dist/video-js.css'

这就是所有的代码,这里已经封装成组件了,直接用就行,传入地址即可,样式自己修改吧!

这些都是开发中我从网上搜集的,第一做一脸茫然,百度上的东一句西一句,代码拿过来也是无法播放,于是直到我看到了这个

果真是这样,只需要将vlc的编码器信息改为h264,一切都是顺利成章了,当然这个需要联系给你视频地址的那个人进行配合,网上我看到的其他方式我测试都是不可以播放的,好了,就是这样,希望对遇到同样问题的小伙伴有所帮助吧!!!

总结

到此这篇关于Vue如何接入hls/m3u8直播视频的文章就介绍到这了,更多相关Vue接入hls/m3u8直播视频内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:

  • 详解vue2.0+vue-video-player实现hls播放全过程
  • vue2.0+vue-dplayer实现hls播放的示例
  • Vue结合Video.js播放m3u8视频流的方法示例
  • vue通过video.js解决m3u8视频播放格式的方法
  • 如何在vue中使用video.js播放m3u8格式的视频
张贴在2