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
http://localhost:9090/players/rtc_publisher.html?schema=http&port=9090&api=9090

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

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

在这里插入图片描述

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

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

三、小结

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

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

计算机网络—TCP

这里写目录标题 TCP头格式有哪些为什么需要TCP,TCP工作在哪什么是TCP什么是TCP连接如何确定一个TCP连接TCP和UDP的区别,以及场景TCP和UDP能共用一个端口?TCP的建立TCP三次握手过程为什么是三次握手、不是两次、四次why每次建立连接&#xff0…

【电机绘图】:插补算法(一)—直线插补—逐点比较法

今日介绍学习一种使用电机作画、绘图、加工零件时需要使用的算法 : 插补算法 本文提供直线插补的概念基础,基本思路分析,C语言实现等,代码会直接贴出! 插补算法是指在数值计算或数据处理中,根据已有的数据…

C++——vector介绍及其简要模拟实现

vector的介绍 此主题介绍转载自(https://cplusplus.com/reference/vector/vector/) 1.vector是一个表示可变大小数组的序列容器 2.vector同数组一样,采用连续存储空间来存储元素,这样可以用下标来对vector中的元素进行访问,但是vector的大…

AAAI论文阅读

文章目录 Open-Vocabulary Multi-Label Classifcation via Multi-Modal Knowledge Transfer——知识蒸馏的范畴Med-EASi: Finely Annotated Dataset and Models for Controllable Simplifcation of Medical Texts——医学领域数据集构建“Nothing Abnormal”: Disambiguating M…

ELK 将数据流转换回常规索引

ELK 将数据流转换回常规索引 现象:创建索引模板是打开了数据流,导致不能创建常规索引,并且手动修改、删除索引模板失败 "reason" : "composable template [logs_template] with index patterns [new-pattern*], priority [2…

【果树农药喷洒机器人】Part7:静态PWM变量喷药实验

📢:如果你也对机器人、人工智能感兴趣,看来我们志同道合✨ 📢:不妨浏览一下我的博客主页【https://blog.csdn.net/weixin_51244852】 📢:文章若有幸对你有帮助,可点赞 👍…

YOLOv5可视化界面

Pyside6可视化界面 安装Pyside6 激活之前的虚拟环境yolov5 在该环境的终端输入以下命令 pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pyside6输入where python找到当前使用的Python的路径 找到该路径下的designer.exe文件(/Lib/site-packages/PySi…

Electron 应用实现截图并编辑功能

Electron 应用实现截图并编辑功能 Electron 应用如何实现截屏功能,有两种思路,作为一个框架是否可以通过框架实现截屏,另一种就是 javaScript 结合 html 中画布功能实现截屏。 在初步思考之后,本文优先探索使用 Electron 实现截屏…

docker小白第二天

centos上安装docker docker官网,docker官网,找到下图中的doc文档。 进入如下页面 选中manuals,安装docker引擎。 最终centos下的docker安装文档链接:安装文档链接. 具体安装步骤: 1、打开Centos,输入命…

如何实现Vue路由的二级菜单

目录 Vue路由(一、二级路由) 一级路由配置 二级路由配置 Vue中展示二级路由的默认模块/二级路由默认显示 Vue路由,二级路由及跳转 如何用vue实现二级菜单栏 ◼️ 相关参考资料 当朋友们看到这个文章时想必是想要了解vue路由二级菜单相…

react学习笔记——4. 虚拟dom中处理动态数据

如下需求 方式1&#xff1a; 直接在ul中使用{data}&#xff0c;是可以遍历数据的&#xff0c;然后如果将data改成下面形式&#xff0c;也是可以实现的。但是如果data是一个对象&#xff0c;则不能便利。 const data [<li>Angular</li>, <li>React</li&g…

【分布式】Viewstamped Replication Revisited

篇前感悟&#xff1a; 阅读分布式系统文章的意义其实并不在于你个人真正地去开发这样一个基于这种协议的系统&#xff0c;因为真正去开发一个高可用的分布式系统实在是太难了&#xff08;对我来说…&#xff09;更多的还是汲取其中的思想&#xff0c;包括设计思路&#xff0c;优…

2023河南萌新联赛第(五)场:郑州轻工业大学-F 布鲁特佛斯

2023河南萌新联赛第&#xff08;五&#xff09;场&#xff1a;郑州轻工业大学-F 布鲁特佛斯 https://ac.nowcoder.com/acm/contest/62977/F 文章目录 2023河南萌新联赛第&#xff08;五&#xff09;场&#xff1a;郑州轻工业大学-F 布鲁特佛斯题意解题思路代码 题意 给定一个…

「C/C++」C/C++可变参数函数

✨博客主页何曾参静谧的博客&#x1f4cc;文章专栏「C/C」C/C程序设计&#x1f4da;全部专栏「UG/NX」NX二次开发「UG/NX」BlockUI集合「VS」Visual Studio「QT」QT5程序设计「C/C」C/C程序设计「Win」Windows程序设计「DSA」数据结构与算法「File」数据文件格式 目录 当你需要…

exec族函数

本节学习exec族函数&#xff0c;并大量参考了以下链接&#xff1a; linux进程---exec族函数(execl, execlp, execle, execv, execvp, execvpe)_云英的博客-CSDN博客 exec族函数函数的作用 我们用fork函数创建新进程后&#xff0c;经常会在新进程中调用exec函数去执行另外一个程…

【数据中台商业化】数据中台微前端实践

一&#xff0c;需求背景 1 业务背景 在以往的业务场景中&#xff0c;用户进入五花八门的菜单体系中&#xff0c;往往会产生迷茫情绪&#xff0c;难以理解平台名称及具体作用&#xff0c;导致数据开发与管理学习成本较高&#xff0c;降低工作效率。为此我们整合从数据接入&…

Node.js |(四)HTTP协议 | 尚硅谷2023版Node.js零基础视频教程

学习视频&#xff1a;尚硅谷2023版Node.js零基础视频教程&#xff0c;nodejs新手到高手 文章目录 &#x1f4da;HTTP概念&#x1f4da;窥探HTTP报文&#x1f4da;请求报文的组成&#x1f407;HTTP请求行&#x1f407;HTTP请求头&#x1f407;HTTP的请求体 &#x1f4da;响应报文…

《连锁零售超市经营数据分析实战》学习笔记

这篇文章整理自 接地气的陈老师 x 和鲸社区 | 连锁零售超市经营数据分析实战 活动业务讲解会【接地气的陈老师】的讲解 更多数据分析动手实践活动欢迎访问>>和鲸社区活动 活动背景 现在你是某零售企业的商业数据分析师&#xff0c;你为管理层提供日常经营数据。到一年年…

亚信科技AntDB数据库与库瀚存储方案完成兼容性互认证,联合方案带来约20%性能提升

近日&#xff0c;亚信科技AntDB数据库与苏州库瀚信息科技有限公司自主研发的RISC-V数据库存储解决方案进行了产品兼容测试。经过双方团队的严格测试&#xff0c;亚信科技AntDB数据库与库瀚数据库存储解决方案完全兼容、运行稳定。除高可用性测试外&#xff0c;双方进一步开展TP…

Linux学习之sed多行模式

N将下一行加入到模式空间 D删除模式空间中的第一个字符到第一个换行符 P打印模式空间中的第一个字符到第一个换行符 doubleSpace.txt里边的内容如下&#xff1a; goo d man使用下边的命令可以实现把上边对应的内容放到doubleSpace.txt。 echo goo >> doubleSpace.txt e…