streamer-node 1.0.0 → 1.0.3
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.
- package/dist/package.json +52 -0
- package/dist/src/application/use-cases/StartStreamUseCase.d.ts.map +1 -1
- package/dist/src/application/use-cases/StartStreamUseCase.js +39 -18
- package/dist/src/application/use-cases/StartStreamUseCase.js.map +1 -1
- package/dist/src/domain/entities/Stream.d.ts +1 -0
- package/dist/src/domain/entities/Stream.d.ts.map +1 -1
- package/dist/src/domain/entities/Stream.js +4 -0
- package/dist/src/domain/entities/Stream.js.map +1 -1
- package/dist/src/domain/services/FFmpegService.d.ts +6 -2
- package/dist/src/domain/services/FFmpegService.d.ts.map +1 -1
- package/dist/src/infrastructure/config/Config.d.ts +3 -0
- package/dist/src/infrastructure/config/Config.d.ts.map +1 -1
- package/dist/src/infrastructure/config/Config.js +7 -0
- package/dist/src/infrastructure/config/Config.js.map +1 -1
- package/dist/src/infrastructure/services/NodeFFmpegService.d.ts +9 -2
- package/dist/src/infrastructure/services/NodeFFmpegService.d.ts.map +1 -1
- package/dist/src/infrastructure/services/NodeFFmpegService.js +7 -4
- package/dist/src/infrastructure/services/NodeFFmpegService.js.map +1 -1
- package/dist/src/main.js +36 -1
- package/dist/src/main.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "streamer-node",
|
|
3
|
+
"version": "1.0.3",
|
|
4
|
+
"description": "A lightweight TypeScript streaming system with Clean Architecture",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"types": "dist/index.d.ts",
|
|
7
|
+
"bin": {
|
|
8
|
+
"streamer-node": "./dist/src/main.js"
|
|
9
|
+
},
|
|
10
|
+
"files": [
|
|
11
|
+
"dist",
|
|
12
|
+
"README.md",
|
|
13
|
+
"LICENSE"
|
|
14
|
+
],
|
|
15
|
+
"scripts": {
|
|
16
|
+
"build": "npx tsc && cp -r public dist/",
|
|
17
|
+
"start": "node dist/src/main.js",
|
|
18
|
+
"dev": "npm run build && npm start",
|
|
19
|
+
"monitor": "bash -c 'npm run dev 2>&1 | tee >(grep -E \"ERROR|WARN|INFO\" > node.logs) >(grep \"DEBUG\" | grep -v \"frame=\" > ffmpeg.logs)'",
|
|
20
|
+
"logs:clear": "rm -f node.logs ffmpeg.logs",
|
|
21
|
+
"clean": "rm -rf dist coverage",
|
|
22
|
+
"prepublishOnly": "npm run clean && npm run build"
|
|
23
|
+
},
|
|
24
|
+
"keywords": [
|
|
25
|
+
"streaming",
|
|
26
|
+
"ffmpeg",
|
|
27
|
+
"sse",
|
|
28
|
+
"clean-architecture",
|
|
29
|
+
"typescript",
|
|
30
|
+
"video-streaming"
|
|
31
|
+
],
|
|
32
|
+
"author": "DropShot <dropshotlive@gmail.com>",
|
|
33
|
+
"license": "MIT",
|
|
34
|
+
"repository": {
|
|
35
|
+
"type": "git",
|
|
36
|
+
"url": "https://github.com/MHA10/drop-shot-streaming-scripts-ubuntu"
|
|
37
|
+
},
|
|
38
|
+
"bugs": {
|
|
39
|
+
"url": "https://github.com/MHA10/drop-shot-streaming-scripts-ubuntu/issues"
|
|
40
|
+
},
|
|
41
|
+
"homepage": "https://github.com/MHA10/drop-shot-streaming-scripts-ubuntu#readme",
|
|
42
|
+
"engines": {
|
|
43
|
+
"node": ">=16.0.0"
|
|
44
|
+
},
|
|
45
|
+
"dependencies": {
|
|
46
|
+
"dotenv": "^16.3.1"
|
|
47
|
+
},
|
|
48
|
+
"devDependencies": {
|
|
49
|
+
"@types/node": "^20.0.0",
|
|
50
|
+
"typescript": "^5.0.0"
|
|
51
|
+
}
|
|
52
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StartStreamUseCase.d.ts","sourceRoot":"","sources":["../../../../src/application/use-cases/StartStreamUseCase.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,gBAAgB,EAAE,MAAM,4CAA4C,CAAC;AAC9E,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AACpE,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAGpD,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC5E,OAAO,EAEL,kBAAkB,EAClB,mBAAmB,EAGpB,MAAM,wCAAwC,CAAC;AAEhD,qBAAa,kBAAkB;IAI3B,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAN7B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA8B;gBAGlC,gBAAgB,EAAE,gBAAgB,EAClC,aAAa,EAAE,aAAa,EAC5B,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,UAAU;YAG3B,oBAAoB;
|
|
1
|
+
{"version":3,"file":"StartStreamUseCase.d.ts","sourceRoot":"","sources":["../../../../src/application/use-cases/StartStreamUseCase.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,gBAAgB,EAAE,MAAM,4CAA4C,CAAC;AAC9E,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AACpE,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAGpD,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC5E,OAAO,EAEL,kBAAkB,EAClB,mBAAmB,EAGpB,MAAM,wCAAwC,CAAC;AAEhD,qBAAa,kBAAkB;IAI3B,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAN7B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA8B;gBAGlC,gBAAgB,EAAE,gBAAgB,EAClC,aAAa,EAAE,aAAa,EAC5B,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,UAAU;YAG3B,oBAAoB;IA8ClC;;;;;;;;OAQG;YACW,mBAAmB;IA8FpB,OAAO,CAClB,OAAO,EAAE,kBAAkB,EAC3B,WAAW,EAAE,CAAC,OAAO,EAAE,iBAAiB,KAAK,OAAO,CAAC,kBAAkB,CAAC,GACvE,OAAO,CAAC,mBAAmB,CAAC;CA0GhC"}
|
|
@@ -16,10 +16,8 @@ class StartStreamUseCase {
|
|
|
16
16
|
this.config = Config_1.Config.getInstance().get();
|
|
17
17
|
}
|
|
18
18
|
async shouldStartNewStream(event, stopStream) {
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
const runningStreams = streams.filter((stream) => stream.courtId === event.courtId && stream.state === StreamState_1.StreamState.RUNNING);
|
|
22
|
-
const action = await this.validateStreamEvent(runningStreams, event);
|
|
19
|
+
const action = await this.validateStreamEvent(event);
|
|
20
|
+
this.logger.info("Stream validation result", { action });
|
|
23
21
|
if (action.isValid)
|
|
24
22
|
return { isValid: true }; // return true for happy case
|
|
25
23
|
// handle other event types
|
|
@@ -64,7 +62,22 @@ class StartStreamUseCase {
|
|
|
64
62
|
* 5. Process already running (duplicate event)
|
|
65
63
|
* 6. Process dead but stream marked as running (stale state)
|
|
66
64
|
*/
|
|
67
|
-
async validateStreamEvent(
|
|
65
|
+
async validateStreamEvent(event) {
|
|
66
|
+
// Find stream by camera URL and stream key
|
|
67
|
+
const streams = await this.streamRepository.findAll();
|
|
68
|
+
// if the stream is in pending state, then we can ignore this event
|
|
69
|
+
const pendingStreams = streams.filter((stream) => stream.courtId === event.courtId && stream.state === StreamState_1.StreamState.PENDING);
|
|
70
|
+
if (pendingStreams.length > 0) {
|
|
71
|
+
return {
|
|
72
|
+
isValid: false,
|
|
73
|
+
data: {
|
|
74
|
+
action: StartStreamUseCase_types_1.StreamAction.DUPLICATE_EVENT,
|
|
75
|
+
stream: pendingStreams[0],
|
|
76
|
+
},
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
const runningStreams = streams.filter((stream) => stream.courtId === event.courtId && stream.state === StreamState_1.StreamState.RUNNING);
|
|
80
|
+
// check if the stream is already running
|
|
68
81
|
const targetStream = runningStreams.length > 0 ? runningStreams[0] : null;
|
|
69
82
|
if (!targetStream) {
|
|
70
83
|
// there is no running stream. Safe to say stream can be started
|
|
@@ -113,6 +126,7 @@ class StartStreamUseCase {
|
|
|
113
126
|
},
|
|
114
127
|
};
|
|
115
128
|
}
|
|
129
|
+
// a running process exists with a PID, but process is actually dead.
|
|
116
130
|
return {
|
|
117
131
|
isValid: false,
|
|
118
132
|
data: {
|
|
@@ -135,6 +149,10 @@ class StartStreamUseCase {
|
|
|
135
149
|
// Create value objects
|
|
136
150
|
const streamId = StreamId_1.StreamId.create();
|
|
137
151
|
const cameraUrl = StreamUrl_1.StreamUrl.create(request.cameraUrl);
|
|
152
|
+
// Create stream entity
|
|
153
|
+
const stream = Stream_1.Stream.create(streamId, cameraUrl, request.streamKey, request.courtId);
|
|
154
|
+
// Save stream state with pending state. To stop any duplicate streams from starting
|
|
155
|
+
await this.streamRepository.save(stream);
|
|
138
156
|
// Detect audio if requested
|
|
139
157
|
let hasAudio = false;
|
|
140
158
|
if (request.detectAudio) {
|
|
@@ -147,23 +165,22 @@ class StartStreamUseCase {
|
|
|
147
165
|
hasAudio,
|
|
148
166
|
});
|
|
149
167
|
}
|
|
150
|
-
|
|
151
|
-
const stream = Stream_1.Stream.create(streamId, cameraUrl, request.streamKey, request.courtId, hasAudio);
|
|
168
|
+
stream.setAudio(hasAudio);
|
|
152
169
|
// Start FFmpeg process
|
|
153
170
|
this.logger.info("Starting FFmpeg process", { streamId: streamId.value });
|
|
154
|
-
//
|
|
155
|
-
const
|
|
156
|
-
this.logger.info("
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
newPid,
|
|
160
|
-
});
|
|
161
|
-
stream.updateProcessId(newPid);
|
|
171
|
+
// This will attempt a retry if the stream gives a retryable error
|
|
172
|
+
const onRetryStream = async (event) => {
|
|
173
|
+
this.logger.info("Stream retrying", { event });
|
|
174
|
+
// close the current running stream
|
|
175
|
+
stream.markAsFailed();
|
|
162
176
|
await this.streamRepository.save(stream);
|
|
177
|
+
// start a new process
|
|
178
|
+
await this.execute(request, stopProcess);
|
|
163
179
|
};
|
|
164
|
-
const ffmpegProcess = await this.ffmpegService.startStream(cameraUrl, request.streamKey, hasAudio,
|
|
165
|
-
|
|
166
|
-
|
|
180
|
+
const ffmpegProcess = await this.ffmpegService.startStream(cameraUrl, request.streamKey, hasAudio, {
|
|
181
|
+
event: request,
|
|
182
|
+
onRetryStream,
|
|
183
|
+
});
|
|
167
184
|
// Update stream with process ID
|
|
168
185
|
stream.start(ffmpegProcess.pid);
|
|
169
186
|
// Save stream state
|
|
@@ -182,6 +199,10 @@ class StartStreamUseCase {
|
|
|
182
199
|
};
|
|
183
200
|
}
|
|
184
201
|
catch (error) {
|
|
202
|
+
// check if the error is retry-able
|
|
203
|
+
// try to restart the process
|
|
204
|
+
await this.execute(request, stopProcess);
|
|
205
|
+
// otherwise just log and move on
|
|
185
206
|
this.logger.error("Failed to start stream", {
|
|
186
207
|
error: error instanceof Error ? error.message : String(error),
|
|
187
208
|
cameraUrl: request.cameraUrl,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StartStreamUseCase.js","sourceRoot":"","sources":["../../../../src/application/use-cases/StartStreamUseCase.ts"],"names":[],"mappings":";;;AAAA,yDAAsD;AACtD,kEAA+D;AAC/D,oEAAiE;AAKjE,+DAA4D;AAC5D,wEAAqE;AAErE,qFAMgD;AAEhD,MAAa,kBAAkB;IAG7B,YACmB,gBAAkC,EAClC,aAA4B,EAC5B,MAAc,EACd,UAAsB;QAHtB,qBAAgB,GAAhB,gBAAgB,CAAkB;QAClC,kBAAa,GAAb,aAAa,CAAe;QAC5B,WAAM,GAAN,MAAM,CAAQ;QACd,eAAU,GAAV,UAAU,CAAY;QANxB,WAAM,GAAG,eAAM,CAAC,WAAW,EAAE,CAAC,GAAG,EAAE,CAAC;IAOlD,CAAC;IAEI,KAAK,CAAC,oBAAoB,CAChC,KAAyB,EACzB,UAAuE;QAEvE,
|
|
1
|
+
{"version":3,"file":"StartStreamUseCase.js","sourceRoot":"","sources":["../../../../src/application/use-cases/StartStreamUseCase.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Stream.d.ts","sourceRoot":"","sources":["../../../../src/domain/entities/Stream.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAE3D,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,QAAQ,CAAC;IACb,SAAS,EAAE,SAAS,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,WAAW,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;CACjB;AAED,qBAAa,MAAM;IACG,OAAO,CAAC,KAAK;IAAjC,OAAO;WAEO,MAAM,CAClB,EAAE,EAAE,QAAQ,EACZ,SAAS,EAAE,SAAS,EACpB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,QAAQ,GAAE,OAAe,GACxB,MAAM;WAcK,eAAe,CAAC,KAAK,EAAE,WAAW,GAAG,MAAM;IAKzD,IAAW,EAAE,IAAI,QAAQ,CAExB;IAED,IAAW,SAAS,IAAI,SAAS,CAEhC;IAED,IAAW,SAAS,IAAI,MAAM,CAE7B;IAED,IAAW,OAAO,IAAI,MAAM,CAE3B;IAED,IAAW,KAAK,IAAI,WAAW,CAE9B;IAED,IAAW,QAAQ,IAAI,OAAO,CAE7B;IAED,IAAW,SAAS,IAAI,MAAM,GAAG,SAAS,CAEzC;IAED,IAAW,SAAS,IAAI,IAAI,CAE3B;IAED,IAAW,SAAS,IAAI,IAAI,CAE3B;IAGM,KAAK,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAa9B,IAAI,IAAI,IAAI;IAUZ,YAAY,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI;IAMlC,oBAAoB,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI;IAK7C,cAAc,IAAI,IAAI;IAKtB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;
|
|
1
|
+
{"version":3,"file":"Stream.d.ts","sourceRoot":"","sources":["../../../../src/domain/entities/Stream.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAE3D,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,QAAQ,CAAC;IACb,SAAS,EAAE,SAAS,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,WAAW,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;CACjB;AAED,qBAAa,MAAM;IACG,OAAO,CAAC,KAAK;IAAjC,OAAO;WAEO,MAAM,CAClB,EAAE,EAAE,QAAQ,EACZ,SAAS,EAAE,SAAS,EACpB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,QAAQ,GAAE,OAAe,GACxB,MAAM;WAcK,eAAe,CAAC,KAAK,EAAE,WAAW,GAAG,MAAM;IAKzD,IAAW,EAAE,IAAI,QAAQ,CAExB;IAED,IAAW,SAAS,IAAI,SAAS,CAEhC;IAED,IAAW,SAAS,IAAI,MAAM,CAE7B;IAED,IAAW,OAAO,IAAI,MAAM,CAE3B;IAED,IAAW,KAAK,IAAI,WAAW,CAE9B;IAED,IAAW,QAAQ,IAAI,OAAO,CAE7B;IAED,IAAW,SAAS,IAAI,MAAM,GAAG,SAAS,CAEzC;IAED,IAAW,SAAS,IAAI,IAAI,CAE3B;IAED,IAAW,SAAS,IAAI,IAAI,CAE3B;IAGM,KAAK,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAa9B,IAAI,IAAI,IAAI;IAUZ,YAAY,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI;IAMlC,oBAAoB,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI;IAK7C,cAAc,IAAI,IAAI;IAKtB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAWxC,SAAS,IAAI,OAAO;IAIpB,SAAS,IAAI,OAAO;IAIpB,QAAQ,IAAI,OAAO;IAInB,QAAQ,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI;IAKjC,MAAM,IAAI,GAAG;CAarB"}
|
|
@@ -97,6 +97,10 @@ class Stream {
|
|
|
97
97
|
isFailed() {
|
|
98
98
|
return this.props.state === StreamState_1.StreamState.FAILED;
|
|
99
99
|
}
|
|
100
|
+
setAudio(hasAudio) {
|
|
101
|
+
this.props.hasAudio = hasAudio;
|
|
102
|
+
this.props.updatedAt = new Date();
|
|
103
|
+
}
|
|
100
104
|
toJSON() {
|
|
101
105
|
return {
|
|
102
106
|
id: this.props.id.value,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Stream.js","sourceRoot":"","sources":["../../../../src/domain/entities/Stream.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"Stream.js","sourceRoot":"","sources":["../../../../src/domain/entities/Stream.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { StartStreamRequest } from "../../application/interfaces/StartStreamUseCase.types";
|
|
2
|
+
import { StreamUrl } from "../value-objects/StreamUrl";
|
|
2
3
|
export interface FFmpegCommand {
|
|
3
4
|
readonly command: string;
|
|
4
5
|
readonly args: string[];
|
|
@@ -13,7 +14,10 @@ export interface FFmpegService {
|
|
|
13
14
|
/**
|
|
14
15
|
* Start an FFmpeg stream process
|
|
15
16
|
*/
|
|
16
|
-
startStream(cameraUrl: StreamUrl, streamKey: string, hasAudio: boolean,
|
|
17
|
+
startStream(cameraUrl: StreamUrl, streamKey: string, hasAudio: boolean, retry: {
|
|
18
|
+
event: StartStreamRequest;
|
|
19
|
+
onRetryStream: (event: StartStreamRequest) => Promise<void>;
|
|
20
|
+
}): Promise<FFmpegProcess>;
|
|
17
21
|
/**
|
|
18
22
|
* Stop an FFmpeg process by PID
|
|
19
23
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FFmpegService.d.ts","sourceRoot":"","sources":["../../../../src/domain/services/FFmpegService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAEvD,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC;IACxB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC;IAChC,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC;CAC1B;AAED,MAAM,WAAW,aAAa;IAC5B;;OAEG;IACH,WAAW,CACT,SAAS,EAAE,SAAS,EACpB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,OAAO,EACjB,
|
|
1
|
+
{"version":3,"file":"FFmpegService.d.ts","sourceRoot":"","sources":["../../../../src/domain/services/FFmpegService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,uDAAuD,CAAC;AAC3F,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAEvD,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC;IACxB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC;IAChC,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC;CAC1B;AAED,MAAM,WAAW,aAAa;IAC5B;;OAEG;IACH,WAAW,CACT,SAAS,EAAE,SAAS,EACpB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,OAAO,EACjB,KAAK,EAAE;QACL,KAAK,EAAE,kBAAkB,CAAC;QAC1B,aAAa,EAAE,CAAC,KAAK,EAAE,kBAAkB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;KAC7D,GACA,OAAO,CAAC,aAAa,CAAC,CAAC;IAE1B;;OAEG;IACH,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEvC;;OAEG;IACH,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAEhD;;OAEG;IACH,WAAW,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAEpD;;OAEG;IACH,kBAAkB,CAChB,SAAS,EAAE,SAAS,EACpB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,OAAO,GAChB,aAAa,CAAC;IAEjB;;OAEG;IACH,mBAAmB,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;IAEhD;;OAEG;IACH,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACnC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Config.d.ts","sourceRoot":"","sources":["../../../../src/infrastructure/config/Config.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE;QACN,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,UAAU,EAAE;QACV,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,GAAG,EAAE;QACH,aAAa,EAAE,MAAM,CAAC;QACtB,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,MAAM,EAAE;QACN,kBAAkB,EAAE,MAAM,CAAC;QAC3B,YAAY,EAAE,MAAM,CAAC;QACrB,mBAAmB,EAAE,MAAM,CAAC;KAC7B,CAAC;IACF,OAAO,EAAE;QACP,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;IACF,aAAa,EAAE;QACb,OAAO,EAAE,OAAO,CAAC;QACjB,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC;QAClB,aAAa,EAAE,MAAM,CAAC;QACtB,cAAc,EAAE,MAAM,CAAC;QACvB,aAAa,EAAE,MAAM,CAAC;QACtB,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,qBAAa,MAAM;IACjB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAS;IAChC,OAAO,CAAC,MAAM,CAAY;IAE1B,OAAO;
|
|
1
|
+
{"version":3,"file":"Config.d.ts","sourceRoot":"","sources":["../../../../src/infrastructure/config/Config.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE;QACN,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,MAAM,EAAE;QACN,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,UAAU,EAAE;QACV,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,GAAG,EAAE;QACH,aAAa,EAAE,MAAM,CAAC;QACtB,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,MAAM,EAAE;QACN,kBAAkB,EAAE,MAAM,CAAC;QAC3B,YAAY,EAAE,MAAM,CAAC;QACrB,mBAAmB,EAAE,MAAM,CAAC;KAC7B,CAAC;IACF,OAAO,EAAE;QACP,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;IACF,aAAa,EAAE;QACb,OAAO,EAAE,OAAO,CAAC;QACjB,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC;QAClB,aAAa,EAAE,MAAM,CAAC;QACtB,cAAc,EAAE,MAAM,CAAC;QACvB,aAAa,EAAE,MAAM,CAAC;QACtB,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,qBAAa,MAAM;IACjB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAS;IAChC,OAAO,CAAC,MAAM,CAAY;IAE1B,OAAO;WAKO,WAAW,IAAI,MAAM;IAO5B,GAAG,IAAI,SAAS;IAIvB,OAAO,CAAC,UAAU;IAqDlB,OAAO,CAAC,SAAS;IAQV,QAAQ,IAAI,IAAI;CA2BxB"}
|
|
@@ -40,6 +40,7 @@ dotenv.config();
|
|
|
40
40
|
class Config {
|
|
41
41
|
constructor() {
|
|
42
42
|
this.config = this.loadConfig();
|
|
43
|
+
this.validate();
|
|
43
44
|
}
|
|
44
45
|
static getInstance() {
|
|
45
46
|
if (!Config.instance) {
|
|
@@ -55,6 +56,9 @@ class Config {
|
|
|
55
56
|
server: {
|
|
56
57
|
baseUrl: this.getEnvVar("BASE_URL", "https://api.drop-shot.live/"),
|
|
57
58
|
},
|
|
59
|
+
images: {
|
|
60
|
+
clientPath: this.getEnvVar("CLIENT_IMAGES_PATH", ""),
|
|
61
|
+
},
|
|
58
62
|
groundInfo: {
|
|
59
63
|
groundId: this.getEnvVar("GROUND_ID", ""),
|
|
60
64
|
},
|
|
@@ -95,6 +99,9 @@ class Config {
|
|
|
95
99
|
if (!this.config.groundInfo.groundId) {
|
|
96
100
|
errors.push("GROUND_ID is required");
|
|
97
101
|
}
|
|
102
|
+
if (!this.config.images.clientPath) {
|
|
103
|
+
errors.push("CLIENT_IMAGES_PATH is required");
|
|
104
|
+
}
|
|
98
105
|
if (this.config.sse.retryInterval <= 0) {
|
|
99
106
|
errors.push("SSE_RETRY_INTERVAL must be positive");
|
|
100
107
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Config.js","sourceRoot":"","sources":["../../../../src/infrastructure/config/Config.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+CAAiC;AAEjC,6BAA6B;AAC7B,MAAM,CAAC,MAAM,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"Config.js","sourceRoot":"","sources":["../../../../src/infrastructure/config/Config.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,18 @@
|
|
|
1
1
|
import { FFmpegService, FFmpegCommand, FFmpegProcess } from "../../domain/services/FFmpegService";
|
|
2
2
|
import { StreamUrl } from "../../domain/value-objects/StreamUrl";
|
|
3
3
|
import { Logger } from "../../application/interfaces/Logger";
|
|
4
|
+
import { StartStreamRequest } from "../../application/interfaces/StartStreamUseCase.types";
|
|
5
|
+
import { Config } from "../config/Config";
|
|
4
6
|
export declare class NodeFFmpegService implements FFmpegService {
|
|
5
7
|
private readonly logger;
|
|
8
|
+
private readonly config;
|
|
6
9
|
private readonly runningProcesses;
|
|
7
|
-
|
|
8
|
-
|
|
10
|
+
private readonly clientLogoPath;
|
|
11
|
+
constructor(logger: Logger, config: Config);
|
|
12
|
+
startStream(cameraUrl: StreamUrl, streamKey: string, hasAudio: boolean, retry: {
|
|
13
|
+
event: StartStreamRequest;
|
|
14
|
+
onRetryStream: (event: StartStreamRequest) => Promise<void>;
|
|
15
|
+
}): Promise<FFmpegProcess>;
|
|
9
16
|
stopStream(pid: number): Promise<void>;
|
|
10
17
|
isProcessRunning(pid: number): Promise<boolean>;
|
|
11
18
|
detectAudio(cameraUrl: StreamUrl): Promise<boolean>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NodeFFmpegService.d.ts","sourceRoot":"","sources":["../../../../src/infrastructure/services/NodeFFmpegService.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,aAAa,EACb,aAAa,EACb,aAAa,EACd,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,sCAAsC,CAAC;AACjE,OAAO,EAAE,MAAM,EAAE,MAAM,qCAAqC,CAAC;
|
|
1
|
+
{"version":3,"file":"NodeFFmpegService.d.ts","sourceRoot":"","sources":["../../../../src/infrastructure/services/NodeFFmpegService.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,aAAa,EACb,aAAa,EACb,aAAa,EACd,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,sCAAsC,CAAC;AACjE,OAAO,EAAE,MAAM,EAAE,MAAM,qCAAqC,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,uDAAuD,CAAC;AAC3F,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE1C,qBAAa,iBAAkB,YAAW,aAAa;IAKnD,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,MAAM;IALzB,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAyC;IAC1E,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;gBAGrB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM;IAKpB,WAAW,CACtB,SAAS,EAAE,SAAS,EACpB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,OAAO,EACjB,KAAK,EAAE;QACL,KAAK,EAAE,kBAAkB,CAAC;QAC1B,aAAa,EAAE,CAAC,KAAK,EAAE,kBAAkB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;KAC7D,GACA,OAAO,CAAC,aAAa,CAAC;IAmGZ,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA4DtC,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAU/C,WAAW,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC;IAiDzD,kBAAkB,CACvB,SAAS,EAAE,SAAS,EACpB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,OAAO,GAChB,aAAa;IA2EH,mBAAmB,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;IAI/C,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;IAa9C,OAAO,CAAC,kBAAkB;CAiB3B"}
|
|
@@ -38,11 +38,13 @@ const child_process_1 = require("child_process");
|
|
|
38
38
|
const fs = __importStar(require("fs"));
|
|
39
39
|
const path = __importStar(require("path"));
|
|
40
40
|
class NodeFFmpegService {
|
|
41
|
-
constructor(logger) {
|
|
41
|
+
constructor(logger, config) {
|
|
42
42
|
this.logger = logger;
|
|
43
|
+
this.config = config;
|
|
43
44
|
this.runningProcesses = new Map();
|
|
45
|
+
this.clientLogoPath = path.resolve(this.config.get().images.clientPath);
|
|
44
46
|
}
|
|
45
|
-
async startStream(cameraUrl, streamKey, hasAudio) {
|
|
47
|
+
async startStream(cameraUrl, streamKey, hasAudio, retry) {
|
|
46
48
|
const command = this.buildStreamCommand(cameraUrl, streamKey, hasAudio);
|
|
47
49
|
this.logger.info("Command full form", command);
|
|
48
50
|
this.logger.info("Starting FFmpeg process", {
|
|
@@ -92,6 +94,7 @@ class NodeFFmpegService {
|
|
|
92
94
|
resolved = true;
|
|
93
95
|
clearTimeout(startupTimeout);
|
|
94
96
|
process.kill("SIGTERM");
|
|
97
|
+
retry.onRetryStream(retry.event);
|
|
95
98
|
reject(new Error(`FFmpeg error: ${output}`));
|
|
96
99
|
}
|
|
97
100
|
}
|
|
@@ -253,7 +256,7 @@ class NodeFFmpegService {
|
|
|
253
256
|
// Add logo image inputs
|
|
254
257
|
args.push("-i", "./public/ds.png"); // Input 1: DropShot logo
|
|
255
258
|
const dsInputIndex = 1 + fakeAudioInputCounter;
|
|
256
|
-
args.push("-i",
|
|
259
|
+
args.push("-i", this.clientLogoPath); // Input 2: Client logo
|
|
257
260
|
const clientInputIndex = 2 + fakeAudioInputCounter;
|
|
258
261
|
// position them correctly using filter complex
|
|
259
262
|
const filterComplex = [
|
|
@@ -289,7 +292,7 @@ class NodeFFmpegService {
|
|
|
289
292
|
}
|
|
290
293
|
validateImageFiles() {
|
|
291
294
|
const dsLogoPath = path.resolve("./public/ds.png");
|
|
292
|
-
const clientLogoPath = path.resolve(
|
|
295
|
+
const clientLogoPath = path.resolve(this.clientLogoPath);
|
|
293
296
|
if (!fs.existsSync(dsLogoPath)) {
|
|
294
297
|
throw new Error(`DropShot logo not found at: ${dsLogoPath}`);
|
|
295
298
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NodeFFmpegService.js","sourceRoot":"","sources":["../../../../src/infrastructure/services/NodeFFmpegService.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iDAAsC;AACtC,uCAAyB;AACzB,2CAA6B;
|
|
1
|
+
{"version":3,"file":"NodeFFmpegService.js","sourceRoot":"","sources":["../../../../src/infrastructure/services/NodeFFmpegService.ts"],"names":[],"mappings":"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"}
|
package/dist/src/main.js
CHANGED
|
@@ -1,6 +1,40 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
"use strict";
|
|
3
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
4
|
+
if (k2 === undefined) k2 = k;
|
|
5
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
6
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
7
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
8
|
+
}
|
|
9
|
+
Object.defineProperty(o, k2, desc);
|
|
10
|
+
}) : (function(o, m, k, k2) {
|
|
11
|
+
if (k2 === undefined) k2 = k;
|
|
12
|
+
o[k2] = m[k];
|
|
13
|
+
}));
|
|
14
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
15
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
16
|
+
}) : function(o, v) {
|
|
17
|
+
o["default"] = v;
|
|
18
|
+
});
|
|
19
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
20
|
+
var ownKeys = function(o) {
|
|
21
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
22
|
+
var ar = [];
|
|
23
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
24
|
+
return ar;
|
|
25
|
+
};
|
|
26
|
+
return ownKeys(o);
|
|
27
|
+
};
|
|
28
|
+
return function (mod) {
|
|
29
|
+
if (mod && mod.__esModule) return mod;
|
|
30
|
+
var result = {};
|
|
31
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
32
|
+
__setModuleDefault(result, mod);
|
|
33
|
+
return result;
|
|
34
|
+
};
|
|
35
|
+
})();
|
|
3
36
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
37
|
+
const packageJson = __importStar(require("../package.json"));
|
|
4
38
|
const Config_1 = require("./infrastructure/config/Config");
|
|
5
39
|
const FileSystemStreamRepository_1 = require("./infrastructure/repositories/FileSystemStreamRepository");
|
|
6
40
|
const NodeFFmpegService_1 = require("./infrastructure/services/NodeFFmpegService");
|
|
@@ -21,12 +55,13 @@ class Application {
|
|
|
21
55
|
async start() {
|
|
22
56
|
try {
|
|
23
57
|
this.logger.info("Starting Streamer Node Application");
|
|
58
|
+
this.logger.info(`Current version: ${packageJson.version}`);
|
|
24
59
|
// Initialize configuration
|
|
25
60
|
const config = Config_1.Config.getInstance();
|
|
26
61
|
this.logger.info("Configuration loaded", { config: config.get() });
|
|
27
62
|
// Initialize dependencies
|
|
28
63
|
const streamRepository = new FileSystemStreamRepository_1.FileSystemStreamRepository(config.get().stream.persistentStateDir, this.logger);
|
|
29
|
-
const ffmpegService = new NodeFFmpegService_1.NodeFFmpegService(this.logger);
|
|
64
|
+
const ffmpegService = new NodeFFmpegService_1.NodeFFmpegService(this.logger, config);
|
|
30
65
|
const sseService = new NodeSSEService_1.NodeSSEService(this.logger);
|
|
31
66
|
// Initialize use cases
|
|
32
67
|
const startStreamUseCase = new StartStreamUseCase_1.StartStreamUseCase(streamRepository, ffmpegService, this.logger, this.httpClient);
|
package/dist/src/main.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/main.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/main.ts"],"names":[],"mappings":"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"}
|