node-av 2.5.1 → 2.5.2
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/ffmpeg/install.js +75 -30
- package/dist/ffmpeg/install.js.map +1 -1
- package/package.json +9 -9
package/dist/ffmpeg/install.js
CHANGED
|
@@ -1,10 +1,8 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import axios from 'axios';
|
|
3
2
|
import { chmodSync, createWriteStream, mkdirSync, rmSync } from 'node:fs';
|
|
4
3
|
import { rename } from 'node:fs/promises';
|
|
5
4
|
import { createRequire } from 'node:module';
|
|
6
5
|
import { dirname, extname, resolve } from 'node:path';
|
|
7
|
-
import { pipeline } from 'node:stream/promises';
|
|
8
6
|
import { fileURLToPath } from 'node:url';
|
|
9
7
|
import { Open } from 'unzipper';
|
|
10
8
|
import { ffmpegPath } from './index.js';
|
|
@@ -37,7 +35,8 @@ const arch = getArchitecture();
|
|
|
37
35
|
const sysPlatform = getPlatform();
|
|
38
36
|
let filename = binaries[sysPlatform]?.[arch];
|
|
39
37
|
if (!filename) {
|
|
40
|
-
console.
|
|
38
|
+
console.warn(`Warning: No ffmpeg binary found for architecture (${sysPlatform} / ${arch})`);
|
|
39
|
+
console.warn('FFmpeg binary installation will be skipped.');
|
|
41
40
|
process.exit(0);
|
|
42
41
|
}
|
|
43
42
|
if (sysPlatform === 'win32' && getPlatformType() !== 'Windows_NT') {
|
|
@@ -55,32 +54,69 @@ const isZipUrl = (url) => {
|
|
|
55
54
|
};
|
|
56
55
|
const downloadFile = async (url) => {
|
|
57
56
|
console.log(`Downloading FFmpeg ${ffmpegVersion} to ${ffmpegFilePath}...`);
|
|
58
|
-
const
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
if (progressEvent.loaded === progressEvent.total) {
|
|
66
|
-
process.stdout.write('\r');
|
|
67
|
-
}
|
|
68
|
-
},
|
|
69
|
-
timeout: 30 * 1000, // 30s
|
|
70
|
-
maxRedirects: 3,
|
|
71
|
-
responseType: 'stream',
|
|
72
|
-
});
|
|
57
|
+
const response = await fetch(url);
|
|
58
|
+
if (!response.ok) {
|
|
59
|
+
throw new Error(`HTTP error! status: ${response.status}`);
|
|
60
|
+
}
|
|
61
|
+
if (!response.body) {
|
|
62
|
+
throw new Error('Response body is null');
|
|
63
|
+
}
|
|
73
64
|
mkdirSync(ffmpegBinaryPath, { recursive: true });
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
65
|
+
// Progress tracking (optional, simpler without detailed progress)
|
|
66
|
+
const contentLength = response.headers.get('content-length');
|
|
67
|
+
let downloaded = 0;
|
|
68
|
+
const writeStream = createWriteStream(ffmpegFilePath);
|
|
69
|
+
// Convert ReadableStream to Node.js stream and track progress
|
|
70
|
+
const reader = response.body.getReader();
|
|
71
|
+
try {
|
|
72
|
+
while (true) {
|
|
73
|
+
const { done, value } = await reader.read();
|
|
74
|
+
if (done)
|
|
75
|
+
break;
|
|
76
|
+
downloaded += value.length;
|
|
77
|
+
// Show progress if we have content length and not in CI
|
|
78
|
+
if (!process.env.CI && contentLength) {
|
|
79
|
+
const percent = Math.round((downloaded / parseInt(contentLength)) * 100);
|
|
80
|
+
process.stdout.write(`\r${percent}%`);
|
|
81
|
+
}
|
|
82
|
+
writeStream.write(value);
|
|
83
|
+
}
|
|
84
|
+
if (!process.env.CI && contentLength) {
|
|
85
|
+
process.stdout.write('\r');
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
finally {
|
|
89
|
+
reader.releaseLock();
|
|
90
|
+
writeStream.end();
|
|
91
|
+
// Wait for write stream to finish
|
|
79
92
|
await new Promise((resolve, reject) => {
|
|
80
|
-
|
|
93
|
+
writeStream.on('finish', resolve);
|
|
94
|
+
writeStream.on('error', reject);
|
|
81
95
|
});
|
|
82
|
-
|
|
83
|
-
|
|
96
|
+
}
|
|
97
|
+
if (isZipUrl(url)) {
|
|
98
|
+
console.log(`Extracting ${ffmpegFilePath} to ${ffmpegExtractedFilePath}...`);
|
|
99
|
+
try {
|
|
100
|
+
const directory = await Open.file(ffmpegFilePath);
|
|
101
|
+
if (!directory.files || directory.files.length === 0) {
|
|
102
|
+
throw new Error('No files found in ZIP archive');
|
|
103
|
+
}
|
|
104
|
+
await new Promise((resolve, reject) => {
|
|
105
|
+
directory.files[0].stream().pipe(createWriteStream(ffmpegExtractedFilePath)).on('error', reject).on('finish', resolve);
|
|
106
|
+
});
|
|
107
|
+
console.log(`Removing ${ffmpegFilePath}...`);
|
|
108
|
+
rmSync(ffmpegFilePath);
|
|
109
|
+
}
|
|
110
|
+
catch (extractError) {
|
|
111
|
+
// Clean up on extraction failure
|
|
112
|
+
try {
|
|
113
|
+
rmSync(ffmpegFilePath);
|
|
114
|
+
}
|
|
115
|
+
catch {
|
|
116
|
+
// Ignore cleanup errors
|
|
117
|
+
}
|
|
118
|
+
throw new Error(`Failed to extract ZIP: ${extractError}`);
|
|
119
|
+
}
|
|
84
120
|
}
|
|
85
121
|
else {
|
|
86
122
|
console.log(`Renaming ${ffmpegFilePath} to ${ffmpegExtractedFilePath}...`);
|
|
@@ -90,8 +126,12 @@ const downloadFile = async (url) => {
|
|
|
90
126
|
const getReleaseAssets = async (version) => {
|
|
91
127
|
const url = `${releasesUrl}/tags/v${version}`;
|
|
92
128
|
console.log(`Fetching release info from ${url}...`);
|
|
93
|
-
const response = await
|
|
94
|
-
|
|
129
|
+
const response = await fetch(url);
|
|
130
|
+
if (!response.ok) {
|
|
131
|
+
throw new Error(`HTTP error! status: ${response.status}`);
|
|
132
|
+
}
|
|
133
|
+
const data = await response.json();
|
|
134
|
+
const assets = data.assets.map((asset) => asset.browser_download_url);
|
|
95
135
|
const files = assets.map((asset) => asset.split(`${version}/`)[1]);
|
|
96
136
|
return {
|
|
97
137
|
assets,
|
|
@@ -111,8 +151,13 @@ const downloadFFmpeg = async () => {
|
|
|
111
151
|
}
|
|
112
152
|
console.log('Done!');
|
|
113
153
|
};
|
|
114
|
-
downloadFFmpeg()
|
|
115
|
-
|
|
154
|
+
downloadFFmpeg()
|
|
155
|
+
.catch((error) => {
|
|
156
|
+
console.warn('Warning: Failed to download FFmpeg binary:', error?.message ?? error);
|
|
157
|
+
console.warn('FFmpeg binary will not be available, but the package installation will continue.');
|
|
158
|
+
})
|
|
159
|
+
.finally(() => {
|
|
160
|
+
// Always exit successfully to avoid breaking npm install
|
|
116
161
|
process.exit(0);
|
|
117
162
|
});
|
|
118
163
|
//# sourceMappingURL=install.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/ffmpeg/install.ts"],"names":[],"mappings":";AAEA,OAAO,
|
|
1
|
+
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/ffmpeg/install.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "node-av",
|
|
3
|
-
"version": "2.5.
|
|
3
|
+
"version": "2.5.2",
|
|
4
4
|
"description": "FFmpeg bindings for Node.js",
|
|
5
5
|
"author": "seydx (https://github.com/seydx/av)",
|
|
6
6
|
"type": "module",
|
|
@@ -61,14 +61,14 @@
|
|
|
61
61
|
"update": "updates --update ./"
|
|
62
62
|
},
|
|
63
63
|
"optionalDependencies": {
|
|
64
|
-
"@seydx/node-av-darwin-arm64": "^2.5.
|
|
65
|
-
"@seydx/node-av-darwin-x64": "^2.5.
|
|
66
|
-
"@seydx/node-av-linux-arm64": "^2.5.
|
|
67
|
-
"@seydx/node-av-linux-x64": "^2.5.
|
|
68
|
-
"@seydx/node-av-win32-arm64-mingw": "^2.5.
|
|
69
|
-
"@seydx/node-av-win32-arm64-msvc": "^2.5.
|
|
70
|
-
"@seydx/node-av-win32-x64-mingw": "^2.5.
|
|
71
|
-
"@seydx/node-av-win32-x64-msvc": "^2.5.
|
|
64
|
+
"@seydx/node-av-darwin-arm64": "^2.5.2",
|
|
65
|
+
"@seydx/node-av-darwin-x64": "^2.5.2",
|
|
66
|
+
"@seydx/node-av-linux-arm64": "^2.5.2",
|
|
67
|
+
"@seydx/node-av-linux-x64": "^2.5.2",
|
|
68
|
+
"@seydx/node-av-win32-arm64-mingw": "^2.5.2",
|
|
69
|
+
"@seydx/node-av-win32-arm64-msvc": "^2.5.2",
|
|
70
|
+
"@seydx/node-av-win32-x64-mingw": "^2.5.2",
|
|
71
|
+
"@seydx/node-av-win32-x64-msvc": "^2.5.2"
|
|
72
72
|
},
|
|
73
73
|
"devDependencies": {
|
|
74
74
|
"@camera.ui/ffmpeg": "^0.0.14",
|