@pproenca/node-webcodecs 0.1.0 → 0.1.1-alpha.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +78 -206
- package/binding.gyp +123 -0
- package/dist/audio-decoder.js +1 -2
- package/dist/audio-encoder.d.ts +4 -0
- package/dist/audio-encoder.js +28 -2
- package/dist/binding.d.ts +0 -2
- package/dist/binding.js +43 -124
- package/dist/control-message-queue.js +0 -1
- package/dist/demuxer.d.ts +7 -0
- package/dist/demuxer.js +9 -0
- package/dist/encoded-chunks.d.ts +16 -0
- package/dist/encoded-chunks.js +82 -2
- package/dist/image-decoder.js +4 -0
- package/dist/index.d.ts +17 -3
- package/dist/index.js +9 -4
- package/dist/is.d.ts +18 -0
- package/dist/is.js +14 -0
- package/dist/native-types.d.ts +20 -0
- package/dist/platform.d.ts +1 -10
- package/dist/platform.js +1 -39
- package/dist/resource-manager.d.ts +1 -2
- package/dist/resource-manager.js +3 -17
- package/dist/types.d.ts +46 -0
- package/dist/video-decoder.d.ts +21 -0
- package/dist/video-decoder.js +74 -2
- package/dist/video-encoder.d.ts +22 -0
- package/dist/video-encoder.js +83 -8
- package/dist/video-frame.d.ts +6 -3
- package/dist/video-frame.js +36 -4
- package/lib/audio-decoder.ts +1 -2
- package/lib/audio-encoder.ts +31 -2
- package/lib/binding.ts +45 -104
- package/lib/control-message-queue.ts +0 -1
- package/lib/demuxer.ts +10 -0
- package/lib/encoded-chunks.ts +90 -2
- package/lib/image-decoder.ts +5 -0
- package/lib/index.ts +9 -3
- package/lib/is.ts +32 -0
- package/lib/native-types.ts +22 -0
- package/lib/platform.ts +1 -41
- package/lib/resource-manager.ts +3 -19
- package/lib/types.ts +52 -1
- package/lib/video-decoder.ts +84 -2
- package/lib/video-encoder.ts +90 -8
- package/lib/video-frame.ts +52 -7
- package/package.json +49 -32
- package/src/addon.cc +57 -0
- package/src/async_decode_worker.cc +243 -36
- package/src/async_decode_worker.h +55 -4
- package/src/async_encode_worker.cc +155 -44
- package/src/async_encode_worker.h +38 -12
- package/src/audio_data.cc +38 -15
- package/src/audio_data.h +1 -0
- package/src/audio_decoder.cc +24 -3
- package/src/audio_encoder.cc +55 -4
- package/src/common.cc +125 -17
- package/src/common.h +34 -4
- package/src/demuxer.cc +16 -2
- package/src/encoded_audio_chunk.cc +10 -0
- package/src/encoded_audio_chunk.h +2 -0
- package/src/encoded_video_chunk.h +1 -0
- package/src/error_builder.cc +0 -4
- package/src/image_decoder.cc +127 -90
- package/src/image_decoder.h +11 -4
- package/src/muxer.cc +1 -0
- package/src/test_video_generator.cc +3 -2
- package/src/video_decoder.cc +169 -19
- package/src/video_decoder.h +9 -11
- package/src/video_encoder.cc +428 -35
- package/src/video_encoder.h +16 -0
- package/src/video_filter.cc +22 -11
- package/src/video_frame.cc +160 -5
- package/src/warnings.cc +0 -4
- package/dist/audio-data.js.map +0 -1
- package/dist/audio-decoder.js.map +0 -1
- package/dist/audio-encoder.js.map +0 -1
- package/dist/binding.js.map +0 -1
- package/dist/codec-base.js.map +0 -1
- package/dist/control-message-queue.js.map +0 -1
- package/dist/demuxer.js.map +0 -1
- package/dist/encoded-chunks.js.map +0 -1
- package/dist/errors.js.map +0 -1
- package/dist/ffmpeg.d.ts +0 -21
- package/dist/ffmpeg.js +0 -112
- package/dist/image-decoder.js.map +0 -1
- package/dist/image-track-list.js.map +0 -1
- package/dist/image-track.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/is.js.map +0 -1
- package/dist/muxer.js.map +0 -1
- package/dist/native-types.js.map +0 -1
- package/dist/platform.js.map +0 -1
- package/dist/resource-manager.js.map +0 -1
- package/dist/test-video-generator.js.map +0 -1
- package/dist/transfer.js.map +0 -1
- package/dist/types.js.map +0 -1
- package/dist/video-decoder.js.map +0 -1
- package/dist/video-encoder.js.map +0 -1
- package/dist/video-filter.js.map +0 -1
- package/dist/video-frame.js.map +0 -1
- package/install/build.js +0 -51
- package/install/check.js +0 -192
- package/lib/ffmpeg.ts +0 -78
package/dist/video-frame.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"video-frame.js","sourceRoot":"","sources":["../lib/video-frame.ts"],"names":[],"mappings":"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"}
|
package/install/build.js
DELETED
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
// Copyright 2024 The node-webcodecs Authors
|
|
3
|
-
// SPDX-License-Identifier: MIT
|
|
4
|
-
//
|
|
5
|
-
// Build native addon from source.
|
|
6
|
-
|
|
7
|
-
'use strict';
|
|
8
|
-
|
|
9
|
-
const { spawnSync } = require('node:child_process');
|
|
10
|
-
|
|
11
|
-
console.log('node-webcodecs: Building from source...');
|
|
12
|
-
|
|
13
|
-
// Verify node-addon-api is available
|
|
14
|
-
try {
|
|
15
|
-
require.resolve('node-addon-api');
|
|
16
|
-
console.log('✓ node-addon-api found');
|
|
17
|
-
} catch {
|
|
18
|
-
console.error('✗ node-addon-api not found');
|
|
19
|
-
console.error(' Run: npm install node-addon-api');
|
|
20
|
-
process.exit(1);
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
// Verify node-gyp is available
|
|
24
|
-
try {
|
|
25
|
-
require.resolve('node-gyp');
|
|
26
|
-
console.log('✓ node-gyp found');
|
|
27
|
-
} catch {
|
|
28
|
-
console.error('✗ node-gyp not found');
|
|
29
|
-
console.error(' Run: npm install node-gyp');
|
|
30
|
-
process.exit(1);
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
// Run node-gyp rebuild
|
|
34
|
-
console.log('\nRunning node-gyp rebuild...\n');
|
|
35
|
-
|
|
36
|
-
const result = spawnSync('npx', ['node-gyp', 'rebuild'], {
|
|
37
|
-
stdio: 'inherit',
|
|
38
|
-
shell: true,
|
|
39
|
-
});
|
|
40
|
-
|
|
41
|
-
if (result.status !== 0) {
|
|
42
|
-
console.error('\n✗ Build failed');
|
|
43
|
-
console.error(' Check the output above for errors.');
|
|
44
|
-
console.error(' Common issues:');
|
|
45
|
-
console.error(' - FFmpeg development libraries not installed');
|
|
46
|
-
console.error(' - C++ compiler not found');
|
|
47
|
-
console.error(' - pkg-config not found');
|
|
48
|
-
process.exit(result.status || 1);
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
console.log('\n✓ Build successful');
|
package/install/check.js
DELETED
|
@@ -1,192 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
// Copyright 2024 The node-webcodecs Authors
|
|
3
|
-
// SPDX-License-Identifier: MIT
|
|
4
|
-
//
|
|
5
|
-
// Install-time check for FFmpeg availability.
|
|
6
|
-
|
|
7
|
-
'use strict';
|
|
8
|
-
|
|
9
|
-
const {execSync, spawnSync} = require('node:child_process');
|
|
10
|
-
const {platform} = require('node:os');
|
|
11
|
-
|
|
12
|
-
const MIN_FFMPEG_VERSION = '5.0';
|
|
13
|
-
|
|
14
|
-
/**
|
|
15
|
-
* Check if prebuilt FFmpeg package is available for this platform.
|
|
16
|
-
*/
|
|
17
|
-
function hasPrebuiltFFmpeg() {
|
|
18
|
-
const runtimePlatform = getRuntimePlatform();
|
|
19
|
-
const packageName = `@pproenca/ffmpeg-${runtimePlatform}`;
|
|
20
|
-
|
|
21
|
-
try {
|
|
22
|
-
require.resolve(`${packageName}/lib`);
|
|
23
|
-
console.log(`✓ Found prebuilt FFmpeg: ${packageName}`);
|
|
24
|
-
return true;
|
|
25
|
-
} catch {
|
|
26
|
-
return false;
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
/**
|
|
31
|
-
* Get runtime platform string (matches npm package naming).
|
|
32
|
-
*/
|
|
33
|
-
function getRuntimePlatform() {
|
|
34
|
-
const os = platform();
|
|
35
|
-
const arch = process.arch;
|
|
36
|
-
|
|
37
|
-
if (os === 'linux') {
|
|
38
|
-
// Check for musl
|
|
39
|
-
try {
|
|
40
|
-
const { familySync } = require('detect-libc');
|
|
41
|
-
if (familySync() === 'musl') {
|
|
42
|
-
return `linuxmusl-${arch}`;
|
|
43
|
-
}
|
|
44
|
-
} catch {}
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
return `${os}-${arch}`;
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
function checkPkgConfig() {
|
|
51
|
-
const libs = [
|
|
52
|
-
'libavcodec',
|
|
53
|
-
'libavutil',
|
|
54
|
-
'libswscale',
|
|
55
|
-
'libswresample',
|
|
56
|
-
'libavfilter',
|
|
57
|
-
];
|
|
58
|
-
|
|
59
|
-
try {
|
|
60
|
-
execSync(`pkg-config --exists ${libs.join(' ')}`, {stdio: 'pipe'});
|
|
61
|
-
return true;
|
|
62
|
-
} catch {
|
|
63
|
-
return false;
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
function getFFmpegVersion() {
|
|
68
|
-
try {
|
|
69
|
-
const version = execSync('pkg-config --modversion libavcodec', {
|
|
70
|
-
encoding: 'utf8',
|
|
71
|
-
stdio: ['pipe', 'pipe', 'pipe'],
|
|
72
|
-
}).trim();
|
|
73
|
-
return version;
|
|
74
|
-
} catch {
|
|
75
|
-
return null;
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
function versionAtLeast(version, minimum) {
|
|
80
|
-
const v1 = version.split('.').map(Number);
|
|
81
|
-
const v2 = minimum.split('.').map(Number);
|
|
82
|
-
|
|
83
|
-
for (let i = 0; i < Math.max(v1.length, v2.length); i++) {
|
|
84
|
-
const a = v1[i] || 0;
|
|
85
|
-
const b = v2[i] || 0;
|
|
86
|
-
if (a > b) return true;
|
|
87
|
-
if (a < b) return false;
|
|
88
|
-
}
|
|
89
|
-
return true;
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
function getInstallInstructions() {
|
|
93
|
-
const os = platform();
|
|
94
|
-
|
|
95
|
-
const instructions = {
|
|
96
|
-
darwin: `
|
|
97
|
-
Install FFmpeg using Homebrew:
|
|
98
|
-
brew install ffmpeg
|
|
99
|
-
`,
|
|
100
|
-
linux: `
|
|
101
|
-
Ubuntu/Debian:
|
|
102
|
-
sudo apt-get update
|
|
103
|
-
sudo apt-get install -y \\
|
|
104
|
-
libavcodec-dev \\
|
|
105
|
-
libavutil-dev \\
|
|
106
|
-
libswscale-dev \\
|
|
107
|
-
libswresample-dev \\
|
|
108
|
-
libavfilter-dev \\
|
|
109
|
-
libavformat-dev \\
|
|
110
|
-
pkg-config
|
|
111
|
-
|
|
112
|
-
Fedora:
|
|
113
|
-
sudo dnf install ffmpeg-devel
|
|
114
|
-
|
|
115
|
-
Arch Linux:
|
|
116
|
-
sudo pacman -S ffmpeg
|
|
117
|
-
`,
|
|
118
|
-
win32: `
|
|
119
|
-
Windows requires manual FFmpeg installation:
|
|
120
|
-
1. Download from https://github.com/BtbN/FFmpeg-Builds/releases
|
|
121
|
-
2. Extract to C:\\ffmpeg
|
|
122
|
-
3. Set FFMPEG_PATH=C:\\ffmpeg in environment variables
|
|
123
|
-
4. Restart your terminal and run: npm run build
|
|
124
|
-
`,
|
|
125
|
-
};
|
|
126
|
-
|
|
127
|
-
return instructions[os] || instructions.linux;
|
|
128
|
-
}
|
|
129
|
-
|
|
130
|
-
function main() {
|
|
131
|
-
console.log('node-webcodecs: Checking FFmpeg installation...\n');
|
|
132
|
-
|
|
133
|
-
// Check for prebuilt FFmpeg first
|
|
134
|
-
if (hasPrebuiltFFmpeg()) {
|
|
135
|
-
console.log('\n✓ Using prebuilt FFmpeg. Ready to build.\n');
|
|
136
|
-
return;
|
|
137
|
-
}
|
|
138
|
-
|
|
139
|
-
// Skip detailed checks on Windows
|
|
140
|
-
if (platform() === 'win32') {
|
|
141
|
-
if (!process.env.FFMPEG_PATH) {
|
|
142
|
-
console.warn(
|
|
143
|
-
'⚠️ Windows: Set FFMPEG_PATH environment variable to FFmpeg location.',
|
|
144
|
-
);
|
|
145
|
-
console.log(getInstallInstructions());
|
|
146
|
-
} else {
|
|
147
|
-
console.log('✓ FFMPEG_PATH is set');
|
|
148
|
-
}
|
|
149
|
-
return;
|
|
150
|
-
}
|
|
151
|
-
|
|
152
|
-
// Check pkg-config exists
|
|
153
|
-
const pkgConfigResult = spawnSync('which', ['pkg-config'], {stdio: 'pipe'});
|
|
154
|
-
if (pkgConfigResult.status !== 0) {
|
|
155
|
-
console.error('✗ pkg-config not found');
|
|
156
|
-
console.log('\n Install pkg-config:');
|
|
157
|
-
console.log(' macOS: brew install pkg-config');
|
|
158
|
-
console.log(' Ubuntu: sudo apt-get install pkg-config');
|
|
159
|
-
process.exit(1);
|
|
160
|
-
}
|
|
161
|
-
console.log('✓ pkg-config found');
|
|
162
|
-
|
|
163
|
-
// Check FFmpeg libraries
|
|
164
|
-
if (!checkPkgConfig()) {
|
|
165
|
-
console.error('✗ FFmpeg development libraries not found');
|
|
166
|
-
console.log(getInstallInstructions());
|
|
167
|
-
process.exit(1);
|
|
168
|
-
}
|
|
169
|
-
console.log('✓ FFmpeg development libraries found');
|
|
170
|
-
|
|
171
|
-
// Check FFmpeg version
|
|
172
|
-
const version = getFFmpegVersion();
|
|
173
|
-
if (version) {
|
|
174
|
-
if (versionAtLeast(version, MIN_FFMPEG_VERSION)) {
|
|
175
|
-
console.log(
|
|
176
|
-
`✓ FFmpeg version ${version} (>= ${MIN_FFMPEG_VERSION} required)`,
|
|
177
|
-
);
|
|
178
|
-
} else {
|
|
179
|
-
console.warn(
|
|
180
|
-
`⚠️ FFmpeg version ${version} is older than recommended ${MIN_FFMPEG_VERSION}`,
|
|
181
|
-
);
|
|
182
|
-
}
|
|
183
|
-
}
|
|
184
|
-
|
|
185
|
-
console.log('\n✓ All checks passed. Ready to build.\n');
|
|
186
|
-
}
|
|
187
|
-
|
|
188
|
-
if (require.main === module) {
|
|
189
|
-
main();
|
|
190
|
-
}
|
|
191
|
-
|
|
192
|
-
module.exports = { checkPkgConfig, getFFmpegVersion, hasPrebuiltFFmpeg, getRuntimePlatform };
|
package/lib/ffmpeg.ts
DELETED
|
@@ -1,78 +0,0 @@
|
|
|
1
|
-
// Copyright 2024 The node-webcodecs Authors
|
|
2
|
-
// SPDX-License-Identifier: MIT
|
|
3
|
-
//
|
|
4
|
-
// FFmpeg library loading following sharp's lib/libvips.js pattern.
|
|
5
|
-
|
|
6
|
-
import * as path from 'node:path';
|
|
7
|
-
import { runtimePlatformArch, prebuiltPlatforms, PrebuiltPlatform } from './platform';
|
|
8
|
-
|
|
9
|
-
const runtimePlatform = runtimePlatformArch();
|
|
10
|
-
|
|
11
|
-
/**
|
|
12
|
-
* Check if prebuilt FFmpeg libraries are available for current platform.
|
|
13
|
-
*/
|
|
14
|
-
export function hasPrebuiltFFmpeg(): boolean {
|
|
15
|
-
if (!prebuiltPlatforms.includes(runtimePlatform as PrebuiltPlatform)) {
|
|
16
|
-
return false;
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
try {
|
|
20
|
-
require.resolve(`@pproenca/ffmpeg-${runtimePlatform}/lib`);
|
|
21
|
-
return true;
|
|
22
|
-
} catch {
|
|
23
|
-
return false;
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
/**
|
|
28
|
-
* Get the path to prebuilt FFmpeg libraries.
|
|
29
|
-
* Returns null if not available.
|
|
30
|
-
*/
|
|
31
|
-
export function getFFmpegLibPath(): string | null {
|
|
32
|
-
if (!hasPrebuiltFFmpeg()) {
|
|
33
|
-
return null;
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
try {
|
|
37
|
-
const libEntry = require.resolve(`@pproenca/ffmpeg-${runtimePlatform}/lib`);
|
|
38
|
-
return path.dirname(libEntry);
|
|
39
|
-
} catch {
|
|
40
|
-
return null;
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
/**
|
|
45
|
-
* Check environment variable to force system FFmpeg usage.
|
|
46
|
-
*/
|
|
47
|
-
export function useSystemFFmpeg(): boolean {
|
|
48
|
-
return process.env.NODE_WEBCODECS_SYSTEM_FFMPEG === '1';
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
/**
|
|
52
|
-
* Get FFmpeg version from prebuilt package.
|
|
53
|
-
*/
|
|
54
|
-
export function getPrebuiltFFmpegVersion(): string | null {
|
|
55
|
-
try {
|
|
56
|
-
const versions = require(`@pproenca/ffmpeg-${runtimePlatform}/versions`);
|
|
57
|
-
return versions.ffmpeg || null;
|
|
58
|
-
} catch {
|
|
59
|
-
return null;
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
/**
|
|
64
|
-
* Log FFmpeg detection status.
|
|
65
|
-
*/
|
|
66
|
-
export function logFFmpegStatus(): void {
|
|
67
|
-
if (useSystemFFmpeg()) {
|
|
68
|
-
console.log('node-webcodecs: Using system FFmpeg (NODE_WEBCODECS_SYSTEM_FFMPEG=1)');
|
|
69
|
-
return;
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
if (hasPrebuiltFFmpeg()) {
|
|
73
|
-
const version = getPrebuiltFFmpegVersion();
|
|
74
|
-
console.log(`node-webcodecs: Using prebuilt FFmpeg ${version || 'unknown'} for ${runtimePlatform}`);
|
|
75
|
-
} else {
|
|
76
|
-
console.log(`node-webcodecs: No prebuilt FFmpeg for ${runtimePlatform}, using system libraries`);
|
|
77
|
-
}
|
|
78
|
-
}
|