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

srs webrtc推拉流环境搭建(公网)

本地环境搭建
官方代码https://github.com/ossrs/srs
拉取代码:

git clone https://github.com/ossrs/srs.git
cd  ./configure
make
./objs/srs -c conf/https.rtc.conf

srs在公网上,由于srs是lite-ice端,导致他不会主动到srs获取自己的公网ip,因此需要在这里帮他指定 ,他才会把这个ip放到sdp中,发给full-ice的浏览器客户端。
切记不可以写为127.0.0.1。
本地环境搭建参考另一篇:srs webrtc推拉流环境搭建(本地)

rtc_server {
    enabled on;
    listen 8000; # UDP port
    # @see https://ossrs.net/lts/zh-cn/docs/v4/doc/webrtc#config-candidate
    candidate  139.169.8.2; $CANDIDATE;
}

也可以在外部给变量赋值:CANDIDATE=“139.169.8.2”

运行起来以后,打开firefox或者chrome浏览器,打开:
https://118.190.201.242:8088/players/rtc_publisher.html?autostart=false&stream=livestream&api=1990&schema=https
注意这里与本地部署srs相比,http改为https,端口号改为8088,新增api端口1990。
在这里插入图片描述

如果srs在公网的话需要改称https和对应IPhttps://118.190.201.242:8088/players/rtc_player.html?autostart=false&stream=livestream&api=1990&schema=https
在这里插入图片描述

其中的URL为:webrtc://localhost/live/show,这其中的live/show是可以自定义的,只要推拉流保持一致即可,当一个客户端向上推流,可以多个客户端拉流。那么其实我们可以把live看成房间名字,show看成成员id,那么成员show2可以向live中的webrtc://localhost/live/show2推流,其他客户端拉这个地址也能拉到。

关于信令的交互:我们打开这个推拉流连接,那么浏览器就去所在的ip地址去寻找srs服务,然后与其中的https服务器交互,下载页面,当我们填好URL地址,点击开始推流或播放视频按钮时,我们的浏览器客户端先与https交互信令,比如推流和拉流信令等,具体可以参考如下连接,然后进行sdp交互,之后是stun bind request/response交互,之后是DTLS握手,然后开始建立好webrtc传输通道,正式传输音视频流。

http-api 信令https://ossrs.net/lts/zh-cn/docs/v4/doc/http-api
可以看关于webrtc只有推流和拉流的信令,因为信令非常业务性的,这里只给个demo,关于房间管理之类的的信令,要根据自己的需要自己实现信令服务器。

其实webrtc有自己的房间管理sfu如下连接,但这里的信令也只有推流,拉流,房间号,个人号。其实跟这个差不多,只是把自己的推拉和对其他成员的拉流放在一个界面里,在信令处理上,相当于每多一个客户推流,就会通知其他客户多拉一路流,并且自身拉已经存在的正在推流的客户,相当户多经营了这么一个信令。如果我们准备自己开发信令服务器,我建议还是在这篇环境的基础上开发,较为灵活。
srs one2one,one2many通话环境搭建

参考:
官方RTC TO RTC

B站官方教学视频

chrome的webrtc控制台,包含码率帧率,sdp交互信息等:chrome://webrtc-internals/
firefox也开发了这样的控制台:about:webrtc

srs控制台可以实时查看webrtc在线人数
在这里插入图片描述
docker启动

sudo docker run --rm --env CANDIDATE=$CANDIDATE   -p 1935:1935 -p 8080:8080 -p 1985:1985 -p 8000:8000/udp   registry.cn-hangzhou.aliyuncs.com/ossrs/srs:6.0-d2

进入docker不启动,加-it和bash

sudo docker run --rm -it --env CANDIDATE=$CANDIDATE   -p 1935:1935 -p 8080:8080 -p 1985:1985 -p 8000:8000/udp   registry.cn-hangzhou.aliyuncs.com/ossrs/srs:6.0-d2   bash

srs在线whip/whep客户端:
在以上环境中点击,whip按钮,点击推流 / 点击whep按钮,点击拉流,即可使用whip协议进行webrtc通话,obs最新版也支持了whip,它将成功webrtc的默认主流信令交互协议,上文的测试环境中,webrtc的信令是srs自定义的。
srs在线rtc播放器
https://ossrs.net/players/rtc_publisher.html

webrtc是音视频必备,但即使从业数年,它似乎依然有无穷的秘密,感兴趣添加笔者微信:YQW1163720468,加入webrtc微信群讨论。但记得备注:webrtc爱好者


http://www.kler.cn/a/132829.html

相关文章:

  • 定时器简介
  • 前景理论(Prospect Theory)
  • ARM(安谋) China处理器
  • 前端埋点、监控
  • 【python】用 Scrapy 实现高效爬虫项目
  • 【Pip】如何清理 `pip` 包管理器 —— 完整指南
  • 赤壁
  • 【Java 进阶篇】唤醒好运:JQuery 抽奖案例详解
  • 【C语言】数组下标为啥从0开始?下标越界访问一定报错吗?
  • 【Java 进阶篇】深入理解 JQuery 事件绑定:标准方式
  • OpenAI的多函数调用(Multiple Function Calling)简介
  • Mac 安装 protobuf 和Android Studio 使用
  • 【算法总结】归并排序专题(刷题有感)
  • 在Centos7.9_2207安装CDH6.3.2
  • 清华学霸告诉你:如何自学人工智能?
  • 网工内推 | Linux运维,六险二金,最高30K,IE认证优先
  • 随着大模型中数据局限问题的严峻化,向量数据库应运而生
  • js制作九宫格抽奖功能
  • 如何通过python封装接口商品ID采集商品详情数据
  • 开发知识点-前端-webpack
  • TensorRt推理加速框架Python API服务器部署教程以及运行Helloworld程序
  • 修完这个 Bug 后,MySQL 性能提升了 300%
  • C++加持让python程序插上翅膀——利用pybind11进行c++和python联合编程示例
  • 鸿蒙4.0开发笔记之DevEco Studio如何使用Previewer窗口预览器(一)
  • PDF文件中更改 PDF 文本颜色的最有效解决方案
  • (论文阅读40-45)图像描述1