SRS服务器RTMP2WebRTC外网拉流配置

将前端服务开放到外网,并且在外网使用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.d
stream {
    # 外网通过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

相关推荐

  1. SRS服务器RTMP2WebRTC配置

    2024-01-06 17:38:02       75 阅读
  2. 使用ffmpeg实现服务端和客户端的RTMP

    2024-01-06 17:38:02       64 阅读
  3. 服务器禁止访问策略配置

    2024-01-06 17:38:02       66 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-06 17:38:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-06 17:38:02       100 阅读
  3. 在Django里面运行非项目文件

    2024-01-06 17:38:02       82 阅读
  4. Python语言-面向对象

    2024-01-06 17:38:02       91 阅读

热门阅读

  1. LeetCode[62] 不同路径

    2024-01-06 17:38:02       56 阅读
  2. react:ffcreator中FFCreatorCenter视频队例

    2024-01-06 17:38:02       54 阅读
  3. 【注解】@FeignClient 用于微服务通信

    2024-01-06 17:38:02       51 阅读
  4. 树莓派4B 入门

    2024-01-06 17:38:02       59 阅读
  5. react高阶成分(HOC)

    2024-01-06 17:38:02       65 阅读
  6. 写你的第一个Vue程序

    2024-01-06 17:38:02       69 阅读
  7. 若依系统/pagehelper最米且暴解决pagehelper分页失效

    2024-01-06 17:38:02       66 阅读
  8. Node.js + Mysql 防止sql注入的写法

    2024-01-06 17:38:02       58 阅读
  9. 第一章 随机事件和概率

    2024-01-06 17:38:02       39 阅读
  10. 对象转成json,由于数据量过大压缩成.json.zip格式

    2024-01-06 17:38:02       53 阅读
  11. git 使用场景 本地分支 推送到 远程分支

    2024-01-06 17:38:02       76 阅读
  12. CentOS:安装gitlab

    2024-01-06 17:38:02       67 阅读
  13. 2023.12.31力扣每日一题——一年中的第几天

    2024-01-06 17:38:02       69 阅读