← Volver al blog
Conceptos #playback

WebRTC vs HLS: elegí tu latencia

¿WebRTC de sub-segundo o HLS con buffer? El compromiso entre latencia, escala y alcance — y cómo StreamHub te da ambos desde el mismo stream en vivo.

2 min de lectura
Read in English

Dos reproductores, un stream

StreamHub puede reproducir la misma sala en vivo de dos maneras, y elegir entre ellas es en realidad elegir dónde querés ubicarte en la curva latencia-vs-escala.

  • WebRTC (LivePlayer) — latencia de cámara a pantalla por debajo de un segundo. Se suscribe a la sala de LiveKit directamente y renderiza las pistas. Esto es lo que querés para todo lo interactivo: llamadas de dos vías, subastas, momentos de "mirá en vivo ahora" donde un retraso se siente roto.
  • HLS (HlsPlayer, video.js) — un feed segmentado en /hls/<app>/<room>/index.m3u8 con unos 6–15 segundos de latencia. A cambio obtenés escala sin esfuerzo, compatibilidad con CDN y reproducción en dispositivos y redes donde WebRTC sufre.

El compromiso en una línea

WebRTC minimiza la latencia; HLS maximiza el alcance y la escala. No hay almuerzo gratis — el buffer que le permite a HLS sobrellevar una red inestable es exactamente el buffer que agrega latencia.

Cuándo usar cada uno

Caso de uso Elegí
Videollamadas, subastas interactivas WebRTC
"Mirá en vivo ahora" en el panel WebRTC
Evento en vivo con gran audiencia HLS
Redes móviles / restrictivas HLS
Embed público a escala desconocida HLS

Cómo obtener un reproductor WebRTC

Generá un token de suscripción y conectá:

curl -s -X POST $BASE/apps/demo/tokens -H "Authorization: Bearer $TOKEN" \
  -H 'Content-Type: application/json' \
  -d '{"room":"demo-room1","canPublish":false,"canSubscribe":true}'
# → data.playUrl / data.embedUrl / data.iframe

La respuesta te entrega URLs públicas de /play y /embed y un iframe listo para pegar — esas páginas no necesitan auth.

Cómo obtener una URL HLS

HLS no necesita token. Si la sala publica con transcodificación activa (el default para ingesta RTMP y URL), la playlist es simplemente:

/hls/<app>/<room>/index.m3u8

Apuntá cualquier reproductor con soporte HLS a ella.

No tenés que elegir de antemano

Como ambos salen de la misma sala en vivo, podés ofrecer WebRTC a tus usuarios interactivos y HLS a tu audiencia de difusión simultáneamente. La pestaña "En vivo" del panel incluso expone acciones Ver (WebRTC) y Ver (HLS) por stream, para que los operadores elijan según la situación.