✅ 一、推流地址格式(Push URL)
推流是指 将音视频流从本地发送到服务器,比如用 OBS 推送给 SRS。
🎯 推流常用协议:
-
RTMP(最常用)
-
SRT(安全、抗丢包)
-
RTSP(轻量,但不太适合公网直播)
📌 推流地址格式(以 RTMP 为例):
rtmp://<服务器地址>/<应用名>/<流名>
🌐 示例:
rtmp://localhost/live/2
-
localhost
:服务器地址(可换成 IP 或域名) -
live
:应用名(App,SRS 配置中定义) -
2
:流名(Stream name,自定义,例如摄像头 ID)
🔧 OBS 设置中,“服务器”填 RTMP 地址,“串流密钥”填流名,比如:
服务器:rtmp://localhost/live 串流密钥:2
✅ 二、拉流地址格式(Play URL)
拉流是指 客户端从服务器获取直播流进行播放。SRS 支持多种拉流协议。
🎥 常见拉流协议及地址格式:
协议 | 播放地址格式 | 优点 | 常用场景 |
---|---|---|---|
HTTP-FLV | http://host:8080/app/stream.flv | 低延迟,适合直播 | 浏览器 + flv.js 播放 |
HLS | http://host:8080/app/stream.m3u8 | 高兼容,但延迟高(10s+) | 浏览器、iOS |
RTMP | rtmp://host/app/stream | 延迟低 | 旧播放器、Flash(已过时) |
WebRTC | webrtc://host/live/stream | 超低延迟(<1s),难配置 | 互动、低延迟直播 |
SRT | srt://host:port?streamid=... (非 SRS 播放) | 抗丢包强,延迟可控 | 专业视频系统 |
🧠 三、推流 + 拉流实现原理(以 SRS 为例)
-
启动 SRS 容器或服务(监听 RTMP、HTTP-FLV、HLS 等端口)。
-
推流客户端(如 OBS) 把视频用 RTMP 推给 SRS:
rtmp://localhost/live/2
-
SRS 接收流后:
-
自动转码(可选);
-
转封装为 FLV/HLS/WebRTC 等格式。
-
-
浏览器客户端 用 HTTP-FLV 地址拉流播放:
http://localhost:8080/live/2.flv
✅ 四、测试流程示意:
1. 启动 SRS Docker: docker run -d -p 1935:1935 -p 8080:8080 registry.cn-hangzhou.aliyuncs.com/ossrs/srs:5
2. OBS 设置: 服务器:rtmp://localhost/live 串流密钥:2
3. 打开浏览器播放: http://localhost:8080/live/2.flv (使用 flv.js 播放器)