Jessibuca 插件播放直播流视频
jessibuca官网:http://jessibuca.monibuca.com/player.html
git地址:https://gitee.com/huangz2350_admin/jessibuca#https://gitee.com/link?target=http%3A%2F%2Fjessibuca.monibuca.com%2F
项目需要的文件
1.播放组件
<template ><div id="jessibuca" style="width: auto; height: auto; position: relative" @mouseover="showbtn"><div :id="'container' + index" ref="container" :style="'position: relative;width: 100%; height:' +height +'; background:url(' + background +') no-repeat;background-size: 100% 100%;background-color: #000;'" @dblclick="fullscreenSwich"><div :id="'buttonsBox' + index" class="buttons-box" style="position: absolute; left: 0; bottom: 0"><div class="buttons-box-left"><i v-if="!playing" class="iconfont icon-play jessibuca-btn" @click="playBtnClick" /><i v-if="playing" class="iconfont icon-pause jessibuca-btn" @click="pause" /><i class="iconfont icon-stop jessibuca-btn" @click="destroy" /><i v-if="isNotMute" class="iconfont icon-audio-high jessibuca-btn" @click="jessibuca.mute()" /><i v-if="!isNotMute" class="iconfont icon-audio-mute jessibuca-btn" @click="jessibuca.cancelMute()" /></div><div class="buttons-box-right"><span class="jessibuca-btn">{{ kBps }} kb/s</span><!-- <i class="iconfont icon-file-record1 jessibuca-btn"></i>--><!-- <i class="iconfont icon-xiangqing2 jessibuca-btn" ></i>--><i class="iconfont icon-camera1196054easyiconnet jessibuca-btn"@click="jessibuca.screenshot('截图', 'png', 0.5)" /><i class="iconfont icon-shuaxin11 jessibuca-btn" @click="playBtnClick" /><i v-if="!fullscreen" class="iconfont icon-weibiaoti10 jessibuca-btn" @click="fullscreenSwich" /><i v-if="fullscreen" class="iconfont icon-weibiaoti11 jessibuca-btn" @click="fullscreenSwich" /></div></div></div><div v-if="!playing && !autoplay" class="btn-image" :style="'height:' + height"><div class="btn-image-center" @click="playBtnClick" :style="'width:' +btnimageW +';height: ' +btnimageH +';background:url(' +btnimage +') no-repeat;background-size: 100% 100%;'"></div></div></div>
</template><script>
/* eslint-disable no-underscore-dangle */
export default {name: 'Jessibuca',props: {index: {//indextype: Number,default: 0,},videoUrl: {//播放地址type: String,default: '',},error: {//报错信息type: Function,default: null,},hasAudio: {//静音type: Boolean,default: false,},height: {//播放器高度type: String,default: '500px',},isFullResize: {//播放面即是否填充满容器type: Boolean,default: true,},autoplay: {//是否自动播放type: Boolean,default: false,},background: {//封面图type: String,default: '',},btnimage: {//播放器按钮图片type: String,default: 'data:image/png;base64,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',},btnimageH: {//播放器按钮图片高度type: String,default: '60px',},btnimageW: {//播放器按钮图片宽度type: String,default: '60px',},},data() {return {jessibuca: null,playing: false,isNotMute: false,quieting: false,fullscreen: false,loaded: false, // mutespeed: 0,performance: '', // 工作情况kBps: 0,btnDom: null,videoInfo: null,volume: 1,rotate: 0,vod: true, // 点播forceNoOffscreen: false,}},watch: {videoUrl: {handler(newData, oldData) {if (!this.autoplay && !oldData) returnthis.play(newData)},},},mounted() {window.onerror = (msg) => {// console.error(msg)}const paramUrl = decodeURIComponent(this.$route.params.url)this.$nextTick(() => {if (typeof this.videoUrl === 'undefined') {this.videoUrl = paramUrl}this.btnDom = document.getElementById('buttonsBox' + this.index)console.log(`初始化时的地址为: ${this.videoUrl}`)this.autoplay ? this.play(this.videoUrl) : ''})},destroyed() {if (this.jessibuca) {this.jessibuca.destroy()}this.playing = false// this.loaded = falsethis.performance = ''},methods: {create() {const options = {}console.log(this.$refs.container)console.log(`hasAudio ${this.hasAudio}`)this.jessibuca = new window.Jessibuca(Object.assign({container: this.$refs.container,videoBuffer: 0.5, // 最大缓冲时长,单位秒isResize: true,isFlv: true,decoder: '/js/jessibuca/index.js',// text: "WVP-PRO",// background: "bg.jpg",loadingText: '加载中',hasAudio:typeof this.hasAudio === 'undefined' ? true : this.hasAudio,debug: false,supportDblclickFullscreen: false, // 是否支持屏幕的双击事件,触发全屏,取消全屏事件。operateBtns: {fullscreen: false,screenshot: false,play: false,audio: false,},record: 'record',isFullResize: this.isFullResize || false,vod: this.vod,forceNoOffscreen: this.forceNoOffscreen,isNotMute: this.isNotMute,},options))// eslint-disable-next-line no-underscore-dangleconst _this = thisthis.jessibuca.on('load', () => {console.log('on load init')})this.jessibuca.on('log', (msg) => {console.log('on log', msg)})this.jessibuca.on('record', (msg) => {console.log('on record:', msg)})this.jessibuca.on('pause', () => {_this.playing = false})this.jessibuca.on('play', () => {_this.playing = true})this.jessibuca.on('fullscreen', (msg) => {console.log('on fullscreen', msg)_this.fullscreen = msg})this.jessibuca.on('mute', (msg) => {console.log('on mute', msg)_this.isNotMute = !msg})this.jessibuca.on('audioInfo', (msg) => {// console.log("audioInfo", msg);})this.jessibuca.on('videoInfo', function (msg) {this.videoInfo = msg// console.log("videoInfo", msg);})this.jessibuca.on('bps', (bps) => {// console.log('bps', bps);})// eslint-disable-next-line no-unused-varslet _ts = 0this.jessibuca.on('timeUpdate', (ts) => {// console.log('timeUpdate,old,new,timestamp', _ts, ts, ts - _ts);_ts = ts})this.jessibuca.on('videoInfo', (info) => {console.log('videoInfo', info)})this.jessibuca.on('error', (error) => {console.log('error', error)})this.jessibuca.on('timeout', () => {console.log('timeout')})this.jessibuca.on('start', () => {console.log('start')})this.jessibuca.on('performance', (performance) => {let show = '卡顿'if (performance === 2) {show = '非常流畅'} else if (performance === 1) {show = '流畅'}_this.performance = show})this.jessibuca.on('buffer', (buffer) => {// console.log('buffer', buffer);})this.jessibuca.on('stats', (stats) => {// console.log('stats', stats);})this.jessibuca.on('kBps', (kBps) => {_this.kBps = Math.round(kBps)})// 显示时间戳 PTSthis.jessibuca.on('videoFrame', () => { })//this.jessibuca.on('metadata', () => { })},playBtnClick(event) {this.play(this.videoUrl)},play(url) {if (!url || url.length == 0) {this.$message.warning('当前摄像头出错,请稍后重试')this.pause()return}if (this.jessibuca) {this.destroy()}this.create()this.jessibuca.on('play', () => {this.playing = true// this.loaded = true// this.quieting = this.jessibuca.quieting})if (this.jessibuca.hasLoaded()) {this.jessibuca.play(url)} else {this.jessibuca.on('load', () => {console.log('load 播放')this.jessibuca.play(url)})}},pause() {if (this.jessibuca) {this.jessibuca.pause()}this.playing = falsethis.err = ''this.performance = ''},destroy() {if (this.jessibuca) {this.jessibuca.destroy()}if (document.getElementById('buttonsBox' + this.index) == null) {document.getElementById('container' + this.index).appendChild(this.btnDom)}this.jessibuca = nullthis.playing = falsethis.err = ''this.performance = ''},showbtn() {if (document.getElementById('buttonsBox' + this.index) == null) {document.getElementById('container' + this.index).appendChild(this.btnDom)}},eventcallbacK(type, message) {// console.log("player 事件回调")// console.log(type)// console.log(message)},fullscreenSwich() {const isFull = this.isFullscreen()this.jessibuca.setFullscreen(!isFull)this.fullscreen = !isFull},isFullscreen() {return (document.fullscreenElement ||document.msFullscreenElement ||document.mozFullScreenElement ||document.webkitFullscreenElement ||false)},},
}
</script><style>
@font-face {font-family: 'iconfont';/* Project id 1291092 */src: url('iconfont.woff2') format('woff2');
}.iconfont {font-family: 'iconfont' !important;font-size: 16px;font-style: normal;-webkit-font-smoothing: antialiased;-moz-osx-font-smoothing: grayscale;
}.icon-play:before {content: '\e603';
}.icon-pause:before {content: '\e6c6';
}.icon-stop:before {content: '\e6a8';
}.icon-audio-high:before {content: '\e793';
}.icon-audio-mute:before {content: '\e792';
}.icon-shuaxin11:before {content: '\e720';
}.icon-weibiaoti10:before {content: '\e78f';
}.icon-weibiaoti11:before {content: '\e790';
}.icon-camera1196054easyiconnet:before {content: '\e791';
}.buttons-box {width: 100%;height: 0px;transition: 0.4s;background-color: rgba(43, 51, 63, 0.7);display: -webkit-box;display: -ms-flexbox;display: flex;user-select: none;z-index: 100;display: flex;align-items: center;overflow: hidden;
}#jessibuca:hover .buttons-box {height: 40px;
}.buttons-box-left {display: flex;flex: 1;align-items: center;
}.jessibuca-btn {color: rgb(255, 255, 255);line-height: 27px;margin: 0px 5px;padding: 0px 2px;cursor: pointer;text-align: center;font-size: 20px !important;
}.buttons-box-right {height: 100%;position: absolute;right: 0;display: flex;flex: 1;align-items: center;font-size: 20px;
}.btn-image {width: 100%;/* height: 100%; */position: absolute;left: 0;top: 0;z-index: 99 !important;
}.btn-image-center {position: absolute;left: 0;right: 0;bottom: 0;top: 0;margin: auto;
}
</style>
.jessibuca-btn 设置播放控件的间距
decoder: '/js/jessibuca/index.js',地址是服务静态文件的相对地址src: url('iconfont.woff2') format('woff2'); 相对地址 iconfont.woff2需要和组件放在同一目录下
2.父组件引用
<template><div class="app-container"><player video-url="视频地址" :has-audio="false" height="200px" :isFullResize="false" :autoplay="true":index="getIndex" /></div>
</template>
<script>
import player from '@/components/jessibuca/index.vue' // h265播放器export default {name: 'video',components: {player,},data() {return {}},computed: {// 获取时间戳getIndex() {let time = new Date().getTime()return time},},
}
</script>
3.index.html 需要引入静态js文件
<script src="./public/js/jessibuca/index.js"></script>
相关文章:

