VUE3+TS+VITE+webrtc-streamer实现实时视频播放(监控设备-rtsp,进来保你成)

这篇具有很好参考价值的文章主要介绍了VUE3+TS+VITE+webrtc-streamer实现实时视频播放(监控设备-rtsp,进来保你成)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

1、下载webrtc-streamer,下载最新window版本

 2、解压下载包

 3、双击webrtc-streamer.exe启动服务

 4、引入webrtc-streamer

        1、将下载包中html文件夹下webrtcstreamer.js文件和html/libs文件夹下adapter.min.js文件复制到VUE项目public目录下

2、在index.html文件里引入这两个js文件

5、使用ffmpeg推rtsp流到流媒体服务器

6、编写测试页面 

7、问题与解决方案

1、直接在ts中import webstream.js文件

2、出现 SyntaxError: Unexpected token '<', ""


1、下载webrtc-streamer

        webrtc-streamer下载地址

vue实现视频监控,vue.js,webrtc,音视频

 2、解压下载包

 3、双击webrtc-streamer.exe启动服务

vue实现视频监控,vue.js,webrtc,音视频

        双击启动服务,此时在浏览器访问127.0.0.1:8000可以看到本机监控画面。注意:由于mediamtx会占用8000端口,所有我们需要在上图所在的目录使用cmd执行如下的代码

# 设置webrtc监听的端口为 9000 带上-o参数,表示不转码以降低资源消耗(我没加)
webrtc-streamer.exe -H 127.0.0.1:9000

vue实现视频监控,vue.js,webrtc,音视频

vue实现视频监控,vue.js,webrtc,音视频

4、引入webrtc-streamer

       1、将下载包中html文件夹下webrtcstreamer.js文件和html/libs文件夹下adapter.min.js文件复制到VUE项目public目录

vue实现视频监控,vue.js,webrtc,音视频

        2、在index.html文件里引入这两个js文件

注意:路径直接使用`/` + `文件名`如下图

vue实现视频监控,vue.js,webrtc,音视频

5、使用ffmpeg推rtsp流到流媒体服务器

        因为目前没有在项目现场,无法接入摄像头,所以我是使用mediamtx(流媒体服务器开源项目)启动一个流媒体服务器,使用ffmpeg推流到该流媒体服务器。

        ffmpeg安装教程

        mediamtx下载地址(解压压缩包,点击运行就可以使用)

vue实现视频监控,vue.js,webrtc,音视频

解压后的文件 

vue实现视频监控,vue.js,webrtc,音视频

双击启动后的结果 

vue实现视频监控,vue.js,webrtc,音视频

        此时我们先不要推流,如果先推流前端可能会接收不到,此时webrtc服务已经在9000端口启动,我们将流媒体服务器点击启动起来。接下来我们编写vue3代码来使用webrtc拉取rtsp流并转码为web网页能够使用的流格式。

6、编写测试页面 

注意:在本机启动服务所以 new WebRtcStreamer(id,serverUrl)中URL传入127.0.0.1,端口9000;各监控设备厂商有自己的RTSP地址格式connect要传入正确的rtsp地址,一定要注意下面加了一个location.protocol,代码能运行,如果出现了错误,一定查看是否和我的代码相同.

<template>
  <h1>video</h1>
  <video id="video" autoplay width="1050" height="1050"></video>
</template>

<script setup>
import { ref } from 'vue';
import { computed } from 'vue';
import { nextTick } from 'vue';

const webRtcServer = ref();
const initWebRtcServer = async () => {
    nextTick(() => {
        // video:需要绑定的video控件ID
        //127.0.0.1:8000:启动webrtc-streamer的设备IP和端口,默认8000
        // webRtcServer.value = new WebRtcStreamer('video', location.protocol + '//192.168.10.26:8000')
        webRtcServer.value = new WebRtcStreamer('video', location.protocol + '//127.0.0.1:9000')
        //需要查看的rtsp地址
        // webRtcServer.value.connect('rtsp://admin:a12345678@192.168.3.11:554/Streaming/Channels/101')
        webRtcServer.value.connect('rtsp://veteran:qc010419qc@127.0.0.1:8554/stream')
    })
}
//页面销毁时销毁webRtc
const webRtcServerDis = computed(() => {
    webRtcServer.value.disconnect()
    webRtcServer.value = null
})
initWebRtcServer();
</script>

<style scoped>
</style>

此时启动vue3项目,当vue3启动后,我们可以在mediamtx与webrtc两个控制台看到如下的界面,此时表明vue3项目启动成功,下面我们开始推流。

vue实现视频监控,vue.js,webrtc,音视频
6、运行项目可查看监控视频播放效果

       执行推流命令

# 循环推流到127.0.0.1的8554端口,注意后面还有一个stream目录 
ffmpeg -re -stream_loop -1 -i 1.mp4 -c copy -rtsp_transport tcp -f rtsp rtsp://127.0.0.1:8554/stream

推流后如果显示不出来,可以尝试在mediamtx或者webrtc两个控制台使用ctrl+c去结束可能的组设的进程,正常情况下,webrtc中会打印非常多no frame,但此时是能够播放的。

vue实现视频监控,vue.js,webrtc,音视频

        以上为本机测试webrtc-streamer实现实时视频播放效果的全过程,后续还要验证服务器运行服务、局域网公网访问以及性能等。

7、问题与解决方案

1、直接在ts中import webstream.js文件

        这个方法完全就错误了,会报下面错误

App.vue:10  Uncaught SyntaxError: The requested module '/public/webrtcstreamer.js' does not provide an export named 'default' (at App.vue:10:8)

