✅ 一、推流地址格式(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-FLVhttp://host:8080/app/stream.flv低延迟,适合直播浏览器 + flv.js 播放HLShttp://host:8080/app/stream.m3u8高兼容,但延迟高(10s+)浏览器、iOSRTMPrtmp://host/app/stream延迟低旧播放器、Flash(已过时)WebRTCwebrtc://host/live/stream超低延迟(<1s),难配置互动、低延迟直播SRTsrt://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 播放器)