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

标签:vueJS实现Videovue+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个

红包金额最低5元

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

抵扣说明:

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

余额充值