node-av 6.0.0-beta.4 → 6.0.0-beta.6

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.
@@ -42,6 +42,43 @@ export interface PipelineControl {
42
42
  * Resolves when all processing is finished or the pipeline is stopped.
43
43
  */
44
44
  readonly completion: Promise<void>;
45
+ /**
46
+ * Latest progress snapshot.
47
+ *
48
+ * Reflects the output packets written so far. Poll this, or pass
49
+ * `onProgress` in {@link PipelineOptions} for push updates.
50
+ *
51
+ * @example
52
+ * ```typescript
53
+ * const control = pipeline(input, decoder, encoder, output);
54
+ * const timer = setInterval(() => console.log(control.progress.fps), 1000);
55
+ * await control.completion;
56
+ * clearInterval(timer);
57
+ * ```
58
+ */
59
+ readonly progress: PipelineProgress;
60
+ }
61
+ /**
62
+ * Progress statistics for a running pipeline.
63
+ *
64
+ * Derived from the packets written to the output, mirroring the figures
65
+ * FFmpeg's CLI reports (`frame= fps= bitrate= time= speed=`).
66
+ */
67
+ export interface PipelineProgress {
68
+ /** Number of output packets written so far. */
69
+ frames: number;
70
+ /** Total output bytes written so far. */
71
+ bytes: number;
72
+ /** Furthest output media timestamp reached, in seconds. */
73
+ time: number;
74
+ /** Output packets per wall-clock second. */
75
+ fps: number;
76
+ /** Output bitrate in bits per second (over media time). */
77
+ bitrate: number;
78
+ /** Processing speed relative to real time (media time / wall-clock time). */
79
+ speed: number;
80
+ /** Wall-clock seconds elapsed since the pipeline started. */
81
+ elapsed: number;
45
82
  }
46
83
  /**
47
84
  * Options for pipeline execution.
@@ -54,6 +91,19 @@ export interface PipelineOptions {
54
91
  * Equivalent to calling `control.stop()`.
55
92
  */
56
93
  signal?: AbortSignal;
94
+ /**
95
+ * Progress callback.
96
+ *
97
+ * Invoked with the latest {@link PipelineProgress} as output packets are
98
+ * written, throttled to `progressInterval`, plus a final call on completion.
99
+ */
100
+ onProgress?: (progress: PipelineProgress) => void;
101
+ /**
102
+ * Minimum interval between `onProgress` callbacks, in milliseconds.
103
+ *
104
+ * @default 250
105
+ */
106
+ progressInterval?: number;
57
107
  }
58
108
  /**
59
109
  * Full transcoding pipeline: input → decoder → encoder → output.
@@ -1,3 +1,4 @@
1
+ import { AV_NOPTS_VALUE } from '../constants/constants.js';
1
2
  // ============================================================================
2
3
  // Implementation
3
4
  // ============================================================================
@@ -37,14 +38,19 @@
37
38
  */
