@remotion/renderer 3.2.43-retry.19 → 3.2.44
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.d.ts +2 -4
- package/dist/browser/Browser.js +12 -11
- package/dist/browser/Connection.js +1 -1
- package/dist/browser/DOMWorld.d.ts +1 -2
- package/dist/browser/DOMWorld.js +1 -8
- package/dist/browser/Launcher.js +1 -1
- package/dist/browser/NodeWebSocketTransport.js +1 -1
- package/dist/combine-videos.js +0 -1
- package/dist/cycle-browser-tabs.d.ts +5 -2
- package/dist/cycle-browser-tabs.js +0 -1
- package/dist/get-browser-instance.js +1 -1
- package/dist/get-extension-from-codec.d.ts +1 -1
- package/dist/get-extension-from-codec.js +4 -0
- package/dist/index.d.ts +3 -3
- package/dist/open-browser.js +1 -1
- package/dist/render-frames.js +19 -28
- package/dist/render-media.d.ts +0 -1
- package/dist/render-still.js +1 -1
- package/dist/stitch-frames-to-video.d.ts +0 -1
- package/package.json +3 -3
|
@@ -25,8 +25,7 @@ interface WaitForTargetOptions {
|
|
|
25
25
|
export declare const enum BrowserEmittedEvents {
|
|
26
26
|
TargetChanged = "targetchanged",
|
|
27
27
|
TargetCreated = "targetcreated",
|
|
28
|
-
Closed = "closed"
|
|
29
|
-
ClosedSilent = "closed-silent"
|
|
28
|
+
Closed = "closed"
|
|
30
29
|
}
|
|
31
30
|
export declare class Browser extends EventEmitter {
|
|
32
31
|
#private;
|
|
@@ -36,7 +35,6 @@ export declare class Browser extends EventEmitter {
|
|
|
36
35
|
defaultViewport: Viewport;
|
|
37
36
|
closeCallback?: BrowserCloseCallback;
|
|
38
37
|
}): Promise<Browser>;
|
|
39
|
-
connection: Connection;
|
|
40
38
|
get _targets(): Map<string, Target>;
|
|
41
39
|
constructor(connection: Connection, contextIds: string[], defaultViewport: Viewport, closeCallback?: BrowserCloseCallback);
|
|
42
40
|
browserContexts(): BrowserContext[];
|
|
@@ -45,7 +43,7 @@ export declare class Browser extends EventEmitter {
|
|
|
45
43
|
targets(): Target[];
|
|
46
44
|
waitForTarget(predicate: (x: Target) => boolean | Promise<boolean>, options?: WaitForTargetOptions): Promise<Target>;
|
|
47
45
|
pages(): Promise<Page[]>;
|
|
48
|
-
close(
|
|
46
|
+
close(): Promise<void>;
|
|
49
47
|
disconnect(): void;
|
|
50
48
|
}
|
|
51
49
|
export declare class BrowserContext extends EventEmitter {
|
package/dist/browser/Browser.js
CHANGED
|
@@ -25,7 +25,7 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
|
|
|
25
25
|
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
26
26
|
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
27
27
|
};
|
|
28
|
-
var _Browser_instances, _Browser_defaultViewport, _Browser_closeCallback, _Browser_defaultContext, _Browser_contexts, _Browser_targets, _Browser_targetCreated, _Browser_targetDestroyed, _Browser_targetInfoChanged, _BrowserContext_browser, _BrowserContext_id;
|
|
28
|
+
var _Browser_instances, _Browser_defaultViewport, _Browser_connection, _Browser_closeCallback, _Browser_defaultContext, _Browser_contexts, _Browser_targets, _Browser_targetCreated, _Browser_targetDestroyed, _Browser_targetInfoChanged, _BrowserContext_browser, _BrowserContext_id;
|
|
29
29
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
30
30
|
exports.BrowserContext = exports.Browser = void 0;
|
|
31
31
|
const assert_1 = require("./assert");
|
|
@@ -38,12 +38,13 @@ class Browser extends EventEmitter_1.EventEmitter {
|
|
|
38
38
|
super();
|
|
39
39
|
_Browser_instances.add(this);
|
|
40
40
|
_Browser_defaultViewport.set(this, void 0);
|
|
41
|
+
_Browser_connection.set(this, void 0);
|
|
41
42
|
_Browser_closeCallback.set(this, void 0);
|
|
42
43
|
_Browser_defaultContext.set(this, void 0);
|
|
43
44
|
_Browser_contexts.set(this, void 0);
|
|
44
45
|
_Browser_targets.set(this, void 0);
|
|
45
46
|
__classPrivateFieldSet(this, _Browser_defaultViewport, defaultViewport, "f");
|
|
46
|
-
this
|
|
47
|
+
__classPrivateFieldSet(this, _Browser_connection, connection, "f");
|
|
47
48
|
__classPrivateFieldSet(this, _Browser_closeCallback, closeCallback ||
|
|
48
49
|
function () {
|
|
49
50
|
return undefined;
|
|
@@ -54,9 +55,9 @@ class Browser extends EventEmitter_1.EventEmitter {
|
|
|
54
55
|
__classPrivateFieldGet(this, _Browser_contexts, "f").set(contextId, new BrowserContext(this, contextId));
|
|
55
56
|
}
|
|
56
57
|
__classPrivateFieldSet(this, _Browser_targets, new Map(), "f");
|
|
57
|
-
this.
|
|
58
|
-
this.
|
|
59
|
-
this.
|
|
58
|
+
__classPrivateFieldGet(this, _Browser_connection, "f").on('Target.targetCreated', __classPrivateFieldGet(this, _Browser_instances, "m", _Browser_targetCreated).bind(this));
|
|
59
|
+
__classPrivateFieldGet(this, _Browser_connection, "f").on('Target.targetDestroyed', __classPrivateFieldGet(this, _Browser_instances, "m", _Browser_targetDestroyed).bind(this));
|
|
60
|
+
__classPrivateFieldGet(this, _Browser_connection, "f").on('Target.targetInfoChanged', __classPrivateFieldGet(this, _Browser_instances, "m", _Browser_targetInfoChanged).bind(this));
|
|
60
61
|
}
|
|
61
62
|
static async _create({ connection, contextIds, defaultViewport, closeCallback, }) {
|
|
62
63
|
const browser = new Browser(connection, contextIds, defaultViewport, closeCallback);
|
|
@@ -73,7 +74,7 @@ class Browser extends EventEmitter_1.EventEmitter {
|
|
|
73
74
|
return __classPrivateFieldGet(this, _Browser_defaultContext, "f").newPage();
|
|
74
75
|
}
|
|
75
76
|
async _createPageInContext(contextId) {
|
|
76
|
-
const { targetId } = await this.
|
|
77
|
+
const { targetId } = await __classPrivateFieldGet(this, _Browser_connection, "f").send('Target.createTarget', {
|
|
77
78
|
url: 'about:blank',
|
|
78
79
|
browserContextId: contextId || undefined,
|
|
79
80
|
});
|
|
@@ -132,17 +133,17 @@ class Browser extends EventEmitter_1.EventEmitter {
|
|
|
132
133
|
return acc.concat(x);
|
|
133
134
|
}, []);
|
|
134
135
|
}
|
|
135
|
-
async close(
|
|
136
|
+
async close() {
|
|
136
137
|
await __classPrivateFieldGet(this, _Browser_closeCallback, "f").call(null);
|
|
137
138
|
this.disconnect();
|
|
138
|
-
this.emit(
|
|
139
|
+
this.emit("closed" /* BrowserEmittedEvents.Closed */);
|
|
139
140
|
}
|
|
140
141
|
disconnect() {
|
|
141
|
-
this.
|
|
142
|
+
__classPrivateFieldGet(this, _Browser_connection, "f").dispose();
|
|
142
143
|
}
|
|
143
144
|
}
|
|
144
145
|
exports.Browser = Browser;
|
|
145
|
-
_Browser_defaultViewport = new WeakMap(), _Browser_closeCallback = new WeakMap(), _Browser_defaultContext = new WeakMap(), _Browser_contexts = new WeakMap(), _Browser_targets = new WeakMap(), _Browser_instances = new WeakSet(), _Browser_targetCreated = async function _Browser_targetCreated(event) {
|
|
146
|
+
_Browser_defaultViewport = new WeakMap(), _Browser_connection = new WeakMap(), _Browser_closeCallback = new WeakMap(), _Browser_defaultContext = new WeakMap(), _Browser_contexts = new WeakMap(), _Browser_targets = new WeakMap(), _Browser_instances = new WeakSet(), _Browser_targetCreated = async function _Browser_targetCreated(event) {
|
|
146
147
|
var _a;
|
|
147
148
|
const { targetInfo } = event;
|
|
148
149
|
const { browserContextId } = targetInfo;
|
|
@@ -153,7 +154,7 @@ _Browser_defaultViewport = new WeakMap(), _Browser_closeCallback = new WeakMap()
|
|
|
153
154
|
throw new Error('Missing browser context');
|
|
154
155
|
}
|
|
155
156
|
const target = new Target_1.Target(targetInfo, context, () => {
|
|
156
|
-
return this.
|
|
157
|
+
return __classPrivateFieldGet(this, _Browser_connection, "f").createSession(targetInfo);
|
|
157
158
|
}, (_a = __classPrivateFieldGet(this, _Browser_defaultViewport, "f")) !== null && _a !== void 0 ? _a : null);
|
|
158
159
|
(0, assert_1.assert)(!__classPrivateFieldGet(this, _Browser_targets, "f").has(event.targetInfo.targetId), 'Target should not exist before targetCreated');
|
|
159
160
|
__classPrivateFieldGet(this, _Browser_targets, "f").set(event.targetInfo.targetId, target);
|
|
@@ -215,11 +215,11 @@ class CDPSession extends EventEmitter_1.EventEmitter {
|
|
|
215
215
|
}
|
|
216
216
|
}
|
|
217
217
|
_onClosed() {
|
|
218
|
-
__classPrivateFieldSet(this, _CDPSession_connection, undefined, "f");
|
|
219
218
|
for (const callback of __classPrivateFieldGet(this, _CDPSession_callbacks, "f").values()) {
|
|
220
219
|
callback.reject(rewriteError(callback.error, `Protocol error (${callback.method}): Target closed. https://www.remotion.dev/docs/target-closed`));
|
|
221
220
|
}
|
|
222
221
|
__classPrivateFieldGet(this, _CDPSession_callbacks, "f").clear();
|
|
222
|
+
__classPrivateFieldSet(this, _CDPSession_connection, undefined, "f");
|
|
223
223
|
this.emit(exports.CDPSessionEmittedEvents.Disconnected);
|
|
224
224
|
}
|
|
225
225
|
id() {
|
|
@@ -46,8 +46,7 @@ declare class WaitTask {
|
|
|
46
46
|
promise: Promise<JSHandle>;
|
|
47
47
|
constructor(options: WaitTaskOptions);
|
|
48
48
|
onBrowserClose: () => void;
|
|
49
|
-
|
|
50
|
-
terminate(error: Error | null): void;
|
|
49
|
+
terminate(error: Error): void;
|
|
51
50
|
rerun(): Promise<void>;
|
|
52
51
|
}
|
|
53
52
|
export {};
|
package/dist/browser/DOMWorld.js
CHANGED
|
@@ -131,9 +131,6 @@ class WaitTask {
|
|
|
131
131
|
this.onBrowserClose = () => {
|
|
132
132
|
return this.terminate(new Error('Browser was closed'));
|
|
133
133
|
};
|
|
134
|
-
this.onBrowserCloseSilent = () => {
|
|
135
|
-
return this.terminate(null);
|
|
136
|
-
};
|
|
137
134
|
function getPredicateBody(predicateBody) {
|
|
138
135
|
if ((0, util_1.isString)(predicateBody)) {
|
|
139
136
|
return `return (${predicateBody});`;
|
|
@@ -160,14 +157,11 @@ class WaitTask {
|
|
|
160
157
|
}
|
|
161
158
|
__classPrivateFieldSet(this, _WaitTask_browser, options.browser, "f");
|
|
162
159
|
__classPrivateFieldGet(this, _WaitTask_browser, "f").on("closed" /* BrowserEmittedEvents.Closed */, this.onBrowserClose);
|
|
163
|
-
__classPrivateFieldGet(this, _WaitTask_browser, "f").on("closed-silent" /* BrowserEmittedEvents.ClosedSilent */, this.onBrowserCloseSilent);
|
|
164
160
|
this.rerun();
|
|
165
161
|
}
|
|
166
162
|
terminate(error) {
|
|
167
163
|
__classPrivateFieldSet(this, _WaitTask_terminated, true, "f");
|
|
168
|
-
|
|
169
|
-
__classPrivateFieldGet(this, _WaitTask_reject, "f").call(this, error);
|
|
170
|
-
}
|
|
164
|
+
__classPrivateFieldGet(this, _WaitTask_reject, "f").call(this, error);
|
|
171
165
|
__classPrivateFieldGet(this, _WaitTask_instances, "m", _WaitTask_cleanup).call(this);
|
|
172
166
|
}
|
|
173
167
|
async rerun() {
|
|
@@ -248,7 +242,6 @@ _WaitTask_domWorld = new WeakMap(), _WaitTask_timeout = new WeakMap(), _WaitTask
|
|
|
248
242
|
clearTimeout(__classPrivateFieldGet(this, _WaitTask_timeoutTimer, "f"));
|
|
249
243
|
}
|
|
250
244
|
__classPrivateFieldGet(this, _WaitTask_browser, "f").off("closed" /* BrowserEmittedEvents.Closed */, this.onBrowserClose);
|
|
251
|
-
__classPrivateFieldGet(this, _WaitTask_browser, "f").off("closed-silent" /* BrowserEmittedEvents.ClosedSilent */, this.onBrowserCloseSilent);
|
|
252
245
|
__classPrivateFieldGet(this, _WaitTask_domWorld, "f")._waitTasks.delete(this);
|
|
253
246
|
};
|
|
254
247
|
function waitForPredicatePageFunction(predicateBody, timeout, ...args) {
|
package/dist/browser/Launcher.js
CHANGED
package/dist/combine-videos.js
CHANGED
|
@@ -1,4 +1,7 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
|
|
1
|
+
import type { openBrowser } from './open-browser';
|
|
2
|
+
declare type Await<T> = T extends PromiseLike<infer U> ? U : T;
|
|
3
|
+
declare type Browser = Await<ReturnType<typeof openBrowser>>;
|
|
4
|
+
export declare const cycleBrowserTabs: (puppeteerInstance: Browser, concurrency: number) => {
|
|
3
5
|
stopCycling: () => void;
|
|
4
6
|
};
|
|
7
|
+
export {};
|
|
@@ -26,7 +26,7 @@ const getPageAndCleanupFn = async ({ passedInInstance, browserExecutable, chromi
|
|
|
26
26
|
page: browserPage,
|
|
27
27
|
cleanup: () => {
|
|
28
28
|
// Close whole browser that was just created and don't wait for it to finish.
|
|
29
|
-
browserInstance.close(
|
|
29
|
+
browserInstance.close().catch((err) => {
|
|
30
30
|
console.error('Was not able to close puppeteer page', err);
|
|
31
31
|
});
|
|
32
32
|
},
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import type { Codec } from './codec';
|
|
2
|
-
export declare const getFileExtensionFromCodec: (codec: Codec, type: 'chunk' | 'final') => "mp3" | "aac" | "wav" | "gif" | "
|
|
2
|
+
export declare const getFileExtensionFromCodec: (codec: Codec, type: 'chunk' | 'final') => "mp3" | "aac" | "wav" | "gif" | "mp4" | "mkv" | "mov" | "webm";
|
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getFileExtensionFromCodec = void 0;
|
|
4
|
+
const codec_1 = require("./codec");
|
|
4
5
|
const getFileExtensionFromCodec = (codec, type) => {
|
|
6
|
+
if (!codec_1.validCodecs.includes(codec)) {
|
|
7
|
+
throw new Error(`Codec must be one of the following: ${codec_1.validCodecs.join(', ')}, but got ${codec}`);
|
|
8
|
+
}
|
|
5
9
|
switch (codec) {
|
|
6
10
|
case 'aac':
|
|
7
11
|
return 'aac';
|
package/dist/index.d.ts
CHANGED
|
@@ -57,7 +57,7 @@ export declare const RenderInternals: {
|
|
|
57
57
|
scale: number;
|
|
58
58
|
codec: "h264" | "h265" | "vp8" | "vp9" | "mp3" | "aac" | "wav" | "prores" | "h264-mkv" | "gif";
|
|
59
59
|
}) => void;
|
|
60
|
-
getFileExtensionFromCodec: (codec: "h264" | "h265" | "vp8" | "vp9" | "mp3" | "aac" | "wav" | "prores" | "h264-mkv" | "gif", type: "chunk" | "final") => "mp3" | "aac" | "wav" | "gif" | "
|
|
60
|
+
getFileExtensionFromCodec: (codec: "h264" | "h265" | "vp8" | "vp9" | "mp3" | "aac" | "wav" | "prores" | "h264-mkv" | "gif", type: "chunk" | "final") => "mp3" | "aac" | "wav" | "gif" | "mp4" | "mkv" | "mov" | "webm";
|
|
61
61
|
tmpDir: (str: string) => string;
|
|
62
62
|
deleteDirectory: (directory: string) => Promise<void>;
|
|
63
63
|
isServeUrl: (potentialUrl: string) => boolean;
|
|
@@ -111,8 +111,8 @@ export declare const RenderInternals: {
|
|
|
111
111
|
validPixelFormats: readonly ["yuv420p", "yuva420p", "yuv422p", "yuv444p", "yuv420p10le", "yuv422p10le", "yuv444p10le", "yuva444p10le"];
|
|
112
112
|
DEFAULT_BROWSER: import("./browser").Browser;
|
|
113
113
|
validateFrameRange: (frameRange: import("./frame-range").FrameRange | null) => void;
|
|
114
|
-
DEFAULT_OPENGL_RENDERER: "
|
|
115
|
-
validateOpenGlRenderer: (option: "
|
|
114
|
+
DEFAULT_OPENGL_RENDERER: "swangle" | "angle" | "egl" | "swiftshader" | null;
|
|
115
|
+
validateOpenGlRenderer: (option: "swangle" | "angle" | "egl" | "swiftshader" | null) => "swangle" | "angle" | "egl" | "swiftshader" | null;
|
|
116
116
|
validImageFormats: readonly ["png", "jpeg", "none"];
|
|
117
117
|
validCodecs: readonly ["h264", "h265", "vp8", "vp9", "mp3", "aac", "wav", "prores", "h264-mkv", "gif"];
|
|
118
118
|
DEFAULT_PIXEL_FORMAT: "yuv420p" | "yuva420p" | "yuv422p" | "yuv444p" | "yuv420p10le" | "yuv422p10le" | "yuv444p10le" | "yuva444p10le";
|
package/dist/open-browser.js
CHANGED
package/dist/render-frames.js
CHANGED
|
@@ -27,7 +27,6 @@ const prepare_server_1 = require("./prepare-server");
|
|
|
27
27
|
const provide_screenshot_1 = require("./provide-screenshot");
|
|
28
28
|
const puppeteer_evaluate_1 = require("./puppeteer-evaluate");
|
|
29
29
|
const quality_1 = require("./quality");
|
|
30
|
-
const replace_browser_1 = require("./replace-browser");
|
|
31
30
|
const seek_to_frame_1 = require("./seek-to-frame");
|
|
32
31
|
const set_props_and_env_1 = require("./set-props-and-env");
|
|
33
32
|
const truthy_1 = require("./truthy");
|
|
@@ -56,7 +55,10 @@ const getPool = async (pages) => {
|
|
|
56
55
|
const pool = new pool_1.Pool(puppeteerPages);
|
|
57
56
|
return pool;
|
|
58
57
|
};
|
|
59
|
-
const innerRenderFrames = ({ onFrameUpdate, outputDir, onStart, inputProps, quality, imageFormat = image_format_1.DEFAULT_IMAGE_FORMAT, frameRange, onError, envVariables, onBrowserLog, onFrameBuffer, onDownload, pagesArray, serveUrl, composition, timeoutInMilliseconds, scale, actualConcurrency, everyNthFrame = 1, proxyPort, cancelSignal, downloadMap, muted,
|
|
58
|
+
const innerRenderFrames = ({ onFrameUpdate, outputDir, onStart, inputProps, quality, imageFormat = image_format_1.DEFAULT_IMAGE_FORMAT, frameRange, puppeteerInstance, onError, envVariables, onBrowserLog, onFrameBuffer, onDownload, pagesArray, serveUrl, composition, timeoutInMilliseconds, scale, actualConcurrency, everyNthFrame = 1, proxyPort, cancelSignal, downloadMap, muted, }) => {
|
|
59
|
+
if (!puppeteerInstance) {
|
|
60
|
+
throw new Error('no puppeteer instance passed to innerRenderFrames - internal error');
|
|
61
|
+
}
|
|
60
62
|
if (outputDir) {
|
|
61
63
|
if (!fs_1.default.existsSync(outputDir)) {
|
|
62
64
|
fs_1.default.mkdirSync(outputDir, {
|
|
@@ -69,9 +71,8 @@ const innerRenderFrames = ({ onFrameUpdate, outputDir, onStart, inputProps, qual
|
|
|
69
71
|
const framesToRender = (0, get_duration_from_frame_range_1.getFramesToRender)(realFrameRange, everyNthFrame);
|
|
70
72
|
const lastFrame = framesToRender[framesToRender.length - 1];
|
|
71
73
|
const makePage = async () => {
|
|
72
|
-
const page = await
|
|
74
|
+
const page = await puppeteerInstance.newPage();
|
|
73
75
|
pagesArray.push(page);
|
|
74
|
-
console.log('Made new page');
|
|
75
76
|
await page.setViewport({
|
|
76
77
|
width: composition.width,
|
|
77
78
|
height: composition.height,
|
|
@@ -127,7 +128,7 @@ const innerRenderFrames = ({ onFrameUpdate, outputDir, onStart, inputProps, qual
|
|
|
127
128
|
page.off('console', logCallback);
|
|
128
129
|
return page;
|
|
129
130
|
};
|
|
130
|
-
const pages = new Array(actualConcurrency).fill(true).map(
|
|
131
|
+
const pages = new Array(actualConcurrency).fill(true).map(makePage);
|
|
131
132
|
// If rendering a GIF and skipping frames, we must ensure it starts from 0
|
|
132
133
|
// and then is consecutive so FFMPEG recognizes the sequence
|
|
133
134
|
const countType = everyNthFrame === 1 ? 'actual-frames' : 'from-zero';
|
|
@@ -238,13 +239,12 @@ const innerRenderFrames = ({ onFrameUpdate, outputDir, onStart, inputProps, qual
|
|
|
238
239
|
});
|
|
239
240
|
};
|
|
240
241
|
const renderFrameAndRetryTargetClose = async (frame, index, retriesLeft, attempt) => {
|
|
241
|
-
var _a
|
|
242
|
+
var _a;
|
|
242
243
|
try {
|
|
243
244
|
await renderFrame(frame, index);
|
|
244
245
|
}
|
|
245
246
|
catch (err) {
|
|
246
|
-
if (!((_a = err === null || err === void 0 ? void 0 : err.message) === null || _a === void 0 ? void 0 : _a.includes('Target closed'))
|
|
247
|
-
!((_b = err === null || err === void 0 ? void 0 : err.message) === null || _b === void 0 ? void 0 : _b.includes('Session closed'))) {
|
|
247
|
+
if (!((_a = err === null || err === void 0 ? void 0 : err.message) === null || _a === void 0 ? void 0 : _a.includes('Target closed'))) {
|
|
248
248
|
throw err;
|
|
249
249
|
}
|
|
250
250
|
if (retriesLeft === 0) {
|
|
@@ -253,8 +253,6 @@ const innerRenderFrames = ({ onFrameUpdate, outputDir, onStart, inputProps, qual
|
|
|
253
253
|
}
|
|
254
254
|
console.warn(`The browser crashed while rendering frame ${frame}, retrying ${retriesLeft} more times. Learn more about this error under https://www.remotion.dev/docs/target-closed`);
|
|
255
255
|
const pool = await poolPromise;
|
|
256
|
-
await browserReplacer.replaceBrowser(makeBrowser);
|
|
257
|
-
console.log('Successfully replaced browser');
|
|
258
256
|
const page = await makePage();
|
|
259
257
|
pool.release(page);
|
|
260
258
|
await renderFrameAndRetryTargetClose(frame, index, retriesLeft - 1, attempt + 1);
|
|
@@ -281,7 +279,7 @@ const innerRenderFrames = ({ onFrameUpdate, outputDir, onStart, inputProps, qual
|
|
|
281
279
|
.then(() => happyPath);
|
|
282
280
|
};
|
|
283
281
|
const renderFrames = (options) => {
|
|
284
|
-
var _a, _b, _c;
|
|
282
|
+
var _a, _b, _c, _d;
|
|
285
283
|
const composition = getComposition(options);
|
|
286
284
|
const concurrency = getConcurrency(options);
|
|
287
285
|
if (!composition) {
|
|
@@ -297,18 +295,14 @@ const renderFrames = (options) => {
|
|
|
297
295
|
const selectedServeUrl = (0, legacy_webpack_config_1.getServeUrlWithFallback)(options);
|
|
298
296
|
(0, quality_1.validateQuality)(options.quality);
|
|
299
297
|
(0, validate_scale_1.validateScale)(options.scale);
|
|
300
|
-
const
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
};
|
|
309
|
-
const browserInstance = (_a = options.puppeteerInstance) !== null && _a !== void 0 ? _a : makeBrowser();
|
|
310
|
-
const downloadMap = (_b = options.downloadMap) !== null && _b !== void 0 ? _b : (0, download_map_1.makeDownloadMap)();
|
|
311
|
-
const onDownload = (_c = options.onDownload) !== null && _c !== void 0 ? _c : (() => () => undefined);
|
|
298
|
+
const browserInstance = (_a = options.puppeteerInstance) !== null && _a !== void 0 ? _a : (0, open_browser_1.openBrowser)(browser_1.DEFAULT_BROWSER, {
|
|
299
|
+
shouldDumpIo: options.dumpBrowserLogs,
|
|
300
|
+
browserExecutable: options.browserExecutable,
|
|
301
|
+
chromiumOptions: options.chromiumOptions,
|
|
302
|
+
forceDeviceScaleFactor: (_b = options.scale) !== null && _b !== void 0 ? _b : 1,
|
|
303
|
+
});
|
|
304
|
+
const downloadMap = (_c = options.downloadMap) !== null && _c !== void 0 ? _c : (0, download_map_1.makeDownloadMap)();
|
|
305
|
+
const onDownload = (_d = options.onDownload) !== null && _d !== void 0 ? _d : (() => () => undefined);
|
|
312
306
|
const actualConcurrency = (0, get_concurrency_1.getActualConcurrency)(concurrency !== null && concurrency !== void 0 ? concurrency : null);
|
|
313
307
|
const openedPages = [];
|
|
314
308
|
return new Promise((resolve, reject) => {
|
|
@@ -336,8 +330,7 @@ const renderFrames = (options) => {
|
|
|
336
330
|
}),
|
|
337
331
|
browserInstance,
|
|
338
332
|
]).then(([{ serveUrl, closeServer, offthreadPort }, puppeteerInstance]) => {
|
|
339
|
-
const
|
|
340
|
-
const { stopCycling } = (0, cycle_browser_tabs_1.cycleBrowserTabs)(browserReplacer, actualConcurrency);
|
|
333
|
+
const { stopCycling } = (0, cycle_browser_tabs_1.cycleBrowserTabs)(puppeteerInstance, actualConcurrency);
|
|
341
334
|
cleanup.push(stopCycling);
|
|
342
335
|
cleanup.push(closeServer);
|
|
343
336
|
return innerRenderFrames({
|
|
@@ -351,8 +344,6 @@ const renderFrames = (options) => {
|
|
|
351
344
|
onDownload,
|
|
352
345
|
proxyPort: offthreadPort,
|
|
353
346
|
downloadMap,
|
|
354
|
-
makeBrowser,
|
|
355
|
-
browserReplacer,
|
|
356
347
|
});
|
|
357
348
|
}),
|
|
358
349
|
])
|
|
@@ -372,7 +363,7 @@ const renderFrames = (options) => {
|
|
|
372
363
|
else {
|
|
373
364
|
Promise.resolve(browserInstance)
|
|
374
365
|
.then((puppeteerInstance) => {
|
|
375
|
-
return puppeteerInstance.close(
|
|
366
|
+
return puppeteerInstance.close();
|
|
376
367
|
})
|
|
377
368
|
.catch((err) => {
|
|
378
369
|
console.log('Unable to close browser', err);
|
package/dist/render-media.d.ts
CHANGED
package/dist/render-still.js
CHANGED
|
@@ -105,7 +105,7 @@ const innerRenderStill = async ({ composition, quality, imageFormat = 'png', ser
|
|
|
105
105
|
await page.close();
|
|
106
106
|
}
|
|
107
107
|
else {
|
|
108
|
-
browserInstance.close(
|
|
108
|
+
browserInstance.close().catch((err) => {
|
|
109
109
|
console.log('Unable to close browser', err);
|
|
110
110
|
});
|
|
111
111
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@remotion/renderer",
|
|
3
|
-
"version": "3.2.
|
|
3
|
+
"version": "3.2.44",
|
|
4
4
|
"description": "Renderer for Remotion",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
"dependencies": {
|
|
23
23
|
"execa": "5.1.1",
|
|
24
24
|
"extract-zip": "2.0.1",
|
|
25
|
-
"remotion": "3.2.
|
|
25
|
+
"remotion": "3.2.44",
|
|
26
26
|
"source-map": "^0.8.0-beta.0",
|
|
27
27
|
"ws": "8.7.0"
|
|
28
28
|
},
|
|
@@ -57,5 +57,5 @@
|
|
|
57
57
|
"publishConfig": {
|
|
58
58
|
"access": "public"
|
|
59
59
|
},
|
|
60
|
-
"gitHead": "
|
|
60
|
+
"gitHead": "443b4b387b78905e747ebe69b3b91ee85966796d"
|
|
61
61
|
}
|