node-av 0.0.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/CHANGELOG.md +8 -0
- package/LICENSE.md +22 -0
- package/README.md +377 -0
- package/binding.gyp +78 -0
- package/dist/api/bitstream-filter.d.ts +246 -0
- package/dist/api/bitstream-filter.js +369 -0
- package/dist/api/bitstream-filter.js.map +1 -0
- package/dist/api/decoder.d.ts +257 -0
- package/dist/api/decoder.js +424 -0
- package/dist/api/decoder.js.map +1 -0
- package/dist/api/encoder.d.ts +298 -0
- package/dist/api/encoder.js +574 -0
- package/dist/api/encoder.js.map +1 -0
- package/dist/api/filter.d.ts +457 -0
- package/dist/api/filter.js +876 -0
- package/dist/api/filter.js.map +1 -0
- package/dist/api/hardware.d.ts +318 -0
- package/dist/api/hardware.js +558 -0
- package/dist/api/hardware.js.map +1 -0
- package/dist/api/index.d.ts +12 -0
- package/dist/api/index.js +20 -0
- package/dist/api/index.js.map +1 -0
- package/dist/api/io-stream.d.ts +109 -0
- package/dist/api/io-stream.js +124 -0
- package/dist/api/io-stream.js.map +1 -0
- package/dist/api/media-input.d.ts +295 -0
- package/dist/api/media-input.js +456 -0
- package/dist/api/media-input.js.map +1 -0
- package/dist/api/media-output.d.ts +274 -0
- package/dist/api/media-output.js +486 -0
- package/dist/api/media-output.js.map +1 -0
- package/dist/api/pipeline.d.ts +117 -0
- package/dist/api/pipeline.js +836 -0
- package/dist/api/pipeline.js.map +1 -0
- package/dist/api/types.d.ts +440 -0
- package/dist/api/types.js +2 -0
- package/dist/api/types.js.map +1 -0
- package/dist/api/utilities/audio-sample.d.ts +115 -0
- package/dist/api/utilities/audio-sample.js +110 -0
- package/dist/api/utilities/audio-sample.js.map +1 -0
- package/dist/api/utilities/channel-layout.d.ts +83 -0
- package/dist/api/utilities/channel-layout.js +87 -0
- package/dist/api/utilities/channel-layout.js.map +1 -0
- package/dist/api/utilities/image.d.ts +177 -0
- package/dist/api/utilities/image.js +183 -0
- package/dist/api/utilities/image.js.map +1 -0
- package/dist/api/utilities/index.d.ts +8 -0
- package/dist/api/utilities/index.js +17 -0
- package/dist/api/utilities/index.js.map +1 -0
- package/dist/api/utilities/media-type.d.ts +56 -0
- package/dist/api/utilities/media-type.js +60 -0
- package/dist/api/utilities/media-type.js.map +1 -0
- package/dist/api/utilities/pixel-format.d.ts +94 -0
- package/dist/api/utilities/pixel-format.js +102 -0
- package/dist/api/utilities/pixel-format.js.map +1 -0
- package/dist/api/utilities/sample-format.d.ts +132 -0
- package/dist/api/utilities/sample-format.js +144 -0
- package/dist/api/utilities/sample-format.js.map +1 -0
- package/dist/api/utilities/streaming.d.ts +104 -0
- package/dist/api/utilities/streaming.js +137 -0
- package/dist/api/utilities/streaming.js.map +1 -0
- package/dist/api/utilities/timestamp.d.ts +187 -0
- package/dist/api/utilities/timestamp.js +200 -0
- package/dist/api/utilities/timestamp.js.map +1 -0
- package/dist/api/utils.d.ts +61 -0
- package/dist/api/utils.js +330 -0
- package/dist/api/utils.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/audio-fifo.d.ts +339 -0
- package/dist/lib/audio-fifo.js +365 -0
- package/dist/lib/audio-fifo.js.map +1 -0
- package/dist/lib/binding.d.ts +192 -0
- package/dist/lib/binding.js +70 -0
- package/dist/lib/binding.js.map +1 -0
- package/dist/lib/bitstream-filter-context.d.ts +345 -0
- package/dist/lib/bitstream-filter-context.js +407 -0
- package/dist/lib/bitstream-filter-context.js.map +1 -0
- package/dist/lib/bitstream-filter.d.ts +124 -0
- package/dist/lib/bitstream-filter.js +138 -0
- package/dist/lib/bitstream-filter.js.map +1 -0
- package/dist/lib/channel-layouts.d.ts +51 -0
- package/dist/lib/channel-layouts.js +55 -0
- package/dist/lib/channel-layouts.js.map +1 -0
- package/dist/lib/codec-context.d.ts +763 -0
- package/dist/lib/codec-context.js +974 -0
- package/dist/lib/codec-context.js.map +1 -0
- package/dist/lib/codec-parameters.d.ts +362 -0
- package/dist/lib/codec-parameters.js +460 -0
- package/dist/lib/codec-parameters.js.map +1 -0
- package/dist/lib/codec-parser.d.ts +185 -0
- package/dist/lib/codec-parser.js +193 -0
- package/dist/lib/codec-parser.js.map +1 -0
- package/dist/lib/codec.d.ts +432 -0
- package/dist/lib/codec.js +492 -0
- package/dist/lib/codec.js.map +1 -0
- package/dist/lib/constants.d.ts +2037 -0
- package/dist/lib/constants.js +1659 -0
- package/dist/lib/constants.js.map +1 -0
- package/dist/lib/dictionary.d.ts +371 -0
- package/dist/lib/dictionary.js +406 -0
- package/dist/lib/dictionary.js.map +1 -0
- package/dist/lib/error.d.ts +216 -0
- package/dist/lib/error.js +254 -0
- package/dist/lib/error.js.map +1 -0
- package/dist/lib/filter-context.d.ts +445 -0
- package/dist/lib/filter-context.js +505 -0
- package/dist/lib/filter-context.js.map +1 -0
- package/dist/lib/filter-graph.d.ts +556 -0
- package/dist/lib/filter-graph.js +608 -0
- package/dist/lib/filter-graph.js.map +1 -0
- package/dist/lib/filter-inout.d.ts +205 -0
- package/dist/lib/filter-inout.js +264 -0
- package/dist/lib/filter-inout.js.map +1 -0
- package/dist/lib/filter.d.ts +231 -0
- package/dist/lib/filter.js +260 -0
- package/dist/lib/filter.js.map +1 -0
- package/dist/lib/format-context.d.ts +798 -0
- package/dist/lib/format-context.js +845 -0
- package/dist/lib/format-context.js.map +1 -0
- package/dist/lib/frame.d.ts +784 -0
- package/dist/lib/frame.js +933 -0
- package/dist/lib/frame.js.map +1 -0
- package/dist/lib/hardware-device-context.d.ts +407 -0
- package/dist/lib/hardware-device-context.js +429 -0
- package/dist/lib/hardware-device-context.js.map +1 -0
- package/dist/lib/hardware-frames-context.d.ts +374 -0
- package/dist/lib/hardware-frames-context.js +430 -0
- package/dist/lib/hardware-frames-context.js.map +1 -0
- package/dist/lib/index.d.ts +31 -0
- package/dist/lib/index.js +54 -0
- package/dist/lib/index.js.map +1 -0
- package/dist/lib/input-format.d.ts +216 -0
- package/dist/lib/input-format.js +246 -0
- package/dist/lib/input-format.js.map +1 -0
- package/dist/lib/io-context.d.ts +495 -0
- package/dist/lib/io-context.js +550 -0
- package/dist/lib/io-context.js.map +1 -0
- package/dist/lib/log.d.ts +201 -0
- package/dist/lib/log.js +219 -0
- package/dist/lib/log.js.map +1 -0
- package/dist/lib/native-types.d.ts +719 -0
- package/dist/lib/native-types.js +2 -0
- package/dist/lib/native-types.js.map +1 -0
- package/dist/lib/option.d.ts +589 -0
- package/dist/lib/option.js +853 -0
- package/dist/lib/option.js.map +1 -0
- package/dist/lib/output-format.d.ts +179 -0
- package/dist/lib/output-format.js +205 -0
- package/dist/lib/output-format.js.map +1 -0
- package/dist/lib/packet.d.ts +487 -0
- package/dist/lib/packet.js +558 -0
- package/dist/lib/packet.js.map +1 -0
- package/dist/lib/rational.d.ts +210 -0
- package/dist/lib/rational.js +233 -0
- package/dist/lib/rational.js.map +1 -0
- package/dist/lib/software-resample-context.d.ts +572 -0
- package/dist/lib/software-resample-context.js +610 -0
- package/dist/lib/software-resample-context.js.map +1 -0
- package/dist/lib/software-scale-context.d.ts +290 -0
- package/dist/lib/software-scale-context.js +308 -0
- package/dist/lib/software-scale-context.js.map +1 -0
- package/dist/lib/stream.d.ts +322 -0
- package/dist/lib/stream.js +408 -0
- package/dist/lib/stream.js.map +1 -0
- package/dist/lib/types.d.ts +59 -0
- package/dist/lib/types.js +8 -0
- package/dist/lib/types.js.map +1 -0
- package/dist/lib/utilities.d.ts +346 -0
- package/dist/lib/utilities.js +424 -0
- package/dist/lib/utilities.js.map +1 -0
- package/install/check.js +113 -0
- package/install/ffmpeg.js +163 -0
- package/package.json +107 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../../src/api/pipeline.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,440 @@
|
|
|
1
|
+
import type { AVPixelFormat, AVSampleFormat, ChannelLayout, IRational, SWSFlag } from '../lib/index.js';
|
|
2
|
+
import type { HardwareContext } from './hardware.js';
|
|
3
|
+
/**
|
|
4
|
+
* Video stream information.
|
|
5
|
+
*
|
|
6
|
+
* Contains all necessary parameters to describe a video stream.
|
|
7
|
+
* Used for encoder and filter initialization.
|
|
8
|
+
*
|
|
9
|
+
* @interface VideoInfo
|
|
10
|
+
*/
|
|
11
|
+
export interface VideoInfo {
|
|
12
|
+
/** Discriminator for TypeScript type narrowing */
|
|
13
|
+
type: 'video';
|
|
14
|
+
/** Video width in pixels */
|
|
15
|
+
width: number;
|
|
16
|
+
/** Video height in pixels */
|
|
17
|
+
height: number;
|
|
18
|
+
/** Pixel format */
|
|
19
|
+
pixelFormat: AVPixelFormat;
|
|
20
|
+
/** Time base (required for timing) */
|
|
21
|
+
timeBase: IRational;
|
|
22
|
+
/** Frame rate (optional, can be derived from timeBase) */
|
|
23
|
+
frameRate?: IRational;
|
|
24
|
+
/** Sample aspect ratio (optional, defaults to 1:1) */
|
|
25
|
+
sampleAspectRatio?: IRational;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Audio stream information.
|
|
29
|
+
*
|
|
30
|
+
* Contains all necessary parameters to describe an audio stream.
|
|
31
|
+
* Used for encoder and filter initialization.
|
|
32
|
+
*
|
|
33
|
+
* @interface AudioInfo
|
|
34
|
+
*/
|
|
35
|
+
export interface AudioInfo {
|
|
36
|
+
/** Discriminator for TypeScript type narrowing */
|
|
37
|
+
type: 'audio';
|
|
38
|
+
/** Sample rate in Hz */
|
|
39
|
+
sampleRate: number;
|
|
40
|
+
/** Sample format */
|
|
41
|
+
sampleFormat: AVSampleFormat;
|
|
42
|
+
/** Channel layout configuration */
|
|
43
|
+
channelLayout: ChannelLayout;
|
|
44
|
+
/** Time base (required for timing) */
|
|
45
|
+
timeBase: IRational;
|
|
46
|
+
/**
|
|
47
|
+
* Number of samples per frame.
|
|
48
|
+
*
|
|
49
|
+
* Some encoders require specific frame sizes:
|
|
50
|
+
* - AAC: typically 1024 samples
|
|
51
|
+
* - MP3: typically 1152 samples
|
|
52
|
+
* - Opus: flexible, but often 960 or 2880
|
|
53
|
+
*
|
|
54
|
+
* If not specified, the encoder's default will be used.
|
|
55
|
+
*
|
|
56
|
+
* @example
|
|
57
|
+
* ```typescript
|
|
58
|
+
* const encoder = await Encoder.create('aac', {
|
|
59
|
+
* type: 'audio',
|
|
60
|
+
* sampleRate: 48000,
|
|
61
|
+
* sampleFormat: AV_SAMPLE_FMT_FLTP,
|
|
62
|
+
* channelLayout: AV_CHANNEL_LAYOUT_STEREO,
|
|
63
|
+
* timeBase: { num: 1, den: 48000 },
|
|
64
|
+
* frameSize: 1024
|
|
65
|
+
* });
|
|
66
|
+
* ```
|
|
67
|
+
*/
|
|
68
|
+
frameSize?: number;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Union type for stream information.
|
|
72
|
+
* Can be either video or audio stream info.
|
|
73
|
+
*/
|
|
74
|
+
export type StreamInfo = VideoInfo | AudioInfo;
|
|
75
|
+
/**
|
|
76
|
+
* Raw video data configuration.
|
|
77
|
+
*
|
|
78
|
+
* Specifies parameters for opening raw video files like YUV.
|
|
79
|
+
*
|
|
80
|
+
* @interface VideoRawData
|
|
81
|
+
*
|
|
82
|
+
* @example
|
|
83
|
+
* ```typescript
|
|
84
|
+
* const rawVideo: VideoRawData = {
|
|
85
|
+
* type: 'video',
|
|
86
|
+
* data: 'testdata/input.yuv',
|
|
87
|
+
* width: 1280,
|
|
88
|
+
* height: 720,
|
|
89
|
+
* pixelFormat: 'yuv420p',
|
|
90
|
+
* frameRate: 30
|
|
91
|
+
* };
|
|
92
|
+
* const input = await MediaInput.open(rawVideo);
|
|
93
|
+
* ```
|
|
94
|
+
*/
|
|
95
|
+
export interface VideoRawData {
|
|
96
|
+
/**
|
|
97
|
+
* Type discriminator for TypeScript.
|
|
98
|
+
*/
|
|
99
|
+
type: 'video';
|
|
100
|
+
/**
|
|
101
|
+
* Raw audio input source (file path, Buffer, or stream).
|
|
102
|
+
*/
|
|
103
|
+
input: string | Buffer;
|
|
104
|
+
/**
|
|
105
|
+
* Video dimensions.
|
|
106
|
+
*/
|
|
107
|
+
width: number;
|
|
108
|
+
height: number;
|
|
109
|
+
/**
|
|
110
|
+
* Pixel format (e.g., AV_PIX_FMT_YUV420P, AV_PIX_FMT_NV12, AV_PIX_FMT_RGB24).
|
|
111
|
+
*/
|
|
112
|
+
pixelFormat: AVPixelFormat;
|
|
113
|
+
/**
|
|
114
|
+
* Frame rate as a rational
|
|
115
|
+
*/
|
|
116
|
+
frameRate: IRational;
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Raw audio data configuration.
|
|
120
|
+
*
|
|
121
|
+
* Specifies parameters for opening raw audio files like PCM.
|
|
122
|
+
*
|
|
123
|
+
* @interface AudioRawData
|
|
124
|
+
*
|
|
125
|
+
* @example
|
|
126
|
+
* ```typescript
|
|
127
|
+
* const rawAudio: AudioRawData = {
|
|
128
|
+
* type: 'audio',
|
|
129
|
+
* data: 'testdata/audio.pcm',
|
|
130
|
+
* sampleRate: 48000,
|
|
131
|
+
* channels: 2,
|
|
132
|
+
* sampleFormat: 's16le'
|
|
133
|
+
* };
|
|
134
|
+
* const input = await MediaInput.open(rawAudio);
|
|
135
|
+
* ```
|
|
136
|
+
*/
|
|
137
|
+
export interface AudioRawData {
|
|
138
|
+
/**
|
|
139
|
+
* Type discriminator for TypeScript.
|
|
140
|
+
*/
|
|
141
|
+
type: 'audio';
|
|
142
|
+
/**
|
|
143
|
+
* Raw audio input source (file path, Buffer, or stream).
|
|
144
|
+
*/
|
|
145
|
+
input: string | Buffer;
|
|
146
|
+
/**
|
|
147
|
+
* Sample rate in Hz (e.g., 44100, 48000).
|
|
148
|
+
*/
|
|
149
|
+
sampleRate: number;
|
|
150
|
+
/**
|
|
151
|
+
* Number of audio channels.
|
|
152
|
+
*/
|
|
153
|
+
channels: number;
|
|
154
|
+
/**
|
|
155
|
+
* Sample format (e.g., AV_SAMPLE_FMT_S16, AV_SAMPLE_FMT_FLT, AV_SAMPLE_FMT_S32).
|
|
156
|
+
*/
|
|
157
|
+
sampleFormat: AVSampleFormat;
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* Raw data configuration for MediaInput.
|
|
161
|
+
*
|
|
162
|
+
* @type RawData
|
|
163
|
+
*/
|
|
164
|
+
export type RawData = VideoRawData | AudioRawData;
|
|
165
|
+
/**
|
|
166
|
+
* Options for MediaInput opening.
|
|
167
|
+
*
|
|
168
|
+
* Configures how media files are opened and packets are read.
|
|
169
|
+
*
|
|
170
|
+
* @interface MediaInputOptions
|
|
171
|
+
*/
|
|
172
|
+
export interface MediaInputOptions {
|
|
173
|
+
/**
|
|
174
|
+
* Buffer size for reading/writing operations.
|
|
175
|
+
*
|
|
176
|
+
* This option allows you to specify the buffer size used for I/O operations.
|
|
177
|
+
* A larger buffer size may improve performance by reducing the number of I/O calls,
|
|
178
|
+
* while a smaller buffer size may reduce memory usage.
|
|
179
|
+
*
|
|
180
|
+
* @default 8192
|
|
181
|
+
*
|
|
182
|
+
* @example
|
|
183
|
+
* ```typescript
|
|
184
|
+
* const input = await MediaInput.open('video.m1v', {
|
|
185
|
+
* bufferSize: 4096 // Use a smaller buffer size
|
|
186
|
+
* });
|
|
187
|
+
* ```
|
|
188
|
+
*/
|
|
189
|
+
bufferSize?: number;
|
|
190
|
+
/**
|
|
191
|
+
* Force specific input format.
|
|
192
|
+
*
|
|
193
|
+
* Use this to specify the input format explicitly instead of auto-detection.
|
|
194
|
+
* Useful for raw formats like 'rawvideo', 'rawaudio', etc.
|
|
195
|
+
*
|
|
196
|
+
* @example
|
|
197
|
+
* ```typescript
|
|
198
|
+
* // Open raw YUV video
|
|
199
|
+
* const input = await MediaInput.open('input.yuv', {
|
|
200
|
+
* format: 'rawvideo',
|
|
201
|
+
* options: {
|
|
202
|
+
* video_size: '1920x1080',
|
|
203
|
+
* pixel_format: 'yuv420p',
|
|
204
|
+
* framerate: '30'
|
|
205
|
+
* }
|
|
206
|
+
* });
|
|
207
|
+
* ```
|
|
208
|
+
*/
|
|
209
|
+
format?: string;
|
|
210
|
+
/**
|
|
211
|
+
* FFmpeg format options passed directly to the input.
|
|
212
|
+
* These are equivalent to options specified before -i in ffmpeg CLI.
|
|
213
|
+
*
|
|
214
|
+
* @example
|
|
215
|
+
* ```typescript
|
|
216
|
+
* // For RTSP with low latency:
|
|
217
|
+
* const input = await MediaInput.open('rtsp://...', {
|
|
218
|
+
* options: {
|
|
219
|
+
* 'rtsp_transport': 'tcp',
|
|
220
|
+
* 'fflags': '+discardcorrupt+nobuffer',
|
|
221
|
+
* 'flags': 'low_delay',
|
|
222
|
+
* 'analyzeduration': '0',
|
|
223
|
+
* 'probesize': '500000'
|
|
224
|
+
* }
|
|
225
|
+
* });
|
|
226
|
+
*
|
|
227
|
+
* // For seeking in MP4:
|
|
228
|
+
* const input = await MediaInput.open('video.mp4', {
|
|
229
|
+
* options: {
|
|
230
|
+
* 'ss': '10', // Start at 10 seconds
|
|
231
|
+
* }
|
|
232
|
+
* });
|
|
233
|
+
* ```
|
|
234
|
+
*/
|
|
235
|
+
options?: Record<string, string | number>;
|
|
236
|
+
}
|
|
237
|
+
/**
|
|
238
|
+
* Options for decoder creation.
|
|
239
|
+
*
|
|
240
|
+
* Configuration parameters for initializing a media decoder.
|
|
241
|
+
* Supports hardware acceleration and threading configuration.
|
|
242
|
+
*
|
|
243
|
+
* @interface DecoderOptions
|
|
244
|
+
*/
|
|
245
|
+
export interface DecoderOptions {
|
|
246
|
+
/** Number of threads to use (0 for auto) */
|
|
247
|
+
threads?: number;
|
|
248
|
+
/** Additional codec-specific options (passed to AVOptions) */
|
|
249
|
+
options?: Record<string, string | number>;
|
|
250
|
+
/** Hardware acceleration: Pass a HardwareContext instance (user is responsible for disposal) */
|
|
251
|
+
hardware?: HardwareContext | null;
|
|
252
|
+
}
|
|
253
|
+
/**
|
|
254
|
+
* Options for encoder creation.
|
|
255
|
+
*
|
|
256
|
+
* Encoder-specific configuration options.
|
|
257
|
+
* Stream parameters (width, height, format, etc.) are taken from the provided stream.
|
|
258
|
+
*
|
|
259
|
+
* @interface EncoderOptions
|
|
260
|
+
*/
|
|
261
|
+
export interface EncoderOptions {
|
|
262
|
+
/** Target bitrate (number, bigint, or string like '5M') */
|
|
263
|
+
bitrate?: number | bigint | string;
|
|
264
|
+
/** Group of Pictures size */
|
|
265
|
+
gopSize?: number;
|
|
266
|
+
/** Max B-frames between non-B-frames */
|
|
267
|
+
maxBFrames?: number;
|
|
268
|
+
/** Number of threads (0 for auto) */
|
|
269
|
+
threads?: number;
|
|
270
|
+
/**
|
|
271
|
+
* Override output timebase (rational {num, den})
|
|
272
|
+
* If not set, uses the stream's timebase
|
|
273
|
+
*/
|
|
274
|
+
timeBase?: IRational;
|
|
275
|
+
/** Additional codec-specific options (passed to AVOptions) */
|
|
276
|
+
options?: Record<string, string | number>;
|
|
277
|
+
/** Hardware acceleration: Pass a HardwareContext instance (user is responsible for disposal) */
|
|
278
|
+
hardware?: HardwareContext | null;
|
|
279
|
+
}
|
|
280
|
+
/**
|
|
281
|
+
* Options for MediaOutput creation.
|
|
282
|
+
*
|
|
283
|
+
* Configures output container format.
|
|
284
|
+
*
|
|
285
|
+
* @interface MediaOutputOptions
|
|
286
|
+
*/
|
|
287
|
+
export interface MediaOutputOptions {
|
|
288
|
+
/**
|
|
289
|
+
* Preferred output format.
|
|
290
|
+
*
|
|
291
|
+
* If not specified, format is guessed from file extension.
|
|
292
|
+
* Use this to override automatic format detection.
|
|
293
|
+
*
|
|
294
|
+
* @example
|
|
295
|
+
* ```typescript
|
|
296
|
+
* const output = await MediaOutput.open('output.bin', {
|
|
297
|
+
* format: 'mp4' // Force MP4 format despite .bin extension
|
|
298
|
+
* });
|
|
299
|
+
* ```
|
|
300
|
+
*/
|
|
301
|
+
format?: string;
|
|
302
|
+
/**
|
|
303
|
+
* Buffer size for I/O operations.
|
|
304
|
+
*
|
|
305
|
+
* This option controls the size of the internal buffer used for
|
|
306
|
+
* reading and writing data. A larger buffer may improve performance
|
|
307
|
+
* by reducing the number of I/O operations, but will also increase
|
|
308
|
+
* memory usage.
|
|
309
|
+
*
|
|
310
|
+
* @default 4096
|
|
311
|
+
*
|
|
312
|
+
* @example
|
|
313
|
+
* ```typescript
|
|
314
|
+
* const output = await MediaOutput.open('output.mp4', {
|
|
315
|
+
* bufferSize: 8192 // Use an 8KB buffer
|
|
316
|
+
* });
|
|
317
|
+
* ```
|
|
318
|
+
*/
|
|
319
|
+
bufferSize?: number;
|
|
320
|
+
}
|
|
321
|
+
/**
|
|
322
|
+
* Options for creating a filter instance.
|
|
323
|
+
*/
|
|
324
|
+
export interface FilterOptions {
|
|
325
|
+
/**
|
|
326
|
+
* Number of threads for parallel processing.
|
|
327
|
+
* 0 = auto-detect based on CPU cores.
|
|
328
|
+
*/
|
|
329
|
+
threads?: number;
|
|
330
|
+
/**
|
|
331
|
+
* Software scaler options (for video filters).
|
|
332
|
+
* Example: "flags=bicubic"
|
|
333
|
+
*/
|
|
334
|
+
scaleSwsOpts?: string;
|
|
335
|
+
/** Hardware acceleration: Pass a HardwareContext instance (user is responsible for disposal) */
|
|
336
|
+
hardware?: HardwareContext | null;
|
|
337
|
+
}
|
|
338
|
+
/**
|
|
339
|
+
* Hardware acceleration configuration options.
|
|
340
|
+
*
|
|
341
|
+
* Parameters for configuring hardware-accelerated encoding/decoding.
|
|
342
|
+
* Supports device selection and initialization options.
|
|
343
|
+
*
|
|
344
|
+
* @interface HardwareOptions
|
|
345
|
+
*/
|
|
346
|
+
export interface HardwareOptions {
|
|
347
|
+
/**
|
|
348
|
+
* Preferred device type (e.g., 'cuda', 'vaapi', 'videotoolbox').
|
|
349
|
+
* If not specified, auto-detection will be used.
|
|
350
|
+
*/
|
|
351
|
+
device?: string;
|
|
352
|
+
/**
|
|
353
|
+
* Device name or index (e.g., '0' for first GPU).
|
|
354
|
+
*/
|
|
355
|
+
deviceName?: string;
|
|
356
|
+
/**
|
|
357
|
+
* Device initialization options.
|
|
358
|
+
*/
|
|
359
|
+
options?: Record<string, string>;
|
|
360
|
+
}
|
|
361
|
+
/**
|
|
362
|
+
* Custom I/O callbacks for implementing custom input sources.
|
|
363
|
+
*
|
|
364
|
+
* Defines callback functions for custom read operations with FFmpeg.
|
|
365
|
+
* Used by IOStream.create() for custom input protocols.
|
|
366
|
+
*
|
|
367
|
+
* @interface IOInputCallbacks
|
|
368
|
+
*/
|
|
369
|
+
export interface IOInputCallbacks {
|
|
370
|
+
/**
|
|
371
|
+
* Read callback - called when FFmpeg needs to read data.
|
|
372
|
+
* @param size - Number of bytes to read
|
|
373
|
+
* @returns Buffer with data, null for EOF, or negative error code
|
|
374
|
+
*/
|
|
375
|
+
read: (size: number) => Buffer | null | number;
|
|
376
|
+
/**
|
|
377
|
+
* Seek callback - called when FFmpeg needs to seek in the stream.
|
|
378
|
+
* @param offset - Offset to seek to
|
|
379
|
+
* @param whence - Seek origin (AVSEEK_SET, AVSEEK_CUR, AVSEEK_END, or AVSEEK_SIZE)
|
|
380
|
+
* @returns New position or negative error code
|
|
381
|
+
*/
|
|
382
|
+
seek?: (offset: bigint, whence: number) => bigint | number;
|
|
383
|
+
}
|
|
384
|
+
/**
|
|
385
|
+
* Custom I/O callbacks for implementing custom output targets.
|
|
386
|
+
*
|
|
387
|
+
* Defines callback functions for custom write operations with FFmpeg.
|
|
388
|
+
* Used internally by MediaOutput for custom output protocols.
|
|
389
|
+
*
|
|
390
|
+
* @interface IOOutputCallbacks
|
|
391
|
+
* @internal
|
|
392
|
+
*/
|
|
393
|
+
export interface IOOutputCallbacks {
|
|
394
|
+
/**
|
|
395
|
+
* Write callback - called when FFmpeg needs to write data.
|
|
396
|
+
* @param buffer - Buffer containing data to write
|
|
397
|
+
* @returns Number of bytes written or void
|
|
398
|
+
*/
|
|
399
|
+
write: (buffer: Buffer) => number | void;
|
|
400
|
+
/**
|
|
401
|
+
* Seek callback - called when FFmpeg needs to seek in the output.
|
|
402
|
+
* @param offset - Offset to seek to
|
|
403
|
+
* @param whence - Seek origin (AVSEEK_SET, AVSEEK_CUR, AVSEEK_END)
|
|
404
|
+
* @returns New position or negative error code
|
|
405
|
+
*/
|
|
406
|
+
seek?: (offset: bigint, whence: number) => bigint | number;
|
|
407
|
+
/**
|
|
408
|
+
* Read callback - some formats may need to read back data.
|
|
409
|
+
* @param size - Number of bytes to read
|
|
410
|
+
* @returns Buffer with data, null for EOF, or negative error code
|
|
411
|
+
*/
|
|
412
|
+
read?: (size: number) => Buffer | null | number;
|
|
413
|
+
}
|
|
414
|
+
/**
|
|
415
|
+
* Options for image conversion and manipulation.
|
|
416
|
+
*
|
|
417
|
+
* Configuration for frame transformation operations.
|
|
418
|
+
* Supports cropping, resizing, and format conversion.
|
|
419
|
+
*
|
|
420
|
+
* @interface ImageOptions
|
|
421
|
+
*/
|
|
422
|
+
export interface ImageOptions {
|
|
423
|
+
/** Crop the image */
|
|
424
|
+
crop?: {
|
|
425
|
+
top: number;
|
|
426
|
+
left: number;
|
|
427
|
+
width: number;
|
|
428
|
+
height: number;
|
|
429
|
+
};
|
|
430
|
+
/** Resize the image */
|
|
431
|
+
resize?: {
|
|
432
|
+
width: number;
|
|
433
|
+
height: number;
|
|
434
|
+
algorithm?: SWSFlag;
|
|
435
|
+
};
|
|
436
|
+
/** Convert pixel format */
|
|
437
|
+
format?: {
|
|
438
|
+
to: AVPixelFormat;
|
|
439
|
+
};
|
|
440
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/api/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Audio Sample Utilities
|
|
3
|
+
*
|
|
4
|
+
* Provides utilities for working with audio sample buffers in FFmpeg.
|
|
5
|
+
* All methods are static and map directly to FFmpeg's libavutil functions.
|
|
6
|
+
*
|
|
7
|
+
* @module lib/audio-sample-utils
|
|
8
|
+
*/
|
|
9
|
+
import type { AVSampleFormat } from '../../lib/constants.js';
|
|
10
|
+
/**
|
|
11
|
+
* Audio sample allocation result.
|
|
12
|
+
*/
|
|
13
|
+
export interface AudioSampleAllocation {
|
|
14
|
+
/** Allocated data buffers (one per channel for planar formats) */
|
|
15
|
+
data: Buffer[];
|
|
16
|
+
/** Line size (bytes per channel) */
|
|
17
|
+
linesize: number;
|
|
18
|
+
/** Total allocated size */
|
|
19
|
+
size: number;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Audio sample buffer size result.
|
|
23
|
+
*/
|
|
24
|
+
export interface AudioSampleBufferSize {
|
|
25
|
+
/** Total size in bytes */
|
|
26
|
+
size: number;
|
|
27
|
+
/** Line size (bytes per channel) */
|
|
28
|
+
linesize: number;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Audio sample buffer utilities.
|
|
32
|
+
*
|
|
33
|
+
* Provides static methods for allocating and managing audio sample buffers.
|
|
34
|
+
* These utilities handle the memory layout for various sample formats,
|
|
35
|
+
* including planar formats where each channel has its own buffer.
|
|
36
|
+
*
|
|
37
|
+
* @example
|
|
38
|
+
* ```typescript
|
|
39
|
+
* import { AudioSampleUtils } from 'node-av';
|
|
40
|
+
* import { AV_SAMPLE_FMT_FLTP, AV_SAMPLE_FMT_S16 } from 'node-av/constants';
|
|
41
|
+
*
|
|
42
|
+
* // Allocate audio buffers for stereo float planar
|
|
43
|
+
* const audio = AudioSampleUtils.alloc(2, 1024, AV_SAMPLE_FMT_FLTP, 0);
|
|
44
|
+
* console.log(`Allocated ${audio.size} bytes`);
|
|
45
|
+
* console.log(`${audio.data.length} buffers (one per channel)`);
|
|
46
|
+
*
|
|
47
|
+
* // Get buffer size for packed format
|
|
48
|
+
* const size = AudioSampleUtils.getBufferSize(2, 1024, AV_SAMPLE_FMT_S16, 0);
|
|
49
|
+
* console.log(`S16 stereo needs ${size.size} bytes`);
|
|
50
|
+
* ```
|
|
51
|
+
*/
|
|
52
|
+
export declare class AudioSampleUtils {
|
|
53
|
+
private constructor();
|
|
54
|
+
/**
|
|
55
|
+
* Allocate audio sample buffers.
|
|
56
|
+
*
|
|
57
|
+
* Allocates buffers for audio samples. For planar formats, allocates
|
|
58
|
+
* separate buffers for each channel. For packed formats, allocates
|
|
59
|
+
* a single interleaved buffer.
|
|
60
|
+
* Direct mapping to av_samples_alloc()
|
|
61
|
+
*
|
|
62
|
+
* @param nbChannels - Number of audio channels
|
|
63
|
+
* @param nbSamples - Number of samples per channel
|
|
64
|
+
* @param sampleFmt - Audio sample format
|
|
65
|
+
* @param align - Buffer alignment (0 for default)
|
|
66
|
+
* @returns Allocation result with buffers and size information
|
|
67
|
+
* @throws {FFmpegError} On allocation failure
|
|
68
|
+
*
|
|
69
|
+
* @example
|
|
70
|
+
* ```typescript
|
|
71
|
+
* import { AudioSampleUtils } from 'node-av';
|
|
72
|
+
* import { AV_SAMPLE_FMT_FLTP, AV_SAMPLE_FMT_S16 } from 'node-av/constants';
|
|
73
|
+
*
|
|
74
|
+
* // Allocate for planar format (separate buffer per channel)
|
|
75
|
+
* const planar = AudioSampleUtils.alloc(2, 1024, AV_SAMPLE_FMT_FLTP, 0);
|
|
76
|
+
* console.log(`Planar: ${planar.data.length} buffers`); // 2 buffers
|
|
77
|
+
*
|
|
78
|
+
* // Allocate for packed format (single interleaved buffer)
|
|
79
|
+
* const packed = AudioSampleUtils.alloc(2, 1024, AV_SAMPLE_FMT_S16, 0);
|
|
80
|
+
* console.log(`Packed: ${packed.data.length} buffer`); // 1 buffer
|
|
81
|
+
* ```
|
|
82
|
+
*/
|
|
83
|
+
static alloc(nbChannels: number, nbSamples: number, sampleFmt: AVSampleFormat, align: number): AudioSampleAllocation;
|
|
84
|
+
/**
|
|
85
|
+
* Get required buffer size for audio samples.
|
|
86
|
+
*
|
|
87
|
+
* Calculates the buffer size needed to store audio samples with the
|
|
88
|
+
* given parameters. Does not allocate any memory.
|
|
89
|
+
* Direct mapping to av_samples_get_buffer_size()
|
|
90
|
+
*
|
|
91
|
+
* @param nbChannels - Number of audio channels
|
|
92
|
+
* @param nbSamples - Number of samples per channel
|
|
93
|
+
* @param sampleFmt - Audio sample format
|
|
94
|
+
* @param align - Buffer alignment (0 for default)
|
|
95
|
+
* @returns Buffer size and line size information
|
|
96
|
+
* @throws {FFmpegError} On invalid parameters
|
|
97
|
+
*
|
|
98
|
+
* @example
|
|
99
|
+
* ```typescript
|
|
100
|
+
* import { AudioSampleUtils } from 'node-av';
|
|
101
|
+
* import { AV_SAMPLE_FMT_FLT, AV_SAMPLE_FMT_S16P } from 'node-av/constants';
|
|
102
|
+
*
|
|
103
|
+
* // Calculate size for packed float (32-bit) stereo
|
|
104
|
+
* const floatSize = AudioSampleUtils.getBufferSize(2, 1024, AV_SAMPLE_FMT_FLT, 0);
|
|
105
|
+
* console.log(`Float stereo: ${floatSize.size} bytes total`);
|
|
106
|
+
* console.log(`Line size: ${floatSize.linesize} bytes`);
|
|
107
|
+
*
|
|
108
|
+
* // Calculate size for planar 16-bit stereo
|
|
109
|
+
* const planarSize = AudioSampleUtils.getBufferSize(2, 1024, AV_SAMPLE_FMT_S16P, 0);
|
|
110
|
+
* console.log(`S16 planar: ${planarSize.size} bytes total`);
|
|
111
|
+
* console.log(`Per channel: ${planarSize.linesize} bytes`);
|
|
112
|
+
* ```
|
|
113
|
+
*/
|
|
114
|
+
static getBufferSize(nbChannels: number, nbSamples: number, sampleFmt: AVSampleFormat, align: number): AudioSampleBufferSize;
|
|
115
|
+
}
|