WebRTC音视频通话-WebRTC本地视频通话使用ossrs服务搭建

iOS开发-ossrs服务WebRTC本地视频通话服务搭建

之前开发中使用到了ossrs,这里记录一下ossrs支持的WebRTC本地服务搭建。

一、ossrs是什么?

ossrs是什么呢?
SRS(Simple Realtime Server)是一个简单高效的实时视频服务器,支持RTMP、WebRTC、HLS、HTTP-FLV、SRT等多种实时流媒体协议。

官网地址:https://ossrs.net/lts/zh-cn/

二、为电脑安装cmake

由于电脑未安装cmake,后续会用到cmake,先安装好这个cmake。

通过brew来安装

brew install cmake

执行命令发现了错误

Running brew update --auto-update
fatal: not in a git directory

当我这里使用brew update --auto-update还是报fatal: not in a git directory错误提示。

解决方式

brew -v

看到了两个错误提示:
在这里插入图片描述

我们需要执行

git config --global --add safe.directory /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core

git config --global --add safe.directory /usr/local/Homebrew/Library/Taps/homebrew/homebrew-cask

执行命令后在执行brew -v没有报错了,可以正常安装软件了。

在这里插入图片描述

下一步继续安装cmake

brew install cmake

耐心等待安装结果

结果如图所示
在这里插入图片描述

安装好cmake后,我们继续配置SRS的WebRTC服务。

二、SRS的WebRTC配置

SRS支持WebRTC,可以做会议或视频聊天。

下载源码,推荐用Ubuntu20:

git clone -b develop https://gitee.com/ossrs/srs.git

在这里插入图片描述

编译,注意需要切换到srs/trunk目录:

cd srs/trunk./configure
make

在这里插入图片描述

提示还需要安装
trunk/objs, OS_IS_OSX: YES, OS_IS_X86_64: YES
Please install automake

执行

 brew install automake

结果

To link this version, run:
brew link automake

在执行

brew link automake

成功之后继续执行

./configure
make

耐心等待编译结果

下一步

ifconfig查看ip地址192.168.10.100

我这里使用WebRTC中HTTPS服务

WebRTC using HTTPS
若需要在非本机使用WebRTC,比如SRS运行在远程服务器,在笔记本或者手机上使用WebRTC,则需要开启HTTPS API。

启动服务器:

CANDIDATE="192.168.10.100"
./objs/srs -c conf/https.rtc.conf

Note: 请将IP换成你的SRS的IP地址。

Note: 请将CANDIDATE设置为服务器的外网地址,详细请阅读WebRTC: CANDIDATE。

发现结果srs(49644,0x11bbcc600) malloc: nano zone abandoned due to inability to preallocate reserved vm space.

如图

在这里插入图片描述

解决方案查看https://stackoverflow.com/a/70209891/17679565

我这里使用的是环境变量配置

open ~/.bash_profile

添加
export MallocNanoZone=‘0’
执行使配置生效

source ~/.bash_profile

之后在执行,启动服务器

CANDIDATE="192.168.10.100"
./objs/srs -c conf/https.rtc.conf

出现错误如下
在这里插入图片描述

找到trunk > conf > https.rtc.conf 修改http_server的listen端口为9090(由于我电脑已经安装nginx,8080端口被占用了)

再执行

CANDIDATE="192.168.10.100"
./objs/srs -c conf/https.rtc.conf

在这里插入图片描述
最终启动成功了。

检查SRS是否成功启动,可以打开 http://localhost:9090/ ,
在这里插入图片描述

Note: 请将IP换成你的SRS的IP地址。

Note: 请将CANDIDATE设置为服务器的外网地址,详细请阅读WebRTC: CANDIDATE。

Remark: 请使用你的证书文件,代替上面配置中的key和cert,请参考 HTTPS API 以及 HTTPS Callback 以及 HTTPS Live Streaming, 当然了HTTPS的反向代理也能和SRS工作很好,比如Nginx代理到SRS。

http://localhost:9090/players/srs_player.html?schema=http&port=9090&api=9090

使用WebRTC推流到SRS:WebRTC: Publish

打开页面观看WebRTC流:WebRTC: Play