38
39
  export function pipeline(...args) {
39
40
  // Extract PipelineOptions if last arg is undefined or a PipelineOptions object.
40
- // PipelineOptions is identified as a plain object whose only known key is 'signal'.
41
- // This distinguishes it from NamedInputs/NamedStages/NamedOutputs which have stream name keys.
41
+ // PipelineOptions is identified as a plain object carrying a known option key
42
+ // ('signal', 'onProgress', or 'progressInterval'). This distinguishes it from
43
+ // NamedInputs/NamedStages/NamedOutputs which have stream name keys.
42
44
  let pipelineOptions;
43
45
  const lastArg = args[args.length - 1];
44
46
  if (lastArg === undefined) {
45
47
  args.pop();
46
48
  }
47
- else if (args.length > 0 && typeof lastArg === 'object' && lastArg !== null && Object.getPrototypeOf(lastArg) === Object.prototype && 'signal' in lastArg) {
49
+ else if (args.length > 0 &&
50
+ typeof lastArg === 'object' &&
51
+ lastArg !== null &&
52
+ Object.getPrototypeOf(lastArg) === Object.prototype &&
53
+ ('signal' in lastArg || 'onProgress' in lastArg || 'progressInterval' in lastArg)) {
48
54
  pipelineOptions = args.pop();
49
55
  }
50
56
  pipelineOptions?.signal?.throwIfAborted();
@@ -100,6 +106,82 @@ export function pipeline(...args) {
100
106
  // ============================================================================
101
107
  // PipelineControl Implementation
102
108
  // ============================================================================
109
+ /**
110
+ * Accumulates output statistics and emits throttled progress updates.
111
+ *
112
+ * @internal
113
+ */
114
+ class ProgressTracker {
115
+ onProgress;
116
+ throttleMs;
117
+ frames = 0;
118
+ bytes = 0;
119
+ maxTime = 0;
120
+ startTime = Date.now();
121
+ lastEmit = 0;
122
+ /**
123
+ * @param onProgress - Optional callback for push updates
124
+ *
125
+ * @param throttleMs - Minimum interval between callbacks
126
+ *
127
+ * @internal
128
+ */
129
+ constructor(onProgress, throttleMs = 250) {
130
+ this.onProgress = onProgress;
131
+ this.throttleMs = throttleMs;
132
+ }
133
+ /**
134
+ * Record a written output packet.
135
+ *
136
+ * @param packet - The packet written to the output
137
+ *
138
+ * @internal
139
+ */
140
+ record(packet) {
141
+ this.frames++;
142
+ this.bytes += packet.size;
143
+ const tb = packet.timeBase;
144
+ if (packet.pts !== AV_NOPTS_VALUE && tb && tb.den > 0) {
145
+ const t = (Number(packet.pts) * tb.num) / tb.den;
146
+ if (t > this.maxTime) {
147
+ this.maxTime = t;
148
+ }
149
+ }
150
+ const now = Date.now();
151
+ if (this.onProgress && now - this.lastEmit >= this.throttleMs) {
152
+ this.lastEmit = now;
153
+ this.onProgress(this.snapshot());
154
+ }
155
+ }
156
+ /**
157
+ * Build a progress snapshot from the current counters.
158
+ *
159
+ * @returns The current progress statistics
160
+ *
161
+ * @internal
162
+ */
163
+ snapshot() {
164
+ const elapsed = (Date.now() - this.startTime) / 1000;
165
+ return {
166
+ frames: this.frames,
167
+ bytes: this.bytes,
168
+ time: this.maxTime,
169
+ fps: elapsed > 0 ? this.frames / elapsed : 0,
170
+ bitrate: this.maxTime > 0 ? (this.bytes * 8) / this.maxTime : 0,
171
+ speed: elapsed > 0 ? this.maxTime / elapsed : 0,
172
+ elapsed,
173
+ };
174
+ }
175
+ /**
176
+ * Emit a final progress update.
177
+ *
178
+ * @internal
179
+ */
180
+ finish() {
181
+ this.onProgress?.(this.snapshot());
182
+ }
183
+ }
184
+ const EMPTY_PROGRESS = { frames: 0, bytes: 0, time: 0, fps: 0, bitrate: 0, speed: 0, elapsed: 0 };
103
185
  /**
104
186
  * Pipeline control implementation.
105
187
  *
@@ -109,16 +191,21 @@ class PipelineControlImpl {
109
191
  _stopped = false;
110
192
  _completion;
111
193
  signalCleanup;
194
+ tracker;
112
195
  /**
113
196
  * @param executionPromise - Promise that resolves when pipeline completes
114
197
  *
115
198
  * @param signal - Optional AbortSignal for cancellation
116
199
  *
200
+ * @param tracker - Optional progress tracker shared with the runner
201
+ *
117
202
  * @internal
118
203
  */
119
- constructor(executionPromise, signal) {
120
- // Don't resolve immediately on stop, wait for the actual pipeline to finish
121
- this._completion = executionPromise;
204
+ constructor(executionPromise, signal, tracker) {
205
+ this.tracker = tracker;
206
+ // Don't resolve immediately on stop, wait for the actual pipeline to finish.
207
+ // Emit a final progress update once the pipeline settles.
208
+ this._completion = tracker ? executionPromise.finally(() => tracker.finish()) : executionPromise;
122
209
  if (signal) {
123
210
  const handler = () => this.stop();
124
211
  signal.addEventListener('abort', handler, { once: true });
@@ -163,6 +250,12 @@ class PipelineControlImpl {
163
250
  get completion() {
164
251
  return this._completion;
165
252
  }
253
+ /**
254
+ * Get the latest progress snapshot.
255
+ */
256
+ get progress() {
257
+ return this.tracker?.snapshot() ?? EMPTY_PROGRESS;
258
+ }
166
259
  }
167
260
  // ============================================================================
168
261
  // Demuxer Pipeline Implementation
@@ -181,9 +274,10 @@ class PipelineControlImpl {
181
274
  * @internal
182
275
  */
183
276
  function runDemuxerPipeline(input, output, options) {
277
+ const tracker = new ProgressTracker(options?.onProgress, options?.progressInterval);
184
278
  let control;
185
279
  // eslint-disable-next-line prefer-const
186
- control = new PipelineControlImpl(runDemuxerPipelineAsync(input, output, () => control?.isStopped() ?? false), options?.signal);
280
+ control = new PipelineControlImpl(runDemuxerPipelineAsync(input, output, () => control?.isStopped() ?? false, tracker), options?.signal, tracker);
187
281
  return control;
188
282
  }
189
283
  /**
@@ -195,9 +289,11 @@ function runDemuxerPipeline(input, output, options) {
195
289
  *
196
290
  * @param shouldStop - Function to check if pipeline should stop
197
291
  *
292
+ * @param tracker - Optional progress tracker for output statistics
293
+ *
198
294
  * @internal
199
295
  */
200
- async function runDemuxerPipelineAsync(input, output, shouldStop) {
296
+ async function runDemuxerPipelineAsync(input, output, shouldStop, tracker) {
201
297
  // Get all streams from input
202
298
  const videoStream = input.video();
203
299
  const audioStream = input.audio();
@@ -247,6 +343,7 @@ async function runDemuxerPipelineAsync(input, output, shouldStop) {
247
343
  const mapping = streams.find((s) => s.stream.index === packet.streamIndex);
248
344
  if (mapping) {
249
345
  await output.writePacket(packet, mapping.index);
346
+ tracker?.record(packet);
250
347
  }
251
348
  }
252
349
  finally {
@@ -330,9 +427,10 @@ function runSimplePipeline(args, options) {
330
427
  const generator = buildSimplePipeline(actualSource, processStages);
331
428
  // If output, consume the generator
332
429
  if (isOutput) {
430
+ const tracker = new ProgressTracker(options?.onProgress, options?.progressInterval);
333
431
  let control;
334
432
  // eslint-disable-next-line prefer-const
335
- control = new PipelineControlImpl(consumeSimplePipeline(generator, lastStage, metadata, () => control?.isStopped() ?? false), options?.signal);
433
+ control = new PipelineControlImpl(consumeSimplePipeline(generator, lastStage, metadata, () => control?.isStopped() ?? false, tracker), options?.signal, tracker);
336
434
  return control;
337
435
  }
338
436
  // Otherwise return the generator for further processing
@@ -389,9 +487,11 @@ async function* buildSimplePipeline(source, stages) {
389
487
  *
390
488
  * @param shouldStop - Function to check if pipeline should stop
391
489
  *
490
+ * @param tracker - Optional progress tracker for output statistics
491
+ *
392
492
  * @internal
393
493
  */
394
- async function consumeSimplePipeline(stream, output, metadata, shouldStop) {
494
+ async function consumeSimplePipeline(stream, output, metadata, shouldStop, tracker) {
395
495
  // Add stream to output if we have encoder or decoder info
396
496
  let streamIndex = 0;
397
497
  if (metadata.encoder) {
@@ -442,6 +542,9 @@ async function consumeSimplePipeline(stream, output, metadata, shouldStop) {
442
542
  try {
443
543
  if (isPacket(item) || item === null) {
444
544
  await output.writePacket(item, streamIndex);
545
+ if (item !== null) {
546
+ tracker?.record(item);
547
+ }
445
548
  }
446
549
  else {
447
550
  throw new Error('Cannot write frames directly to Muxer. Use an encoder first.');
@@ -546,9 +649,10 @@ function runNamedPartialPipeline(inputs, stages) {
546
649
  * @internal
547
650
  */
548
651
  function runNamedPipeline(inputs, stages, output, options) {
652
+ const tracker = new ProgressTracker(options?.onProgress, options?.progressInterval);
549
653
  let control;
550
654
  // eslint-disable-next-line prefer-const
551
- control = new PipelineControlImpl(runNamedPipelineAsync(inputs, stages, output, () => control?.isStopped() ?? false), options?.signal);
655
+ control = new PipelineControlImpl(runNamedPipelineAsync(inputs, stages, output, () => control?.isStopped() ?? false, tracker), options?.signal, tracker);
552
656
  return control;
553
657
  }
554
658
  /**
@@ -562,9 +666,11 @@ function runNamedPipeline(inputs, stages, output, options) {
562
666
  *
563
667
  * @param shouldStop - Function to check if pipeline should stop
564
668
  *
669
+ * @param tracker - Optional progress tracker for output statistics
670
+ *
565
671
  * @internal
566
672
  */
567
- async function runNamedPipelineAsync(inputs, stages, output, shouldStop) {
673
+ async function runNamedPipelineAsync(inputs, stages, output, shouldStop, tracker) {
568
674
  // Check if all inputs reference the same Demuxer instance
569
675
  const inputValues = Object.values(inputs);
570
676
  const allSameInput = inputValues.length > 1 && inputValues.every((input) => input === inputValues[0]);
@@ -766,7 +872,7 @@ async function runNamedPipelineAsync(inputs, stages, output, shouldStop) {
766
872
  for (const [name, stream] of Object.entries(processedStreams)) {
767
873
  const streamIndex = streamIndices[name];
768
874
  if (streamIndex !== undefined) {
769
- promises.push(consumeStreamInParallel(stream, output, streamIndex, shouldStop));
875
+ promises.push(consumeStreamInParallel(stream, output, streamIndex, shouldStop, tracker));
770
876
  }
771
877
  }
772
878
  await Promise.all(promises);
@@ -780,7 +886,7 @@ async function runNamedPipelineAsync(inputs, stages, output, shouldStop) {
780
886
  const streamOutput = outputs[streamName];
781
887
  const metadata = streamMetadata[streamName];
782
888
  if (streamOutput && metadata) {
783
- promises.push(consumeNamedStream(stream, streamOutput, metadata, shouldStop));
889
+ promises.push(consumeNamedStream(stream, streamOutput, metadata, shouldStop, tracker));
784
890
  }
785
891
  }
786
892
  await Promise.all(promises);
@@ -897,9 +1003,11 @@ async function* buildNamedStreamPipeline(source, stages, metadata) {
897
1003
  *
898
1004
  * @param shouldStop - Function to check if pipeline should stop
899
1005
  *
1006
+ * @param tracker - Optional progress tracker for output statistics
1007
+ *
900
1008
  * @internal
901
1009
  */
902
- async function consumeStreamInParallel(stream, output, streamIndex, shouldStop) {
1010
+ async function consumeStreamInParallel(stream, output, streamIndex, shouldStop, tracker) {
903
1011
  // Get iterator to properly clean up on stop
904
1012
  const iterator = stream[Symbol.asyncIterator]();
905
1013
  try {
@@ -914,6 +1022,9 @@ async function consumeStreamInParallel(stream, output, streamIndex, shouldStop)
914
1022
  break;
915
1023
  try {
916
1024
  await output.writePacket(packet, streamIndex);
1025
+ if (packet !== null) {
1026
+ tracker?.record(packet);
1027
+ }
917
1028
  }
918
1029
  finally {
919
1030
  // Free the packet after use (but not null)
@@ -942,9 +1053,11 @@ async function consumeStreamInParallel(stream, output, streamIndex, shouldStop)
942
1053
  *
943
1054
  * @param shouldStop - Function to check if pipeline should stop
944
1055
  *
1056
+ * @param tracker - Optional progress tracker for output statistics
1057
+ *
945
1058
  * @internal
946
1059
  */
947
- async function consumeNamedStream(stream, output, metadata, shouldStop) {
1060
+ async function consumeNamedStream(stream, output, metadata, shouldStop, tracker) {
948
1061
  // Add stream to output
949
1062
  let streamIndex = 0;
950
1063
  if (metadata.encoder) {
@@ -997,6 +1110,9 @@ async function consumeNamedStream(stream, output, metadata, shouldStop) {
997
1110
  break;
998
1111
  try {
999
1112
  await output.writePacket(packet, streamIndex);
1113
+ if (packet !== null) {
1114
+ tracker?.record(packet);
1115
+ }
1000
1116
  }
1001
1117
  finally {
1002
1118
  // Free the packet after use (but not null)
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../../src/api/pipeline.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../../src/api/pipeline.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,128 @@
1
+ import type { AVCodecID, DemuxerFormat } from '../constants/index.js';
2
+ import type { DemuxerOptions } from './demuxer.js';
3
+ /**
4
+ * Stream type as a readable string.
5
+ */
6
+ export type ProbeStreamType = 'video' | 'audio' | 'subtitle' | 'data' | 'attachment' | 'unknown';
7
+ /**
8
+ * Structured information about a single media stream.
9
+ */
10
+ export interface ProbeStream {
11
+ /** Stream index within the container. */
12
+ index: number;
13
+ /** Stream type. */
14
+ type: ProbeStreamType;
15
+ /** Codec short name (e.g. `'h264'`), or `'unknown'`. */
16
+ codec: string;
17
+ /** Codec long name (e.g. `'H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10'`). */
18
+ codecLongName: string;
19
+ /** Raw `AVCodecID`. */
20
+ codecId: AVCodecID;
21
+ /** Stream bitrate in bits per second, or 0 if unknown. */
22
+ bitrate: number;
23
+ /** Stream-level metadata tags. */
24
+ metadata: Record<string, string>;
25
+ /** Language tag (from metadata), if present. */
26
+ language?: string;
27
+ /** True if this stream is marked as default. */
28
+ default: boolean;
29
+ /** Video width in pixels. */
30
+ width?: number;
31
+ /** Video height in pixels. */
32
+ height?: number;
33
+ /** Pixel format name (e.g. `'yuv420p'`). */
34
+ pixelFormat?: string;
35
+ /** Average frame rate in frames per second. */
36
+ frameRate?: number;
37
+ /** Sample aspect ratio. */
38
+ sampleAspectRatio?: {
39
+ num: number;
40
+ den: number;
41
+ };
42
+ /** Audio sample rate in Hz. */
43
+ sampleRate?: number;
44
+ /** Number of audio channels. */
45
+ channels?: number;
46
+ /** Sample format name (e.g. `'fltp'`). */
47
+ sampleFormat?: string;
48
+ }
49
+ /**
50
+ * Structured result of {@link probe}.
51
+ */
52
+ export interface ProbeResult {
53
+ /** Container format short name (e.g. `'mov,mp4,m4a,3gp,3g2,mj2'`). */
54
+ format: string;
55
+ /** Container format long name (e.g. `'QuickTime / MOV'`). */
56
+ formatLongName: string;
57
+ /** Total duration in seconds, or 0 if unknown. */
58
+ duration: number;
59
+ /** Start time in seconds, or 0 if unknown. */
60
+ startTime: number;
61
+ /** Overall bitrate in bits per second, or 0 if unknown. */
62
+ bitrate: number;
63
+ /** Number of streams. */
64
+ nbStreams: number;
65
+ /** All streams in container order. */
66
+ streams: ProbeStream[];
67
+ /** Container-level metadata tags. */
68
+ metadata: Record<string, string>;
69
+ /** First video stream, if any (convenience). */
70
+ video?: ProbeStream;
71
+ /** First audio stream, if any (convenience). */
72
+ audio?: ProbeStream;
73
+ }
74
+ /**
75
+ * Options for {@link probe} and {@link probeSync}.
76
+ *
77
+ * Same shape as {@link DemuxerOptions}: when `format` is a known literal, the
78
+ * `options` bag is typed to that demuxer's options.
79
+ */
80
+ export type ProbeOptions<F extends DemuxerFormat | (string & {}) = DemuxerFormat | (string & {})> = DemuxerOptions<F>;
81
+ /**
82
+ * Probe a media source and return structured metadata.
83
+ *
84
+ * Opens the input, reads stream information, builds a typed summary, and closes
85
+ * the input again. Equivalent to `ffprobe -show_format -show_streams`, but as a
86
+ * plain object.
87
+ *
88
+ * @param input - Media source: a file path/URL or an in-memory buffer
89
+ *
90
+ * @param options - Optional format hint and demuxer options
91
+ *
92
+ * @returns Structured probe result
93
+ *
94
+ * @throws {FFmpegError} If the input cannot be opened or has no stream info
95
+ *
96
+ * @example
97
+ * ```typescript
98
+ * const info = await probe('input.mkv');
99
+ * if (info.video) {
100
+ * console.log(`${info.video.codec} ${info.video.width}x${info.video.height} @ ${info.video.frameRate}fps`);
101
+ * }
102
+ * ```
103
+ *
104
+ * @see {@link probeSync} For the synchronous version
105
+ * @see {@link Demuxer} For full streaming access
106
+ */
107
+ export declare function probe<const F extends DemuxerFormat | (string & {}) = DemuxerFormat | (string & {})>(input: string | Buffer, options?: ProbeOptions<F>): Promise<ProbeResult>;
108
+ /**
109
+ * Probe a media source and return structured metadata synchronously.
110
+ * Synchronous version of {@link probe}.
111
+ *
112
+ * @param input - Media source: a file path/URL or an in-memory buffer
113
+ *
114
+ * @param options - Optional format hint and demuxer options
115
+ *
116
+ * @returns Structured probe result
117
+ *
118
+ * @throws {FFmpegError} If the input cannot be opened or has no stream info
119
+ *
120
+ * @example
121
+ * ```typescript
122
+ * const info = probeSync('input.mkv');
123
+ * console.log(info.duration, info.streams.length);
124
+ * ```
125
+ *
126
+ * @see {@link probe} For the asynchronous version
127
+ */
128
+ export declare function probeSync<const F extends DemuxerFormat | (string & {}) = DemuxerFormat | (string & {})>(input: string | Buffer, options?: ProbeOptions<F>): ProbeResult;