Skip to content

Reproducción WebRTC por WHEP

WHEP entrega un stream de Agora a un reproductor WebRTC con latencia mínima. Se utiliza studio, que ya recibe señal, por ejemplo de un emisor WHIP.

Prepare el stream

Compruebe que el stream esté activo y tenga vídeo H.264 o AV1. El audio requiere Opus; si el origen envía AAC u otro códec, configure previamente la conversión a Opus. WebRTC no convierte códecs. Compruebe también la compatibilidad de vídeo del reproductor.

Permita la reproducción

En Auth & DRM, configure el acceso de reproducción. Para un stream privado, obtenga un token o permiso de reproducción válido. El token de publicación del codificador no sustituye este permiso.

Construya la URL WHEP

En Layout de la ficha del stream, localice el streamer que lo entrega. Use su dirección HTTP(S) y el nombre del stream:

https://streamer.example.com/streaming/whep/studio?token=PLAY_TOKEN

Esta URL WHEP apunta directamente al streamer, no a la consola central. Sustituya el dominio y el token. En lugar del parámetro token, el reproductor puede enviar Authorization: Bearer PLAY_TOKEN.

Conecte el reproductor

  1. Abra un reproductor compatible con WHEP e introduzca la URL. Debe admitir SDP inicial completo con candidatos ICE sin exigir Trickle ICE.
  2. Inicie la reproducción. El reproductor envía una oferta SDP por POST y recibe 201 Created, la respuesta SDP y la URL de sesión en Location.
  3. Compruebe imagen y sonido. En Sesiones aparecerá una sesión WHEP con contabilización de bytes.

Pegar la URL en la barra del navegador no inicia vídeo: GET devuelve 204 No Content. La integración en el navegador requiere un reproductor WebRTC; <video src="…"> por sí solo no negocia WHEP. Utilice HTTPS y permita UDP al puerto multimedia del streamer.

Si la página del navegador y el endpoint WHIP/WHEP usan distintos orígenes, añada en el proxy HTTPS la cabecera de respuesta Access-Control-Expose-Headers: Location para que el cliente pueda leer la URL de sesión. No es necesario si la página y la API comparten origen.

Finalice la reproducción

Detenga la reproducción en el reproductor. Para un cliente propio, guarde Location de la respuesta POST y envíe DELETE a esa URL; el éxito devuelve 204 No Content. El servidor también elimina sesiones tras el tiempo de espera de desconexión ICE.

Cambiar los puertos WebRTC requiere reconectar el reproductor. Guardar los mismos ajustes conserva el puerto. Para ver el archivo, utilice un protocolo de entrega del archivo en lugar de esta URL WHEP.

Si falla la conexión

Síntoma Comprobación
403 Permiso de reproducción; WHEP no entrega contenido cifrado con DRM.
404 Nombre del stream, streamer elegido y pistas disponibles.
415 Vídeo H.264/AV1 y Content-Type correcto.
503 Disponibilidad del puerto UDP; reconecte tras resolver la causa.
Hay sesión, pero no imagen Dirección ICE y puerto UDP accesibles, y códec compatible con el reproductor.

Referencia

Contrato WHEP y limitaciones.