什么是 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)
-
使用 WebRTC 推流 URL 格式:
text
webrtc://your-server-ip/live/streamid
-
可以使用官方 Web 演示頁面:
text
http://your-server-ip:8080/players/rtc_publisher.html
播放 (Player)
-
WebRTC 播放 URL 格式:
text
webrtc://your-server-ip/live/streamid
-
官方 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
常見問題
-
ICE 連接失敗:
-
確保配置了正確的?
candidate
?IP -
檢查防火墻開放了 UDP 端口 (默認 8000)
-
-
延遲高:
-
確保使用 WebRTC 而不是 HLS 或 HTTP-FLV
-
檢查網絡狀況
-