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

Docker部署WebRTC-Streamer

文章目录
  • WebRTC-Streamer概述
  • Docker部署WebRTC-Streamer
  • Vue使用WebRTC-Streamer
  • 一些问题

WebRTC-Streamer概述

WebRTC-Streamer是一个基于WebRTC技术的流媒体传输工具,它可以通过Web浏览器实现实时音视频流的传输和播放。它提供了一种简单而强大的方式,允许用户在不需要插件或额外软件的情况下进行实时通信和流媒体传输。

WebRTC-Streamer的主要功能包括:

  1. 实时音视频传输:使用WebRTC技术,可以在浏览器中通过实时传输音频和视频流来进行实时通信,比如语音通话、视频聊天等。
  2. 网络摄像头和麦克风支持:支持从用户计算机上的摄像头和麦克风捕获音视频流,并将其传输到目标设备。
  3. 流媒体播放:可以接收和播放通过WebRTC传输的音视频流,让用户可以在浏览器中实时查看和听取流媒体内容。
  4. 简单易用的API:提供了一套简单易用的API,让开发者能够方便地集成WebRTC-Streamer到自己的Web应用程序中。

WebRTC-Streamer可以在不同平台和设备上运行,只要浏览器支持WebRTC技术即可。它是一个开源项目,你可以在GitHub上找到它的源代码和更多的信息。如果你有特定的问题或需求,欢迎进一步提问。

Docker部署WebRTC-Streamer

  1. 安装Docker

  2. 拉取WebRTC-Streamer镜像

    sudo docker pull mpromonet/webrtc-streamer

  3. 创建容器

    docker run -p 8000:8000 --name webrtc-streamer -it mpromonet/webrtc-streamer

  • -p 8000:8000 是指定端口映射,将容器内部的 8000 端口映射到主机的 8000 端口,这样你就可以通过主机的 8000 端口访问 WebRTC-Streamer。
  • --name webrtc-streamer 是为容器指定一个名称,方便后续管理和操作。
  • -it 是以交互模式运行容器,可以通过终端进行交互。
  • mpromonet/webrtc-streamer 是容器镜像的名称。这个镜像是从 Docker Hub 上获取的,它包含了 WebRTC-Streamer 的运行环境和配置。
  1. 使用浏览器访问 http://localhost:8000/(本机)或者<服务器ip>:8000

网页效果

Vue使用WebRTC-Streamer

首先需要在webrtcstreamer.js文件的最后一行添加:

export default WebRtcStreamer;

Vue代码:

