La transmisión en el navegador envía video en vivo desde el dispositivo del usuario a Livepeer a través de WebRTC (por ejemplo, WHIP), sin usar OBS. Está optimizado para baja latencia por defecto.
Flujo
- Crea un flujo a través de la API y obtén una clave de transmisión.
- Abra una conexión WebRTC para Livepeer ingest usando esa clave (se requiere STUN/TURN).
- Capture la cámara, el micrófono y/o la pantalla en el navegador y envíela a través de WebRTC.
- Los espectadores ven a través de la transmisión ID de reproducción en la Livepeer Jugador.
Usar el componente Broadcast
Con @livepeer/react, use las primitivas Broadcast y la URL de ingestión de transmisión:
import * as Broadcast from "@livepeer/react/broadcast";
import { getIngest } from "@livepeer/react/external";
const streamKey = "your-stream-key";
export function DemoBroadcast() {
return (
<Broadcast.Root ingestUrl={getIngest(streamKey)}>
<Broadcast.Container>
<Broadcast.Video title="Live stream" />
<Broadcast.Controls>
<Broadcast.EnabledTrigger />
</Broadcast.Controls>
</Broadcast.Container>
</Broadcast.Root>
);
}
Transmisión integrable
<iframe
src="https://lvpr.tv/broadcast/STREAM_KEY"
allow="autoplay; camera; microphone; display-capture"
frameborder="0"
></iframe>
Reemplazar “STREAM_KEY con su clave de transmisión.
WebRTC personalizado (WHIP)
- Enviar “
HEAD a “https://livepeer.studio/webrtc/{STREAM_KEY} y siga las Location redirección para la URL de ingestión.
- Crear
RTCPeerConnection con servidores ICE de ese host (STUN/TURN).
- Crear oferta SDP, reunir ICE, enviar la oferta a la URL de ingestión y establecer la respuesta como descripción remota.
- Agregar pistas de medios y enviar. El final de la transmisión se detecta cuando los paquetes dejan de llegar; no se requiere DELETE.
STUN/TURN are required for in-browser broadcasting. The Broadcast component and lvpr.tv broadcast page use Livepeer’s servers.
Ver Reproducción y Optimizar latencia.