node-av 4.0.0 → 5.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.
Files changed (109) hide show
  1. package/README.md +23 -0
  2. package/binding.gyp +19 -11
  3. package/dist/api/bitstream-filter.d.ts +13 -12
  4. package/dist/api/bitstream-filter.js +33 -29
  5. package/dist/api/bitstream-filter.js.map +1 -1
  6. package/dist/api/decoder.d.ts +211 -96
  7. package/dist/api/decoder.js +396 -375
  8. package/dist/api/decoder.js.map +1 -1
  9. package/dist/api/demuxer.d.ts +10 -10
  10. package/dist/api/demuxer.js +7 -10
  11. package/dist/api/demuxer.js.map +1 -1
  12. package/dist/api/encoder.d.ts +155 -122
  13. package/dist/api/encoder.js +368 -541
  14. package/dist/api/encoder.js.map +1 -1
  15. package/dist/api/filter-complex.d.ts +769 -0
  16. package/dist/api/filter-complex.js +1596 -0
  17. package/dist/api/filter-complex.js.map +1 -0
  18. package/dist/api/filter-presets.d.ts +68 -0
  19. package/dist/api/filter-presets.js +96 -0
  20. package/dist/api/filter-presets.js.map +1 -1
  21. package/dist/api/filter.d.ts +183 -113
  22. package/dist/api/filter.js +347 -365
  23. package/dist/api/filter.js.map +1 -1
  24. package/dist/api/fmp4-stream.d.ts +18 -2
  25. package/dist/api/fmp4-stream.js +45 -4
  26. package/dist/api/fmp4-stream.js.map +1 -1
  27. package/dist/api/hardware.d.ts +47 -0
  28. package/dist/api/hardware.js +45 -0
  29. package/dist/api/hardware.js.map +1 -1
  30. package/dist/api/index.d.ts +2 -0
  31. package/dist/api/index.js +3 -0
  32. package/dist/api/index.js.map +1 -1
  33. package/dist/api/io-stream.d.ts +3 -3
  34. package/dist/api/io-stream.js.map +1 -1
  35. package/dist/api/muxer.d.ts +10 -10
  36. package/dist/api/muxer.js +6 -6
  37. package/dist/api/muxer.js.map +1 -1
  38. package/dist/api/pipeline.d.ts +2 -2
  39. package/dist/api/pipeline.js +22 -22
  40. package/dist/api/pipeline.js.map +1 -1
  41. package/dist/api/rtp-stream.d.ts +5 -2
  42. package/dist/api/rtp-stream.js +33 -4
  43. package/dist/api/rtp-stream.js.map +1 -1
  44. package/dist/api/types.d.ts +63 -7
  45. package/dist/api/utilities/audio-sample.d.ts +10 -0
  46. package/dist/api/utilities/audio-sample.js +10 -0
  47. package/dist/api/utilities/audio-sample.js.map +1 -1
  48. package/dist/api/utilities/channel-layout.d.ts +1 -0
  49. package/dist/api/utilities/channel-layout.js +1 -0
  50. package/dist/api/utilities/channel-layout.js.map +1 -1
  51. package/dist/api/utilities/image.d.ts +38 -0
  52. package/dist/api/utilities/image.js +38 -0
  53. package/dist/api/utilities/image.js.map +1 -1
  54. package/dist/api/utilities/index.d.ts +1 -0
  55. package/dist/api/utilities/index.js +2 -0
  56. package/dist/api/utilities/index.js.map +1 -1
  57. package/dist/api/utilities/media-type.d.ts +1 -0
  58. package/dist/api/utilities/media-type.js +1 -0
  59. package/dist/api/utilities/media-type.js.map +1 -1
  60. package/dist/api/utilities/pixel-format.d.ts +3 -0
  61. package/dist/api/utilities/pixel-format.js +3 -0
  62. package/dist/api/utilities/pixel-format.js.map +1 -1
  63. package/dist/api/utilities/sample-format.d.ts +5 -0
  64. package/dist/api/utilities/sample-format.js +5 -0
  65. package/dist/api/utilities/sample-format.js.map +1 -1
  66. package/dist/api/utilities/scheduler.d.ts +21 -52
  67. package/dist/api/utilities/scheduler.js +20 -58
  68. package/dist/api/utilities/scheduler.js.map +1 -1
  69. package/dist/api/utilities/streaming.d.ts +32 -1
  70. package/dist/api/utilities/streaming.js +32 -1
  71. package/dist/api/utilities/streaming.js.map +1 -1
  72. package/dist/api/utilities/timestamp.d.ts +14 -0
  73. package/dist/api/utilities/timestamp.js +14 -0
  74. package/dist/api/utilities/timestamp.js.map +1 -1
  75. package/dist/api/utilities/whisper-model.d.ts +310 -0
  76. package/dist/api/utilities/whisper-model.js +528 -0
  77. package/dist/api/utilities/whisper-model.js.map +1 -0
  78. package/dist/api/whisper.d.ts +324 -0
  79. package/dist/api/whisper.js +362 -0
  80. package/dist/api/whisper.js.map +1 -0
  81. package/dist/constants/constants.d.ts +3 -1
  82. package/dist/constants/constants.js +1 -0
  83. package/dist/constants/constants.js.map +1 -1
  84. package/dist/ffmpeg/index.d.ts +3 -3
  85. package/dist/ffmpeg/index.js +3 -3
  86. package/dist/ffmpeg/utils.d.ts +27 -0
  87. package/dist/ffmpeg/utils.js +28 -16
  88. package/dist/ffmpeg/utils.js.map +1 -1
  89. package/dist/lib/binding.d.ts +4 -4
  90. package/dist/lib/binding.js.map +1 -1
  91. package/dist/lib/codec-parameters.d.ts +47 -1
  92. package/dist/lib/codec-parameters.js +55 -0
  93. package/dist/lib/codec-parameters.js.map +1 -1
  94. package/dist/lib/fifo.d.ts +416 -0
  95. package/dist/lib/fifo.js +453 -0
  96. package/dist/lib/fifo.js.map +1 -0
  97. package/dist/lib/frame.d.ts +96 -1
  98. package/dist/lib/frame.js +139 -1
  99. package/dist/lib/frame.js.map +1 -1
  100. package/dist/lib/index.d.ts +1 -0
  101. package/dist/lib/index.js +2 -0
  102. package/dist/lib/index.js.map +1 -1
  103. package/dist/lib/native-types.d.ts +29 -2
  104. package/dist/lib/rational.d.ts +18 -0
  105. package/dist/lib/rational.js +19 -0
  106. package/dist/lib/rational.js.map +1 -1
  107. package/dist/lib/types.d.ts +23 -1
  108. package/install/check.js +2 -2
  109. package/package.json +31 -21
