node-av 2.0.0 → 2.1.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 +10 -2
- package/binding.gyp +12 -0
- package/dist/api/bitstream-filter.d.ts +132 -0
- package/dist/api/bitstream-filter.js +198 -0
- package/dist/api/bitstream-filter.js.map +1 -1
- package/dist/api/decoder.d.ts +145 -0
- package/dist/api/decoder.js +225 -0
- package/dist/api/decoder.js.map +1 -1
- package/dist/api/encoder.d.ts +206 -0
- package/dist/api/encoder.js +315 -0
- package/dist/api/encoder.js.map +1 -1
- package/dist/api/filter-presets.d.ts +92 -0
- package/dist/api/filter-presets.js +92 -0
- package/dist/api/filter-presets.js.map +1 -1
- package/dist/api/filter.d.ts +225 -0
- package/dist/api/filter.js +363 -0
- package/dist/api/filter.js.map +1 -1
- package/dist/api/hardware.d.ts +17 -0
- package/dist/api/hardware.js +17 -0
- package/dist/api/hardware.js.map +1 -1
- package/dist/api/io-stream.d.ts +6 -0
- package/dist/api/io-stream.js +2 -0
- package/dist/api/io-stream.js.map +1 -1
- package/dist/api/media-input.d.ts +207 -1
- package/dist/api/media-input.js +353 -0
- package/dist/api/media-input.js.map +1 -1
- package/dist/api/media-output.d.ts +132 -1
- package/dist/api/media-output.js +339 -0
- package/dist/api/media-output.js.map +1 -1
- package/dist/api/pipeline.d.ts +65 -0
- package/dist/api/pipeline.js +61 -0
- package/dist/api/pipeline.js.map +1 -1
- package/dist/api/types.d.ts +7 -0
- package/dist/api/utils.js +2 -0
- package/dist/api/utils.js.map +1 -1
- package/dist/lib/audio-fifo.d.ts +103 -0
- package/dist/lib/audio-fifo.js +109 -0
- package/dist/lib/audio-fifo.js.map +1 -1
- package/dist/lib/binding.d.ts +1 -0
- package/dist/lib/binding.js.map +1 -1
- package/dist/lib/bitstream-filter-context.d.ts +79 -0
- package/dist/lib/bitstream-filter-context.js +83 -0
- package/dist/lib/bitstream-filter-context.js.map +1 -1
- package/dist/lib/bitstream-filter.d.ts +2 -0
- package/dist/lib/bitstream-filter.js +2 -0
- package/dist/lib/bitstream-filter.js.map +1 -1
- package/dist/lib/codec-context.d.ts +168 -0
- package/dist/lib/codec-context.js +178 -0
- package/dist/lib/codec-context.js.map +1 -1
- package/dist/lib/codec-parameters.d.ts +3 -0
- package/dist/lib/codec-parameters.js +3 -0
- package/dist/lib/codec-parameters.js.map +1 -1
- package/dist/lib/codec-parser.d.ts +6 -0
- package/dist/lib/codec-parser.js +6 -0
- package/dist/lib/codec-parser.js.map +1 -1
- package/dist/lib/codec.d.ts +12 -0
- package/dist/lib/codec.js +12 -0
- package/dist/lib/codec.js.map +1 -1
- package/dist/lib/dictionary.d.ts +16 -0
- package/dist/lib/dictionary.js +16 -0
- package/dist/lib/dictionary.js.map +1 -1
- package/dist/lib/error.d.ts +8 -0
- package/dist/lib/error.js +9 -0
- package/dist/lib/error.js.map +1 -1
- package/dist/lib/filter-context.d.ts +100 -0
- package/dist/lib/filter-context.js +104 -0
- package/dist/lib/filter-context.js.map +1 -1
- package/dist/lib/filter-graph.d.ts +80 -0
- package/dist/lib/filter-graph.js +84 -0
- package/dist/lib/filter-graph.js.map +1 -1
- package/dist/lib/filter-inout.d.ts +1 -0
- package/dist/lib/filter-inout.js +1 -0
- package/dist/lib/filter-inout.js.map +1 -1
- package/dist/lib/filter.d.ts +2 -0
- package/dist/lib/filter.js +2 -0
- package/dist/lib/filter.js.map +1 -1
- package/dist/lib/format-context.d.ts +338 -2
- package/dist/lib/format-context.js +355 -3
- package/dist/lib/format-context.js.map +1 -1
- package/dist/lib/frame.d.ts +41 -0
- package/dist/lib/frame.js +43 -0
- package/dist/lib/frame.js.map +1 -1
- package/dist/lib/hardware-device-context.d.ts +8 -0
- package/dist/lib/hardware-device-context.js +8 -0
- package/dist/lib/hardware-device-context.js.map +1 -1
- package/dist/lib/hardware-frames-context.d.ts +55 -0
- package/dist/lib/hardware-frames-context.js +57 -0
- package/dist/lib/hardware-frames-context.js.map +1 -1
- package/dist/lib/input-format.d.ts +43 -3
- package/dist/lib/input-format.js +48 -0
- package/dist/lib/input-format.js.map +1 -1
- package/dist/lib/io-context.d.ts +212 -0
- package/dist/lib/io-context.js +228 -0
- package/dist/lib/io-context.js.map +1 -1
- package/dist/lib/log.d.ts +2 -0
- package/dist/lib/log.js +2 -0
- package/dist/lib/log.js.map +1 -1
- package/dist/lib/native-types.d.ts +39 -1
- package/dist/lib/option.d.ts +90 -0
- package/dist/lib/option.js +97 -0
- package/dist/lib/option.js.map +1 -1
- package/dist/lib/output-format.d.ts +4 -0
- package/dist/lib/output-format.js +4 -0
- package/dist/lib/output-format.js.map +1 -1
- package/dist/lib/packet.d.ts +7 -0
- package/dist/lib/packet.js +7 -0
- package/dist/lib/packet.js.map +1 -1
- package/dist/lib/rational.d.ts +1 -0
- package/dist/lib/rational.js +1 -0
- package/dist/lib/rational.js.map +1 -1
- package/dist/lib/software-resample-context.d.ts +64 -0
- package/dist/lib/software-resample-context.js +66 -0
- package/dist/lib/software-resample-context.js.map +1 -1
- package/dist/lib/software-scale-context.d.ts +98 -0
- package/dist/lib/software-scale-context.js +102 -0
- package/dist/lib/software-scale-context.js.map +1 -1
- package/dist/lib/stream.d.ts +1 -0
- package/dist/lib/stream.js +1 -0
- package/dist/lib/stream.js.map +1 -1
- package/dist/lib/utilities.d.ts +60 -0
- package/dist/lib/utilities.js +60 -0
- package/dist/lib/utilities.js.map +1 -1
- package/package.json +13 -13
package/dist/api/media-output.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { mkdirSync } from 'fs';
|
|
1
2
|
import { mkdir } from 'fs/promises';
|
|
2
3
|
import { dirname, resolve } from 'path';
|
|
3
4
|
import { AVFMT_FLAG_CUSTOM_IO, AVFMT_NOFILE, AVIO_FLAG_WRITE } from '../constants/constants.js';
|
|
@@ -75,7 +76,9 @@ export class MediaOutput {
|
|
|
75
76
|
* Direct mapping to avformat_alloc_output_context2() and avio_open2().
|
|
76
77
|
*
|
|
77
78
|
* @param target - File path, URL, or I/O callbacks
|
|
79
|
+
*
|
|
78
80
|
* @param options - Output configuration options
|
|
81
|
+
*
|
|
79
82
|
* @returns Opened media output instance
|
|
80
83
|
*
|
|
81
84
|
* @throws {Error} If format required for custom I/O
|
|
@@ -193,6 +196,116 @@ export class MediaOutput {
|
|
|
193
196
|
throw error;
|
|
194
197
|
}
|
|
195
198
|
}
|
|
199
|
+
/**
|
|
200
|
+
* Open media output for writing synchronously.
|
|
201
|
+
* Synchronous version of open.
|
|
202
|
+
*
|
|
203
|
+
* Creates and configures output context for muxing.
|
|
204
|
+
* Automatically creates directories for file output.
|
|
205
|
+
* Supports files, URLs, and custom I/O callbacks.
|
|
206
|
+
*
|
|
207
|
+
* Direct mapping to avformat_alloc_output_context2() and avio_open2().
|
|
208
|
+
*
|
|
209
|
+
* @param target - File path, URL, or I/O callbacks
|
|
210
|
+
*
|
|
211
|
+
* @param options - Output configuration options
|
|
212
|
+
*
|
|
213
|
+
* @returns Opened media output instance
|
|
214
|
+
*
|
|
215
|
+
* @throws {Error} If format required for custom I/O
|
|
216
|
+
*
|
|
217
|
+
* @throws {FFmpegError} If allocation or opening fails
|
|
218
|
+
*
|
|
219
|
+
* @example
|
|
220
|
+
* ```typescript
|
|
221
|
+
* // Create file output
|
|
222
|
+
* using output = MediaOutput.openSync('output.mp4');
|
|
223
|
+
* ```
|
|
224
|
+
*
|
|
225
|
+
* @example
|
|
226
|
+
* ```typescript
|
|
227
|
+
* // Create output with specific format
|
|
228
|
+
* using output = MediaOutput.openSync('output.ts', {
|
|
229
|
+
* format: 'mpegts'
|
|
230
|
+
* });
|
|
231
|
+
* ```
|
|
232
|
+
*
|
|
233
|
+
* @see {@link open} For async version
|
|
234
|
+
*/
|
|
235
|
+
static openSync(target, options) {
|
|
236
|
+
const output = new MediaOutput();
|
|
237
|
+
try {
|
|
238
|
+
if (typeof target === 'string') {
|
|
239
|
+
// File or stream URL - resolve relative paths and create directories
|
|
240
|
+
// Check if it's a URL (starts with protocol://) or a file path
|
|
241
|
+
const isUrl = /^[a-zA-Z][a-zA-Z0-9+.-]*:\/\//.test(target);
|
|
242
|
+
const resolvedTarget = isUrl ? target : resolve(target);
|
|
243
|
+
// Create directory structure for local files (not URLs)
|
|
244
|
+
if (!isUrl && target !== '') {
|
|
245
|
+
const dir = dirname(resolvedTarget);
|
|
246
|
+
mkdirSync(dir, { recursive: true });
|
|
247
|
+
}
|
|
248
|
+
// Allocate output context
|
|
249
|
+
const ret = output.formatContext.allocOutputContext2(null, options?.format ?? null, resolvedTarget === '' ? null : resolvedTarget);
|
|
250
|
+
FFmpegError.throwIfError(ret, 'Failed to allocate output context');
|
|
251
|
+
// Check if we need to open IO
|
|
252
|
+
const oformat = output.formatContext.oformat;
|
|
253
|
+
if (resolvedTarget && oformat && !(oformat.flags & AVFMT_NOFILE)) {
|
|
254
|
+
// For file-based formats, we need to open the file using avio_open2
|
|
255
|
+
// FFmpeg will manage the AVIOContext internally
|
|
256
|
+
output.ioContext = new IOContext();
|
|
257
|
+
const openRet = output.ioContext.open2Sync(resolvedTarget, AVIO_FLAG_WRITE);
|
|
258
|
+
FFmpegError.throwIfError(openRet, `Failed to open output file: ${resolvedTarget}`);
|
|
259
|
+
output.formatContext.pb = output.ioContext;
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
else {
|
|
263
|
+
// Custom IO with callbacks - format is required
|
|
264
|
+
if (!options?.format) {
|
|
265
|
+
throw new Error('Format must be specified for custom IO');
|
|
266
|
+
}
|
|
267
|
+
const ret = output.formatContext.allocOutputContext2(null, options.format, null);
|
|
268
|
+
FFmpegError.throwIfError(ret, 'Failed to allocate output context');
|
|
269
|
+
// Setup custom IO with callbacks
|
|
270
|
+
output.ioContext = new IOContext();
|
|
271
|
+
output.ioContext.allocContextWithCallbacks(options.bufferSize ?? 4096, 1, target.read, target.write, target.seek);
|
|
272
|
+
output.ioContext.maxPacketSize = options.bufferSize ?? 4096;
|
|
273
|
+
output.formatContext.pb = output.ioContext;
|
|
274
|
+
output.formatContext.flags = AVFMT_FLAG_CUSTOM_IO;
|
|
275
|
+
}
|
|
276
|
+
return output;
|
|
277
|
+
}
|
|
278
|
+
catch (error) {
|
|
279
|
+
// Cleanup on error
|
|
280
|
+
if (output.ioContext) {
|
|
281
|
+
try {
|
|
282
|
+
const isCustomIO = (output.formatContext.flags & AVFMT_FLAG_CUSTOM_IO) !== 0;
|
|
283
|
+
if (isCustomIO) {
|
|
284
|
+
// Clear the pb reference first
|
|
285
|
+
output.formatContext.pb = null;
|
|
286
|
+
// For custom IO with callbacks, free the context
|
|
287
|
+
output.ioContext.freeContext();
|
|
288
|
+
}
|
|
289
|
+
else {
|
|
290
|
+
// For file-based IO, close the file handle
|
|
291
|
+
output.ioContext.closepSync();
|
|
292
|
+
}
|
|
293
|
+
}
|
|
294
|
+
catch {
|
|
295
|
+
// Ignore errors
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
if (output.formatContext) {
|
|
299
|
+
try {
|
|
300
|
+
output.formatContext.freeContext();
|
|
301
|
+
}
|
|
302
|
+
catch {
|
|
303
|
+
// Ignore errors
|
|
304
|
+
}
|
|
305
|
+
}
|
|
306
|
+
throw error;
|
|
307
|
+
}
|
|
308
|
+
}
|
|
196
309
|
/**
|
|
197
310
|
* Add a stream to the output.
|
|
198
311
|
*
|
|
@@ -207,8 +320,11 @@ export class MediaOutput {
|
|
|
207
320
|
* Direct mapping to avformat_new_stream().
|
|
208
321
|
*
|
|
209
322
|
* @param source - Encoder or stream to add
|
|
323
|
+
*
|
|
210
324
|
* @param options - Stream configuration options
|
|
325
|
+
*
|
|
211
326
|
* @param options.timeBase - Optional custom timebase for the stream
|
|
327
|
+
*
|
|
212
328
|
* @returns Stream index for packet writing
|
|
213
329
|
*
|
|
214
330
|
* @throws {Error} If called after packets have been written or output closed
|
|
@@ -290,7 +406,9 @@ export class MediaOutput {
|
|
|
290
406
|
* Direct mapping to avformat_write_header() (on first packet) and av_interleaved_write_frame().
|
|
291
407
|
*
|
|
292
408
|
* @param packet - Packet to write
|
|
409
|
+
*
|
|
293
410
|
* @param streamIndex - Target stream index
|
|
411
|
+
*
|
|
294
412
|
* @throws {Error} If stream invalid or encoder not initialized
|
|
295
413
|
*
|
|
296
414
|
* @throws {FFmpegError} If write fails
|
|
@@ -399,6 +517,129 @@ export class MediaOutput {
|
|
|
399
517
|
// Write the current packet
|
|
400
518
|
await write(packet);
|
|
401
519
|
}
|
|
520
|
+
/**
|
|
521
|
+
* Write a packet to the output synchronously.
|
|
522
|
+
* Synchronous version of writePacket.
|
|
523
|
+
*
|
|
524
|
+
* Writes muxed packet to the specified stream.
|
|
525
|
+
* Automatically handles:
|
|
526
|
+
* - Stream initialization on first packet (lazy initialization)
|
|
527
|
+
* - Codec parameter configuration from encoder or input stream
|
|
528
|
+
* - Header writing on first packet
|
|
529
|
+
* - Timestamp rescaling between source and output timebases
|
|
530
|
+
*
|
|
531
|
+
* For encoder sources, the encoder must have processed at least one frame
|
|
532
|
+
* before packets can be written (encoder must be initialized).
|
|
533
|
+
*
|
|
534
|
+
* Direct mapping to avformat_write_header() (on first packet) and av_interleaved_write_frame().
|
|
535
|
+
*
|
|
536
|
+
* @param packet - Packet to write
|
|
537
|
+
*
|
|
538
|
+
* @param streamIndex - Target stream index
|
|
539
|
+
*
|
|
540
|
+
* @throws {Error} If stream invalid or encoder not initialized
|
|
541
|
+
*
|
|
542
|
+
* @throws {FFmpegError} If write fails
|
|
543
|
+
*
|
|
544
|
+
* @example
|
|
545
|
+
* ```typescript
|
|
546
|
+
* // Write encoded packet - header written automatically on first packet
|
|
547
|
+
* const packet = encoder.encodeSync(frame);
|
|
548
|
+
* if (packet) {
|
|
549
|
+
* output.writePacketSync(packet, videoIdx);
|
|
550
|
+
* packet.free();
|
|
551
|
+
* }
|
|
552
|
+
* ```
|
|
553
|
+
*
|
|
554
|
+
* @example
|
|
555
|
+
* ```typescript
|
|
556
|
+
* // Stream copy with packet processing
|
|
557
|
+
* for (const packet of input.packetsSync()) {
|
|
558
|
+
* if (packet.streamIndex === inputVideoIdx) {
|
|
559
|
+
* output.writePacketSync(packet, outputVideoIdx);
|
|
560
|
+
* }
|
|
561
|
+
* packet.free();
|
|
562
|
+
* }
|
|
563
|
+
* ```
|
|
564
|
+
*
|
|
565
|
+
* @see {@link writePacket} For async version
|
|
566
|
+
*/
|
|
567
|
+
writePacketSync(packet, streamIndex) {
|
|
568
|
+
if (this.isClosed) {
|
|
569
|
+
throw new Error('MediaOutput is closed');
|
|
570
|
+
}
|
|
571
|
+
if (this.trailerWritten) {
|
|
572
|
+
throw new Error('Cannot write packets after output is finalized');
|
|
573
|
+
}
|
|
574
|
+
if (!this.streams.get(streamIndex)) {
|
|
575
|
+
throw new Error(`Invalid stream index: ${streamIndex}`);
|
|
576
|
+
}
|
|
577
|
+
// Initialize any encoder streams that are ready
|
|
578
|
+
for (const streamInfo of this.streams.values()) {
|
|
579
|
+
if (!streamInfo.initialized && streamInfo.source instanceof Encoder) {
|
|
580
|
+
const encoder = streamInfo.source;
|
|
581
|
+
const codecContext = encoder.getCodecContext();
|
|
582
|
+
// Skip if encoder not ready yet
|
|
583
|
+
if (!encoder.isEncoderInitialized || !codecContext) {
|
|
584
|
+
continue;
|
|
585
|
+
}
|
|
586
|
+
// This encoder is ready, initialize it now
|
|
587
|
+
const ret = streamInfo.stream.codecpar.fromContext(codecContext);
|
|
588
|
+
FFmpegError.throwIfError(ret, 'Failed to copy codec parameters from encoder');
|
|
589
|
+
// Update the timebase from the encoder
|
|
590
|
+
streamInfo.sourceTimeBase = codecContext.timeBase;
|
|
591
|
+
// Output stream uses encoder's timebase (or custom if specified)
|
|
592
|
+
streamInfo.stream.timeBase = streamInfo.timeBase ? new Rational(streamInfo.timeBase.num, streamInfo.timeBase.den) : codecContext.timeBase;
|
|
593
|
+
// Mark as initialized
|
|
594
|
+
streamInfo.initialized = true;
|
|
595
|
+
}
|
|
596
|
+
}
|
|
597
|
+
const streamInfo = this.streams.get(streamIndex);
|
|
598
|
+
// Check if any streams are still uninitialized
|
|
599
|
+
const uninitialized = Array.from(this.streams.values()).some((s) => !s.initialized);
|
|
600
|
+
if (uninitialized) {
|
|
601
|
+
const clonedPacket = packet.clone();
|
|
602
|
+
packet.free();
|
|
603
|
+
if (clonedPacket) {
|
|
604
|
+
streamInfo.bufferedPackets.push(clonedPacket);
|
|
605
|
+
}
|
|
606
|
+
return;
|
|
607
|
+
}
|
|
608
|
+
// Automatically write header if not written yet
|
|
609
|
+
if (!this.headerWritten) {
|
|
610
|
+
const ret = this.formatContext.writeHeaderSync();
|
|
611
|
+
FFmpegError.throwIfError(ret, 'Failed to write header');
|
|
612
|
+
this.headerWritten = true;
|
|
613
|
+
}
|
|
614
|
+
// Set stream index
|
|
615
|
+
packet.streamIndex = streamIndex;
|
|
616
|
+
const write = (pkt) => {
|
|
617
|
+
// Rescale packet timestamps if source and output timebases differ
|
|
618
|
+
// Note: The stream's timebase may have been changed by writeHeader (e.g., MP4 uses 1/time_scale)
|
|
619
|
+
if (streamInfo.sourceTimeBase) {
|
|
620
|
+
const outputStream = this.formatContext.streams?.[streamIndex];
|
|
621
|
+
if (outputStream) {
|
|
622
|
+
// Only rescale if timebases actually differ
|
|
623
|
+
const srcTb = streamInfo.sourceTimeBase;
|
|
624
|
+
const dstTb = outputStream.timeBase;
|
|
625
|
+
if (srcTb.num !== dstTb.num || srcTb.den !== dstTb.den) {
|
|
626
|
+
pkt.rescaleTs(streamInfo.sourceTimeBase, outputStream.timeBase);
|
|
627
|
+
}
|
|
628
|
+
}
|
|
629
|
+
}
|
|
630
|
+
// Write the packet
|
|
631
|
+
const ret = this.formatContext.interleavedWriteFrameSync(pkt);
|
|
632
|
+
FFmpegError.throwIfError(ret, 'Failed to write packet');
|
|
633
|
+
};
|
|
634
|
+
// Write any buffered packets first
|
|
635
|
+
for (const bufferedPacket of streamInfo.bufferedPackets) {
|
|
636
|
+
write(bufferedPacket);
|
|
637
|
+
bufferedPacket.free();
|
|
638
|
+
}
|
|
639
|
+
streamInfo.bufferedPackets = [];
|
|
640
|
+
// Write the current packet
|
|
641
|
+
write(packet);
|
|
642
|
+
}
|
|
402
643
|
/**
|
|
403
644
|
* Close media output and free resources.
|
|
404
645
|
*
|
|
@@ -477,6 +718,85 @@ export class MediaOutput {
|
|
|
477
718
|
}
|
|
478
719
|
}
|
|
479
720
|
}
|
|
721
|
+
/**
|
|
722
|
+
* Close media output and free resources synchronously.
|
|
723
|
+
* Synchronous version of close.
|
|
724
|
+
*
|
|
725
|
+
* Automatically writes trailer if header was written.
|
|
726
|
+
* Closes the output file and releases all resources.
|
|
727
|
+
* Safe to call multiple times.
|
|
728
|
+
* Automatically called by Symbol.dispose.
|
|
729
|
+
*
|
|
730
|
+
* @example
|
|
731
|
+
* ```typescript
|
|
732
|
+
* const output = MediaOutput.openSync('output.mp4');
|
|
733
|
+
* try {
|
|
734
|
+
* // Use output - trailer written automatically on close
|
|
735
|
+
* } finally {
|
|
736
|
+
* output.closeSync();
|
|
737
|
+
* }
|
|
738
|
+
* ```
|
|
739
|
+
*
|
|
740
|
+
* @see {@link close} For async version
|
|
741
|
+
*/
|
|
742
|
+
closeSync() {
|
|
743
|
+
if (this.isClosed) {
|
|
744
|
+
return;
|
|
745
|
+
}
|
|
746
|
+
this.isClosed = true;
|
|
747
|
+
// Free any buffered packets
|
|
748
|
+
for (const streamInfo of this.streams.values()) {
|
|
749
|
+
// Free any buffered packets
|
|
750
|
+
for (const pkt of streamInfo.bufferedPackets) {
|
|
751
|
+
pkt.free();
|
|
752
|
+
}
|
|
753
|
+
streamInfo.bufferedPackets = [];
|
|
754
|
+
}
|
|
755
|
+
// Try to write trailer if header was written but trailer wasn't
|
|
756
|
+
try {
|
|
757
|
+
if (this.headerWritten && !this.trailerWritten) {
|
|
758
|
+
this.formatContext.writeTrailerSync();
|
|
759
|
+
this.trailerWritten = true;
|
|
760
|
+
}
|
|
761
|
+
}
|
|
762
|
+
catch {
|
|
763
|
+
// Ignore errors
|
|
764
|
+
}
|
|
765
|
+
// Clear pb reference first to prevent use-after-free
|
|
766
|
+
if (this.ioContext) {
|
|
767
|
+
this.formatContext.pb = null;
|
|
768
|
+
}
|
|
769
|
+
// Determine if this is custom IO before freeing format context
|
|
770
|
+
const isCustomIO = (this.formatContext.flags & AVFMT_FLAG_CUSTOM_IO) !== 0;
|
|
771
|
+
// For file-based IO, close the file handle via closep
|
|
772
|
+
// For custom IO, the context will be freed below
|
|
773
|
+
if (this.ioContext && !isCustomIO) {
|
|
774
|
+
try {
|
|
775
|
+
this.ioContext.closepSync();
|
|
776
|
+
}
|
|
777
|
+
catch {
|
|
778
|
+
// Ignore errors
|
|
779
|
+
}
|
|
780
|
+
}
|
|
781
|
+
// Free format context
|
|
782
|
+
if (this.formatContext) {
|
|
783
|
+
try {
|
|
784
|
+
this.formatContext.freeContext();
|
|
785
|
+
}
|
|
786
|
+
catch {
|
|
787
|
+
// Ignore errors
|
|
788
|
+
}
|
|
789
|
+
}
|
|
790
|
+
// Now free custom IO context if present
|
|
791
|
+
if (this.ioContext && isCustomIO) {
|
|
792
|
+
try {
|
|
793
|
+
this.ioContext.freeContext();
|
|
794
|
+
}
|
|
795
|
+
catch {
|
|
796
|
+
// Ignore errors
|
|
797
|
+
}
|
|
798
|
+
}
|
|
799
|
+
}
|
|
480
800
|
/**
|
|
481
801
|
* Get underlying format context.
|
|
482
802
|
*
|
|
@@ -508,5 +828,24 @@ export class MediaOutput {
|
|
|
508
828
|
async [Symbol.asyncDispose]() {
|
|
509
829
|
await this.close();
|
|
510
830
|
}
|
|
831
|
+
/**
|
|
832
|
+
* Dispose of media output synchronously.
|
|
833
|
+
*
|
|
834
|
+
* Implements Disposable interface for automatic cleanup.
|
|
835
|
+
* Equivalent to calling closeSync().
|
|
836
|
+
*
|
|
837
|
+
* @example
|
|
838
|
+
* ```typescript
|
|
839
|
+
* {
|
|
840
|
+
* using output = MediaOutput.openSync('output.mp4');
|
|
841
|
+
* // Use output...
|
|
842
|
+
* } // Automatically closed
|
|
843
|
+
* ```
|
|
844
|
+
*
|
|
845
|
+
* @see {@link closeSync} For manual cleanup
|
|
846
|
+
*/
|
|
847
|
+
[Symbol.dispose]() {
|
|
848
|
+
this.closeSync();
|
|
849
|
+
}
|
|
511
850
|
}
|
|
512
851
|
//# sourceMappingURL=media-output.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"media-output.js","sourceRoot":"","sources":["../../src/api/media-output.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"media-output.js","sourceRoot":"","sources":["../../src/api/media-output.ts"],"names":[],"mappings":"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"}
|
package/dist/api/pipeline.d.ts
CHANGED
|
@@ -51,9 +51,13 @@ export interface PipelineControl {
|
|
|
51
51
|
* Full transcoding pipeline: input → decoder → encoder → output.
|
|
52
52
|
*
|
|
53
53
|
* @param source - Media input source
|
|
54
|
+
*
|
|
54
55
|
* @param decoder - Decoder for decoding packets to frames
|
|
56
|
+
*
|
|
55
57
|
* @param encoder - Encoder for encoding frames to packets
|
|
58
|
+
*
|
|
56
59
|
* @param output - Media output destination
|
|
60
|
+
*
|
|
57
61
|
* @returns Pipeline control for managing execution
|
|
58
62
|
*
|
|
59
63
|
* @example
|
|
@@ -67,10 +71,15 @@ export declare function pipeline(source: MediaInput, decoder: Decoder, encoder:
|
|
|
67
71
|
* Full transcoding pipeline with filter: input → decoder → filter → encoder → output.
|
|
68
72
|
*
|
|
69
73
|
* @param source - Media input source
|
|
74
|
+
*
|
|
70
75
|
* @param decoder - Decoder for decoding packets to frames
|
|
76
|
+
*
|
|
71
77
|
* @param filter - Filter or filter chain for processing frames
|
|
78
|
+
*
|
|
72
79
|
* @param encoder - Encoder for encoding frames to packets
|
|
80
|
+
*
|
|
73
81
|
* @param output - Media output destination
|
|
82
|
+
*
|
|
74
83
|
* @returns Pipeline control for managing execution
|
|
75
84
|
*
|
|
76
85
|
* @example
|
|
@@ -84,10 +93,15 @@ export declare function pipeline(source: MediaInput, decoder: Decoder, filter: F
|
|
|
84
93
|
* Transcoding with bitstream filter: input → decoder → encoder → bsf → output.
|
|
85
94
|
*
|
|
86
95
|
* @param source - Media input source
|
|
96
|
+
*
|
|
87
97
|
* @param decoder - Decoder for decoding packets
|
|
98
|
+
*
|
|
88
99
|
* @param encoder - Encoder for encoding frames
|
|
100
|
+
*
|
|
89
101
|
* @param bsf - Bitstream filter for packet processing
|
|
102
|
+
*
|
|
90
103
|
* @param output - Media output destination
|
|
104
|
+
*
|
|
91
105
|
* @returns Pipeline control for managing execution
|
|
92
106
|
*
|
|
93
107
|
* @example
|
|
@@ -104,11 +118,17 @@ export declare function pipeline(source: MediaInput, decoder: Decoder, encoder:
|
|
|
104
118
|
* Full pipeline with filter and bsf: input → decoder → filter → encoder → bsf → output.
|
|
105
119
|
*
|
|
106
120
|
* @param source - Media input source
|
|
121
|
+
*
|
|
107
122
|
* @param decoder - Decoder for decoding packets
|
|
123
|
+
*
|
|
108
124
|
* @param filter - Filter or filter chain
|
|
125
|
+
*
|
|
109
126
|
* @param encoder - Encoder for encoding frames
|
|
127
|
+
*
|
|
110
128
|
* @param bsf - Bitstream filter
|
|
129
|
+
*
|
|
111
130
|
* @param output - Media output destination
|
|
131
|
+
*
|
|
112
132
|
* @returns Pipeline control for managing execution
|
|
113
133
|
*
|
|
114
134
|
* @example
|
|
@@ -126,11 +146,17 @@ export declare function pipeline(source: MediaInput, decoder: Decoder, filter: F
|
|
|
126
146
|
* Decode + multiple filters + encode: input → decoder → filter1 → filter2 → encoder → output.
|
|
127
147
|
*
|
|
128
148
|
* @param source - Media input source
|
|
149
|
+
*
|
|
129
150
|
* @param decoder - Decoder for decoding packets
|
|
151
|
+
*
|
|
130
152
|
* @param filter1 - First filter
|
|
153
|
+
*
|
|
131
154
|
* @param filter2 - Second filter
|
|
155
|
+
*
|
|
132
156
|
* @param encoder - Encoder for encoding frames
|
|
157
|
+
*
|
|
133
158
|
* @param output - Media output destination
|
|
159
|
+
*
|
|
134
160
|
* @returns Pipeline control for managing execution
|
|
135
161
|
*
|
|
136
162
|
* @example
|
|
@@ -148,7 +174,9 @@ export declare function pipeline(source: MediaInput, decoder: Decoder, filter1:
|
|
|
148
174
|
* Stream copy pipeline: input → output (copies all streams).
|
|
149
175
|
*
|
|
150
176
|
* @param source - Media input source
|
|
177
|
+
*
|
|
151
178
|
* @param output - Media output destination
|
|
179
|
+
*
|
|
152
180
|
* @returns Pipeline control for managing execution
|
|
153
181
|
*
|
|
154
182
|
* @example
|
|
@@ -163,8 +191,11 @@ export declare function pipeline(source: MediaInput, output: MediaOutput): Pipel
|
|
|
163
191
|
* Stream copy with bitstream filter: input → bsf → output.
|
|
164
192
|
*
|
|
165
193
|
* @param source - Media input source
|
|
194
|
+
*
|
|
166
195
|
* @param bsf - Bitstream filter for packet processing
|
|
196
|
+
*
|
|
167
197
|
* @param output - Media output destination
|
|
198
|
+
*
|
|
168
199
|
* @returns Pipeline control for managing execution
|
|
169
200
|
*
|
|
170
201
|
* @example
|
|
@@ -180,9 +211,13 @@ export declare function pipeline(source: MediaInput, bsf: BitStreamFilterAPI | B
|
|
|
180
211
|
* Filter + encode + output: frames → filter → encoder → output.
|
|
181
212
|
*
|
|
182
213
|
* @param source - Frame source (async iterable)
|
|
214
|
+
*
|
|
183
215
|
* @param filter - Filter or filter chain
|
|
216
|
+
*
|
|
184
217
|
* @param encoder - Encoder for encoding frames
|
|
218
|
+
*
|
|
185
219
|
* @param output - Media output destination
|
|
220
|
+
*
|
|
186
221
|
* @returns Pipeline control for managing execution
|
|
187
222
|
*
|
|
188
223
|
* @example
|
|
@@ -200,8 +235,11 @@ export declare function pipeline(source: AsyncIterable<Frame>, filter: FilterAPI
|
|
|
200
235
|
* Encode + output: frames → encoder → output.
|
|
201
236
|
*
|
|
202
237
|
* @param source - Frame source (async iterable)
|
|
238
|
+
*
|
|
203
239
|
* @param encoder - Encoder for encoding frames
|
|
240
|
+
*
|
|
204
241
|
* @param output - Media output destination
|
|
242
|
+
*
|
|
205
243
|
* @returns Pipeline control for managing execution
|
|
206
244
|
*
|
|
207
245
|
* @example
|
|
@@ -218,7 +256,9 @@ export declare function pipeline(source: AsyncIterable<Frame>, encoder: Encoder,
|
|
|
218
256
|
* Partial pipeline: input → decoder (returns frames).
|
|
219
257
|
*
|
|
220
258
|
* @param source - Media input source
|
|
259
|
+
*
|
|
221
260
|
* @param decoder - Decoder for decoding packets
|
|
261
|
+
*
|
|
222
262
|
* @returns Async generator of frames
|
|
223
263
|
*
|
|
224
264
|
* @example
|
|
@@ -237,8 +277,11 @@ export declare function pipeline(source: MediaInput, decoder: Decoder): AsyncGen
|
|
|
237
277
|
* Partial pipeline: input → decoder → filter (returns frames).
|
|
238
278
|
*
|
|
239
279
|
* @param source - Media input source
|
|
280
|
+
*
|
|
240
281
|
* @param decoder - Decoder for decoding packets
|
|
282
|
+
*
|
|
241
283
|
* @param filter - Filter or filter chain
|
|
284
|
+
*
|
|
242
285
|
* @returns Async generator of frames
|
|
243
286
|
*
|
|
244
287
|
* @example
|
|
@@ -258,9 +301,13 @@ export declare function pipeline(source: MediaInput, decoder: Decoder, filter: F
|
|
|
258
301
|
* Partial pipeline: input → decoder → filter → encoder (returns packets).
|
|
259
302
|
*
|
|
260
303
|
* @param source - Media input source
|
|
304
|
+
*
|
|
261
305
|
* @param decoder - Decoder for decoding packets
|
|
306
|
+
*
|
|
262
307
|
* @param filter - Filter or filter chain
|
|
308
|
+
*
|
|
263
309
|
* @param encoder - Encoder for encoding frames
|
|
310
|
+
*
|
|
264
311
|
* @returns Async generator of packets
|
|
265
312
|
*
|
|
266
313
|
* @example
|
|
@@ -281,8 +328,11 @@ export declare function pipeline(source: MediaInput, decoder: Decoder, filter: F
|
|
|
281
328
|
* Partial pipeline: input → decoder → encoder (returns packets).
|
|
282
329
|
*
|
|
283
330
|
* @param source - Media input source
|
|
331
|
+
*
|
|
284
332
|
* @param decoder - Decoder for decoding packets
|
|
333
|
+
*
|
|
285
334
|
* @param encoder - Encoder for encoding frames
|
|
335
|
+
*
|
|
286
336
|
* @returns Async generator of packets
|
|
287
337
|
*
|
|
288
338
|
* @example
|
|
@@ -302,7 +352,9 @@ export declare function pipeline(source: MediaInput, decoder: Decoder, encoder:
|
|
|
302
352
|
* Partial pipeline: frames → filter (returns frames).
|
|
303
353
|
*
|
|
304
354
|
* @param source - Frame source (async iterable)
|
|
355
|
+
*
|
|
305
356
|
* @param filter - Filter or filter chain
|
|
357
|
+
*
|
|
306
358
|
* @returns Async generator of filtered frames
|
|
307
359
|
*
|
|
308
360
|
* @example
|
|
@@ -322,7 +374,9 @@ export declare function pipeline(source: AsyncIterable<Frame>, filter: FilterAPI
|
|
|
322
374
|
* Partial pipeline: frames → encoder (returns packets).
|
|
323
375
|
*
|
|
324
376
|
* @param source - Frame source (async iterable)
|
|
377
|
+
*
|
|
325
378
|
* @param encoder - Encoder for encoding frames
|
|
379
|
+
*
|
|
326
380
|
* @returns Async generator of packets
|
|
327
381
|
*
|
|
328
382
|
* @example
|
|
@@ -342,8 +396,11 @@ export declare function pipeline(source: AsyncIterable<Frame>, encoder: Encoder)
|
|
|
342
396
|
* Partial pipeline: frames → filter → encoder (returns packets).
|
|
343
397
|
*
|
|
344
398
|
* @param source - Frame source (async iterable)
|
|
399
|
+
*
|
|
345
400
|
* @param filter - Filter or filter chain
|
|
401
|
+
*
|
|
346
402
|
* @param encoder - Encoder for encoding frames
|
|
403
|
+
*
|
|
347
404
|
* @returns Async generator of packets
|
|
348
405
|
*
|
|
349
406
|
* @example
|
|
@@ -364,8 +421,11 @@ export declare function pipeline(source: AsyncIterable<Frame>, filter: FilterAPI
|
|
|
364
421
|
* Named pipeline with single output - all streams go to the same output.
|
|
365
422
|
*
|
|
366
423
|
* @param inputs - Named input sources (video/audio)
|
|
424
|
+
*
|
|
367
425
|
* @param stages - Named processing stages for each stream
|
|
426
|
+
*
|
|
368
427
|
* @param output - Single output destination for all streams
|
|
428
|
+
*
|
|
369
429
|
* @returns Pipeline control for managing execution
|
|
370
430
|
*
|
|
371
431
|
* @example
|
|
@@ -387,8 +447,11 @@ export declare function pipeline<K extends StreamName>(inputs: NamedInputs<K>, s
|
|
|
387
447
|
* Named pipeline with multiple outputs - each stream has its own output.
|
|
388
448
|
*
|
|
389
449
|
* @param inputs - Named input sources (video/audio)
|
|
450
|
+
*
|
|
390
451
|
* @param stages - Named processing stages for each stream
|
|
452
|
+
*
|
|
391
453
|
* @param outputs - Named output destinations
|
|
454
|
+
*
|
|
392
455
|
* @returns Pipeline control for managing execution
|
|
393
456
|
*
|
|
394
457
|
* @example
|
|
@@ -410,7 +473,9 @@ export declare function pipeline<K extends StreamName>(inputs: NamedInputs<K>, s
|
|
|
410
473
|
* Partial named pipeline (returns generators for further processing).
|
|
411
474
|
*
|
|
412
475
|
* @param inputs - Named input sources
|
|
476
|
+
*
|
|
413
477
|
* @param stages - Named processing stages
|
|
478
|
+
*
|
|
414
479
|
* @returns Record of async generators for each stream
|
|
415
480
|
*
|
|
416
481
|
* @example
|