WHEP

WHEP (WebRTC-HTTP Egress Protocol) — обратный к WHIP. Плеер получает WebRTC-поток от сервера через один HTTP POST с SDP. Sub-second latency для зрителя. IETF draft, поддерживается индустрией.

Flow (зеркало WHIP)

1. Плеер создаёт RTCPeerConnection, offerToReceive.
2. POST /whep/live/stream1 с телом = SDP offer
   → 201 Created, Location: /whep/session/42
   → SDP answer в теле
3. Медиа течёт от сервера к плееру через SRTP.
4. DELETE /whep/session/42 для остановки.

Пример JS

const pc = new RTCPeerConnection();
pc.addTransceiver('video', {direction: 'recvonly'});
pc.addTransceiver('audio', {direction: 'recvonly'});
pc.ontrack = e => video.srcObject = e.streams[0];

const offer = await pc.createOffer();
await pc.setLocalDescription(offer);

const res = await fetch('/whep/live/stream1', {
  method: 'POST',
  headers: {'Content-Type': 'application/sdp'},
  body: offer.sdp
});
const answer = await res.text();
await pc.setRemoteDescription({type: 'answer', sdp: answer});

WHEP vs HLS/DASH

WHEPHLS/DASH
Latency100-500мс2-30с
ABRsimulcast/SVCмножественные renditions
CDN scaleсложнее (stateful)простой HTTP
Оффлайн-записьсложнопросто (файлы .ts)
FirewallUDP → часто дыркачистый HTTP

Гибрид

Многие: первому зрителю — WHEP (мгновенный старт), масштаб — HLS (кеш CDN). Или WHEP + LL-HLS fallback.

Применение

ABR через simulcast

WebRTC-simulcast: сервер получает N потоков разного качества, шлёт зрителю тот что подходит по каналу. Всё в одной WHEP-сессии.

См. также

← на главную