https://192.168.10.100:8088/players/rtc_player.html?autostart=true&stream=livestream&api=1990&schema=https

在这里插入图片描述

注意:自签名证书,在空白处输入thisisunsafe(注意没空格)。
Note: 可以打开不同的页面,推拉不同的流,就可以实现视频聊天了。

之后的通过iOS端使用GoogleWebRTC库实现调用ossrs的服务

三、小结

iOS开发-ossrs服务WebRTC本地视频服务搭建以及出现了各种问题解决。

https://blog.csdn.net/gloryFlow/article/details/132257196
学习记录,每天不停进步。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

STM32CubeIDE的安装和黑色主题及自动补全代码

STM32CubeIDE之前用过一点时间,但后来因为不习惯放弃了最近在新电脑上又用起来了,感觉相对之前好了很多,其实如果在工作中基本使用的是STM32,用意法的生态软件也挺好的,意法最近在这块也在大力发展,STM32CubeIDE安装包…

【Linux】云服务器自动化部署VuePress博客(Jenkins)

前言 博主此前是将博客部署在 Github Pages(基于 Github Action)和 Vercel 上的,但是这两种部署方式对于国内用户很不友好,访问速度堪忧。因此将博客迁移到自己的云服务器上,并且基于 Jenkins(一款开源持续…

浪涌保护器中SPD防雷模块的主要应用方案

浪涌保护器(Surge Protective Device,SPD)是一种用于限制瞬态过电压和导引泄放电涌电流的非线性防护器件,用以保护耐压水平低的电器或电子系统免遭雷击及雷击电磁脉冲或操作过电压的损害。SPD可以将过电压泄放到地线或限制过电压到…

多元最短路(Floyd)

是一个基于动态规划的全源最短路算法。它可以高效地求出图上任意两点之间的最短路 时间复杂度 O(n^3) 状态转移方程 f[i][j]min(f[i][j],f[i][k]f[k][j]) 核心代码 void floyd(){for(int k1;k<n;k)for(int i1;i<n;i)for(int j1;j<n;j)s[i][j]min(s[i][j],s[i][k…

Vue前端 更具router.js 中的meta的roles实现路由卫士,实现权限判断。

参考了之篇文章 1、我在登陆时获取到登录用户的角色名roles&#xff0c;并存入sessionStorage中&#xff0c;具体是在login页面实现&#xff0c;还是在menu页面实现都可以。在menu页面实现&#xff0c;可以显得登陆快一些。 2、编写router.js&#xff0c;注意&#xff0c;一个…

Spring 事务详解

目录 一、概述二、事务的特性&#xff08;ACID&#xff09;三、Spring 的事务管理3.1 编程式事务管理3.2 编程式事务管理 四、Spring 事务管理接口及其定义的属性4.1 PlatformTransactionManager:事务管理接口4.2 TransactionDefinition:事务属性4.3 TransactionStatus:事务状态…

Stable Diffusion+Temporal-kit 半虚半实应用

1.先下载temporal-kit,重启webui 2.下载好ffmpeg,配置好环境,下载Ebsynth 3.准备好你需要的视频,拖到预处理视频位置 4.填写参数,点解保存设置,然后并点击生成,会生成到目标文件夹的input位置 5.然后拉出input文件夹里面你想切换成处理的帧图片,然后填写prompt查看效…

中国省级、城市-数字经济创新创业、分项指数(2010-2020年)

一、数据介绍 数据名称&#xff1a;中国省级、城市-数字经济创新创业、分项指数 数据年份&#xff1a;2010-2020年 数据范围&#xff1a;31省、336个城市 数据来源&#xff1a;北大企业大数据研究中心 二、参考文献 参考文献&#xff1a; 戴若尘,王艾昭,陈斌开.中国数字…

Win10使用Guest和空密码访问共享的完整步骤

目录 前言 启动Guest 给予Guest网络权限 允许空密码登陆 启用不安全的来并登陆 总结 前言 我们经常需要使用空密码和guest账户访问Windows共享&#xff0c;因为某些设备不支持输入密码等&#xff0c;那么该如何设置呢&#xff0c;因为步骤比较固定而且繁琐&#xff0c;于…

Python小白入门:文件、异常处理和json格式存储数据

这里写自定义目录标题 所用资料 一、从文件中读取数据1.1 读取整个文件1.2 文件路径1.3 逐行读取1.4 创建一个包含文件各行内容的列表1.5 使用文件的内容1.6 包含一百万位的大型文件1.7 圆周率值中包含你的生日吗练习题 二、写入文件2.1 写入空文件2.2 写入多行2.3 附加到文件练…

Maven 生成(打包)带有依赖的可以直接执行的一个 jar 包

在pom中增加如下内容 <build><plugins><plugin><artifactId>maven-assembly-plugin</artifactId><configuration><archive><manifest><mainClass>com.example.xxx.YourClass</mainClass></manifest></…

酷开系统丨酷开会员,带你解锁K歌新姿势

不管时代怎么变化&#xff0c;K歌这项娱乐活动始终深受人们的喜爱。不知道你有没有遇到过这种情况&#xff1a;周末在家宅了一天&#xff0c;突然心血来潮想去KTV唱歌&#xff0c;但奈何外面过于闷热实在不想出门&#xff0c;可在手机上唱歌又不过瘾&#xff0c;让人很是苦恼……

tomcat入门介绍

tomcat官网下载8.5.9版本&#xff0c;官网地址&#xff1a;https://tomcat.apache.org/download-80.cgi 下载完成后直接解压即可 tomcat目录 解压后&#xff0c;可以看到tomcat有以下目录 /bin - 启动、关闭和其他脚本 *.sh后缀是linux下的脚本文件*.bat后缀windows系统下的…

绘画AI工具的介绍与使用----强到离谱-2023年必备免费好用的AI工具

一.绘画AI www.seaart.ai 这个是网站地址&#xff0c;进去之后直接注册登录即可&#xff0c;几乎都是免费使用&#xff0c;不用担心是否要VIP 点击网站进入之后登录&#xff0c;然后进入主页面&#xff0c;一张图片给你介绍清楚主页 我会根据菜单栏来给大家演示&#xff0c;首…

web会话跟踪以及JWT响应拦截机制

目录 JWT 会话跟踪 token 响应拦截器 http是无状态的&#xff0c;登录成功后&#xff0c;客户端就与服务器断开连接&#xff0c;之后再向后端发送请求时&#xff0c;后端需要知道前端是哪个用户在进行操作。 JWT Json web token (JWT), 是为了在网络应用环境间传递声明而…

【Unity】VS Code 没有智能提示 Unity 中的类

正常来说&#xff0c;VS Code中会对部分输入类名进行提示&#xff0c;如下图所述 假如你从Unity 中进入 VS Code后发现没有提示相关 Unity的类&#xff0c;可能是 Unity 中 有关于 VS Code的相关Package 没有跟着 VS Code升级到最新版本。 点击Unity Windows 下拉框中的 Pac…

如何在电力行业运用IPD?

电力行业是国民经济众多垄断行业中较早实施改革的行业之一。近几年我国电力行业保持着较快的发展速度&#xff0c;也取得了很大的成绩&#xff0c;发电机容量和发电量居世界首位。2015-2020年&#xff0c;全国发电量不断攀升。 电力是以电能作为动力的能源。电力的发现和应用掀…

简绘ChatGPT支持Midjourney绘图 支持stable diffusion绘图

简绘支持Midjourney绘图和stable diffusion绘图。 这意味着简绘具备Midjourney绘图和stable diffusion绘图功能的支持。

生信豆芽菜-单基因表达比较

网址&#xff1a;http://www.sxdyc.com/panCancerExpCom 该工具主要用于查看单基因在泛癌的癌组织和癌旁组织中表达比较&#xff0c;可以只选择TCGA数据库&#xff0c;也可以选择TCGAGTEx数据库&#xff08;GTEx数据库&#xff0c;存放了正常组织全基因的表达谱&#xff09; …

limereport报表使用

在这里我使用报表是以报表的形式显示数据库的信息。所以首先需要准备的资料有&#xff1a;limereport源码&#xff0c;还有数据库&#xff0c;我这里使用的是qsqlite数据库。 1、下载limereport报表源码 2、运行自带的案例&#xff1a;demo_r1 3、点击 “Run Report Designer”…