vue3+vite+ts 使用webrtc-streamer播放海康rtsp监控视频

ops/2024/12/15 18:36:44/

webrtcstreamer_4">了解webrtc-streamer

webrtc-streamer 是一个使用简单机制通过 WebRTC 流式传输视频捕获设备和 RTSP 源的项目,它内置了一个小型的 HTTP server 来对 WebRTC需要的相关接口提供支持。相对于ffmpeg+flv.js的方案,延迟降低到了0.4秒左右,画面的加载速度也变快了,切换浏览器标签后也不会暂停画面,并且解决了http1.1的同域名中的并发限制(在谷歌浏览器中可以同时播放6个以上的video)。

探索WebRTC Streamer:实时通信的新境界-CSDN博客

webrtcstreamer_11">一、下载webrtc-streamer

网址:Releases · mpromonet/webrtc-streamer (github.com)

二、下载完成解压并启动

启动方式:最好选2

1、双击webrtc-streamer.exe启动。

2、当前目录cmd,使用_webrtc-streamer.exe -o -H 0.0.0.0:9001_ 命令行开启,

-o:是指无需转码,降低CPU

-H:指定端口号

三、 测试webRtc插件是否有问题

打开浏览器,输入127.0.0.1:9001/webrtcstreamer.html?video=rtsp://admin:01@10.0.151.254:554/h264/ch1/main/av_stream

127.0.0.0是webrtc-streamer的运行ip,video后面是rtsp流的网络URL

我用的是海康摄像头,rtsp流的网络URL是rtsp://admin:01@10.0.151.254:554/h264/ch1/main/av_stream

海康摄像头rtsp格式:rtsp://<账号>:<密码>@<IP>:<端口,默认554>/<视频编码,h264/h265>/<通道>/<码流,main主 sub子>/av_stream
例:rtsp://admin:12345@1.0.151.254:554/h264/ch1/main/av_stream

到这里说明webRtc插件没问题!

四、下面整合到项目中(vue3+vite+ts)~~~~

1、assets文件夹下放入两个js文件(在下载的插件中寻找)

两个js分别为webrtcstreamer.js和adater.min.js,分别在html文件夹中和html/lib文件夹中

js在插件中位置(如图):

将两个js放入项目的assets目录中

webrtcstreamerjs_75">2、index.html中引入webrtcstreamer.js

3、vue中使用

