From 91736294567db46f2f309f53c42f287622e21591 Mon Sep 17 00:00:00 2001 From: Georges-Etienne Legendre Date: Mon, 4 Feb 2013 13:39:06 -0500 Subject: A module version of this application, with express.js --- README.md | 84 ++++++++++++++++++++++++++++++++++++++++++++++++--------------- 1 file changed, 65 insertions(+), 19 deletions(-) (limited to 'README.md') diff --git a/README.md b/README.md index 8bfd2cf..ff44e68 100644 --- a/README.md +++ b/README.md @@ -1,41 +1,87 @@ node-mjpeg-proxy ================ -This is a simple implementation of a MJPEG proxy written with node.js. +A node.js module to proxy MJPEG requests. Supports multiple client consuming a single stream. Fixes an iOS 6 issue with some MJPEG steams. -## Documentation +Installation +------------ + +From npm: + +``` bash +$ npm install mjpeg-proxy +``` + +From source: + +``` bash +$ git clone https://github.com/legege/node-mjpeg-proxy.git +$ cd node-mjpeg-proxy +$ npm install +``` + +Example +------- ### Example Usage - var mpjegproxy = require("./lib/node-mjpeg-proxy"); - mpjegproxy.createProxy("http://192.1.2.3:8080/videofeed"); +``` js +var MjpegProxy = require('mjpeg-proxy').MjpegProxy; +var express = require('express'); +var app = express(); + +app.get('/index1.jpg', new MjpegProxy('http://admin:admin@192.168.1.109/cgi/mjpg/mjpg.cgi').proxyRequest); +app.listen(8080); +``` + +Here, it will create a proxy to the source video feed (`http://admin:admin@192.168.1.109/cgi/mjpg/mjpg.cgi`). You can now access the feed at `http://localhost:8080/index1.jpg`. -Here, it will create a proxy to the source video feed (http://192.1.2.3:8080/videofeed) with the default options (below). You can now access the feed at http://localhost:5080/ . +API +--- -### Proxy +### MjpegProxy - Proxy.createProxy(sourceURL, [options]); +``` js +var mjpegProxy = new MjpegProxy(mjpegUrl); +``` -Returns: a `Proxy` instance. +Returns: a `MjpegProxy` instance for the MJPEG stream at `mjpegUrl` URL. -Arguments: +Credits +------- -- *sourceURL* +Original prototype version from: - The source URL of the MJPEG feed to be proxied. + * Phil Rene ([philrene](http://github.com/philrene)) + * Chris Chua ([chrisirhc](http://github.com/chrisirhc)) -Options: +License +------- -- *port* +(The MIT License) - The destination port. Defaults to `5080`. +Copyright (C) 2012, Georges-Etienne Legendre -## TODO +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to permit +persons to whom the Software is furnished to do so, subject to the +following conditions: -- Add a resource URL so that it can serve on certain resource URLs rather than require its onw http.Server instance. +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. -## Credits +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +USE OR OTHER DEALINGS IN THE SOFTWARE. -- Phil Rene ([philrene](http://github.com/philrene)) +A different license may apply to other software included in this package, +including libftdi and libusb. Please consult their respective license files +for the terms of their individual licenses. -- Chris Chua ([chrisirhc](http://github.com/chrisirhc)) -- cgit v1.2.1