vue实现flv格式视频播放

news2024/12/23 11:52:53

公司项目需要实现摄像头实时视频播放,flv格式的视频。先百度使用flv.js插件实现,但是两个摄像头一个能放一个不能放,没有找到原因。(开始两个都能放,后端更改地址后不有一个不能放)但是在另一个系统上是可以播放的。使用的是jessibuca.js

jessibuca.js实现视频播放

1、下载jessibuca.js包

在这里插入图片描述
这三个文件需要直接放到public文件夹里,不能在添加文件夹放置。

2、创建VideoPlayer.vue文件

<template>
    <div id="container" ref="container"></div>
</template>
<script>
export default {
    name: 'DemoPlayer',
    props: {
        videoUrl: {
            type: String,
            default: ''
        }
    },
    data() {
        return {
            jessibuca: null,
            version: '',
            wasm: false,
            vc: 'ff',
            playing: false,
            quieting: true,
            loaded: false, // mute
            showOperateBtns: false,
            showBandwidth: false,
            err: '',
            speed: 0,
            performance: '',
            volume: 1,
            rotate: 0,
            useWCS: false,
            useMSE: true,
            useOffscreen: false,
            recording: false,
            recordType: 'webm',
            scale: 0
        }
    },
    mounted() {
        this.create()
        window.onerror = (msg) => (this.err = msg)
    },
    unmounted() {
        this.jessibuca.destroy()
    },
    methods: {
        create(options) {
            options = options || {}
            this.jessibuca = new window.Jessibuca(
                Object.assign(
                    {
                        container: this.$refs.container,
                        videoBuffer: 0.2, // Number(this.$refs.buffer.value), // 缓存时长
                        isResize: false,
                        useWCS: this.useWCS,
                        useMSE: this.useMSE,
                        text: '',
                        // background: "bg.jpg",
                        loadingText: '疯狂加载中...',
                        // hasAudio:false,
                        debug: true,
                        supportDblclickFullscreen: true,
                        showBandwidth: this.showBandwidth, // 显示网速
                        operateBtns: {
                            fullscreen: this.showOperateBtns,
                            screenshot: this.showOperateBtns,
                            play: this.showOperateBtns,
                            audio: this.showOperateBtns
                        },
                        vod: this.vod,
                        forceNoOffscreen: !this.useOffscreen,
                        isNotMute: true,
                        timeout: 10
                    },
                    options
                )
            )
            var _this = this
            this.jessibuca.on('pause', function () {
                console.log('on pause')
                _this.playing = false
            })
            this.jessibuca.on('play', function () {
                console.log('on play')
                _this.playing = true
            })

            this.jessibuca.on('mute', function (msg) {
                console.log('on mute', msg)
                _this.quieting = msg
            })

            this.jessibuca.on('error', function (error) {
                console.log('error', error)
            })

            this.jessibuca.on('performance', function (performance) {
                var show = '卡顿'
                if (performance === 2) {
                    show = '非常流畅'
                } else if (performance === 1) {
                    show = '流畅'
                }
                _this.performance = show
            })

            this.jessibuca.on('play', () => {
                this.playing = true
                this.loaded = true
                this.quieting = this.jessibuca.isMute()
            })
        },
        play(videoUrl) {
            if (videoUrl) {
                this.jessibuca.play(videoUrl)
            } else {
                // this.$message.error('播放地址出错')
                this.destroy()
            }
        },
        mute() {
            this.jessibuca.mute()
        },
        cancelMute() {
            this.jessibuca.cancelMute()
        },

        pause() {
            this.jessibuca.pause()
            this.playing = false
            this.err = ''
            this.performance = ''
        },
        destroy() {
            if (this.jessibuca) {
                this.jessibuca.destroy()
            }
            this.create()
            this.playing = false
            this.loaded = false
            this.performance = ''
        }
    }
}
</script>
<style>
#container {
    background: rgba(13, 14, 27, 0.7);
    width: 100%;
    height: 100%;
}
</style>

3、使用组件

  1. 引入
import VideoPlayer from '@/components/VideoPlayer.vue'
  1. 使用
<VideoPlayer ref="VideoPlayer"></VideoPlayer>
  1. 播放
