前端FLV视频直播解决方案

项目背景:

1. 后台给出一个地址,持续不断的推送flv视频流。

2.前端需要接收视频流,并寻找合适的播放插件。

一开始:

其实用的是xgplayer(西瓜视频)。

官网地址:西瓜播放器

使用的是直播,flv的插件:西瓜播放器 | xgplayer-flv。

但是无法播放,现象就是一直loading

后来,查了好多资料,发现一个issue:

流数据正常下载,xgplayer-flv无法播放 · Issue #604 · bytedance/xgplayer · GitHub。

和我情况一模一样,但是暂时没有什么解决方案。说明,此路不通

柳暗花明:

找了很久,找到一个万能播放插件 —— Jessibuca

官网地址:Jessibuca

如何使用:

前端如何使用?建议直接下载相关资源,静态引入。

需要下载三个资源,如下图:

怎么找到这三个资源?去官网的network里找找吧,不在多说。

vue中使用详情:

首先,上边的三个文件引入public。在index.html文件中只需要引入jessibuca.js。

<!-- public下的index.html 直接引入js文件-->....<script src="<%= BASE_URL %>jessibuca.js"></script>.....

然后,创建视频播放组件 LiveVideoPlay.vue:

<script>
export default {name: "LiveVideoPlay",props: {// 播放地址playUrl: {type: String,required: true,},// 目标domidid: {type: String,required: true,},},data() {return {player: null,};},methods: {// 初始化视频组件initPlayer() {if (Jessibuca) {this.player = new Jessibuca({container: document.getElementById(this.id), //jessibuca需要容器videoBuffer: 0.2, // 缓存时长isResize: false,loadingText: "疯狂加载中...",useMSE: true,useWCS: true,debug: true,background: "@/assets/icons/svg/no-video.svg",supportDblclickFullscreen: true,showBandwidth: true, // 显示网速operateBtns: {fullscreen: true,screenshot: true,play: true,audio: true,},forceNoOffscreen: true,isNotMute: false,timeout: 10,});//console.log("this.player ----- ", this.player, this.playUrl);this.player.play(this.playUrl);}},},beforeDestroy() {// 销毁视频if (this.player) {this.player.destroy();this.player = null;}},mounted() {this.initPlayer();},
};
</script>
<template><div class="video-player-outer" :id="id"></div>
</template>
<style>
.video-player-outer {width: 100%;height: 100%;
}
</style>

最后,父组件中直接引用:

// 父组件中直接使用该组件<script>
import LiveVideoPlay from "./LiveVideoPlay.vue";
export default {name: '',components: {LiveVideoPlay },data () {return {playUrl1: null,playUrl2: null,showV1: false,showV2: false,}},methods: {handlePlayVideo(v) {if (v == 1) {this.playUrl1 ="https://xxxxxx/live/02.live.flv";this.showV1 = true;} else if (v == 2) {this.playUrl2 ="https://xxxxxx/live/02.live.flv";this.showV2 = true;}},StopPlayVideo(v) {if (v == 1) {this.showV1 = false;} else if (v == 2) {this.showV2 = false;}}, },
}</script><template><div class="box"><div class="video-box-item"><el-button @click="handlePlayVideo(1)">播放视频1</el-button><el-button @click="StopPlayVideo(1)">停止视频1</el-button><LiveVideoPlay v-if="showV1" :playUrl="playUrl1" id="v1" /></div><div class="video-box-item"><el-button @click="handlePlayVideo(2)">播放视频2</el-button><el-button @click="StopPlayVideo(2)">停止视频2</el-button><LiveVideoPlay v-if="showV2" :playUrl="playUrl2" id="v2" /></div></div></template>

如上,可以试一试自己的播放地址是否可以成功播放视频.

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

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

相关文章

DELL MD3600F更换控制器电池

1、存储左上角闪红灯&#xff0c;管理软件提示控制器1电池故障&#xff0c;需取出控制器更换上新电池。 2、通过管理软件确认两个控制器编号&#xff1b;确认到下面的是控制器1 3、拔掉控制器上插的线&#xff08;SAS线、网线、光纤线&#xff09;&#xff0c;打好标签&#xf…

外贸SEO建站系统有哪些?海洋建站的优势?

外贸SEO建站怎么做比较好&#xff1f;如何做谷歌独立站SEO优化&#xff1f; 外贸企业越来越需要建立自己的在线形象&#xff0c;以吸引更多的潜在客户。而要实现这一目标&#xff0c;外贸SEO建站系统是一种非常有效的手段。那么&#xff0c;外贸SEO建站系统有哪些呢&#xff1…

常见 平滑函数

平滑函数是指具有较为连续和缓和性质的数学函数。这类函数通常在局部小范围内变化不大&#xff0c;避免了突变或者急剧的波动。以下是一些常见的平滑函数&#xff1a; 高斯函数&#xff08;Gaussian Function&#xff09; 高斯函数是一种常见的平滑函数&#xff0c;具有钟形曲…

五、从0开始卷出一个新项目瑞萨RZN2L之RZT2L BaseProject coremark的移植

感谢来自b站热心帅气的同学分享的RZT2L移植经验总结的md文档 1 需要注意的小点 1.1 使用Flash运行调试前&#xff0c;新板子需要erase 1.2 在线debug&#xff0c;需要修改startup.c 2 coremark工程建立 2.1 工程创建 2.2 src 用户c代码移植 2.3 debug调试 …

【python】进阶--->网络编程(一)

一、网络编程 网络 : 为了联络多方然后进行通信,将数据从一方传递给另一方. 网络协议 : 不同计算机只需要通过联网,那么就可以相互进行传递数据,那么不同种类的计算机之间就和不同语言的人之间沟通一样,需要一种大家都认可都遵循的协议即可. 那么计算机都遵循的网络通信协议叫…

Kafka--Kafka日志索引详解以及生产常见问题分析与总结

一、Kafka的Log日志梳理 ​ 这一部分数据主要包含当前Broker节点的消息数据(在Kafka中称为Log日志)。这是一部分无状态的数据&#xff0c;也就是说每个Kafka的Broker节点都是以相同的逻辑运行。这种无状态的服务设计让Kafka集群能够比较容易的进行水平扩展。比如你需要用一个新…

嵌入式开发工程师

嵌入式开发 岗位需求 上岗必备 文章目录 嵌入式开发前言一、负责新产品的电路图、PCB、嵌入式程序、软硬件调试等工作二、负责对现有产品进行硬件优化、调试、维护、排故等工作三、 负责各种单片机,传感器,元器件选型以及BOM表整理四、 负责硬件产品研发和量产过程中项目设计…

网络技术基础与计算思维实验教程_3.1_单BSS实验(基本服务集合实验)

无线局域网的最小基本组件是基本服务BSS 实验内容 实验目的 实验原理 实验步骤 为了显示AP的有效通信范围 切换到物理工作区 把物理工作区导航到城市家园 直接在城市家园放置AP0 可以看到AP0的通信范围 放置笔记本电脑 在默认情况下 笔记本电脑上 安装了以太网卡 现在换成无…

大模型之二十一-小语言模型塞道开启

当前提到大语言模型&#xff0c;大家想到的都是动辄百亿规模以上参数量的模型&#xff0c;13B、70B都是稀疏平常入门级的&#xff0c;但是目前从模型层面来看&#xff0c;模型参数量的规模两极分化已经来临&#xff0c;早期各大公司为了效果怼上去&#xff0c;采取了简单粗暴的…

[Angular] 笔记 4:ngFor

ngFor 是一个 for 循环&#xff0c;只能用于循环遍历 list&#xff0c;不能用于遍历单个实体。 下图中的 pokemons 通常是数据库中的数据&#xff1a; 例子&#xff1a; app.components.ts: // 使用类型检查 interface Pokemon {id: number;name: string;type: string;// is…

【postgresql】PSQLException: An I/O error occurred while sending to the backend.

org.postgresql.util.PSQLException: An I/O error occurred while sending to the backend. 发送到后端时发生I/O错误。 java.io.IOException: Tried to send an out-of-range integer as a 2-byte value: 34284 尝试将超出范围的整数作为2字节值发送&#xff1a;34284 pos…

OpenHarmony开发环境快速搭建(无需命令行)

一. 搭建Windows环境 在嵌入式开发中&#xff0c;很多开发者习惯于使用Windows进行代码的编辑&#xff0c;比如使用Windows的Visual Studio Code进行OpenHarmony代码的开发。但当前阶段&#xff0c;大部分的开发板源码还不支持在Windows环境下进行编译&#xff0c;如Hi3861、H…

LLM微调(四)| 微调Llama 2实现Text-to-SQL,并使用LlamaIndex在数据库上进行推理

Llama 2是开源LLM发展的一个巨大里程碑。最大模型及其经过微调的变体位居Hugging Face Open LLM排行榜&#xff08;https://huggingface.co/spaces/HuggingFaceH4/open_llm_leaderboard&#xff09;前列。多个基准测试表明&#xff0c;就性能而言&#xff0c;它正在接近GPT-3.5…

助老理发,寒冬送暖从头开始

为进一步弘扬尊老、敬老、爱老、助老的中华民族传统美德&#xff0c;解决老年人年龄大、冬季出行不便的问题&#xff0c;2023年12月20日&#xff0c;绿萝志愿服务队在翠堤社区开展了“助老理发”志愿活动。 大雪过后天气格外寒冷&#xff0c;但志愿者们依旧早早的来现场做…

【Flink-Bug】Flink 自定义 Sink 重写 RichSinkFunction 方法时重复调用 open 的解决方案

【Flink-Bug】Flink 自定义 Sink 重写 RichSinkFunction 方法时重复调用 open 的解决方案 Flink 自定义 RichinkFunction 时可能会重写 open 方法进行某些连接的初始化操作&#xff0c;但是会出现重复调用 open 方法的问题&#xff0c;如&#xff1a;MQ&#xff0c;如果重复调用…

扭蛋机小程序搭建,“互联网+”下的发展优势

随着我国生活水平和消费能力不断提高&#xff0c;人们对各种潮流文化类的产品需求也快速上升。至此&#xff0c;我国潮流文化市场得到了快速发展&#xff01; 扭蛋机作为潮玩中的一种商业模式&#xff0c;深受不同年龄层用户的喜爱。并且扭蛋机的种类也是各式各样&#xff0c;…

Vue 官方周报 #124 - 使用JSDoc记录组件属性

Hi &#x1f44b; 当你将鼠标悬停在IDE中的组件上时&#xff0c;显示组件属性所对应的描述&#xff0c;这个功能在开发过程中会很有用。你可以在传递给defineProps函数的TypeScript接口中使用JSDoc来实现这一点&#xff1a; MyComponent.vue <script setup lang"ts&…

【音视频 | AAC】AAC格式音频文件解析

&#x1f601;博客主页&#x1f601;&#xff1a;&#x1f680;https://blog.csdn.net/wkd_007&#x1f680; &#x1f911;博客内容&#x1f911;&#xff1a;&#x1f36d;嵌入式开发、Linux、C语言、C、数据结构、音视频&#x1f36d; &#x1f923;本文内容&#x1f923;&a…

大创项目推荐 深度学习 植物识别算法系统

文章目录 0 前言2 相关技术2.1 VGG-Net模型2.2 VGG-Net在植物识别的优势(1) 卷积核&#xff0c;池化核大小固定(2) 特征提取更全面(3) 网络训练误差收敛速度较快 3 VGG-Net的搭建3.1 Tornado简介(1) 优势(2) 关键代码 4 Inception V3 神经网络4.1 网络结构 5 开始训练5.1 数据集…

Python知识(1/20):变量、表达式、什么是程序?

23年是AI井喷的一年&#xff0c;我对AI的态度是恐惧的&#xff0c;以往我只需要CRUD就能需要的工作&#xff0c;AI能够编写出来&#xff0c;虽然现在还有很多缺陷&#xff0c;但是我比较喜欢向前看&#xff0c;在我未来我感觉我能遇到我被AI替代的那天。 我该怎能么办呢&#…