Cómo insertar una webcam en vivo en tu sitio web: guía completa

Agregar una transmisión en vivo de una webcam a tu sitio web permite streaming en tiempo real para eventos, monitoreo o experiencias interactivas. Aquí tienes una guía práctica de implementación.

Requisitos previos

  • Una webcam funcional (USB, cámara IP o integrada)
  • Servidor web o alojamiento (compartido, VPS, nube)
  • Conocimientos básicos de HTML/JavaScript
  • Software o servicio de transmisión

Método 1: Software de transmisión + Incorporación (Recomendado)

Usando OBS Studio (Gratis, Código abierto)

  1. Instala OBS Studio en la computadora conectada a la webcam.
  2. Agrega la fuente "Dispositivo de captura de video" → selecciona tu webcam.
  3. Configura la salida: Configuración → Transmisión → elige "Personalizado" → ingresa tu servidor de transmisión (ver más abajo).
  4. Inicia la transmisión en OBS.

Opciones de servidor de transmisión

Método 2: WebRTC (Navegador a navegador, sin servidor)

Para audiencias pequeñas o peer-to-peer simple, usa WebRTC con un servidor de señalización. Librerías: PeerJS, simple-peer. Más complejo de escalar.

Incrustar la transmisión

HLS (HTTP Live Streaming) — Más compatible

<video id="webcam" controls playsinline> <source src="https://tu-transmision.m3u8" type="application/x-mpegURL"> Tu navegador no soporta HLS. </video> <script src="https://cdn.jsdelivr.net/npm/hls.js@latest/dist/hls.min.js"></script> <script> if (Hls.isSupported()) { var video = document.getElementById('webcam'); var hls = new Hls(); hls.loadSource('https://tu-transmision.m3u8'); hls.attachMedia(video); } </script>

Inserción de Mux / Cloudflare Stream / Vimeo

Usa su iframe o SDK de reproductor de JavaScript proporcionado.

Consideraciones críticas

  • Privacidad/GDPR/CCPA: Informa a los visitantes, obtén consentimiento si grabas, evita capturar a personas que no consienten.
  • Ancho de banda/Costos: La transmisión consume un ancho de banda de salida significativo. Monitorea el uso en planes de pago.
  • Seguridad: Usa transmisiones autenticadas (URL firmadas, tokens) para feeds privados. Desactiva el listado de directorios.
  • Respaldo: Proporciona una imagen estática o mensaje "fuera de servicio" cuando la transmisión está caída.
  • Móvil: Prueba en iOS Safari (requiere playsinline) y Android Chrome.

Alternativa más simple: Actualización de imagen estática

Para actualizaciones de baja frecuencia (clima, construcción), usa un script que suba instantáneas de la cámara a tu servidor mediante FTP/HTTP POST, luego muestra con actualización de JavaScript:

<img id="cam" src="ultima.jpg?nocache=1"> <script>setInterval(()=>document.getElementById('cam').src='ultima.jpg?'+Date.now(),30000)</script>