vue播放rtsp流方案(支持h265)

news2024/11/27 9:36:56

前提

  1. 如果你的rtsp流不是h265的,可以使用webRtc-stream进行播放,我测试延迟1.5秒左右
    参考链接: link
    这个操作也挺方便的,也就是下载,启动

  2. 如果是h265,可以使用ffmpeg + node + rest2web + jsmpeg方案。这个优点是特别快,缺点是多线路对内存消耗太大

本文使用的是ffmpeg + node + rest2web + jsmpeg方案

1.安装ffmpeg

1.1window安装

先去官网下载
链接: https://ffmpeg.org/download.html
在这里插入图片描述
在这里插入图片描述

然后解压,进入文件夹,如下

在这里插入图片描述
去配置环境变量
电脑->属性->高级系统设置->环境变量->系统变量->Path中新增
在这里插入图片描述
之后新打开cmd,输入ffmpeg查看是否安装成功

1.2 linux系统安装(ubuntu)

看官网,已经提供了Ubuntu的FFmpeg包,可以直接使用apt进行安装。

1、更新apt:sudo apt update

2、安装FFmpeg:sudo apt install ffmpeg

之后 ffmpeg -version查看是否安装成功

2.安装node

这个更简单了,window是上不用说了,之下是linux的
在 Ubuntu 上安装 Node.js 的步骤如下:

  1. 打开终端,使用以下命令更新系统软件包列表:

    sudo apt-get update
    
  2. 安装 Node.js:

    sudo apt-get install nodejs
    
  3. 安装 Node.js 的包管理器 npm:

    sudo apt-get install npm
    
  4. 检查 Node.js 和 npm 是否已经安装成功:

    node -v
    npm -v
    

    如果安装成功,将会显示 Node.js 和 npm 的版本信息。

注意:如果您使用的是其他 Linux 发行版,请使用相应的软件包管理器来安装 Node.js。

3.搭建node服务

先创建项目

npm init -y

安装rtsp2web插件

npm i rtsp2web 

创建入口文件index,js

const RTSP2web = require("rtsp2web");

// 服务端长连接占据的端口号;端口号可以自定义
const port = 9999;
new RTSP2web({ port });

然后node启动

node index.js

你也可以使用pm2管理

4.前端页面

创建html文件

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta
      name="viewport"
      content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no,viewport-fit=cover"
    />
    <script src="https://jsmpeg.com/jsmpeg.min.js" charset="utf-8"></script>
    <title>播放rtsp</title>
  </head>
  <body>
    <canvas id="canvas" style="width: 600px; height: 600px"></canvas>
  </body>
  <script>
    // 改成你的rtsp流
    var rtsp = "rtsp://admin:xxxx@192.168.x.xx:xxx/Streaming/Channels/101";

    window.onload = () => {
      // location为node服务所在的服务地址,端口为rtsp2web设置的端口(也就是index.js中配置的端口)
      new JSMpeg.Player("ws://localhost:9999/rtsp?url=" + btoa(rtsp), {
        canvas: document.getElementById("canvas"),
      });
    };
  </script>
</html>

这里我们使用了jsmpeg,你可以直接用线上的,也可以下载下来,保存本地,引用

现在打开页面就可以看到视频了

集成到vue中,有一个注意点,最好把jsmpeg文件下载下来,在main全局引入,需要修改文件 把第一行的 var JSMpeg 改为window.JSMpeg
这样在vue全局可以正常使用

参考链接

链接: 在web页面播放rtsp流视频(webrtc)
链接: https://github.com/Neveryu/rtsp2web
链接: https://github.com/phoboslab/jsmpeg
链接: https://github.com/FFmpeg/FFmpeg

这个方案播放单线路可以,多线路就不太好了,所以公司不采用
欢迎大家多多交流

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

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

相关文章

如何用Java代码操作数据库(JDBC编程)

目录 JDBC编程的由来 JDBC编程的准备工作 1. 下载数据库驱动包 2. 将jar包作为标准库​编辑 3. 编写JDBC代码&#xff08;需要通过下面几个步骤完成开发&#xff09; &#xff08;1&#xff09;JDBC编程&#xff08;在数据库中插入一条记录&#xff09; 运行结果&#xff1a;…

