node-av 2.0.0 → 2.4.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 +18 -5
- 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 +194 -0
- package/dist/api/decoder.js +313 -0
- package/dist/api/decoder.js.map +1 -1
- package/dist/api/encoder.d.ts +263 -0
- package/dist/api/encoder.js +427 -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 +234 -9
- package/dist/api/filter.js +372 -9
- package/dist/api/filter.js.map +1 -1
- package/dist/api/hardware.d.ts +17 -0
- package/dist/api/hardware.js +28 -17
- 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 +214 -1
- package/dist/api/media-input.js +341 -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 +73 -8
- 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 +32 -7
- 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 +218 -0
- package/dist/lib/io-context.js +234 -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 +19 -17
package/dist/api/hardware.js
CHANGED
|
@@ -41,8 +41,11 @@ export class HardwareContext {
|
|
|
41
41
|
_isDisposed = false;
|
|
42
42
|
/**
|
|
43
43
|
* @param deviceContext - Initialized hardware device context
|
|
44
|
+
*
|
|
44
45
|
* @param deviceType - Hardware device type enum
|
|
46
|
+
*
|
|
45
47
|
* @param deviceTypeName - Human-readable device type name
|
|
48
|
+
*
|
|
46
49
|
* @internal
|
|
47
50
|
*/
|
|
48
51
|
constructor(deviceContext, deviceType, deviceTypeName) {
|
|
@@ -59,6 +62,7 @@ export class HardwareContext {
|
|
|
59
62
|
* Platform-specific preference order ensures optimal performance.
|
|
60
63
|
*
|
|
61
64
|
* @param options - Optional hardware configuration
|
|
65
|
+
*
|
|
62
66
|
* @returns Hardware context or null if unavailable
|
|
63
67
|
*
|
|
64
68
|
* @example
|
|
@@ -104,8 +108,11 @@ export class HardwareContext {
|
|
|
104
108
|
* Direct mapping to av_hwdevice_ctx_create().
|
|
105
109
|
*
|
|
106
110
|
* @param deviceType - Hardware device type from AVHWDeviceType
|
|
111
|
+
*
|
|
107
112
|
* @param device - Optional device specifier (e.g., GPU index, device path)
|
|
113
|
+
*
|
|
108
114
|
* @param options - Optional device initialization options
|
|
115
|
+
*
|
|
109
116
|
* @returns Initialized hardware context
|
|
110
117
|
*
|
|
111
118
|
* @throws {Error} If device type unsupported or initialization fails
|
|
@@ -251,7 +258,9 @@ export class HardwareContext {
|
|
|
251
258
|
* Direct mapping to avcodec_get_hw_config().
|
|
252
259
|
*
|
|
253
260
|
* @param codecId - Codec ID from AVCodecID enum
|
|
261
|
+
*
|
|
254
262
|
* @param isEncoder - Check for encoder support (default: decoder)
|
|
263
|
+
*
|
|
255
264
|
* @returns true if codec is supported
|
|
256
265
|
*
|
|
257
266
|
* @example
|
|
@@ -285,8 +294,11 @@ export class HardwareContext {
|
|
|
285
294
|
* Important for ensuring format compatibility in pipelines.
|
|
286
295
|
*
|
|
287
296
|
* @param codecId - Codec ID from AVCodecID enum
|
|
297
|
+
*
|
|
288
298
|
* @param pixelFormat - Pixel format to check
|
|
299
|
+
*
|
|
289
300
|
* @param isEncoder - Check for encoder (default: decoder)
|
|
301
|
+
*
|
|
290
302
|
* @returns true if pixel format is supported
|
|
291
303
|
*
|
|
292
304
|
* @example
|
|
@@ -319,6 +331,7 @@ export class HardwareContext {
|
|
|
319
331
|
* Automatically tests encoder viability before returning.
|
|
320
332
|
*
|
|
321
333
|
* @param codec - Generic codec name (e.g., 'h264', 'hevc', 'av1') or AVCodecID
|
|
334
|
+
*
|
|
322
335
|
* @returns Hardware encoder codec or null if unsupported
|
|
323
336
|
*
|
|
324
337
|
* @example
|
|
@@ -368,11 +381,12 @@ export class HardwareContext {
|
|
|
368
381
|
continue;
|
|
369
382
|
}
|
|
370
383
|
suffix = name.split('_')[1]; // Get suffix after underscore
|
|
384
|
+
if (!suffix) {
|
|
385
|
+
return null;
|
|
386
|
+
}
|
|
387
|
+
return suffix;
|
|
371
388
|
}
|
|
372
|
-
|
|
373
|
-
return null;
|
|
374
|
-
}
|
|
375
|
-
return suffix;
|
|
389
|
+
return null;
|
|
376
390
|
};
|
|
377
391
|
switch (this._deviceType) {
|
|
378
392
|
case AV_HWDEVICE_TYPE_CUDA:
|
|
@@ -421,6 +435,7 @@ export class HardwareContext {
|
|
|
421
435
|
* Direct mapping to av_codec_iterate() with hardware config checks.
|
|
422
436
|
*
|
|
423
437
|
* @param isEncoder - Find encoders (true) or decoders (false)
|
|
438
|
+
*
|
|
424
439
|
* @returns Array of codec names that support this hardware
|
|
425
440
|
*
|
|
426
441
|
* @example
|
|
@@ -496,6 +511,7 @@ export class HardwareContext {
|
|
|
496
511
|
* Used internally to find hardware-specific encoder implementations.
|
|
497
512
|
*
|
|
498
513
|
* @param codecId - AVCodecID enum value
|
|
514
|
+
*
|
|
499
515
|
* @returns Base codec name or null if unsupported
|
|
500
516
|
*
|
|
501
517
|
* @internal
|
|
@@ -572,7 +588,9 @@ export class HardwareContext {
|
|
|
572
588
|
* Internal factory method using av_hwdevice_ctx_create().
|
|
573
589
|
*
|
|
574
590
|
* @param deviceType - AVHWDeviceType enum value
|
|
591
|
+
*
|
|
575
592
|
* @param device - Optional device specifier
|
|
593
|
+
*
|
|
576
594
|
* @param options - Optional device options
|
|
577
595
|
*
|
|
578
596
|
* @returns Hardware context or null if creation fails
|
|
@@ -618,33 +636,26 @@ export class HardwareContext {
|
|
|
618
636
|
const platform = process.platform;
|
|
619
637
|
let preferenceOrder;
|
|
620
638
|
if (platform === 'darwin') {
|
|
621
|
-
|
|
622
|
-
preferenceOrder = [AV_HWDEVICE_TYPE_VIDEOTOOLBOX];
|
|
639
|
+
preferenceOrder = [AV_HWDEVICE_TYPE_VIDEOTOOLBOX, AV_HWDEVICE_TYPE_CUDA, AV_HWDEVICE_TYPE_VULKAN, AV_HWDEVICE_TYPE_OPENCL];
|
|
623
640
|
}
|
|
624
641
|
else if (platform === 'win32') {
|
|
625
|
-
// Windows: Match FFmpeg's hw_configs order
|
|
626
|
-
// DXVA2 → D3D11VA → D3D12VA → NVDEC (CUDA)
|
|
627
642
|
preferenceOrder = [
|
|
628
|
-
AV_HWDEVICE_TYPE_DXVA2,
|
|
629
|
-
AV_HWDEVICE_TYPE_D3D11VA,
|
|
630
|
-
AV_HWDEVICE_TYPE_D3D12VA,
|
|
631
643
|
AV_HWDEVICE_TYPE_CUDA,
|
|
632
644
|
AV_HWDEVICE_TYPE_QSV,
|
|
645
|
+
AV_HWDEVICE_TYPE_D3D11VA,
|
|
646
|
+
AV_HWDEVICE_TYPE_D3D12VA,
|
|
633
647
|
AV_HWDEVICE_TYPE_VULKAN,
|
|
648
|
+
AV_HWDEVICE_TYPE_DXVA2,
|
|
634
649
|
AV_HWDEVICE_TYPE_OPENCL,
|
|
635
650
|
];
|
|
636
651
|
}
|
|
637
652
|
else {
|
|
638
|
-
// Linux
|
|
639
|
-
// NVDEC (CUDA) → VAAPI → VDPAU → Vulkan
|
|
640
|
-
// RKMPP is platform-specific for ARM/Rockchip
|
|
653
|
+
// Linux/Unix platforms
|
|
641
654
|
const isARM = process.arch === 'arm64' || process.arch === 'arm';
|
|
642
655
|
if (isARM) {
|
|
643
|
-
|
|
644
|
-
preferenceOrder = [AV_HWDEVICE_TYPE_RKMPP, AV_HWDEVICE_TYPE_VAAPI, AV_HWDEVICE_TYPE_VULKAN, AV_HWDEVICE_TYPE_DRM, AV_HWDEVICE_TYPE_OPENCL];
|
|
656
|
+
preferenceOrder = [AV_HWDEVICE_TYPE_RKMPP, AV_HWDEVICE_TYPE_VAAPI, AV_HWDEVICE_TYPE_CUDA, AV_HWDEVICE_TYPE_VULKAN, AV_HWDEVICE_TYPE_DRM, AV_HWDEVICE_TYPE_OPENCL];
|
|
645
657
|
}
|
|
646
658
|
else {
|
|
647
|
-
// x86_64 Linux: CUDA → VAAPI → VDPAU → Vulkan
|
|
648
659
|
preferenceOrder = [AV_HWDEVICE_TYPE_CUDA, AV_HWDEVICE_TYPE_VAAPI, AV_HWDEVICE_TYPE_VDPAU, AV_HWDEVICE_TYPE_VULKAN, AV_HWDEVICE_TYPE_DRM, AV_HWDEVICE_TYPE_OPENCL];
|
|
649
660
|
}
|
|
650
661
|
}
|
package/dist/api/hardware.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hardware.js","sourceRoot":"","sources":["../../src/api/hardware.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,uCAAuC,EACvC,uCAAuC,EACvC,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,sBAAsB,EACtB,iBAAiB,EACjB,kBAAkB,EAClB,eAAe,EACf,eAAe,EACf,qBAAqB,EACrB,wBAAwB,EACxB,wBAAwB,EACxB,oBAAoB,EACpB,sBAAsB,EACtB,2BAA2B,EAC3B,qBAAqB,EACrB,uBAAuB,EACvB,oBAAoB,EACpB,sBAAsB,EACtB,sBAAsB,EACtB,sBAAsB,EACtB,6BAA6B,EAC7B,uBAAuB,EACvB,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,oBAAoB,EACpB,oBAAoB,EACpB,qBAAqB,EACrB,eAAe,EACf,iBAAiB,EACjB,cAAc,EACd,gBAAgB,EAChB,uBAAuB,EACvB,iBAAiB,GAClB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAKxF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,MAAM,OAAO,eAAe;IAClB,cAAc,CAAwB;IACtC,WAAW,CAAiB;IAC5B,eAAe,CAAS;IACxB,kBAAkB,CAAgB;IAClC,WAAW,GAAG,KAAK,CAAC;IAE5B
|
|
1
|
+
{"version":3,"file":"hardware.js","sourceRoot":"","sources":["../../src/api/hardware.ts"],"names":[],"mappings":"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"}
|
package/dist/api/io-stream.d.ts
CHANGED
|
@@ -49,7 +49,9 @@ export declare class IOStream {
|
|
|
49
49
|
* Automatically handles seek operations and position tracking.
|
|
50
50
|
*
|
|
51
51
|
* @param buffer - Buffer containing media data
|
|
52
|
+
*
|
|
52
53
|
* @param options - I/O configuration options
|
|
54
|
+
*
|
|
53
55
|
* @returns Configured I/O context
|
|
54
56
|
*
|
|
55
57
|
* @example
|
|
@@ -68,7 +70,9 @@ export declare class IOStream {
|
|
|
68
70
|
* Useful for streaming from non-file sources like network or custom storage.
|
|
69
71
|
*
|
|
70
72
|
* @param callbacks - I/O callbacks for read and seek operations
|
|
73
|
+
*
|
|
71
74
|
* @param options - I/O configuration options
|
|
75
|
+
*
|
|
72
76
|
* @returns Configured I/O context
|
|
73
77
|
*
|
|
74
78
|
* @throws {Error} If callbacks missing required read function
|
|
@@ -93,6 +97,7 @@ export declare class IOStream {
|
|
|
93
97
|
* Manages position tracking and EOF handling.
|
|
94
98
|
*
|
|
95
99
|
* @param buffer - Source buffer
|
|
100
|
+
*
|
|
96
101
|
* @param bufferSize - Internal buffer size
|
|
97
102
|
*
|
|
98
103
|
* @returns Configured I/O context
|
|
@@ -107,6 +112,7 @@ export declare class IOStream {
|
|
|
107
112
|
* Supports read and optional seek operations.
|
|
108
113
|
*
|
|
109
114
|
* @param callbacks - User I/O callbacks
|
|
115
|
+
*
|
|
110
116
|
* @param bufferSize - Internal buffer size
|
|
111
117
|
*
|
|
112
118
|
* @returns Configured I/O context
|
package/dist/api/io-stream.js
CHANGED
|
@@ -61,6 +61,7 @@ export class IOStream {
|
|
|
61
61
|
* Manages position tracking and EOF handling.
|
|
62
62
|
*
|
|
63
63
|
* @param buffer - Source buffer
|
|
64
|
+
*
|
|
64
65
|
* @param bufferSize - Internal buffer size
|
|
65
66
|
*
|
|
66
67
|
* @returns Configured I/O context
|
|
@@ -104,6 +105,7 @@ export class IOStream {
|
|
|
104
105
|
* Supports read and optional seek operations.
|
|
105
106
|
*
|
|
106
107
|
* @param callbacks - User I/O callbacks
|
|
108
|
+
*
|
|
107
109
|
* @param bufferSize - Internal buffer size
|
|
108
110
|
*
|
|
109
111
|
* @returns Configured I/O context
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"io-stream.js","sourceRoot":"","sources":["../../src/api/io-stream.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAC5F,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAI5C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AACH,MAAM,OAAO,QAAQ;
|
|
1
|
+
{"version":3,"file":"io-stream.js","sourceRoot":"","sources":["../../src/api/io-stream.ts"],"names":[],"mappings":"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"}
|
|
@@ -41,12 +41,13 @@ import type { MediaInputOptions, RawData } from './types.js';
|
|
|
41
41
|
* @see {@link Decoder} For decoding packets to frames
|
|
42
42
|
* @see {@link FormatContext} For low-level API
|
|
43
43
|
*/
|
|
44
|
-
export declare class MediaInput implements AsyncDisposable {
|
|
44
|
+
export declare class MediaInput implements AsyncDisposable, Disposable {
|
|
45
45
|
private formatContext;
|
|
46
46
|
private _streams;
|
|
47
47
|
private ioContext?;
|
|
48
48
|
/**
|
|
49
49
|
* @param formatContext - Opened format context
|
|
50
|
+
*
|
|
50
51
|
* @internal
|
|
51
52
|
*/
|
|
52
53
|
private constructor();
|
|
@@ -59,6 +60,7 @@ export declare class MediaInput implements AsyncDisposable {
|
|
|
59
60
|
* Direct mapping to av_probe_input_format().
|
|
60
61
|
*
|
|
61
62
|
* @param input - File path or buffer to probe
|
|
63
|
+
*
|
|
62
64
|
* @returns Format information or null if unrecognized
|
|
63
65
|
*
|
|
64
66
|
* @example
|
|
@@ -87,6 +89,45 @@ export declare class MediaInput implements AsyncDisposable {
|
|
|
87
89
|
mimeType?: string;
|
|
88
90
|
confidence: number;
|
|
89
91
|
} | null>;
|
|
92
|
+
/**
|
|
93
|
+
* Probe media format without fully opening the file synchronously.
|
|
94
|
+
* Synchronous version of probeFormat.
|
|
95
|
+
*
|
|
96
|
+
* Detects format by analyzing file headers and content.
|
|
97
|
+
* Useful for format validation before processing.
|
|
98
|
+
*
|
|
99
|
+
* Direct mapping to av_probe_input_format().
|
|
100
|
+
*
|
|
101
|
+
* @param input - File path or buffer to probe
|
|
102
|
+
*
|
|
103
|
+
* @returns Format information or null if unrecognized
|
|
104
|
+
*
|
|
105
|
+
* @example
|
|
106
|
+
* ```typescript
|
|
107
|
+
* const info = MediaInput.probeFormatSync('video.mp4');
|
|
108
|
+
* if (info) {
|
|
109
|
+
* console.log(`Format: ${info.format}`);
|
|
110
|
+
* console.log(`Confidence: ${info.confidence}%`);
|
|
111
|
+
* }
|
|
112
|
+
* ```
|
|
113
|
+
*
|
|
114
|
+
* @example
|
|
115
|
+
* ```typescript
|
|
116
|
+
* // Probe from buffer
|
|
117
|
+
* const buffer = fs.readFileSync('video.webm');
|
|
118
|
+
* const info = MediaInput.probeFormatSync(buffer);
|
|
119
|
+
* console.log(`MIME type: ${info?.mimeType}`);
|
|
120
|
+
* ```
|
|
121
|
+
*
|
|
122
|
+
* @see {@link probeFormat} For async version
|
|
123
|
+
*/
|
|
124
|
+
static probeFormatSync(input: string | Buffer): {
|
|
125
|
+
format: string;
|
|
126
|
+
longName?: string;
|
|
127
|
+
extensions?: string;
|
|
128
|
+
mimeType?: string;
|
|
129
|
+
confidence: number;
|
|
130
|
+
} | null;
|
|
90
131
|
/**
|
|
91
132
|
* Open media from file, URL, buffer, or raw data.
|
|
92
133
|
*
|
|
@@ -97,7 +138,9 @@ export declare class MediaInput implements AsyncDisposable {
|
|
|
97
138
|
* Direct mapping to avformat_open_input() and avformat_find_stream_info().
|
|
98
139
|
*
|
|
99
140
|
* @param input - File path, URL, buffer, or raw data descriptor
|
|
141
|
+
*
|
|
100
142
|
* @param options - Input configuration options
|
|
143
|
+
*
|
|
101
144
|
* @returns Opened media input instance
|
|
102
145
|
*
|
|
103
146
|
* @throws {Error} If format not found or open fails
|
|
@@ -146,6 +189,55 @@ export declare class MediaInput implements AsyncDisposable {
|
|
|
146
189
|
*/
|
|
147
190
|
static open(input: string | Buffer, options?: MediaInputOptions): Promise<MediaInput>;
|
|
148
191
|
static open(rawData: RawData, options?: MediaInputOptions): Promise<MediaInput>;
|
|
192
|
+
/**
|
|
193
|
+
* Open media from file or URL synchronously.
|
|
194
|
+
* Synchronous version of open.
|
|
195
|
+
*
|
|
196
|
+
* NOTE: Buffer input is not supported in sync mode due to JavaScript's
|
|
197
|
+
* single-threaded nature. Custom I/O callbacks require the JavaScript
|
|
198
|
+
* event loop to be available, which is blocked during synchronous operations.
|
|
199
|
+
* Use the async version {@link open} for buffer input.
|
|
200
|
+
*
|
|
201
|
+
* Automatically detects format and extracts stream information.
|
|
202
|
+
* Supports various input sources with flexible configuration.
|
|
203
|
+
* Creates demuxer ready for packet extraction.
|
|
204
|
+
*
|
|
205
|
+
* Direct mapping to avformat_open_input() and avformat_find_stream_info().
|
|
206
|
+
*
|
|
207
|
+
* @param input - File path or URL (Buffer not supported in sync mode)
|
|
208
|
+
*
|
|
209
|
+
* @param options - Input configuration options
|
|
210
|
+
*
|
|
211
|
+
* @returns Opened media input instance
|
|
212
|
+
*
|
|
213
|
+
* @throws {Error} If format not found or open fails
|
|
214
|
+
*
|
|
215
|
+
* @throws {FFmpegError} If FFmpeg operations fail
|
|
216
|
+
*
|
|
217
|
+
* @example
|
|
218
|
+
* ```typescript
|
|
219
|
+
* // Open file
|
|
220
|
+
* using input = MediaInput.openSync('video.mp4');
|
|
221
|
+
* ```
|
|
222
|
+
*
|
|
223
|
+
* @example
|
|
224
|
+
* ```typescript
|
|
225
|
+
* // Open with options
|
|
226
|
+
* using input = MediaInput.openSync('rtsp://camera.local', {
|
|
227
|
+
* format: 'rtsp',
|
|
228
|
+
* options: {
|
|
229
|
+
* rtsp_transport: 'tcp',
|
|
230
|
+
* analyzeduration: '5000000'
|
|
231
|
+
* }
|
|
232
|
+
* });
|
|
233
|
+
* ```
|
|
234
|
+
*
|
|
235
|
+
* @see {@link open} For async version with buffer support
|
|
236
|
+
*/
|
|
237
|
+
static openSync(input: string, options?: MediaInputOptions): MediaInput;
|
|
238
|
+
static openSync(rawData: RawData & {
|
|
239
|
+
input: string;
|
|
240
|
+
}, options?: MediaInputOptions): MediaInput;
|
|
149
241
|
/**
|
|
150
242
|
* Get all streams in the media.
|
|
151
243
|
*
|
|
@@ -217,6 +309,7 @@ export declare class MediaInput implements AsyncDisposable {
|
|
|
217
309
|
* Returns undefined if stream doesn't exist.
|
|
218
310
|
*
|
|
219
311
|
* @param index - Video stream index (default: 0)
|
|
312
|
+
*
|
|
220
313
|
* @returns Video stream or undefined
|
|
221
314
|
*
|
|
222
315
|
* @example
|
|
@@ -244,6 +337,7 @@ export declare class MediaInput implements AsyncDisposable {
|
|
|
244
337
|
* Returns undefined if stream doesn't exist.
|
|
245
338
|
*
|
|
246
339
|
* @param index - Audio stream index (default: 0)
|
|
340
|
+
*
|
|
247
341
|
* @returns Audio stream or undefined
|
|
248
342
|
*
|
|
249
343
|
* @example
|
|
@@ -273,6 +367,7 @@ export declare class MediaInput implements AsyncDisposable {
|
|
|
273
367
|
* Direct mapping to av_find_best_stream().
|
|
274
368
|
*
|
|
275
369
|
* @param type - Media type to find
|
|
370
|
+
*
|
|
276
371
|
* @returns Best stream or undefined if not found
|
|
277
372
|
*
|
|
278
373
|
* @example
|
|
@@ -299,7 +394,9 @@ export declare class MediaInput implements AsyncDisposable {
|
|
|
299
394
|
* Direct mapping to av_read_frame().
|
|
300
395
|
*
|
|
301
396
|
* @param index - Optional stream index to filter
|
|
397
|
+
*
|
|
302
398
|
* @yields {Packet} Demuxed packets (must be freed by caller)
|
|
399
|
+
*
|
|
303
400
|
* @throws {Error} If packet cloning fails
|
|
304
401
|
*
|
|
305
402
|
* @example
|
|
@@ -324,6 +421,44 @@ export declare class MediaInput implements AsyncDisposable {
|
|
|
324
421
|
* @see {@link Decoder.frames} For decoding packets
|
|
325
422
|
*/
|
|
326
423
|
packets(index?: number): AsyncGenerator<Packet>;
|
|
424
|
+
/**
|
|
425
|
+
* Read packets from media as generator synchronously.
|
|
426
|
+
* Synchronous version of packets.
|
|
427
|
+
*
|
|
428
|
+
* Yields demuxed packets for processing.
|
|
429
|
+
* Automatically handles packet memory management.
|
|
430
|
+
* Optionally filters packets by stream index.
|
|
431
|
+
*
|
|
432
|
+
* Direct mapping to av_read_frame().
|
|
433
|
+
*
|
|
434
|
+
* @param index - Optional stream index to filter
|
|
435
|
+
*
|
|
436
|
+
* @yields {Packet} Demuxed packets (must be freed by caller)
|
|
437
|
+
*
|
|
438
|
+
* @throws {Error} If packet cloning fails
|
|
439
|
+
*
|
|
440
|
+
* @example
|
|
441
|
+
* ```typescript
|
|
442
|
+
* // Read all packets
|
|
443
|
+
* for (const packet of input.packetsSync()) {
|
|
444
|
+
* console.log(`Packet: stream=${packet.streamIndex}, pts=${packet.pts}`);
|
|
445
|
+
* packet.free();
|
|
446
|
+
* }
|
|
447
|
+
* ```
|
|
448
|
+
*
|
|
449
|
+
* @example
|
|
450
|
+
* ```typescript
|
|
451
|
+
* // Read only video packets
|
|
452
|
+
* const videoStream = input.video();
|
|
453
|
+
* for (const packet of input.packetsSync(videoStream.index)) {
|
|
454
|
+
* // Process video packet
|
|
455
|
+
* packet.free();
|
|
456
|
+
* }
|
|
457
|
+
* ```
|
|
458
|
+
*
|
|
459
|
+
* @see {@link packets} For async version
|
|
460
|
+
*/
|
|
461
|
+
packetsSync(index?: number): Generator<Packet>;
|
|
327
462
|
/**
|
|
328
463
|
* Seek to timestamp in media.
|
|
329
464
|
*
|
|
@@ -333,8 +468,11 @@ export declare class MediaInput implements AsyncDisposable {
|
|
|
333
468
|
* Direct mapping to av_seek_frame().
|
|
334
469
|
*
|
|
335
470
|
* @param timestamp - Target position in seconds
|
|
471
|
+
*
|
|
336
472
|
* @param streamIndex - Stream index or -1 for global (default: -1)
|
|
473
|
+
*
|
|
337
474
|
* @param flags - Seek flags (default: AVFLAG_NONE)
|
|
475
|
+
*
|
|
338
476
|
* @returns 0 on success, negative on error
|
|
339
477
|
*
|
|
340
478
|
* @example
|
|
@@ -355,6 +493,41 @@ export declare class MediaInput implements AsyncDisposable {
|
|
|
355
493
|
* @see {@link AVSeekFlag} For seek flags
|
|
356
494
|
*/
|
|
357
495
|
seek(timestamp: number, streamIndex?: number, flags?: AVSeekFlag): Promise<number>;
|
|
496
|
+
/**
|
|
497
|
+
* Seek to timestamp in media synchronously.
|
|
498
|
+
* Synchronous version of seek.
|
|
499
|
+
*
|
|
500
|
+
* Seeks to the specified position in seconds.
|
|
501
|
+
* Can seek in specific stream or globally.
|
|
502
|
+
*
|
|
503
|
+
* Direct mapping to av_seek_frame().
|
|
504
|
+
*
|
|
505
|
+
* @param timestamp - Target position in seconds
|
|
506
|
+
*
|
|
507
|
+
* @param streamIndex - Stream index or -1 for global (default: -1)
|
|
508
|
+
*
|
|
509
|
+
* @param flags - Seek flags (default: AVFLAG_NONE)
|
|
510
|
+
*
|
|
511
|
+
* @returns 0 on success, negative on error
|
|
512
|
+
*
|
|
513
|
+
* @example
|
|
514
|
+
* ```typescript
|
|
515
|
+
* // Seek to 30 seconds
|
|
516
|
+
* const ret = input.seekSync(30);
|
|
517
|
+
* FFmpegError.throwIfError(ret, 'seek failed');
|
|
518
|
+
* ```
|
|
519
|
+
*
|
|
520
|
+
* @example
|
|
521
|
+
* ```typescript
|
|
522
|
+
* import { AVSEEK_FLAG_BACKWARD } from 'node-av/constants';
|
|
523
|
+
*
|
|
524
|
+
* // Seek to keyframe before 60 seconds
|
|
525
|
+
* input.seekSync(60, -1, AVSEEK_FLAG_BACKWARD);
|
|
526
|
+
* ```
|
|
527
|
+
*
|
|
528
|
+
* @see {@link seek} For async version
|
|
529
|
+
*/
|
|
530
|
+
seekSync(timestamp: number, streamIndex?: number, flags?: AVSeekFlag): number;
|
|
358
531
|
/**
|
|
359
532
|
* Close media input and free resources.
|
|
360
533
|
*
|
|
@@ -377,6 +550,29 @@ export declare class MediaInput implements AsyncDisposable {
|
|
|
377
550
|
* @see {@link Symbol.asyncDispose} For automatic cleanup
|
|
378
551
|
*/
|
|
379
552
|
close(): Promise<void>;
|
|
553
|
+
/**
|
|
554
|
+
* Close media input and free resources synchronously.
|
|
555
|
+
* Synchronous version of close.
|
|
556
|
+
*
|
|
557
|
+
* Releases format context and I/O context.
|
|
558
|
+
* Safe to call multiple times.
|
|
559
|
+
* Automatically called by Symbol.dispose.
|
|
560
|
+
*
|
|
561
|
+
* Direct mapping to avformat_close_input().
|
|
562
|
+
*
|
|
563
|
+
* @example
|
|
564
|
+
* ```typescript
|
|
565
|
+
* const input = MediaInput.openSync('video.mp4');
|
|
566
|
+
* try {
|
|
567
|
+
* // Use input
|
|
568
|
+
* } finally {
|
|
569
|
+
* input.closeSync();
|
|
570
|
+
* }
|
|
571
|
+
* ```
|
|
572
|
+
*
|
|
573
|
+
* @see {@link close} For async version
|
|
574
|
+
*/
|
|
575
|
+
closeSync(): void;
|
|
380
576
|
/**
|
|
381
577
|
* Get underlying format context.
|
|
382
578
|
*
|
|
@@ -404,4 +600,21 @@ export declare class MediaInput implements AsyncDisposable {
|
|
|
404
600
|
* @see {@link close} For manual cleanup
|
|
405
601
|
*/
|
|
406
602
|
[Symbol.asyncDispose](): Promise<void>;
|
|
603
|
+
/**
|
|
604
|
+
* Dispose of media input synchronously.
|
|
605
|
+
*
|
|
606
|
+
* Implements Disposable interface for automatic cleanup.
|
|
607
|
+
* Equivalent to calling closeSync().
|
|
608
|
+
*
|
|
609
|
+
* @example
|
|
610
|
+
* ```typescript
|
|
611
|
+
* {
|
|
612
|
+
* using input = MediaInput.openSync('video.mp4');
|
|
613
|
+
* // Process media...
|
|
614
|
+
* } // Automatically closed
|
|
615
|
+
* ```
|
|
616
|
+
*
|
|
617
|
+
* @see {@link closeSync} For manual cleanup
|
|
618
|
+
*/
|
|
619
|
+
[Symbol.dispose](): void;
|
|
407
620
|
}
|