लिनक्स पर मोशन का उपयोग करके एक एमजेपीईजी स्ट्रीम पाइप करें, हर वेबकैम को अपने बंदरगाह पर स्ट्रीम के रूप में कार्य किया जाता है। अब मैं उन धाराओं को सेवा देना चाहता हूं, सभी एक ही बंदरगाह पर, Node.js. का उपयोग कर।एक Node.js प्रॉक्सी
- संपादित करें: यह समाधान अब काम करता है। मैं (अपने मोशन config में जो था, "BoundaryString") मूल mjpeg धारा से सीमा स्ट्रिंग प्राप्त करने के लिए आवश्यक
app.get('/motion', function(req, res) {
var boundary = "BoundaryString";
var options = {
// host to forward to
host: '192.168.1.2',
// port to forward to
port: 8302,
// path to forward to
path: '/',
// request method
method: 'GET',
// headers to send
headers: req.headers
};
var creq = http.request(options, function(cres) {
res.setHeader('Content-Type', 'multipart/x-mixed-replace;boundary="' + boundary + '"');
res.setHeader('Connection', 'close');
res.setHeader('Pragma', 'no-cache');
res.setHeader('Cache-Control', 'no-cache, private');
res.setHeader('Expires', 0);
res.setHeader('Max-Age', 0);
// wait for data
cres.on('data', function(chunk){
res.write(chunk);
});
cres.on('close', function(){
// closed, let's end client request as well
res.writeHead(cres.statusCode);
res.end();
});
}).on('error', function(e) {
// we got an error, return 500 error to client and log error
console.log(e.message);
res.writeHead(500);
res.end();
});
creq.end();
});
मैं इस/गति के रूप में 192.168.1.2:8302 पर mjpeg धारा में कार्य करता है लगता होगा , लेकिन यह नहीं करता है। शायद क्योंकि यह कभी समाप्त नहीं होता है, और यह प्रॉक्सी उदाहरण वास्तव में एक स्ट्रीमिंग उदाहरण नहीं था?
आप इसके बजाय nginx का उपयोग कर देख सकते हैं। – david
इसे एक नोड समाधान होना चाहिए – skerit