ZEPPELIN部署接入华为云MRS

ZEPPELIN部署接入华为云MRS 安装zeppelin配置Spark连接常见问题连接pg报错 Py4JJavaError: An error occurred while calling o779.load. : org.postgresql.util.PSQLException: The authentication type 5 is not supported. Check that you have configured the pg_hba.conf …

OpenMMLab-AI实战营第二期——3-1.深度学习预训练与MMPretrain

文章目录 1. MMPreTrain算法库介绍1.1 算法库与任务组成1.2 框架概览 2. 经典主干网络2.1 ResNet2.2 Vision Transformer 3. 自监督学习3.1 SimCLR3.2 MAE3.3 iBOT 4. 多模态算法4.1 CLIP4.2 BLIP 视频链接&#xff1a;b站-深度学习预训练与MMPretrain 1. MMPreTrain算法库介绍…

高并发下如何保证接口幂等性?

文章目录 前言&#xff1a; 一、insert前先select 二、加悲观锁 三、加乐观锁 四、加唯一索引 五、建防重表 六、根据状态机 七、加分布式锁 八、获取token 前言&#xff1a; 接口幂等性问题&#xff0c;对于开发人员来说&#xff0c;是一个跟语言无关的公共问题。本文分…

粮油食品行业MES系统源码

MES系统可以提供全面的生产过程监控和数据分析&#xff0c;帮助企业实现智能化、数字化生产。同时&#xff0c;MES系统可以优化生产计划和物料配送&#xff0c;降低废品率和能耗&#xff0c;提高生产效率和质量&#xff0c;降低生产成本&#xff0c;增加利润。 一、粮油MES系统…

C#,彩票数学——彩票预测是玄学还是数学?什么是彩票分析?怎么实现彩票号码的预测?

彩票原理系列文章 彩票与数学——彩票预测是玄学还是数学&#xff1f;https://mp.csdn.net/mp_blog/creation/editor/122517043彩票与数学——常用彩票术语的统计学解释https://mp.csdn.net/mp_blog/creation/editor/122474853彩票与数学——彩票缩水的数学概念与原理https://…

小狐狸ChatGPT创作系统如何添加AI文本创作自定义模型,自定义模型方法

后台根据自己的定位选建好类别管理 具体模型文档参照如下对应修改或新增,格式 :模型标题+描述+模型内容+提示文字 模型标题描述模型内容提示文字写一篇文章用你喜欢的语言写一篇关于任何主题的文章用[TARGETLANGGE]写一篇关于[PROMPT]的文章输入文章的主题,然后按发送键按…

【微信小程序插件】下拉刷新、下拉加载

概述 今天在优化小程序的列表时候&#xff0c;想要把原生的 scroll-view 组件替换成一个下拉刷新的组件&#xff0c;然后就找了一下&#xff0c;果然有大神已经封装好。coolui-scroller 就是这样满足需求的一款插件&#xff0c;但是微信官网给出的描述以及安装引入的方式&…

Python读取CSV文件的几种方法

话不多说&#xff0c;开干&#xff01;&#xff01;&#xff01; 目录 1. 使用 csv 模块 2.使用 numpy 库 3.使用pandas库 4.使用标准库中的 csv 模块 5.注意事项 1. 使用 csv 模块 &#xff08;1&#xff09;项目目录如下图所示&#xff1a; &#xff08;2&#xff09;…

皕杰报表中的图表钻取

皕杰报表中图表的钻取是通过超链接实现的&#xff0c;其实质就是通过超链接打开了一张的新表&#xff0c;而把原表中的条件通过参数传递给新表&#xff0c;从而得到我们所需的明细数据。 超链接的地址在单元格的超链接地址属性里添加属性值&#xff0c;如果超链接字符串不需要动…

企业级微服务架构实战项目--xx优选1