let url = 'http://182.150.58.94:15280/rtp/44010200492000000001_34020000001320000110.flv'
this.$refs.VideoPlayer.play(url)

效果

在这里插入图片描述

参考文档:

jessibuca-api-文档
参考官方实例 jessibuca-vue-demo

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/796555.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

振弦采集仪及在线监测系统完整链条的岩土工程隧道安全监测

振弦采集仪及在线监测系统完整链条的岩土工程隧道安全监测 近年来&#xff0c;随着城市化的不断推进和基础设施建设的不断发展&#xff0c;隧道建设也日益成为城市交通发展的必需品。然而&#xff0c;隧道建设中存在着一定的安全隐患&#xff0c;如地质灾害、地下水涌流等&…

Python(四十三)else语句

❤️ 专栏简介&#xff1a;本专栏记录了我个人从零开始学习Python编程的过程。在这个专栏中&#xff0c;我将分享我在学习Python的过程中的学习笔记、学习路线以及各个知识点。 ☀️ 专栏适用人群 &#xff1a;本专栏适用于希望学习Python编程的初学者和有一定编程基础的人。无…

实用人工智能 2.0,在线“学习、探索和构建”ML 模型

人工智能爱好者过去需要在一个好的GPU上投资数千美元才能“动手”进行机器学习&#xff0c;但现在一个简单的网络浏览器就足够了。总部位于硅谷的非营利组织PracticalAI最近发布了“PracticalAI2.0”&#xff0c;该平台包括TensorFlow 2.0Keras中的说明性机器学习课程&#xff…

吉客云对接打通金蝶云星空分页查询出库单接口与其他出库新增接口

吉客云对接打通金蝶云星空分页查询出库单接口与其他出库新增接口 对接系统吉客云 杭州吉客云网络技术有限公司是经国家认定的高新技术企业&#xff0c;是国内领先的SaaSERP软件服务商&#xff0c;致力于为企业提供安全稳定、高可用性和高扩展性的一站式数字化解决方案。 接通系…

如何全面评价国内的低代码开发平台 (apaas)?

低代码开发平台是无需编码&#xff08;0代码&#xff09;或通过少量代码就可以快速生成应用程序的开发平台。 通过可视化进行应用程序开发的方法&#xff08;参考可视编程语言&#xff09;&#xff0c;使具有不同经验水平的开发人员可以通过图形化的用户界面&#xff0c;使用拖…

SpringBoot网上宠物领养管理系统【纯干货分享,免费领源码05971】

摘 要 随着科学技术的飞速发展&#xff0c;社会的方方面面、各行各业都在努力与现代的先进技术接轨&#xff0c;通过科技手段来提高自身的优势&#xff0c;宠物行业当然也不例外。网上宠物领养管理系统是以实际运用为开发背景&#xff0c;运用软件工程原理和开发方法&#xff…

持续进化 | MWORKS 2023b正式上线,更新要点一文速览!

6月30日&#xff0c;同元软控成功举办MWORKS 2023b产品发布会&#xff0c;会上公布了新版MWORKS的产品特性、重大改进、关键技术以及设计理念。7月21日&#xff0c;科学计算与系统建模仿真平台MWORKS 2023b正式上线&#xff0c;开放下载。 此次更新的2023b版本带来了8个工具的重…

线段树----logn时间维护查询区间和/最大值/最小值

线段树 引入 线段树是算法竞赛中常用的用来维护 区间信息 的数据结构。 线段树可以在 O(\log N) 的时间复杂度内实现单点修改、区间修改、区间查询&#xff08;区间求和&#xff0c;求区间最大值&#xff0c;求区间最小值&#xff09;等操作。 线段树的区间修改与懒惰标记 …

Day44 算法记录| 动态规划 10 (股票问题)

股票问题 123.买卖股票的最佳时机III188. 买卖股票的最佳时机 IV 123.买卖股票的最佳时机III 方法一&#xff1a;二维数组的讲解&#xff1a; class Solution {public int maxProfit(int[] prices) {int day prices.length;int[][] dp new int[day][5];//初始化dp[0][1] -p…

教你使用PHP实现一个轻量级HTML模板引擎

