跳转到内容

SRT 协议

SRT(Secure Reliable Transport)是由 Haivision 开发的开源低延迟传输协议。它在不可靠的网络环境中提供安全、可靠的数据传输,特别适合远程连线、广电级采集等对抗网络抖动要求较高的场景。

属性
默认端口6000
传输层UDP(SRT 协议层)
推流✅ 支持
拉流✅ 支持
延迟120ms+(可配置)
Feature Flagsrt
Cargo.toml
[features]
srt = ["dep:plugin-srt", "plugin-srt/srt", "srt-tokio"]
srt:
enable: true
listen_addr: ":6000"
latency_ms: 120
max_bandwidth: 0
passphrase: null
配置项类型默认值说明
enablebooltrue是否启用 SRT 插件
listen_addrstring":6000"监听地址
latency_msu32120传输延迟(毫秒)
max_bandwidthu640最大带宽(字节/秒,0=不限)
passphraseOptionnull加密密码(10-79 字符)

latency_ms 是 SRT 的核心参数,控制发送端到接收端的缓冲延迟:

  • 低延迟场景(局域网):60-120ms
  • 城市级传输120-500ms
  • 跨国传输500-2000ms

SRT 支持 AES 加密,通过 passphrase 配置:

srt:
passphrase: "my-secret-key-12345"

密码长度必须在 10-79 字符之间。推流端和拉流端必须使用相同的密码。

Terminal window
# 基本推流
ffmpeg -re -i input.mp4 -c copy -f mpegts "srt://localhost:6000?streamid=publish/live/test"
# 带加密的推流
ffmpeg -re -i input.mp4 -c copy -f mpegts \
"srt://localhost:6000?streamid=publish/live/test&passphrase=my-secret-key-12345"
# 指定延迟参数
ffmpeg -re -i input.mp4 -c copy -f mpegts \
"srt://localhost:6000?streamid=publish/live/test&latency=200000"
# 摄像头采集推流
ffmpeg -f v4l2 -i /dev/video0 \
-c:v libx264 -preset ultrafast -tune zerolatency \
-c:a aac -b:a 128k \
-f mpegts "srt://localhost:6000?streamid=publish/live/camera"
  1. 进入 设置直播
  2. 服务选择 自定义
  3. 服务器填写:srt://your-server:6000?streamid=publish/live/test
  4. 点击 开始推流

SRT 通过 streamid 参数区分推流和拉流:

  • 推流:streamid=publish/{streamPath}
  • 拉流:streamid=subscribe/{streamPath}streamid=play/{streamPath}
Terminal window
ffplay "srt://localhost:6000?streamid=subscribe/live/test"
Terminal window
ffmpeg -i "srt://localhost:6000?streamid=subscribe/live/test" -c copy output.mp4
  1. 打开 VLC,选择 媒体打开网络串流
  2. 输入 URL:srt://localhost:6000?streamid=subscribe/live/test
  3. 点击 播放

SRT 推入的流可以通过其他协议播放:

Terminal window
# SRT 推流
ffmpeg -re -i input.mp4 -c copy -f mpegts \
"srt://localhost:6000?streamid=publish/live/test"
# 通过 RTMP 拉流
ffplay rtmp://localhost:1935/live/test
# 通过 HTTP-FLV 拉流
ffplay http://localhost:8080/flv/live/test.flv
# 通过 HLS 拉流
ffplay http://localhost:8080/hls/live/test/index.m3u8
特性SRTRTMP
传输层UDPTCP
延迟可配置(120ms+)1-3 秒
弱网抗性强(FEC + ARQ)
加密AES 加密无内置加密
防火墙友好一般(UDP)好(TCP)
工具支持FFmpeg/OBS/vMix广泛

SRT 在弱网环境下的表现远优于 RTMP,推荐在以下场景使用 SRT 替代 RTMP:

  • 跨公网远程连线
  • 移动网络推流
  • 网络质量不稳定的环境

联系我们

微信公众号:不卡科技 微信公众号二维码
腾讯频道:流媒体技术 腾讯频道二维码
QQ 频道:p0qq0crz08 QQ 频道二维码
QQ 群:751639168 QQ 群二维码