当前位置: 首页 > news >正文

SRS WebRTC 入门

什么是 SRS WebRTC?

SRS (Simple Realtime Server) 是一个支持 WebRTC 流媒体的开源媒体服务器。它允许你建立基于 WebRTC 的低延迟直播和实时通信应用。

快速开始

1. 安装 SRS

bash

# 使用 Docker 快速安装
docker run --rm -it -p 1935:1935 -p 1985:1985 -p 8080:8080 \-p 8000:8000/udp -p 10080:10080/udp ossrs/srs:5 \./objs/srs -c conf/rtc.conf

或者从源码编译:

bash

git clone https://github.com/ossrs/srs
cd srs/trunk
./configure --with-ffmpeg --with-ssl --with-hls --with-rtc \--with-http-callback --with-http-api --with-http-server
make

2. 基本配置 (conf/rtc.conf)

nginx

listen              1935;
max_connections     1000;
daemon              off;
srs_log_tank        console;rtc_server {enabled on;listen 8000; # UDP端口candidate $CANDIDATE; # 你的服务器IP或域名
}http_api {enabled on;listen 1985;
}http_server {enabled on;listen 8080;dir ./objs/nginx/html;
}

3. 启动 SRS

bash

./objs/srs -c conf/rtc.conf

 

WebRTC 推流与播放

推流 (Publisher)

  1. 使用 WebRTC 推流 URL 格式:

    text

    webrtc://your-server-ip/live/streamid
  2. 可以使用官方 Web 演示页面:

    text

    http://your-server-ip:8080/players/rtc_publisher.html

播放 (Player)

  1. WebRTC 播放 URL 格式:

    text

    webrtc://your-server-ip/live/streamid
  2. 官方 Web 播放演示:

    text

    http://your-server-ip:8080/players/rtc_player.html
     

进阶配置

1. 设置 TURN 服务器 (穿越 NAT)

nginx

rtc_server {# ... 其他配置 ...turn_server {enabled on;listen 3478;# 必须配置域名或IPcandidate $CANDIDATE;realm ossrs.net;credential ossrs;}
}

2. 与其它协议转换

SRS 支持 WebRTC 与其他协议互转:

  • WebRTC → RTMP

  • WebRTC → HLS

  • RTMP → WebRTC

常见问题

  1. ICE 连接失败:

    • 确保配置了正确的 candidate IP

    • 检查防火墙开放了 UDP 端口 (默认 8000)

  2. 延迟高:

    • 确保使用 WebRTC 而不是 HLS 或 HTTP-FLV

    • 检查网络状况

相关文章:

  • 【数据标注师】分类标注
  • Push-T, AloHa, Rlbench三个仿真环境信息
  • 为何需要防爆平板?它究竟有何能耐?
  • 给定一个整型矩阵map,求最大的矩形区域为1的数量
  • Redis 高可用分片集群:主从模式与哨兵机制详解
  • 【AI智能体】Dify 核心组件从使用到实战操作详解
  • 33.表复制和去重
  • SpringMVC系列(五)(响应实验以及Restful架构风格(上))
  • maven多模块、多层级项目 如何只构建指定的项目
  • Web基础关键_004_CSS(二)
  • 在 CentOS Stream 10 上搭建 Kubernetes 集群并支持开发调试与日志查看
  • ZooKeeper深度面试指南一
  • React环境搭建及语法简介
  • PIC单片机MPLAB编译报错的一些问题及解决方法
  • python多线程详细讲解
  • Java-Matcher类
  • Grab×亚矩阵云手机:以“云端超级节点”重塑东南亚出行与数字生活生态
  • 【21】C9800配置PSK认证的WLAN
  • 【git教程】git add 命令讲解
  • 如何让ChatGPT模仿人类写作,降低AIGC率?