package/dist/lib/frame.js CHANGED
@@ -1,7 +1,9 @@
1
- import { AVMEDIA_TYPE_AUDIO, AVMEDIA_TYPE_UNKNOWN, AVMEDIA_TYPE_VIDEO } from '../constants/constants.js';
1
+ import { AV_NOPTS_VALUE, AV_TIME_BASE_Q, AVMEDIA_TYPE_AUDIO, AVMEDIA_TYPE_UNKNOWN, AVMEDIA_TYPE_VIDEO } from '../constants/constants.js';
2
2
  import { bindings } from './binding.js';
3
+ import { FFmpegError } from './error.js';
3
4
  import { HardwareFramesContext } from './hardware-frames-context.js';
4
5
  import { Rational } from './rational.js';
6
+ import { Dictionary } from './dictionary.js';
5
7
  /**
6
8
  * Container for uncompressed audio/video data.
7
9
  *
@@ -50,6 +52,103 @@ export class Frame {
50
52
  constructor() {
51
53
  this.native = new bindings.Frame();
52
54
  }
55
+ /**
56
+ * Create a video frame from a buffer with pixel data.
57
+ *
58
+ * Allocates frame buffers, sets properties, and copies buffer data.
59
+ * Convenience factory method that combines frame allocation and data copy.
60
+ *
61
+ * @param buffer - Buffer containing raw pixel data
62
+ *
63
+ * @param props - Video Frame properties
64
+ *
65
+ * @returns Allocated frame with data from buffer
66
+ *
67
+ * @throws {FFmpegError} If allocation or buffer copy fails
68
+ *
69
+ * @example
70
+ * ```typescript
71
+ * import { Frame, AV_PIX_FMT_RGBA, FFmpegError } from 'node-av';
72
+ *
73
+ * const rawPixels = Buffer.alloc(1920 * 1080 * 4); // RGBA data
74
+ * using frame = Frame.fromVideoBuffer(rawPixels, {
75
+ * width: 1920,
76
+ * height: 1080,
77
+ * format: AV_PIX_FMT_RGBA,
78
+ * timeBase: { num: 1, den: 30 }
79
+ * });
80
+ * ```
81
+ */
82
+ static fromVideoBuffer(buffer, props) {
83
+ const frame = new Frame();
84
+ frame.alloc();
85
+ frame.width = props.width;
86
+ frame.height = props.height;
87
+ frame.format = props.format;
88
+ frame.pts = props.pts ?? AV_NOPTS_VALUE;
89
+ if (props.timeBase) {
90
+ frame.timeBase = new Rational(props.timeBase.num, props.timeBase.den);
91
+ }
92
+ else {
93
+ frame.timeBase = Rational.fromObject(AV_TIME_BASE_Q);
94
+ }
95
+ if (props.sampleAspectRatio) {
96
+ frame.sampleAspectRatio = new Rational(props.sampleAspectRatio.num, props.sampleAspectRatio.den);
97
+ }
98
+ const ret = frame.getBuffer();
99
+ FFmpegError.throwIfError(ret, 'Failed to allocate frame buffers');
100
+ const copyRet = frame.fromBuffer(buffer);
101
+ FFmpegError.throwIfError(copyRet, 'Failed to copy buffer to frame');
102
+ return frame;
103
+ }
104
+ /**
105
+ * Create an audio frame from a buffer with sample data.
106
+ *
107
+ * Allocates frame buffers, sets properties, and copies buffer data.
108
+ * Convenience factory method that combines frame allocation and data copy.
109
+ *
110
+ * @param buffer - Buffer containing raw audio samples
111
+ *
112
+ * @param props - Frame properties
113
+ *
114
+ * @returns Allocated frame with data from buffer
115
+ *
116
+ * @throws {FFmpegError} If allocation or buffer copy fails
117
+ *
118
+ * @example
119
+ * ```typescript
120
+ * import { Frame, AV_SAMPLE_FMT_FLT, AV_CH_LAYOUT_STEREO, FFmpegError } from 'node-av';
121
+ *
122
+ * const samples = Buffer.alloc(960 * 2 * 4); // 960 samples, stereo, float32
123
+ * using frame = Frame.fromAudioBuffer(samples, {
124
+ * nbSamples: 960,
125
+ * format: AV_SAMPLE_FMT_FLT,
126
+ * sampleRate: 48000,
127
+ * channelLayout: AV_CH_LAYOUT_STEREO,
128
+ * timeBase: { num: 1, den: 48000 }
129
+ * });
130
+ * ```
131
+ */
132
+ static fromAudioBuffer(buffer, props) {
133
+ const frame = new Frame();
134
+ frame.alloc();
135
+ frame.nbSamples = props.nbSamples;
136
+ frame.format = props.format;
137
+ frame.sampleRate = props.sampleRate;
138
+ frame.channelLayout = props.channelLayout;
139
+ frame.pts = props.pts ?? AV_NOPTS_VALUE;
140
+ if (props.timeBase) {
141
+ frame.timeBase = new Rational(props.timeBase.num, props.timeBase.den);
142
+ }
143
+ else {
144
+ frame.timeBase = Rational.fromObject(AV_TIME_BASE_Q);
145
+ }
146
+ const ret = frame.getBuffer();
147
+ FFmpegError.throwIfError(ret, 'Failed to allocate frame buffers');
148
+ const copyRet = frame.fromBuffer(buffer);
149
+ FFmpegError.throwIfError(copyRet, 'Failed to copy buffer to frame');
150
+ return frame;
151
+ }
53
152
  /**
54
153
  * Pixel format for video frames or sample format for audio.
55
154
  *
@@ -1122,6 +1221,45 @@ export class Frame {
1122
1221
  removeSideData(type) {
1123
1222
  this.native.removeSideData(type);
1124
1223
  }
1224
+ /**
1225
+ * Get frame metadata dictionary.
1226
+ *
1227
+ * Returns metadata attached to the frame by filters or demuxers.
1228
+ * Metadata is stored as key-value pairs in a Dictionary.
1229
+ * Useful for reading filter-generated metadata (e.g., whisper transcription).
1230
+ *
1231
+ * Direct mapping to AVFrame->metadata.
1232
+ *
1233
+ * @returns Dictionary containing frame metadata
1234
+ *
1235
+ * @example
1236
+ * ```typescript
1237
+ * // Read whisper filter metadata
1238
+ * const metadata = frame.getMetadata();
1239
+ * const text = metadata.get('lavfi.whisper.text');
1240
+ * const duration = metadata.get('lavfi.whisper.duration');
1241
+ *
1242
+ * if (text) {
1243
+ * console.log(`Transcribed: ${text}`);
1244
+ * console.log(`Duration: ${duration}s`);
1245
+ * }
1246
+ * ```
1247
+ *
1248
+ * @example
1249
+ * ```typescript
1250
+ * // Read scene detection metadata
1251
+ * const metadata = frame.getMetadata();
1252
+ * const score = metadata.get('lavfi.scene_score');
1253
+ * if (score) {
1254
+ * console.log(`Scene change score: ${score}`);
1255
+ * }
1256
+ * ```
1257
+ *
1258
+ * @see {@link Dictionary} For metadata dictionary operations
1259
+ */
1260
+ getMetadata() {
1261
+ return Dictionary.fromNative(this.native.getMetadata());
1262
+ }
1125
1263
  /**
1126
1264
  * Apply cropping to the frame.
1127
1265
  *
@@ -1 +1 @@
1
- {"version":3,"file":"frame.js","sourceRoot":"","sources":["../../src/lib/frame.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"frame.js","sourceRoot":"","sources":["../../src/lib/frame.ts"],"names":[],"mappings":"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"}
@@ -14,6 +14,7 @@ export { HardwareFramesContext } from './hardware-frames-context.js';
14
14
  export { SoftwareScaleContext } from './software-scale-context.js';
15
15
  export { SoftwareResampleContext } from './software-resample-context.js';
16
16
  export { AudioFifo } from './audio-fifo.js';
17
+ export { Fifo } from './fifo.js';
17
18
  export { FrameUtils } from './frame-utils.js';
18
19
  export { IOContext } from './io-context.js';
19
20
  export { Dictionary } from './dictionary.js';
package/dist/lib/index.js CHANGED
@@ -26,6 +26,8 @@ export { SoftwareScaleContext } from './software-scale-context.js';
26
26
  export { SoftwareResampleContext } from './software-resample-context.js';
27
27
  // Audio FIFO
28
28
  export { AudioFifo } from './audio-fifo.js';
29
+ // Generic FIFO
30
+ export { Fifo } from './fifo.js';
29
31
  // Frame Utils
30
32
  export { FrameUtils } from './frame-utils.js';
31
33
  // I/O Context
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/lib/index.ts"],"names":[],"mappings":"AAEA,iBAAiB;AACjB,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,gBAAgB;AAChB,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,mBAAmB;AACnB,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,QAAQ;AACR,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,eAAe;AACf,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,SAAS;AACT,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,QAAQ;AACR,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,SAAS;AACT,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,sBAAsB;AACtB,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,2BAA2B;AAC3B,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAErE,iBAAiB;AACjB,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAEnE,oBAAoB;AACpB,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AAEzE,aAAa;AACb,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,cAAc;AACd,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,cAAc;AACd,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,aAAa;AACb,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,SAAS;AACT,OAAO,EAAE,MAAM,EAAE,UAAU,EAAqB,MAAM,aAAa,CAAC;AAEpE,aAAa;AACb,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAE3D,yBAAyB;AACzB,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,mCAAmC;AACnC,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,QAAQ;AACR,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,UAAU;AACV,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAE/B,iBAAiB;AACjB,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAErD,YAAY;AACZ,cAAc,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/lib/index.ts"],"names":[],"mappings":"AAEA,iBAAiB;AACjB,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,gBAAgB;AAChB,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,mBAAmB;AACnB,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,QAAQ;AACR,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,eAAe;AACf,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,SAAS;AACT,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,QAAQ;AACR,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,SAAS;AACT,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,sBAAsB;AACtB,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,2BAA2B;AAC3B,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAErE,iBAAiB;AACjB,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAEnE,oBAAoB;AACpB,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AAEzE,aAAa;AACb,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,eAAe;AACf,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,cAAc;AACd,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,cAAc;AACd,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,aAAa;AACb,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,SAAS;AACT,OAAO,EAAE,MAAM,EAAE,UAAU,EAAqB,MAAM,aAAa,CAAC;AAEpE,aAAa;AACb,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAE3D,yBAAyB;AACzB,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,mCAAmC;AACnC,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,QAAQ;AACR,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,UAAU;AACV,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAE/B,iBAAiB;AACjB,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAErD,YAAY;AACZ,cAAc,gBAAgB,CAAC"}
@@ -7,8 +7,7 @@
7
7
  *
8
8
  * @internal
9
9
  */
