Come incorporare una webcam dal vivo sul tuo sito web: guida completa
Aggiungere un feed di webcam dal vivo al tuo sito web consente lo streaming in tempo reale per eventi, monitoraggio o esperienze interattive. Ecco una guida pratica all'implementazione.
Prerequisiti
- Una webcam funzionante (USB, IP camera o integrata)
- Server web o hosting (shared, VPS, cloud)
- Conoscenza di base HTML/JavaScript
- Software o servizio di streaming
Metodo 1: Software di streaming + Embed (Consigliato)
Usando OBS Studio (Gratuito, Open Source)
- Installa OBS Studio sul computer connesso alla webcam.
- Aggiungi la sorgente "Dispositivo di cattura video" → seleziona la tua webcam.
- Configura l'output: Impostazioni → Stream → scegli "Personalizzato" → inserisci il tuo server di streaming (vedi sotto).
- Avvia lo streaming in OBS.
Opzioni di server di streaming
- Self-hosted: OBS WebSocket + NodeMediaServer (RTMP) o MediaMTX (SRT/RTMP/HLS). Richiede competenze di amministrazione server.
- Servizi gestiti: Mux, Livepeer, Cloudflare Stream, Vimeo Livestream, StreamYard. Più facili; forniscono codici embed.
- Piattaforme social: YouTube Live, Twitch, Facebook Live—ottieni il codice embed dalle loro opzioni "Condividi".
Metodo 2: WebRTC (Browser-to-Browser, nessun server)
Per semplici peer-to-peer o piccoli pubblici, usa WebRTC con un server di segnalazione. Librerie: PeerJS, simple-peer. Più complesso da scalare.
Incorporare lo stream
HLS (HTTP Live Streaming) — Il più compatibile
<video id="webcam" controls playsinline> <source src="https://your-stream.m3u8" type="application/x-mpegURL"> Your browser doesn't support 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://your-stream.m3u8'); hls.attachMedia(video); } </script> Embed Mux / Cloudflare Stream / Vimeo
Usa il loro iframe o JavaScript player SDK fornito.
Considerazioni critiche
- Privacy/GDPR/CCPA: Informa i visitatori, ottieni consenso se registri, evita di riprendere persone non consenzienti.
- Banda/Costi: Lo streaming consuma molta banda in uscita. Monitora l'uso sui piani a pagamento.
- Sicurezza: Usa stream autenticati (URL firmati, token) per feed privati. Disabilita l'elenco delle directory.
- Fallback: Fornisci un'immagine statica o messaggio "offline" quando lo stream è inattivo.
- Mobile: Testa su iOS Safari (richiede
playsinline) e Android Chrome.
Alternativa più semplice: Aggiornamento immagine statica
Per aggiornamenti a bassa frequenza (meteo, costruzione), usa uno script che invia snapshot dalla camera al tuo server tramite FTP/HTTP POST, poi visualizza con refresh JavaScript:
<img id="cam" src="latest.jpg?nocache=1"> <script>setInterval(()=>document.getElementById('cam').src='latest.jpg?'+Date.now(),30000)</script>