hls-streamer 2.2.0 → 3.0.0
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/README.md +84 -24
- package/dist/Interfaces/HlsStreamer.d.ts +4 -1
- package/dist/Interfaces/HlsStreamer.d.ts.map +1 -1
- package/dist/Libs/FileLib.d.ts +8 -1
- package/dist/Libs/FileLib.d.ts.map +1 -1
- package/dist/Libs/FileLib.js +35 -0
- package/dist/Libs/FileLib.js.map +1 -1
- package/dist/Libs/FormatDetector.d.ts +8 -0
- package/dist/Libs/FormatDetector.d.ts.map +1 -0
- package/dist/Libs/FormatDetector.js +63 -0
- package/dist/Libs/FormatDetector.js.map +1 -0
- package/dist/Parsers/AacParser.d.ts +15 -0
- package/dist/Parsers/AacParser.d.ts.map +1 -0
- package/dist/Parsers/AacParser.js +246 -0
- package/dist/Parsers/AacParser.js.map +1 -0
- package/dist/Parsers/FlacParser.d.ts +13 -0
- package/dist/Parsers/FlacParser.d.ts.map +1 -0
- package/dist/Parsers/FlacParser.js +200 -0
- package/dist/Parsers/FlacParser.js.map +1 -0
- package/dist/Parsers/IAudioParser.d.ts +31 -0
- package/dist/Parsers/IAudioParser.d.ts.map +1 -0
- package/dist/Parsers/IAudioParser.js +2 -0
- package/dist/Parsers/IAudioParser.js.map +1 -0
- package/dist/Parsers/Mp3Parser.d.ts +19 -0
- package/dist/Parsers/Mp3Parser.d.ts.map +1 -0
- package/dist/Parsers/Mp3Parser.js +270 -0
- package/dist/Parsers/Mp3Parser.js.map +1 -0
- package/dist/Parsers/OggParser.d.ts +11 -0
- package/dist/Parsers/OggParser.d.ts.map +1 -0
- package/dist/Parsers/OggParser.js +160 -0
- package/dist/Parsers/OggParser.js.map +1 -0
- package/dist/Parsers/ParserFactory.d.ts +10 -0
- package/dist/Parsers/ParserFactory.d.ts.map +1 -0
- package/dist/Parsers/ParserFactory.js +43 -0
- package/dist/Parsers/ParserFactory.js.map +1 -0
- package/dist/Parsers/WavParser.d.ts +9 -0
- package/dist/Parsers/WavParser.d.ts.map +1 -0
- package/dist/Parsers/WavParser.js +135 -0
- package/dist/Parsers/WavParser.js.map +1 -0
- package/dist/cjs/Interfaces/HlsStreamer.d.ts +4 -1
- package/dist/cjs/Interfaces/HlsStreamer.d.ts.map +1 -1
- package/dist/cjs/Libs/FileLib.d.ts +8 -1
- package/dist/cjs/Libs/FileLib.d.ts.map +1 -1
- package/dist/cjs/Libs/FileLib.js +35 -0
- package/dist/cjs/Libs/FileLib.js.map +1 -1
- package/dist/cjs/Libs/FormatDetector.d.ts +8 -0
- package/dist/cjs/Libs/FormatDetector.d.ts.map +1 -0
- package/dist/cjs/Libs/FormatDetector.js +67 -0
- package/dist/cjs/Libs/FormatDetector.js.map +1 -0
- package/dist/cjs/Parsers/AacParser.d.ts +15 -0
- package/dist/cjs/Parsers/AacParser.d.ts.map +1 -0
- package/dist/cjs/Parsers/AacParser.js +250 -0
- package/dist/cjs/Parsers/AacParser.js.map +1 -0
- package/dist/cjs/Parsers/FlacParser.d.ts +13 -0
- package/dist/cjs/Parsers/FlacParser.d.ts.map +1 -0
- package/dist/cjs/Parsers/FlacParser.js +204 -0
- package/dist/cjs/Parsers/FlacParser.js.map +1 -0
- package/dist/cjs/Parsers/IAudioParser.d.ts +31 -0
- package/dist/cjs/Parsers/IAudioParser.d.ts.map +1 -0
- package/dist/cjs/Parsers/IAudioParser.js +3 -0
- package/dist/cjs/Parsers/IAudioParser.js.map +1 -0
- package/dist/cjs/Parsers/Mp3Parser.d.ts +19 -0
- package/dist/cjs/Parsers/Mp3Parser.d.ts.map +1 -0
- package/dist/cjs/Parsers/Mp3Parser.js +274 -0
- package/dist/cjs/Parsers/Mp3Parser.js.map +1 -0
- package/dist/cjs/Parsers/OggParser.d.ts +11 -0
- package/dist/cjs/Parsers/OggParser.d.ts.map +1 -0
- package/dist/cjs/Parsers/OggParser.js +164 -0
- package/dist/cjs/Parsers/OggParser.js.map +1 -0
- package/dist/cjs/Parsers/ParserFactory.d.ts +10 -0
- package/dist/cjs/Parsers/ParserFactory.d.ts.map +1 -0
- package/dist/cjs/Parsers/ParserFactory.js +47 -0
- package/dist/cjs/Parsers/ParserFactory.js.map +1 -0
- package/dist/cjs/Parsers/WavParser.d.ts +9 -0
- package/dist/cjs/Parsers/WavParser.d.ts.map +1 -0
- package/dist/cjs/Parsers/WavParser.js +139 -0
- package/dist/cjs/Parsers/WavParser.js.map +1 -0
- package/dist/cjs/errors/HlsStreamerErrors.d.ts +3 -0
- package/dist/cjs/errors/HlsStreamerErrors.d.ts.map +1 -1
- package/dist/cjs/errors/HlsStreamerErrors.js +8 -1
- package/dist/cjs/errors/HlsStreamerErrors.js.map +1 -1
- package/dist/cjs/index.d.ts +1 -0
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +34 -11
- package/dist/cjs/index.js.map +1 -1
- package/dist/errors/HlsStreamerErrors.d.ts +3 -0
- package/dist/errors/HlsStreamerErrors.d.ts.map +1 -1
- package/dist/errors/HlsStreamerErrors.js +6 -0
- package/dist/errors/HlsStreamerErrors.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +35 -12
- package/dist/index.js.map +1 -1
- package/package.json +10 -3
|
@@ -28,4 +28,10 @@ export class InvalidParameterError extends HlsStreamerError {
|
|
|
28
28
|
this.name = 'InvalidParameterError';
|
|
29
29
|
}
|
|
30
30
|
}
|
|
31
|
+
export class UnsupportedFormatError extends HlsStreamerError {
|
|
32
|
+
constructor(format) {
|
|
33
|
+
super(`Unsupported audio format: ${format}`);
|
|
34
|
+
this.name = 'UnsupportedFormatError';
|
|
35
|
+
}
|
|
36
|
+
}
|
|
31
37
|
//# sourceMappingURL=HlsStreamerErrors.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HlsStreamerErrors.js","sourceRoot":"","sources":["../../src/errors/HlsStreamerErrors.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,gBAAiB,SAAQ,KAAK;IACzC,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC;IACjC,CAAC;CACF;AAKD,MAAM,OAAO,iBAAkB,SAAQ,gBAAgB;IACrD,YAAY,QAAgB;QAC1B,KAAK,CAAC,mBAAmB,QAAQ,EAAE,CAAC,CAAC;QACrC,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;IAClC,CAAC;CACF;AAKD,MAAM,OAAO,gBAAiB,SAAQ,gBAAgB;IACpD,YAAY,OAAe;QACzB,KAAK,CAAC,iBAAiB,OAAO,EAAE,CAAC,CAAC;QAClC,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC;IACjC,CAAC;CACF;AAKD,MAAM,OAAO,iBAAkB,SAAQ,gBAAgB;IACrD,YAAY,SAAiB,EAAE,OAAe;QAC5C,KAAK,CAAC,wBAAwB,SAAS,SAAS,OAAO,EAAE,CAAC,CAAC;QAC3D,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;IAClC,CAAC;CACF;AAKD,MAAM,OAAO,qBAAsB,SAAQ,gBAAgB;IACzD,YAAY,SAAiB,EAAE,KAAU;QACvC,KAAK,CAAC,sBAAsB,SAAS,MAAM,KAAK,EAAE,CAAC,CAAC;QACpD,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAC;IACtC,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"HlsStreamerErrors.js","sourceRoot":"","sources":["../../src/errors/HlsStreamerErrors.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,gBAAiB,SAAQ,KAAK;IACzC,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC;IACjC,CAAC;CACF;AAKD,MAAM,OAAO,iBAAkB,SAAQ,gBAAgB;IACrD,YAAY,QAAgB;QAC1B,KAAK,CAAC,mBAAmB,QAAQ,EAAE,CAAC,CAAC;QACrC,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;IAClC,CAAC;CACF;AAKD,MAAM,OAAO,gBAAiB,SAAQ,gBAAgB;IACpD,YAAY,OAAe;QACzB,KAAK,CAAC,iBAAiB,OAAO,EAAE,CAAC,CAAC;QAClC,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC;IACjC,CAAC;CACF;AAKD,MAAM,OAAO,iBAAkB,SAAQ,gBAAgB;IACrD,YAAY,SAAiB,EAAE,OAAe;QAC5C,KAAK,CAAC,wBAAwB,SAAS,SAAS,OAAO,EAAE,CAAC,CAAC;QAC3D,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;IAClC,CAAC;CACF;AAKD,MAAM,OAAO,qBAAsB,SAAQ,gBAAgB;IACzD,YAAY,SAAiB,EAAE,KAAU;QACvC,KAAK,CAAC,sBAAsB,SAAS,MAAM,KAAK,EAAE,CAAC,CAAC;QACpD,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAC;IACtC,CAAC;CACF;AAKD,MAAM,OAAO,sBAAuB,SAAQ,gBAAgB;IAC1D,YAAY,MAAc;QACxB,KAAK,CAAC,6BAA6B,MAAM,EAAE,CAAC,CAAC;QAC7C,IAAI,CAAC,IAAI,GAAG,wBAAwB,CAAC;IACvC,CAAC;CACF"}
|
package/dist/index.d.ts
CHANGED
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAA8B,MAAM,0BAA0B,CAAC;AAe1F,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAU;IAC1C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAqB;IACpD,OAAO,CAAC,QAAQ,CAAC,CAAgB;IACjC,OAAO,CAAC,QAAQ,CAA4B;gBAKhC,OAAO,EAAE,kBAAkB;IAYvC,OAAO,CAAC,eAAe;IAevB,OAAO,CAAC,YAAY;YAyBN,WAAW;IAkBnB,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IA4BlE,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC;YA+BrB,WAAW;IAiFzB,OAAO,CAAC,kBAAkB;IAK1B,OAAO,CAAC,2BAA2B;IAmBnC,OAAO,CAAC,8BAA8B;IA0BtC,OAAO,CAAC,uBAAuB;IAe/B,OAAO,CAAC,eAAe;IAOvB,OAAO,CAAC,oBAAoB;IAgB5B,OAAO,CAAC,SAAS;IAOX,kBAAkB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAchE;AAGD,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import fs from "node:fs";
|
|
2
2
|
import path from "node:path";
|
|
3
3
|
import { FileLib } from "./Libs/FileLib";
|
|
4
|
-
import {
|
|
4
|
+
import { FormatDetector } from "./Libs/FormatDetector";
|
|
5
|
+
import { FileNotFoundError, InvalidFileError, InvalidRangeError, InvalidParameterError, UnsupportedFormatError } from "./errors/HlsStreamerErrors";
|
|
5
6
|
export class HlsStreamer {
|
|
6
7
|
constructor(options) {
|
|
7
8
|
Object.defineProperty(this, "filePath", {
|
|
@@ -34,6 +35,12 @@ export class HlsStreamer {
|
|
|
34
35
|
writable: true,
|
|
35
36
|
value: void 0
|
|
36
37
|
});
|
|
38
|
+
Object.defineProperty(this, "formatOverride", {
|
|
39
|
+
enumerable: true,
|
|
40
|
+
configurable: true,
|
|
41
|
+
writable: true,
|
|
42
|
+
value: void 0
|
|
43
|
+
});
|
|
37
44
|
Object.defineProperty(this, "fileInfo", {
|
|
38
45
|
enumerable: true,
|
|
39
46
|
configurable: true,
|
|
@@ -47,12 +54,13 @@ export class HlsStreamer {
|
|
|
47
54
|
value: void 0
|
|
48
55
|
});
|
|
49
56
|
this.validateOptions(options);
|
|
50
|
-
this.validateFile(options.filePath);
|
|
57
|
+
this.validateFile(options.filePath, options.format);
|
|
51
58
|
this.filePath = options.filePath;
|
|
52
59
|
this.segmentSize = (options.segmentSizeKB ?? 512) * 1024;
|
|
53
60
|
this.fileName = options.fileName ?? "file";
|
|
54
61
|
this.baseUrl = options.baseUrl ?? "";
|
|
55
62
|
this.enableFastStart = options.enableFastStart ?? false;
|
|
63
|
+
this.formatOverride = options.format || undefined;
|
|
56
64
|
}
|
|
57
65
|
validateOptions(options) {
|
|
58
66
|
if (!options.filePath || typeof options.filePath !== 'string') {
|
|
@@ -66,7 +74,7 @@ export class HlsStreamer {
|
|
|
66
74
|
throw new InvalidParameterError('fileName', options.fileName);
|
|
67
75
|
}
|
|
68
76
|
}
|
|
69
|
-
validateFile(filePath) {
|
|
77
|
+
validateFile(filePath, format) {
|
|
70
78
|
if (!fs.existsSync(filePath)) {
|
|
71
79
|
throw new FileNotFoundError(filePath);
|
|
72
80
|
}
|
|
@@ -74,14 +82,22 @@ export class HlsStreamer {
|
|
|
74
82
|
if (!stat.isFile()) {
|
|
75
83
|
throw new InvalidFileError('Path is not a file');
|
|
76
84
|
}
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
85
|
+
if (format) {
|
|
86
|
+
const supportedFormats = ['mp3', 'aac', 'm4a', 'ogg', 'flac', 'wav'];
|
|
87
|
+
if (!supportedFormats.includes(format.toLowerCase())) {
|
|
88
|
+
throw new UnsupportedFormatError(format);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
else {
|
|
92
|
+
if (!FormatDetector.isSupportedExtension(filePath)) {
|
|
93
|
+
const ext = path.extname(filePath);
|
|
94
|
+
throw new UnsupportedFormatError(ext || 'unknown');
|
|
95
|
+
}
|
|
80
96
|
}
|
|
81
97
|
}
|
|
82
98
|
async getFileInfo() {
|
|
83
99
|
if (!this.fileInfo) {
|
|
84
|
-
const analysis = await FileLib.
|
|
100
|
+
const analysis = await FileLib.analyzeAudioFile(this.filePath, this.formatOverride);
|
|
85
101
|
if (analysis.size <= 0) {
|
|
86
102
|
throw new InvalidFileError('File is empty');
|
|
87
103
|
}
|
|
@@ -229,23 +245,30 @@ export class HlsStreamer {
|
|
|
229
245
|
let start = 0;
|
|
230
246
|
targets.forEach((targetSize) => {
|
|
231
247
|
const end = Math.min(totalBytes, start + targetSize);
|
|
232
|
-
const duration = this.estimateSegmentDuration(end - start);
|
|
248
|
+
const duration = this.estimateSegmentDuration(end - start, fileInfo);
|
|
233
249
|
segments.push({ start, end, duration });
|
|
234
250
|
start = end;
|
|
235
251
|
});
|
|
236
252
|
if (start < totalBytes) {
|
|
237
|
-
const duration = this.estimateSegmentDuration(totalBytes - start);
|
|
253
|
+
const duration = this.estimateSegmentDuration(totalBytes - start, fileInfo);
|
|
238
254
|
segments.push({ start, end: totalBytes, duration });
|
|
239
255
|
}
|
|
240
256
|
return segments;
|
|
241
257
|
}
|
|
242
|
-
estimateSegmentDuration(segmentSize) {
|
|
243
|
-
|
|
258
|
+
estimateSegmentDuration(segmentSize, fileInfo) {
|
|
259
|
+
if (fileInfo.duration > 0 && fileInfo.audioDataSize > 0) {
|
|
260
|
+
const bytesPerSecond = fileInfo.audioDataSize / fileInfo.duration;
|
|
261
|
+
return segmentSize / bytesPerSecond;
|
|
262
|
+
}
|
|
263
|
+
const estimatedBytesPerSecond = fileInfo.averageBitrate
|
|
264
|
+
? (fileInfo.averageBitrate * 1000) / 8
|
|
265
|
+
: 16000;
|
|
244
266
|
return segmentSize / estimatedBytesPerSecond;
|
|
245
267
|
}
|
|
246
268
|
buildSegmentUrl(start, end, index) {
|
|
247
269
|
const baseUrlPrefix = this.baseUrl ? `/${this.baseUrl}` : '';
|
|
248
|
-
|
|
270
|
+
const ext = this.fileInfo?.format || path.extname(this.filePath).toLowerCase().slice(1) || 'mp3';
|
|
271
|
+
return `${baseUrlPrefix}/${start}/${end}/${this.fileName}${this.padNumber(index, 3)}.${ext}`;
|
|
249
272
|
}
|
|
250
273
|
calculateSegmentSize(segmentIndex) {
|
|
251
274
|
if (!this.enableFastStart) {
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EACjB,qBAAqB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "hls-streamer",
|
|
3
|
-
"version": "
|
|
4
|
-
"description": "Lightweight HLS streaming from
|
|
3
|
+
"version": "3.0.0",
|
|
4
|
+
"description": "Lightweight HLS streaming from audio files (MP3, AAC, M4A, OGG, FLAC, WAV) on demand, without temporary files or ffmpeg dependency",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"module": "dist/index.js",
|
|
7
7
|
"types": "dist/index.d.ts",
|
|
@@ -36,13 +36,20 @@
|
|
|
36
36
|
"hls",
|
|
37
37
|
"streaming",
|
|
38
38
|
"mp3",
|
|
39
|
+
"aac",
|
|
40
|
+
"m4a",
|
|
41
|
+
"ogg",
|
|
42
|
+
"flac",
|
|
43
|
+
"wav",
|
|
39
44
|
"audio",
|
|
40
45
|
"http-live-streaming",
|
|
41
46
|
"media",
|
|
42
47
|
"ffmpeg-free",
|
|
43
48
|
"on-demand",
|
|
44
49
|
"typescript",
|
|
45
|
-
"nodejs"
|
|
50
|
+
"nodejs",
|
|
51
|
+
"vorbis",
|
|
52
|
+
"audio-streaming"
|
|
46
53
|
],
|
|
47
54
|
"author": {
|
|
48
55
|
"name": "LordVersA",
|