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

本地环境搭建

官方代码https://github.com/ossrs/srs

拉取代码:

cpp 复制代码
git clone https://github.com/ossrs/srs.git
cpp 复制代码
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推拉流环境搭建(本地)

cpp 复制代码
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启动

cpp 复制代码
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

cpp 复制代码
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

相关推荐
中屹指纹浏览器svip3 天前
WebRTC泄露是什么,怎么关闭?
webrtc
海边捡石子4 天前
从零设计一个通用智能电话平台:FreeSWITCH + ESL + AI 实战架构
人工智能·架构·webrtc
音视频牛哥4 天前
不换摄像机,也能接入 WebRTC?SmartMediaKit RTSP/RTMP 转 WHIP 技术实践
音视频·webrtc·smartmediakit·rtsp转whip·rtmp转whip·whip推流·rtsp转webrtc播放
直播技术开发交流6 天前
Android 端 WHIP 协议推流技术实践:相机/录屏/多路转发WHIP实现测试
webrtc·android whip·rtsp转whip·毫秒级实时媒体流·whip低延时推送·whip推送实现·rtsp转webrtc
程序员阿明8 天前
docker搭建视频流服务go2rtc,webRTC
docker·容器·webrtc
O。O蛋黄酥啊11 天前
实时语音 Agent 开发完全指南:从 ASR/TTS 到 WebRTC/VAD 的链路拆解
大模型·webrtc·语音识别·tts·asr
海水冷却12 天前
WebRTC 视频通话:从裸写信令到 30 分钟上线
音视频·webrtc
PiaoKe___12 天前
云手机底层架构与工程实践:从 KVM/容器到 WebRTC 串流
智能手机·架构·webrtc
znnnk12 天前
【网络优化】减少B站直播卡顿的上行占用:AdGuard nowebrtc规则 / WebRTC Control 实测
服务器·网络·webrtc·直播·bilibili·adguard
平行云PVT12 天前
国产信创实时云渲染解决方案:如何实现数字孪生与三维应用云化部署?
unity·webrtc·unreal engine·实时云渲染·国产信创·摩尔线程·砺算科技