一 项目概述 1.1 项目概述 xx优选项目&#xff1a;是依托社区和团长社交关系实现生鲜商品流通的新零售模式。 1.2 技术栈 1.3 功能架构图 第2部分 1.4 技术架构* 1.5 工程结构 ssyx-parent&#xff1a;父工程&#xff0c;根目录&#xff0c;管理子模块&#xff1a; ​ comm…

如何自动化的对PCAP数据包进行suricata/snort/zeek分析

在前一篇文章中&#xff0c;这里介绍了dalton的安装&#xff0c;以及使用dalton中的多种探针手动分析pcap数据包。在和其他程序联动的时候&#xff0c;手动分析无法满足要求&#xff0c;本篇文章将介绍如何通过使用dalton提供的API进行数据包的自动化分析。 在手动提交数据包分…

从零手写操作系统之RVOS系统调用实现-09

从零手写操作系统之RVOS系统调用实现-09 系统模式&#xff1a;用户态和内核态如何让任务运行在用户态下 系统模式的切换用户模式下访问特权指令测试系统调用系统调用执行流程系统调用传参规范系统调用封装 系统调用完整流程解析执行测试 本系列参考: 学习开发一个RISC-V上的操作…

基于html+mysql+Spring+mybatis+Springboot的Springboot宠物医院管理系统

运行环境: 最好是java jdk 1.8&#xff0c;我在这个平台上运行的。其他版本理论上也可以。 IDE环境&#xff1a; Eclipse,Myeclipse,IDEA或者Spring Tool Suite都可以&#xff0c;如果编译器的版本太低&#xff0c;需要升级下编译器&#xff0c;不要弄太低的版本 tomcat服务器环…

一般人不要轻易去自学网络安全(黑客)

笔者本人 17 年就读于一所普通的本科学校&#xff0c;20 年 6 月在三年经验的时候顺利通过校招实习面试进入大厂&#xff0c;现就职于某大厂安全联合实验室。 我为啥说自学黑客&#xff0c;一般人我还是劝你算了吧&#xff01;因为我就是那个不一般的人。 首先我谈下对黑客&a…

[游戏开发][Unity]Assetbundle下载篇(1)热更前准备与下载AB包清单

热更流程都不是固定的&#xff0c;每个人写的状态机也有所差别&#xff0c;但是一些必要步骤肯定不可能少&#xff0c;例如下载清单&#xff0c;对比版本&#xff0c;下载AB包&#xff0c;标记下载完成。我接下来的每一篇文章都是下载AB包的重要步骤&#xff0c;大概率是不能省…

Kibana:使用 Kibana 自带数据进行可视化(三)

在今天的练习中&#xff0c;我们将使用 Kibana 自带的数据来进行一些可视化的展示。希望对刚开始使用 Kibana 的用户有所帮助。这是这个系列的第三篇文章。这个是继上一篇文章 “Kibana&#xff1a;使用 Kibana 自带数据进行可视化&#xff08;二&#xff09;” 的续篇。 前提条…

学成在线----day5

1、媒资管理需求分析 2、为什么要用网关 当前要开发的是媒资管理服务&#xff0c;目前为止共三个微服务&#xff1a;内容管理、系统管理、媒资管理&#xff0c;如下图&#xff1a; 后期还会添加更多的微服务&#xff0c;当前这种由前端直接请求微服务的方式存在弊端&#xff…

微服务架构中的数据一致性:解决方案与实践| 得物技术

1 为什么要做服务之间的数据一致性 作为互联网公司的研发工程师&#xff0c;微服务的架构思想对于各位读者朋友来说&#xff0c;已经不是陌生东西。我们当中的大多数人&#xff0c;或多或少经历过从单体应用到微服务化的系统拆分和演进过程。我们按照庞大系统的业务功能和特征…

都说网络安全渗透工程师前景好,好在哪?

渗透工程师前景非常好&#xff0c;网络安全发展规模不断扩大&#xff0c;未来行业类的人才需求也会越来越多。就目前看来在网络安全方向上就业的薪资待遇也十分可观。 其就业方向有很广泛&#xff0c;如网络安全工程师&#xff0c;渗透测试工程师等。 渗透测试人员通常对网络…