小工具知识网

当前位置: 首页 > 行业知识 > SRS服务器RTMP2WebRTC外网拉流配置

行业知识

SRS服务器RTMP2WebRTC外网拉流配置

2026-11-15 15:18:48 来源:互联网转载

将前端服务开放到外网,并且在外网使用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端口。

    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,重启容器。

    # 将容器中的配置文件复制到本地docker cp srs:conf/rtmp2rtc.conf ./# 将本地修改完的配置文件复制回容器内docker cp rtmp2rtc.conf srs:/usr/local/srs/conf# 重启容器docker restart srs

    二、使用Nginx配置反向代理

    http {    server {        listen 10090;        server_name _;        # WebRTC拉流时,需要调用API:/rtc/v1/play/        location /rtc {            proxy_pass http://localhost:1985;        }        # WebRTC拉流地址前缀匹配        location /live {            proxy_pass http://localhost:1985;        }    }}# steam块不能放在/etc/nginx/conf.d下,手动创建目录/etc/nginx/stream.dstream {    # 外网通过33333端口的udp请求,经过路由器转发到服务器10090端口上,再经过nginx转发到本地33333端口    server {        listen 10090 udp;        proxy_pass localhost:33333;    }}

    三、拉流

    内网拉流地址:webrtc://192.168.5.177:10090/live/20240102

    外网拉流地址:webrtc://10.172.59.42:33333/live/20240102

上一篇:Docker部署(ruoyi案例接上篇Docker之部署前后端分离项目)实施必会!!!!

下一篇:w8.1怎么服务器地址?