一对一视频通话软件Call-Me

在这里插入图片描述

什么是 Call-Me ?

Call-Me 使你能够直接通过网页浏览器使用 WebRTC 技术轻松进行一对一的视频通话。

Call-Me 的主要功能:

  • 使用用户名登录。
  • 通过输入接收者的用户名进行视频通话。
  • 切换视频源的可见性。
  • 通话结束时挂断电话。
  • 提供 REST API 获取所有连接的用户。

准备

出于安全考虑,浏览器要使用摄像头和麦克风,须要在 https 协议才能开启,或者处于开发模式,使用 localhost 访问

因此有两个方案:

  • 方案一:采用惯例,用 npm 反代 http://群晖IP:8582,实现用域名 https://vchat.laosu.tech 的访问 ;
  • 方案二:直接使用 https://群晖IP:8582。这种方案同样也可以用 npm 反代,从而实现可以同时使用 IP 或域名访问;

环境变量

将下面的内容保存为 env.txt 文件

# Server
SSL=true
DOMAIN=vchat.laosu.tech
PORT=8582# Stun
STUN_SERVER_ENABLED=true # true or false
STUN_SERVER_URL=stun:stun.l.google.com:19302# Turn
# Please create your own free account on: https://www.metered.ca/tools/openrelay/TURN_SERVER_ENABLED=false # true or false
TURN_SERVER_URL=turn:a.relay.metered.ca:443
TURN_SERVER_USERNAME=e8dd65b92c62d3e36cafb807
TURN_SERVER_CREDENTIAL=uWdWNmkhvyqTEswO# API
API_KEY_SECRET=W@4TG9JXixLtYGu!vCAvSjsL
  • SSL :老苏采用了方案二,因此设为 true
  • DOMAIN:主机 IP 或者域名;
  • PORTWeb UI 的端口;
  • API_KEY_SECRET:是用于 API 身份验证和安全性的重要组成部分,可以理解为密码;

WebRTC 中,STUNTURN 是两种用于 NAT 穿透的技术,它们帮助在复杂的网络环境中实现点对点通信。

在这里TurnStun 保持默认就可以了。如果只是在局域网中使用,也可以关闭 Stun,这样可以规避可能遇到的服务器访问不到的问题。

反向代理

这一步是非必须的,因为前面设置了 SSL=true,所以用 https://群晖IP:8582 也是可以的;

假设实际访问地址为: https://vchat.laosu.tech

你必须要用自己的域名,而不是照搬老苏的;

域名局域网地址备注
https://vchat.laosu.techhttps://192.168.0.197:8582Call-Me 的访问地址

npm 中的设置

【注意]:因为前面设置了 SSL=true ,所以这里是 https 协议,而不是 http,否则会打不开网页。

SSL 都勾选了

安装

在群晖上以 Docker 方式安装。

在注册表中搜索 mirotalk/cme ,选择第一个 mirotalk/cme,版本选择 latest

本文写作时,镜像只有一个 latest 版本,但从日志看,软件版本为 1.0.10

docker 文件夹中,创建一个新文件夹 callme,将 env.txt 放入根目录

文件装载路径说明
docker/callme/env.txt/src/.env环境变量文件

【注意】:是 添加文件 而不是 添加文件夹

端口

本地端口不冲突就行,不确定的话可以用命令查一下

# 查看端口占用
netstat -tunlp | grep 端口号
本地端口容器端口
85828582

默认没有对外暴露端口,因为这个端口是根据环境变量 PORT 设定的,如果 PORT 变更了,这里也要跟着变

需要点 + 号自行添加

命令行安装

如果你熟悉命令行,可能用 docker cli 更快捷

# 新建文件夹 callme
mkdir -p /volume1/docker/callme# 进入 callme 目录
cd /volume1/docker/callme# 将 env.txt 放入当前目录# 运行容器
docker run -d \--restart unless-stopped \--name callme \--hostname callme \-p 8582:8582 \-v $(pwd)/env.txt:/src/.env:ro \mirotalk/cme:latest

也可以用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件

version: '3'services:callme:image: mirotalk/cme:latestcontainer_name: callmehostname: callmerestart: unless-stoppedports:- '${PORT}:${PORT}'volumes:- ./env.txt:/src/.env:ro

