WHIP
WHIP (WebRTC-HTTP Ingestion Protocol, RFC 9725, 2024) — HTTP-протокол для загрузки WebRTC-потока на сервер. Стандартизирует "как стример пушит через WebRTC". Замена RTMP для sub-second latency.
Проблема
WebRTC исторически — P2P видеозвонки. Для стриминга (один-ко-многим) не было стандартного способа "залить" WebRTC-поток. Каждая платформа изобретала свой signaling. WHIP стандартизирует: один HTTP POST с SDP.
Flow
1. Клиент создаёт RTCPeerConnection, addTrack(camera).
2. Генерит SDP offer.
3. POST /whip/live с телом = SDP offer, Content-Type: application/sdp
→ 201 Created + Location: /whip/live/session-42
→ SDP answer в теле
4. WebRTC устанавливает соединение (ICE, DTLS, SRTP).
5. Медиа через RTP over DTLS-SRTP.
6. DELETE /whip/live/session-42 — конец.
Пример
POST /whip HTTP/1.1
Content-Type: application/sdp
Authorization: Bearer stream-key-abc123
v=0
o=- 12345 1 IN IP4 0.0.0.0
...
HTTP/1.1 201 Created
Location: /whip/session/42
Content-Type: application/sdp
v=0
o=- 67890 1 IN IP4 server-ip
...
Плюсы vs RTMP
| WHIP | RTMP | |
|---|---|---|
| Latency | 100-500мс | 2-5с |
| Кодеки | H264, VP8/9, AV1, Opus | H264, AAC |
| Транспорт | UDP (SRTP) | TCP |
| NAT | ICE | плохо |
| Encryption | SRTP по умолч | только RTMPS |
| Браузер как источник | легко | через плагин |
Поддержка
- OBS — с 30.0 (2023) нативно
- Cloudflare Stream, Millicast, Meta — WHIP endpoints
- Twitch — экспериментально
- medooze, Janus, MediaMTX, LiveKit — open source серверы
WHIP + WHEP
WHIP — вход (стример). WHEP — выход (зритель). Пара — новая эра low-latency без Flash-legacy.