hls-streamer 2.1.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.
Files changed (94) hide show
  1. package/README.md +189 -190
  2. package/dist/Interfaces/HlsStreamer.d.ts +20 -0
  3. package/dist/Interfaces/HlsStreamer.d.ts.map +1 -1
  4. package/dist/Libs/FileLib.d.ts +22 -1
  5. package/dist/Libs/FileLib.d.ts.map +1 -1
  6. package/dist/Libs/FileLib.js +273 -108
  7. package/dist/Libs/FileLib.js.map +1 -1
  8. package/dist/Libs/FormatDetector.d.ts +8 -0
  9. package/dist/Libs/FormatDetector.d.ts.map +1 -0
  10. package/dist/Libs/FormatDetector.js +63 -0
  11. package/dist/Libs/FormatDetector.js.map +1 -0
  12. package/dist/Parsers/AacParser.d.ts +15 -0
  13. package/dist/Parsers/AacParser.d.ts.map +1 -0
  14. package/dist/Parsers/AacParser.js +246 -0
  15. package/dist/Parsers/AacParser.js.map +1 -0
  16. package/dist/Parsers/FlacParser.d.ts +13 -0
  17. package/dist/Parsers/FlacParser.d.ts.map +1 -0
  18. package/dist/Parsers/FlacParser.js +200 -0
  19. package/dist/Parsers/FlacParser.js.map +1 -0
  20. package/dist/Parsers/IAudioParser.d.ts +31 -0
  21. package/dist/Parsers/IAudioParser.d.ts.map +1 -0
  22. package/dist/Parsers/IAudioParser.js +2 -0
  23. package/dist/Parsers/IAudioParser.js.map +1 -0
  24. package/dist/Parsers/Mp3Parser.d.ts +19 -0
  25. package/dist/Parsers/Mp3Parser.d.ts.map +1 -0
  26. package/dist/Parsers/Mp3Parser.js +270 -0
  27. package/dist/Parsers/Mp3Parser.js.map +1 -0
  28. package/dist/Parsers/OggParser.d.ts +11 -0
  29. package/dist/Parsers/OggParser.d.ts.map +1 -0
  30. package/dist/Parsers/OggParser.js +160 -0
  31. package/dist/Parsers/OggParser.js.map +1 -0
  32. package/dist/Parsers/ParserFactory.d.ts +10 -0
  33. package/dist/Parsers/ParserFactory.d.ts.map +1 -0
  34. package/dist/Parsers/ParserFactory.js +43 -0
  35. package/dist/Parsers/ParserFactory.js.map +1 -0
  36. package/dist/Parsers/WavParser.d.ts +9 -0
  37. package/dist/Parsers/WavParser.d.ts.map +1 -0
  38. package/dist/Parsers/WavParser.js +135 -0
  39. package/dist/Parsers/WavParser.js.map +1 -0
  40. package/dist/cjs/Interfaces/HlsStreamer.d.ts +20 -0
  41. package/dist/cjs/Interfaces/HlsStreamer.d.ts.map +1 -1
  42. package/dist/cjs/Libs/FileLib.d.ts +22 -1
  43. package/dist/cjs/Libs/FileLib.d.ts.map +1 -1
  44. package/dist/cjs/Libs/FileLib.js +276 -108
  45. package/dist/cjs/Libs/FileLib.js.map +1 -1
  46. package/dist/cjs/Libs/FormatDetector.d.ts +8 -0
  47. package/dist/cjs/Libs/FormatDetector.d.ts.map +1 -0
  48. package/dist/cjs/Libs/FormatDetector.js +67 -0
  49. package/dist/cjs/Libs/FormatDetector.js.map +1 -0
  50. package/dist/cjs/Parsers/AacParser.d.ts +15 -0
  51. package/dist/cjs/Parsers/AacParser.d.ts.map +1 -0
  52. package/dist/cjs/Parsers/AacParser.js +250 -0
  53. package/dist/cjs/Parsers/AacParser.js.map +1 -0
  54. package/dist/cjs/Parsers/FlacParser.d.ts +13 -0
  55. package/dist/cjs/Parsers/FlacParser.d.ts.map +1 -0
  56. package/dist/cjs/Parsers/FlacParser.js +204 -0
  57. package/dist/cjs/Parsers/FlacParser.js.map +1 -0
  58. package/dist/cjs/Parsers/IAudioParser.d.ts +31 -0
  59. package/dist/cjs/Parsers/IAudioParser.d.ts.map +1 -0
  60. package/dist/cjs/Parsers/IAudioParser.js +3 -0
  61. package/dist/cjs/Parsers/IAudioParser.js.map +1 -0
  62. package/dist/cjs/Parsers/Mp3Parser.d.ts +19 -0
  63. package/dist/cjs/Parsers/Mp3Parser.d.ts.map +1 -0
  64. package/dist/cjs/Parsers/Mp3Parser.js +274 -0
  65. package/dist/cjs/Parsers/Mp3Parser.js.map +1 -0
  66. package/dist/cjs/Parsers/OggParser.d.ts +11 -0
  67. package/dist/cjs/Parsers/OggParser.d.ts.map +1 -0
  68. package/dist/cjs/Parsers/OggParser.js +164 -0
  69. package/dist/cjs/Parsers/OggParser.js.map +1 -0
  70. package/dist/cjs/Parsers/ParserFactory.d.ts +10 -0
  71. package/dist/cjs/Parsers/ParserFactory.d.ts.map +1 -0
  72. package/dist/cjs/Parsers/ParserFactory.js +47 -0
  73. package/dist/cjs/Parsers/ParserFactory.js.map +1 -0
  74. package/dist/cjs/Parsers/WavParser.d.ts +9 -0
  75. package/dist/cjs/Parsers/WavParser.d.ts.map +1 -0
  76. package/dist/cjs/Parsers/WavParser.js +139 -0
  77. package/dist/cjs/Parsers/WavParser.js.map +1 -0
  78. package/dist/cjs/errors/HlsStreamerErrors.d.ts +3 -0
  79. package/dist/cjs/errors/HlsStreamerErrors.d.ts.map +1 -1
  80. package/dist/cjs/errors/HlsStreamerErrors.js +8 -1
  81. package/dist/cjs/errors/HlsStreamerErrors.js.map +1 -1
  82. package/dist/cjs/index.d.ts +6 -7
  83. package/dist/cjs/index.d.ts.map +1 -1
  84. package/dist/cjs/index.js +161 -138
  85. package/dist/cjs/index.js.map +1 -1
  86. package/dist/errors/HlsStreamerErrors.d.ts +3 -0
  87. package/dist/errors/HlsStreamerErrors.d.ts.map +1 -1
  88. package/dist/errors/HlsStreamerErrors.js +6 -0
  89. package/dist/errors/HlsStreamerErrors.js.map +1 -1
  90. package/dist/index.d.ts +6 -7
  91. package/dist/index.d.ts.map +1 -1
  92. package/dist/index.js +162 -139
  93. package/dist/index.js.map +1 -1
  94. package/package.json +10 -3
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
@@ -13,4 +13,7 @@ export declare class InvalidRangeError extends HlsStreamerError {
13
13
  export declare class InvalidParameterError extends HlsStreamerError {
14
14
  constructor(parameter: string, value: any);
15
15
  }
16
+ export declare class UnsupportedFormatError extends HlsStreamerError {
17
+ constructor(format: string);
18
+ }
16
19
  //# sourceMappingURL=HlsStreamerErrors.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"HlsStreamerErrors.d.ts","sourceRoot":"","sources":["../../src/errors/HlsStreamerErrors.ts"],"names":[],"mappings":"AAGA,qBAAa,gBAAiB,SAAQ,KAAK;gBAC7B,OAAO,EAAE,MAAM;CAI5B;AAKD,qBAAa,iBAAkB,SAAQ,gBAAgB;gBACzC,QAAQ,EAAE,MAAM;CAI7B;AAKD,qBAAa,gBAAiB,SAAQ,gBAAgB;gBACxC,OAAO,EAAE,MAAM;CAI5B;AAKD,qBAAa,iBAAkB,SAAQ,gBAAgB;gBACzC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;CAI/C;AAKD,qBAAa,qBAAsB,SAAQ,gBAAgB;gBAC7C,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG;CAI1C"}
1
+ {"version":3,"file":"HlsStreamerErrors.d.ts","sourceRoot":"","sources":["../../src/errors/HlsStreamerErrors.ts"],"names":[],"mappings":"AAGA,qBAAa,gBAAiB,SAAQ,KAAK;gBAC7B,OAAO,EAAE,MAAM;CAI5B;AAKD,qBAAa,iBAAkB,SAAQ,gBAAgB;gBACzC,QAAQ,EAAE,MAAM;CAI7B;AAKD,qBAAa,gBAAiB,SAAQ,gBAAgB;gBACxC,OAAO,EAAE,MAAM;CAI5B;AAKD,qBAAa,iBAAkB,SAAQ,gBAAgB;gBACzC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;CAI/C;AAKD,qBAAa,qBAAsB,SAAQ,gBAAgB;gBAC7C,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG;CAI1C;AAKD,qBAAa,sBAAuB,SAAQ,gBAAgB;gBAC9C,MAAM,EAAE,MAAM;CAI3B"}
@@ -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
@@ -5,23 +5,22 @@ export declare class HlsStreamer {
5
5
  private readonly fileName;
6
6
  private readonly baseUrl;
7
7
  private readonly enableFastStart;
8
+ private readonly formatOverride;
8
9
  private fileInfo?;
9
- private segmentCache;
10
- private frameAlignedSegments;
10
+ private segments;
11
11
  constructor(options: HlsStreamerOptions);
12
12
  private validateOptions;
13
13
  private validateFile;
14
14
  private getFileInfo;
15
15
  getFileBuffer(startByte: number, endByte: number): Promise<Buffer>;
16
16
  createM3U8(): Promise<string>;
17
- private calculateSegmentCount;
17
+ private getSegments;
18
+ private computeTargetSizes;
19
+ private computeTargetSizesFromBytes;
20
+ private buildSegmentsWithoutFrameTable;
18
21
  private estimateSegmentDuration;
19
22
  private buildSegmentUrl;
20
23
  private calculateSegmentSize;
21
- private calculateSegment;
22
- private getFrameAlignedSegment;
23
- private findNextMp3Frame;
24
- private calculatefirst2SegmentSize;
25
24
  private padNumber;
26
25
  getSegmentDuration(segmentIndex: number): Promise<number>;
27
26
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAA4B,MAAM,0BAA0B,CAAC;AAYxF,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;IAC/B,OAAO,CAAC,YAAY,CAAkC;IACtD,OAAO,CAAC,oBAAoB,CAAqD;gBAKrE,OAAO,EAAE,kBAAkB;IAWvC,OAAO,CAAC,eAAe;IAevB,OAAO,CAAC,YAAY;YAgBN,WAAW;IA2BnB,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAmDlE,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC;IA6BnC,OAAO,CAAC,qBAAqB;IAW7B,OAAO,CAAC,uBAAuB;IAO/B,OAAO,CAAC,eAAe;IAKvB,OAAO,CAAC,oBAAoB;IAe5B,OAAO,CAAC,gBAAgB;YAuBV,sBAAsB;IA+BpC,OAAO,CAAC,gBAAgB;IAwCxB,OAAO,CAAC,0BAA0B;IAIlC,OAAO,CAAC,SAAS;IAOX,kBAAkB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAoBhE;AAGD,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC"}
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 { FileNotFoundError, InvalidFileError, InvalidRangeError, InvalidParameterError } from "./errors/HlsStreamerErrors";
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,31 +35,32 @@ export class HlsStreamer {
34
35
  writable: true,
35
36
  value: void 0
36
37
  });
37
- Object.defineProperty(this, "fileInfo", {
38
+ Object.defineProperty(this, "formatOverride", {
38
39
  enumerable: true,
39
40
  configurable: true,
40
41
  writable: true,
41
42
  value: void 0
42
43
  });
43
- Object.defineProperty(this, "segmentCache", {
44
+ Object.defineProperty(this, "fileInfo", {
44
45
  enumerable: true,
45
46
  configurable: true,
46
47
  writable: true,
47
- value: new Map()
48
+ value: void 0
48
49
  });
49
- Object.defineProperty(this, "frameAlignedSegments", {
50
+ Object.defineProperty(this, "segments", {
50
51
  enumerable: true,
51
52
  configurable: true,
52
53
  writable: true,
53
- value: new Map()
54
+ value: void 0
54
55
  });
55
56
  this.validateOptions(options);
56
- this.validateFile(options.filePath);
57
+ this.validateFile(options.filePath, options.format);
57
58
  this.filePath = options.filePath;
58
59
  this.segmentSize = (options.segmentSizeKB ?? 512) * 1024;
59
60
  this.fileName = options.fileName ?? "file";
60
61
  this.baseUrl = options.baseUrl ?? "";
61
62
  this.enableFastStart = options.enableFastStart ?? false;
63
+ this.formatOverride = options.format || undefined;
62
64
  }
63
65
  validateOptions(options) {
64
66
  if (!options.filePath || typeof options.filePath !== 'string') {
@@ -72,7 +74,7 @@ export class HlsStreamer {
72
74
  throw new InvalidParameterError('fileName', options.fileName);
73
75
  }
74
76
  }
75
- validateFile(filePath) {
77
+ validateFile(filePath, format) {
76
78
  if (!fs.existsSync(filePath)) {
77
79
  throw new FileNotFoundError(filePath);
78
80
  }
@@ -80,25 +82,27 @@ export class HlsStreamer {
80
82
  if (!stat.isFile()) {
81
83
  throw new InvalidFileError('Path is not a file');
82
84
  }
83
- const ext = path.extname(filePath).toLowerCase();
84
- if (ext !== '.mp3') {
85
- throw new InvalidFileError('Only MP3 files are supported');
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
+ }
86
96
  }
87
97
  }
88
98
  async getFileInfo() {
89
99
  if (!this.fileInfo) {
90
- const stat = await fs.promises.stat(this.filePath);
91
- const size = stat.size;
92
- if (size <= 0) {
100
+ const analysis = await FileLib.analyzeAudioFile(this.filePath, this.formatOverride);
101
+ if (analysis.size <= 0) {
93
102
  throw new InvalidFileError('File is empty');
94
103
  }
95
- if (this.segmentSize > size) {
96
- throw new InvalidFileError('Segment size is larger than file size');
97
- }
98
- this.fileInfo = {
99
- size,
100
- duration: 0
101
- };
104
+ this.fileInfo = analysis;
105
+ this.segments = undefined;
102
106
  }
103
107
  return this.fileInfo;
104
108
  }
@@ -110,26 +114,14 @@ export class HlsStreamer {
110
114
  if (endByte > fileInfo.size) {
111
115
  throw new InvalidRangeError(startByte, endByte);
112
116
  }
113
- const searchBufferSize = Math.min(8192, fileInfo.size);
114
- const searchStartByte = Math.max(0, startByte - 1024);
115
- const searchEndByte = Math.min(fileInfo.size, startByte + searchBufferSize);
117
+ const length = endByte - startByte;
116
118
  const fd = fs.openSync(this.filePath, "r");
117
119
  try {
118
- const searchBuffer = Buffer.alloc(searchEndByte - searchStartByte);
119
- fs.readSync(fd, searchBuffer, 0, searchBuffer.length, searchStartByte);
120
- const targetOffsetInSearch = startByte - searchStartByte;
121
- const frameAlignedOffsetInSearch = this.findNextMp3Frame(searchBuffer, Math.max(0, targetOffsetInSearch));
122
- const actualStartByte = searchStartByte + frameAlignedOffsetInSearch;
123
- const actualEndByte = Math.min(endByte, fileInfo.size);
124
- const bufferLength = actualEndByte - actualStartByte;
125
- if (bufferLength <= 0) {
126
- const fallbackLength = endByte - startByte;
127
- const fallbackBuffer = Buffer.alloc(fallbackLength);
128
- const bytesRead = fs.readSync(fd, fallbackBuffer, 0, fallbackLength, startByte);
129
- return fallbackBuffer.subarray(0, bytesRead);
120
+ if (length === 0) {
121
+ return Buffer.alloc(0);
130
122
  }
131
- const buffer = Buffer.alloc(bufferLength);
132
- const bytesRead = fs.readSync(fd, buffer, 0, bufferLength, actualStartByte);
123
+ const buffer = Buffer.alloc(length);
124
+ const bytesRead = fs.readSync(fd, buffer, 0, length, startByte);
133
125
  return buffer.subarray(0, bytesRead);
134
126
  }
135
127
  finally {
@@ -137,40 +129,146 @@ export class HlsStreamer {
137
129
  }
138
130
  }
139
131
  async createM3U8() {
140
- const fileInfo = await this.getFileInfo();
141
- const segmentCount = this.calculateSegmentCount(fileInfo.size);
132
+ const [fileInfo, segments] = await Promise.all([
133
+ this.getFileInfo(),
134
+ this.getSegments()
135
+ ]);
136
+ if (!segments.length) {
137
+ throw new InvalidFileError('Unable to generate segments for MP3 file');
138
+ }
139
+ const maxSegmentDuration = segments.reduce((max, segment) => Math.max(max, segment.duration), 0);
140
+ const targetDurationSeconds = Math.max(1, Math.ceil(maxSegmentDuration || fileInfo.duration || 1));
142
141
  const m3u8 = [
143
142
  '#EXTM3U',
144
143
  '#EXT-X-VERSION:6',
145
144
  '#EXT-X-PLAYLIST-TYPE:VOD',
146
- '#EXT-X-TARGETDURATION:14',
145
+ `#EXT-X-TARGETDURATION:${targetDurationSeconds}`,
147
146
  '#EXT-X-MEDIA-SEQUENCE:0',
148
147
  ];
149
- for (let i = 0; i < segmentCount; i++) {
150
- const { start, end } = await this.getFrameAlignedSegment(i, fileInfo.size);
151
- const estimatedDuration = this.estimateSegmentDuration(end - start);
152
- const segmentUrl = this.buildSegmentUrl(start, end, i);
153
- m3u8.push(`#EXTINF:${estimatedDuration.toFixed(3)}`);
148
+ segments.forEach((segment, index) => {
149
+ const segmentUrl = this.buildSegmentUrl(segment.start, segment.end, index);
150
+ m3u8.push(`#EXTINF:${segment.duration.toFixed(3)}`);
154
151
  m3u8.push(segmentUrl);
155
- }
152
+ });
156
153
  m3u8.push('#EXT-X-ENDLIST');
157
154
  return m3u8.join('\n');
158
155
  }
159
- calculateSegmentCount(fileSize) {
160
- if (!this.enableFastStart) {
161
- return Math.ceil(fileSize / this.segmentSize);
156
+ async getSegments() {
157
+ if (this.segments) {
158
+ return this.segments;
159
+ }
160
+ const fileInfo = await this.getFileInfo();
161
+ if (!fileInfo.frames.length) {
162
+ this.segments = this.buildSegmentsWithoutFrameTable(fileInfo);
163
+ return this.segments;
164
+ }
165
+ const targetSizes = this.computeTargetSizes(fileInfo);
166
+ const segments = [];
167
+ const frames = fileInfo.frames;
168
+ let frameCursor = 0;
169
+ const consumeFrames = (targetBytes) => {
170
+ if (frameCursor >= frames.length) {
171
+ return;
172
+ }
173
+ const startFrameIndex = frameCursor;
174
+ let consumedBytes = 0;
175
+ let duration = 0;
176
+ while (frameCursor < frames.length) {
177
+ const frame = frames[frameCursor];
178
+ const nextBytes = consumedBytes + frame.length;
179
+ if (consumedBytes > 0 && nextBytes > targetBytes) {
180
+ break;
181
+ }
182
+ consumedBytes = nextBytes;
183
+ duration += frame.duration;
184
+ frameCursor++;
185
+ if (consumedBytes >= targetBytes) {
186
+ break;
187
+ }
188
+ }
189
+ if (frameCursor === startFrameIndex && frameCursor < frames.length) {
190
+ const frame = frames[frameCursor];
191
+ consumedBytes += frame.length;
192
+ duration += frame.duration;
193
+ frameCursor++;
194
+ }
195
+ if (frameCursor === startFrameIndex) {
196
+ return;
197
+ }
198
+ const start = frames[startFrameIndex].offset;
199
+ const lastFrame = frames[frameCursor - 1];
200
+ const end = lastFrame.offset + lastFrame.length;
201
+ segments.push({
202
+ start,
203
+ end,
204
+ duration
205
+ });
206
+ };
207
+ targetSizes.forEach(consumeFrames);
208
+ while (frameCursor < frames.length) {
209
+ consumeFrames(this.segmentSize);
210
+ }
211
+ if (!segments.length) {
212
+ this.segments = this.buildSegmentsWithoutFrameTable(fileInfo);
213
+ }
214
+ else {
215
+ this.segments = segments;
216
+ }
217
+ return this.segments;
218
+ }
219
+ computeTargetSizes(fileInfo) {
220
+ const totalBytes = fileInfo.audioDataSize || fileInfo.size;
221
+ return this.computeTargetSizesFromBytes(totalBytes);
222
+ }
223
+ computeTargetSizesFromBytes(totalBytes) {
224
+ if (totalBytes <= 0) {
225
+ return [];
226
+ }
227
+ const targets = [];
228
+ let remaining = totalBytes;
229
+ let index = 0;
230
+ while (remaining > 0) {
231
+ const targetSize = Math.min(this.calculateSegmentSize(index), remaining);
232
+ targets.push(targetSize);
233
+ remaining -= targetSize;
234
+ index++;
235
+ }
236
+ return targets.length ? targets : [totalBytes];
237
+ }
238
+ buildSegmentsWithoutFrameTable(fileInfo) {
239
+ const segments = [];
240
+ const totalBytes = Math.max(fileInfo.size, fileInfo.audioDataSize);
241
+ if (totalBytes <= 0) {
242
+ return segments;
243
+ }
244
+ const targets = this.computeTargetSizesFromBytes(totalBytes);
245
+ let start = 0;
246
+ targets.forEach((targetSize) => {
247
+ const end = Math.min(totalBytes, start + targetSize);
248
+ const duration = this.estimateSegmentDuration(end - start, fileInfo);
249
+ segments.push({ start, end, duration });
250
+ start = end;
251
+ });
252
+ if (start < totalBytes) {
253
+ const duration = this.estimateSegmentDuration(totalBytes - start, fileInfo);
254
+ segments.push({ start, end: totalBytes, duration });
162
255
  }
163
- const firstTwoSegmentsSize = this.calculatefirst2SegmentSize();
164
- const remainingSize = fileSize - firstTwoSegmentsSize;
165
- return Math.ceil(remainingSize / this.segmentSize) + 2;
256
+ return segments;
166
257
  }
167
- estimateSegmentDuration(segmentSize) {
168
- const estimatedBytesPerSecond = 16000;
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;
169
266
  return segmentSize / estimatedBytesPerSecond;
170
267
  }
171
268
  buildSegmentUrl(start, end, index) {
172
269
  const baseUrlPrefix = this.baseUrl ? `/${this.baseUrl}` : '';
173
- return `${baseUrlPrefix}/${start}/${end}/${this.fileName}${this.padNumber(index, 3)}.mp3`;
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}`;
174
272
  }
175
273
  calculateSegmentSize(segmentIndex) {
176
274
  if (!this.enableFastStart) {
@@ -185,94 +283,19 @@ export class HlsStreamer {
185
283
  return this.segmentSize;
186
284
  }
187
285
  }
188
- calculateSegment(segmentIndex, fileSize) {
189
- let start = 0;
190
- if (this.enableFastStart && segmentIndex < 2) {
191
- start = segmentIndex * (this.segmentSize / 4);
192
- }
193
- else if (this.enableFastStart) {
194
- start = (3 * this.segmentSize) / 4 + (segmentIndex - 2) * this.segmentSize;
195
- }
196
- else {
197
- start = segmentIndex * this.segmentSize;
198
- }
199
- const segmentSize = this.calculateSegmentSize(segmentIndex);
200
- const end = Math.min(start + segmentSize, fileSize);
201
- return { start: Math.floor(start), end: Math.floor(end) };
202
- }
203
- async getFrameAlignedSegment(segmentIndex, fileSize) {
204
- if (this.frameAlignedSegments.has(segmentIndex)) {
205
- return this.frameAlignedSegments.get(segmentIndex);
206
- }
207
- const rawSegment = this.calculateSegment(segmentIndex, fileSize);
208
- if (segmentIndex === 0) {
209
- const fd = fs.openSync(this.filePath, "r");
210
- try {
211
- const headerBuffer = Buffer.alloc(Math.min(8192, fileSize));
212
- fs.readSync(fd, headerBuffer, 0, headerBuffer.length, 0);
213
- const frameStart = this.findNextMp3Frame(headerBuffer, 0);
214
- const alignedSegment = { start: frameStart, end: rawSegment.end };
215
- this.frameAlignedSegments.set(segmentIndex, alignedSegment);
216
- return alignedSegment;
217
- }
218
- finally {
219
- fs.closeSync(fd);
220
- }
221
- }
222
- this.frameAlignedSegments.set(segmentIndex, rawSegment);
223
- return rawSegment;
224
- }
225
- findNextMp3Frame(buffer, startPos) {
226
- let pos = startPos;
227
- if (pos === 0 && buffer.length > 10 && buffer.toString('ascii', 0, 3) === 'ID3') {
228
- const tagSize = ((buffer[6] & 0x7f) << 21) |
229
- ((buffer[7] & 0x7f) << 14) |
230
- ((buffer[8] & 0x7f) << 7) |
231
- (buffer[9] & 0x7f);
232
- pos = 10 + tagSize;
233
- }
234
- while (pos < buffer.length - 1) {
235
- if (buffer[pos] === 0xFF && (buffer[pos + 1] & 0xE0) === 0xE0) {
236
- if (pos + 3 < buffer.length) {
237
- const header = (buffer[pos] << 24) |
238
- (buffer[pos + 1] << 16) |
239
- (buffer[pos + 2] << 8) |
240
- buffer[pos + 3];
241
- const version = (header >> 19) & 0x3;
242
- const layer = (header >> 17) & 0x3;
243
- const bitrateIndex = (header >> 12) & 0xF;
244
- const sampleRateIndex = (header >> 10) & 0x3;
245
- if (version !== 1 && layer !== 0 && bitrateIndex !== 0 &&
246
- bitrateIndex !== 15 && sampleRateIndex !== 3) {
247
- return pos;
248
- }
249
- }
250
- }
251
- pos++;
252
- }
253
- return startPos;
254
- }
255
- calculatefirst2SegmentSize() {
256
- return (this.segmentSize / 4) * 3;
257
- }
258
286
  padNumber(value, padding) {
259
287
  return value.toString().padStart(padding, '0');
260
288
  }
261
289
  async getSegmentDuration(segmentIndex) {
262
- const cachedSegment = this.segmentCache.get(segmentIndex);
263
- if (cachedSegment) {
264
- return cachedSegment.duration;
290
+ if (!Number.isInteger(segmentIndex) || segmentIndex < 0) {
291
+ throw new InvalidParameterError('segmentIndex', segmentIndex);
265
292
  }
266
- const fileInfo = await this.getFileInfo();
267
- const { start, end } = this.calculateSegment(segmentIndex, fileInfo.size);
268
- const segmentBuffer = await this.getFileBuffer(start, end);
269
- const duration = await FileLib.getMP3DurationFromBuffer(segmentBuffer);
270
- this.segmentCache.set(segmentIndex, {
271
- start,
272
- end,
273
- duration
274
- });
275
- return duration;
293
+ const segments = await this.getSegments();
294
+ const segment = segments[segmentIndex];
295
+ if (!segment) {
296
+ throw new InvalidParameterError('segmentIndex', segmentIndex);
297
+ }
298
+ return segment.duration;
276
299
  }
277
300
  }
278
301
  export * from './Interfaces/HlsStreamer';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}