將前端服務(wù)開放到外網(wǎng),并且在外網(wǎng)使用WebRTC拉流,要求全部使用同一端口。
- 外網(wǎng)地址:10.172.59.42(域名:test.com)外網(wǎng)端口為33333
- 內(nèi)網(wǎng)SRS服務(wù)器地址:192.168.5.177,內(nèi)網(wǎng)端口為10090
- 路由器將外網(wǎng)33333端口映射到內(nèi)網(wǎng)192.168.5.177:10090
一、使用docker搭建SRS服務(wù)器
1、編輯~/.bashrc,添加export?CANDIDATE="192.168.5.177",執(zhí)行source ./bashrc。
2、docker創(chuàng)建SRS服務(wù)器,將開放的8000端口改為33333端口。
docker run --rm -it -p 1935:1935 -p 1985:1985 -p 8080:8080 --env CANDIDATE=$CANDIDATE -p 33333:33333/udp registry.cn-hangzhou.aliyuncs.com/ossrs/srs:5 ./objs/srs -c conf/rtmp2rtc.conf
WebRTC包含信令(Signaling)和媒體(Media)兩個部分的協(xié)議,信令默認(rèn)使用1985端口,媒體默認(rèn)使用UDP8000端口傳輸,無法單獨(dú)修改發(fā)送給客戶端的媒體端口,所以需要將8000端口改為和外網(wǎng)端口一致的端口33333。
3、修改SRS配置文件,將rtc_server中監(jiān)聽的UDP端口8000改為33333,重啟容器。
# 將容器中的配置文件復(fù)制到本地
docker cp srs:conf/rtmp2rtc.conf ./
# 將本地修改完的配置文件復(fù)制回容器內(nèi)
docker cp rtmp2rtc.conf srs:/usr/local/srs/conf
# 重啟容器
docker restart srs
二、使用Nginx配置反向代理
http {
server {
listen 10090;
server_name _;
# WebRTC拉流時,需要調(diào)用API:/rtc/v1/play/
location /rtc {
proxy_pass http://localhost:1985;
}
# WebRTC拉流地址前綴匹配
location /live {
proxy_pass http://localhost:1985;
}
}
}
# steam塊不能放在/etc/nginx/conf.d下,手動創(chuàng)建目錄/etc/nginx/stream.d
stream {
# 外網(wǎng)通過33333端口的udp請求,經(jīng)過路由器轉(zhuǎn)發(fā)到服務(wù)器10090端口上,再經(jīng)過nginx轉(zhuǎn)發(fā)到本地33333端口
server {
listen 10090 udp;
proxy_pass localhost:33333;
}
}
三、拉流
內(nèi)網(wǎng)拉流地址:webrtc://192.168.5.177:10090/live/20240102文章來源:http://www.zghlxwxcb.cn/news/detail-847313.html
外網(wǎng)拉流地址:webrtc://10.172.59.42:33333/live/20240102文章來源地址http://www.zghlxwxcb.cn/news/detail-847313.html
到了這里,關(guān)于SRS服務(wù)器RTMP2WebRTC外網(wǎng)拉流配置的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!