1、参考地址
SRS github地址:https://github.com/ossrs/srs 自带的信令github地址:https://github.com/ossrs/signaling#usage 中文文档:https://ossrs.net/lts/zh-cn/docs/v4/doc/introduction
2、环境部署
我是在centos上使用的源码编译模式,官方还提供了docker模式的,看文档中有介绍。
2.1 下载源代码
git clone https://gitee.com/ossrs/srs.git
2.2 下载后手动编译
cd srs/trunk ./configure make
这里需要说明一下,在手动编译过程中,可能会提示报错,看报错日志安装对应的依赖环境即可。
2.3 修改配置文件,我这里要测试webrct的功能,就在conf目录下找到srs.conf,编辑文件,把如图位置改为自己服务器的ip地址。
官方提供了动态获取ip地址的方式,需要的话可以看文档。
2.4 启动服务,需要在trunk目录下执行
./objs/srs -c conf/srs.conf #使用srs配置文件启动
./etc/init.d/srs status #查看状态
./etc/init.d/srs stop #停止
启动后有如下输出:
2.5 检查启动状态,我这里直接关闭了服务器的防火墙,否则需要开放8080端口,如果需要改端口改配置文件即可。
浏览器输入:http://192.168.101.139:8080 访问控制台,如果能访问到则说明启动成功了。
2.6 配置浏览器https支持,由于webrtc需要https,本地测试配置证书又很麻烦,需要修改下浏览器配置。
在谷歌浏览器地址栏输入:chrome://flags/#unsafely-treat-insecure-origin-as-secure
启用功能,输入框中输入你对应的地址,多个用英文逗号隔开。在这里配置后。浏览器会在访问这个地址的时候,会以https的方式去访问http网站。
2.7 推拉流测试
浏览器测试后已经能正常的推拉流了
2.8 关于多人通话,多人通话需要用到信令和房间等概念,官方提供了一个信令服务器,是用go语言开发的,如果要使用,需要提前安装好go的环境。
在trunk目录下执行命令:
cd /3rdparty/signaling && make && ./objs/signaling
安装信令并启动服务。
访问地址:http://192.168.101.139:1989/demos/room.html?autostart=true&room=32f9e6c
就可以实现多人视频通话了。
3..0 关于多人视频通话的一些想法
使用上面的多人视频通话测试过后发现,其实相当于每个人都有一个对应的视频流,这样确实能实现通话。这就有个问题,想象有无限个客户端来通话,那每个客户端都要持有一个除自己以外的其他所有人的音视频流,并且要播放出来,设备会不会有性能问题?关于这个问题,其实就是Room to Live模式,官方给出的解决方案是先通过SRS把webrtc转成rtmp,再用ffmpeg把多个rtmp合并成一个rtmp,且不说中间经历过转换加合流,是否会增加延时,这样视频通话的及时性就得不到保证。而且我之前使用nginx+rtmp+ffmpeg
做过多音视频流的合并测试,效果不是很理想,音频合流的延迟达到了5s。当时测试我使用的虚拟服务器可能配置太差了。不知道这种方案是否在生产环境可行。希望有知道的大佬可以告知一下。
标签:流媒体,通话,srs,SRS,地址,https,服务器,浏览器 From: https://www.cnblogs.com/rolayblog/p/17580594.html