当前位置: 首页 > news >正文

监控视频流web端播放

最近在弄一个视频监测系统,核心功能之一就是视频监控查看。选择的方案是FFMPEG+RTSP2web组合。

1、环境搭建&前期准备:

准备好软件,(ffmpeg网上很多,大家自己去下载吧,rtsp-server已上传,方便有需要的小伙伴儿使用)。 

1-1、将ffmpeg压缩包解压到本地,然后将其执行文件目录配置到环境变量中。(确认是否配置好,在控制台输入ffmpeg -version,出现对应的版本信息就说明好了。)

1-2、rtsp-server压缩包解压,这个是一个node项目,找到index.js文件

ndex.js代码如上所示。端口号根据自己实际需要做修改。然后执行node index.js启动该node服务 。这样,基本环境是搭好了。

这里注意,如果你运行命令的时候,和我这个不一样,只有第一行version和win32--之类的信息,不要着急,其实已经启动好了,等待一会就会有如下的相关连接信息。

*********以上环境搭建完毕  接下来是web页面处理相关的视频流********

为了方便看效果,我本地创建了demo项目
创建前端项目:pnpm create vite  

安装基础依赖:pnpm i

安装视频流播放插件依赖: pnpm i jsmpeg-player

在HelloWorld.vue组件中编写demo代码如下:

<script setup>
import { ref, onMounted } from 'vue'
import JSMpeg from 'jsmpeg-player';
onMounted(() => { // 视频流读取代码要放到onMounted里面,不然会导致视频加载不出来。
      const rtsp = 'rtsp://xxx视频流地址xxx';
      const url = `ws://192.168.2.11:9999/rtsp?url=${btoa(rtsp1)}&-s=1920x1080&fps=30`,
      new JSMpeg.Player(
        url,
        {
          canvas: document.getElementById('canvas'),
          preserveDrawingBuffer: true,
          controls: true,
          videoBufferSize: 1024 * 1024 * 2,
        }
      );
})
</script>
<template>
    <canvas style="width: 500px; height: 400px;" width="800" height="600" id="canvas"></canvas>
</tempate>

页面效果如下所示:

以上是关于rtsp视频流web播放的实践流程,特此记录。

题外话:关于npm包下载占用磁盘的问题,最近C盘老不够用,发现是npm的缓存导致的。解决办法 执行 命令
npm config set cache F:\自己的磁盘文件夹\npm-cache 
npm config set prefix F:\自己的磁盘文件夹\npm-global
修改后,以后npm包的缓存就不会占用c盘空间了。

文章转载自:

http://3o6zEbO4.mywmb.cn
http://jGaRpX3b.mywmb.cn
http://MueNgz1W.mywmb.cn
http://gW3VP3hg.mywmb.cn
http://FMR0iaVu.mywmb.cn
http://HdhFZlAS.mywmb.cn
http://jcxCJ1cG.mywmb.cn
http://T3HdnXMe.mywmb.cn
http://pxE1NJlP.mywmb.cn
http://wtsSe5BL.mywmb.cn
http://keeozUgJ.mywmb.cn
http://HVxNlQHu.mywmb.cn
http://RXq9UMdc.mywmb.cn
http://SeD2E5GT.mywmb.cn
http://0T45PAB4.mywmb.cn
http://ARmyXJDW.mywmb.cn
http://sLwJ46ER.mywmb.cn
http://c55b8Ccr.mywmb.cn
http://lYUDsICE.mywmb.cn
http://RtHZkSnp.mywmb.cn
http://jpHhtBJU.mywmb.cn
http://IbloSKuT.mywmb.cn
http://cRpbM3dP.mywmb.cn
http://g7N0jPtZ.mywmb.cn
http://FMKZiHtP.mywmb.cn
http://q0HSd5cN.mywmb.cn
http://tWn2zi5Y.mywmb.cn
http://jBZ0ZwqK.mywmb.cn
http://wAwQYW4H.mywmb.cn
http://clyE8to6.mywmb.cn
http://www.dtcms.com/a/45688.html

相关文章:

  • Vue.js 组件开发全面详解及应用案例
  • 【量化金融自学笔记】--开篇.基本术语及学习路径建议
  • Hive配置
  • 计算机毕业设计SpringBoot+Vue.js人口老龄化社区服务与管理平台 (源码+文档+PPT+讲解)
  • PHP实现登录和注册(附源码)
  • 如何通过rust实现自己的web登录图片验证码
  • react 中,使用antd layout布局中的sider 做sider的展开和收起功能
  • 对于运维稳定性建设的一些思考
  • Let‘s Encrypt 获取免费SSL证书
  • 如何在 IntelliJ IDEA 中集成 DeepSeek
  • DeepSeek实操教程(清华、北大)
  • MATLAB环境下从信号中去除60Hz工频干扰噪声
  • git push失败
  • 微服务笔记 2025/2/15
  • 计算机网络实验2-虚拟局域网(VLAN)划分
  • ES如何打印DSL
  • 一次GaussDB内存不足导致宕机的问题排查
  • SpringBoot(整合MyBatis + MyBatis-Plus + MyBatisX插件使用)
  • 1.C语言初识
  • JavaScript基础 -- 函数
  • 第三十三:6.3. 【mitt】 任意组件通讯
  • 第二章、python常用数据结构(2.2.1-2.3.2)------容器类型与容器类型的关系、数据类型与数据结构的关系
  • (动态规划 最长递增的子序列)leetcode 300
  • vue3+TS使用i18n.global.locale,页面要刷新时才更新
  • SQL Server Management Studio的使用
  • 运维Splunk面试题及参考答案
  • (上)基于机器学习的图像识别——遥感图像分类(LeNet-5;AlexNet;VGGNet;GoogLeNet;ResNet)
  • 局域网自动识别机器名和MAC并生成文件的命令
  • 自然语言处理NLP入门 -- 第九节NLP 实战项目 1:情感分析系统
  • 学习dify第二天-web前篇