首页 > 其他分享 >vue播放flv、hls(m3u8)视频及动态切换视频流

vue播放flv、hls(m3u8)视频及动态切换视频流

时间:2024-08-01 16:31:42浏览次数:16  
标签:vue m3u8 视频流 hls js video flv true videojs

【了解video.js】

官方地址: https://github.com/videojs/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

2、引用

import Videojs from 'video.js'
import 'video.js/dist/video-js.css'
import "videojs-flvjs-es6";
import "videojs-flash";

3、使用

// 标签容器
<video
    id="mmiid"
    class="video-js vjs-big-play-centered vjs-fluid"
    controls
    preload="auto"
    width="100%"
    height="100%"
    >
</video>
// hls(m3u8)格式
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: 'http://1011.hlsplay.aodianyun.com/demo/game.flv', 
                    type: "video/x-flv" }]
    })

【动态切换视频流】

起因: 需要动态切换视频流,但是换了地址后,视频无法播放,使用的代码如下。(失败方案)

//重置video的src
this.player.src(url);
//使video重新加载
this.player.load();

解决方案: 切换地址的时候,先将播放器销毁,然后添加新的dom,在重新初始化播放器就可以了。

disposeVideoJS.dispose()// 销毁之前播放
document.getElementById('#box')!.innerHTML = `<video
                                    id="${新id}"
                                    class="video-js vjs-big-play-centered vjs-fluid"
                                    controls
                                    preload="auto"
                                    width="100%"
                                    height="100%"
                                ></video>`
nextTick(() => {
        initVideo()// 重新初始化
})

 【样式调整】

<style>
.vjs-control-bar {
    font-size: 2em !important;// 控制面板整体大小调整
}
video {
    object-fit: fill !important;// 解决视频内容未铺满容器的问题
}
</style>

 

标签:vue,m3u8,视频流,hls,js,video,flv,true,videojs
From: https://www.cnblogs.com/angia/p/18336889

相关文章

  • vue集成svg大图拖拽无限放大缩小
        vue项目中根据实际CAD图为参考,以及参看项目实际现场,手动绘制了一张线体、堆垛机、库区货架svg图,集成到vue页面中,svg图中可以交互接收C#发送过来的singalR实时数据。接收singalR的实时数据并显示到vue中,这里不作展开讲,可以参看笔者另一篇文章《vue若依集成C#的singalR接......
  • vue+通义大模型的聊天项目
    智能聊天chat_ali_server.py为服务端,需要配置自己的阿里API_KEY,URL阿里云配置方式剩下的是客户端修改src/store/index.js中serverhost变量的值npminpmrundev应该就可以了如需定制开发,联系:18841685054Github......
  • Vue 3组件中监听浏览器窗口的大小变化
    constwindowWidth=ref(window.innerWidth);onMounted(()=>{ //在组件挂载后检查屏幕大小 //添加事件监听,以便在屏幕大小变化时更新条件 window.addEventListener('resize',checkScreenSize); //立即检查屏幕大小 console.log("在组件挂载后检查屏幕大小")})on......
  • Vue3+Ts+Vite入门
    vue2采用的是vueRouter3vueX3(233)vue3采用的是vueRouter4vueX4(344)v3对比v2优点1.首次渲染更加快v2就算通过路由懒加载效率也不是非常高(查找各种依赖)v3通过vite构建工具使渲染速度更快2.diff算法更快v2新旧虚拟dom对比然后差异化更新v3对diff算法进行优......
  • 超简单!vue3+vant4+pinia+vue-router+mockjs移动端实现水果商城项目【原创】
    ......
  • 基于ssm+vue.js+uniapp的网络直播带货查询系统附带文章和源代码部署视频讲解等
    文章目录前言详细视频演示具体实现截图技术栈后端框架SSM前端框架Vue持久层框架MyBaits系统测试系统测试目的系统功能测试系统测试结论为什么选择我代码参考数据库参考源码获取前言......
  • 基于springboot+vue.js+uniapp的医疗挂号管理系统附带文章源码部署视频讲解等
    文章目录前言详细视频演示具体实现截图技术栈后端框架SpringBoot前端框架Vue持久层框架MyBaits系统测试系统测试目的系统功能测试系统测试结论为什么选择我代码参考数据库参考源码获取前言......
  • ssm+vue的校园物品租赁管理系统的设计与实现【开题+程序+论文】-计算机毕业设计
    本系统(程序+源码)带文档lw万字以上文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着校园生活的日益丰富与多元化,学生们对各类物品的需求也呈现出多样化、临时性的特点。传统的购买方式往往难以满足学生群体对短期使用物品的需求,如......
  • ssm+vue的家具定制购买网站的设计与实现【开题+程序+论文】-计算机毕业设计
    本系统(程序+源码)带文档lw万字以上文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着互联网的飞速发展,电子商务已成为现代消费的主流趋势,特别是在家居装饰领域,消费者对于个性化、定制化家具的需求日益增长。传统家具市场虽种类繁多,......
  • VUE3 el-Menu + tabs 联动
    我们在项目中会有这种情况,根据点击侧边栏的菜单,来动态实现右侧tabs的增减,那么这种效果怎么实现呢1.模板部分<el-menu:collapse="isCollapse"active-text-color="#ffd04b"background-color="#242424"class="el-menu-vertical-demo":default-active="onRoutes&qu......