Jessibuca 插件播放直播流视频
jessibuca官网:http://jessibuca.monibuca.com/player.html git地址:https://gitee.com/huangz2350_admin/jessibuca#https://gitee.com/link?targethttp%3A%2F%2Fjessibuca.monibuca.com%2F 项目需要的文件 1.播放组件 <template ><div i…...

【Docker】03 容器操作
文章目录 一、流转图二、基本操作2.1 查看本地容器进程2.2 启动容器2.2.1 交互式启动容器2.2.2 后台启动容器 2.3 进入容器2.4 停止启动重启容器2.5 退出容器2.6 删除容器2.7 提交容器(打包成镜像)2.8 拷贝文件2.8.1 拷贝容器内文件到宿主机2.8.2 拷贝宿…...

【HarmonyOS】鸿蒙开发之Stage模型-基本概念——第4.1章
Stage模型-基本概念 名词解释 AbilityStage:应用组件的“舞台“ UIAbility:包含UI界面的应用组件,是系统调度的基本单元 WindowStage:组件内窗口的“舞台“ Window:用来绘制UI页面的窗口 HAP:Harmony Ability Package(鸿蒙能力类型的包) HSP:Harmony Sh…...

什么是芯片委外管理系统? 及其主要作用
随着半导体产业的飞速发展,芯片制造企业面临着日益复杂的生产和管理挑战。为了应对这些挑战,许多企业选择将部分生产环节委托给外部厂商进行,这种合作模式被称为“委外加工”。而为了有效地管理和协调这一合作模式,便诞生了“芯片…...
【实战-08】 flink自定义Map中的变量的行为
场景 自定义Map或者别的算子的时候,有时候需要定义一些类变量,在flink内部高并发的情况下需要正确理解这些变量的行为 代码 package com.pg.function;import org.apache.flink.api.common.functions.MapFunction; import org.apache.flink.api.common…...

