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

【RTSP】使用webrtc播放rtsp视频流

一、简介
rtsp流一般是监控、摄像机的实时视频流,现在的主流浏览器是不支持播放rtsp流文件的,所以需要借助其他方案来播放实时视频,下面介绍下我采用的webrtc方案,实测可行。

二、webrtc-streamer是什么?
webrtc-streamer是一个使用简单机制通过 WebRTC 流式传输视频捕获设备和 RTSP 源的项目,它内置了一个小型的 HTTP server 来对 WebRTC需要的相关接口提供支持。webrtc-streamer就相当于一个微型服务器。
三、详细的开发使用步骤
1、下载webrtc-streamer,我下载的是最新的window版本,大家可以根据自己开发需求下载对应的版本。
下载地址:https://github.com/mpromonet/webrtc-streamer/releases
在这里插入图片描述
2、解压下载的安装包
在这里插入图片描述
3、双击webrtc-streamer.exe运行程序
在这里插入图片描述
如下图则启动成功,此时可以通过127.0.0.1:8000在浏览器访问可以看到本机监控画面(即自己电脑桌面)。
在这里插入图片描述
当你同时打开多个视频流/访问窗口时,发现本地CPU会快速上涨,cpu太高的话打字都非常卡。所以在使用的时候不要直接双击打开webrtc-streamer.exe程序,而是在cmd里使用命令启动exe,需要加上这个配置参数 -o。
在这里插入图片描述
在这里插入图片描述

4、将下载包html文件夹下webrtcstreamer.js文件和html/libs文件夹下adapter.min.js文件复制到VUE项目你需要用的位置。可以按需引入局部使用,也可以全局引入使用,这里推荐局部引入使用,全局会比较耗性能,大家可以自行选择。
在这里插入图片描述
在这里插入图片描述
5、开始在项目中使用webrtc-streamer实现rtsp实时视频播放

注意:
1.3步在本机启动服务所以 new WebRtcStreamer(id,serverUrl)URL传入127.0.0.1,端口可
见第3步截图为8000;各监控设备厂商有自己的RTSP地址格式connect要传入正确的rtsp地址。
2.如果是在本机启动的话,127.0.0.1也可以换成你的本地ip地址。
3.在本地测试完成没问题之后是要部署到生产环境的,这个时候就要把serverUrl中的127.0.0.1或者本地ip换成服务器的ip,端口依然是你启动webrtc-streamer程序的端口。
4.new WebRtcStreamer(id,serverUrl):id为<video id="video"></video>播放组件的id,可以自己定义。

我选择的是局部引入,在需要地方直接新建js文件夹,把webstreamer.js和adapter.min.js文件放到其中,在vue文件中直接使用即可。
在这里插入图片描述
注意点:如果adapter.min.js文件中如果一下红框中的引入文件有.js后缀的话最好去掉,要不然使用的时候可能会出现报错。
在这里插入图片描述

(1)单个视频流Demo

<template>
	<div>
		<video id="video" controls widt

http://www.kler.cn/a/502153.html

相关文章:

  • 【Python】数据容器:列表,元组,字符串,集合字典及通用操作
  • 计算机网络 (39)TCP的运输连接管理
  • 22、PyTorch nn.Conv2d卷积网络使用教程
  • springboot vue uniapp 仿小红书 1:1 还原 (含源码演示)
  • OpenCV相机标定与3D重建(51)对 3x3 矩阵进行 RQ 分解(RQ Decomposition)函数RQDecomp3x3()的使用
  • 基于大语言模型的组合优化
  • 解读若依微服务架构图:架构总览、核心模块解析、消息与任务处理、数据存储与缓存、监控与日志
  • Kubernetes集群架构-节点
  • MATLAB语言的多线程编程
  • 智能腕带怎样融合热封装与传感器?如何实现96.63%手写识别率?
  • 消息队列与中间件:Java的秘密传输带
  • Oracle 批量投入数据方法总结
  • SQL进阶实战技巧:统计用户的累计消费金额及VIP等级?
  • [Effective C++]条款45 运用成员函数模板接受所有兼容类型
  • 如何使用 Java 的 Spring Boot 创建一个 RESTful API?
  • c++ 中的容器 vector、deque 和 list 的区别
  • 穿越火线怀旧服预约网页vue3版本
  • JavaScript 类型转换
  • EFK采集k8s日志
  • 【OpenGL/C++】面向对象扩展——测试环境
  • FlashAttention的原理及其优势
  • HTTP/HTTPS ④-对称加密 || 非对称加密
  • 使用WeakHashMap实现缓存自动清理
  • 特制一个自己的UI库,只用CSS、图标、emoji图 第二版
  • MySQL Binlog 同步工具go-mysql-transfer Lua模块使用说明
  • Django创建数据表、模型、ORM操作