<template><div class="videoDemo shadow" ref="videoDemo"><video id="video" style="width: 100%;height: calc(100% - 50px);" autoplay loop controls></video></div>
</template><script setup lang="ts">import { onMounted, onUnmounted, ref } from 'vue'import WebRtcStreamer from '../../utils/webrtcstreamer.js'var webRtcServer : any = null;onMounted(() => {//连接后端的IP地址和端口webRtcServer = new WebRtcStreamer("video", "http://192.168.0.105:8000");//向后端发送rtsp地址     // webRtcServer.connect("rtsp://admin:a12345678@192.168.0.101:554/Streaming/Channels/101");webRtcServer.connect("rtsp://admin:a12345678@192.168.0.104:554/Streaming/Channels/101");})onUnmounted(() => {webRtcServer.disconnect();})
</script><style>.videoDemo {font-size: 50px;width: 100%;height: 100%;text-align: center;background-color: white;;/* margin: 5px; */border-radius: 10px;overflow: hidden;}
</style>

onMounted()函数会在组件挂载到DOM树上后立即被调用,可以用来执行一些需要在组件挂载后才能进行的操作,例如获取数据、初始化一些变量、注册事件等。onMounted函数是一个异步函数,因此可以使用async/await语法或者返回一个Promise对象。

在组件挂载后连接获取视频流,并在video标签中显示。

onUnmounted()函数会在组件从DOM树上卸载之前调用,可以用来执行一些清理操作,例如取消事件监听器、清除定时器等。与onMounted函数一样,onUnmounted函数也是一个异步函数,可以使用async/await语法或者返回一个Promise对象。

在组件卸载前,断开视频流的连接。

http://192.168.0.105:8000是WebRTC-Streamer部署的地址,rtsp://admin:a12345678@192.168.0.104:554/Streaming/Channels/101 是摄像头的地址。

一些问题

  1. 外部主机无法无法使用WebRTC-Streamer

使用下面的语句创建容器:

docker run -d --network=host --name webrtc-streamer mpromonet/webrtc-streamer

--network=host:将容器加入主机网络中,使容器内部的端口与主机端口一致。(注:使用-p暴露端口会出现问题,外部主机无法使用WebRTC-Streamer)

  1. 访问端口无法打开网页,8000端口也没有占用

不知道什么问题,重装Docker解决了问题。

相关文章:

Docker部署WebRTC-Streamer

文章目录 WebRTC-Streamer概述Docker部署WebRTC-StreamerVue使用WebRTC-Streamer一些问题 WebRTC-Streamer概述 WebRTC-Streamer是一个基于WebRTC技术的流媒体传输工具&#xff0c;它可以通过Web浏览器实现实时音视频流的传输和播放。它提供了一种简单而强大的方式&#xff…...

2025年的大模型计划重点在于跨领域智能、工作流自动化、多模态能力强化

明年的计划和大模型发展方向可以围绕以下几个方面展开&#xff0c;结合实际应用场景和技术趋势&#xff0c;明确可执行的目标和期待的成果&#xff1a; 2025 年计划与展望&#xff1a;大模型能做些什么&#xff1f; 1. 更深层次的跨领域能力融合 目标&#xff1a;构建更强的跨…...

day12 接口测试 ——入门→精通→实战(1)

【没有所谓的运气&#x1f36c;&#xff0c;只有绝对的努力✊】 目录 1、接口测试分类 1.1 内部接口&#xff1a; 1.2 外部接口&#xff1a; 2、目前接口架构设计 2.1、基于SOAP架构&#xff0c; 2.2、基于RPC架构&#xff0c; 2.3、基于RestFul架构&#xff0c; 2.3.1…...

伏羲0.07(文生图)

为了使0.06代码能够有效运行并输出项目目录及所有文件&#xff0c;我们在代码中添加一些额外的功能。 项目目录结构 项目目录结构如下&#xff1a; text_to_image_project/ │ ├── config.yaml ├── data/ │ ├── train_data.csv │ └── test_data.txt ├── mod…...

scala的泛型特质的应用场景

//泛型特质的应用场景 //作比较找出最大值 //定义一个函数&#xff0c;用来求List元素中的最大值参考代码&#xff1a;object Test4 {def getMax[T](list:List[T])(implicit ev:T > Ordered[T]): T {list.reduce((a:T,b:T)> if(a>b) a else b)}def main(args: Array…...

Win10环境vscode+latex+中文快速配置

安装vscodelatex workshop 配置&#xff1a; {"liveServer.settings.donotVerifyTags": true,"liveServer.settings.donotShowInfoMsg": true,"explorer.confirmDelete": false,"files.autoSave": "afterDelay","exp…...

【vue2】el-select,虚拟滚动(vue-virtual-scroller)

需求背景​​​​​​ vue2+element-ui项目中,当el-select中数据量较大时(超出5000个dom节点),会导致页面加载和渲染卡顿、el-select下拉列表延迟展开。 在现在的el-select的基础上使用分页或者虚拟列表的形式去处理大量的下拉菜单,可以保证页面的正常渲染及el-select的…...

【ETCD】[源码阅读]深度解析 EtcdServer 的 processInternalRaftRequestOnce 方法

在分布式系统中&#xff0c;etcd 的一致性与高效性得益于其强大的 Raft 协议模块。而 processInternalRaftRequestOnce 是 etcd 服务器处理内部 Raft 请求的核心方法之一。本文将从源码角度解析这个方法的逻辑流程&#xff0c;帮助读者更好地理解 etcd 的内部实现。 方法源码 …...

【RabbitMQ】RabbitMQ中核心概念交换机(Exchange)、队列(Queue)和路由键(Routing Key)等详细介绍

博主介绍&#xff1a;✌全网粉丝21W&#xff0c;CSDN博客专家、Java领域优质创作者&#xff0c;掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域✌ 技术范围&#xff1a;SpringBoot、SpringCloud、Vue、SSM、HTML、Nodejs、Python、MySQL、PostgreSQL、大数据、物…...

【AI知识】过拟合、欠拟合和正则化

一句话总结&#xff1a; 过拟合和欠拟合是机器学习中的两个相对的概念&#xff0c;正则化是用于解决过拟合的方法。 1. 欠拟合&#xff1a; 指模型在训练数据上表现不佳&#xff0c;不能充分捕捉数据的潜在规律&#xff0c;导致在训练集和测试集上的误差都很高。欠拟合意味着模…...

计算机毕设-基于springboot的航空散货调度系统的设计与实现(附源码+lw+ppt+开题报告)

博主介绍&#xff1a;✌多个项目实战经验、多个大型网购商城开发经验、在某机构指导学员上千名、专注于本行业领域✌ 技术范围&#xff1a;Java实战项目、Python实战项目、微信小程序/安卓实战项目、爬虫大数据实战项目、Nodejs实战项目、PHP实战项目、.NET实战项目、Golang实战…...

视图、转发与重定向、静态资源处理

目录 视图 默认视图 视图机制原理 自定义视图 请求转发与重定向 静态资源处理 视图 每个视图解析器都实现了 Ordered 接口并开放出一个 order 属性 可以通过 order 属性指定解析器的优先顺序&#xff0c;order 越小优先级越高 默认是最低优先级&#xff0c;Integer.MAX_…...

优选算法——分治(快排)

1. 颜色分类 题目链接&#xff1a;75. 颜色分类 - 力扣&#xff08;LeetCode&#xff09; 题目展示&#xff1a; 题目分析&#xff1a;本题其实就要将数组最终分成3块儿&#xff0c;这也是后面快排的优化思路&#xff0c;具体大家来看下图。 这里我们上来先定义了3个指针&…...

【Linux系统】文件系统

Windows 和 Linux 的文件系统&#xff1a; windows:NTFS —> NTFS&#xff1a;磁盘大于目录&#xff1a;目录是磁盘的一部分。ubuntu :EXT4 —> EXT4: 目录大于磁盘&#xff1a;磁盘是目录的一部分。 Windows文件系统的特点 基于分区的文件系统&#xff1a; Windows…...

javaweb的基础

文章的简介&#xff1a; 页面的展示&#xff08;HTML&#xff09;页面的修改、绑定、弹窗(js的dom、bom等)页面的请求(Ajax) 1、在HTML中用标签和css样式实现了浏览器页面。 2、用JS实现页面内容&#xff08;图片&#xff0c;复选框、文本颜色内容&#xff09;的修改和弹框&…...

家里养几条金鱼比较好?

金鱼&#xff0c;作为备受喜爱的家庭水族宠物&#xff0c;其饲养数量一直是众多养鱼爱好者关注的焦点。究竟养几条金鱼最为适宜&#xff0c;实则需要综合考量多方面因素&#xff0c;方能达到美观、健康与和谐的理想养鱼境界。 从风水文化的视角来看&#xff0c;金鱼数量有着诸…...

写作词汇积累:差池、一体两面、切实可行极简理解

差池 【差池】可以是名词&#xff0c;是指意外的事或错误。 【差池】也可以是形容词&#xff0c;是指参差不齐、差劲或不行。 1. 由于操作不当&#xff0c;导致这次实验出现了【差池】&#xff0c;我们需要重新分析原因并调整方案。&#xff08;名词&#xff0c;表示意外的事…...

移远EC200A-CN的OPENCPU使用GO开发嵌入式程序TBOX

演示地址&#xff1a; http://134.175.123.194:8811 admin admin 演示视频&#xff1a; https://www.bilibili.com/video/BV196q2YQEDP 主要功能 WatchDog 1. 守护进程 2. OTA远程升级 TBOX 1. 数据采集、数据可视化、数据上报&#xff08;内置Modbus TCP/RTU/ASCII,GPS协…...

LEED绿色建筑认证最新消息

关于LEED绿色建筑认证的最新消息&#xff0c;可以从以下几个方面进行概述&#xff1a; 一、认证体系更新与发展 LEED认证体系不断更新和完善&#xff0c;以更好地适应全球绿色建筑的发展趋势。例如&#xff0c;LEED v4能源更新已通过投票&#xff0c;并于2024年3月1日全面启用…...

SpringBoot中集成常见邮箱中容易出现的问题

本来也没打算想写得。不过也是遇到一些坑&#xff0c;就记录一下吧&#xff0c;也折腾了小半天 1.maven配置 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-mail</artifactId></dependency>2…...

Flask RESTful 示例

目录 1. 环境准备2. 安装依赖3. 修改main.py4. 运行应用5. API使用示例获取所有任务获取单个任务创建新任务更新任务删除任务 中文乱码问题&#xff1a; 下面创建一个简单的Flask RESTful API示例。首先&#xff0c;我们需要创建环境&#xff0c;安装必要的依赖&#xff0c;然后…...

React Native 开发环境搭建(全平台详解)

React Native 开发环境搭建&#xff08;全平台详解&#xff09; 在开始使用 React Native 开发移动应用之前&#xff0c;正确设置开发环境是至关重要的一步。本文将为你提供一份全面的指南&#xff0c;涵盖 macOS 和 Windows 平台的配置步骤&#xff0c;如何在 Android 和 iOS…...

【SpringBoot】100、SpringBoot中使用自定义注解+AOP实现参数自动解密

在实际项目中,用户注册、登录、修改密码等操作,都涉及到参数传输安全问题。所以我们需要在前端对账户、密码等敏感信息加密传输,在后端接收到数据后能自动解密。 1、引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId...

【Redis技术进阶之路】「原理分析系列开篇」分析客户端和服务端网络诵信交互实现(服务端执行命令请求的过程 - 初始化服务器)

服务端执行命令请求的过程 【专栏简介】【技术大纲】【专栏目标】【目标人群】1. Redis爱好者与社区成员2. 后端开发和系统架构师3. 计算机专业的本科生及研究生 初始化服务器1. 初始化服务器状态结构初始化RedisServer变量 2. 加载相关系统配置和用户配置参数定制化配置参数案…...

ardupilot 开发环境eclipse 中import 缺少C++

目录 文章目录 目录摘要1.修复过程摘要 本节主要解决ardupilot 开发环境eclipse 中import 缺少C++,无法导入ardupilot代码,会引起查看不方便的问题。如下图所示 1.修复过程 0.安装ubuntu 软件中自带的eclipse 1.打开eclipse—Help—install new software 2.在 Work with中…...

(转)什么是DockerCompose?它有什么作用?

一、什么是DockerCompose? DockerCompose可以基于Compose文件帮我们快速的部署分布式应用&#xff0c;而无需手动一个个创建和运行容器。 Compose文件是一个文本文件&#xff0c;通过指令定义集群中的每个容器如何运行。 DockerCompose就是把DockerFile转换成指令去运行。 …...

Android Bitmap治理全解析:从加载优化到泄漏防控的全生命周期管理

引言 Bitmap&#xff08;位图&#xff09;是Android应用内存占用的“头号杀手”。一张1080P&#xff08;1920x1080&#xff09;的图片以ARGB_8888格式加载时&#xff0c;内存占用高达8MB&#xff08;192010804字节&#xff09;。据统计&#xff0c;超过60%的应用OOM崩溃与Bitm…...

【7色560页】职场可视化逻辑图高级数据分析PPT模版

7种色调职场工作汇报PPT&#xff0c;橙蓝、黑红、红蓝、蓝橙灰、浅蓝、浅绿、深蓝七种色调模版 【7色560页】职场可视化逻辑图高级数据分析PPT模版&#xff1a;职场可视化逻辑图分析PPT模版https://pan.quark.cn/s/78aeabbd92d1...

推荐 github 项目:GeminiImageApp(图片生成方向,可以做一定的素材)

推荐 github 项目:GeminiImageApp(图片生成方向&#xff0c;可以做一定的素材) 这个项目能干嘛? 使用 gemini 2.0 的 api 和 google 其他的 api 来做衍生处理 简化和优化了文生图和图生图的行为(我的最主要) 并且有一些目标检测和切割(我用不到) 视频和 imagefx 因为没 a…...

WebRTC从入门到实践 - 零基础教程

WebRTC从入门到实践 - 零基础教程 目录 WebRTC简介 基础概念 工作原理 开发环境搭建 基础实践 三个实战案例 常见问题解答 1. WebRTC简介 1.1 什么是WebRTC&#xff1f; WebRTC&#xff08;Web Real-Time Communication&#xff09;是一个支持网页浏览器进行实时语音…...