10
- import type { AVDictFlag, AVFilterCmdFlag, AVFilterConstants, AVFilterFlag, AVFrameSideDataType, AVHWDeviceType, AVHWFrameTransferDirection, AVIOFlag, AVOptionFlag, AVOptionType, AVPacketSideDataType, AVPixelFormat, AVSeekFlag, AVSeekWhence } from '../constants/constants.js';
11
- import type { AVBufferSrcFlag, AVChromaLocation, AVCodecCap, AVCodecFlag, AVCodecFlag2, AVCodecID, AVColorPrimaries, AVColorRange, AVColorSpace, AVColorTransferCharacteristic, AVDiscard, AVDisposition, AVFormatFlag, AVMediaType, AVPacketFlag, AVPictureType, AVProfile, AVSampleFormat, AVStreamEventFlag, SwsFlags } from '../constants/index.js';
10
+ import type { AVBufferSrcFlag, AVChromaLocation, AVCodecCap, AVCodecFlag, AVCodecFlag2, AVCodecID, AVCodecProp, AVColorPrimaries, AVColorRange, AVColorSpace, AVColorTransferCharacteristic, AVDictFlag, AVDiscard, AVDisposition, AVFifoFlag, AVFilterCmdFlag, AVFilterConstants, AVFilterFlag, AVFormatFlag, AVFrameSideDataType, AVHWDeviceType, AVHWFrameTransferDirection, AVIOFlag, AVMediaType, AVOptionFlag, AVOptionType, AVPacketFlag, AVPacketSideDataType, AVPictureType, AVPixelFormat, AVProfile, AVSampleFormat, AVSeekFlag, AVSeekWhence, AVStreamEventFlag, SwsFlags } from '../constants/index.js';
12
11
  import type { ChannelLayout, CodecProfile, FilterPad, ImageOptions, IRational, RTSPStreamInfo } from './types.js';
