API mit .npz
This commit is contained in:
18
server.js
18
server.js
@@ -36,6 +36,20 @@ const H264 = {
|
||||
};
|
||||
const MSE_CODEC = process.env.H264_MSE_CODEC ?? mseCodecString(H264.profile, process.env.H264_LEVEL ?? '1F');
|
||||
|
||||
// ── Kalibrierungsdaten laden (data/calibration/{id}/calibration.npz) ──────────
|
||||
// Einmalig beim Start in den RAM; kein fs-Zugriff pro Request.
|
||||
function loadCalibrations(camsConfig) {
|
||||
const calib = {};
|
||||
for (const cam of camsConfig) {
|
||||
const p = path.join(__dirname, 'data', 'calibration', cam.id, 'calibration.npz');
|
||||
if (fs.existsSync(p)) {
|
||||
calib[cam.id] = fs.readFileSync(p);
|
||||
console.log(` Kalibrierung: ${cam.id} (${calib[cam.id].length} Bytes)`);
|
||||
}
|
||||
}
|
||||
return calib;
|
||||
}
|
||||
|
||||
// ── cameras.json → CameraSwitch-Instanzen ─────────────────────────────────────
|
||||
const CAMERAS_PATH = path.join(__dirname, 'cameras.json');
|
||||
let camerasJson;
|
||||
@@ -56,6 +70,8 @@ if (!Array.isArray(camsConfig) || camsConfig.length === 0) {
|
||||
console.error('cameras.json: "cameras" muss ein nicht-leeres Array sein'); process.exit(1);
|
||||
}
|
||||
|
||||
const calibrations = loadCalibrations(camsConfig);
|
||||
|
||||
const switches = {};
|
||||
const camsMeta = []; // { id, device, name, position, stream, hires, note }
|
||||
for (const cam of camsConfig) {
|
||||
@@ -95,7 +111,7 @@ app.use(express.json()); // POST /api/config liest JSON-Body
|
||||
// ── 1. Eigene Endpunkte ───────────────────────────────────────────────────────
|
||||
app.use('/api/snapshot', createSnapshotRouter(switches, camsMeta));
|
||||
app.use('/api/stream', createStreamRouter(switches));
|
||||
app.use('/api/cameras', createCamerasRouter(camsMeta));
|
||||
app.use('/api/cameras', createCamerasRouter(camsMeta, calibrations));
|
||||
app.use('/api/config', createConfigRouter({
|
||||
switches, camsMeta,
|
||||
getCamerasJson: () => camerasJson,
|
||||
|
||||
Reference in New Issue
Block a user