用SRS搭建WebRTC流媒体服务器

红太狼 2024-02-23 07:23 143阅读 0赞

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协议,所以我这边配置了证书

本文福利, C++音视频学习资料包、技术视频,内容包括(音视频开发,面试题,FFmpeg ,webRTC ,rtmp ,hls ,rtsp ,ffplay ,srs)↓↓↓↓↓↓见下面↓↓文章底部↓↓

4.访问配置的域名
访问nginx配置的网址 https://webrtc.yourhost.com/

出现如下内容,则服务端架设成功

d971c704ee3545988ecb3acf114616a7.png

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

rtc推流

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
7.推拉流过程中服务端监控

ffbedb07bd5744549d6ffa21f7234e61.png

发表评论

表情:
评论列表 (有 0 条评论,143人围观)

还没有评论,来说两句吧...

相关阅读

    相关 SRSWebRTC媒体服务器

    WebRTC经过这么多年的发展,目前已经比较成熟的协议之一,播放也比较稳定,协议也已经成为了RFC,相应的开源项目也越来越多,但是基于WebRTC协议的部署简单,性能强悍,功能

    相关 centos SRS 媒体服务

    目的: 最近公司有一个流媒体项目交给我负责,其中包括一项直播功能,原本使用的是ffmpeg进行推流、拉流操作。但是在服务端频繁启动命令很麻烦。查阅资料发现目前主流技术包括re