<script setup lang="ts">
import {ref, onMounted, defineComponent, onUnmounted,nextTick} from "vue";
import {RouterView, useRouter} from "vue-router";
import ScaleScreen from "@/components/scale-screen";
import Headers from "@/views/header.vue";
import Setting from "@/views/setting.vue";
import {useSettingStore} from "@/stores/index";
import {storeToRefs} from "pinia";
import {BorderBox1, Decoration3} from '@kjgl77/datav-vue3';
import {ArrowLeft} from "@element-plus/icons-vue";//返回按钮使用
const router =useRouter();
//自适应窗体
const settingStore = useSettingStore();const {isScale} = storeToRefs(settingStore);
const wrapperStyle = {};//webRtcServer
//rtsp视频流的URL
const RTSP_URL = "rtsp://admin:hmrghck01@10.0.151.254:554/h264/ch1/main/av_stream";
//对应video的id
let video = document.getElementById('video');
//后端运行的webrtc-streamer.exe中的ip
const webRtcServerIp = ref('127.0.0.1');
const webRtcServer = ref(null);const initWebRtcServer = () => {nextTick(() => {video = document.getElementById('video');if (video) {
//9001后端运行的webrtc-streamer.exe中的端口webRtcServer.value = new WebRtcStreamer('video', `${location.protocol}//${webRtcServerIp.value}:9001`);webRtcServer.value.connect(RTSP_URL);} else {console.error('视频元素未找到');}});
};
// Call initWebRtcServer when the component is mounted
onMounted(() => {
//启动initWebRtcServer();
});// Destroy WebRTC server on component unmount
onUnmounted(() => {if (webRtcServer.value) {
//销毁webRtcServer.value.disconnect();webRtcServer.value = null;}
});</script><template><video id="video" class="video-js"  autoplay  ></video>
</template>
<style lang="scss" scoped>
#video{width: 95%;height: 95%;margin: 0 auto;position: absolute;top: 50%;left: 50%;transform: translate(-50%, -50%);//   blur(5px):这是一个模糊滤镜,它使图像的边缘变得模糊。5px表示模糊的程度,你可以根据需要调整这个值。// opacity(50%):这是一个透明度滤镜,它使图像变得半透明。50%表示透明度的程度,你可以根据需要调整这个值。filter: blur(0.5px) opacity(80%);
}</style>

五、运行成功!!

参考:大佬文章

webRtc播放rtsp视频流(vue2、vue3+vite+ts)_webrtc播放rtsp流-CSDN博客


http://www.ppmy.cn/ops/142177.html

相关文章

C 进阶 — 指针的使用

C 进阶 — 指针的使用 主要内容 1、字符指针 2、数组指针 3、指针数组 4、数组传参和指针传参 5、函数指针 6、函数指针数组 7、指向函数指针数组的指针 8、 回调函数 9、指针和数组练习题 前节回顾 1、指针就是个变量&#xff0c;用来存放地址&#xff0c;地址唯一…

88.合并两个有序数组

题目描述&#xff1a; 给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2&#xff0c;另有两个整数 m 和 n &#xff0c;分别表示 nums1 和 nums2 中的元素数目。 请你 合并 nums2 到 nums1 中&#xff0c;使合并后的数组同样按 非递减顺序 排列。 注意&#xff1a;最终…

测试脚本并发多进程:pytest-xdist用法

参考&#xff1a;https://www.cnblogs.com/poloyy/p/12694861.html pytest-xdist详解&#xff1a; https://www.cnblogs.com/poloyy/p/14708825.html 总 https://www.cnblogs.com/poloyy/category/1690628.html

【蓝桥杯选拔赛真题94】Scratch巡逻的直升机 第十五届蓝桥杯scratch图形化编程 少儿编程创意编程选拔赛真题解析

目录 scratch巡逻的直升机 一、题目要求 编程实现 二、案例分析 1、角色分析 2、背景分析 3、前期准备 三、解题思路 1、思路分析 2、详细过程 四、程序编写 五、考点分析 六、推荐资料 1、入门基础 2、蓝桥杯比赛 3、考级资料 4、视频课程 5、python资料 sc…

架构实践03-高可用架构模式

零、文章目录 架构实践03-高可用架构模式 1、CAP 定理 &#xff08;1&#xff09;CAP 定理的背景 提出者&#xff1a;加州大学伯克利分校的埃里克布鲁尔&#xff08;Eric Brewer&#xff09;在2000年ACM PODC会议上提出。证明者&#xff1a;麻省理工学院的赛斯吉尔伯特&…

大模型qiming面试内容整理-深度模型特定问题

在面试中涉及深度学习模型的特定问题时,面试官通常会关注你对深度学习技术的深入理解、如何应对模型训练中的常见挑战以及如何优化模型以适应不同的任务。以下是一些可能会涉及的深度模型特定问题,这些问题涵盖了深度学习模型的各个方面,包括模型架构、训练问题、优化技术以…

OpenCV--图像查找

OpenCV--图像查找 代码和笔记 代码和笔记 import cv2 import numpy as np""" 图像查找--特征匹配的应用&#xff0c;通过特征匹配和单应性矩阵 单应性变换&#xff1a;描述物体在世界坐标系&#xff08;原图&#xff09;和像素坐标系&#xff08;对比图&#x…

QILSTE H8-316QSY高亮黄光LED灯珠 发光二极管LED

在电子元件的多样化领域中&#xff0c;H8-316QSY型号的LED以其特定的技术参数&#xff0c;成为了一个不可忽视的选择。本文将通过增加文本的复杂性和句子的长短变化&#xff0c;来探讨这款LED的关键技术参数&#xff0c;为技术专家和工程师提供一个深入的参考。 首先&#xff…