vue+video.js实现前端视频流(hls、MP4、flv)

本文介绍了如何利用video.js库来实现前端的HLS、FLV和RTMP等多种视频流直播。首先通过npm安装所需的video.js及相关插件,如videojs-flash、flv.js等。然后在页面中引入video.js及相关样式,并设置视频标签。对于不同类型的直播,可以通过调整techOrder和sources属性来配置。例如,HLS直播设置techOrder为['html5', 'flvjs'],source指向m3u8文件;FLV直播则设置flvjs选项和source指向flv文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

之前、写过关于西瓜播放器xgplayer可以实现各种视频流的前端直播,
目前这篇关于video.js实现直播、视频,拓展下知识面

使用

  1. 下载相应插件
npm install video.js --save  
npm install videojs-flash --save //rtmp格式
//flv格式
npm install flv.js --save
npm install videojs-flvjs-es6 --save
//hls格式  video.js7.0以后版本默认支持hls(m3u8)格式  可以不安装,装了也可以使用
npm install videojs-contrib-hls --save
  1. 页面引入
	import Videojs from 'video.js'
   import 'video.js/dist/video-js.css'
   import "videojs-flvjs-es6";
   import "videojs-flash";
  1. 使用区别
// 标签容器
<video
   id="mmiid"
    class="video-js vjs-big-play-centered vjs-fluid"
    controls
    preload="auto"
    width="100%"
    height="100%"
    >
</video>
// hls
this.videoPlayer = Videojs(document.querySelector('#mmiid'),{
          autoplay: 'muted',//自动播放
          controls: true,//用户可以与之交互的控件
          loop:true,//视频一结束就重新开始
          muted:false,//默认情况下将使所有音频静音
          aspectRatio:"16:9",//显示比率
          fullscreen:{
              options: {navigationUI: 'hide'}
          },
          techOrder: ["html5", "flvjs"],// 兼容顺序
          html5:{hls: {
              withCredentials: true
          }},
          sources: [{ src: 'http://ivi.bupt.edu.cn/hls/cctv1hd.m3u8', type: "application/x-mpegURL" }]
      })
//flv
this.videoPlayer = Videojs(document.querySelector('#mmiid'),{
       autoplay: 'muted',//自动播放
        controls: true,//用户可以与之交互的控件
        loop:true,//视频一结束就重新开始
        muted:false,//默认情况下将使所有音频静音
        aspectRatio:"16:9",//显示比率
        fullscreen:{
            options: {navigationUI: 'hide'}
        },
        techOrder: ["html5", "flvjs"],// 兼容顺序
        flvjs: {
            mediaDataSource: {
                isLive: false,
                cors: true,
                withCredentials: false
            }
        },
        sources: [{ src: urlList[0].url, type: "video/x-flv" }]
    })
// 其他
//rtmp
techOrder: ["html5",  "flash"],// 兼容顺序
sources: [{ src: this.videoUrl, type: "rtmp/flv" }]
// mp4
sources: [{ src: this.videoUrl, type: "video/mp4" }]

测试地址

HLS直播源地址:

CCTV1高清:http://ivi.bupt.edu.cn/hls/cctv1hd.m3u8
CCTV3高清:http://ivi.bupt.edu.cn/hls/cctv3hd.m3u8
CCTV6高清:http://ivi.bupt.edu.cn/hls/cctv6hd.m3u8

RTMP直播源地址:

香港卫视:rtmp://live.hkstv.hk.lxdns.com/live/hks1
rtmp://live.hkstv.hk.lxdns.com/live/hks2
湖南卫视:rtmp://58.200.131.2:1935/livetv/hunantv
美国1:rtmp://ns8.indexforce.com/home/mystream
美国中文电视:rtmp://media3.sinovision.net:1935/live/livestream

FLV视频:

http://1011.hlsplay.aodianyun.com/demo/game.flv
前端使用 FLV 格式(Flash Video,一种流媒体格式)结合 Vue.js、Element UI 和 UVP(Uniview Player)来实现实时无插件视频分屏播放,可以按照以下步骤进行: 1. **引入依赖**: - Vue.js 是用于构建用户界面的 JavaScript 框架。 - Element UI 提供了一套响应式的组件库,方便构建界面。 - UVP 是一个基于 HTML5 的流媒体播放器,支持 FLV 视频。 2. **安装必要的库**: - 使用 npm 或 yarn 安装对应的版本: ``` npm install vue element-ui uvp-player ``` 3. **创建项目结构**: - 设计好项目的目录结构,包含 `src`、`public` 等基本文件夹,并配置 `main.js` 和 `index.html`。 4. **引入并注册 Vue**: ```javascript import Vue from 'vue' new Vue({ //... }).$mount('#app') ``` 5. **初始化 Element UI**: - 引入 Element UI 并注册其全局样式: ```html <link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/index.css"> ``` ```javascript import { ElPlayer } from 'element-ui/packages/player'; Vue.component('el-player', ElPlayer); ``` 6. **分屏播放组件**: 创建一个 Vue 组件,利用 UVP Player 实现分屏播放功能。示例代码如下: ```html <template> <div> <el-row :gutter="10"> <el-col :span="4"> <el-player :src="flvUrl1"></el-player> </el-col> <!-- 添加其他分屏列,根据需要设置 span --> <el-col :span="4"> <el-player :src="flvUrl2"></el-player> </el-col> <!-- ... --> </el-row> </div> </template> <script> export default { data() { return { flvUrl1: 'your_first_flv_url', flvUrl2: 'your_second_flv_url', // 更多URL }; }, }; </script> ``` 7. **运行应用**: - 将视频 URL 替换为实际的 FLV 文件地址,然后在浏览器中运行 `index.html`。 8. **注意事项**: - 由于 Flash 已经逐渐过时,未来可能会有兼容性问题。考虑使用现代技术如 HLS 或 DASH 来替代 FLV
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值