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/encoder.d.ts
CHANGED
|
@@ -70,8 +70,11 @@ export declare class Encoder implements Disposable {
|
|
|
70
70
|
private opts?;
|
|
71
71
|
/**
|
|
72
72
|
* @param codecContext - Configured codec context
|
|
73
|
+
*
|
|
73
74
|
* @param codec - Encoder codec
|
|
75
|
+
*
|
|
74
76
|
* @param opts - Encoder options as Dictionary
|
|
77
|
+
*
|
|
75
78
|
* @internal
|
|
76
79
|
*/
|
|
77
80
|
private constructor();
|
|
@@ -85,7 +88,9 @@ export declare class Encoder implements Disposable {
|
|
|
85
88
|
* Direct mapping to avcodec_find_encoder_by_name() or avcodec_find_encoder().
|
|
86
89
|
*
|
|
87
90
|
* @param encoderCodec - Codec name, ID, or instance to use for encoding
|
|
91
|
+
*
|
|
88
92
|
* @param options - Encoder configuration options including required timeBase
|
|
93
|
+
*
|
|
89
94
|
* @returns Configured encoder instance
|
|
90
95
|
*
|
|
91
96
|
* @throws {Error} If encoder not found or timeBase not provided
|
|
@@ -194,6 +199,7 @@ export declare class Encoder implements Disposable {
|
|
|
194
199
|
* Direct mapping to avcodec_send_frame() and avcodec_receive_packet().
|
|
195
200
|
*
|
|
196
201
|
* @param frame - Raw frame to encode (or null to flush)
|
|
202
|
+
*
|
|
197
203
|
* @returns Encoded packet or null if more data needed
|
|
198
204
|
*
|
|
199
205
|
* @throws {Error} If encoder is closed
|
|
@@ -227,6 +233,50 @@ export declare class Encoder implements Disposable {
|
|
|
227
233
|
* @see {@link flush} For end-of-stream handling
|
|
228
234
|
*/
|
|
229
235
|
encode(frame: Frame | null): Promise<Packet | null>;
|
|
236
|
+
/**
|
|
237
|
+
* Encode a frame to a packet synchronously.
|
|
238
|
+
* Synchronous version of encode.
|
|
239
|
+
*
|
|
240
|
+
* Sends a frame to the encoder and attempts to receive an encoded packet.
|
|
241
|
+
* On first frame, automatically initializes encoder with frame properties.
|
|
242
|
+
* Handles internal buffering - may return null if more frames needed.
|
|
243
|
+
*
|
|
244
|
+
* Direct mapping to avcodec_send_frame() and avcodec_receive_packet().
|
|
245
|
+
*
|
|
246
|
+
* @param frame - Raw frame to encode (or null to flush)
|
|
247
|
+
*
|
|
248
|
+
* @returns Encoded packet or null if more data needed
|
|
249
|
+
*
|
|
250
|
+
* @throws {Error} If encoder is closed
|
|
251
|
+
*
|
|
252
|
+
* @throws {FFmpegError} If encoding fails
|
|
253
|
+
*
|
|
254
|
+
* @example
|
|
255
|
+
* ```typescript
|
|
256
|
+
* const packet = encoder.encodeSync(frame);
|
|
257
|
+
* if (packet) {
|
|
258
|
+
* console.log(`Encoded packet with PTS: ${packet.pts}`);
|
|
259
|
+
* output.writePacketSync(packet);
|
|
260
|
+
* packet.free();
|
|
261
|
+
* }
|
|
262
|
+
* ```
|
|
263
|
+
*
|
|
264
|
+
* @example
|
|
265
|
+
* ```typescript
|
|
266
|
+
* // Encode loop
|
|
267
|
+
* for (const frame of decoder.framesSync(packets)) {
|
|
268
|
+
* const packet = encoder.encodeSync(frame);
|
|
269
|
+
* if (packet) {
|
|
270
|
+
* output.writePacketSync(packet);
|
|
271
|
+
* packet.free();
|
|
272
|
+
* }
|
|
273
|
+
* frame.free();
|
|
274
|
+
* }
|
|
275
|
+
* ```
|
|
276
|
+
*
|
|
277
|
+
* @see {@link encode} For async version
|
|
278
|
+
*/
|
|
279
|
+
encodeSync(frame: Frame | null): Packet | null;
|
|
230
280
|
/**
|
|
231
281
|
* Encode frame stream to packet stream.
|
|
232
282
|
*
|
|
@@ -236,7 +286,9 @@ export declare class Encoder implements Disposable {
|
|
|
236
286
|
* Primary interface for stream-based encoding.
|
|
237
287
|
*
|
|
238
288
|
* @param frames - Async iterable of frames (freed automatically)
|
|
289
|
+
*
|
|
239
290
|
* @yields {Packet} Encoded packets (caller must free)
|
|
291
|
+
*
|
|
240
292
|
* @throws {Error} If encoder is closed
|
|
241
293
|
*
|
|
242
294
|
* @throws {FFmpegError} If encoding fails
|
|
@@ -287,6 +339,54 @@ export declare class Encoder implements Disposable {
|
|
|
287
339
|
* @see {@link Decoder.frames} For frame source
|
|
288
340
|
*/
|
|
289
341
|
packets(frames: AsyncIterable<Frame>): AsyncGenerator<Packet>;
|
|
342
|
+
/**
|
|
343
|
+
* Encode frame stream to packet stream synchronously.
|
|
344
|
+
* Synchronous version of packets.
|
|
345
|
+
*
|
|
346
|
+
* High-level sync generator for complete encoding pipeline.
|
|
347
|
+
* Automatically manages frame memory, encoder state,
|
|
348
|
+
* and flushes buffered packets at end.
|
|
349
|
+
* Primary interface for stream-based encoding.
|
|
350
|
+
*
|
|
351
|
+
* @param frames - Iterable of frames (freed automatically)
|
|
352
|
+
*
|
|
353
|
+
* @yields {Packet} Encoded packets (caller must free)
|
|
354
|
+
*
|
|
355
|
+
* @throws {Error} If encoder is closed
|
|
356
|
+
*
|
|
357
|
+
* @throws {FFmpegError} If encoding fails
|
|
358
|
+
*
|
|
359
|
+
* @example
|
|
360
|
+
* ```typescript
|
|
361
|
+
* // Basic encoding pipeline
|
|
362
|
+
* for (const packet of encoder.packetsSync(decoder.framesSync(packets))) {
|
|
363
|
+
* output.writePacketSync(packet);
|
|
364
|
+
* packet.free(); // Must free output packets
|
|
365
|
+
* }
|
|
366
|
+
* ```
|
|
367
|
+
*
|
|
368
|
+
* @example
|
|
369
|
+
* ```typescript
|
|
370
|
+
* // With frame filtering
|
|
371
|
+
* function* filteredFrames() {
|
|
372
|
+
* for (const frame of decoder.framesSync(packets)) {
|
|
373
|
+
* const filtered = filter.processSync(frame);
|
|
374
|
+
* if (filtered) {
|
|
375
|
+
* yield filtered;
|
|
376
|
+
* }
|
|
377
|
+
* frame.free();
|
|
378
|
+
* }
|
|
379
|
+
* }
|
|
380
|
+
*
|
|
381
|
+
* for (const packet of encoder.packetsSync(filteredFrames())) {
|
|
382
|
+
* output.writePacketSync(packet);
|
|
383
|
+
* packet.free();
|
|
384
|
+
* }
|
|
385
|
+
* ```
|
|
386
|
+
*
|
|
387
|
+
* @see {@link packets} For async version
|
|
388
|
+
*/
|
|
389
|
+
packetsSync(frames: Iterable<Frame>): Generator<Packet>;
|
|
290
390
|
/**
|
|
291
391
|
* Flush encoder and signal end-of-stream.
|
|
292
392
|
*
|
|
@@ -314,6 +414,33 @@ export declare class Encoder implements Disposable {
|
|
|
314
414
|
* @see {@link receive} For getting buffered packets
|
|
315
415
|
*/
|
|
316
416
|
flush(): Promise<void>;
|
|
417
|
+
/**
|
|
418
|
+
* Flush encoder and signal end-of-stream synchronously.
|
|
419
|
+
* Synchronous version of flush.
|
|
420
|
+
*
|
|
421
|
+
* Sends null frame to encoder to signal end-of-stream.
|
|
422
|
+
* Does nothing if encoder was never initialized or is closed.
|
|
423
|
+
* Must call receiveSync() to get remaining buffered packets.
|
|
424
|
+
*
|
|
425
|
+
* Direct mapping to avcodec_send_frame(NULL).
|
|
426
|
+
*
|
|
427
|
+
* @example
|
|
428
|
+
* ```typescript
|
|
429
|
+
* // Signal end of stream
|
|
430
|
+
* encoder.flushSync();
|
|
431
|
+
*
|
|
432
|
+
* // Then get remaining packets
|
|
433
|
+
* let packet;
|
|
434
|
+
* while ((packet = encoder.receiveSync()) !== null) {
|
|
435
|
+
* console.log('Got buffered packet');
|
|
436
|
+
* output.writePacketSync(packet);
|
|
437
|
+
* packet.free();
|
|
438
|
+
* }
|
|
439
|
+
* ```
|
|
440
|
+
*
|
|
441
|
+
* @see {@link flush} For async version
|
|
442
|
+
*/
|
|
443
|
+
flushSync(): void;
|
|
317
444
|
/**
|
|
318
445
|
* Flush all buffered packets as async generator.
|
|
319
446
|
*
|
|
@@ -337,6 +464,29 @@ export declare class Encoder implements Disposable {
|
|
|
337
464
|
* @see {@link packets} For complete pipeline
|
|
338
465
|
*/
|
|
339
466
|
flushPackets(): AsyncGenerator<Packet>;
|
|
467
|
+
/**
|
|
468
|
+
* Flush all buffered packets as generator synchronously.
|
|
469
|
+
* Synchronous version of flushPackets.
|
|
470
|
+
*
|
|
471
|
+
* Convenient sync iteration over remaining packets.
|
|
472
|
+
* Automatically handles flush and repeated receive calls.
|
|
473
|
+
* Returns immediately if encoder was never initialized or is closed.
|
|
474
|
+
*
|
|
475
|
+
* @yields {Packet} Buffered packets
|
|
476
|
+
*
|
|
477
|
+
* @example
|
|
478
|
+
* ```typescript
|
|
479
|
+
* // Flush at end of encoding
|
|
480
|
+
* for (const packet of encoder.flushPacketsSync()) {
|
|
481
|
+
* console.log('Processing buffered packet');
|
|
482
|
+
* output.writePacketSync(packet);
|
|
483
|
+
* packet.free();
|
|
484
|
+
* }
|
|
485
|
+
* ```
|
|
486
|
+
*
|
|
487
|
+
* @see {@link flushPackets} For async version
|
|
488
|
+
*/
|
|
489
|
+
flushPacketsSync(): Generator<Packet>;
|
|
340
490
|
/**
|
|
341
491
|
* Receive packet from encoder.
|
|
342
492
|
*
|
|
@@ -376,6 +526,45 @@ export declare class Encoder implements Disposable {
|
|
|
376
526
|
* @see {@link flush} For signaling end-of-stream
|
|
377
527
|
*/
|
|
378
528
|
receive(): Promise<Packet | null>;
|
|
529
|
+
/**
|
|
530
|
+
* Receive packet from encoder synchronously.
|
|
531
|
+
* Synchronous version of receive.
|
|
532
|
+
*
|
|
533
|
+
* Gets encoded packets from the codec's internal buffer.
|
|
534
|
+
* Handles packet cloning and error checking.
|
|
535
|
+
* Returns null if encoder is closed, not initialized, or no packets available.
|
|
536
|
+
* Call repeatedly until null to drain all buffered packets.
|
|
537
|
+
*
|
|
538
|
+
* Direct mapping to avcodec_receive_packet().
|
|
539
|
+
*
|
|
540
|
+
* @returns Cloned packet or null if no packets available
|
|
541
|
+
*
|
|
542
|
+
* @throws {FFmpegError} If receive fails with error other than AVERROR_EAGAIN or AVERROR_EOF
|
|
543
|
+
*
|
|
544
|
+
* @example
|
|
545
|
+
* ```typescript
|
|
546
|
+
* const packet = encoder.receiveSync();
|
|
547
|
+
* if (packet) {
|
|
548
|
+
* console.log(`Got packet with PTS: ${packet.pts}`);
|
|
549
|
+
* output.writePacketSync(packet);
|
|
550
|
+
* packet.free();
|
|
551
|
+
* }
|
|
552
|
+
* ```
|
|
553
|
+
*
|
|
554
|
+
* @example
|
|
555
|
+
* ```typescript
|
|
556
|
+
* // Drain all buffered packets
|
|
557
|
+
* let packet;
|
|
558
|
+
* while ((packet = encoder.receiveSync()) !== null) {
|
|
559
|
+
* console.log(`Packet size: ${packet.size}`);
|
|
560
|
+
* output.writePacketSync(packet);
|
|
561
|
+
* packet.free();
|
|
562
|
+
* }
|
|
563
|
+
* ```
|
|
564
|
+
*
|
|
565
|
+
* @see {@link receive} For async version
|
|
566
|
+
*/
|
|
567
|
+
receiveSync(): Packet | null;
|
|
379
568
|
/**
|
|
380
569
|
* Close encoder and free resources.
|
|
381
570
|
*
|
|
@@ -410,6 +599,23 @@ export declare class Encoder implements Disposable {
|
|
|
410
599
|
* @internal
|
|
411
600
|
*/
|
|
412
601
|
private initialize;
|
|
602
|
+
/**
|
|
603
|
+
* Initialize encoder from first frame synchronously.
|
|
604
|
+
* Synchronous version of initialize.
|
|
605
|
+
*
|
|
606
|
+
* Sets codec context parameters from frame properties.
|
|
607
|
+
* Configures hardware context if present in frame.
|
|
608
|
+
* Opens encoder with accumulated options.
|
|
609
|
+
*
|
|
610
|
+
* @param frame - First frame to encode
|
|
611
|
+
*
|
|
612
|
+
* @throws {FFmpegError} If encoder open fails
|
|
613
|
+
*
|
|
614
|
+
* @internal
|
|
615
|
+
*
|
|
616
|
+
* @see {@link initialize} For async version
|
|
617
|
+
*/
|
|
618
|
+
private initializeSync;
|
|
413
619
|
/**
|
|
414
620
|
* Get encoder codec.
|
|
415
621
|
*
|
package/dist/api/encoder.js
CHANGED
|
@@ -68,8 +68,11 @@ export class Encoder {
|
|
|
68
68
|
opts;
|
|
69
69
|
/**
|
|
70
70
|
* @param codecContext - Configured codec context
|
|
71
|
+
*
|
|
71
72
|
* @param codec - Encoder codec
|
|
73
|
+
*
|
|
72
74
|
* @param opts - Encoder options as Dictionary
|
|
75
|
+
*
|
|
73
76
|
* @internal
|
|
74
77
|
*/
|
|
75
78
|
constructor(codecContext, codec, opts) {
|
|
@@ -89,7 +92,9 @@ export class Encoder {
|
|
|
89
92
|
* Direct mapping to avcodec_find_encoder_by_name() or avcodec_find_encoder().
|
|
90
93
|
*
|
|
91
94
|
* @param encoderCodec - Codec name, ID, or instance to use for encoding
|
|
95
|
+
*
|
|
92
96
|
* @param options - Encoder configuration options including required timeBase
|
|
97
|
+
*
|
|
93
98
|
* @returns Configured encoder instance
|
|
94
99
|
*
|
|
95
100
|
* @throws {Error} If encoder not found or timeBase not provided
|
|
@@ -261,6 +266,7 @@ export class Encoder {
|
|
|
261
266
|
* Direct mapping to avcodec_send_frame() and avcodec_receive_packet().
|
|
262
267
|
*
|
|
263
268
|
* @param frame - Raw frame to encode (or null to flush)
|
|
269
|
+
*
|
|
264
270
|
* @returns Encoded packet or null if more data needed
|
|
265
271
|
*
|
|
266
272
|
* @throws {Error} If encoder is closed
|
|
@@ -322,6 +328,78 @@ export class Encoder {
|
|
|
322
328
|
// Try to receive packet
|
|
323
329
|
return await this.receive();
|
|
324
330
|
}
|
|
331
|
+
/**
|
|
332
|
+
* Encode a frame to a packet synchronously.
|
|
333
|
+
* Synchronous version of encode.
|
|
334
|
+
*
|
|
335
|
+
* Sends a frame to the encoder and attempts to receive an encoded packet.
|
|
336
|
+
* On first frame, automatically initializes encoder with frame properties.
|
|
337
|
+
* Handles internal buffering - may return null if more frames needed.
|
|
338
|
+
*
|
|
339
|
+
* Direct mapping to avcodec_send_frame() and avcodec_receive_packet().
|
|
340
|
+
*
|
|
341
|
+
* @param frame - Raw frame to encode (or null to flush)
|
|
342
|
+
*
|
|
343
|
+
* @returns Encoded packet or null if more data needed
|
|
344
|
+
*
|
|
345
|
+
* @throws {Error} If encoder is closed
|
|
346
|
+
*
|
|
347
|
+
* @throws {FFmpegError} If encoding fails
|
|
348
|
+
*
|
|
349
|
+
* @example
|
|
350
|
+
* ```typescript
|
|
351
|
+
* const packet = encoder.encodeSync(frame);
|
|
352
|
+
* if (packet) {
|
|
353
|
+
* console.log(`Encoded packet with PTS: ${packet.pts}`);
|
|
354
|
+
* output.writePacketSync(packet);
|
|
355
|
+
* packet.free();
|
|
356
|
+
* }
|
|
357
|
+
* ```
|
|
358
|
+
*
|
|
359
|
+
* @example
|
|
360
|
+
* ```typescript
|
|
361
|
+
* // Encode loop
|
|
362
|
+
* for (const frame of decoder.framesSync(packets)) {
|
|
363
|
+
* const packet = encoder.encodeSync(frame);
|
|
364
|
+
* if (packet) {
|
|
365
|
+
* output.writePacketSync(packet);
|
|
366
|
+
* packet.free();
|
|
367
|
+
* }
|
|
368
|
+
* frame.free();
|
|
369
|
+
* }
|
|
370
|
+
* ```
|
|
371
|
+
*
|
|
372
|
+
* @see {@link encode} For async version
|
|
373
|
+
*/
|
|
374
|
+
encodeSync(frame) {
|
|
375
|
+
if (this.isClosed) {
|
|
376
|
+
if (!frame) {
|
|
377
|
+
return null;
|
|
378
|
+
}
|
|
379
|
+
throw new Error('Encoder is closed');
|
|
380
|
+
}
|
|
381
|
+
// Open encoder if not already done
|
|
382
|
+
if (!this.initialized) {
|
|
383
|
+
if (!frame) {
|
|
384
|
+
return null;
|
|
385
|
+
}
|
|
386
|
+
this.initializeSync(frame);
|
|
387
|
+
}
|
|
388
|
+
// Send frame to encoder
|
|
389
|
+
const sendRet = this.codecContext.sendFrameSync(frame);
|
|
390
|
+
if (sendRet < 0 && sendRet !== AVERROR_EOF) {
|
|
391
|
+
// Encoder might be full, try to receive first
|
|
392
|
+
const packet = this.receiveSync();
|
|
393
|
+
if (packet)
|
|
394
|
+
return packet;
|
|
395
|
+
// If still failing, it's an error
|
|
396
|
+
if (sendRet !== AVERROR_EAGAIN) {
|
|
397
|
+
FFmpegError.throwIfError(sendRet, 'Failed to send frame');
|
|
398
|
+
}
|
|
399
|
+
}
|
|
400
|
+
// Try to receive packet
|
|
401
|
+
return this.receiveSync();
|
|
402
|
+
}
|
|
325
403
|
/**
|
|
326
404
|
* Encode frame stream to packet stream.
|
|
327
405
|
*
|
|
@@ -331,7 +409,9 @@ export class Encoder {
|
|
|
331
409
|
* Primary interface for stream-based encoding.
|
|
332
410
|
*
|
|
333
411
|
* @param frames - Async iterable of frames (freed automatically)
|
|
412
|
+
*
|
|
334
413
|
* @yields {Packet} Encoded packets (caller must free)
|
|
414
|
+
*
|
|
335
415
|
* @throws {Error} If encoder is closed
|
|
336
416
|
*
|
|
337
417
|
* @throws {FFmpegError} If encoding fails
|
|
@@ -404,6 +484,76 @@ export class Encoder {
|
|
|
404
484
|
yield remaining;
|
|
405
485
|
}
|
|
406
486
|
}
|
|
487
|
+
/**
|
|
488
|
+
* Encode frame stream to packet stream synchronously.
|
|
489
|
+
* Synchronous version of packets.
|
|
490
|
+
*
|
|
491
|
+
* High-level sync generator for complete encoding pipeline.
|
|
492
|
+
* Automatically manages frame memory, encoder state,
|
|
493
|
+
* and flushes buffered packets at end.
|
|
494
|
+
* Primary interface for stream-based encoding.
|
|
495
|
+
*
|
|
496
|
+
* @param frames - Iterable of frames (freed automatically)
|
|
497
|
+
*
|
|
498
|
+
* @yields {Packet} Encoded packets (caller must free)
|
|
499
|
+
*
|
|
500
|
+
* @throws {Error} If encoder is closed
|
|
501
|
+
*
|
|
502
|
+
* @throws {FFmpegError} If encoding fails
|
|
503
|
+
*
|
|
504
|
+
* @example
|
|
505
|
+
* ```typescript
|
|
506
|
+
* // Basic encoding pipeline
|
|
507
|
+
* for (const packet of encoder.packetsSync(decoder.framesSync(packets))) {
|
|
508
|
+
* output.writePacketSync(packet);
|
|
509
|
+
* packet.free(); // Must free output packets
|
|
510
|
+
* }
|
|
511
|
+
* ```
|
|
512
|
+
*
|
|
513
|
+
* @example
|
|
514
|
+
* ```typescript
|
|
515
|
+
* // With frame filtering
|
|
516
|
+
* function* filteredFrames() {
|
|
517
|
+
* for (const frame of decoder.framesSync(packets)) {
|
|
518
|
+
* const filtered = filter.processSync(frame);
|
|
519
|
+
* if (filtered) {
|
|
520
|
+
* yield filtered;
|
|
521
|
+
* }
|
|
522
|
+
* frame.free();
|
|
523
|
+
* }
|
|
524
|
+
* }
|
|
525
|
+
*
|
|
526
|
+
* for (const packet of encoder.packetsSync(filteredFrames())) {
|
|
527
|
+
* output.writePacketSync(packet);
|
|
528
|
+
* packet.free();
|
|
529
|
+
* }
|
|
530
|
+
* ```
|
|
531
|
+
*
|
|
532
|
+
* @see {@link packets} For async version
|
|
533
|
+
*/
|
|
534
|
+
*packetsSync(frames) {
|
|
535
|
+
// Process frames
|
|
536
|
+
for (const frame of frames) {
|
|
537
|
+
try {
|
|
538
|
+
const packet = this.encodeSync(frame);
|
|
539
|
+
if (packet) {
|
|
540
|
+
yield packet;
|
|
541
|
+
}
|
|
542
|
+
}
|
|
543
|
+
finally {
|
|
544
|
+
// Free the input frame after encoding
|
|
545
|
+
frame.free();
|
|
546
|
+
}
|
|
547
|
+
}
|
|
548
|
+
// Flush encoder after all frames
|
|
549
|
+
this.flushSync();
|
|
550
|
+
while (true) {
|
|
551
|
+
const remaining = this.receiveSync();
|
|
552
|
+
if (!remaining)
|
|
553
|
+
break;
|
|
554
|
+
yield remaining;
|
|
555
|
+
}
|
|
556
|
+
}
|
|
407
557
|
/**
|
|
408
558
|
* Flush encoder and signal end-of-stream.
|
|
409
559
|
*
|
|
@@ -442,6 +592,44 @@ export class Encoder {
|
|
|
442
592
|
}
|
|
443
593
|
}
|
|
444
594
|
}
|
|
595
|
+
/**
|
|
596
|
+
* Flush encoder and signal end-of-stream synchronously.
|
|
597
|
+
* Synchronous version of flush.
|
|
598
|
+
*
|
|
599
|
+
* Sends null frame to encoder to signal end-of-stream.
|
|
600
|
+
* Does nothing if encoder was never initialized or is closed.
|
|
601
|
+
* Must call receiveSync() to get remaining buffered packets.
|
|
602
|
+
*
|
|
603
|
+
* Direct mapping to avcodec_send_frame(NULL).
|
|
604
|
+
*
|
|
605
|
+
* @example
|
|
606
|
+
* ```typescript
|
|
607
|
+
* // Signal end of stream
|
|
608
|
+
* encoder.flushSync();
|
|
609
|
+
*
|
|
610
|
+
* // Then get remaining packets
|
|
611
|
+
* let packet;
|
|
612
|
+
* while ((packet = encoder.receiveSync()) !== null) {
|
|
613
|
+
* console.log('Got buffered packet');
|
|
614
|
+
* output.writePacketSync(packet);
|
|
615
|
+
* packet.free();
|
|
616
|
+
* }
|
|
617
|
+
* ```
|
|
618
|
+
*
|
|
619
|
+
* @see {@link flush} For async version
|
|
620
|
+
*/
|
|
621
|
+
flushSync() {
|
|
622
|
+
if (this.isClosed || !this.initialized) {
|
|
623
|
+
return;
|
|
624
|
+
}
|
|
625
|
+
// Send flush frame (null)
|
|
626
|
+
const ret = this.codecContext.sendFrameSync(null);
|
|
627
|
+
if (ret < 0 && ret !== AVERROR_EOF) {
|
|
628
|
+
if (ret !== AVERROR_EAGAIN) {
|
|
629
|
+
FFmpegError.throwIfError(ret, 'Failed to flush encoder');
|
|
630
|
+
}
|
|
631
|
+
}
|
|
632
|
+
}
|
|
445
633
|
/**
|
|
446
634
|
* Flush all buffered packets as async generator.
|
|
447
635
|
*
|
|
@@ -472,6 +660,36 @@ export class Encoder {
|
|
|
472
660
|
yield packet;
|
|
473
661
|
}
|
|
474
662
|
}
|
|
663
|
+
/**
|
|
664
|
+
* Flush all buffered packets as generator synchronously.
|
|
665
|
+
* Synchronous version of flushPackets.
|
|
666
|
+
*
|
|
667
|
+
* Convenient sync iteration over remaining packets.
|
|
668
|
+
* Automatically handles flush and repeated receive calls.
|
|
669
|
+
* Returns immediately if encoder was never initialized or is closed.
|
|
670
|
+
*
|
|
671
|
+
* @yields {Packet} Buffered packets
|
|
672
|
+
*
|
|
673
|
+
* @example
|
|
674
|
+
* ```typescript
|
|
675
|
+
* // Flush at end of encoding
|
|
676
|
+
* for (const packet of encoder.flushPacketsSync()) {
|
|
677
|
+
* console.log('Processing buffered packet');
|
|
678
|
+
* output.writePacketSync(packet);
|
|
679
|
+
* packet.free();
|
|
680
|
+
* }
|
|
681
|
+
* ```
|
|
682
|
+
*
|
|
683
|
+
* @see {@link flushPackets} For async version
|
|
684
|
+
*/
|
|
685
|
+
*flushPacketsSync() {
|
|
686
|
+
// Send flush signal
|
|
687
|
+
this.flushSync();
|
|
688
|
+
let packet;
|
|
689
|
+
while ((packet = this.receiveSync()) !== null) {
|
|
690
|
+
yield packet;
|
|
691
|
+
}
|
|
692
|
+
}
|
|
475
693
|
/**
|
|
476
694
|
* Receive packet from encoder.
|
|
477
695
|
*
|
|
@@ -531,6 +749,65 @@ export class Encoder {
|
|
|
531
749
|
return null;
|
|
532
750
|
}
|
|
533
751
|
}
|
|
752
|
+
/**
|
|
753
|
+
* Receive packet from encoder synchronously.
|
|
754
|
+
* Synchronous version of receive.
|
|
755
|
+
*
|
|
756
|
+
* Gets encoded packets from the codec's internal buffer.
|
|
757
|
+
* Handles packet cloning and error checking.
|
|
758
|
+
* Returns null if encoder is closed, not initialized, or no packets available.
|
|
759
|
+
* Call repeatedly until null to drain all buffered packets.
|
|
760
|
+
*
|
|
761
|
+
* Direct mapping to avcodec_receive_packet().
|
|
762
|
+
*
|
|
763
|
+
* @returns Cloned packet or null if no packets available
|
|
764
|
+
*
|
|
765
|
+
* @throws {FFmpegError} If receive fails with error other than AVERROR_EAGAIN or AVERROR_EOF
|
|
766
|
+
*
|
|
767
|
+
* @example
|
|
768
|
+
* ```typescript
|
|
769
|
+
* const packet = encoder.receiveSync();
|
|
770
|
+
* if (packet) {
|
|
771
|
+
* console.log(`Got packet with PTS: ${packet.pts}`);
|
|
772
|
+
* output.writePacketSync(packet);
|
|
773
|
+
* packet.free();
|
|
774
|
+
* }
|
|
775
|
+
* ```
|
|
776
|
+
*
|
|
777
|
+
* @example
|
|
778
|
+
* ```typescript
|
|
779
|
+
* // Drain all buffered packets
|
|
780
|
+
* let packet;
|
|
781
|
+
* while ((packet = encoder.receiveSync()) !== null) {
|
|
782
|
+
* console.log(`Packet size: ${packet.size}`);
|
|
783
|
+
* output.writePacketSync(packet);
|
|
784
|
+
* packet.free();
|
|
785
|
+
* }
|
|
786
|
+
* ```
|
|
787
|
+
*
|
|
788
|
+
* @see {@link receive} For async version
|
|
789
|
+
*/
|
|
790
|
+
receiveSync() {
|
|
791
|
+
if (this.isClosed || !this.initialized) {
|
|
792
|
+
return null;
|
|
793
|
+
}
|
|
794
|
+
// Clear previous packet data
|
|
795
|
+
this.packet.unref();
|
|
796
|
+
const ret = this.codecContext.receivePacketSync(this.packet);
|
|
797
|
+
if (ret === 0) {
|
|
798
|
+
// Got a packet, clone it for the user
|
|
799
|
+
return this.packet.clone();
|
|
800
|
+
}
|
|
801
|
+
else if (ret === AVERROR_EAGAIN || ret === AVERROR_EOF) {
|
|
802
|
+
// Need more data or end of stream
|
|
803
|
+
return null;
|
|
804
|
+
}
|
|
805
|
+
else {
|
|
806
|
+
// Error
|
|
807
|
+
FFmpegError.throwIfError(ret, 'Failed to receive packet');
|
|
808
|
+
return null;
|
|
809
|
+
}
|
|
810
|
+
}
|
|
534
811
|
/**
|
|
535
812
|
* Close encoder and free resources.
|
|
536
813
|
*
|
|
@@ -594,6 +871,44 @@ export class Encoder {
|
|
|
594
871
|
}
|
|
595
872
|
this.initialized = true;
|
|
596
873
|
}
|
|
874
|
+
/**
|
|
875
|
+
* Initialize encoder from first frame synchronously.
|
|
876
|
+
* Synchronous version of initialize.
|
|
877
|
+
*
|
|
878
|
+
* Sets codec context parameters from frame properties.
|
|
879
|
+
* Configures hardware context if present in frame.
|
|
880
|
+
* Opens encoder with accumulated options.
|
|
881
|
+
*
|
|
882
|
+
* @param frame - First frame to encode
|
|
883
|
+
*
|
|
884
|
+
* @throws {FFmpegError} If encoder open fails
|
|
885
|
+
*
|
|
886
|
+
* @internal
|
|
887
|
+
*
|
|
888
|
+
* @see {@link initialize} For async version
|
|
889
|
+
*/
|
|
890
|
+
initializeSync(frame) {
|
|
891
|
+
if (frame.isVideo()) {
|
|
892
|
+
this.codecContext.width = frame.width;
|
|
893
|
+
this.codecContext.height = frame.height;
|
|
894
|
+
this.codecContext.pixelFormat = frame.format;
|
|
895
|
+
this.codecContext.sampleAspectRatio = frame.sampleAspectRatio;
|
|
896
|
+
}
|
|
897
|
+
else {
|
|
898
|
+
this.codecContext.sampleRate = frame.sampleRate;
|
|
899
|
+
this.codecContext.sampleFormat = frame.format;
|
|
900
|
+
this.codecContext.channelLayout = frame.channelLayout;
|
|
901
|
+
}
|
|
902
|
+
this.codecContext.hwDeviceCtx = frame.hwFramesCtx?.deviceRef ?? null;
|
|
903
|
+
this.codecContext.hwFramesCtx = frame.hwFramesCtx;
|
|
904
|
+
// Open codec
|
|
905
|
+
const openRet = this.codecContext.open2Sync(this.codec, this.opts);
|
|
906
|
+
if (openRet < 0) {
|
|
907
|
+
this.codecContext.freeContext();
|
|
908
|
+
FFmpegError.throwIfError(openRet, 'Failed to open encoder');
|
|
909
|
+
}
|
|
910
|
+
this.initialized = true;
|
|
911
|
+
}
|
|
597
912
|
/**
|
|
598
913
|
* Get encoder codec.
|
|
599
914
|
*
|
package/dist/api/encoder.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"encoder.js","sourceRoot":"","sources":["../../src/api/encoder.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"encoder.js","sourceRoot":"","sources":["../../src/api/encoder.ts"],"names":[],"mappings":"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"}
|