A stalker of IP cameras
What is this?
A high performance web proxy for serving MJPG streams to the masses.
IPCamera (1) <-> (1) paparazzi.js (1) <-> (N) Users
IP cameras can't handle web traffic
IP cameras are slow devices that can't handle a regular amount of web traffic. So if you plan to go public with an IP camera you have the following options:
Server side
# Initialize
# Same parameters as requst.get https://github.com/request/request
paparazzi = new Paparazzi
url: 'http://67.109.86.186/mjpg/video.mjpg'
auth:
user: 'admin'
password: 'admin'
sendImmediately: false
paparazzi.on "update", (image) =>
console.log "Downloaded #{image.length} bytes"
paparazzi.on 'error', (error) =>
console.log "Error: #{error.message}"
paparazzi.start()
# Serve image
# Take a look at server.coffee
Client side
You can simulate MJPG streaming by requesting new images on a specific interval. Appending a random parameter avoids caching.
// JavaScript example using jQuery
// Active camera will refresh every 2 seconds
var TIMEOUT = 2000;
var refreshInterval = setInterval(function() {
var random = Math.floor(Math.random() * Math.pow(2, 31));
$('img#camera').attr('src', 'http://localhost:3000/camera?i=' + random);
}, TIMEOUT);
<!-- In your HTML output -->
<img src='' id='camera' />
$ make run
For a list of tested cameras check "List of tested cameras" in the wiki section.
The MIT License (MIT)
Original Author: Rodolfo Wilhelmy, AMA on Twitter <@rodowi>
Maintainer: Nick Robinson, Twitter <@Nrobinson33>