@remotion/renderer 4.0.97 → 4.0.100
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/call-ffmpeg.js +1 -2
- package/dist/client.d.ts +1 -1
- package/dist/compositor/get-executable-path.d.ts +2 -1
- package/dist/compositor/get-executable-path.js +42 -18
- package/dist/get-extension-from-codec.d.ts +2 -2
- package/dist/index.d.ts +8 -6
- package/dist/options/color-space.d.ts +1 -1
- package/dist/options/gl.d.ts +1 -1
- package/dist/options/index.d.ts +1 -1
- package/dist/pixel-format.d.ts +1 -1
- package/dist/pure.d.ts +3 -3
- package/dist/validate-output-filename.d.ts +1 -1
- package/package.json +9 -9
- package/dist/check-apple-silicon.d.ts +0 -3
- package/dist/check-apple-silicon.js +0 -42
package/dist/call-ffmpeg.js
CHANGED
|
@@ -6,11 +6,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.callFf = exports.dynamicLibraryPathOptions = void 0;
|
|
7
7
|
const execa_1 = __importDefault(require("execa"));
|
|
8
8
|
const node_fs_1 = require("node:fs");
|
|
9
|
-
const node_path_1 = __importDefault(require("node:path"));
|
|
10
9
|
const get_executable_path_1 = require("./compositor/get-executable-path");
|
|
11
10
|
const truthy_1 = require("./truthy");
|
|
12
11
|
const dynamicLibraryPathOptions = (indent, logLevel) => {
|
|
13
|
-
const lib =
|
|
12
|
+
const lib = (0, get_executable_path_1.getExecutablePath)('lib', indent, logLevel);
|
|
14
13
|
return {
|
|
15
14
|
env: {
|
|
16
15
|
RUST_BACKTRACE: 'full',
|
package/dist/client.d.ts
CHANGED
|
@@ -316,7 +316,7 @@ export declare const BrowserSafeApis: {
|
|
|
316
316
|
cliFlag: "gl";
|
|
317
317
|
docLink: string;
|
|
318
318
|
name: string;
|
|
319
|
-
type: "
|
|
319
|
+
type: "angle" | "swangle" | "egl" | "swiftshader" | "vulkan" | "angle-egl";
|
|
320
320
|
ssrName: string;
|
|
321
321
|
description: () => import("react/jsx-runtime").JSX.Element;
|
|
322
322
|
};
|
|
@@ -3,4 +3,5 @@ export declare function isMusl({ indent, logLevel, }: {
|
|
|
3
3
|
indent: boolean;
|
|
4
4
|
logLevel: LogLevel;
|
|
5
5
|
}): boolean;
|
|
6
|
-
export declare const getExecutablePath: (type: 'compositor' | 'ffmpeg' | 'ffprobe' | '
|
|
6
|
+
export declare const getExecutablePath: (type: 'compositor' | 'ffmpeg' | 'ffprobe' | 'lib', indent: boolean, logLevel: LogLevel) => string;
|
|
7
|
+
export declare const getExecutableDir: (indent: boolean, logLevel: LogLevel) => string;
|
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
// Adapted from @swc/core package
|
|
3
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
4
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
5
|
+
};
|
|
3
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
exports.getExecutablePath = exports.isMusl = void 0;
|
|
7
|
+
exports.getExecutableDir = exports.getExecutablePath = exports.isMusl = void 0;
|
|
8
|
+
const path_1 = __importDefault(require("path"));
|
|
5
9
|
const logger_1 = require("../logger");
|
|
6
10
|
let warned = false;
|
|
7
11
|
function isMusl({ indent, logLevel, }) {
|
|
@@ -19,30 +23,50 @@ function isMusl({ indent, logLevel, }) {
|
|
|
19
23
|
}
|
|
20
24
|
exports.isMusl = isMusl;
|
|
21
25
|
const getExecutablePath = (type, indent, logLevel) => {
|
|
22
|
-
|
|
23
|
-
|
|
26
|
+
const base = (0, exports.getExecutableDir)(indent, logLevel);
|
|
27
|
+
switch (type) {
|
|
28
|
+
case 'compositor':
|
|
29
|
+
if (process.platform === 'win32') {
|
|
30
|
+
return path_1.default.resolve(base, 'compositor.exe');
|
|
31
|
+
}
|
|
32
|
+
return path_1.default.resolve(base, 'compositor');
|
|
33
|
+
case 'ffmpeg':
|
|
34
|
+
if (process.platform === 'win32') {
|
|
35
|
+
return path_1.default.resolve(base, 'ffmpeg', 'remotion', 'bin', 'ffmpeg.exe');
|
|
36
|
+
}
|
|
37
|
+
return path_1.default.resolve(base, 'ffmpeg', 'remotion', 'bin', 'ffmpeg');
|
|
38
|
+
case 'ffprobe':
|
|
39
|
+
if (process.platform === 'win32') {
|
|
40
|
+
return path_1.default.resolve(base, 'ffmpeg', 'remotion', 'bin', 'ffprobe.exe');
|
|
41
|
+
}
|
|
42
|
+
return path_1.default.resolve(base, 'ffmpeg', 'remotion', 'bin', 'ffprobe');
|
|
43
|
+
case 'lib': {
|
|
44
|
+
const dir = path_1.default.resolve(base, 'ffmpeg', 'remotion', 'lib');
|
|
45
|
+
return dir;
|
|
46
|
+
}
|
|
47
|
+
default:
|
|
48
|
+
throw new Error(`Unknown executable type: ${type}`);
|
|
49
|
+
}
|
|
50
|
+
};
|
|
51
|
+
exports.getExecutablePath = getExecutablePath;
|
|
52
|
+
const getExecutableDir = (indent, logLevel) => {
|
|
53
|
+
if (process.env.COMPOSITOR_DIR) {
|
|
54
|
+
return process.env.COMPOSITOR_DIR;
|
|
24
55
|
}
|
|
25
|
-
const key = type === 'compositor'
|
|
26
|
-
? 'binaryPath'
|
|
27
|
-
: type === 'ffmpeg'
|
|
28
|
-
? 'ffmpegPath'
|
|
29
|
-
: type === 'ffprobe'
|
|
30
|
-
? 'ffprobePath'
|
|
31
|
-
: 'ffmpegCwd';
|
|
32
56
|
switch (process.platform) {
|
|
33
57
|
case 'win32':
|
|
34
58
|
switch (process.arch) {
|
|
35
59
|
case 'x64':
|
|
36
|
-
return require('@remotion/compositor-win32-x64-msvc')
|
|
60
|
+
return require('@remotion/compositor-win32-x64-msvc').dir;
|
|
37
61
|
default:
|
|
38
62
|
throw new Error(`Unsupported architecture on Windows: ${process.arch}`);
|
|
39
63
|
}
|
|
40
64
|
case 'darwin':
|
|
41
65
|
switch (process.arch) {
|
|
42
66
|
case 'x64':
|
|
43
|
-
return require('@remotion/compositor-darwin-x64')
|
|
67
|
+
return require('@remotion/compositor-darwin-x64').dir;
|
|
44
68
|
case 'arm64':
|
|
45
|
-
return require('@remotion/compositor-darwin-arm64')
|
|
69
|
+
return require('@remotion/compositor-darwin-arm64').dir;
|
|
46
70
|
default:
|
|
47
71
|
throw new Error(`Unsupported architecture on macOS: ${process.arch}`);
|
|
48
72
|
}
|
|
@@ -51,14 +75,14 @@ const getExecutablePath = (type, indent, logLevel) => {
|
|
|
51
75
|
switch (process.arch) {
|
|
52
76
|
case 'x64':
|
|
53
77
|
if (musl) {
|
|
54
|
-
return require('@remotion/compositor-linux-x64-musl')
|
|
78
|
+
return require('@remotion/compositor-linux-x64-musl').dir;
|
|
55
79
|
}
|
|
56
|
-
return require('@remotion/compositor-linux-x64-gnu')
|
|
80
|
+
return require('@remotion/compositor-linux-x64-gnu').dir;
|
|
57
81
|
case 'arm64':
|
|
58
82
|
if (musl) {
|
|
59
|
-
return require('@remotion/compositor-linux-arm64-musl')
|
|
83
|
+
return require('@remotion/compositor-linux-arm64-musl').dir;
|
|
60
84
|
}
|
|
61
|
-
return require('@remotion/compositor-linux-arm64-gnu')
|
|
85
|
+
return require('@remotion/compositor-linux-arm64-gnu').dir;
|
|
62
86
|
default:
|
|
63
87
|
throw new Error(`Unsupported architecture on Linux: ${process.arch}`);
|
|
64
88
|
}
|
|
@@ -67,4 +91,4 @@ const getExecutablePath = (type, indent, logLevel) => {
|
|
|
67
91
|
throw new Error(`Unsupported OS: ${process.platform}, architecture: ${process.arch}`);
|
|
68
92
|
}
|
|
69
93
|
};
|
|
70
|
-
exports.
|
|
94
|
+
exports.getExecutableDir = getExecutableDir;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { AudioCodec } from './audio-codec';
|
|
2
2
|
import type { Codec } from './codec';
|
|
3
3
|
import type { FileExtension } from './file-extensions';
|
|
4
|
-
export declare const getFileExtensionFromCodec: <T extends "h264" | "h265" | "vp8" | "vp9" | "
|
|
5
|
-
export declare const makeFileExtensionMap: () => Record<string, ("h264" | "h265" | "vp8" | "vp9" | "
|
|
4
|
+
export declare const getFileExtensionFromCodec: <T extends "h264" | "h265" | "vp8" | "vp9" | "prores" | "aac" | "mp3" | "wav" | "h264-mkv" | "gif">(codec: T, audioCodec: AudioCodec | null) => FileExtension;
|
|
5
|
+
export declare const makeFileExtensionMap: () => Record<string, ("h264" | "h265" | "vp8" | "vp9" | "prores" | "aac" | "mp3" | "wav" | "h264-mkv" | "gif")[]>;
|
|
6
6
|
export declare const defaultCodecsForFileExtension: Record<FileExtension, Codec>;
|
package/dist/index.d.ts
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
/// <reference types="node" />
|
|
1
3
|
import execa from 'execa';
|
|
2
4
|
import { HeadlessBrowser } from './browser/Browser';
|
|
3
5
|
import { SymbolicateableError } from './error-handling/symbolicateable-error';
|
|
@@ -135,8 +137,8 @@ export declare const RenderInternals: {
|
|
|
135
137
|
validPixelFormats: readonly ["yuv420p", "yuva420p", "yuv422p", "yuv444p", "yuv420p10le", "yuv422p10le", "yuv444p10le", "yuva444p10le"];
|
|
136
138
|
DEFAULT_BROWSER: "chrome";
|
|
137
139
|
validateFrameRange: (frameRange: import("./frame-range").FrameRange | null) => void;
|
|
138
|
-
DEFAULT_OPENGL_RENDERER: "
|
|
139
|
-
validateOpenGlRenderer: (option: "
|
|
140
|
+
DEFAULT_OPENGL_RENDERER: "angle" | "swangle" | "egl" | "swiftshader" | "vulkan" | "angle-egl" | null;
|
|
141
|
+
validateOpenGlRenderer: (option: "angle" | "swangle" | "egl" | "swiftshader" | "vulkan" | "angle-egl" | null) => "angle" | "swangle" | "egl" | "swiftshader" | "vulkan" | "angle-egl" | null;
|
|
140
142
|
validCodecs: readonly ["h264", "h265", "vp8", "vp9", "mp3", "aac", "wav", "prores", "h264-mkv", "gif"];
|
|
141
143
|
DEFAULT_PIXEL_FORMAT: "yuv420p" | "yuva420p" | "yuv422p" | "yuv444p" | "yuv420p10le" | "yuv422p10le" | "yuv444p10le" | "yuva444p10le";
|
|
142
144
|
validateJpegQuality: (q: number | undefined) => void;
|
|
@@ -311,7 +313,7 @@ export declare const RenderInternals: {
|
|
|
311
313
|
};
|
|
312
314
|
makeFileExtensionMap: () => Record<string, ("h264" | "h265" | "vp8" | "vp9" | "mp3" | "aac" | "wav" | "prores" | "h264-mkv" | "gif")[]>;
|
|
313
315
|
defaultCodecsForFileExtension: Record<import("./file-extensions").FileExtension, "h264" | "h265" | "vp8" | "vp9" | "mp3" | "aac" | "wav" | "prores" | "h264-mkv" | "gif">;
|
|
314
|
-
getExecutablePath: (type: "compositor" | "ffmpeg" | "ffprobe" | "
|
|
316
|
+
getExecutablePath: (type: "compositor" | "ffmpeg" | "ffprobe" | "lib", indent: boolean, logLevel: "verbose" | "info" | "warn" | "error") => string;
|
|
315
317
|
callFf: (bin: "ffmpeg" | "ffprobe", args: (string | null)[], indent: boolean, logLevel: "verbose" | "info" | "warn" | "error", options?: execa.Options<string> | undefined) => execa.ExecaChildProcess<string>;
|
|
316
318
|
dynamicLibraryPathOptions: (indent: boolean, logLevel: "verbose" | "info" | "warn" | "error") => {
|
|
317
319
|
env: {
|
|
@@ -327,8 +329,8 @@ export declare const RenderInternals: {
|
|
|
327
329
|
};
|
|
328
330
|
validStillImageFormats: readonly ["png", "jpeg", "pdf", "webp"];
|
|
329
331
|
validVideoImageFormats: readonly ["png", "jpeg", "none"];
|
|
330
|
-
DEFAULT_STILL_IMAGE_FORMAT: "
|
|
331
|
-
DEFAULT_VIDEO_IMAGE_FORMAT: "
|
|
332
|
+
DEFAULT_STILL_IMAGE_FORMAT: "jpeg" | "png" | "webp" | "pdf";
|
|
333
|
+
DEFAULT_VIDEO_IMAGE_FORMAT: "jpeg" | "png" | "none";
|
|
332
334
|
DEFAULT_JPEG_QUALITY: number;
|
|
333
335
|
chalk: {
|
|
334
336
|
enabled: () => boolean;
|
|
@@ -427,7 +429,7 @@ export declare const RenderInternals: {
|
|
|
427
429
|
frame: number;
|
|
428
430
|
serializedInputPropsWithCustomSchema: string;
|
|
429
431
|
serializedResolvedPropsWithCustomSchema: string;
|
|
430
|
-
imageFormat: "
|
|
432
|
+
imageFormat: "jpeg" | "png" | "webp" | "pdf";
|
|
431
433
|
jpegQuality: number;
|
|
432
434
|
puppeteerInstance: HeadlessBrowser | null;
|
|
433
435
|
envVariables: Record<string, string>;
|
|
@@ -6,6 +6,6 @@ export declare const colorSpaceOption: {
|
|
|
6
6
|
description: () => import("react/jsx-runtime").JSX.Element;
|
|
7
7
|
docLink: string;
|
|
8
8
|
ssrName: string;
|
|
9
|
-
type: "
|
|
9
|
+
type: "bt709" | "bt2020-ncl" | "default";
|
|
10
10
|
};
|
|
11
11
|
export declare const validateColorSpace: (option: unknown) => void;
|
package/dist/options/gl.d.ts
CHANGED
|
@@ -3,7 +3,7 @@ export declare const glOption: {
|
|
|
3
3
|
cliFlag: "gl";
|
|
4
4
|
docLink: string;
|
|
5
5
|
name: string;
|
|
6
|
-
type: "
|
|
6
|
+
type: "angle" | "swangle" | "egl" | "swiftshader" | "vulkan" | "angle-egl";
|
|
7
7
|
ssrName: string;
|
|
8
8
|
description: () => import("react/jsx-runtime").JSX.Element;
|
|
9
9
|
};
|
package/dist/options/index.d.ts
CHANGED
|
@@ -115,7 +115,7 @@ export declare const allOptions: {
|
|
|
115
115
|
cliFlag: "gl";
|
|
116
116
|
docLink: string;
|
|
117
117
|
name: string;
|
|
118
|
-
type: "
|
|
118
|
+
type: "angle" | "swangle" | "egl" | "swiftshader" | "vulkan" | "angle-egl";
|
|
119
119
|
ssrName: string;
|
|
120
120
|
description: () => import("react/jsx-runtime").JSX.Element;
|
|
121
121
|
};
|
package/dist/pixel-format.d.ts
CHANGED
|
@@ -2,5 +2,5 @@ import type { Codec } from './codec';
|
|
|
2
2
|
export declare const validPixelFormats: readonly ["yuv420p", "yuva420p", "yuv422p", "yuv444p", "yuv420p10le", "yuv422p10le", "yuv444p10le", "yuva444p10le"];
|
|
3
3
|
export type PixelFormat = (typeof validPixelFormats)[number];
|
|
4
4
|
export declare const DEFAULT_PIXEL_FORMAT: PixelFormat;
|
|
5
|
-
export declare const validPixelFormatsForCodec: (codec: Codec) => readonly ["yuv420p", "yuva420p", "yuv422p", "yuv444p", "yuv420p10le", "yuv422p10le", "yuv444p10le", "yuva444p10le"] | ("yuv420p" | "
|
|
5
|
+
export declare const validPixelFormatsForCodec: (codec: Codec) => readonly ["yuv420p", "yuva420p", "yuv422p", "yuv444p", "yuv420p10le", "yuv422p10le", "yuv444p10le", "yuva444p10le"] | ("yuv420p" | "yuv422p" | "yuv444p" | "yuva420p" | "yuv420p10le" | "yuv422p10le" | "yuv444p10le" | "yuva444p10le")[];
|
|
6
6
|
export declare const validateSelectedPixelFormatAndCodecCombination: (pixelFormat: PixelFormat | undefined, codec: Codec) => undefined;
|
package/dist/pure.d.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
export declare const NoReactAPIs: {
|
|
2
2
|
wrapWithErrorHandling: <A extends unknown[], R>(fn: (...args: A) => Promise<R>) => (...args: A) => Promise<R>;
|
|
3
3
|
getExtensionOfFilename: (filename: string | null) => string | null;
|
|
4
|
-
getFileExtensionFromCodec: <T extends "h264" | "h265" | "vp8" | "vp9" | "
|
|
5
|
-
validateOutputFilename: <T_1 extends "h264" | "h265" | "vp8" | "vp9" | "
|
|
4
|
+
getFileExtensionFromCodec: <T extends "h264" | "h265" | "vp8" | "vp9" | "prores" | "aac" | "mp3" | "wav" | "h264-mkv" | "gif">(codec: T, audioCodec: "opus" | "aac" | "mp3" | "pcm-16" | null) => import("./file-extensions").FileExtension;
|
|
5
|
+
validateOutputFilename: <T_1 extends "h264" | "h265" | "vp8" | "vp9" | "prores" | "aac" | "mp3" | "wav" | "h264-mkv" | "gif">({ codec, audioCodec, extension, preferLossless, }: {
|
|
6
6
|
codec: T_1;
|
|
7
|
-
audioCodec: "
|
|
7
|
+
audioCodec: "opus" | "aac" | "mp3" | "pcm-16" | null;
|
|
8
8
|
extension: string;
|
|
9
9
|
preferLossless: boolean;
|
|
10
10
|
}) => void;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { AudioCodec } from './audio-codec';
|
|
2
|
-
export declare const validateOutputFilename: <T extends "h264" | "h265" | "vp8" | "vp9" | "
|
|
2
|
+
export declare const validateOutputFilename: <T extends "h264" | "h265" | "vp8" | "vp9" | "prores" | "aac" | "mp3" | "wav" | "h264-mkv" | "gif">({ codec, audioCodec, extension, preferLossless, }: {
|
|
3
3
|
codec: T;
|
|
4
4
|
audioCodec: AudioCodec | null;
|
|
5
5
|
extension: string;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@remotion/renderer",
|
|
3
|
-
"version": "4.0.
|
|
3
|
+
"version": "4.0.100",
|
|
4
4
|
"description": "Renderer for Remotion",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
"extract-zip": "2.0.1",
|
|
19
19
|
"source-map": "^0.8.0-beta.0",
|
|
20
20
|
"ws": "8.7.0",
|
|
21
|
-
"remotion": "4.0.
|
|
21
|
+
"remotion": "4.0.100"
|
|
22
22
|
},
|
|
23
23
|
"peerDependencies": {
|
|
24
24
|
"react": ">=16.8.0",
|
|
@@ -40,13 +40,13 @@
|
|
|
40
40
|
"vitest": "0.31.1"
|
|
41
41
|
},
|
|
42
42
|
"optionalDependencies": {
|
|
43
|
-
"@remotion/compositor-darwin-arm64": "4.0.
|
|
44
|
-
"@remotion/compositor-darwin-x64": "4.0.
|
|
45
|
-
"@remotion/compositor-linux-arm64-gnu": "4.0.
|
|
46
|
-
"@remotion/compositor-linux-
|
|
47
|
-
"@remotion/compositor-linux-x64-
|
|
48
|
-
"@remotion/compositor-linux-
|
|
49
|
-
"@remotion/compositor-win32-x64-msvc": "4.0.
|
|
43
|
+
"@remotion/compositor-darwin-arm64": "4.0.100",
|
|
44
|
+
"@remotion/compositor-darwin-x64": "4.0.100",
|
|
45
|
+
"@remotion/compositor-linux-arm64-gnu": "4.0.100",
|
|
46
|
+
"@remotion/compositor-linux-arm64-musl": "4.0.100",
|
|
47
|
+
"@remotion/compositor-linux-x64-gnu": "4.0.100",
|
|
48
|
+
"@remotion/compositor-linux-x64-musl": "4.0.100",
|
|
49
|
+
"@remotion/compositor-win32-x64-msvc": "4.0.100"
|
|
50
50
|
},
|
|
51
51
|
"keywords": [
|
|
52
52
|
"remotion",
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.checkNodeVersionAndWarnAboutRosetta = exports.gLibCErrorMessage = void 0;
|
|
4
|
-
const logger_1 = require("./logger");
|
|
5
|
-
const gLibCErrorMessage = (libCString) => {
|
|
6
|
-
const split = libCString.split('.');
|
|
7
|
-
if (split.length !== 2) {
|
|
8
|
-
return null;
|
|
9
|
-
}
|
|
10
|
-
if (split[0] === '2' && Number(split[1]) >= 35) {
|
|
11
|
-
return null;
|
|
12
|
-
}
|
|
13
|
-
if (Number(split[0]) > 2) {
|
|
14
|
-
return null;
|
|
15
|
-
}
|
|
16
|
-
return `Rendering videos requires glibc 2.35 or higher. Your system has glibc ${libCString}.`;
|
|
17
|
-
};
|
|
18
|
-
exports.gLibCErrorMessage = gLibCErrorMessage;
|
|
19
|
-
const checkLibCRequirement = (logLevel, indent) => {
|
|
20
|
-
const { report } = process;
|
|
21
|
-
if (report) {
|
|
22
|
-
// @ts-expect-error no types
|
|
23
|
-
const { glibcVersionRuntime } = report.getReport().header;
|
|
24
|
-
if (!glibcVersionRuntime) {
|
|
25
|
-
return;
|
|
26
|
-
}
|
|
27
|
-
const error = (0, exports.gLibCErrorMessage)(glibcVersionRuntime);
|
|
28
|
-
if (error) {
|
|
29
|
-
logger_1.Log.warn({ logLevel, indent }, error);
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
};
|
|
33
|
-
const checkNodeVersionAndWarnAboutRosetta = (logLevel, indent) => {
|
|
34
|
-
const version = process.version.replace('v', '').split('.');
|
|
35
|
-
const majorVersion = Number(version[0]);
|
|
36
|
-
const requiredNodeVersion = 16;
|
|
37
|
-
if (majorVersion < 16) {
|
|
38
|
-
throw new Error(`Remotion requires at least Node ${requiredNodeVersion}. You currently have ${process.version}. Update your node version to ${requiredNodeVersion} to use Remotion.`);
|
|
39
|
-
}
|
|
40
|
-
checkLibCRequirement(logLevel, indent);
|
|
41
|
-
};
|
|
42
|
-
exports.checkNodeVersionAndWarnAboutRosetta = checkNodeVersionAndWarnAboutRosetta;
|