SRT
SRT (Secure Reliable Transport) — открытый протокол Haivision (2013). Замена RTMP для профессионального ingest: UDP, восстанавливает потери через ARQ, шифрует AES. Стандарт в broadcast-индустрии (ТВ, IP-камеры, ProAV).
Как
[источник] → UDP + SRT (ARQ, encryption, timing) → [приёмник]
↕
контроль потерь, повторная передача,
measurement RTT, jitter, bandwidth
Ключевые фичи
- ARQ — потерянные пакеты запрашиваются и переотправляются в latency window
- Encryption — AES-128/256 из коробки
- Bandwidth estimation
- Configurable latency — 20мс - 8с (баланс recovery vs задержка)
- Timestamp-based delivery — воспроизведение как задумано (jitter buffer)
Режимы
- Caller — активный (клиент)
- Listener — пассивный (сервер)
- Rendezvous — оба одновременно (P2P через NAT)
Пример
# пуш
ffmpeg -i input.mp4 -c copy -f mpegts \
'srt://relay.example.com:9000?mode=caller&latency=500&passphrase=secret123'
# приёмник listener
ffmpeg -i 'srt://:9000?mode=listener&latency=500&passphrase=secret123' \
-c copy out.ts
SRT vs RTMP
| RTMP | SRT | |
|---|---|---|
| Транспорт | TCP | UDP |
| Устойчивость | только TCP retransmit | ARQ с deadline |
| Encryption | только RTMPS | AES из коробки |
| Latency | 2-5 сек | 0.5-2 сек, настраиваемая |
| NAT | сложно | rendezvous |
| Индустрия | consumer live | broadcast, ProAV |
SRT Alliance
Открытый консорциум (Microsoft, Wowza, Comcast, Sony...). SRT — open source (MPL).