const express = require("express");
Stream = require("node-rtsp-stream");
const app = express();
const rtsp_url = "rtsp://10.1.178.150:554/2337/rtsp://100429_8:554/";
let streams = [];
function setNew(id,rtsp) {
// console.log("MediaList", rtsp,id);
let stream = new Stream({
name: 'name',
streamUrl: rtsp ? rtsp : rtsp_url,
wsPort: `${id}`,
ffmpegOptions: {
'-stats': "",
'-r': 25,
'-s': '1024 768',
'-b:v': '4000k',
'-qscale': 1
}
});
streams.push(stream);
}
app.get("/openStreamUrl", (req, res) => {
res.setHeader("Access-Control-Allow-Origin", "*");
res.send({
code: 200,
message: '获取成功',
data: req.query,
});
setNew(req.query.id,req.query.streamUrl ? req.query.streamUrl : "rtsp://10.1.178.150:554/");
return;
});
app.get('/closeStreamUrl', (req, res) => {
res.setHeader("Access-Control-Allow-Origin", "*");
if (streams != 'undefined' && streams.length > 0) {
for(let i=0;i<streams.length;i++){
if(streams[i]){
if (streams[i].wsPort === req.query.id) {
streams[i].wsServer.close();
streams[i].mpeg1Muxer.stream.kill();
streams.splice(i,1);
break;
}
}
}
res.send({
code: 200,
message: '关闭成功',
});
return;
} else {
res.send({
code: 400,
message: '无可关闭流',
});
return;
}
});
app.listen(3000, () => {
console.log("sever is Runing");
});