vue实现视频监控,vue.js,webrtc,音视频

        vue3项目使用的ts,import xx 的方式适用于引用其他ts的文件中的函数,js文件的编码格式中写得函数不能通过这种方法来让vue3使用

2、出现 SyntaxError: Unexpected token '<', "<!DOCTYPE "... is not valid JSON

vue实现视频监控,vue.js,webrtc,音视频

遇到这个错误,针对Unexpected token '<', "<!DOCTYPE "... is not valid JSON关键句查询很久,发现得到的答案与我的情况并不相符,然后觉得可能是编码出错了,后来仔细看代码,确实是下图中的代码出错了,没有指明请求的协议以及ip地址前面没加 `//`

vue实现视频监控,vue.js,webrtc,音视频文章来源地址https://www.toymoban.com/news/detail-753121.html

到了这里,关于VUE3+TS+VITE+webrtc-streamer实现实时视频播放(监控设备-rtsp,进来保你成)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • webrtc 网络的一些坑(webrtc-streamer)

    1、使用VPN网络经常打不开视频。 webrtc网络是边收集网络环境信息,边交换。先收集到的是内网信息,然后是公网信息。如果在还未收集到公网信息的情况下,只拉取到内网信息。则在深信服的VPN环境下,webrtc-streamer服务器无法发送数据包到本地。 从接口/api/getIceCandidate的返

    2023年04月09日
    浏览(11)
  • Docker WebRTC容器部署方案(mpromonet/webrtc-streamer)

    Docker WebRTC容器部署方案(mpromonet/webrtc-streamer)

    WebRTC(Web Real-Time Communication)是一种开放的实时通信技术,它允许浏览器之间进行音频、视频和数据的实时传输。WebRTC的目标是通过简化实时通信的开发过程,使开发者能够轻松地在Web应用程序中集成实时通信功能。 WebRTC的核心技术包括三个主要组件: 媒体捕获和处理:W

    2024年02月13日
    浏览(10)
  • 史上最详细的webrtc-streamer访问摄像机视频流教程

    史上最详细的webrtc-streamer访问摄像机视频流教程

    目录 前言 一、webrtc-streamer的API 二、webrtc-streamer的启动命令介绍 1.原文 2.译文  三、webrtc-streamer的安装部署 1.下载地址     https://github.com/mpromonet/webrtc-streamer/releases 2.windows版本部署 3.Linux版本部署 四、springboot整合webrtc-streamer 五、公网使用webrtc-streamer访问相机视频 最近公司

    2023年04月22日
    浏览(10)
  • ubuntu 20.04 使用 webrtc-streamer自动退出,报错GLIBC 问题解决方法

    ubuntu 20.04 使用 webrtc-streamer自动退出,报错GLIBC 问题解决方法

    前端vue2 项目需要播放海康的视频流,本地启动起来了,现在需要的服务器上部署,服务器是Ubuntu 20.04,下面是部署时遇到的问题及解决方法,总耗时2天。 不知道怎么在Ubuntu中部署前端项目的可以去看我之前几篇文章。 【vue2】前端如何播放rtsp 视频流,拿到rtsp视频流地址如

    2024年01月24日
    浏览(39)
  • Vue3+Vite+TS项目集成ESlint +Prettier实现代码规范检查和代码格式化

    Vue3+Vite+TS项目集成ESlint +Prettier实现代码规范检查和代码格式化

    我在这里直接是通过vite提供的默认模板来创建一个vue3 + ts的项目。这里可以cmd,然后npm -v来查看版本。 这样一个vue3 + ts的项目就创建好了,使用vscode打开该项目,然后执行 yarn 安装依赖 依赖安装完成后,执行   yarn dev  启动项目就可以在浏览器中正常访问了。   初始化

    2024年01月24日
    浏览(15)
  • vue3 vite ts引入vue文件报错 ts(2307)

    vue3 vite ts引入vue文件报错 ts(2307)

    vue3 vite ts 生成的项目模板,在ts文件中引入vue文件报错 ts(2307),只是ts报错,并不影响项目运行。 官方文档有说明:http://vue.dragonlm.com/guide/typescript/overview.html#ide-support 解决方法是安装插件,之后即可正常解析路径,并可以跳转到对应文件。 TypeScript Vue Plugin (Volar)

    2024年02月16日
    浏览(40)
  • Vue3动态路由(Vite+Vue3+TS+Mock)

    Vue3动态路由(Vite+Vue3+TS+Mock)

    Vue通过路由进行页面管理,不同的路由绑定到不同的页面。一般来说,前端直接写好的路由为静态路由,在不修改代码的情况下,路由表是不会改变的。对于不需要动态改变路由表的网站,静态路由就已经足够了,但是当页面需要与权限进行绑定时,不同用户允许浏览的页面

    2024年02月02日
    浏览(13)
  • 3d环形图开发(vue3+vite+ts)

    3d环形图开发(vue3+vite+ts)

    开发效果(待完善):   技术支持: Echarts  echarts-gl 安装: 注:echarts与echarts-gl版本需对应,可参考官网 pnpm add echarts@4.9.0 echarts-gl@1.1.2  组件封装:

    2024年02月07日
    浏览(10)
  • vue3+vite+ts+elementplus创建项目

    # vue3+vite+ts+pinia 学习笔记 ## 1、创建项目: npm init vite@latest     选择: vue、ts ## 2、进入项目目录后:npm install 安装 ## 3、运行项目: npm run dev ## 4、安装常用插件:     1、安装 npm install vue-router@latest 配置:在src目录下新建router目录,创建index.ts文件代码如下:       ```javascript 创建

    2024年02月09日
    浏览(10)
  • 【Vue3+Ts+Vite】配置滚动条样式

    【Vue3+Ts+Vite】配置滚动条样式

    2024年02月15日
    浏览(11)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包