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.
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();