13
12
  /**
14
13
  * Native AVPacket binding interface
@@ -102,6 +101,7 @@ export interface NativeFrame extends Disposable {
102
101
  getSideData(type: AVFrameSideDataType): Buffer | null;
103
102
  newSideData(type: AVFrameSideDataType, size: number): Buffer;
104
103
  removeSideData(type: AVFrameSideDataType): void;
104
+ getMetadata(): NativeDictionary;
105
105
  applyCropping(flags?: number): number;
106
106
  [Symbol.dispose](): void;
107
107
  }
@@ -240,6 +240,7 @@ export interface NativeCodecParameters extends Disposable {
240
240
  readonly codecTagString: string | null;
241
241
  readonly extradataSize: number;
242
242
  readonly nbCodedSideData: number;
243
+ readonly codecProperties: AVCodecProp;
243
244
  codecType: AVMediaType;
244
245
  codecId: AVCodecID;
245
246
  codecTag: number;
@@ -511,6 +512,32 @@ export interface NativeAudioFifo extends Disposable {
511
512
  reset(): void;
512
513
  realloc(nbSamples: number): number;
513
514
  }
515
+ /**
516
+ * Native AVFifo binding interface
517
+ *
518
+ * Generic FIFO buffer for arbitrary data types.
519
+ * Provides queue functionality for any fixed-size elements.
520
+ *
521
+ * @internal
522
+ */
523
+ export interface NativeFifo extends Disposable {
524
+ readonly __brand: 'NativeFifo';
525
+ readonly size: number;
526
+ readonly canRead: number;
527
+ readonly canWrite: number;
528
+ readonly elemSize: number;
529
+ alloc(nbElems: number, elemSize: number, flags: AVFifoFlag): void;
530
+ free(): void;
531
+ write(buf: Buffer, nbElems: number): Promise<number>;
532
+ writeSync(buf: Buffer, nbElems: number): number;
533
+ read(buf: Buffer, nbElems: number): Promise<number>;
534
+ readSync(buf: Buffer, nbElems: number): number;
535
+ peek(buf: Buffer, nbElems: number, offset: number): Promise<number>;
536
+ peekSync(buf: Buffer, nbElems: number, offset: number): number;
537
+ grow(inc: number): number;
538
+ reset(): void;
539
+ setAutoGrowLimit(maxElems: number): void;
540
+ }
514
541
  /**
515
542
  * Native SwsContext binding interface
516
543
  *
@@ -1,3 +1,4 @@
1
+ import type { IRational } from './types.js';
1
2
  /**
2
3
  * Rational number type for precise fractional representations.
3
4
  *
@@ -62,6 +63,23 @@ export declare class Rational {
62
63
  * ```
63
64
  */
