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

WHIPRTMP
Latency100-500мс2-5с
КодекиH264, VP8/9, AV1, OpusH264, AAC
ТранспортUDP (SRTP)TCP
NATICEплохо
EncryptionSRTP по умолчтолько RTMPS
Браузер как источниклегкочерез плагин

Поддержка

WHIP + WHEP

WHIP — вход (стример). WHEP — выход (зритель). Пара — новая эра low-latency без Flash-legacy.

См. также

← на главную