&#x1f3c6;作者简介&#xff0c;黑夜开发者&#xff0c;全栈领域新星创作者✌&#xff0c;2023年6月csdn上海赛道top4。多年电商行业从业经验&#xff0c;对系统架构&#xff0c;数据分析处理等大规模应用场景有丰富经验。 &#x1f3c6;本文已收录于PHP专栏&#xff1a;PHP…

Ubuntu系统下:write_frames() got an unexpected keyword argument ‘audio_path‘

在部署Datid3d项目是遇到了一个imageio_ffmpeg的报错问题&#xff0c;网上也没有解决办法&#xff0c;在github上查看这个开源库时发现这个库的0.4.3和0.4.8的版本有差别&#xff0c;具体情况如下图&#xff1a; 0.4.3版本&#xff1a; 0.4.8版本&#xff1a; 我原先装得的是0…

AD 封装组件的水平/垂直间距报错

快捷键&#xff1a;D设计→R规则 一般情况下设置的都是&#xff1a;Electrical 下的Clearance 但是设置完了还是继续报错 是封装之间的水平间距问题 应该设置Placement 下的ComponentClearance

某网站搜索接口参数MD5加密又加盐逆向实战分析

1. 写在前面 最近在写爬虫的时候发现一些小网站上的MD5加密&#xff0c;在我们团队开发的千把个网站爬虫内发现这种MD5加密的案例还不少&#xff01;话不多说&#xff0c;直接拿出来分析一波 之后我准备抽时间总结出一个关于如何快速搜索与定位JS加密函数与分析与辨别常见加密…

dockerfile健康检查HEALTHCHECK

1、dockerfile示例 FROM registry.access.redhat.com/ubi9/ubi-init #关闭订阅管理器功能,便于使用dnf安装软件RUN sed -i s/d1/d0/ /etc/yum/pluginconf.d/subscription-manager.conf RUN curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos…

【前端知识】JavaScript——5个迭代函数:every、filter、forEach、map、some

【前端知识】JavaScript——5个迭代函数&#xff1a;every、filter、forEach、map、some JavaScript高级程序设计(第4版)&#xff1a;ECMAScript 为数组定义了 5 个迭代方法。每个方法接收两个参数&#xff1a;以每一项为参数运行的函数&#xff0c;以及可选的作为函数运行上下…

心率血氧传感器方案

JFH142多光谱健康监测模块&#xff0c;无创采集人体的脉搏波&#xff0c;用户系统只需通过串口即可和模块通信&#xff0c;并且直接获得测量结果&#xff0c;为用户输出实时连续的心率、血氧、血管弹性等健康数据&#xff0c;并通过云端服务器的大数据平台将脉搏波数据进行算法…

双目视觉,立体视觉,双目标定,三维重建,深度估计,棋盘格,RAFTStereo,HitNet,深度估计

github:https://github.com/pcb9382/StereoAlgorithms gitee:https://gitee.com/peng-chuanbo/StereoAlgorithms StereoAlgorithms 简体中文 | English 如果觉得有用&#xff0c;不妨给个Star⭐️&#x1f31f;支持一下吧~ 谢谢&#xff01; Acknowledgments & Contact…

解决IDEA的git非常缓慢方法

解决IDEA的git非常缓慢方法 xxxx\IDEA2021.1.3\IntelliJ IDEA 2021.1.3\bin

2023最新Ubuntu安装部署Gitlab详细教程(每个步骤均配图)

Ubuntu安装配置Gitlab详细步骤 安装依赖 打开终端&#xff0c;运行如下命令&#xff1a; sudo apt updatesudo apt-get upgradesudo apt-get install curl openssh-server ca-certificates postfix接下来会遇到如下界面&#xff0c;Tab切换到“确定”按钮&#xff0c;然后回…

ThinkPHP8知识详解:ThinkPHP8是什么?

欢迎你来到PHP服务网学习最新的ThinkPHP8开发教程&#xff0c;本文介绍一下ThinkPHP8是什么&#xff1f; 1、ThinkPHP8是ThinkPHP框架的最新版本&#xff0c;它在之前版本的基础上进行了改进和优化。它采用了现代化的设计理念和架构&#xff0c;提供了更好的性能和更丰富的功能…