本文首發(fā)地址-開源實(shí)踐網(wǎng):用SRS搭建WebRTC流媒體服務(wù)器實(shí)戰(zhàn)
WebRTC經(jīng)過這么多年的發(fā)展,目前已經(jīng)比較成熟的協(xié)議之一,播放也比較穩(wěn)定,協(xié)議也已經(jīng)成為了RFC,相應(yīng)的開源項(xiàng)目也越來越多,但是基于WebRTC協(xié)議的部署簡單,性能強(qiáng)悍,功能強(qiáng)大流媒體服務(wù)器的項(xiàng)目還比較稀少。之前了解到的服務(wù)器比如Mediasoup,Janus,Medooze ,要么就是設(shè)計(jì)復(fù)雜,接入成本要,要么就是性能較差,還就是多種語言結(jié)合,學(xué)習(xí)成本較高。 而SRS聚焦視頻相關(guān),功能專一,語言使用了高性能的c++,并且支持Rtmp轉(zhuǎn)Webrtc等其他強(qiáng)大的功能的媒體服務(wù)器。
安裝和配置SRS
1.源碼編譯安裝運(yùn)行SRS
git clone -b develop https://gitee.com/ossrs/srs.git &&
cd srs/trunk && ./configure && make && ./objs/srs -c conf/srs.conf
注:需要配置Candidate,官網(wǎng)鏈接https://github.com/ossrs/srs/wiki/v4_CN_WebRTC

使用這個(gè)命令開啟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 // 啟動(dòng)srs
./etc/init.d/srs status // 查看srs服務(wù)狀態(tài)
tail -n 30 -f ./objs/srs.log. // 查看SRS的日志
3.配置nginx代理
若不需要瀏覽器推流,可以不用設(shè)置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協(xié)議,所以我這邊配置了證書
4.訪問配置的域名
訪問nginx配置的網(wǎng)址 https://webrtc.yourhost.com/
出現(xiàn)如下內(nèi)容,則服務(wù)端架設(shè)成功

5.使用webrtc協(xié)議推流
推流鏈接:https://webrtc.yourhost.com/players/rtc_publisher.html?vhost=d.ossrs.net&server=d.ossrs.net&api=443&autostart=true&schema=https&stream=show
也可以使用官網(wǎng)鏈接,url填入你服務(wù)器的url

6.使用webrtc協(xié)議拉流
拉流鏈接:https://webrtc.yourhost.com/players/rtc_player.html?vhost=d.ossrs.net&server=d.ossrs.net&api=443&autostart=true&schema=https&stream=show
也可以使用官網(wǎng)鏈接,url填入你服務(wù)器的url

7.推拉流過程中服務(wù)端監(jiān)控

總結(jié)
雖然整片文章看起來不復(fù)雜,流程很簡單。但是官網(wǎng)的文檔中的知識點(diǎn)比較分散,所以大家要想快速的搭建的話就參考我這篇文章