WebRTC经过这么多年的发展,目前已经比较成熟的协议之一,播放也比较稳定,协议也已经成为了RFC,相应的开源项目也越来越多,但是基于WebRTC协议的部署简单,性能强悍,功能强大流媒体服务器的项目还比较稀少。之前了解到的服务器比如Mediasoup,Janus,Medooze ,要么就是设计复杂,接入成本要,要么就是性能较差,还就是多种语言结合,学习成本较高。 而SRS聚焦视频相关,功能专一,语言使用了高性能的c++,并且支持Rtmp转Webrtc等其他强大的功能的媒体服务器。
安装和配置SRS
1.源码编译安装运行SRS
git clone -b develop https://gitee.com/ossrs/srs.git &&
cd srs/trunk && ./configure && make && ./objs/srs -c conf/srs.conf
注:需要配置Candidate,官网链接https://github.com/ossrs/srs/wiki/v4_CN_WebRTC
使用这个命令开启RTC支持
env CANDIDATE="192.168.3.10" \
./objs/srs -c conf/rtc.conf
2.SRS常用命令
sudo ./etc/init.d/srs stop // 停止srs
./objs/srs -c conf/srs.conf // 启动srs
./etc/init.d/srs status // 查看srs服务状态
tail -n 30 -f ./objs/srs.log. // 查看SRS的日志
3.配置nginx代理
若不需要浏览器推流,可以不用设置nginx代理,使用localhost访问
server {
listen 443 ssl;
ssl on;
server_name yourhost;
ssl_certificate /etc/nginx/cert/your.pem;
ssl_certificate_key /etc/nginx/cert/your.key;
gzip on;
gzip_types text/plain application/xml text/css application/javascript;
gzip_min_length 1000;
location / {
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_read_timeout 1m;
proxy_connect_timeout 1m;
proxy_pass http://127.0.0.1:8080;
}
location ~ ^/(console|players)/ {
proxy_pass http://127.0.0.1:8080/$request_uri;
}
location ~ ^/.+/.*\.(flv|m3u8|ts|aac|mp3)$ {
proxy_pass http://127.0.0.1:8080$request_uri;
}
location ~ ^/(api|rtc)/ {
proxy_pass http://127.0.0.1:1985$request_uri;
}
}
注意:your 代表需要配置你自己的域名信息,由于使用浏览器推流必须使用https协议,所以我这边配置了证书
4.访问配置的域名
访问nginx配置的网址 https://webrtc.yourhost.com/
出现如下内容,则服务端架设成功
5.使用webrtc协议推流
推流链接:https://webrtc.yourhost.com/players/rtc_publisher.html?vhost=d.ossrs.net&server=d.ossrs.net&api=443&autostart=true&schema=https&stream=show
也可以使用官网链接,url填入你服务器的url
6.使用webrtc协议拉流
拉流链接:https://webrtc.yourhost.com/players/rtc_player.html?vhost=d.ossrs.net&server=d.ossrs.net&api=443&autostart=true&schema=https&stream=show
也可以使用官网链接,url填入你服务器的url
6.推拉流过程中服务端监控
总结
虽然整片文章看起来不复杂,流程很简单。但是官网的文档中的知识点比较分散,所以大家要想快速的搭建的话就参考我这篇文章