@remotion/renderer 4.0.247 → 4.0.248
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/browser/browser-download-progress-bar.js +2 -2
- package/dist/client.d.ts +2 -2
- package/dist/get-codec-name.d.ts +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/open-browser.js +2 -2
- package/dist/options/chrome-mode.js +2 -2
- package/dist/options/gl.d.ts +1 -1
- package/dist/options/index.d.ts +2 -2
- package/dist/options/metadata.d.ts +1 -1
- package/dist/options/webhook-custom-data.d.ts +1 -1
- package/ensure-browser.mjs +66 -48
- package/package.json +12 -12
|
@@ -5,10 +5,10 @@ const logger_1 = require("../logger");
|
|
|
5
5
|
const to_megabytes_1 = require("../to-megabytes");
|
|
6
6
|
const defaultBrowserDownloadProgress = ({ indent, logLevel, api, }) => ({ chromeMode }) => {
|
|
7
7
|
if (chromeMode === 'chrome-for-testing') {
|
|
8
|
-
logger_1.Log.info({ indent, logLevel }, 'Downloading Chrome for Testing https://www.remotion.dev/
|
|
8
|
+
logger_1.Log.info({ indent, logLevel }, 'Downloading Chrome for Testing https://www.remotion.dev/chrome-for-testing');
|
|
9
9
|
}
|
|
10
10
|
else {
|
|
11
|
-
logger_1.Log.info({ indent, logLevel }, 'Downloading Chrome Headless Shell https://www.remotion.dev/
|
|
11
|
+
logger_1.Log.info({ indent, logLevel }, 'Downloading Chrome Headless Shell https://www.remotion.dev/chrome-headless-shell');
|
|
12
12
|
}
|
|
13
13
|
logger_1.Log.info({ indent, logLevel }, `Customize this behavior by adding a onBrowserDownload function to ${api}.`);
|
|
14
14
|
let lastProgress = 0;
|
package/dist/client.d.ts
CHANGED
|
@@ -394,7 +394,7 @@ export declare const BrowserSafeApis: {
|
|
|
394
394
|
webhookCustomDataOption: {
|
|
395
395
|
name: string;
|
|
396
396
|
cliFlag: "webhook-custom-data";
|
|
397
|
-
description: (type: "
|
|
397
|
+
description: (type: "cli" | "ssr") => import("react/jsx-runtime").JSX.Element;
|
|
398
398
|
ssrName: "customData";
|
|
399
399
|
docLink: string;
|
|
400
400
|
type: Record<string, unknown> | null;
|
|
@@ -807,7 +807,7 @@ export declare const BrowserSafeApis: {
|
|
|
807
807
|
metadataOption: {
|
|
808
808
|
name: string;
|
|
809
809
|
cliFlag: "metadata";
|
|
810
|
-
description: (mode: "
|
|
810
|
+
description: (mode: "cli" | "ssr") => import("react/jsx-runtime").JSX.Element;
|
|
811
811
|
docLink: string;
|
|
812
812
|
type: import("./options/metadata").Metadata;
|
|
813
813
|
getValue: ({ commandLine }: {
|
package/dist/get-codec-name.d.ts
CHANGED
|
@@ -9,7 +9,7 @@ export declare const hasSpecifiedUnsupportedHardwareQualifySettings: ({ encoding
|
|
|
9
9
|
encodingMaxRate: string | null;
|
|
10
10
|
encodingBufferSize: string | null;
|
|
11
11
|
crf: unknown;
|
|
12
|
-
}) => "
|
|
12
|
+
}) => "encodingMaxRate" | "encodingBufferSize" | "crf" | null;
|
|
13
13
|
export declare const getCodecName: ({ codec, encodingMaxRate, encodingBufferSize, crf, hardwareAcceleration, logLevel, indent, }: {
|
|
14
14
|
codec: Codec;
|
|
15
15
|
hardwareAcceleration: HardwareAccelerationOption;
|
package/dist/index.d.ts
CHANGED
|
@@ -140,7 +140,7 @@ export declare const RenderInternals: {
|
|
|
140
140
|
validPixelFormats: readonly ["yuv420p", "yuva420p", "yuv422p", "yuv444p", "yuv420p10le", "yuv422p10le", "yuv444p10le", "yuva444p10le"];
|
|
141
141
|
DEFAULT_BROWSER: "chrome";
|
|
142
142
|
validateFrameRange: (frameRange: import("./frame-range").FrameRange | null) => void;
|
|
143
|
-
DEFAULT_OPENGL_RENDERER: "
|
|
143
|
+
DEFAULT_OPENGL_RENDERER: "swangle" | "angle" | "egl" | "swiftshader" | "vulkan" | "angle-egl" | null;
|
|
144
144
|
validateOpenGlRenderer: (option: unknown) => import("./options/gl").OpenGlRenderer | null;
|
|
145
145
|
validCodecs: readonly ["h264", "h265", "vp8", "vp9", "mp3", "aac", "wav", "prores", "h264-mkv", "h264-ts", "gif"];
|
|
146
146
|
DEFAULT_PIXEL_FORMAT: "yuv420p" | "yuva420p" | "yuv422p" | "yuv444p" | "yuv420p10le" | "yuv422p10le" | "yuv444p10le" | "yuva444p10le";
|
|
@@ -353,8 +353,8 @@ export declare const RenderInternals: {
|
|
|
353
353
|
}) => execa.ExecaChildProcess<string>;
|
|
354
354
|
validStillImageFormats: readonly ["png", "jpeg", "pdf", "webp"];
|
|
355
355
|
validVideoImageFormats: readonly ["png", "jpeg", "none"];
|
|
356
|
-
DEFAULT_STILL_IMAGE_FORMAT: "
|
|
357
|
-
DEFAULT_VIDEO_IMAGE_FORMAT: "
|
|
356
|
+
DEFAULT_STILL_IMAGE_FORMAT: "png" | "jpeg" | "pdf" | "webp";
|
|
357
|
+
DEFAULT_VIDEO_IMAGE_FORMAT: "png" | "jpeg" | "none";
|
|
358
358
|
DEFAULT_JPEG_QUALITY: number;
|
|
359
359
|
chalk: {
|
|
360
360
|
enabled: () => boolean;
|
package/dist/open-browser.js
CHANGED
|
@@ -38,9 +38,9 @@ const getOpenGlRenderer = (option) => {
|
|
|
38
38
|
if (renderer === 'vulkan') {
|
|
39
39
|
return [
|
|
40
40
|
'--use-angle=vulkan',
|
|
41
|
-
'--use-vulkan=
|
|
41
|
+
'--use-vulkan=native',
|
|
42
42
|
'--disable-vulkan-fallback-to-gl-for-testing',
|
|
43
|
-
'--
|
|
43
|
+
'--ignore-gpu-blocklist',
|
|
44
44
|
'--enable-gpu',
|
|
45
45
|
];
|
|
46
46
|
}
|
|
@@ -13,9 +13,9 @@ exports.chromeModeOption = {
|
|
|
13
13
|
name: 'Chrome Mode',
|
|
14
14
|
ssrName: 'chromeMode',
|
|
15
15
|
description: () => {
|
|
16
|
-
return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: ["One of", ' ', exports.validChromeModeOptions.map((option, i) => ((0, jsx_runtime_1.jsxs)("code", { children: [option, i === exports.validChromeModeOptions.length - 1 ? '' : ', '] }, option))), ". Default ", (0, jsx_runtime_1.jsx)("code", { children: "headless-shell" }), ".
|
|
16
|
+
return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: ["One of", ' ', exports.validChromeModeOptions.map((option, i) => ((0, jsx_runtime_1.jsxs)("code", { children: [option, i === exports.validChromeModeOptions.length - 1 ? '' : ', '] }, option))), ". Default ", (0, jsx_runtime_1.jsx)("code", { children: "headless-shell" }), ".", ' ', (0, jsx_runtime_1.jsxs)("a", { href: "https://remotion.dev/docs/miscellaneous/chrome-headless-shell", children: ["Use ", (0, jsx_runtime_1.jsx)("code", { children: "chrome-for-testing" }), " to take advantage of GPU drivers on Linux."] })] }));
|
|
17
17
|
},
|
|
18
|
-
docLink: 'https://www.remotion.dev/
|
|
18
|
+
docLink: 'https://www.remotion.dev/chrome-for-testing',
|
|
19
19
|
getValue: ({ commandLine }) => {
|
|
20
20
|
if (commandLine[cliFlag]) {
|
|
21
21
|
if (!exports.validChromeModeOptions.includes(commandLine[cliFlag])) {
|
package/dist/options/gl.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export declare const validOpenGlRenderers: readonly ["swangle", "angle", "egl", "swiftshader", "vulkan", "angle-egl"];
|
|
2
2
|
export type OpenGlRenderer = (typeof validOpenGlRenderers)[number];
|
|
3
3
|
export declare const DEFAULT_OPENGL_RENDERER: OpenGlRenderer | null;
|
|
4
|
-
export declare const getChromiumOpenGlRenderer: () => "
|
|
4
|
+
export declare const getChromiumOpenGlRenderer: () => "swangle" | "angle" | "egl" | "swiftshader" | "vulkan" | "angle-egl" | null;
|
|
5
5
|
export declare const setChromiumOpenGlRenderer: (renderer: OpenGlRenderer) => void;
|
|
6
6
|
export declare const glOption: {
|
|
7
7
|
cliFlag: "gl";
|
package/dist/options/index.d.ts
CHANGED
|
@@ -171,7 +171,7 @@ export declare const allOptions: {
|
|
|
171
171
|
webhookCustomDataOption: {
|
|
172
172
|
name: string;
|
|
173
173
|
cliFlag: "webhook-custom-data";
|
|
174
|
-
description: (type: "
|
|
174
|
+
description: (type: "cli" | "ssr") => import("react/jsx-runtime").JSX.Element;
|
|
175
175
|
ssrName: "customData";
|
|
176
176
|
docLink: string;
|
|
177
177
|
type: Record<string, unknown> | null;
|
|
@@ -584,7 +584,7 @@ export declare const allOptions: {
|
|
|
584
584
|
metadataOption: {
|
|
585
585
|
name: string;
|
|
586
586
|
cliFlag: "metadata";
|
|
587
|
-
description: (mode: "
|
|
587
|
+
description: (mode: "cli" | "ssr") => import("react/jsx-runtime").JSX.Element;
|
|
588
588
|
docLink: string;
|
|
589
589
|
type: import("./metadata").Metadata;
|
|
590
590
|
getValue: ({ commandLine }: {
|
|
@@ -2,7 +2,7 @@ export type Metadata = Record<string, string>;
|
|
|
2
2
|
export declare const metadataOption: {
|
|
3
3
|
name: string;
|
|
4
4
|
cliFlag: "metadata";
|
|
5
|
-
description: (mode: "
|
|
5
|
+
description: (mode: "cli" | "ssr") => import("react/jsx-runtime").JSX.Element;
|
|
6
6
|
docLink: string;
|
|
7
7
|
type: Metadata;
|
|
8
8
|
getValue: ({ commandLine }: {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export declare const webhookCustomDataOption: {
|
|
2
2
|
name: string;
|
|
3
3
|
cliFlag: "webhook-custom-data";
|
|
4
|
-
description: (type: "
|
|
4
|
+
description: (type: "cli" | "ssr") => import("react/jsx-runtime").JSX.Element;
|
|
5
5
|
ssrName: "customData";
|
|
6
6
|
docLink: string;
|
|
7
7
|
type: Record<string, unknown> | null;
|
package/ensure-browser.mjs
CHANGED
|
@@ -2545,7 +2545,7 @@ var require_extract_zip = __commonJS((exports, module) => {
|
|
|
2545
2545
|
});
|
|
2546
2546
|
|
|
2547
2547
|
// src/ensure-browser.ts
|
|
2548
|
-
import
|
|
2548
|
+
import fs4 from "fs";
|
|
2549
2549
|
|
|
2550
2550
|
// src/browser/BrowserFetcher.ts
|
|
2551
2551
|
var import_extract_zip = __toESM(require_extract_zip(), 1);
|
|
@@ -3055,12 +3055,19 @@ var TESTED_VERSION = "123.0.6312.86";
|
|
|
3055
3055
|
var PLAYWRIGHT_VERSION = "1105";
|
|
3056
3056
|
function getChromeDownloadUrl({
|
|
3057
3057
|
platform: platform2,
|
|
3058
|
-
version
|
|
3058
|
+
version,
|
|
3059
|
+
chromeMode
|
|
3059
3060
|
}) {
|
|
3060
3061
|
if (platform2 === "linux-arm64") {
|
|
3062
|
+
if (chromeMode === "chrome-for-testing") {
|
|
3063
|
+
throw new Error(`chromeMode: 'chrome-for-testing' is not supported on platform linux-arm64`);
|
|
3064
|
+
}
|
|
3061
3065
|
return `https://playwright.azureedge.net/builds/chromium/${version ?? PLAYWRIGHT_VERSION}/chromium-linux-arm64.zip`;
|
|
3062
3066
|
}
|
|
3063
|
-
|
|
3067
|
+
if (chromeMode === "headless-shell") {
|
|
3068
|
+
return `https://storage.googleapis.com/chrome-for-testing-public/${version ?? TESTED_VERSION}/${platform2}/chrome-headless-shell-${platform2}.zip`;
|
|
3069
|
+
}
|
|
3070
|
+
return `https://storage.googleapis.com/chrome-for-testing-public/${version ?? TESTED_VERSION}/${platform2}/chrome-${platform2}.zip`;
|
|
3064
3071
|
}
|
|
3065
3072
|
var mkdirAsync = fs3.promises.mkdir;
|
|
3066
3073
|
var unlinkAsync = promisify(fs3.unlink.bind(fs3));
|
|
@@ -3084,27 +3091,28 @@ var getPlatform = () => {
|
|
|
3084
3091
|
throw new Error("Unsupported platform: " + platform2);
|
|
3085
3092
|
}
|
|
3086
3093
|
};
|
|
3087
|
-
var
|
|
3088
|
-
|
|
3094
|
+
var getDownloadsFolder = (chromeMode) => {
|
|
3095
|
+
const destination = chromeMode === "headless-shell" ? "chrome-headless-shell" : "chrome-for-testing";
|
|
3089
3096
|
return path3.join(getDownloadsCacheDir(), destination);
|
|
3090
3097
|
};
|
|
3091
3098
|
var downloadBrowser = async ({
|
|
3092
3099
|
logLevel,
|
|
3093
3100
|
indent,
|
|
3094
3101
|
onProgress,
|
|
3095
|
-
version
|
|
3102
|
+
version,
|
|
3103
|
+
chromeMode
|
|
3096
3104
|
}) => {
|
|
3097
3105
|
const platform2 = getPlatform();
|
|
3098
|
-
const downloadURL = getChromeDownloadUrl({ platform: platform2, version });
|
|
3106
|
+
const downloadURL = getChromeDownloadUrl({ platform: platform2, version, chromeMode });
|
|
3099
3107
|
const fileName = downloadURL.split("/").pop();
|
|
3100
3108
|
if (!fileName) {
|
|
3101
3109
|
throw new Error(`A malformed download URL was found: ${downloadURL}.`);
|
|
3102
3110
|
}
|
|
3103
|
-
const downloadsFolder = getDownloadsFolder();
|
|
3111
|
+
const downloadsFolder = getDownloadsFolder(chromeMode);
|
|
3104
3112
|
const archivePath = path3.join(downloadsFolder, fileName);
|
|
3105
3113
|
const outputPath = getFolderPath(downloadsFolder, platform2);
|
|
3106
3114
|
if (await existsAsync(outputPath)) {
|
|
3107
|
-
return getRevisionInfo();
|
|
3115
|
+
return getRevisionInfo(chromeMode);
|
|
3108
3116
|
}
|
|
3109
3117
|
if (!await existsAsync(downloadsFolder)) {
|
|
3110
3118
|
await mkdirAsync(downloadsFolder, {
|
|
@@ -3149,25 +3157,40 @@ var downloadBrowser = async ({
|
|
|
3149
3157
|
await unlinkAsync(archivePath);
|
|
3150
3158
|
}
|
|
3151
3159
|
}
|
|
3152
|
-
const revisionInfo = getRevisionInfo();
|
|
3160
|
+
const revisionInfo = getRevisionInfo(chromeMode);
|
|
3153
3161
|
makeFileExecutableIfItIsNot(revisionInfo.executablePath);
|
|
3154
3162
|
return revisionInfo;
|
|
3155
3163
|
};
|
|
3156
3164
|
var getFolderPath = (downloadsFolder, platform2) => {
|
|
3157
3165
|
return path3.resolve(downloadsFolder, platform2);
|
|
3158
3166
|
};
|
|
3159
|
-
var getExecutablePath = () => {
|
|
3160
|
-
const downloadsFolder = getDownloadsFolder();
|
|
3167
|
+
var getExecutablePath = (chromeMode) => {
|
|
3168
|
+
const downloadsFolder = getDownloadsFolder(chromeMode);
|
|
3161
3169
|
const platform2 = getPlatform();
|
|
3162
3170
|
const folderPath = getFolderPath(downloadsFolder, platform2);
|
|
3163
|
-
|
|
3171
|
+
if (chromeMode === "chrome-for-testing") {
|
|
3172
|
+
if (platform2 === "mac-arm64" || platform2 === "mac-x64") {
|
|
3173
|
+
return path3.join(folderPath, `chrome-${platform2}`, "Google Chrome for Testing.app/Contents/MacOS/Google Chrome for Testing");
|
|
3174
|
+
}
|
|
3175
|
+
if (platform2 === "win64") {
|
|
3176
|
+
return path3.join(folderPath, "chrome-win64", "chrome.exe");
|
|
3177
|
+
}
|
|
3178
|
+
if (platform2 === "linux64" || platform2 === "linux-arm64") {
|
|
3179
|
+
return path3.join(folderPath, "chrome-linux64", "chrome");
|
|
3180
|
+
}
|
|
3181
|
+
throw new Error("unsupported platform" + platform2);
|
|
3182
|
+
}
|
|
3183
|
+
if (chromeMode === "headless-shell") {
|
|
3184
|
+
return path3.join(folderPath, `chrome-headless-shell-${platform2}`, platform2 === "win64" ? "chrome-headless-shell.exe" : "chrome-headless-shell");
|
|
3185
|
+
}
|
|
3186
|
+
throw new Error("unsupported chrome mode" + chromeMode);
|
|
3164
3187
|
};
|
|
3165
|
-
var getRevisionInfo = () => {
|
|
3166
|
-
const executablePath = getExecutablePath();
|
|
3167
|
-
const downloadsFolder = getDownloadsFolder();
|
|
3188
|
+
var getRevisionInfo = (chromeMode) => {
|
|
3189
|
+
const executablePath = getExecutablePath(chromeMode);
|
|
3190
|
+
const downloadsFolder = getDownloadsFolder(chromeMode);
|
|
3168
3191
|
const platform2 = getPlatform();
|
|
3169
3192
|
const folderPath = getFolderPath(downloadsFolder, platform2);
|
|
3170
|
-
const url = getChromeDownloadUrl({ platform: platform2, version: null });
|
|
3193
|
+
const url = getChromeDownloadUrl({ platform: platform2, version: null, chromeMode });
|
|
3171
3194
|
const local = fs3.existsSync(folderPath);
|
|
3172
3195
|
return {
|
|
3173
3196
|
executablePath,
|
|
@@ -3188,68 +3211,62 @@ var defaultBrowserDownloadProgress = ({
|
|
|
3188
3211
|
indent,
|
|
3189
3212
|
logLevel,
|
|
3190
3213
|
api
|
|
3191
|
-
}) => () => {
|
|
3192
|
-
|
|
3214
|
+
}) => ({ chromeMode }) => {
|
|
3215
|
+
if (chromeMode === "chrome-for-testing") {
|
|
3216
|
+
Log.info({ indent, logLevel }, "Downloading Chrome for Testing https://www.remotion.dev/docs/miscellaneous/chrome-headless-shell");
|
|
3217
|
+
} else {
|
|
3218
|
+
Log.info({ indent, logLevel }, "Downloading Chrome Headless Shell https://www.remotion.dev/docs/miscellaneous/chrome-headless-shell");
|
|
3219
|
+
}
|
|
3193
3220
|
Log.info({ indent, logLevel }, `Customize this behavior by adding a onBrowserDownload function to ${api}.`);
|
|
3194
3221
|
let lastProgress = 0;
|
|
3195
3222
|
return {
|
|
3196
3223
|
onProgress: (progress) => {
|
|
3197
3224
|
if (progress.downloadedBytes > lastProgress + 1e7 || progress.percent === 1) {
|
|
3198
3225
|
lastProgress = progress.downloadedBytes;
|
|
3199
|
-
|
|
3226
|
+
if (chromeMode === "chrome-for-testing") {
|
|
3227
|
+
Log.info({ indent, logLevel }, `Downloading Chrome for Testing - ${toMegabytes(progress.downloadedBytes)}/${toMegabytes(progress.totalSizeInBytes)}`);
|
|
3228
|
+
} else {
|
|
3229
|
+
Log.info({ indent, logLevel }, `Downloading Chrome Headless Shell - ${toMegabytes(progress.downloadedBytes)}/${toMegabytes(progress.totalSizeInBytes)}`);
|
|
3230
|
+
}
|
|
3200
3231
|
}
|
|
3201
3232
|
},
|
|
3202
3233
|
version: null
|
|
3203
3234
|
};
|
|
3204
3235
|
};
|
|
3205
3236
|
|
|
3206
|
-
// src/get-local-browser.ts
|
|
3207
|
-
import fs4 from "fs";
|
|
3208
|
-
var getSearchPathsForProduct = () => {
|
|
3209
|
-
return [];
|
|
3210
|
-
};
|
|
3211
|
-
var getLocalBrowser = () => {
|
|
3212
|
-
for (const p of getSearchPathsForProduct()) {
|
|
3213
|
-
if (fs4.existsSync(p)) {
|
|
3214
|
-
return p;
|
|
3215
|
-
}
|
|
3216
|
-
}
|
|
3217
|
-
return null;
|
|
3218
|
-
};
|
|
3219
|
-
|
|
3220
3237
|
// src/ensure-browser.ts
|
|
3221
3238
|
var currentEnsureBrowserOperation = Promise.resolve();
|
|
3222
3239
|
var internalEnsureBrowserUncapped = async ({
|
|
3223
3240
|
indent,
|
|
3224
3241
|
logLevel,
|
|
3225
3242
|
browserExecutable,
|
|
3226
|
-
onBrowserDownload
|
|
3243
|
+
onBrowserDownload,
|
|
3244
|
+
chromeMode
|
|
3227
3245
|
}) => {
|
|
3228
|
-
const status = getBrowserStatus(browserExecutable);
|
|
3246
|
+
const status = getBrowserStatus({ browserExecutable, chromeMode });
|
|
3229
3247
|
if (status.type === "no-browser") {
|
|
3230
|
-
const { onProgress, version } = onBrowserDownload();
|
|
3231
|
-
await downloadBrowser({ indent, logLevel, onProgress, version });
|
|
3248
|
+
const { onProgress, version } = onBrowserDownload({ chromeMode });
|
|
3249
|
+
await downloadBrowser({ indent, logLevel, onProgress, version, chromeMode });
|
|
3232
3250
|
}
|
|
3233
|
-
const newStatus = getBrowserStatus(browserExecutable);
|
|
3251
|
+
const newStatus = getBrowserStatus({ browserExecutable, chromeMode });
|
|
3234
3252
|
return newStatus;
|
|
3235
3253
|
};
|
|
3236
3254
|
var internalEnsureBrowser = (options) => {
|
|
3237
3255
|
currentEnsureBrowserOperation = currentEnsureBrowserOperation.then(() => internalEnsureBrowserUncapped(options));
|
|
3238
3256
|
return currentEnsureBrowserOperation;
|
|
3239
3257
|
};
|
|
3240
|
-
var getBrowserStatus = (
|
|
3258
|
+
var getBrowserStatus = ({
|
|
3259
|
+
browserExecutable,
|
|
3260
|
+
chromeMode
|
|
3261
|
+
}) => {
|
|
3241
3262
|
if (browserExecutable) {
|
|
3242
|
-
if (!
|
|
3263
|
+
if (!fs4.existsSync(browserExecutable)) {
|
|
3243
3264
|
throw new Error(`"browserExecutable" was specified as '${browserExecutable}' but the path doesn't exist. Pass "null" for "browserExecutable" to download a browser automatically.`);
|
|
3244
3265
|
}
|
|
3245
3266
|
return { path: browserExecutable, type: "user-defined-path" };
|
|
3246
3267
|
}
|
|
3247
|
-
const
|
|
3248
|
-
if (
|
|
3249
|
-
return { path: localBrowser, type: "local-browser" };
|
|
3250
|
-
}
|
|
3251
|
-
const revision = getRevisionInfo();
|
|
3252
|
-
if (revision.local && fs5.existsSync(revision.executablePath)) {
|
|
3268
|
+
const revision = getRevisionInfo(chromeMode);
|
|
3269
|
+
if (revision.local && fs4.existsSync(revision.executablePath)) {
|
|
3253
3270
|
return { path: revision.executablePath, type: "local-puppeteer-browser" };
|
|
3254
3271
|
}
|
|
3255
3272
|
return { type: "no-browser" };
|
|
@@ -3265,7 +3282,8 @@ var ensureBrowser = (options) => {
|
|
|
3265
3282
|
api: "ensureBrowser()",
|
|
3266
3283
|
indent: false,
|
|
3267
3284
|
logLevel
|
|
3268
|
-
})
|
|
3285
|
+
}),
|
|
3286
|
+
chromeMode: options?.chromeMode ?? "headless-shell"
|
|
3269
3287
|
});
|
|
3270
3288
|
};
|
|
3271
3289
|
export {
|
package/package.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"url": "https://github.com/remotion-dev/remotion/tree/main/packages/renderer"
|
|
4
4
|
},
|
|
5
5
|
"name": "@remotion/renderer",
|
|
6
|
-
"version": "4.0.
|
|
6
|
+
"version": "4.0.248",
|
|
7
7
|
"description": "Render Remotion videos using Node.js or Bun",
|
|
8
8
|
"main": "dist/index.js",
|
|
9
9
|
"types": "dist/index.d.ts",
|
|
@@ -18,8 +18,8 @@
|
|
|
18
18
|
"extract-zip": "2.0.1",
|
|
19
19
|
"source-map": "^0.8.0-beta.0",
|
|
20
20
|
"ws": "8.17.1",
|
|
21
|
-
"remotion": "4.0.
|
|
22
|
-
"@remotion/streaming": "4.0.
|
|
21
|
+
"remotion": "4.0.248",
|
|
22
|
+
"@remotion/streaming": "4.0.248"
|
|
23
23
|
},
|
|
24
24
|
"peerDependencies": {
|
|
25
25
|
"react": ">=16.8.0",
|
|
@@ -33,17 +33,17 @@
|
|
|
33
33
|
"react-dom": "19.0.0",
|
|
34
34
|
"@types/ws": "8.5.10",
|
|
35
35
|
"eslint": "9.14.0",
|
|
36
|
-
"@remotion/
|
|
37
|
-
"@remotion/
|
|
36
|
+
"@remotion/example-videos": "4.0.248",
|
|
37
|
+
"@remotion/eslint-config-internal": "4.0.248"
|
|
38
38
|
},
|
|
39
39
|
"optionalDependencies": {
|
|
40
|
-
"@remotion/compositor-darwin-
|
|
41
|
-
"@remotion/compositor-darwin-
|
|
42
|
-
"@remotion/compositor-linux-arm64-gnu": "4.0.
|
|
43
|
-
"@remotion/compositor-linux-
|
|
44
|
-
"@remotion/compositor-linux-x64-musl": "4.0.
|
|
45
|
-
"@remotion/compositor-
|
|
46
|
-
"@remotion/compositor-
|
|
40
|
+
"@remotion/compositor-darwin-x64": "4.0.248",
|
|
41
|
+
"@remotion/compositor-darwin-arm64": "4.0.248",
|
|
42
|
+
"@remotion/compositor-linux-arm64-gnu": "4.0.248",
|
|
43
|
+
"@remotion/compositor-linux-arm64-musl": "4.0.248",
|
|
44
|
+
"@remotion/compositor-linux-x64-musl": "4.0.248",
|
|
45
|
+
"@remotion/compositor-win32-x64-msvc": "4.0.248",
|
|
46
|
+
"@remotion/compositor-linux-x64-gnu": "4.0.248"
|
|
47
47
|
},
|
|
48
48
|
"keywords": [
|
|
49
49
|
"remotion",
|