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

Vue前端播放rtsp视频流(vue+webrtc-streamer)

文章目录

  • 1 webrtc-streamer作用是什么
  • 2 安装webrtc-streamer
  • 3 项目中引入js文件
  • 4 vue视频流组件

Vue本身不能直接播放RTSP视频流,因为浏览器不支持直接播放RTSP格式的视频流。为了在Vue项目中播放RTSP视频流,通常需要使用一些转码工具或服务器将RTSP流转码为浏览器支持的格式,如HLSFLV,然后再通过相应的播放器进行播放。

我是用的是vue+webrtc-streamer播放rtsp视频流

1 webrtc-streamer作用是什么

WebRTC (Web Real-Time Communications) 是一项实时通讯技术,它允许网络应用或者站点,在不借助中间媒介的情况下,建立浏览器之间点对点(Peer-to-Peer)的连接,实现视频流和(或)音频流或者其他任意数据的传输。WebRTC 包含的这些标准使用户在无需安装任何插件或者第三方的软件的情况下,创建点对点(Peer-to-Peer)的数据分享和电话会议成为可能。

简单的说:WebRTC 是一种 HTML5规范,他无需在浏览器中安装任何插件可以在网页内进行实时通信工作的开源技术,它直接在浏览器和设备之间添加实时媒体通信。

webrtc-streamer是一个使用简单机制通过 WebRTC 流式传输视频捕获设备和 RTSP 源的项目,它内置了一个小型的 HTTP server 来对 WebRTC需要的相关接口提供支持。

2 安装webrtc-streamer

https://github.com/mpromonet/webrtc-streamer/releases

windows的下这个即可

在这里插入图片描述

下载好的安装包解压,双击根目录下的webrtc-streamer.exe启动
在这里插入图片描述

检查是否启动成功,在浏览器输入http://127.0.0.1:8000/,如果有显示自己的桌面,则启动成功。

由于 webrtc 的核心库还不支持H265的视频编码,所以要配置设备视频编码方式为H264

3 项目中引入js文件

下载好的安装包解压,进入html文件夹,将webrtcstreamer.jslibs文件夹下的adapter.min.js复制到vue项目。也可放在静态资源static目录下。

4 vue视频流组件

<template>
    <div class="home">
        <video id="video" autoplay width="600" height="400"></video>
    </div>
</template>
<script>
import "./js/webrtcstreamer.js" //此处两个js也可全局引用
import "./js/adapter.min.js"
export default {
    name: "HomeView",
    data() {
        return {
            webRtcServer: null,
            webRtcServer1: null
        };
    },
    mounted() {
    },
    methods: {
        playVideo() {
            this.webRtcServer = new WebRtcStreamer(
                "video",
                'http://192.168.8.1:8000'//本机ip+端口8000
            );

            this.webRtcServer.connect(
                "rtsp://10.100.175.201:32017/live/0/xxxxxxxxxxxxxxxxxxx"//这是填自己的rtsp流
            );
        }

    },
    beforeDestroy() {
        this.webRtcServer.disconnect();
        this.webRtcServer = null;
    }
};
</script>

http://www.kler.cn/news/364475.html

相关文章:

  • 反向代理服务器---NGINX
  • 如何训练 RAG 模型
  • STM32之OLED驱动函数
  • Android Room(SQLite) too many SQL variables异常
  • 如何使用Golang的gomail库实现邮件发送功能
  • Windows 11优化利器:全方位定制你的操作系统
  • 使用 Pake 一键打包网页为桌面应用 / 客户端
  • 预算不够,怎么跟KOL砍价?(内附砍价模板)
  • 头部聚合公司源码质量测评!手把手教你打造高质量的碰一碰支付系统!
  • 设计模式 | 6大设计原则
  • NOTION 推出可定制的电子邮件产品 — NOTION MAIL
  • 15_卸载操作
  • pytorch 交叉熵损失函数 BCELoss
  • Java 代理模式详解
  • 003:无人机概述
  • 使用RabbitMQ实现延迟消息的完整指南
  • 瓜田推广:揭秘零撸项目里流量变现的技术与模式框架,新手必看!
  • EDA软件设计(1)----画板、侧边框和属性版的简易设计
  • 多模态技术串讲
  • CSDN介绍
  • Flink on yarn模式下,JobManager异常退出问题
  • 百度文心一言接入流程-java版
  • 前端全栈混合之路Deno篇:Deno2.0如何快速创建http一个 restfulapi/静态文件托管应用及oak框架介绍
  • 循环双链表,将L改造为L=(a1,a3,…,an,a4,a2)
  • 【Linux】实现一个简易的shell命令行
  • Vue3+ts+vite自动导入vue的依赖