vue项目中播放rtsp视频流

一、下载webrtc-streamer

下载地址:https://github.com/mpromonet/webrtc-streamer/releases

根据设备型号下载对应的版本到本地直接解压就行,我下载的是webrtc-streamer-v0.8.6-dirty-Windows-AMD64-Release.tar版本。

双击webrtc-streamer.exe可执行文件后在浏览器访问http://127.0.0.1:8000,可以看到自己电脑正在操作的内容。

二、vue项目中使用

1、将/html/libs目录下的adapter.min.js和/html目录下面的webrtcstreamer.js文件分别拷贝到vue项目中,并在index.html文件全局引入。
2、自定义组件videoPlayer.vue,在需要播放视频的页面引入使用。文件代码如下:

javascript 复制代码
<template>
    <video ref="video" autoplay controls muted width="100%" height="100%" style="object-fit: fill;"></video>
</template>

<script>
    import Setting from "@/setting";
    export default {
        props: {
            videoSrc: {
                type: String,
                default: '',
            }
        },
        data () {
            return {
                webRtcServer: null
            }
        },
        watch: {
            videoSrc () {
                this.initData();
            }
        },
        mounted () {
        	// 分别对应开发环境、生产环境视频流转码服务的地址
            let srvUrl = process.env.NODE_ENV === 'development' ? 'http://127.0.0.1:8000' : 'http://127.0.0.1:8000';
            this.webRtcServer = new WebRtcStreamer(this.$refs.video, srvUrl);
            this.videoSrc && this.initData();
        },
        methods: {
            initData () {
                this.webRtcServer.connect(this.videoSrc || '');
            }
        },
        beforeDestroy () {
            this.webRtcServer.disconnect();
            this.webRtcServer = null;
        }
    }
</script>

注:style="object-fit: fill; 设置视频内容撑满整个video标签

3、页面使用

javascript 复制代码
<template>
    <div>
        <videoPlayer :videoSrc="videoSrc" />
    </div>
</template>

<script>
    import videoPlayer from '@/components/videoPlayer.vue';
    export default {
        components: { videoPlayer },
        data () {
            return {
                videoSrc: 'rtsp://rtspstream:14277f5...',
            }
        },
    }
</script>

总结:功能实现需要建立在有一个第三方转流服务的基础上,本地开发的时候可以在双击运行webrtc-streamer.exe可执行文件后使用http://127.0.0.1:8000服务,打包发布到线上的时候可以让后台在服务器上安装webrtc-streamer并提供真实的地址,操作类似。

ps:一开始搜到的很多是用的浏览器插件播放的,例如vlc插件,但是那些只针对很老的版本的浏览器,现在的浏览器基本都不支持这些插件了。本来还嫌麻烦想着能不能不依赖第三方服务自己实现播放的,为此还研究纠结了很久也没啥结果,最后选择了这种感觉用着也挺方便的,算了不纠结了就这样吧。

相关推荐
jinanwuhuaguo1 分钟前
(第二十九篇)OpenClaw 实时与具身的跃迁——从异步孤岛到数字世界的“原住民”
前端·网络·人工智能·重构·openclaw
广州华水科技7 分钟前
深度测评2026年单北斗GNSS位移监测系统推荐,与高口碑变形监测设备一同引领行业新风尚
前端
Alice-YUE1 小时前
【js高频八股】防抖与节流
开发语言·前端·javascript·笔记·学习·ecmascript
是上好佳佳佳呀2 小时前
【前端(十一)】JavaScript 语法基础笔记(多语言对比)
前端·javascript·笔记
莎士比亚的文学花园2 小时前
Linux驱动开发(3)——设备树
开发语言·javascript·ecmascript
CDN3603 小时前
排查实录:网站偶发502/504错误?360CDN回源超时配置与日志分析技巧
前端·数据库
之歆3 小时前
Day07_CSS盒子模型 · 样式继承 · 用户代理样式
前端·css
01漫游者3 小时前
JavaScript函数与对象增强知识
开发语言·javascript·ecmascript
DanCheOo3 小时前
AI 应用的安全架构:Prompt 注入、数据泄露、权限边界
前端·人工智能·prompt·安全架构
We་ct4 小时前
深度剖析浏览器跨域问题
开发语言·前端·浏览器·跨域·cors·同源·浏览器跨域