SRS服务器RTMP2WebRTC外网拉流配置

打印 上一主题 下一主题

主题 823|帖子 823|积分 2469

将前端服务开放到外网,并且在外网利用WebRTC拉流,要求全部利用同一端口。


  • 外网地址:10.172.59.42(域名:test.com)外网端口为33333
  • 内网SRS服务器地址:192.168.5.177,内网端口为10090
  • 路由器将外网33333端口映射到内网192.168.5.177:10090
一、利用docker搭建SRS服务器
1、编辑~/.bashrc,添加export CANDIDATE="192.168.5.177",执行source ./bashrc。
2、docker创建SRS服务器,将开放的8000端口改为33333端口。
  1. 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)两个部门的协议,信令默认利用1985端口,媒体默认利用UDP8000端口传输,无法单独修改发送给客户端的媒体端口,所以需要将8000端口改为和外网端口同等的端口33333。
3、修改SRS配置文件,将rtc_server中监听的UDP端口8000改为33333,重启容器。
  1. # 将容器中的配置文件复制到本地
  2. docker cp srs:conf/rtmp2rtc.conf ./
  3. # 将本地修改完的配置文件复制回容器内
  4. docker cp rtmp2rtc.conf srs:/usr/local/srs/conf
  5. # 重启容器
  6. docker restart srs
复制代码
二、利用Nginx配置反向代理
  1. http {
  2.     server {
  3.         listen 10090;
  4.         server_name _;
  5.         # WebRTC拉流时,需要调用API:/rtc/v1/play/
  6.         location /rtc {
  7.             proxy_pass http://localhost:1985;
  8.         }
  9.         # WebRTC拉流地址前缀匹配
  10.         location /live {
  11.             proxy_pass http://localhost:1985;
  12.         }
  13.     }
  14. }
  15. # steam块不能放在/etc/nginx/conf.d下,手动创建目录/etc/nginx/stream.d
  16. stream {
  17.     # 外网通过33333端口的udp请求,经过路由器转发到服务器10090端口上,再经过nginx转发到本地33333端口
  18.     server {
  19.         listen 10090 udp;
  20.         proxy_pass localhost:33333;
  21.     }
  22. }
复制代码
三、拉流
内网拉流地址:webrtc://192.168.5.177:10090/live/20240102
外网拉流地址:webrtc://10.172.59.42:33333/live/20240102

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

用多少眼泪才能让你相信

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表