64
65
  constructor(num: number, den: number);
66
+ /**
67
+ * Create a Rational from an IRational object.
68
+ *
69
+ * @param rational - The IRational object with num and den properties
70
+ *
71
+ * @returns A new Rational instance
72
+ *
73
+ * @example
74
+ * ```typescript
75
+ * import { Rational } from 'node-av';
76
+ *
77
+ * const obj = { num: 3, den: 4 };
78
+ * const rational = Rational.fromObject(obj);
79
+ * console.log(rational.toString()); // "3/4"
80
+ * ```
81
+ */
82
+ static fromObject(rational: IRational): Rational;
65
83
  /**
66
84
  * Add two rational numbers.
67
85
  *
@@ -69,6 +69,25 @@ export class Rational {
69
69
  // - { num, 0 } = infinity
70
70
  // We allow it for FFmpeg compatibility, but operations may fail.
71
71
  }
72
+ /**
73
+ * Create a Rational from an IRational object.
74
+ *
75
+ * @param rational - The IRational object with num and den properties
76
+ *
77
+ * @returns A new Rational instance
78
+ *
79
+ * @example
80
+ * ```typescript
81
+ * import { Rational } from 'node-av';
82
+ *
83
+ * const obj = { num: 3, den: 4 };
84
+ * const rational = Rational.fromObject(obj);
85
+ * console.log(rational.toString()); // "3/4"
86
+ * ```
87
+ */
88
+ static fromObject(rational) {
89
+ return new Rational(rational.num, rational.den);
90
+ }
72
91
  /**
73
92
  * Add two rational numbers.
74
93
  *
@@ -1 +1 @@
1
- {"version":3,"file":"rational.js","sourceRoot":"","sources":["../../src/lib/rational.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,MAAM,OAAO,QAAQ;IA+BD;IACA;IA/BlB;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;IACH,YACkB,GAAW,EACX,GAAW;QADX,QAAG,GAAH,GAAG,CAAQ;QACX,QAAG,GAAH,GAAG,CAAQ;QAE3B,kDAAkD;QAClD,iCAAiC;QACjC,0BAA0B;QAC1B,iEAAiE;IACnE,CAAC;IAED;;;;;;;;;;;;;;;;OAgBG;IACH,GAAG,CAAC,KAAe;QACjB,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;IACzF,CAAC;IAED;;;;;;;;;;;;;;;;OAgBG;IACH,GAAG,CAAC,KAAe;QACjB,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;IACzF,CAAC;IAED;;;;;;;;;;;;;;;;OAgBG;IACH,GAAG,CAAC,KAAe;QACjB,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;IAClE,CAAC;IAED;;;;;;;;;;;;;;;;OAgBG;IACH,GAAG,CAAC,KAAe;QACjB,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;IAClE,CAAC;IAED;;;;;;;;;;;;;;;;;;;OAmBG;IACH,OAAO;QACL,OAAO,IAAI,CAAC,GAAG,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC;IACtC,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACH,GAAG;QACD,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;IAC1C,CAAC;IAED;;;;;;;;;;;;;;;;;;;OAmBG;IACH,QAAQ;QACN,OAAO,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,+DAA+D;IAC7F,CAAC;IAED;;;;;;;;;;;;;;;;;;;OAmBG;IACH,MAAM,CAAC,KAAe;QACpB,OAAO,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,KAAK,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;IACvD,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IACH,QAAQ;QACN,OAAO,GAAG,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;IACnC,CAAC;CACF"}
1
+ {"version":3,"file":"rational.js","sourceRoot":"","sources":["../../src/lib/rational.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,MAAM,OAAO,QAAQ;IA+BD;IACA;IA/BlB;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;IACH,YACkB,GAAW,EACX,GAAW;QADX,QAAG,GAAH,GAAG,CAAQ;QACX,QAAG,GAAH,GAAG,CAAQ;QAE3B,kDAAkD;QAClD,iCAAiC;QACjC,0BAA0B;QAC1B,iEAAiE;IACnE,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IACH,MAAM,CAAC,UAAU,CAAC,QAAmB;QACnC,OAAO,IAAI,QAAQ,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC;IAClD,CAAC;IAED;;;;;;;;;;;;;;;;OAgBG;IACH,GAAG,CAAC,KAAe;QACjB,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;IACzF,CAAC;IAED;;;;;;;;;;;;;;;;OAgBG;IACH,GAAG,CAAC,KAAe;QACjB,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;IACzF,CAAC;IAED;;;;;;;;;;;;;;;;OAgBG;IACH,GAAG,CAAC,KAAe;QACjB,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;IAClE,CAAC;IAED;;;;;;;;;;;;;;;;OAgBG;IACH,GAAG,CAAC,KAAe;QACjB,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;IAClE,CAAC;IAED;;;;;;;;;;;;;;;;;;;OAmBG;IACH,OAAO;QACL,OAAO,IAAI,CAAC,GAAG,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC;IACtC,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACH,GAAG;QACD,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;IAC1C,CAAC;IAED;;;;;;;;;;;;;;;;;;;OAmBG;IACH,QAAQ;QACN,OAAO,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,+DAA+D;IAC7F,CAAC;IAED;;;;;;;;;;;;;;;;;;;OAmBG;IACH,MAAM,CAAC,KAAe;QACpB,OAAO,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,KAAK,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;IACvD,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IACH,QAAQ;QACN,OAAO,GAAG,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;IACnC,CAAC;CACF"}
@@ -4,7 +4,7 @@
4
4
  * Types that are used across multiple modules but are not
5
5
  * directly from FFmpeg constants.
6
6
  */
