audio-snip 0.2.0 → 0.3.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/dist/cjs/core.js +78 -9
- package/dist/cjs/core.js.map +1 -1
- package/dist/cjs/index.js +2 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/plugins/mp3.js +30 -43
- package/dist/cjs/plugins/mp3.js.map +1 -1
- package/dist/cjs/plugins/mp4.js +83 -46
- package/dist/cjs/plugins/mp4.js.map +1 -1
- package/dist/esm/core.js +76 -8
- package/dist/esm/core.js.map +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/plugins/mp3.js +31 -44
- package/dist/esm/plugins/mp3.js.map +1 -1
- package/dist/esm/plugins/mp4.js +84 -47
- package/dist/esm/plugins/mp4.js.map +1 -1
- package/dist/types/core.d.ts +21 -0
- package/dist/types/index.d.ts +1 -1
- package/dist/types/plugins/mp4.d.ts +0 -1
- package/package.json +2 -2
package/dist/esm/plugins/mp4.js
CHANGED
|
@@ -1,7 +1,10 @@
|
|
|
1
|
-
import { BasePlugin,
|
|
2
|
-
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
1
|
+
import { BasePlugin, RemoteFile, trimBySamples, } from '../core.js';
|
|
3
2
|
import MP4BoxFactory from 'mp4box';
|
|
4
|
-
const
|
|
3
|
+
const MP4Box = MP4BoxFactory;
|
|
4
|
+
const AAC_LC_PRIMING_SAMPLES = 2112;
|
|
5
|
+
const MOOV_TIMEOUT_MS = 30000;
|
|
6
|
+
const MOOV_INITIAL_BYTES = 2 * 1024 * 1024;
|
|
7
|
+
const RANGE_MERGE_GAP = 64 * 1024;
|
|
5
8
|
// ─── ADTS header construction ────────────────────────────────────────────────
|
|
6
9
|
function makeAdtsHeader(frameLength, audioObjectType, samplingFrequencyIndex, channelConfiguration) {
|
|
7
10
|
const header = new Uint8Array(7);
|
|
@@ -39,21 +42,24 @@ function getSamplingFrequencyIndex(sampleRate) {
|
|
|
39
42
|
// ─── Mp4Plugin ───────────────────────────────────────────────────────────────
|
|
40
43
|
export class Mp4Plugin extends BasePlugin {
|
|
41
44
|
canHandle(url) {
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
return (path.endsWith('.m4a') ||
|
|
45
|
-
path.endsWith('.mp4') ||
|
|
46
|
-
path.endsWith('.aac') ||
|
|
47
|
-
path.endsWith('.m4b'));
|
|
48
|
-
}
|
|
49
|
-
catch {
|
|
50
|
-
const lower = url.toLowerCase();
|
|
51
|
-
return lower.endsWith('.m4a') || lower.endsWith('.mp4') || lower.endsWith('.aac') || lower.endsWith('.m4b');
|
|
52
|
-
}
|
|
45
|
+
const path = url.split('?')[0].split('#')[0].toLowerCase();
|
|
46
|
+
return path.endsWith('.m4a') || path.endsWith('.mp4') || path.endsWith('.aac') || path.endsWith('.m4b');
|
|
53
47
|
}
|
|
54
48
|
async getInfo(url) {
|
|
55
|
-
const
|
|
49
|
+
const file = new RemoteFile(url);
|
|
50
|
+
const { info, audioTrack } = await this.loadMoovForDecode(file);
|
|
56
51
|
const duration = info.duration / info.timescale;
|
|
52
|
+
// Parse encoder delay from edit list (elst atom)
|
|
53
|
+
let encoderDelay;
|
|
54
|
+
const edits = audioTrack.edits;
|
|
55
|
+
if (edits && edits.length > 0 && edits[0].media_time > 0) {
|
|
56
|
+
const mediaTime = edits[0].media_time;
|
|
57
|
+
encoderDelay = Math.round(mediaTime * audioTrack.audio.sample_rate / audioTrack.timescale);
|
|
58
|
+
}
|
|
59
|
+
else {
|
|
60
|
+
// Default priming for AAC-LC: 1024 * 2 + 64 = 2112
|
|
61
|
+
encoderDelay = AAC_LC_PRIMING_SAMPLES;
|
|
62
|
+
}
|
|
57
63
|
return {
|
|
58
64
|
duration,
|
|
59
65
|
sampleRate: audioTrack.audio.sample_rate,
|
|
@@ -61,14 +67,25 @@ export class Mp4Plugin extends BasePlugin {
|
|
|
61
67
|
bitrate: audioTrack.bitrate,
|
|
62
68
|
codec: audioTrack.codec,
|
|
63
69
|
isVbr: true, // AAC is always VBR conceptually
|
|
64
|
-
encoderDelay
|
|
70
|
+
encoderDelay,
|
|
65
71
|
};
|
|
66
72
|
}
|
|
67
73
|
async decode(ctx, url, startTime, endTime) {
|
|
68
74
|
// Step 1: Load moov atom only (a few MB) to get metadata + sample table
|
|
69
|
-
const
|
|
75
|
+
const file = new RemoteFile(url);
|
|
76
|
+
const { audioTrack, mp4 } = await this.loadMoovForDecode(file);
|
|
70
77
|
const sampleRate = audioTrack.audio.sample_rate;
|
|
71
78
|
const timescale = audioTrack.timescale;
|
|
79
|
+
// Parse encoder delay from edit list
|
|
80
|
+
let encoderDelay;
|
|
81
|
+
const edits = audioTrack.edits;
|
|
82
|
+
if (edits && edits.length > 0 && edits[0].media_time > 0) {
|
|
83
|
+
const mediaTime = edits[0].media_time;
|
|
84
|
+
encoderDelay = Math.round(mediaTime * sampleRate / timescale);
|
|
85
|
+
}
|
|
86
|
+
else {
|
|
87
|
+
encoderDelay = AAC_LC_PRIMING_SAMPLES; // Default AAC-LC priming
|
|
88
|
+
}
|
|
72
89
|
// Step 2: Use sample table to find which samples fall in [startTime, endTime]
|
|
73
90
|
const allSamples = mp4.getTrackSamplesInfo(audioTrack.id);
|
|
74
91
|
if (allSamples.length === 0) {
|
|
@@ -98,7 +115,7 @@ export class Mp4Plugin extends BasePlugin {
|
|
|
98
115
|
// We read sample data directly from the fetched bytes — no onSamples needed.
|
|
99
116
|
const rangeData = new Map(); // range.start → data
|
|
100
117
|
for (const range of ranges) {
|
|
101
|
-
const data = await
|
|
118
|
+
const data = await file.getRange(range.start, range.end);
|
|
102
119
|
rangeData.set(range.start, data);
|
|
103
120
|
}
|
|
104
121
|
// Step 5: Extract raw AAC frame data for each needed sample
|
|
@@ -112,8 +129,9 @@ export class Mp4Plugin extends BasePlugin {
|
|
|
112
129
|
for (const si of neededSamples) {
|
|
113
130
|
// Find which fetched range contains this sample
|
|
114
131
|
const rawData = this.readSampleFromRanges(si.offset, si.size, ranges, rangeData);
|
|
115
|
-
if (!rawData)
|
|
116
|
-
|
|
132
|
+
if (!rawData) {
|
|
133
|
+
throw new Error(`Failed to read sample at offset ${si.offset}, size ${si.size} — byte range not fetched`);
|
|
134
|
+
}
|
|
117
135
|
const adtsHeader = makeAdtsHeader(rawData.length, audioObjectType, samplingFreqIndex, channelConfig);
|
|
118
136
|
const frame = new Uint8Array(adtsHeader.length + rawData.length);
|
|
119
137
|
frame.set(adtsHeader, 0);
|
|
@@ -135,7 +153,7 @@ export class Mp4Plugin extends BasePlugin {
|
|
|
135
153
|
const decodedRate = decoded.sampleRate;
|
|
136
154
|
const rangeStartTime = neededSamples[0].cts / timescale;
|
|
137
155
|
const trimStartSeconds = startTime - rangeStartTime;
|
|
138
|
-
const trimStartSamples = Math.round(trimStartSeconds * decodedRate);
|
|
156
|
+
const trimStartSamples = Math.round(trimStartSeconds * decodedRate) + encoderDelay;
|
|
139
157
|
const wantedSamples = Math.round((endTime - startTime) * decodedRate);
|
|
140
158
|
const startSample = Math.max(0, trimStartSamples);
|
|
141
159
|
const endSample = Math.min(decoded.length, startSample + wantedSamples);
|
|
@@ -170,7 +188,7 @@ export class Mp4Plugin extends BasePlugin {
|
|
|
170
188
|
const sampleStart = sorted[i].offset;
|
|
171
189
|
const sampleEnd = sampleStart + sorted[i].size - 1;
|
|
172
190
|
// Merge if gap is < 64KB (cheaper to over-fetch than make another request)
|
|
173
|
-
if (sampleStart <= cur.end +
|
|
191
|
+
if (sampleStart <= cur.end + RANGE_MERGE_GAP) {
|
|
174
192
|
cur.end = Math.max(cur.end, sampleEnd);
|
|
175
193
|
}
|
|
176
194
|
else {
|
|
@@ -182,49 +200,68 @@ export class Mp4Plugin extends BasePlugin {
|
|
|
182
200
|
return ranges;
|
|
183
201
|
}
|
|
184
202
|
// ─── Internal helpers ────────────────────────────────────────────────────
|
|
185
|
-
async
|
|
186
|
-
const { info, audioTrack } = await this.loadMoovForDecode(url);
|
|
187
|
-
return { info, audioTrack };
|
|
188
|
-
}
|
|
189
|
-
async loadMoovForDecode(url) {
|
|
190
|
-
const MP4Box = MP4BoxLib;
|
|
203
|
+
async loadMoovForDecode(file) {
|
|
191
204
|
const mp4 = MP4Box.createFile();
|
|
192
|
-
const fileSize = await
|
|
193
|
-
|
|
205
|
+
const fileSize = await file.fetchSize();
|
|
206
|
+
let timer;
|
|
207
|
+
const infoPromise = new Promise((resolve, reject) => {
|
|
194
208
|
mp4.onReady = resolve;
|
|
195
209
|
mp4.onError = reject;
|
|
196
|
-
this.streamToMP4Box(mp4,
|
|
210
|
+
this.streamToMP4Box(mp4, file, fileSize).catch(reject);
|
|
211
|
+
});
|
|
212
|
+
const timeout = new Promise((_, reject) => {
|
|
213
|
+
timer = setTimeout(() => reject(new Error('Timeout: could not parse MP4 metadata')), MOOV_TIMEOUT_MS);
|
|
197
214
|
});
|
|
215
|
+
let info;
|
|
216
|
+
try {
|
|
217
|
+
info = await Promise.race([infoPromise, timeout]);
|
|
218
|
+
}
|
|
219
|
+
finally {
|
|
220
|
+
clearTimeout(timer);
|
|
221
|
+
}
|
|
198
222
|
const audioTrack = info.tracks.find((t) => t.type === 'audio');
|
|
199
223
|
if (!audioTrack)
|
|
200
224
|
throw new Error('No audio track found in MP4');
|
|
201
225
|
return { info, audioTrack, mp4 };
|
|
202
226
|
}
|
|
203
|
-
async streamToMP4Box(mp4,
|
|
227
|
+
async streamToMP4Box(mp4, file, fileSize) {
|
|
204
228
|
const chunkSize = 256 * 1024;
|
|
205
|
-
|
|
229
|
+
if (!fileSize)
|
|
230
|
+
throw new Error('Cannot determine file size — needed for MP4 parsing');
|
|
231
|
+
// mp4box calls onReady when moov is parsed. We track that to stop early.
|
|
232
|
+
let moovFound = false;
|
|
233
|
+
const origOnReady = mp4.onReady;
|
|
234
|
+
mp4.onReady = (info) => {
|
|
235
|
+
moovFound = true;
|
|
236
|
+
origOnReady?.(info);
|
|
237
|
+
};
|
|
238
|
+
// Stream from start until moov is found or we hit MOOV_INITIAL_BYTES
|
|
206
239
|
let offset = 0;
|
|
207
|
-
while (offset <
|
|
208
|
-
const end = Math.min(offset + chunkSize - 1,
|
|
209
|
-
const data = await
|
|
240
|
+
while (offset < fileSize && !moovFound) {
|
|
241
|
+
const end = Math.min(offset + chunkSize - 1, fileSize - 1);
|
|
242
|
+
const data = await file.getRange(offset, end);
|
|
210
243
|
const ab = data.buffer.slice(data.byteOffset, data.byteOffset + data.byteLength);
|
|
211
244
|
ab.fileStart = offset;
|
|
212
245
|
mp4.appendBuffer(ab);
|
|
213
246
|
offset = end + 1;
|
|
214
|
-
//
|
|
215
|
-
//
|
|
216
|
-
if (
|
|
217
|
-
// For the moov-at-end case, try the tail
|
|
247
|
+
// After reading MOOV_INITIAL_BYTES from start without finding moov,
|
|
248
|
+
// jump to the tail (moov-at-end layout)
|
|
249
|
+
if (!moovFound && offset >= MOOV_INITIAL_BYTES && offset < fileSize - chunkSize) {
|
|
218
250
|
break;
|
|
219
251
|
}
|
|
220
252
|
}
|
|
221
|
-
// If moov
|
|
222
|
-
if (
|
|
223
|
-
const tailStart = Math.max(offset, fileSize -
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
253
|
+
// If moov wasn't in the head, try the tail
|
|
254
|
+
if (!moovFound && offset < fileSize) {
|
|
255
|
+
const tailStart = Math.max(offset, fileSize - MOOV_INITIAL_BYTES);
|
|
256
|
+
let tailOffset = tailStart;
|
|
257
|
+
while (tailOffset < fileSize && !moovFound) {
|
|
258
|
+
const end = Math.min(tailOffset + chunkSize - 1, fileSize - 1);
|
|
259
|
+
const data = await file.getRange(tailOffset, end);
|
|
260
|
+
const ab = data.buffer.slice(data.byteOffset, data.byteOffset + data.byteLength);
|
|
261
|
+
ab.fileStart = tailOffset;
|
|
262
|
+
mp4.appendBuffer(ab);
|
|
263
|
+
tailOffset = end + 1;
|
|
264
|
+
}
|
|
228
265
|
}
|
|
229
266
|
mp4.flush();
|
|
230
267
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mp4.js","sourceRoot":"","sources":["../../../src/plugins/mp4.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"mp4.js","sourceRoot":"","sources":["../../../src/plugins/mp4.ts"],"names":[],"mappings":"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"}
|
package/dist/types/core.d.ts
CHANGED
|
@@ -14,6 +14,27 @@ export declare abstract class BasePlugin {
|
|
|
14
14
|
}
|
|
15
15
|
export declare function fetchRange(url: string, start: number, end: number): Promise<Uint8Array>;
|
|
16
16
|
export declare function fetchContentLength(url: string): Promise<number | null>;
|
|
17
|
+
/**
|
|
18
|
+
* Wraps a URL for efficient byte access. On the first getRange() call it probes
|
|
19
|
+
* whether the server supports HTTP Range requests. If the server returns 200
|
|
20
|
+
* (full file), the data is kept in memory and all subsequent getRange() calls
|
|
21
|
+
* are served locally — the file is never re-downloaded.
|
|
22
|
+
*
|
|
23
|
+
* Create one RemoteFile per decode() call, let it go when done.
|
|
24
|
+
*/
|
|
25
|
+
export declare class RemoteFile {
|
|
26
|
+
private url;
|
|
27
|
+
private fullData;
|
|
28
|
+
private _size;
|
|
29
|
+
private _rangeSupported;
|
|
30
|
+
constructor(url: string);
|
|
31
|
+
get rangeSupported(): boolean | null;
|
|
32
|
+
get size(): number | null;
|
|
33
|
+
/** Fetch content length via HEAD (does not download body). */
|
|
34
|
+
fetchSize(): Promise<number | null>;
|
|
35
|
+
/** Read a byte range. Detects Range support on first call. */
|
|
36
|
+
getRange(start: number, end: number): Promise<Uint8Array>;
|
|
37
|
+
}
|
|
17
38
|
export declare function trimBySamples(ctx: BaseAudioContext, buffer: AudioBuffer, startSample: number, endSample: number): AudioBuffer;
|
|
18
39
|
declare class AudioSnip {
|
|
19
40
|
private plugins;
|
package/dist/types/index.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { audioSnip, BasePlugin, fetchRange, fetchContentLength, trimBySamples, } from './core.js';
|
|
1
|
+
export { audioSnip, BasePlugin, RemoteFile, fetchRange, fetchContentLength, trimBySamples, } from './core.js';
|
|
2
2
|
export type { AudioFileInfo } from './core.js';
|
package/package.json
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "audio-snip",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0",
|
|
4
4
|
"description": "Decode audio segments from remote files via HTTP Range requests",
|
|
5
5
|
"license": "MIT",
|
|
6
|
-
"author": "Stepan Mikhailiuk",
|
|
6
|
+
"author": "Stepan Mikhailiuk (stepancar)",
|
|
7
7
|
"repository": {
|
|
8
8
|
"type": "git",
|
|
9
9
|
"url": "git+https://github.com/stepancar/audio-snip.git"
|