Docker Volume
"Ice in my vein" Docker Volume(存储卷) 什么是存储卷? 存储卷就是: “将宿主机的本地文件系统中存在的某个目录,与容器内部的文件系统上的某一目录建立绑定关系”。 存储卷与容器本身的联合文件系统? 在宿主机上的这个与容器形成绑定关系…...

开源计算机视觉库OpenCV常用的API介绍
阅读本文之前请参阅-----开源计算机视觉库OpenCV详细介绍 OpenCV(开源计算机视觉库)是一个跨平台的计算机视觉和机器学习软件库,它提供了大量的API(应用程序编程接口),用于处理图像和视频分析、对象检测、面…...

pytorch -- torch.nn下的常用损失函数
1.基础 loss function损失函数:预测输出与实际输出 差距 越小越好 - 计算实际输出和目标之间的差距 - 为我们更新输出提供依据(反向传播) 1. L1 torch.nn.L1Loss(size_averageNone, reduceNone, reduction‘mean’) 2. 平方差(…...

daydayEXP: 支持自定义Poc文件的图形化漏洞利用工具
daydayEXP: 支持自定义Poc文件的图形化漏洞利用工具 基于java fx写的一款支持加载自定义poc文件的、可扩展的的图形化渗透测试框架。支持批量漏洞扫描、漏洞利用、结果导出等功能。 使用 经过测试,项目可在jdk8环境下正常使用。jdk11因为缺少一些必要的组件,所以jdk11版本工…...

无法访问云服务器上部署的Docker容器(二)
说明:记录一次使用公网IP 接口地址无法访问阿里云服务接口的问题; 描述 最近,我使用Docker部署了jeecg-boot项目,部署过程都没有问题,也没有错误信息。部署完成后,通过下面的地址访问后端Swagger接口文档…...

在Pycharm中运行Django项目如何指定运行的端口
方法步骤: 打开 PyCharm,选择你的 Django 项目。在菜单栏中,选择 “Run” -> “Edit Configurations...”。在打开的 “Run/Debug Configurations” 对话框中,选择你的 Django server 配置(如果没有,你…...
Android将 ViewBinding封装到BaseActivity基类中(Java版)
在Android中使用Java语言将ViewBinding封装到基类中,操作步骤如下: 1、在项目的build.gradle文件中启用了ViewBinding,添加以下代码: android {...buildFeatures {viewBinding true} } 2、创建一个名为“BaseActivity”的基类&…...

JSP实现数据传递与保存(一)
一、Web开发步骤 1.1两类模式 后端——————前端 先有前端,前端用的时候直接调用 后端已实现注册接口,接口名为doRegister.jsp 前端此时: 前端的form表单中的action提交地址就只能填doRegister.jsp,即: <f…...

【论文笔记之 YIN】YIN, a fundamental frequency estimator for speech and music
本文对 Alain de Cheveigne 等人于 2002 年在 The Journal of the Acoustical Society of America 上发表的论文进行简单地翻译。如有表述不当之处欢迎批评指正。欢迎任何形式的转载,但请务必注明出处。 论文链接:http://audition.ens.fr/adc/pdf/2002_…...

水印相机小程序源码
水印相机前端源码,本程序无需后端,前端直接导入即可,没有添加流量主功能,大家开通后自行添加 源码搜索:源码软件库 注意小程序后台的隐私权限设置,前端需要授权才可使用 真实时间地址拍照记录,…...

NXP实战笔记(八):S32K3xx基于RTD-SDK在S32DS上配置LCU实现ABZ解码
目录 1、概述 2、SDK配置 2.1、IO配置 2.2、TRGMUX配置 2.3、LCU配置 2.4、Trgmux配置 2.5、Emios配置 2.6、代码实现 1、概述 碰到光电编码器、磁编码器等,有时候传出来的位置信息为ABZ的方式,在S32K3里面通过TRGMUX、LCU、Emios结合的方式可以实现ABZ解码。 官方…...
【深度好文】simhash文本去重流程
对于类似于头条客户端而言,推荐的每一刷的新闻都必须是不同的新闻,这就需要对新闻文本进行排重。传统的去重一般是对文章的url链接进行排重,但是对于抓取的网页来说,各大平台的新闻可能存在重复,对于只通过文章url进行排重是不靠谱的,为了解决这个痛点于是就提出了用simh…...

主流的开发语言和开发环境介绍
个人浅见,不喜勿喷,谢谢 软件开发是一个涉及多个方面的复杂过程,其中包括选择合适的编程语言和开发环境。编程语言是软件开发的核心,它定义了程序员用来编写指令的语法和规则。而开发环境则提供了编写、测试和调试代码的工具和平台…...

List去重有几种方式
目录 1、for循环添加去重 2、for 双循环去重 3、for 双循环重复坐标去重 4、Set去重 5、stream流去重 1、for循环添加去重 List<String> oldList new ArrayList<>();oldList.add("张三");oldList.add("张三");oldList.add("李四&q…...
使用C#+NPOI进行Excel处理,实现多个Excel文件的求和统计
一个简易的控制台程序,使用C#NPOI进行Excel处理,实现多个Excel文件的求和统计。 前提: 待统计的Excel格式相同统计结果表与待统计的表格格式一致 引入如下四个动态库: 1. NPOI.dll 2. NPOI.OOXML.dll 3. NPOI.OpenXml4Net.dll …...

【2025年】解决Burpsuite抓不到https包的问题
环境:windows11 burpsuite:2025.5 在抓取https网站时,burpsuite抓取不到https数据包,只显示: 解决该问题只需如下三个步骤: 1、浏览器中访问 http://burp 2、下载 CA certificate 证书 3、在设置--隐私与安全--…...
土地利用/土地覆盖遥感解译与基于CLUE模型未来变化情景预测;从基础到高级,涵盖ArcGIS数据处理、ENVI遥感解译与CLUE模型情景模拟等
🔍 土地利用/土地覆盖数据是生态、环境和气象等诸多领域模型的关键输入参数。通过遥感影像解译技术,可以精准获取历史或当前任何一个区域的土地利用/土地覆盖情况。这些数据不仅能够用于评估区域生态环境的变化趋势,还能有效评价重大生态工程…...

论文阅读:Matting by Generation
今天介绍一篇关于 matting 抠图的文章,抠图也算是计算机视觉里面非常经典的一个任务了。从早期的经典算法到如今的深度学习算法,已经有很多的工作和这个任务相关。这两年 diffusion 模型很火,大家又开始用 diffusion 模型做各种 CV 任务了&am…...
鸿蒙HarmonyOS 5军旗小游戏实现指南
1. 项目概述 本军旗小游戏基于鸿蒙HarmonyOS 5开发,采用DevEco Studio实现,包含完整的游戏逻辑和UI界面。 2. 项目结构 /src/main/java/com/example/militarychess/├── MainAbilitySlice.java // 主界面├── GameView.java // 游戏核…...
Python学习(8) ----- Python的类与对象
Python 中的类(Class)与对象(Object)是面向对象编程(OOP)的核心。我们可以通过“类是模板,对象是实例”来理解它们的关系。 🧱 一句话理解: 类就像“图纸”,对…...

qt+vs Generated File下的moc_和ui_文件丢失导致 error LNK2001
qt 5.9.7 vs2013 qt add-in 2.3.2 起因是添加一个新的控件类,直接把源文件拖进VS的项目里,然后VS卡住十秒,然后编译就报一堆 error LNK2001 一看项目的Generated Files下的moc_和ui_文件丢失了一部分,导致编译的时候找不到了。因…...
6.9本日总结
一、英语 复习默写list11list18,订正07年第3篇阅读 二、数学 学习线代第一讲,写15讲课后题 三、408 学习计组第二章,写计组习题 四、总结 明天结束线代第一章和计组第二章 五、明日计划 英语:复习l默写sit12list17&#…...
深入浅出JavaScript中的ArrayBuffer:二进制数据的“瑞士军刀”
深入浅出JavaScript中的ArrayBuffer:二进制数据的“瑞士军刀” 在JavaScript中,我们经常需要处理文本、数组、对象等数据类型。但当我们需要处理文件上传、图像处理、网络通信等场景时,单纯依赖字符串或数组就显得力不从心了。这时ÿ…...

7种分类数据编码技术详解:从原理到实战
在数据分析和机器学习领域,分类数据(Categorical Data)的处理是一个基础但至关重要的环节。分类数据指的是由有限数量的离散值组成的数据类型,如性别(男/女)、颜色(红/绿/蓝)或产品类…...
TI德州仪器TPS3103K33DBVR低功耗电压监控器IC电源管理芯片详细解析
1. 基本介绍 TPS3103K33DBVR 是 德州仪器(Texas Instruments, TI) 推出的一款 低功耗电压监控器(Supervisor IC),属于 电源管理芯片(PMIC) 类别,主要用于 系统复位和电压监测。 2. …...