@similie/hyphen-rtsp-tunnel 1.1.3 → 1.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -18,7 +18,7 @@ export type SnapshotFailedEvent = {
18
18
  deviceId: string;
19
19
  payloadId: string | null;
20
20
  remote: string;
21
- stage: "hello" | "auth" | "capture" | "proxy" | "unknown" | "store";
21
+ stage: "hello" | "auth" | "capture" | "proxy" | "unknown" | "store" | "queue";
22
22
  error: string;
23
23
  };
24
24
  export declare class RtspTunnelEvents extends EventEmitter {
@@ -1 +1 @@
1
- {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/services/events.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,MAAM,MAAM,qBAAqB,GAAG;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,qBAAqB,GAAG;IACxD,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,OAAO,CAAC;IACpE,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,qBAAa,gBAAiB,SAAQ,YAAY;IAChD,YAAY,CAAC,CAAC,EAAE,qBAAqB;IAGrC,UAAU,CAAC,CAAC,EAAE,mBAAmB;IAGjC,UAAU,CAAC,CAAC,EAAE,mBAAmB;CAGlC"}
1
+ {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/services/events.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,MAAM,MAAM,qBAAqB,GAAG;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,qBAAqB,GAAG;IACxD,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,OAAO,GAAG,OAAO,CAAC;IAC9E,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,qBAAa,gBAAiB,SAAQ,YAAY;IAChD,YAAY,CAAC,CAAC,EAAE,qBAAqB;IAGrC,UAAU,CAAC,CAAC,EAAE,mBAAmB;IAGjC,UAAU,CAAC,CAAC,EAAE,mBAAmB;CAGlC"}
@@ -21,6 +21,9 @@ export declare class RtspTunnelGateway {
21
21
  private readonly requireAuth;
22
22
  private readonly helloWaitMs;
23
23
  private readonly captureTimeoutMs;
24
+ private readonly queueMax;
25
+ private readonly queuePerDevice;
26
+ private readonly queueLogEvery;
24
27
  private server;
25
28
  private wss;
26
29
  private proxyServer;
@@ -28,6 +31,10 @@ export declare class RtspTunnelGateway {
28
31
  private sessions;
29
32
  private globalCaptureInFlight;
30
33
  private globalCaptureSessionId;
34
+ private captureQueue;
35
+ private queuedCountByDevice;
36
+ private draining;
37
+ private enqueueCount;
31
38
  private started;
32
39
  constructor(ctx: ModuleContext);
33
40
  private deviceSensorsKey;
@@ -49,8 +56,11 @@ export declare class RtspTunnelGateway {
49
56
  private verifyAuth;
50
57
  private pullCameraProfile;
51
58
  private buildTunnelParams;
59
+ private dequeueSessionEntries;
60
+ private enqueueCapture;
61
+ private drainQueue;
62
+ private runCaptureForSession;
52
63
  private captureOnce;
53
- private maybeAutoCapture;
54
64
  private parseHello;
55
65
  private onConnection;
56
66
  private onProxyConnection;
@@ -1 +1 @@
1
- {"version":3,"file":"rtsp-tunnel-gateway.d.ts","sourceRoot":"","sources":["../../src/services/rtsp-tunnel-gateway.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE/C,OAAO,EACL,KAAK,aAAa,EAEnB,MAAM,sCAAsC,CAAC;AAwB9C,MAAM,MAAM,sBAAsB,GAAG;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAgB;IACpC,SAAgB,MAAM,mBAA0B;IAEhD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAyC;IAChE,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA4C;IAEtE,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAuC;IAC7D,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA8B;IACtD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA6B;IAEpD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAmC;IAC3D,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA8B;IACtD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAuC;IAEhE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAEqC;IAE5D,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA6C;IACzE,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA6C;IAEzE,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA+C;IAC3E,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAE/B;IAGF,OAAO,CAAC,MAAM,CAA2C;IACzD,OAAO,CAAC,GAAG,CAAgC;IAC3C,OAAO,CAAC,WAAW,CAA2B;IAC9C,OAAO,CAAC,IAAI,CAAa;IACzB,OAAO,CAAC,QAAQ,CAA8B;IAE9C,OAAO,CAAC,qBAAqB,CAAS;IACtC,OAAO,CAAC,sBAAsB,CAAuB;IAErD,OAAO,CAAC,OAAO,CAAS;gBAEZ,GAAG,EAAE,aAAa;IAK9B,OAAO,CAAC,gBAAgB;IAIxB,OAAO,CAAC,WAAW;YAIL,UAAU;IAWlB,6BAA6B,CACjC,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAMnB,oBAAoB,CAAC,QAAQ,EAAE,MAAM;IAYrC,KAAK;IAkCL,IAAI;IAsCV,OAAO,CAAC,eAAe;IAUvB,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,SAAS;IASjB,OAAO,CAAC,QAAQ;IAIhB,OAAO,CAAC,QAAQ;IAOhB,OAAO,CAAC,SAAS;IAMjB,OAAO,CAAC,QAAQ;IAMhB,OAAO,CAAC,YAAY;YAMN,UAAU;YAQV,iBAAiB;YAwBjB,iBAAiB;YAajB,WAAW;IAuFzB,OAAO,CAAC,gBAAgB;IAqDxB,OAAO,CAAC,UAAU;IAkBlB,OAAO,CAAC,YAAY;IAkLpB,OAAO,CAAC,iBAAiB;CAwC1B"}
1
+ {"version":3,"file":"rtsp-tunnel-gateway.d.ts","sourceRoot":"","sources":["../../src/services/rtsp-tunnel-gateway.ts"],"names":[],"mappings":"AAqBA,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAG/C,OAAO,EACL,KAAK,aAAa,EAEnB,MAAM,sCAAsC,CAAC;AA+B9C,MAAM,MAAM,sBAAsB,GAAG;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AASF,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAgB;IACpC,SAAgB,MAAM,mBAA0B;IAGhD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAyC;IAChE,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA4C;IAEtE,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAuC;IAC7D,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA8B;IACtD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA6B;IAEpD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAmC;IAC3D,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA8B;IACtD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAuC;IAEhE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAEqC;IAE5D,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA6C;IACzE,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA6C;IAEzE,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA+C;IAC3E,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAE/B;IAGF,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAkD;IAC3E,OAAO,CAAC,QAAQ,CAAC,cAAc,CAE7B;IACF,OAAO,CAAC,QAAQ,CAAC,aAAa,CAE5B;IAGF,OAAO,CAAC,MAAM,CAA2C;IACzD,OAAO,CAAC,GAAG,CAAgC;IAC3C,OAAO,CAAC,WAAW,CAA2B;IAC9C,OAAO,CAAC,IAAI,CAAa;IAEzB,OAAO,CAAC,QAAQ,CAA8B;IAG9C,OAAO,CAAC,qBAAqB,CAAS;IACtC,OAAO,CAAC,sBAAsB,CAAuB;IAGrD,OAAO,CAAC,YAAY,CAAmB;IACvC,OAAO,CAAC,mBAAmB,CAA6B;IACxD,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,YAAY,CAAK;IAEzB,OAAO,CAAC,OAAO,CAAS;gBAEZ,GAAG,EAAE,aAAa;IAK9B,OAAO,CAAC,gBAAgB;IAIxB,OAAO,CAAC,WAAW;YAIL,UAAU;IAUlB,6BAA6B,CACjC,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAMnB,oBAAoB,CAAC,QAAQ,EAAE,MAAM;IAUrC,KAAK;IAoCL,IAAI;IA2CV,OAAO,CAAC,eAAe;IAUvB,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,SAAS;IASjB,OAAO,CAAC,QAAQ;IAIhB,OAAO,CAAC,QAAQ;IAMhB,OAAO,CAAC,SAAS;IAMjB,OAAO,CAAC,QAAQ;IAMhB,OAAO,CAAC,YAAY;YAIN,UAAU;YAQV,iBAAiB;YAqBjB,iBAAiB;IAc/B,OAAO,CAAC,qBAAqB;IAyB7B,OAAO,CAAC,cAAc;YAgER,UAAU;YAqCV,oBAAoB;YAyDpB,WAAW;IAwFzB,OAAO,CAAC,UAAU;IAiBlB,OAAO,CAAC,YAAY;IAmMpB,OAAO,CAAC,iBAAiB;CAyC1B"}
@@ -1,3 +1,14 @@
1
+ // rtsp-tunnel-gateway.ts (Phase 1: queued, single-proxy, single-capture at a time)
2
+ // Notes:
3
+ // - Keeps your single local TCP proxy (PROXY_PORT) and still only runs 1 ffmpeg capture at a time
4
+ // - Adds a FIFO capture queue so multiple device sessions won't get "booted" just because a capture is in progress
5
+ // - De-dupes queue per deviceId (1 pending per device by default)
6
+ // - Cleans up queue entries when sessions close
7
+ //
8
+ // Env knobs (optional):
9
+ // CAPTURE_QUEUE_MAX=200 # hard cap; oldest/newest handling is "reject new"
10
+ // CAPTURE_QUEUE_PER_DEVICE=1 # max pending per device (default 1)
11
+ // CAPTURE_QUEUE_LOG_EVERY=10 # log queue stats every N enqueues (default 10)
1
12
  import fs from "node:fs";
2
13
  import http from "node:http";
3
14
  import https from "node:https";
@@ -29,15 +40,24 @@ export class RtspTunnelGateway {
29
40
  requireAuth = (process.env.REQUIRE_AUTH ?? "0") === "1";
30
41
  helloWaitMs = Number(process.env.HELLO_WAIT_MS ?? "2000");
31
42
  captureTimeoutMs = Number(process.env.CAPTURE_TIMEOUT_MS ?? "45000");
43
+ // Queue controls
44
+ queueMax = Number(process.env.CAPTURE_QUEUE_MAX ?? "200");
45
+ queuePerDevice = Number(process.env.CAPTURE_QUEUE_PER_DEVICE ?? "1");
46
+ queueLogEvery = Number(process.env.CAPTURE_QUEUE_LOG_EVERY ?? "10");
32
47
  // ---- runtime ----
33
48
  server = null;
34
49
  wss = null;
35
50
  proxyServer = null;
36
51
  auth;
37
52
  sessions = new Map();
38
- // private sensors = new Map<string, any>();
53
+ // Single active capture pairing for the single TCP proxy server
39
54
  globalCaptureInFlight = false;
40
55
  globalCaptureSessionId = null;
56
+ // Queue state
57
+ captureQueue = [];
58
+ queuedCountByDevice = new Map();
59
+ draining = false;
60
+ enqueueCount = 0;
41
61
  started = false;
42
62
  constructor(ctx) {
43
63
  this.ctx = ctx;
@@ -52,9 +72,8 @@ export class RtspTunnelGateway {
52
72
  async pullDevice(identity) {
53
73
  const key = this.deviceIdKey(identity);
54
74
  const stored = await RedisCache.get(key);
55
- if (stored) {
75
+ if (stored)
56
76
  return stored;
57
- }
58
77
  const device = await this.auth.device(identity);
59
78
  await RedisCache.set(key, device);
60
79
  return device || {};
@@ -67,13 +86,11 @@ export class RtspTunnelGateway {
67
86
  async pullDeviceSensorMeta(identity) {
68
87
  const key = this.deviceSensorsKey(identity);
69
88
  const stored = await RedisCache.get(key);
70
- if (stored) {
89
+ if (stored)
71
90
  return stored;
72
- }
73
91
  const { values } = await this.auth.deviceSensors(identity);
74
92
  await RedisCache.set(key, values);
75
93
  return values;
76
- //
77
94
  }
78
95
  async start() {
79
96
  if (this.started)
@@ -91,17 +108,21 @@ export class RtspTunnelGateway {
91
108
  await new Promise((resolve) => {
92
109
  this.server.listen(this.wsPort, "0.0.0.0", () => resolve());
93
110
  });
94
- // Local TCP proxy
111
+ // Local TCP proxy (single port) for ffmpeg
95
112
  this.proxyServer = net.createServer((sock) => this.onProxyConnection(sock));
96
113
  await new Promise((resolve) => {
97
114
  this.proxyServer.listen(this.proxyPort, "127.0.0.1", () => resolve());
98
115
  });
99
- this.ctx.log(`[rtsp-tunnel] gateway started wsPort=${this.wsPort} tls=${this.wsTls ? "on" : "off"} proxyPort=${this.proxyPort}`);
116
+ this.ctx.log(`[rtsp-tunnel] gateway started wsPort=${this.wsPort} tls=${this.wsTls ? "on" : "off"} proxyPort=${this.proxyPort} queueMax=${this.queueMax} queuePerDevice=${this.queuePerDevice}`);
100
117
  }
101
118
  async stop() {
102
119
  if (!this.started)
103
120
  return;
104
121
  this.started = false;
122
+ // Stop queue
123
+ this.captureQueue = [];
124
+ this.queuedCountByDevice.clear();
125
+ this.draining = false;
105
126
  // Clean sessions
106
127
  for (const s of this.sessions.values()) {
107
128
  try {
@@ -153,7 +174,6 @@ export class RtspTunnelGateway {
153
174
  return ws.readyState === WebSocket.OPEN;
154
175
  }
155
176
  sendOpen(ws) {
156
- // OPEN signal only; device uses build-flag camera host/port.
157
177
  try {
158
178
  ws.send(Buffer.from([3]));
159
179
  }
@@ -174,21 +194,17 @@ export class RtspTunnelGateway {
174
194
  makeNonceB64() {
175
195
  return crypto.randomBytes(24).toString("base64");
176
196
  }
177
- // ---- AUTH HOOK (stub) ----
178
- // Later: use ctx + ellipsies/models to load public key by deviceId and verify signature.
179
197
  async verifyAuth(deviceId, nonceB64, sigB64) {
180
198
  return this.auth.verify(deviceId, nonceB64, sigB64);
181
199
  }
182
200
  async pullCameraProfile(identity) {
183
201
  const sensorMeta = (await this.pullDeviceSensorMeta(identity)) || {};
184
- if (!sensorMeta || !Object.keys(sensorMeta).length) {
202
+ if (!sensorMeta || !Object.keys(sensorMeta).length)
185
203
  return null;
186
- }
187
204
  for (const s in sensorMeta) {
188
205
  const meta = sensorMeta[s]?.meta || {};
189
- if (!meta) {
206
+ if (!meta)
190
207
  continue;
191
- }
192
208
  const keys = Object.keys(meta);
193
209
  if (keys.includes("RTSP_PATH") ||
194
210
  keys.includes("CAM_USER") ||
@@ -200,16 +216,193 @@ export class RtspTunnelGateway {
200
216
  }
201
217
  async buildTunnelParams(identity) {
202
218
  const cmProfile = await this.pullCameraProfile(identity);
203
- // console.log("[rtsp-tunnel] buildTunnelParams cmProfile=", { cmProfile });
204
219
  const defProfile = {
205
- camUser: cmProfile.CAM_USER || this.camUser,
206
- camPass: cmProfile.CAM_PASS || this.camPass,
207
- rtspPath: cmProfile.RTSP_PATH || this.rtspPath,
220
+ camUser: cmProfile?.CAM_USER || this.camUser,
221
+ camPass: cmProfile?.CAM_PASS || this.camPass,
222
+ rtspPath: cmProfile?.RTSP_PATH || this.rtspPath,
208
223
  };
209
224
  return defProfile;
210
225
  }
226
+ // ---------- Queue helpers ----------
227
+ dequeueSessionEntries(session) {
228
+ // Remove any queue entries for this session
229
+ if (!session.queued)
230
+ return;
231
+ const before = this.captureQueue.length;
232
+ this.captureQueue = this.captureQueue.filter((q) => q.sid !== session.id);
233
+ const after = this.captureQueue.length;
234
+ const dev = session.deviceId;
235
+ const n = this.queuedCountByDevice.get(dev) ?? 0;
236
+ if (n > 1)
237
+ this.queuedCountByDevice.set(dev, n - 1);
238
+ else
239
+ this.queuedCountByDevice.delete(dev);
240
+ session.queued = false;
241
+ if (before !== after) {
242
+ this.ctx.log("[rtsp-tunnel] dequeue stale session", {
243
+ sid: session.id,
244
+ device: dev,
245
+ removed: before - after,
246
+ q: after,
247
+ });
248
+ }
249
+ }
250
+ enqueueCapture(session, reason) {
251
+ if (!this.autoCapture)
252
+ return;
253
+ if (!this.isWsOpen(session.ws))
254
+ return;
255
+ if (session.closed)
256
+ return;
257
+ if (session.captureActive)
258
+ return;
259
+ if (session.deviceId === "unknown")
260
+ return;
261
+ if (this.requireAuth && !session.authed)
262
+ return;
263
+ // enforce per-device pending limit
264
+ const dev = session.deviceId;
265
+ const pending = this.queuedCountByDevice.get(dev) ?? 0;
266
+ if (pending >= this.queuePerDevice) {
267
+ // already queued (or too many queued) for this device
268
+ return;
269
+ }
270
+ if (this.captureQueue.length >= this.queueMax) {
271
+ this.ctx.log("[rtsp-tunnel] capture queue full; dropping request", {
272
+ device: dev,
273
+ sid: session.id,
274
+ q: this.captureQueue.length,
275
+ max: this.queueMax,
276
+ });
277
+ // Optionally: emit failed with stage=queue
278
+ this.events.emitFailed({
279
+ sessionId: session.id,
280
+ deviceId: dev,
281
+ payloadId: session.payloadId,
282
+ remote: session.remote,
283
+ stage: "queue",
284
+ error: "capture queue full",
285
+ });
286
+ return;
287
+ }
288
+ this.captureQueue.push({
289
+ sid: session.id,
290
+ deviceId: dev,
291
+ enqueuedAt: Date.now(),
292
+ reason,
293
+ });
294
+ this.queuedCountByDevice.set(dev, pending + 1);
295
+ session.queued = true;
296
+ this.enqueueCount += 1;
297
+ if (this.enqueueCount % this.queueLogEvery === 0) {
298
+ this.ctx.log("[rtsp-tunnel] queue stats", {
299
+ q: this.captureQueue.length,
300
+ devicesQueued: this.queuedCountByDevice.size,
301
+ inFlight: this.globalCaptureInFlight,
302
+ });
303
+ }
304
+ else {
305
+ this.ctx.log("[rtsp-tunnel] capture queued", {
306
+ device: dev,
307
+ sid: session.id,
308
+ q: this.captureQueue.length,
309
+ });
310
+ }
311
+ void this.drainQueue();
312
+ }
313
+ async drainQueue() {
314
+ if (this.draining)
315
+ return;
316
+ this.draining = true;
317
+ try {
318
+ while (this.started) {
319
+ if (this.globalCaptureInFlight)
320
+ return;
321
+ const next = this.captureQueue.shift();
322
+ if (!next)
323
+ return;
324
+ // decrement per-device pending now that we're attempting it
325
+ const devPending = this.queuedCountByDevice.get(next.deviceId) ?? 0;
326
+ if (devPending > 1)
327
+ this.queuedCountByDevice.set(next.deviceId, devPending - 1);
328
+ else
329
+ this.queuedCountByDevice.delete(next.deviceId);
330
+ const session = this.sessions.get(next.sid);
331
+ if (!session)
332
+ continue;
333
+ session.queued = false;
334
+ // Validate again (session could have changed since enqueue)
335
+ if (session.closed || !this.isWsOpen(session.ws))
336
+ continue;
337
+ if (session.deviceId === "unknown")
338
+ continue;
339
+ if (this.requireAuth && !session.authed)
340
+ continue;
341
+ if (session.captureActive)
342
+ continue;
343
+ // Run capture (still 1 at a time)
344
+ await this.runCaptureForSession(session);
345
+ // Loop continues; captureOnce will clear globalCaptureInFlight
346
+ }
347
+ }
348
+ finally {
349
+ this.draining = false;
350
+ }
351
+ }
352
+ async runCaptureForSession(session) {
353
+ try {
354
+ this.ctx.log("[rtsp-tunnel] capture start", {
355
+ device: session.deviceId,
356
+ sid: session.id,
357
+ remote: session.remote,
358
+ q: this.captureQueue.length,
359
+ });
360
+ const params = await this.buildTunnelParams(session.deviceId);
361
+ const file = await this.captureOnce(session, params);
362
+ const capturedAt = new Date().toISOString();
363
+ this.events.emitCaptured({
364
+ sessionId: session.id,
365
+ deviceId: session.deviceId,
366
+ payloadId: session.payloadId,
367
+ remote: session.remote,
368
+ localPath: file,
369
+ capturedAt,
370
+ tzOffsetHours: session.tzOffsetHours ?? null,
371
+ });
372
+ this.ctx.log("[rtsp-tunnel] capture saved", {
373
+ device: session.deviceId,
374
+ sid: session.id,
375
+ file,
376
+ });
377
+ // snapshot-window behavior (keep as-is)
378
+ try {
379
+ session.ws.close();
380
+ }
381
+ catch { }
382
+ }
383
+ catch (e) {
384
+ this.ctx.log("[rtsp-tunnel] capture error", {
385
+ device: session.deviceId,
386
+ sid: session.id,
387
+ error: e?.message ?? String(e),
388
+ });
389
+ try {
390
+ session.ws.close();
391
+ }
392
+ catch { }
393
+ this.events.emitFailed({
394
+ sessionId: session.id,
395
+ deviceId: session.deviceId,
396
+ payloadId: session.payloadId,
397
+ remote: session.remote,
398
+ stage: "capture",
399
+ error: e?.message ?? "unknown error",
400
+ });
401
+ }
402
+ }
403
+ // ---------- capture core ----------
211
404
  async captureOnce(session, params) {
212
- if (!this.camPass)
405
+ if (!params.camPass)
213
406
  throw new Error("CAM_PASS is required");
214
407
  if (!this.isWsOpen(session.ws))
215
408
  throw new Error("WS not open");
@@ -224,7 +417,6 @@ export class RtspTunnelGateway {
224
417
  session.captureActive = true;
225
418
  const outFile = this.mkOutFile(session.deviceId);
226
419
  const rtspUrl = `rtsp://${encodeURIComponent(params.camUser)}:${encodeURIComponent(params.camPass)}@127.0.0.1:${this.proxyPort}${params.rtspPath}`;
227
- // console.log("[rtsp-tunnel] captureOnce rtspUrl=", { rtspUrl });
228
420
  const code = await new Promise((resolve) => {
229
421
  const ff = spawn("ffmpeg", [
230
422
  "-hide_banner",
@@ -234,13 +426,13 @@ export class RtspTunnelGateway {
234
426
  "tcp",
235
427
  "-i",
236
428
  rtspUrl,
237
- "-an", // no audio
429
+ "-an",
238
430
  "-frames:v",
239
431
  "1",
240
432
  "-q:v",
241
433
  "3",
242
434
  "-update",
243
- "1", // <-- single image output
435
+ "1",
244
436
  outFile,
245
437
  ], { stdio: ["ignore", "inherit", "inherit"] });
246
438
  session.ffmpeg = ff;
@@ -272,61 +464,7 @@ export class RtspTunnelGateway {
272
464
  throw new Error("ffmpeg success but file not found");
273
465
  return outFile;
274
466
  }
275
- maybeAutoCapture(session) {
276
- if (!this.autoCapture)
277
- return;
278
- if (!this.isWsOpen(session.ws))
279
- return;
280
- if (session.captureActive)
281
- return;
282
- if (this.globalCaptureInFlight)
283
- return;
284
- if (session.deviceId === "unknown")
285
- return;
286
- if (this.requireAuth && !session.authed)
287
- return;
288
- (async () => {
289
- try {
290
- this.ctx.log("[rtsp-tunnel] auto capture start", {
291
- device: session.deviceId,
292
- session: session.remote,
293
- });
294
- const params = await this.buildTunnelParams(session.deviceId);
295
- const file = await this.captureOnce(session, params);
296
- const capturedAt = new Date().toISOString();
297
- this.events.emitCaptured({
298
- sessionId: session.id,
299
- deviceId: session.deviceId,
300
- payloadId: session.payloadId,
301
- remote: session.remote,
302
- localPath: file,
303
- capturedAt,
304
- tzOffsetHours: session.tzOffsetHours ?? null,
305
- });
306
- this.ctx.log("[rtsp-tunnel] auto capture saved", file);
307
- // snapshot-window behavior
308
- try {
309
- session.ws.close();
310
- }
311
- catch { }
312
- }
313
- catch (e) {
314
- this.ctx.log("[rtsp-tunnel] auto capture error", e?.message ?? e);
315
- try {
316
- session.ws.close();
317
- }
318
- catch { }
319
- this.events.emitFailed({
320
- sessionId: session.id,
321
- deviceId: session.deviceId,
322
- payloadId: session.payloadId,
323
- remote: session.remote,
324
- stage: "capture",
325
- error: e?.message ?? "unknown error",
326
- });
327
- }
328
- })();
329
- }
467
+ // ---------- WS handling ----------
330
468
  parseHello(msg) {
331
469
  const parts = msg.trim().split(/\s+/);
332
470
  if (parts.length < 2)
@@ -335,7 +473,6 @@ export class RtspTunnelGateway {
335
473
  return null;
336
474
  // HELLO <deviceId>
337
475
  if (parts.length === 2) {
338
- ``;
339
476
  return { payloadId: null, deviceId: parts[1] || "" };
340
477
  }
341
478
  // HELLO <payloadId> <deviceId>
@@ -360,6 +497,7 @@ export class RtspTunnelGateway {
360
497
  helloTimer: null,
361
498
  closed: false,
362
499
  cleanup: () => { },
500
+ queued: false,
363
501
  };
364
502
  this.sessions.set(id, session);
365
503
  this.ctx.log("[rtsp-tunnel] device connected", { remote, id: `sid=${id}` });
@@ -369,6 +507,8 @@ export class RtspTunnelGateway {
369
507
  if (session.closed)
370
508
  return;
371
509
  session.closed = true;
510
+ // Remove any queued work for this session
511
+ this.dequeueSessionEntries(session);
372
512
  if (session.helloTimer) {
373
513
  clearTimeout(session.helloTimer);
374
514
  session.helloTimer = null;
@@ -399,8 +539,10 @@ export class RtspTunnelGateway {
399
539
  device: session.deviceId,
400
540
  remote,
401
541
  sid: id,
402
- why: why,
542
+ why,
403
543
  });
544
+ // In case the in-flight capture was canceled, try draining
545
+ void this.drainQueue();
404
546
  };
405
547
  session.cleanup = cleanup;
406
548
  ws.on("close", () => cleanup("ws_close"));
@@ -430,7 +572,8 @@ export class RtspTunnelGateway {
430
572
  if (!this.requireAuth) {
431
573
  session.authed = true;
432
574
  this.sendText(ws, "AUTH_OK");
433
- this.maybeAutoCapture(session);
575
+ // Phase 1 queue: enqueue instead of capture immediately
576
+ this.enqueueCapture(session, "auto");
434
577
  }
435
578
  return;
436
579
  }
@@ -462,7 +605,8 @@ export class RtspTunnelGateway {
462
605
  }
463
606
  session.authed = true;
464
607
  this.sendText(ws, "AUTH_OK");
465
- this.maybeAutoCapture(session);
608
+ // Phase 1 queue: enqueue instead of capture immediately
609
+ this.enqueueCapture(session, "auto");
466
610
  return;
467
611
  }
468
612
  return;
@@ -490,6 +634,7 @@ export class RtspTunnelGateway {
490
634
  catch { }
491
635
  }, this.helloWaitMs);
492
636
  }
637
+ // ---------- TCP proxy handling ----------
493
638
  onProxyConnection(ffSock) {
494
639
  this.ctx.log("[rtsp-tunnel] ffmpeg connected");
495
640
  const sid = this.globalCaptureSessionId;
@@ -1 +1 @@
1
- {"version":3,"file":"rtsp-tunnel-gateway.js","sourceRoot":"","sources":["../../src/services/rtsp-tunnel-gateway.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rtsp-tunnel-gateway.js","sourceRoot":"","sources":["../../src/services/rtsp-tunnel-gateway.ts"],"names":[],"mappings":"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"}
@@ -15,7 +15,7 @@ export class SqsNotifier {
15
15
  isFifo = false;
16
16
  ctx = null;
17
17
  constructor() {
18
- const queueUrl = process.env.SQS_QUEUE_URL?.trim();
18
+ const queueUrl = envTrim("SQS_QUEUE_URL");
19
19
  const region = envTrim("AWS_SQS_REGION") ?? envTrim("AWS_REGION") ?? "ap-southeast-1";
20
20
  if (!queueUrl) {
21
21
  this.enabled = false;
@@ -91,6 +91,7 @@ export class SqsNotifier {
91
91
  event: eventName,
92
92
  capturedAt: payload.capturedAt || null,
93
93
  at: payload.at || null,
94
+ tzOffsetHours: payload.tzOffsetHours ?? null,
94
95
  deviceId: payload.deviceId || "unknown",
95
96
  payloadId: payload.payloadId ?? null,
96
97
  sessionId: payload.sessionId || null,
@@ -1 +1 @@
1
- {"version":3,"file":"sqs-notifier.js","sourceRoot":"","sources":["../../src/services/sqs-notifier.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sqs-notifier.js","sourceRoot":"","sources":["../../src/services/sqs-notifier.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@similie/hyphen-rtsp-tunnel",
3
- "version": "1.1.3",
3
+ "version": "1.1.4",
4
4
  "description": "API plugin module for Hyphen Command Center. Provides TCP and WebSocket interfaces for managing RTSP streams and related services using HyphenOS.",
5
5
  "license": "MIT",
6
6
  "author": "adam.smith@similie.org",