Come faccio a trasmettere video dalla mia webcam USB a una pagina HTML remota

Voglio creare un programma che trasmetterà video dalla mia webcam USB su Internet a una pagina web.

Attualmente, utilizzo un servizio web che, una volta triggersto, richiama fswebcam per acquisire un’immagine, salva nell’archivio dati, converte in binario base64 e invia tali dati alla pagina HTML in cui viene eseguito il rendering nell’attributo ‘src’ di ‘img’. La pagina HTML ha JavaScript che chiama questo servizio una volta al secondo.

Come puoi dire questo è un modo orribile per farlo. Preferirei avere un stream adeguato se posso. Ma non so quali tecnologie sono disponibili per raggiungere questo objective.

Il webservice è scritto in nodeJS . Il server è in esecuzione su un raspberry pi 2 . Non ho inserito questa domanda nel raspberry pi forum perché penso che sia un problema generale di Linux/programming .

L’articolo qui spiega l’intero processo nel modo più semplice ansible con immagini funzionanti. Questo è il modo in cui Linux lo fa, non uno script node.js Sto affermando qui la parte principale di questo.

  • Connettiti con il tuo Pi usando l’indirizzo IP. ‘pi’ e ‘raspberry’ è il predefinito ‘login as’ e ‘password’ in Raspbian.

  • Per aggiornare il tipo di sistema nel comando sudo apt-get update e sudo apt-get upgrade uno alla volta.

  • Digitare il comando sudo apt-get install motion per avviare l’installazione.

  • Ora per assicurarti che la fotocamera sia rilevata correttamente, digita il comando lsusb e digita. Dovresti vedere il nome della tua videocamera. Se NON c’è, allora c’è qualche problema nella tua fotocamera o la fotocamera non è supportata in ‘movimento’.

  • Al termine dell’installazione, digitare il comando sudo nano /etc/motion/motion.conf e premere sudo nano /etc/motion/motion.conf .

  • Quindi devi modificare alcune impostazioni nel file .conf . A volte potrebbe essere difficile trovare le impostazioni ma usare Ctrl + W per trovarlo. Quindi segui i passaggi:

    1. Assicurati che ‘daemon’ sia attivo.
    2. Imposta “framerate” ovunque tra 1000 e 1500.
    3. Mantieni “Stream_port” su 8081.
    4. ‘Stream_quality’ dovrebbe essere 100.
    5. Cambia “Stream_localhost” su OFF.
    6. Cambia “webcontrol_localhost” in OFF.
    7. Impostare ‘qualità’ su 100.
    8. Imposta “larghezza” e “altezza” su 640 e 480.
    9. Imposta “post_capture” su 5.
    10. Premere ctrl + x per uscire. Digitare y per salvare e immettere per conformarsi.
  • Digita nuovamente il comando sudo nano /etc/default/motion e premi invio.

  • Imposta start_motion_daemon su yes. Salva ed esci.

  • Prima di tutto è necessario riavviare il software di motion. Per farlo digita il comando sudo service motion restart e premi invio.

  • Digita nuovamente il comando sudo motion e premi invio. Ora il tuo server è pronto.

  • Ora apri il tuo browser. Digita l’indirizzo IP del tuo Raspberry Pi e il numero della porta in questo modo:

    192.168.0.107:8081 (Prima c’è l’indirizzo IP, quindi un ‘:’, quindi il numero della porta). Premere Invio.

Ora puoi vedere il feed live proveniente dalla tua webcam direttamente sul tuo laptop o cellulare o entrambi allo stesso tempo. Ma questa è una connessione locale. Per renderlo pubblico, imposta il tuo IP con uno pubblico in modo che tu possa accedervi da qualsiasi parte del mondo.

Usa una struttura come livecam .

Soluzione di live streaming della webcam con GStreamer e Node.js

Questo modulo ti consente di trasmettere la tua webcam su una rete per essere utilizzata dal tuo browser e / o da streaming in un file. Vedi la documentazione per maggiori informazioni.

Uso:

 // npm install livecam const LiveCam = require('livecam'); const webcam_server = new LiveCam({ 'start' : function() { console.log('WebCam server started!'); } }); webcam_server.broadcast();