webcodecs-node 0.3.0 → 0.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/backends/types.d.ts +6 -3
- package/dist/backends/types.d.ts.map +1 -1
- package/dist/backends/types.js +2 -2
- package/dist/backends/types.js.map +1 -1
- package/dist/{ffmpeg → codec-utils}/audio-codecs.d.ts +13 -12
- package/dist/codec-utils/audio-codecs.d.ts.map +1 -0
- package/dist/{ffmpeg → codec-utils}/audio-codecs.js +29 -11
- package/dist/codec-utils/audio-codecs.js.map +1 -0
- package/dist/{ffmpeg → codec-utils}/formats.d.ts +7 -7
- package/dist/codec-utils/formats.d.ts.map +1 -0
- package/dist/{ffmpeg → codec-utils}/formats.js +7 -7
- package/dist/codec-utils/formats.js.map +1 -0
- package/dist/{ffmpeg → codec-utils}/index.d.ts +3 -3
- package/dist/codec-utils/index.d.ts.map +1 -0
- package/dist/{ffmpeg → codec-utils}/index.js +3 -4
- package/dist/codec-utils/index.js.map +1 -0
- package/dist/{ffmpeg → codec-utils}/types.d.ts +13 -11
- package/dist/codec-utils/types.d.ts.map +1 -0
- package/dist/{ffmpeg → codec-utils}/types.js +3 -1
- package/dist/codec-utils/types.js.map +1 -0
- package/dist/containers/Demuxer.d.ts +114 -0
- package/dist/containers/Demuxer.d.ts.map +1 -0
- package/dist/containers/Demuxer.js +256 -0
- package/dist/containers/Demuxer.js.map +1 -0
- package/dist/containers/Muxer.d.ts +142 -0
- package/dist/containers/Muxer.d.ts.map +1 -0
- package/dist/containers/Muxer.js +295 -0
- package/dist/containers/Muxer.js.map +1 -0
- package/dist/containers/extract.d.ts +25 -0
- package/dist/containers/extract.d.ts.map +1 -0
- package/dist/containers/extract.js +64 -0
- package/dist/containers/extract.js.map +1 -0
- package/dist/containers/index.d.ts +40 -0
- package/dist/containers/index.d.ts.map +1 -0
- package/dist/containers/index.js +41 -0
- package/dist/containers/index.js.map +1 -0
- package/dist/containers/transcode.d.ts +138 -0
- package/dist/containers/transcode.d.ts.map +1 -0
- package/dist/containers/transcode.js +536 -0
- package/dist/containers/transcode.js.map +1 -0
- package/dist/core/AudioData.d.ts +4 -0
- package/dist/core/AudioData.d.ts.map +1 -1
- package/dist/core/AudioData.js +56 -4
- package/dist/core/AudioData.js.map +1 -1
- package/dist/core/EncodedAudioChunk.d.ts +1 -1
- package/dist/core/EncodedAudioChunk.d.ts.map +1 -1
- package/dist/core/EncodedAudioChunk.js +1 -1
- package/dist/core/EncodedAudioChunk.js.map +1 -1
- package/dist/core/EncodedVideoChunk.d.ts.map +1 -1
- package/dist/core/EncodedVideoChunk.js +3 -19
- package/dist/core/EncodedVideoChunk.js.map +1 -1
- package/dist/core/VideoFrame.d.ts +6 -1
- package/dist/core/VideoFrame.d.ts.map +1 -1
- package/dist/core/VideoFrame.js +130 -17
- package/dist/core/VideoFrame.js.map +1 -1
- package/dist/decoders/AudioDecoder.d.ts +8 -0
- package/dist/decoders/AudioDecoder.d.ts.map +1 -1
- package/dist/decoders/AudioDecoder.js +62 -32
- package/dist/decoders/AudioDecoder.js.map +1 -1
- package/dist/decoders/ImageDecoder.d.ts +0 -3
- package/dist/decoders/ImageDecoder.d.ts.map +1 -1
- package/dist/decoders/ImageDecoder.js +13 -225
- package/dist/decoders/ImageDecoder.js.map +1 -1
- package/dist/decoders/VideoDecoder.d.ts +8 -0
- package/dist/decoders/VideoDecoder.d.ts.map +1 -1
- package/dist/decoders/VideoDecoder.js +76 -46
- package/dist/decoders/VideoDecoder.js.map +1 -1
- package/dist/demos/demo-1080p-transcode.d.ts +8 -0
- package/dist/demos/demo-1080p-transcode.d.ts.map +1 -0
- package/dist/demos/demo-1080p-transcode.js +188 -0
- package/dist/demos/demo-1080p-transcode.js.map +1 -0
- package/dist/demos/demo-containers.d.ts +7 -0
- package/dist/demos/demo-containers.d.ts.map +1 -0
- package/dist/demos/demo-containers.js +140 -0
- package/dist/demos/demo-containers.js.map +1 -0
- package/dist/demos/demo-four-corners.js +4 -4
- package/dist/demos/demo-four-corners.js.map +1 -1
- package/dist/demos/demo-hwaccel.js +1 -1
- package/dist/demos/demo-hwaccel.js.map +1 -1
- package/dist/demos/demo-samples.js +4 -4
- package/dist/demos/demo-samples.js.map +1 -1
- package/dist/demos/demo-streaming.js +6 -6
- package/dist/demos/demo-streaming.js.map +1 -1
- package/dist/encoders/AudioEncoder.d.ts +8 -0
- package/dist/encoders/AudioEncoder.d.ts.map +1 -1
- package/dist/encoders/AudioEncoder.js +68 -26
- package/dist/encoders/AudioEncoder.js.map +1 -1
- package/dist/encoders/VideoEncoder.d.ts +8 -0
- package/dist/encoders/VideoEncoder.d.ts.map +1 -1
- package/dist/encoders/VideoEncoder.js +64 -13
- package/dist/encoders/VideoEncoder.js.map +1 -1
- package/dist/formats/conversions/batch-converter.d.ts +61 -0
- package/dist/formats/conversions/batch-converter.d.ts.map +1 -0
- package/dist/formats/conversions/batch-converter.js +274 -0
- package/dist/formats/conversions/batch-converter.js.map +1 -0
- package/dist/formats/conversions/frame-converter.d.ts.map +1 -1
- package/dist/formats/conversions/frame-converter.js +17 -10
- package/dist/formats/conversions/frame-converter.js.map +1 -1
- package/dist/formats/conversions/index.d.ts +1 -0
- package/dist/formats/conversions/index.d.ts.map +1 -1
- package/dist/formats/conversions/index.js +2 -0
- package/dist/formats/conversions/index.js.map +1 -1
- package/dist/hardware/decoder-args.d.ts +2 -7
- package/dist/hardware/decoder-args.d.ts.map +1 -1
- package/dist/hardware/decoder-args.js +2 -32
- package/dist/hardware/decoder-args.js.map +1 -1
- package/dist/hardware/encoder-args.d.ts +2 -11
- package/dist/hardware/encoder-args.d.ts.map +1 -1
- package/dist/hardware/encoder-args.js +2 -71
- package/dist/hardware/encoder-args.js.map +1 -1
- package/dist/hardware/index.d.ts +2 -2
- package/dist/hardware/index.d.ts.map +1 -1
- package/dist/hardware/index.js +2 -2
- package/dist/hardware/index.js.map +1 -1
- package/dist/index.d.ts +5 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -6
- package/dist/index.js.map +1 -1
- package/dist/node-av/NodeAvAudioDecoder.d.ts +2 -2
- package/dist/node-av/NodeAvAudioDecoder.d.ts.map +1 -1
- package/dist/node-av/NodeAvAudioDecoder.js +63 -56
- package/dist/node-av/NodeAvAudioDecoder.js.map +1 -1
- package/dist/node-av/NodeAvAudioEncoder.d.ts +6 -0
- package/dist/node-av/NodeAvAudioEncoder.d.ts.map +1 -1
- package/dist/node-av/NodeAvAudioEncoder.js +166 -45
- package/dist/node-av/NodeAvAudioEncoder.js.map +1 -1
- package/dist/node-av/NodeAvImageDecoder.d.ts +28 -9
- package/dist/node-av/NodeAvImageDecoder.d.ts.map +1 -1
- package/dist/node-av/NodeAvImageDecoder.js +156 -37
- package/dist/node-av/NodeAvImageDecoder.js.map +1 -1
- package/dist/node-av/NodeAvVideoDecoder.d.ts +1 -1
- package/dist/node-av/NodeAvVideoDecoder.d.ts.map +1 -1
- package/dist/node-av/NodeAvVideoDecoder.js +20 -16
- package/dist/node-av/NodeAvVideoDecoder.js.map +1 -1
- package/dist/node-av/NodeAvVideoEncoder.d.ts +12 -0
- package/dist/node-av/NodeAvVideoEncoder.d.ts.map +1 -1
- package/dist/node-av/NodeAvVideoEncoder.js +175 -63
- package/dist/node-av/NodeAvVideoEncoder.js.map +1 -1
- package/dist/polyfill.d.ts.map +1 -1
- package/dist/polyfill.js +11 -9
- package/dist/polyfill.js.map +1 -1
- package/dist/utils/aac.d.ts.map +1 -1
- package/dist/utils/aac.js +6 -0
- package/dist/utils/aac.js.map +1 -1
- package/dist/utils/buffer-pool.d.ts +109 -0
- package/dist/utils/buffer-pool.d.ts.map +1 -0
- package/dist/utils/buffer-pool.js +278 -0
- package/dist/utils/buffer-pool.js.map +1 -0
- package/dist/utils/codec-cache.d.ts +65 -0
- package/dist/utils/codec-cache.d.ts.map +1 -0
- package/dist/utils/codec-cache.js +116 -0
- package/dist/utils/codec-cache.js.map +1 -0
- package/dist/utils/errors.d.ts +62 -0
- package/dist/utils/errors.d.ts.map +1 -0
- package/dist/utils/errors.js +84 -0
- package/dist/utils/errors.js.map +1 -0
- package/dist/utils/hardware-pool.d.ts +88 -0
- package/dist/utils/hardware-pool.d.ts.map +1 -0
- package/dist/utils/hardware-pool.js +266 -0
- package/dist/utils/hardware-pool.js.map +1 -0
- package/dist/utils/index.d.ts +5 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +10 -0
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/timeout.d.ts +44 -0
- package/dist/utils/timeout.d.ts.map +1 -0
- package/dist/utils/timeout.js +73 -0
- package/dist/utils/timeout.js.map +1 -0
- package/dist/utils/type-guards.d.ts +11 -1
- package/dist/utils/type-guards.d.ts.map +1 -1
- package/dist/utils/type-guards.js.map +1 -1
- package/package.json +13 -35
- package/dist/AudioData.d.ts +0 -6
- package/dist/AudioData.d.ts.map +0 -1
- package/dist/AudioData.js +0 -6
- package/dist/AudioData.js.map +0 -1
- package/dist/AudioDecoder.d.ts +0 -6
- package/dist/AudioDecoder.d.ts.map +0 -1
- package/dist/AudioDecoder.js +0 -6
- package/dist/AudioDecoder.js.map +0 -1
- package/dist/AudioEncoder.d.ts +0 -6
- package/dist/AudioEncoder.d.ts.map +0 -1
- package/dist/AudioEncoder.js +0 -6
- package/dist/AudioEncoder.js.map +0 -1
- package/dist/EncodedAudioChunk.d.ts +0 -6
- package/dist/EncodedAudioChunk.d.ts.map +0 -1
- package/dist/EncodedAudioChunk.js +0 -6
- package/dist/EncodedAudioChunk.js.map +0 -1
- package/dist/EncodedVideoChunk.d.ts +0 -6
- package/dist/EncodedVideoChunk.d.ts.map +0 -1
- package/dist/EncodedVideoChunk.js +0 -6
- package/dist/EncodedVideoChunk.js.map +0 -1
- package/dist/FFmpegProcess.d.ts +0 -6
- package/dist/FFmpegProcess.d.ts.map +0 -1
- package/dist/FFmpegProcess.js +0 -6
- package/dist/FFmpegProcess.js.map +0 -1
- package/dist/HardwareAcceleration.d.ts +0 -6
- package/dist/HardwareAcceleration.d.ts.map +0 -1
- package/dist/HardwareAcceleration.js +0 -6
- package/dist/HardwareAcceleration.js.map +0 -1
- package/dist/ImageDecoder.d.ts +0 -6
- package/dist/ImageDecoder.d.ts.map +0 -1
- package/dist/ImageDecoder.js +0 -6
- package/dist/ImageDecoder.js.map +0 -1
- package/dist/Logger.d.ts +0 -6
- package/dist/Logger.d.ts.map +0 -1
- package/dist/Logger.js +0 -6
- package/dist/Logger.js.map +0 -1
- package/dist/MediaCapabilities.d.ts +0 -9
- package/dist/MediaCapabilities.d.ts.map +0 -1
- package/dist/MediaCapabilities.js +0 -8
- package/dist/MediaCapabilities.js.map +0 -1
- package/dist/VideoDecoder.d.ts +0 -6
- package/dist/VideoDecoder.d.ts.map +0 -1
- package/dist/VideoDecoder.js +0 -6
- package/dist/VideoDecoder.js.map +0 -1
- package/dist/VideoEncoder.d.ts +0 -6
- package/dist/VideoEncoder.d.ts.map +0 -1
- package/dist/VideoEncoder.js +0 -6
- package/dist/VideoEncoder.js.map +0 -1
- package/dist/VideoFrame.d.ts +0 -10
- package/dist/VideoFrame.d.ts.map +0 -1
- package/dist/VideoFrame.js +0 -9
- package/dist/VideoFrame.js.map +0 -1
- package/dist/__tests__/AudioData.test.d.ts +0 -5
- package/dist/__tests__/AudioData.test.d.ts.map +0 -1
- package/dist/__tests__/AudioData.test.js +0 -179
- package/dist/__tests__/AudioData.test.js.map +0 -1
- package/dist/__tests__/AudioDecoder.test.d.ts +0 -5
- package/dist/__tests__/AudioDecoder.test.d.ts.map +0 -1
- package/dist/__tests__/AudioDecoder.test.js +0 -733
- package/dist/__tests__/AudioDecoder.test.js.map +0 -1
- package/dist/__tests__/AudioEncoder.test.d.ts +0 -5
- package/dist/__tests__/AudioEncoder.test.d.ts.map +0 -1
- package/dist/__tests__/AudioEncoder.test.js +0 -247
- package/dist/__tests__/AudioEncoder.test.js.map +0 -1
- package/dist/__tests__/EncodedChunks.test.d.ts +0 -5
- package/dist/__tests__/EncodedChunks.test.d.ts.map +0 -1
- package/dist/__tests__/EncodedChunks.test.js +0 -99
- package/dist/__tests__/EncodedChunks.test.js.map +0 -1
- package/dist/__tests__/HardwareAcceleration.test.d.ts +0 -5
- package/dist/__tests__/HardwareAcceleration.test.d.ts.map +0 -1
- package/dist/__tests__/HardwareAcceleration.test.js +0 -84
- package/dist/__tests__/HardwareAcceleration.test.js.map +0 -1
- package/dist/__tests__/ImageDecoder.test.d.ts +0 -5
- package/dist/__tests__/ImageDecoder.test.d.ts.map +0 -1
- package/dist/__tests__/ImageDecoder.test.js +0 -587
- package/dist/__tests__/ImageDecoder.test.js.map +0 -1
- package/dist/__tests__/ImageDecoder.wpt.test.d.ts +0 -8
- package/dist/__tests__/ImageDecoder.wpt.test.d.ts.map +0 -1
- package/dist/__tests__/ImageDecoder.wpt.test.js +0 -135
- package/dist/__tests__/ImageDecoder.wpt.test.js.map +0 -1
- package/dist/__tests__/MediaCapabilities.test.d.ts +0 -5
- package/dist/__tests__/MediaCapabilities.test.d.ts.map +0 -1
- package/dist/__tests__/MediaCapabilities.test.js +0 -346
- package/dist/__tests__/MediaCapabilities.test.js.map +0 -1
- package/dist/__tests__/NodeAvDecoder.test.d.ts +0 -2
- package/dist/__tests__/NodeAvDecoder.test.d.ts.map +0 -1
- package/dist/__tests__/NodeAvDecoder.test.js +0 -199
- package/dist/__tests__/NodeAvDecoder.test.js.map +0 -1
- package/dist/__tests__/NodeAvEncoder.test.d.ts +0 -2
- package/dist/__tests__/NodeAvEncoder.test.d.ts.map +0 -1
- package/dist/__tests__/NodeAvEncoder.test.js +0 -176
- package/dist/__tests__/NodeAvEncoder.test.js.map +0 -1
- package/dist/__tests__/VideoDecoder.test.d.ts +0 -5
- package/dist/__tests__/VideoDecoder.test.d.ts.map +0 -1
- package/dist/__tests__/VideoDecoder.test.js +0 -675
- package/dist/__tests__/VideoDecoder.test.js.map +0 -1
- package/dist/__tests__/VideoEncoder.test.d.ts +0 -5
- package/dist/__tests__/VideoEncoder.test.d.ts.map +0 -1
- package/dist/__tests__/VideoEncoder.test.js +0 -468
- package/dist/__tests__/VideoEncoder.test.js.map +0 -1
- package/dist/__tests__/VideoFrame.test.d.ts +0 -5
- package/dist/__tests__/VideoFrame.test.d.ts.map +0 -1
- package/dist/__tests__/VideoFrame.test.js +0 -243
- package/dist/__tests__/VideoFrame.test.js.map +0 -1
- package/dist/__tests__/aac-utils.test.d.ts +0 -2
- package/dist/__tests__/aac-utils.test.d.ts.map +0 -1
- package/dist/__tests__/aac-utils.test.js +0 -37
- package/dist/__tests__/aac-utils.test.js.map +0 -1
- package/dist/__tests__/avc-utils.test.d.ts +0 -2
- package/dist/__tests__/avc-utils.test.d.ts.map +0 -1
- package/dist/__tests__/avc-utils.test.js +0 -63
- package/dist/__tests__/avc-utils.test.js.map +0 -1
- package/dist/__tests__/hevc-utils.test.d.ts +0 -2
- package/dist/__tests__/hevc-utils.test.d.ts.map +0 -1
- package/dist/__tests__/hevc-utils.test.js +0 -78
- package/dist/__tests__/hevc-utils.test.js.map +0 -1
- package/dist/demos/demo-conversion.d.ts +0 -13
- package/dist/demos/demo-conversion.d.ts.map +0 -1
- package/dist/demos/demo-conversion.js +0 -301
- package/dist/demos/demo-conversion.js.map +0 -1
- package/dist/demos/demo-hwaccel-conversion.d.ts +0 -8
- package/dist/demos/demo-hwaccel-conversion.d.ts.map +0 -1
- package/dist/demos/demo-hwaccel-conversion.js +0 -161
- package/dist/demos/demo-hwaccel-conversion.js.map +0 -1
- package/dist/demos/demo-mediabunny.d.ts +0 -7
- package/dist/demos/demo-mediabunny.d.ts.map +0 -1
- package/dist/demos/demo-mediabunny.js +0 -78
- package/dist/demos/demo-mediabunny.js.map +0 -1
- package/dist/ffmpeg/FFmpegProcess.d.ts +0 -111
- package/dist/ffmpeg/FFmpegProcess.d.ts.map +0 -1
- package/dist/ffmpeg/FFmpegProcess.js +0 -543
- package/dist/ffmpeg/FFmpegProcess.js.map +0 -1
- package/dist/ffmpeg/audio-codecs.d.ts.map +0 -1
- package/dist/ffmpeg/audio-codecs.js.map +0 -1
- package/dist/ffmpeg/formats.d.ts.map +0 -1
- package/dist/ffmpeg/formats.js.map +0 -1
- package/dist/ffmpeg/index.d.ts.map +0 -1
- package/dist/ffmpeg/index.js.map +0 -1
- package/dist/ffmpeg/parsers/annexb.d.ts +0 -88
- package/dist/ffmpeg/parsers/annexb.d.ts.map +0 -1
- package/dist/ffmpeg/parsers/annexb.js +0 -201
- package/dist/ffmpeg/parsers/annexb.js.map +0 -1
- package/dist/ffmpeg/parsers/index.d.ts +0 -6
- package/dist/ffmpeg/parsers/index.d.ts.map +0 -1
- package/dist/ffmpeg/parsers/index.js +0 -8
- package/dist/ffmpeg/parsers/index.js.map +0 -1
- package/dist/ffmpeg/parsers/ivf.d.ts +0 -54
- package/dist/ffmpeg/parsers/ivf.d.ts.map +0 -1
- package/dist/ffmpeg/parsers/ivf.js +0 -109
- package/dist/ffmpeg/parsers/ivf.js.map +0 -1
- package/dist/ffmpeg/types.d.ts.map +0 -1
- package/dist/ffmpeg/types.js.map +0 -1
- package/dist/mediabunny/FFmpegAudioDecoder.d.ts +0 -23
- package/dist/mediabunny/FFmpegAudioDecoder.d.ts.map +0 -1
- package/dist/mediabunny/FFmpegAudioDecoder.js +0 -129
- package/dist/mediabunny/FFmpegAudioDecoder.js.map +0 -1
- package/dist/mediabunny/FFmpegAudioEncoder.d.ts +0 -43
- package/dist/mediabunny/FFmpegAudioEncoder.d.ts.map +0 -1
- package/dist/mediabunny/FFmpegAudioEncoder.js +0 -220
- package/dist/mediabunny/FFmpegAudioEncoder.js.map +0 -1
- package/dist/mediabunny/FFmpegVideoDecoder.d.ts +0 -24
- package/dist/mediabunny/FFmpegVideoDecoder.d.ts.map +0 -1
- package/dist/mediabunny/FFmpegVideoDecoder.js +0 -125
- package/dist/mediabunny/FFmpegVideoDecoder.js.map +0 -1
- package/dist/mediabunny/FFmpegVideoEncoder.d.ts +0 -48
- package/dist/mediabunny/FFmpegVideoEncoder.d.ts.map +0 -1
- package/dist/mediabunny/FFmpegVideoEncoder.js +0 -263
- package/dist/mediabunny/FFmpegVideoEncoder.js.map +0 -1
- package/dist/mediabunny/index.d.ts +0 -21
- package/dist/mediabunny/index.d.ts.map +0 -1
- package/dist/mediabunny/index.js +0 -33
- package/dist/mediabunny/index.js.map +0 -1
- package/dist/types.d.ts +0 -6
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js +0 -6
- package/dist/types.js.map +0 -1
package/dist/backends/types.d.ts
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Backend interfaces for video/audio encoders and decoders.
|
|
3
3
|
*
|
|
4
|
-
* These interfaces define the contract that
|
|
5
|
-
* (node-av
|
|
4
|
+
* These interfaces define the contract that backend implementations
|
|
5
|
+
* (node-av) must follow.
|
|
6
6
|
*/
|
|
7
7
|
import { EventEmitter } from 'events';
|
|
8
|
+
import type { AudioSampleFormat } from '../formats/audio-formats.js';
|
|
8
9
|
/**
|
|
9
10
|
* Encoded frame data emitted by encoders
|
|
10
11
|
*/
|
|
@@ -12,6 +13,8 @@ export interface EncodedFrame {
|
|
|
12
13
|
data: Buffer;
|
|
13
14
|
timestamp: number;
|
|
14
15
|
keyFrame: boolean;
|
|
16
|
+
/** Optional codec description (e.g., HVCC for HEVC, AVC config for H.264) */
|
|
17
|
+
description?: Buffer;
|
|
15
18
|
}
|
|
16
19
|
/**
|
|
17
20
|
* Decoded frame data emitted by decoders
|
|
@@ -69,7 +72,7 @@ export interface AudioDecoderBackendConfig {
|
|
|
69
72
|
sampleRate: number;
|
|
70
73
|
numberOfChannels: number;
|
|
71
74
|
description?: ArrayBuffer | ArrayBufferView;
|
|
72
|
-
outputFormat?:
|
|
75
|
+
outputFormat?: AudioSampleFormat;
|
|
73
76
|
}
|
|
74
77
|
/**
|
|
75
78
|
* Base interface for all backends
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/backends/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/backends/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAErE;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,6EAA6E;IAC7E,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,UAAU,GAAG,UAAU,GAAG,WAAW,CAAC;IACpD,WAAW,CAAC,EAAE,SAAS,GAAG,UAAU,CAAC;IACrC,KAAK,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;IAC3B,oBAAoB,CAAC,EAAE,eAAe,GAAG,iBAAiB,GAAG,iBAAiB,CAAC;CAChF;AAED;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,GAAG,UAAU,CAAC;IAClC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oBAAoB,CAAC,EAAE,eAAe,GAAG,iBAAiB,GAAG,iBAAiB,CAAC;CAChF;AAED;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,EAAE,MAAM,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,UAAU,GAAG,UAAU,CAAC;IACtC,WAAW,CAAC,EAAE,SAAS,GAAG,UAAU,CAAC;CACtC;AAED;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,WAAW,GAAG,eAAe,CAAC;IAC5C,YAAY,CAAC,EAAE,iBAAiB,CAAC;CAClC;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,yDAAyD;IACzD,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAE5B,iCAAiC;IACjC,GAAG,IAAI,IAAI,CAAC;IAEZ,8CAA8C;IAC9C,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE1C,4BAA4B;IAC5B,IAAI,IAAI,IAAI,CAAC;CACd;AAED;;GAEG;AACH,MAAM,WAAW,mBAAoB,SAAQ,WAAW,EAAE,YAAY;IACpE,gDAAgD;IAChD,YAAY,CAAC,MAAM,EAAE,yBAAyB,GAAG,IAAI,CAAC;IAEtD,qCAAqC;IACrC,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,OAAO,CAAC;IAG1C,EAAE,CAAC,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,GAAG,IAAI,CAAC;IACzE,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,GAAG,IAAI,CAAC;IAC3D,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,GAAG,IAAI,CAAC;IAElE,IAAI,CAAC,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC;IAC1D,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC;IAC5C,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC;CACpD;AAED;;GAEG;AACH,MAAM,WAAW,mBAAoB,SAAQ,WAAW,EAAE,YAAY;IACpE,gDAAgD;IAChD,YAAY,CAAC,MAAM,EAAE,yBAAyB,GAAG,IAAI,CAAC;IAEtD,mCAAmC;IACnC,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,OAAO,CAAC;IAG1C,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,GAAG,IAAI,CAAC;IAClE,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,GAAG,IAAI,CAAC;IAC3D,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,GAAG,IAAI,CAAC;IAElE,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC;IACnD,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC;IAC5C,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC;CACpD;AAED;;GAEG;AACH,MAAM,WAAW,mBAAoB,SAAQ,WAAW,EAAE,YAAY;IACpE,gDAAgD;IAChD,YAAY,CAAC,MAAM,EAAE,yBAAyB,GAAG,IAAI,CAAC;IAEtD,wCAAwC;IACxC,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,OAAO,CAAC;IAG1C,EAAE,CAAC,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,GAAG,IAAI,CAAC;IACzE,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,GAAG,IAAI,CAAC;IAC3D,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,GAAG,IAAI,CAAC;IAElE,IAAI,CAAC,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC;IAC1D,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC;IAC5C,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC;CACpD;AAED;;GAEG;AACH,MAAM,WAAW,mBAAoB,SAAQ,WAAW,EAAE,YAAY;IACpE,gDAAgD;IAChD,YAAY,CAAC,MAAM,EAAE,yBAAyB,GAAG,IAAI,CAAC;IAEtD,yCAAyC;IACzC,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,OAAO,CAAC;IAG1C,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,GAAG,IAAI,CAAC;IAClE,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,GAAG,IAAI,CAAC;IAC3D,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,GAAG,IAAI,CAAC;IAElE,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC;IACnD,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC;IAC5C,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC;CACpD;AAED,iDAAiD;AACjD,eAAO,MAAM,wBAAwB,OAAO,CAAC;AAE7C,gDAAgD;AAChD,eAAO,MAAM,qBAAqB,QAAQ,CAAC;AAE3C,wDAAwD;AACxD,eAAO,MAAM,wBAAwB,OAAO,CAAC;AAE7C,2CAA2C;AAC3C,eAAO,MAAM,iBAAiB,KAAK,CAAC;AAEpC,2DAA2D;AAC3D,eAAO,MAAM,kBAAkB,SAAU,CAAC;AAE1C,4CAA4C;AAC5C,eAAO,MAAM,YAAY;;;;;;CAMf,CAAC"}
|
package/dist/backends/types.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Backend interfaces for video/audio encoders and decoders.
|
|
3
3
|
*
|
|
4
|
-
* These interfaces define the contract that
|
|
5
|
-
* (node-av
|
|
4
|
+
* These interfaces define the contract that backend implementations
|
|
5
|
+
* (node-av) must follow.
|
|
6
6
|
*/
|
|
7
7
|
/** Default timeout for graceful shutdown (ms) */
|
|
8
8
|
export const DEFAULT_SHUTDOWN_TIMEOUT = 5000;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/backends/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/backends/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAgLH,iDAAiD;AACjD,MAAM,CAAC,MAAM,wBAAwB,GAAG,IAAI,CAAC;AAE7C,gDAAgD;AAChD,MAAM,CAAC,MAAM,qBAAqB,GAAG,KAAK,CAAC;AAE3C,wDAAwD;AACxD,MAAM,CAAC,MAAM,wBAAwB,GAAG,IAAI,CAAC;AAE7C,2CAA2C;AAC3C,MAAM,CAAC,MAAM,iBAAiB,GAAG,EAAE,CAAC;AAEpC,2DAA2D;AAC3D,MAAM,CAAC,MAAM,kBAAkB,GAAG,OAAO,CAAC;AAE1C,4CAA4C;AAC5C,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,IAAI,EAAE,EAAE;IACR,IAAI,EAAE,EAAE;IACR,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;CACC,CAAC"}
|
|
@@ -1,30 +1,31 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Audio codec mappings
|
|
3
3
|
*
|
|
4
|
-
* Consolidates all audio codec mappings for encoders and decoders
|
|
4
|
+
* Consolidates all audio codec mappings for encoders and decoders.
|
|
5
|
+
* Maps between WebCodecs codec strings and libav codec names.
|
|
5
6
|
*/
|
|
6
7
|
import type { AudioSampleFormat } from '../types/audio.js';
|
|
7
8
|
/**
|
|
8
|
-
* WebCodecs audio codec to
|
|
9
|
+
* WebCodecs audio codec to libav encoder mapping
|
|
9
10
|
*/
|
|
10
11
|
export declare const AUDIO_ENCODER_CODEC_MAP: Record<string, string>;
|
|
11
12
|
/**
|
|
12
|
-
* WebCodecs audio codec to
|
|
13
|
+
* WebCodecs audio codec to libav decoder mapping
|
|
13
14
|
*/
|
|
14
15
|
export declare const AUDIO_DECODER_CODEC_MAP: Record<string, {
|
|
15
16
|
decoder: string;
|
|
16
17
|
format: string;
|
|
17
18
|
}>;
|
|
18
19
|
/**
|
|
19
|
-
*
|
|
20
|
+
* Encoder to output container format mapping
|
|
20
21
|
*/
|
|
21
22
|
export declare const AUDIO_ENCODER_FORMAT_MAP: Record<string, string>;
|
|
22
23
|
/**
|
|
23
|
-
* Frame size per
|
|
24
|
+
* Frame size per codec (samples per frame)
|
|
24
25
|
*/
|
|
25
26
|
export declare const AUDIO_FRAME_SIZE_MAP: Record<string, number>;
|
|
26
27
|
/**
|
|
27
|
-
* Audio sample format to
|
|
28
|
+
* Audio sample format to libav settings mapping
|
|
28
29
|
*/
|
|
29
30
|
export interface AudioFormatSettings {
|
|
30
31
|
ffmpegFormat: string;
|
|
@@ -33,27 +34,27 @@ export interface AudioFormatSettings {
|
|
|
33
34
|
}
|
|
34
35
|
export declare const AUDIO_OUTPUT_FORMAT_MAP: Record<AudioSampleFormat, AudioFormatSettings>;
|
|
35
36
|
/**
|
|
36
|
-
* Get
|
|
37
|
+
* Get libav encoder codec from WebCodecs codec string
|
|
37
38
|
* Returns undefined if codec is not supported
|
|
38
39
|
*/
|
|
39
40
|
export declare function getAudioEncoderCodec(codec: string): string | undefined;
|
|
40
41
|
/**
|
|
41
|
-
* Get
|
|
42
|
+
* Get libav decoder info from WebCodecs codec string
|
|
42
43
|
*/
|
|
43
44
|
export declare function getAudioDecoderInfo(codec: string): {
|
|
44
45
|
decoder: string;
|
|
45
46
|
format: string;
|
|
46
47
|
};
|
|
47
48
|
/**
|
|
48
|
-
* Get output format for
|
|
49
|
+
* Get output format for a libav encoder codec
|
|
49
50
|
*/
|
|
50
51
|
export declare function getAudioEncoderFormat(ffmpegCodec: string): string;
|
|
51
52
|
/**
|
|
52
|
-
* Get frame size for
|
|
53
|
+
* Get frame size for a libav encoder codec
|
|
53
54
|
*/
|
|
54
55
|
export declare function getAudioFrameSize(ffmpegCodec: string): number | undefined;
|
|
55
56
|
/**
|
|
56
|
-
* Get
|
|
57
|
+
* Get libav output format settings for an AudioSampleFormat
|
|
57
58
|
*/
|
|
58
59
|
export declare function getAudioOutputFormatSettings(format: AudioSampleFormat): AudioFormatSettings;
|
|
59
60
|
//# sourceMappingURL=audio-codecs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"audio-codecs.d.ts","sourceRoot":"","sources":["../../src/codec-utils/audio-codecs.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAE3D;;GAEG;AACH,eAAO,MAAM,uBAAuB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAiB1D,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,uBAAuB,EAAE,MAAM,CAAC,MAAM,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAiBvF,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,wBAAwB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAa3D,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAIvD,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,eAAO,MAAM,uBAAuB,EAAE,MAAM,CAAC,iBAAiB,EAAE,mBAAmB,CASlF,CAAC;AAEF;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAGtE;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAGtF;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAEjE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAEzE;AAED;;GAEG;AACH,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,iBAAiB,GAAG,mBAAmB,CAE3F"}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Audio codec mappings
|
|
3
3
|
*
|
|
4
|
-
* Consolidates all audio codec mappings for encoders and decoders
|
|
4
|
+
* Consolidates all audio codec mappings for encoders and decoders.
|
|
5
|
+
* Maps between WebCodecs codec strings and libav codec names.
|
|
5
6
|
*/
|
|
6
7
|
/**
|
|
7
|
-
* WebCodecs audio codec to
|
|
8
|
+
* WebCodecs audio codec to libav encoder mapping
|
|
8
9
|
*/
|
|
9
10
|
export const AUDIO_ENCODER_CODEC_MAP = {
|
|
10
11
|
'opus': 'libopus',
|
|
@@ -14,12 +15,18 @@ export const AUDIO_ENCODER_CODEC_MAP = {
|
|
|
14
15
|
'mp4a.40.5': 'aac',
|
|
15
16
|
'mp4a.40.29': 'aac',
|
|
16
17
|
'aac': 'aac',
|
|
18
|
+
'mp4a.67': 'aac', // AAC-LD
|
|
17
19
|
'pcm-s16': 'pcm_s16le',
|
|
20
|
+
'pcm-s24': 'pcm_s24le',
|
|
21
|
+
'pcm-s32': 'pcm_s32le',
|
|
18
22
|
'pcm-f32': 'pcm_f32le',
|
|
23
|
+
'pcm-u8': 'pcm_u8',
|
|
24
|
+
'ulaw': 'pcm_mulaw',
|
|
25
|
+
'alaw': 'pcm_alaw',
|
|
19
26
|
'vorbis': 'libvorbis',
|
|
20
27
|
};
|
|
21
28
|
/**
|
|
22
|
-
* WebCodecs audio codec to
|
|
29
|
+
* WebCodecs audio codec to libav decoder mapping
|
|
23
30
|
*/
|
|
24
31
|
export const AUDIO_DECODER_CODEC_MAP = {
|
|
25
32
|
'opus': { decoder: 'libopus', format: 'ogg' },
|
|
@@ -29,12 +36,18 @@ export const AUDIO_DECODER_CODEC_MAP = {
|
|
|
29
36
|
'mp4a.40.5': { decoder: 'aac', format: 'aac' },
|
|
30
37
|
'mp4a.40.29': { decoder: 'aac', format: 'aac' },
|
|
31
38
|
'aac': { decoder: 'aac', format: 'aac' },
|
|
39
|
+
'mp4a.67': { decoder: 'aac', format: 'aac' },
|
|
32
40
|
'pcm-s16': { decoder: 'pcm_s16le', format: 's16le' },
|
|
41
|
+
'pcm-s24': { decoder: 'pcm_s24le', format: 's24le' },
|
|
42
|
+
'pcm-s32': { decoder: 'pcm_s32le', format: 's32le' },
|
|
33
43
|
'pcm-f32': { decoder: 'pcm_f32le', format: 'f32le' },
|
|
44
|
+
'pcm-u8': { decoder: 'pcm_u8', format: 'u8' },
|
|
45
|
+
'ulaw': { decoder: 'pcm_mulaw', format: 'ulaw' },
|
|
46
|
+
'alaw': { decoder: 'pcm_alaw', format: 'alaw' },
|
|
34
47
|
'vorbis': { decoder: 'libvorbis', format: 'ogg' },
|
|
35
48
|
};
|
|
36
49
|
/**
|
|
37
|
-
*
|
|
50
|
+
* Encoder to output container format mapping
|
|
38
51
|
*/
|
|
39
52
|
export const AUDIO_ENCODER_FORMAT_MAP = {
|
|
40
53
|
'libopus': 'ogg',
|
|
@@ -42,11 +55,16 @@ export const AUDIO_ENCODER_FORMAT_MAP = {
|
|
|
42
55
|
'flac': 'flac',
|
|
43
56
|
'aac': 'adts',
|
|
44
57
|
'pcm_s16le': 's16le',
|
|
58
|
+
'pcm_s24le': 's24le',
|
|
59
|
+
'pcm_s32le': 's32le',
|
|
45
60
|
'pcm_f32le': 'f32le',
|
|
61
|
+
'pcm_u8': 'u8',
|
|
62
|
+
'pcm_mulaw': 'ulaw',
|
|
63
|
+
'pcm_alaw': 'alaw',
|
|
46
64
|
'libvorbis': 'ogg',
|
|
47
65
|
};
|
|
48
66
|
/**
|
|
49
|
-
* Frame size per
|
|
67
|
+
* Frame size per codec (samples per frame)
|
|
50
68
|
*/
|
|
51
69
|
export const AUDIO_FRAME_SIZE_MAP = {
|
|
52
70
|
'libopus': 960,
|
|
@@ -64,7 +82,7 @@ export const AUDIO_OUTPUT_FORMAT_MAP = {
|
|
|
64
82
|
'f32-planar': { ffmpegFormat: 'f32le', bytesPerSample: 4, isPlanar: true },
|
|
65
83
|
};
|
|
66
84
|
/**
|
|
67
|
-
* Get
|
|
85
|
+
* Get libav encoder codec from WebCodecs codec string
|
|
68
86
|
* Returns undefined if codec is not supported
|
|
69
87
|
*/
|
|
70
88
|
export function getAudioEncoderCodec(codec) {
|
|
@@ -72,26 +90,26 @@ export function getAudioEncoderCodec(codec) {
|
|
|
72
90
|
return AUDIO_ENCODER_CODEC_MAP[codecBase] || AUDIO_ENCODER_CODEC_MAP[codec];
|
|
73
91
|
}
|
|
74
92
|
/**
|
|
75
|
-
* Get
|
|
93
|
+
* Get libav decoder info from WebCodecs codec string
|
|
76
94
|
*/
|
|
77
95
|
export function getAudioDecoderInfo(codec) {
|
|
78
96
|
const codecBase = codec.split('.')[0].toLowerCase();
|
|
79
97
|
return AUDIO_DECODER_CODEC_MAP[codecBase] || AUDIO_DECODER_CODEC_MAP[codec] || { decoder: 'aac', format: 'adts' };
|
|
80
98
|
}
|
|
81
99
|
/**
|
|
82
|
-
* Get output format for
|
|
100
|
+
* Get output format for a libav encoder codec
|
|
83
101
|
*/
|
|
84
102
|
export function getAudioEncoderFormat(ffmpegCodec) {
|
|
85
103
|
return AUDIO_ENCODER_FORMAT_MAP[ffmpegCodec] || 'wav';
|
|
86
104
|
}
|
|
87
105
|
/**
|
|
88
|
-
* Get frame size for
|
|
106
|
+
* Get frame size for a libav encoder codec
|
|
89
107
|
*/
|
|
90
108
|
export function getAudioFrameSize(ffmpegCodec) {
|
|
91
109
|
return AUDIO_FRAME_SIZE_MAP[ffmpegCodec];
|
|
92
110
|
}
|
|
93
111
|
/**
|
|
94
|
-
* Get
|
|
112
|
+
* Get libav output format settings for an AudioSampleFormat
|
|
95
113
|
*/
|
|
96
114
|
export function getAudioOutputFormatSettings(format) {
|
|
97
115
|
return AUDIO_OUTPUT_FORMAT_MAP[format] || AUDIO_OUTPUT_FORMAT_MAP['f32'];
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"audio-codecs.js","sourceRoot":"","sources":["../../src/codec-utils/audio-codecs.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Codec format mappings
|
|
3
3
|
*
|
|
4
|
-
* Converts between WebCodecs formats and
|
|
4
|
+
* Converts between WebCodecs formats and libav formats used by node-av.
|
|
5
5
|
*/
|
|
6
6
|
/**
|
|
7
|
-
* Map WebCodecs pixel format to
|
|
7
|
+
* Map WebCodecs pixel format to libav pixel format
|
|
8
8
|
*/
|
|
9
9
|
export declare function pixelFormatToFFmpeg(format: string): string;
|
|
10
10
|
/**
|
|
11
|
-
* Map
|
|
11
|
+
* Map libav pixel format to WebCodecs pixel format
|
|
12
12
|
*/
|
|
13
13
|
export declare function ffmpegToPixelFormat(format: string): string;
|
|
14
14
|
/**
|
|
15
|
-
* Map WebCodecs codec string to
|
|
15
|
+
* Map WebCodecs codec string to libav encoder codec
|
|
16
16
|
*/
|
|
17
17
|
export declare function webCodecToFFmpegCodec(webCodec: string): string;
|
|
18
18
|
/**
|
|
@@ -24,7 +24,7 @@ export declare function webCodecToContainerFormat(webCodec: string): string;
|
|
|
24
24
|
*/
|
|
25
25
|
export declare function calculateFrameSize(format: string, width: number, height: number): number;
|
|
26
26
|
/**
|
|
27
|
-
* MIME type to
|
|
27
|
+
* MIME type to format mapping for ImageDecoder
|
|
28
28
|
*/
|
|
29
29
|
export declare const IMAGE_MIME_TO_FFMPEG: Record<string, {
|
|
30
30
|
format: string;
|
|
@@ -36,7 +36,7 @@ export declare const IMAGE_MIME_TO_FFMPEG: Record<string, {
|
|
|
36
36
|
*/
|
|
37
37
|
export declare const AUDIO_CODEC_MAP: Record<string, string>;
|
|
38
38
|
/**
|
|
39
|
-
* Get
|
|
39
|
+
* Get libav audio codec from WebCodecs codec string
|
|
40
40
|
*/
|
|
41
41
|
export declare function webCodecToFFmpegAudioCodec(codec: string): string;
|
|
42
42
|
//# sourceMappingURL=formats.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"formats.d.ts","sourceRoot":"","sources":["../../src/codec-utils/formats.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAa1D;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAa1D;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAgB9D;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAgBlE;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAkCxF;AAED;;GAEG;AACH,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,OAAO,CAAA;CAAE,CAU3G,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CASlD,CAAC;AAEF;;GAEG;AACH,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAGhE"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Codec format mappings
|
|
3
3
|
*
|
|
4
|
-
* Converts between WebCodecs formats and
|
|
4
|
+
* Converts between WebCodecs formats and libav formats used by node-av.
|
|
5
5
|
*/
|
|
6
6
|
/**
|
|
7
|
-
* Map WebCodecs pixel format to
|
|
7
|
+
* Map WebCodecs pixel format to libav pixel format
|
|
8
8
|
*/
|
|
9
9
|
export function pixelFormatToFFmpeg(format) {
|
|
10
10
|
const formatMap = {
|
|
@@ -21,7 +21,7 @@ export function pixelFormatToFFmpeg(format) {
|
|
|
21
21
|
return formatMap[format] || format.toLowerCase();
|
|
22
22
|
}
|
|
23
23
|
/**
|
|
24
|
-
* Map
|
|
24
|
+
* Map libav pixel format to WebCodecs pixel format
|
|
25
25
|
*/
|
|
26
26
|
export function ffmpegToPixelFormat(format) {
|
|
27
27
|
const formatMap = {
|
|
@@ -38,7 +38,7 @@ export function ffmpegToPixelFormat(format) {
|
|
|
38
38
|
return formatMap[format] || format.toUpperCase();
|
|
39
39
|
}
|
|
40
40
|
/**
|
|
41
|
-
* Map WebCodecs codec string to
|
|
41
|
+
* Map WebCodecs codec string to libav encoder codec
|
|
42
42
|
*/
|
|
43
43
|
export function webCodecToFFmpegCodec(webCodec) {
|
|
44
44
|
const codecBase = webCodec.split('.')[0].toLowerCase();
|
|
@@ -111,7 +111,7 @@ export function calculateFrameSize(format, width, height) {
|
|
|
111
111
|
}
|
|
112
112
|
}
|
|
113
113
|
/**
|
|
114
|
-
* MIME type to
|
|
114
|
+
* MIME type to format mapping for ImageDecoder
|
|
115
115
|
*/
|
|
116
116
|
export const IMAGE_MIME_TO_FFMPEG = {
|
|
117
117
|
'image/png': { format: 'png_pipe' },
|
|
@@ -138,7 +138,7 @@ export const AUDIO_CODEC_MAP = {
|
|
|
138
138
|
'pcm-f32': 'pcm_f32le',
|
|
139
139
|
};
|
|
140
140
|
/**
|
|
141
|
-
* Get
|
|
141
|
+
* Get libav audio codec from WebCodecs codec string
|
|
142
142
|
*/
|
|
143
143
|
export function webCodecToFFmpegAudioCodec(codec) {
|
|
144
144
|
const codecLower = codec.toLowerCase();
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"formats.js","sourceRoot":"","sources":["../../src/codec-utils/formats.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Codec utilities
|
|
3
|
+
*
|
|
4
|
+
* Provides codec and format mappings between WebCodecs and libav (node-av).
|
|
3
5
|
*/
|
|
4
|
-
export { FFmpegProcess, type FFmpegConfig, type FFmpegInputConfig, type FFmpegOutputConfig, } from './FFmpegProcess.js';
|
|
5
6
|
export { type EncodedFrameData, type DecoderConfig, type EncoderConfig, type BitrateMode, type AlphaOption, DEFAULT_SHUTDOWN_TIMEOUT, DEFAULT_FLUSH_TIMEOUT, } from './types.js';
|
|
6
7
|
export { pixelFormatToFFmpeg, ffmpegToPixelFormat, webCodecToFFmpegCodec, webCodecToContainerFormat, calculateFrameSize, webCodecToFFmpegAudioCodec, IMAGE_MIME_TO_FFMPEG, AUDIO_CODEC_MAP, } from './formats.js';
|
|
7
8
|
export { AUDIO_ENCODER_CODEC_MAP, AUDIO_DECODER_CODEC_MAP, AUDIO_ENCODER_FORMAT_MAP, AUDIO_FRAME_SIZE_MAP, AUDIO_OUTPUT_FORMAT_MAP, getAudioEncoderCodec, getAudioDecoderInfo, getAudioEncoderFormat, getAudioFrameSize, getAudioOutputFormatSettings, type AudioFormatSettings, } from './audio-codecs.js';
|
|
8
|
-
export * from './parsers/index.js';
|
|
9
9
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/codec-utils/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,wBAAwB,EACxB,qBAAqB,GACtB,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,qBAAqB,EACrB,yBAAyB,EACzB,kBAAkB,EAClB,0BAA0B,EAC1B,oBAAoB,EACpB,eAAe,GAChB,MAAM,cAAc,CAAC;AAGtB,OAAO,EACL,uBAAuB,EACvB,uBAAuB,EACvB,wBAAwB,EACxB,oBAAoB,EACpB,uBAAuB,EACvB,oBAAoB,EACpB,mBAAmB,EACnB,qBAAqB,EACrB,iBAAiB,EACjB,4BAA4B,EAC5B,KAAK,mBAAmB,GACzB,MAAM,mBAAmB,CAAC"}
|
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Codec utilities
|
|
3
|
+
*
|
|
4
|
+
* Provides codec and format mappings between WebCodecs and libav (node-av).
|
|
3
5
|
*/
|
|
4
|
-
export { FFmpegProcess, } from './FFmpegProcess.js';
|
|
5
6
|
// Types
|
|
6
7
|
export { DEFAULT_SHUTDOWN_TIMEOUT, DEFAULT_FLUSH_TIMEOUT, } from './types.js';
|
|
7
8
|
// Format mappings
|
|
8
9
|
export { pixelFormatToFFmpeg, ffmpegToPixelFormat, webCodecToFFmpegCodec, webCodecToContainerFormat, calculateFrameSize, webCodecToFFmpegAudioCodec, IMAGE_MIME_TO_FFMPEG, AUDIO_CODEC_MAP, } from './formats.js';
|
|
9
10
|
// Audio codec mappings
|
|
10
11
|
export { AUDIO_ENCODER_CODEC_MAP, AUDIO_DECODER_CODEC_MAP, AUDIO_ENCODER_FORMAT_MAP, AUDIO_FRAME_SIZE_MAP, AUDIO_OUTPUT_FORMAT_MAP, getAudioEncoderCodec, getAudioDecoderInfo, getAudioEncoderFormat, getAudioFrameSize, getAudioOutputFormatSettings, } from './audio-codecs.js';
|
|
11
|
-
// Parsers
|
|
12
|
-
export * from './parsers/index.js';
|
|
13
12
|
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/codec-utils/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,QAAQ;AACR,OAAO,EAML,wBAAwB,EACxB,qBAAqB,GACtB,MAAM,YAAY,CAAC;AAEpB,kBAAkB;AAClB,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,qBAAqB,EACrB,yBAAyB,EACzB,kBAAkB,EAClB,0BAA0B,EAC1B,oBAAoB,EACpB,eAAe,GAChB,MAAM,cAAc,CAAC;AAEtB,uBAAuB;AACvB,OAAO,EACL,uBAAuB,EACvB,uBAAuB,EACvB,wBAAwB,EACxB,oBAAoB,EACpB,uBAAuB,EACvB,oBAAoB,EACpB,mBAAmB,EACnB,qBAAqB,EACrB,iBAAiB,EACjB,4BAA4B,GAE7B,MAAM,mBAAmB,CAAC"}
|
|
@@ -1,17 +1,19 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Codec configuration types
|
|
3
|
+
*
|
|
4
|
+
* Configuration types for video and audio encoding/decoding.
|
|
3
5
|
*/
|
|
4
6
|
/**
|
|
5
|
-
*
|
|
7
|
+
* Codec configuration
|
|
6
8
|
*/
|
|
7
|
-
export interface
|
|
8
|
-
input:
|
|
9
|
-
output:
|
|
9
|
+
export interface CodecConfig {
|
|
10
|
+
input: CodecInputConfig;
|
|
11
|
+
output: CodecOutputConfig;
|
|
10
12
|
}
|
|
11
13
|
/**
|
|
12
|
-
*
|
|
14
|
+
* Input configuration
|
|
13
15
|
*/
|
|
14
|
-
export interface
|
|
16
|
+
export interface CodecInputConfig {
|
|
15
17
|
format: string;
|
|
16
18
|
codec?: string;
|
|
17
19
|
width?: number;
|
|
@@ -20,9 +22,9 @@ export interface FFmpegInputConfig {
|
|
|
20
22
|
pixelFormat?: string;
|
|
21
23
|
}
|
|
22
24
|
/**
|
|
23
|
-
*
|
|
25
|
+
* Output configuration
|
|
24
26
|
*/
|
|
25
|
-
export interface
|
|
27
|
+
export interface CodecOutputConfig {
|
|
26
28
|
format: string;
|
|
27
29
|
codec?: string;
|
|
28
30
|
width?: number;
|
|
@@ -40,7 +42,7 @@ export interface EncodedFrameData {
|
|
|
40
42
|
keyFrame: boolean;
|
|
41
43
|
}
|
|
42
44
|
/**
|
|
43
|
-
* Decoder configuration
|
|
45
|
+
* Decoder configuration
|
|
44
46
|
*/
|
|
45
47
|
export interface DecoderConfig {
|
|
46
48
|
codec: string;
|
|
@@ -64,7 +66,7 @@ export type BitrateMode = 'constant' | 'variable' | 'quantizer';
|
|
|
64
66
|
*/
|
|
65
67
|
export type AlphaOption = 'discard' | 'keep';
|
|
66
68
|
/**
|
|
67
|
-
* Encoder configuration
|
|
69
|
+
* Encoder configuration
|
|
68
70
|
*/
|
|
69
71
|
export interface EncoderConfig {
|
|
70
72
|
codec: string;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/codec-utils/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,gBAAgB,CAAC;IACxB,MAAM,EAAE,iBAAiB,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC/B,sBAAsB,CAAC,EAAE,MAAM,CAAC;CACjC;AAED;;;;;GAKG;AACH,MAAM,MAAM,WAAW,GAAG,UAAU,GAAG,UAAU,GAAG,WAAW,CAAC;AAEhE;;;;GAIG;AACH,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,MAAM,CAAC;AAE7C;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,WAAW,CAAC,EAAE,SAAS,GAAG,UAAU,CAAC;IACrC,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;CAChC;AAED,iDAAiD;AACjD,eAAO,MAAM,wBAAwB,OAAO,CAAC;AAE7C,gDAAgD;AAChD,eAAO,MAAM,qBAAqB,QAAQ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/codec-utils/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAuFH,iDAAiD;AACjD,MAAM,CAAC,MAAM,wBAAwB,GAAG,IAAI,CAAC;AAE7C,gDAAgD;AAChD,MAAM,CAAC,MAAM,qBAAqB,GAAG,KAAK,CAAC"}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Container Demuxer - Extracts encoded chunks from container files (MP4, WebM, MKV)
|
|
3
|
+
*
|
|
4
|
+
* Wraps node-av's Demuxer to provide a WebCodecs-compatible interface that outputs
|
|
5
|
+
* EncodedVideoChunk and EncodedAudioChunk objects.
|
|
6
|
+
*/
|
|
7
|
+
import { Demuxer as NodeAvDemuxer } from 'node-av';
|
|
8
|
+
import { EncodedVideoChunk } from '../core/EncodedVideoChunk.js';
|
|
9
|
+
import { EncodedAudioChunk } from '../core/EncodedAudioChunk.js';
|
|
10
|
+
/**
|
|
11
|
+
* Video stream configuration extracted from container
|
|
12
|
+
*/
|
|
13
|
+
export interface VideoStreamConfig {
|
|
14
|
+
codec: string;
|
|
15
|
+
codedWidth: number;
|
|
16
|
+
codedHeight: number;
|
|
17
|
+
description?: Uint8Array;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Audio stream configuration extracted from container
|
|
21
|
+
*/
|
|
22
|
+
export interface AudioStreamConfig {
|
|
23
|
+
codec: string;
|
|
24
|
+
sampleRate: number;
|
|
25
|
+
numberOfChannels: number;
|
|
26
|
+
description?: Uint8Array;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Demuxer configuration
|
|
30
|
+
*/
|
|
31
|
+
export interface DemuxerConfig {
|
|
32
|
+
/** Path to the input file */
|
|
33
|
+
path: string;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Callback types for demuxed chunks
|
|
37
|
+
*/
|
|
38
|
+
export type VideoChunkCallback = (chunk: EncodedVideoChunk, config: VideoStreamConfig) => void;
|
|
39
|
+
export type AudioChunkCallback = (chunk: EncodedAudioChunk, config: AudioStreamConfig) => void;
|
|
40
|
+
/**
|
|
41
|
+
* Container demuxer that outputs WebCodecs-compatible chunks
|
|
42
|
+
*/
|
|
43
|
+
export declare class Demuxer {
|
|
44
|
+
private demuxer;
|
|
45
|
+
private path;
|
|
46
|
+
private _videoConfig;
|
|
47
|
+
private _audioConfig;
|
|
48
|
+
private _videoStreamIndex;
|
|
49
|
+
private _audioStreamIndex;
|
|
50
|
+
private _videoTimeBase;
|
|
51
|
+
private _audioTimeBase;
|
|
52
|
+
constructor(config: DemuxerConfig);
|
|
53
|
+
/**
|
|
54
|
+
* Open the container file and parse stream information
|
|
55
|
+
*/
|
|
56
|
+
open(timeout?: number): Promise<void>;
|
|
57
|
+
/**
|
|
58
|
+
* Get video stream configuration (null if no video stream)
|
|
59
|
+
*/
|
|
60
|
+
get videoConfig(): VideoStreamConfig | null;
|
|
61
|
+
/**
|
|
62
|
+
* Get audio stream configuration (null if no audio stream)
|
|
63
|
+
*/
|
|
64
|
+
get audioConfig(): AudioStreamConfig | null;
|
|
65
|
+
/**
|
|
66
|
+
* Get container format name (e.g., "mp4", "webm")
|
|
67
|
+
*/
|
|
68
|
+
get format(): string | undefined;
|
|
69
|
+
/**
|
|
70
|
+
* Get duration in seconds
|
|
71
|
+
*/
|
|
72
|
+
get duration(): number | undefined;
|
|
73
|
+
/**
|
|
74
|
+
* Convert timestamp from stream time base to microseconds
|
|
75
|
+
*/
|
|
76
|
+
private toMicroseconds;
|
|
77
|
+
/**
|
|
78
|
+
* Iterate over video chunks
|
|
79
|
+
*/
|
|
80
|
+
videoChunks(): AsyncGenerator<EncodedVideoChunk>;
|
|
81
|
+
/**
|
|
82
|
+
* Iterate over audio chunks
|
|
83
|
+
*/
|
|
84
|
+
audioChunks(): AsyncGenerator<EncodedAudioChunk>;
|
|
85
|
+
/**
|
|
86
|
+
* Iterate over all chunks (video and audio interleaved)
|
|
87
|
+
* Returns both the chunk and its type/config for proper routing
|
|
88
|
+
*/
|
|
89
|
+
chunks(): AsyncGenerator<{
|
|
90
|
+
type: 'video';
|
|
91
|
+
chunk: EncodedVideoChunk;
|
|
92
|
+
config: VideoStreamConfig;
|
|
93
|
+
} | {
|
|
94
|
+
type: 'audio';
|
|
95
|
+
chunk: EncodedAudioChunk;
|
|
96
|
+
config: AudioStreamConfig;
|
|
97
|
+
}>;
|
|
98
|
+
/**
|
|
99
|
+
* Demux all chunks with callbacks (alternative API)
|
|
100
|
+
*/
|
|
101
|
+
demux(options: {
|
|
102
|
+
onVideoChunk?: VideoChunkCallback;
|
|
103
|
+
onAudioChunk?: AudioChunkCallback;
|
|
104
|
+
}): Promise<void>;
|
|
105
|
+
/**
|
|
106
|
+
* Close the demuxer and release resources
|
|
107
|
+
*/
|
|
108
|
+
close(): Promise<void>;
|
|
109
|
+
/**
|
|
110
|
+
* Get the underlying node-av demuxer (for advanced use)
|
|
111
|
+
*/
|
|
112
|
+
get native(): NodeAvDemuxer | null;
|
|
113
|
+
}
|
|
114
|
+
//# sourceMappingURL=Demuxer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Demuxer.d.ts","sourceRoot":"","sources":["../../src/containers/Demuxer.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAA8B,MAAM,8BAA8B,CAAC;AAC7F,OAAO,EAAE,iBAAiB,EAA8B,MAAM,8BAA8B,CAAC;AAG7F;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,UAAU,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,UAAU,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,6BAA6B;IAC7B,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG,CAAC,KAAK,EAAE,iBAAiB,EAAE,MAAM,EAAE,iBAAiB,KAAK,IAAI,CAAC;AAC/F,MAAM,MAAM,kBAAkB,GAAG,CAAC,KAAK,EAAE,iBAAiB,EAAE,MAAM,EAAE,iBAAiB,KAAK,IAAI,CAAC;AA+C/F;;GAEG;AACH,qBAAa,OAAO;IAClB,OAAO,CAAC,OAAO,CAA8B;IAC7C,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,YAAY,CAAkC;IACtD,OAAO,CAAC,YAAY,CAAkC;IACtD,OAAO,CAAC,iBAAiB,CAAc;IACvC,OAAO,CAAC,iBAAiB,CAAc;IACvC,OAAO,CAAC,cAAc,CAA6C;IACnE,OAAO,CAAC,cAAc,CAA6C;gBAEvD,MAAM,EAAE,aAAa;IAIjC;;OAEG;IACG,IAAI,CAAC,OAAO,GAAE,MAA8B,GAAG,OAAO,CAAC,IAAI,CAAC;IA4ClE;;OAEG;IACH,IAAI,WAAW,IAAI,iBAAiB,GAAG,IAAI,CAE1C;IAED;;OAEG;IACH,IAAI,WAAW,IAAI,iBAAiB,GAAG,IAAI,CAE1C;IAED;;OAEG;IACH,IAAI,MAAM,IAAI,MAAM,GAAG,SAAS,CAE/B;IAED;;OAEG;IACH,IAAI,QAAQ,IAAI,MAAM,GAAG,SAAS,CAEjC;IAED;;OAEG;IACH,OAAO,CAAC,cAAc;IAKtB;;OAEG;IACI,WAAW,IAAI,cAAc,CAAC,iBAAiB,CAAC;IAyBvD;;OAEG;IACI,WAAW,IAAI,cAAc,CAAC,iBAAiB,CAAC;IAyBvD;;;OAGG;IACI,MAAM,IAAI,cAAc,CAC3B;QAAE,IAAI,EAAE,OAAO,CAAC;QAAC,KAAK,EAAE,iBAAiB,CAAC;QAAC,MAAM,EAAE,iBAAiB,CAAA;KAAE,GACtE;QAAE,IAAI,EAAE,OAAO,CAAC;QAAC,KAAK,EAAE,iBAAiB,CAAC;QAAC,MAAM,EAAE,iBAAiB,CAAA;KAAE,CACzE;IAuCD;;OAEG;IACG,KAAK,CAAC,OAAO,EAAE;QACnB,YAAY,CAAC,EAAE,kBAAkB,CAAC;QAClC,YAAY,CAAC,EAAE,kBAAkB,CAAC;KACnC,GAAG,OAAO,CAAC,IAAI,CAAC;IAUjB;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAO5B;;OAEG;IACH,IAAI,MAAM,IAAI,aAAa,GAAG,IAAI,CAEjC;CACF"}
|