How Do I Stream Video From My USB Webcam To A Remote HTML Page

X0r0N picture X0r0N · Sep 2, 2015 · Viewed 19k times · Source

I want to create a program that will stream video from my USB webcam over the internet to a web page.

Currently, I use a webservice that when triggered, calls fswebcam to capture an image, save to data store, convert to base64 binary and send that data over to the HTML page where it is rendered into the 'src' attribute of 'img'. The HTML page has JavaScript that calls this service once per second.

As you can tell this is a horrible way to do this. I would rather have a proper stream if I can. But I don't know what technologies are available to achieve this.

The webservice is written in nodeJS. The server is running on a raspberry pi 2. I didn't put this question in the raspberry pi forum because I think it's a general Linux/programming issue.

Answer

Dean Meehan picture Dean Meehan · Feb 16, 2018

Use a framework like livecam.

Webcam live-streaming solution using GStreamer and Node.js

This module allows you to stream your webcam over a network to be consumed by your browser and/or streamed to a file. See documentation for more inforamtion.

Usage:

// npm install livecam

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

webcam_server.broadcast();