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)
- Instala OBS Studio en la computadora conectada a la webcam.
- Agrega la fuente "Dispositivo de captura de video" → selecciona tu webcam.
- Configura la salida: Configuración → Transmisión → elige "Personalizado" → ingresa tu servidor de transmisión (ver más abajo).
- Inicia la transmisión en OBS.
Opciones de servidor de transmisión
- Autoalojado: OBS WebSocket + NodeMediaServer (RTMP) o MediaMTX (SRT/RTMP/HLS). Requiere habilidades de administración de servidor.
- Servicios gestionados: Mux, Livepeer, Cloudflare Stream, Vimeo Livestream, StreamYard. Más fáciles; proporcionan códigos de inserción.
- Plataformas sociales: YouTube Live, Twitch, Facebook Live—obtén el código de inserción desde sus opciones "Compartir".
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>
- ·Revisión del trípode de aluminio Sirui T-004X
- ·Sony Bloggie MHS-PM5 [Análisis]
- ·Mi objetivo favorito: Sigma 24-105 mm f/4 Art
- ·Canon EOS M anunciada: primera sin espejo de Canon
- ·Reseña de la Nikon D800E
- ·Cómo subir el volumen de tu videocámara
- ·Revisión del kit de limpieza de sensor VSGO
- ·Cómo evitar un sensor DSLR sucio: prevención y limpieza
- Sistema Cotton Carrier: porta-cámara de pecho para fotógrafos activos
- 5 pasos sencillos para elegir el objetivo fijo perfecto para ti
- Análisis del objetivo Fujifilm Fujinon XF 100-400mm f/4.5-5.6 R LM OIS WR
- Reseña: Kit cámara sin espejo Canon EOS M50
- Nikon anuncia la D780, actualización de la popular D750
- 5 razones para usar un objetivo de 50 mm en fotografía de paisajes