然后执行下面的命令

# 新建文件夹 callme
mkdir -p /volume1/docker/callme# 进入 callme 目录
cd /volume1/docker/callme# 将 env.txt 和 docker-compose.yml 放入当前目录# 一键启动
docker-compose --env-file env.txt up

运行

在浏览器中输入 https://群晖IP:8582 或者 https://vchat.laosu.tech

如果是用 IP ,第一次会有提示

高级

继续前往 进入主界面,而用域名的话,会直接看到主界面

设置一个名字,例如:laosu

第一次会提示权限,必须要点 运行

用域名,第一次也有提示

可以看到用 IP 是不安全的,域名的话就不会

获取到权限后,默认会显示本地视频

三个按钮从左至右依次为

  • Toggle hide me:关闭本地视频
  • Call:发起呼叫
  • Hang up:挂断或者退出

需要在浏览器中登录另一个进程,比如用户名叫 laoli,然后在按钮上方文本框中输入对方的名字 laosu

另一端会有铃声提醒

Yes 就可以愉快的视频了

参考文档

miroslavpejic85/call-me: 🟢 Call-Me: Your Go-To for Instant Video Calls!
地址:https://github.com/miroslavpejic85/call-me

Call-me
地址:https://cme.mirotalk.com/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1541249.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

【d46】【Java】【力扣】234.回文链表

思路 判断是否是回文,需要:一个指针指向头,一个指针指向尾,两个指针一边向中间靠拢,一边判断数值是否相同 对于单链表,不方便获得pre,如果将节点放进 数组/list ,数组/list可以直接…