7
- import type { AVCodecID, AVLogLevel, AVMediaType } from '../constants/constants.ts';
7
+ import type { AVCodecID, AVLogLevel, AVMediaType, AVPixelFormat, AVSampleFormat } from '../constants/constants.ts';
8
8
  /**
9
9
  * Rational number (fraction) interface
10
10
  * Maps to AVRational in FFmpeg
@@ -100,6 +100,28 @@ export interface ImageOptions {
100
100
  crop?: ImageCrop;
101
101
  resize?: ImageResize;
102
102
  }
103
+ /**
104
+ * Video Frame
105
+ */
106
+ export interface VideoFrame {
107
+ width: number;
108
+ height: number;
109
+ format: AVPixelFormat;
110
+ timeBase?: IRational;
111
+ sampleAspectRatio?: IRational;
112
+ pts?: bigint;
113
+ }
114
+ /**
115
+ * Audio Frame
116
+ */
117
+ export interface AudioFrame {
118
+ nbSamples: number;
119
+ format: AVSampleFormat;
120
+ sampleRate: number;
121
+ channelLayout: ChannelLayout;
122
+ timeBase?: IRational;
123
+ pts?: bigint;
124
+ }
103
125
  /**
104
126
  * RTSP stream information interface
105
127
  * Maps to RTSPStreamInfo returned by FormatContext.getRTSPStreamInfo()
package/install/check.js CHANGED
@@ -105,7 +105,7 @@ const buildFromSource = () => {
105
105
  log(' - Python 3.12+ installed');
106
106
  log(' - A C++ compiler with C++17 support');
107
107
  log('');
108
- log('See https://github.com/seydx/av for detailed requirements');
108
+ log('See https://github.com/seydx/node-av for detailed requirements');
109
109
  process.exit(status);
110
110
  }
111
111
 
@@ -145,7 +145,7 @@ const buildFromSource = () => {
145
145
  } else {
146
146
  // No FFmpeg found and no prebuilt available
147
147
  log('⚠️ No prebuilt binary and no system FFmpeg found');
148
- log('See https://github.com/seydx/av for installation instructions');
148
+ log('See https://github.com/seydx/node-av for installation instructions');
149
149
  process.exit(1);
150
150
  }
151
151
  } catch (err) {
package/package.json CHANGED
@@ -1,9 +1,11 @@
1
1
  {
2
2
  "name": "node-av",
3
- "version": "4.0.0",
3
+ "version": "5.0.1",
4
4
  "description": "FFmpeg bindings for Node.js",
5
- "author": "seydx (https://github.com/seydx/av)",
5
+ "author": "seydx (https://github.com/seydx/node-av)",
6
6
  "type": "module",
7
+ "main": "./dist/index.js",
8
+ "types": "./dist/index.d.ts",
7
9
  "exports": {
8
10
  ".": {
9
11
  "types": "./dist/index.d.ts",
@@ -68,61 +70,69 @@
68
70
  "werift": "^0.22.2"
69
71
  },
70
72
  "optionalDependencies": {
71
- "@seydx/node-av-darwin-arm64": "^4.0.0",
72
- "@seydx/node-av-darwin-x64": "^4.0.0",
73
- "@seydx/node-av-linux-arm64": "^4.0.0",
74
- "@seydx/node-av-linux-x64": "^4.0.0",
75
- "@seydx/node-av-win32-arm64-mingw": "^4.0.0",
76
- "@seydx/node-av-win32-arm64-msvc": "^4.0.0",
77
- "@seydx/node-av-win32-x64-mingw": "^4.0.0",
78
- "@seydx/node-av-win32-x64-msvc": "^4.0.0"
73
+ "@seydx/node-av-darwin-arm64": "^5.0.1",
74
+ "@seydx/node-av-darwin-x64": "^5.0.1",
75
+ "@seydx/node-av-linux-arm64": "^5.0.1",
76
+ "@seydx/node-av-linux-x64": "^5.0.1",
77
+ "@seydx/node-av-win32-arm64-mingw": "^5.0.1",
78
+ "@seydx/node-av-win32-arm64-msvc": "^5.0.1",
79
+ "@seydx/node-av-win32-x64-mingw": "^5.0.1",
80
+ "@seydx/node-av-win32-x64-msvc": "^5.0.1"
79
81
  },
80
82
  "devDependencies": {
81
- "@stylistic/eslint-plugin": "^5.5.0",
83
+ "@stylistic/eslint-plugin": "^5.6.1",
82
84
  "@types/node": "^24.10.1",
83
85
  "@types/node-abi": "^3.0.3",
84
86
  "@types/semver": "^7.7.1",
85
87
  "@types/unzipper": "^0.10.11",
86
88
  "@types/ws": "^8.18.1",
87
- "@typescript-eslint/parser": "^8.46.4",
89
+ "@typescript-eslint/parser": "^8.47.0",
88
90
  "concurrently": "^9.2.1",
89
91
  "cpy-cli": "^6.0.0",
90
92
  "cross-env": "^10.1.0",
91
93
  "eslint": "^9.39.1",
92
- "eslint-plugin-jsdoc": "^61.2.0",
94
+ "eslint-plugin-jsdoc": "^61.4.0",
93
95
  "globals": "^16.5.0",
94
96
  "node-addon-api": "^8.5.0",
95
- "node-gyp": "^12.0.0",
97
+ "node-gyp": "^12.1.0",
96
98
  "prettier": "^3.6.2",
97
- "rimraf": "^6.1.0",
99
+ "rimraf": "^6.1.2",
98
100
  "sharp": "^0.34.5",
99
101
  "tsx": "^4.20.6",
100
102
  "typedoc": "^0.28.14",
101
103
  "typedoc-plugin-markdown": "^4.9.0",
102
104
  "typedoc-vitepress-theme": "^1.1.2",
103
105
  "typescript": "^5.9.3",
104
- "typescript-eslint": "^8.46.4",
106
+ "typescript-eslint": "^8.47.0",
105
107
  "updates": "^16.9.1",
106
- "vitepress": "^2.0.0-alpha.12",
108
+ "vitepress": "^2.0.0-alpha.15",
107
109
  "ws": "^8.18.3"
108
110
  },
109
111
  "overrides": {
110
112
  "ip": "npm:neoip@2.1.0"
111
113
  },
112
114
  "bugs": {
113
- "url": "https://github.com/seydx/av/issues"
115
+ "url": "https://github.com/seydx/node-av/issues"
114
116
  },
115
- "homepage": "https://github.com/seydx/av#readme",
117
+ "homepage": "https://github.com/seydx/node-av#readme",
116
118
  "keywords": [
117
119
  "node",
118
120
  "ffmpeg",
119
121
  "av",
120
122
  "libav",
121
- "bindings"
123
+ "bindings",
124
+ "whisper",
125
+ "binary",
126
+ "windows",
127
+ "linux",
128
+ "darwin",
129
+ "x64",
130
+ "arm64",
131
+ "static"
122
132
  ],
123
133
  "license": "MIT",
124
134
  "repository": {
125
135
  "type": "git",
126
- "url": "git+https://github.com/seydx/av.git"
136
+ "url": "git+https://github.com/seydx/node-av.git"
127
137
  }
128
138
  }