[Unity Demo]从零开始制作空洞骑士Hollow Knight第七集:制作小骑士完整的冲刺Dash行为

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、制作一个完整的小骑士冲刺Dash行为 1.制作动画以及使用UNITY编辑器编辑2.使用代码实现完整的冲刺行为控制总结 前言 大家又好久不见(虽然就过了…

论文速递!基于PINN的知识+数据融合方法!实现可再生能源电力系统中的TTC高效评估

本期推文将介绍一种结合知识驱动和数据驱动的混合算法在电力系统总传输能力(TTC)评估中的应用,这项研究发表于《IEEE Transactions on Power Systems》期刊,主要解决高比例可再生能源渗透下电力系统中的TTC快速评估问题。 荐读的论…

day21JS-npm中的部分插件使用方法

1. 静态资源目录 静态资源目录就是访问服务器的某些路劲时候,服务器可以吐出一个写好的指定页面。 实现思路: 1、先判断要找的路径是否是文件,如果是文件,就加载发给对方。 2、如果是文件夹,找到这个文件夹所在路径中…

linux----进程地址空间

前言 提示:以下是本篇文章正文内容,下面案例可供参考 一、空间分布 二、栈和堆的特点 (1)栈堆相对而生,堆是向上增长的,栈是向下增长的。 验证:堆是向上增长的 这里我们看到申请的堆&#xff…

springMvc的初始配置

基础文件结构(toWeb插件) 1.导入对应依赖 <?xml version"1.0" encoding"UTF-8"?><project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation"ht…

【软考】循环冗余校验码

目录 1. 说明2. CRC 的代码格式3. 例题3.1 例题1 1. 说明 1.循环冗余校验码(Cyclic Redundancy Check&#xff0c;CRC)广泛应用于数据通信领域和磁介质存储系统中。2.它利用生成多项式为k个数据位产生&#xff0c;r个校验位来进行编码&#xff0c;其编码长度为 kr。3.循环几余…

如何成为信息安全等级测评师?具体有哪些要求?

给大家的福利&#xff0c;点击下方蓝色字 即可免费领取↓↓↓ &#x1f91f; 基于入门网络安全/黑客打造的&#xff1a;&#x1f449;黑客&网络安全入门&进阶学习资源包 文章目录 前言 信息安全等级测评师 定义与作用&#xff1a;证书颁发&#xff1a;能力要求&#x…

【React】(推荐项目)一个用 React 构建的 CRUD 应用程序

推荐项目&#xff1a;CRUD 应用示例 在本篇文章中&#xff0c;我想向大家推荐一个非常实用的项目&#xff1a;CRUD 应用示例。这个项目展示了如何使用现代技术栈创建一个基础的增删改查&#xff08;CRUD&#xff09;应用&#xff0c;非常适合用于学习和实践后端开发技能。 适…

【2024华为杯数学建模研赛赛题已出(A-F题)】

华为杯2024年中国研究生数学建模竞赛A-F题已公布 A题 B题 C题 D题 E题 F题

骨传导耳机怎么选?深扒2024五款热门骨传导耳机!

耳机在我们的日常生活中渐渐变得不可或缺&#xff0c;早晨出门、通勤、工作&#xff0c;甚至睡觉时&#xff0c;它们总是陪伴在侧。尽管我们都知道长期使用耳机会对听力造成一定影响&#xff0c;但骨传导耳机的出现为我们提供了更为安全和卫生的选择。这种耳机的设计使耳朵保持…

其他比较条件

使用BETWEEN条件 可以用BETWEEN范围条件显示基于一个值范围的行。指定的范围包含一个下限和一个上限。 示例&#xff1a;查询employees表&#xff0c;薪水在3000-8000之间的雇员ID、名字与薪水。 select employee_id,last_name,salary from employees where salary between 3…

泛微E9开发 创建自定义浏览框,关联物品管理表【1】

创建自定义浏览框&#xff0c;关联物品管理表【1】 1、自定义浏览框1.1 概念1.2 前端样式 2、创建物品管理表2.1 新建建模表单操作方法2.2 物品管理表 3、创建浏览按钮 1、自定义浏览框 1.1 概念 自定义浏览框可以理解为是建模引擎中的表与表关联的一个桥梁。比如利用建模引擎…

菜鸟也能轻松上手的Java环境配置方法

初学者学习Java这么编程语言&#xff0c;第一个难题往往是Java环境的配置&#xff0c;今天与大家详细地聊一聊&#xff0c;以便大家能独立完成配置方法和过程。 首先&#xff0c;找到“JDK”&#xff0c;点击“archive”&#xff1a; 向下滑&#xff0c;在“previous java rel…

小白src挖掘 | 记某证书站的虚拟仿真实验平台

&#x1f36c; 博主介绍 &#x1f468;‍&#x1f393; 博主介绍&#xff1a;大家好&#xff0c;我是 hacker-routing &#xff0c;很高兴认识大家~ ✨主攻领域&#xff1a;【渗透领域】【应急响应】 【edusrc漏洞挖掘】 【VulnHub靶场复现】【面试分析】 &#x1f389;欢迎关注…

017_FEA_CSG_in_Matlab新的统一有限元分析工作流之2D几何

Matlab新的统一有限元分析工作流 从2023a开始&#xff0c;Matlab提供了一个统一有限元分析工作流&#xff08;UFEAW&#xff0c;unified finite element analysis workflow&#xff09;。 这个新的工作留提供一个统一的接口来求解三类问题&#xff0c;并且可以用同一套数据随…

并查集(上)

并查集简要介绍&#xff1a; 我们先讲并查集的一般使用场景&#xff0c;之后再讲并查集的具体细节以及原理。 并查集的使用一般是如下的场景&#xff1a; 一开始每个元素都拥有自己的集合&#xff0c;在自己的集合里只有这个元素自己。 f i n d ( i ) find(i) find(i)&#…

数据结构之算法复杂度

目录 前言 一、复杂度的概念 二、时间复杂度 三、大O的渐进表示法 四、空间复杂度 五、常见复杂度对比 总结 前言 本文主要讲述数据结构中的算法复杂度 一、复杂度的概念 算法在编写成可执行程序后&#xff0c;运行时需要耗费时间资源和空间(内存)资源。因此衡量一个算法的好坏…

python源代码编译exe 防止反编译的问题

1&#xff09;使用pyinstaller 打包为exe, 记住是版本是5.*&#xff0c;我用的是5.13.2 &#xff0c;不能是6.* 这是第一步。 pyinstaller -F -i d:\whs.ico packer.py -w 2&#xff09;使用pyarmor 再次加密,我使用的版本是8.3.11&#xff0c;不是7.*&#xff0c;这是第二步…

摩托车骑行行为检测系统源码分享

摩托车骑行行为检测检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Comput…