@remotion/renderer 4.0.0-alpha13 → 4.0.0-alpha16
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/assets/download-and-map-assets-to-file.d.ts +6 -4
- package/dist/assets/download-and-map-assets-to-file.js +30 -6
- package/dist/assets/download-file.d.ts +2 -2
- package/dist/assets/download-map.d.ts +3 -3
- package/dist/assets/ffmpeg-volume-expression.d.ts +2 -2
- package/dist/assets/get-audio-channels.d.ts +1 -0
- package/dist/assets/get-audio-channels.js +10 -5
- package/dist/assets/read-file.js +1 -1
- package/dist/assets/types.d.ts +4 -4
- package/dist/audio-codec.d.ts +2 -2
- package/dist/browser/Browser.d.ts +9 -9
- package/dist/browser/Browser.js +26 -32
- package/dist/browser/BrowserFetcher.d.ts +1 -1
- package/dist/browser/BrowserPage.d.ts +11 -2
- package/dist/browser/BrowserPage.js +47 -12
- package/dist/browser/BrowserRunner.js +19 -2
- package/dist/browser/ConsoleMessage.d.ts +1 -1
- package/dist/browser/DOMWorld.js +8 -8
- package/dist/browser/EvalTypes.d.ts +7 -7
- package/dist/browser/FrameManager.js +11 -11
- package/dist/browser/JSHandle.js +14 -14
- package/dist/browser/LaunchOptions.d.ts +1 -1
- package/dist/browser/Launcher.js +0 -1
- package/dist/browser/LifecycleWatcher.d.ts +1 -1
- package/dist/browser/NetworkEventManager.d.ts +4 -4
- package/dist/browser/NodeWebSocketTransport.js +16 -16
- package/dist/browser/Product.d.ts +1 -1
- package/dist/browser/Target.d.ts +2 -1
- package/dist/browser/Target.js +8 -2
- package/dist/browser/devtools-types.d.ts +10 -10
- package/dist/browser/mitt/index.d.ts +6 -6
- package/dist/browser/revisions.d.ts +1 -1
- package/dist/browser/should-log-message.d.ts +24 -0
- package/dist/browser/should-log-message.js +72 -0
- package/dist/browser-executable.d.ts +1 -1
- package/dist/browser-log.d.ts +1 -1
- package/dist/browser.d.ts +1 -1
- package/dist/chalk/index.d.ts +4 -4
- package/dist/codec-supports-media.d.ts +1 -1
- package/dist/codec.d.ts +2 -2
- package/dist/combine-videos.d.ts +1 -1
- package/dist/compositor/compose.d.ts +11 -2
- package/dist/compositor/compose.js +15 -4
- package/dist/compositor/compositor.d.ts +1 -1
- package/dist/compositor/compositor.js +19 -7
- package/dist/compositor/payloads.d.ts +5 -5
- package/dist/crf.d.ts +1 -1
- package/dist/error-handling/symbolicate-error.js +4 -2
- package/dist/ffmpeg-override.d.ts +1 -1
- package/dist/file-extensions.d.ts +1 -1
- package/dist/frame-range.d.ts +1 -1
- package/dist/get-browser-instance.d.ts +6 -1
- package/dist/get-browser-instance.js +9 -4
- package/dist/get-compositions.d.ts +18 -11
- package/dist/get-compositions.js +66 -49
- package/dist/get-frame-padded-index.d.ts +1 -1
- package/dist/image-format.d.ts +3 -3
- package/dist/index.d.ts +106 -16
- package/dist/index.js +25 -13
- package/dist/jpeg-quality.d.ts +1 -0
- package/dist/jpeg-quality.js +2 -1
- package/dist/log-level.d.ts +1 -1
- package/dist/logger.d.ts +5 -3
- package/dist/logger.js +12 -5
- package/dist/make-cancel-signal.d.ts +2 -2
- package/dist/merge-audio-track.d.ts +1 -1
- package/dist/mime-types.js +1 -1
- package/dist/offthread-video-server.d.ts +36 -4
- package/dist/offthread-video-server.js +48 -4
- package/dist/open-browser.d.ts +19 -10
- package/dist/open-browser.js +34 -21
- package/dist/options/option.d.ts +1 -1
- package/dist/parse-browser-error-stack.d.ts +1 -1
- package/dist/perf.d.ts +1 -1
- package/dist/pixel-format.d.ts +1 -1
- package/dist/prepare-server.d.ts +20 -8
- package/dist/prepare-server.js +52 -8
- package/dist/preprocess-audio-track.d.ts +2 -2
- package/dist/prespawn-ffmpeg.d.ts +1 -1
- package/dist/prespawn-ffmpeg.js +7 -7
- package/dist/prores-profile.d.ts +1 -1
- package/dist/puppeteer-screenshot.js +1 -2
- package/dist/render-frames.d.ts +32 -11
- package/dist/render-frames.js +112 -77
- package/dist/render-media.d.ts +50 -21
- package/dist/render-media.js +249 -197
- package/dist/render-still.d.ts +33 -18
- package/dist/render-still.js +71 -43
- package/dist/replace-browser.d.ts +1 -1
- package/dist/select-composition.d.ts +19 -11
- package/dist/select-composition.js +79 -42
- package/dist/serve-static.d.ts +2 -3
- package/dist/serve-static.js +2 -4
- package/dist/set-props-and-env.d.ts +1 -1
- package/dist/stitch-frames-to-video.d.ts +32 -10
- package/dist/stitch-frames-to-video.js +121 -99
- package/dist/stringify-ffmpeg-filter.d.ts +2 -2
- package/dist/symbolicate-stacktrace.d.ts +16 -3
- package/dist/symbolicate-stacktrace.js +49 -24
- package/dist/truthy.d.ts +1 -1
- package/dist/types.d.ts +2 -2
- package/dist/validate-opengl-renderer.d.ts +1 -1
- package/package.json +11 -11
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
import type { CompositorCommand } from './payloads';
|
|
3
|
-
export
|
|
3
|
+
export type Compositor = {
|
|
4
4
|
finishCommands: () => void;
|
|
5
5
|
executeCommand: <T extends keyof CompositorCommand>(type: T, payload: CompositorCommand[T]) => Promise<Buffer>;
|
|
6
6
|
waitForDone: () => Promise<void>;
|
|
@@ -45,7 +45,7 @@ const startCompositor = (type, payload, indent) => {
|
|
|
45
45
|
const waiters = new Map();
|
|
46
46
|
const onMessage = (statusType, nonce, data) => {
|
|
47
47
|
if (nonce === '0') {
|
|
48
|
-
logger_1.Log.verboseAdvanced({ indent, logLevel: (0, logger_1.getLogLevel)(), tag: '
|
|
48
|
+
logger_1.Log.verboseAdvanced({ indent, logLevel: (0, logger_1.getLogLevel)(), tag: 'compositor' }, data.toString('utf8'));
|
|
49
49
|
}
|
|
50
50
|
if (waiters.has(nonce)) {
|
|
51
51
|
if (statusType === 'error') {
|
|
@@ -63,7 +63,7 @@ const startCompositor = (type, payload, indent) => {
|
|
|
63
63
|
waiters.delete(nonce);
|
|
64
64
|
}
|
|
65
65
|
};
|
|
66
|
-
let
|
|
66
|
+
let runningStatus = { type: 'running' };
|
|
67
67
|
let missingData = null;
|
|
68
68
|
const processInput = () => {
|
|
69
69
|
let separatorIndex = outputBuffer.indexOf(separator);
|
|
@@ -145,9 +145,9 @@ const startCompositor = (type, payload, indent) => {
|
|
|
145
145
|
let resolve = null;
|
|
146
146
|
let reject = null;
|
|
147
147
|
child.on('close', (code) => {
|
|
148
|
-
quit = true;
|
|
149
148
|
const waitersToKill = Array.from(waiters.values());
|
|
150
149
|
if (code === 0) {
|
|
150
|
+
runningStatus = { type: 'quit-without-error' };
|
|
151
151
|
resolve === null || resolve === void 0 ? void 0 : resolve();
|
|
152
152
|
for (const waiter of waitersToKill) {
|
|
153
153
|
waiter.reject(new Error(`Compositor already quit`));
|
|
@@ -155,7 +155,9 @@ const startCompositor = (type, payload, indent) => {
|
|
|
155
155
|
waiters.clear();
|
|
156
156
|
}
|
|
157
157
|
else {
|
|
158
|
-
const
|
|
158
|
+
const errorMessage = Buffer.concat(stderrChunks).toString('utf-8');
|
|
159
|
+
runningStatus = { type: 'quit-with-error', error: errorMessage };
|
|
160
|
+
const error = new Error(`Compositor panicked: ${errorMessage}`);
|
|
159
161
|
for (const waiter of waitersToKill) {
|
|
160
162
|
waiter.reject(error);
|
|
161
163
|
}
|
|
@@ -166,24 +168,34 @@ const startCompositor = (type, payload, indent) => {
|
|
|
166
168
|
return {
|
|
167
169
|
waitForDone: () => {
|
|
168
170
|
return new Promise((res, rej) => {
|
|
169
|
-
if (quit) {
|
|
171
|
+
if (runningStatus.type === 'quit-without-error') {
|
|
170
172
|
rej(new Error('Compositor already quit'));
|
|
171
173
|
return;
|
|
172
174
|
}
|
|
175
|
+
if (runningStatus.type === 'quit-with-error') {
|
|
176
|
+
rej(new Error(`Compositor already quit: ${runningStatus.error}`));
|
|
177
|
+
return;
|
|
178
|
+
}
|
|
173
179
|
resolve = res;
|
|
174
180
|
reject = rej;
|
|
175
181
|
});
|
|
176
182
|
},
|
|
177
183
|
finishCommands: () => {
|
|
178
|
-
if (quit) {
|
|
184
|
+
if (runningStatus.type === 'quit-with-error') {
|
|
185
|
+
throw new Error(`Compositor already quit: ${runningStatus.error}`);
|
|
186
|
+
}
|
|
187
|
+
if (runningStatus.type === 'quit-without-error') {
|
|
179
188
|
throw new Error('Compositor already quit');
|
|
180
189
|
}
|
|
181
190
|
child.stdin.write('EOF\n');
|
|
182
191
|
},
|
|
183
192
|
executeCommand: (command, params) => {
|
|
184
|
-
if (quit) {
|
|
193
|
+
if (runningStatus.type === 'quit-without-error') {
|
|
185
194
|
throw new Error('Compositor already quit');
|
|
186
195
|
}
|
|
196
|
+
if (runningStatus.type === 'quit-with-error') {
|
|
197
|
+
throw new Error(`Compositor quit: ${runningStatus.error}`);
|
|
198
|
+
}
|
|
187
199
|
return new Promise((_resolve, _reject) => {
|
|
188
200
|
const nonce = (0, make_nonce_1.makeNonce)();
|
|
189
201
|
const composed = {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export
|
|
1
|
+
export type Layer = {
|
|
2
2
|
type: 'PngImage';
|
|
3
3
|
params: {
|
|
4
4
|
src: string;
|
|
@@ -26,8 +26,8 @@ export declare type Layer = {
|
|
|
26
26
|
height: number;
|
|
27
27
|
};
|
|
28
28
|
};
|
|
29
|
-
export
|
|
30
|
-
export
|
|
29
|
+
export type CompositorImageFormat = 'Png' | 'Jpeg';
|
|
30
|
+
export type CompositorCommand = {
|
|
31
31
|
Compose: {
|
|
32
32
|
output: string;
|
|
33
33
|
width: number;
|
|
@@ -55,14 +55,14 @@ export declare type CompositorCommand = {
|
|
|
55
55
|
percent_of_memory: number;
|
|
56
56
|
};
|
|
57
57
|
};
|
|
58
|
-
export
|
|
58
|
+
export type CompositorCommandSerialized<T extends keyof CompositorCommand> = {
|
|
59
59
|
nonce: string;
|
|
60
60
|
payload: {
|
|
61
61
|
type: T;
|
|
62
62
|
params: CompositorCommand[T];
|
|
63
63
|
};
|
|
64
64
|
};
|
|
65
|
-
export
|
|
65
|
+
export type ErrorPayload = {
|
|
66
66
|
error: string;
|
|
67
67
|
backtrace: string;
|
|
68
68
|
};
|
package/dist/crf.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Codec } from './codec';
|
|
2
|
-
export
|
|
2
|
+
export type Crf = number | undefined;
|
|
3
3
|
export declare const getDefaultCrfForCodec: (codec: Codec) => number;
|
|
4
4
|
export declare const getValidCrfRanges: (codec: Codec) => [number, number];
|
|
5
5
|
export declare const validateQualitySettings: ({ codec, crf, videoBitrate, }: {
|
|
@@ -7,8 +7,10 @@ const handle_javascript_exception_1 = require("./handle-javascript-exception");
|
|
|
7
7
|
const symbolicateError = async (symbolicateableError) => {
|
|
8
8
|
const { delayRenderCall, stackFrame } = symbolicateableError;
|
|
9
9
|
const [mainErrorFrames, delayRenderFrames] = await Promise.all([
|
|
10
|
-
stackFrame ? (0, symbolicate_stacktrace_1.
|
|
11
|
-
delayRenderCall
|
|
10
|
+
stackFrame ? (0, symbolicate_stacktrace_1.symbolicateStackTraceFromRemoteFrames)(stackFrame) : null,
|
|
11
|
+
delayRenderCall
|
|
12
|
+
? (0, symbolicate_stacktrace_1.symbolicateStackTraceFromRemoteFrames)(delayRenderCall)
|
|
13
|
+
: null,
|
|
12
14
|
].filter(truthy_1.truthy));
|
|
13
15
|
const symbolicatedErr = new handle_javascript_exception_1.ErrorWithStackFrame({
|
|
14
16
|
message: symbolicateableError.message,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { supportedAudioCodecs } from './audio-codec';
|
|
2
2
|
import type { Codec } from './codec';
|
|
3
|
-
export
|
|
3
|
+
export type FileExtension = 'aac' | '3gp' | 'm4a' | 'm4b' | 'mpg' | 'mpeg' | 'mkv' | 'mp4' | 'gif' | 'hevc' | 'mp3' | 'mov' | 'mxf' | 'wav' | 'webm';
|
|
4
4
|
export declare const defaultFileExtensionMap: {
|
|
5
5
|
[key in Codec]: {
|
|
6
6
|
default: FileExtension;
|
package/dist/frame-range.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export
|
|
1
|
+
export type FrameRange = number | [number, number];
|
|
2
2
|
export declare const validateFrameRange: (frameRange: FrameRange | null) => void;
|
|
@@ -2,10 +2,15 @@ import type { BrowserExecutable } from './browser-executable';
|
|
|
2
2
|
import type { HeadlessBrowser } from './browser/Browser';
|
|
3
3
|
import type { Page } from './browser/BrowserPage';
|
|
4
4
|
import type { ChromiumOptions } from './open-browser';
|
|
5
|
-
|
|
5
|
+
import type { AnySourceMapConsumer } from './symbolicate-stacktrace';
|
|
6
|
+
export declare const getPageAndCleanupFn: ({ passedInInstance, browserExecutable, chromiumOptions, context, forceDeviceScaleFactor, indent, shouldDumpIo, }: {
|
|
6
7
|
passedInInstance: HeadlessBrowser | undefined;
|
|
7
8
|
browserExecutable: BrowserExecutable | null;
|
|
8
9
|
chromiumOptions: ChromiumOptions;
|
|
10
|
+
context: AnySourceMapConsumer | null;
|
|
11
|
+
indent: boolean;
|
|
12
|
+
forceDeviceScaleFactor: number | undefined;
|
|
13
|
+
shouldDumpIo: boolean;
|
|
9
14
|
}) => Promise<{
|
|
10
15
|
cleanup: () => void;
|
|
11
16
|
page: Page;
|
|
@@ -3,9 +3,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.getPageAndCleanupFn = void 0;
|
|
4
4
|
const browser_1 = require("./browser");
|
|
5
5
|
const open_browser_1 = require("./open-browser");
|
|
6
|
-
const getPageAndCleanupFn = async ({ passedInInstance, browserExecutable, chromiumOptions, }) => {
|
|
6
|
+
const getPageAndCleanupFn = async ({ passedInInstance, browserExecutable, chromiumOptions, context, forceDeviceScaleFactor, indent, shouldDumpIo, }) => {
|
|
7
7
|
if (passedInInstance) {
|
|
8
|
-
const page = await passedInInstance.newPage();
|
|
8
|
+
const page = await passedInInstance.newPage(context);
|
|
9
9
|
return {
|
|
10
10
|
page,
|
|
11
11
|
cleanup: () => {
|
|
@@ -17,11 +17,16 @@ const getPageAndCleanupFn = async ({ passedInInstance, browserExecutable, chromi
|
|
|
17
17
|
},
|
|
18
18
|
};
|
|
19
19
|
}
|
|
20
|
-
const browserInstance = await (0, open_browser_1.
|
|
20
|
+
const browserInstance = await (0, open_browser_1.internalOpenBrowser)({
|
|
21
|
+
browser: browser_1.DEFAULT_BROWSER,
|
|
21
22
|
browserExecutable,
|
|
22
23
|
chromiumOptions,
|
|
24
|
+
forceDeviceScaleFactor,
|
|
25
|
+
indent,
|
|
26
|
+
shouldDumpIo,
|
|
27
|
+
viewport: null,
|
|
23
28
|
});
|
|
24
|
-
const browserPage = await browserInstance.newPage();
|
|
29
|
+
const browserPage = await browserInstance.newPage(context);
|
|
25
30
|
return {
|
|
26
31
|
page: browserPage,
|
|
27
32
|
cleanup: () => {
|
|
@@ -1,10 +1,24 @@
|
|
|
1
1
|
import type { AnyCompMetadata } from 'remotion';
|
|
2
|
-
import type { DownloadMap } from './assets/download-map';
|
|
3
2
|
import type { BrowserExecutable } from './browser-executable';
|
|
4
3
|
import type { BrowserLog } from './browser-log';
|
|
5
4
|
import type { HeadlessBrowser } from './browser/Browser';
|
|
6
5
|
import type { ChromiumOptions } from './open-browser';
|
|
7
|
-
|
|
6
|
+
import type { RemotionServer } from './prepare-server';
|
|
7
|
+
type InternalGetCompositionsOptions = {
|
|
8
|
+
inputProps: Record<string, unknown>;
|
|
9
|
+
envVariables: Record<string, string>;
|
|
10
|
+
puppeteerInstance: HeadlessBrowser | undefined;
|
|
11
|
+
onBrowserLog: null | ((log: BrowserLog) => void);
|
|
12
|
+
browserExecutable: BrowserExecutable | null;
|
|
13
|
+
timeoutInMilliseconds: number;
|
|
14
|
+
chromiumOptions: ChromiumOptions;
|
|
15
|
+
port: number | null;
|
|
16
|
+
server: RemotionServer | undefined;
|
|
17
|
+
indent: boolean;
|
|
18
|
+
verbose: boolean;
|
|
19
|
+
serveUrlOrWebpackUrl: string;
|
|
20
|
+
};
|
|
21
|
+
export type GetCompositionsOptions = {
|
|
8
22
|
inputProps?: Record<string, unknown> | null;
|
|
9
23
|
envVariables?: Record<string, string>;
|
|
10
24
|
puppeteerInstance?: HeadlessBrowser;
|
|
@@ -13,19 +27,12 @@ declare type GetCompositionsConfig = {
|
|
|
13
27
|
timeoutInMilliseconds?: number;
|
|
14
28
|
chromiumOptions?: ChromiumOptions;
|
|
15
29
|
port?: number | null;
|
|
16
|
-
/**
|
|
17
|
-
* @deprecated Only for Remotion internal usage
|
|
18
|
-
*/
|
|
19
|
-
downloadMap?: DownloadMap;
|
|
20
|
-
/**
|
|
21
|
-
* @deprecated Only for Remotion internal usage
|
|
22
|
-
*/
|
|
23
|
-
indent?: boolean;
|
|
24
30
|
verbose?: boolean;
|
|
25
31
|
};
|
|
32
|
+
export declare const internalGetCompositions: ({ browserExecutable, chromiumOptions, envVariables, indent, inputProps, onBrowserLog, port, puppeteerInstance, serveUrlOrWebpackUrl, server, timeoutInMilliseconds, verbose, }: InternalGetCompositionsOptions) => Promise<AnyCompMetadata[]>;
|
|
26
33
|
/**
|
|
27
34
|
* @description Gets the compositions defined in a Remotion project based on a Webpack bundle.
|
|
28
35
|
* @see [Documentation](https://www.remotion.dev/docs/renderer/get-compositions)
|
|
29
36
|
*/
|
|
30
|
-
export declare const getCompositions: (serveUrlOrWebpackUrl: string, config?:
|
|
37
|
+
export declare const getCompositions: (serveUrlOrWebpackUrl: string, config?: GetCompositionsOptions) => Promise<AnyCompMetadata[]>;
|
|
31
38
|
export {};
|
package/dist/get-compositions.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getCompositions = void 0;
|
|
4
|
-
const
|
|
3
|
+
exports.getCompositions = exports.internalGetCompositions = void 0;
|
|
4
|
+
const TimeoutSettings_1 = require("./browser/TimeoutSettings");
|
|
5
5
|
const handle_javascript_exception_1 = require("./error-handling/handle-javascript-exception");
|
|
6
6
|
const find_closest_package_json_1 = require("./find-closest-package-json");
|
|
7
7
|
const get_browser_instance_1 = require("./get-browser-instance");
|
|
@@ -10,26 +10,24 @@ const puppeteer_evaluate_1 = require("./puppeteer-evaluate");
|
|
|
10
10
|
const seek_to_frame_1 = require("./seek-to-frame");
|
|
11
11
|
const set_props_and_env_1 = require("./set-props-and-env");
|
|
12
12
|
const validate_puppeteer_timeout_1 = require("./validate-puppeteer-timeout");
|
|
13
|
-
const innerGetCompositions = async (
|
|
14
|
-
|
|
15
|
-
if (config === null || config === void 0 ? void 0 : config.onBrowserLog) {
|
|
13
|
+
const innerGetCompositions = async ({ envVariables, inputProps, onBrowserLog, page, proxyPort, serveUrl, timeoutInMilliseconds, }) => {
|
|
14
|
+
if (onBrowserLog) {
|
|
16
15
|
page.on('console', (log) => {
|
|
17
|
-
|
|
18
|
-
(_a = config.onBrowserLog) === null || _a === void 0 ? void 0 : _a.call(config, {
|
|
16
|
+
onBrowserLog({
|
|
19
17
|
stackTrace: log.stackTrace(),
|
|
20
18
|
text: log.text,
|
|
21
19
|
type: log.type,
|
|
22
20
|
});
|
|
23
21
|
});
|
|
24
22
|
}
|
|
25
|
-
(0, validate_puppeteer_timeout_1.validatePuppeteerTimeout)(
|
|
23
|
+
(0, validate_puppeteer_timeout_1.validatePuppeteerTimeout)(timeoutInMilliseconds);
|
|
26
24
|
await (0, set_props_and_env_1.setPropsAndEnv)({
|
|
27
|
-
inputProps
|
|
28
|
-
envVariables
|
|
25
|
+
inputProps,
|
|
26
|
+
envVariables,
|
|
29
27
|
page,
|
|
30
28
|
serveUrl,
|
|
31
29
|
initialFrame: 0,
|
|
32
|
-
timeoutInMilliseconds
|
|
30
|
+
timeoutInMilliseconds,
|
|
33
31
|
proxyPort,
|
|
34
32
|
retriesRemaining: 2,
|
|
35
33
|
audioEnabled: false,
|
|
@@ -38,7 +36,7 @@ const innerGetCompositions = async (serveUrl, page, config, proxyPort) => {
|
|
|
38
36
|
await (0, puppeteer_evaluate_1.puppeteerEvaluateWithCatch)({
|
|
39
37
|
page,
|
|
40
38
|
pageFunction: () => {
|
|
41
|
-
window.
|
|
39
|
+
window.remotion_setBundleMode({
|
|
42
40
|
type: 'evaluation',
|
|
43
41
|
});
|
|
44
42
|
},
|
|
@@ -56,62 +54,81 @@ const innerGetCompositions = async (serveUrl, page, config, proxyPort) => {
|
|
|
56
54
|
});
|
|
57
55
|
return result;
|
|
58
56
|
};
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
browserExecutable: (_b = config === null || config === void 0 ? void 0 : config.browserExecutable) !== null && _b !== void 0 ? _b : null,
|
|
69
|
-
chromiumOptions: (_c = config === null || config === void 0 ? void 0 : config.chromiumOptions) !== null && _c !== void 0 ? _c : {},
|
|
57
|
+
const internalGetCompositions = async ({ browserExecutable, chromiumOptions, envVariables, indent, inputProps, onBrowserLog, port, puppeteerInstance, serveUrlOrWebpackUrl, server, timeoutInMilliseconds, verbose, }) => {
|
|
58
|
+
const { page, cleanup: cleanupPage } = await (0, get_browser_instance_1.getPageAndCleanupFn)({
|
|
59
|
+
passedInInstance: puppeteerInstance,
|
|
60
|
+
browserExecutable,
|
|
61
|
+
chromiumOptions,
|
|
62
|
+
context: null,
|
|
63
|
+
forceDeviceScaleFactor: undefined,
|
|
64
|
+
indent,
|
|
65
|
+
shouldDumpIo: verbose,
|
|
70
66
|
});
|
|
67
|
+
const cleanup = [cleanupPage];
|
|
71
68
|
return new Promise((resolve, reject) => {
|
|
72
|
-
var _a, _b, _c;
|
|
73
69
|
const onError = (err) => reject(err);
|
|
74
|
-
|
|
70
|
+
cleanup.push((0, handle_javascript_exception_1.handleJavascriptException)({
|
|
75
71
|
page,
|
|
76
72
|
frame: null,
|
|
77
73
|
onError,
|
|
78
|
-
});
|
|
79
|
-
|
|
80
|
-
(0, prepare_server_1.prepareServer)({
|
|
74
|
+
}));
|
|
75
|
+
(0, prepare_server_1.makeOrReuseServer)(server, {
|
|
81
76
|
webpackConfigOrServeUrl: serveUrlOrWebpackUrl,
|
|
82
|
-
|
|
83
|
-
onError,
|
|
84
|
-
port: (_a = config === null || config === void 0 ? void 0 : config.port) !== null && _a !== void 0 ? _a : null,
|
|
85
|
-
downloadMap,
|
|
77
|
+
port,
|
|
86
78
|
remotionRoot: (0, find_closest_package_json_1.findRemotionRoot)(),
|
|
87
79
|
concurrency: 1,
|
|
88
|
-
verbose
|
|
89
|
-
indent
|
|
80
|
+
verbose,
|
|
81
|
+
indent,
|
|
82
|
+
}, {
|
|
83
|
+
onDownload: () => undefined,
|
|
84
|
+
onError,
|
|
90
85
|
})
|
|
91
|
-
.then(({ serveUrl,
|
|
92
|
-
|
|
93
|
-
|
|
86
|
+
.then(({ server: { serveUrl, offthreadPort, sourceMap }, cleanupServer }) => {
|
|
87
|
+
page.setBrowserSourceMapContext(sourceMap);
|
|
88
|
+
cleanup.push(() => cleanupServer(true));
|
|
89
|
+
return innerGetCompositions({
|
|
90
|
+
envVariables,
|
|
91
|
+
inputProps,
|
|
92
|
+
onBrowserLog,
|
|
93
|
+
page,
|
|
94
|
+
proxyPort: offthreadPort,
|
|
95
|
+
serveUrl,
|
|
96
|
+
timeoutInMilliseconds,
|
|
97
|
+
});
|
|
94
98
|
})
|
|
95
99
|
.then((comp) => {
|
|
96
|
-
if (close) {
|
|
97
|
-
return Promise.all([comp, close(true)]);
|
|
98
|
-
}
|
|
99
|
-
return Promise.resolve([comp, null]);
|
|
100
|
-
})
|
|
101
|
-
.then(([comp]) => {
|
|
102
100
|
return resolve(comp);
|
|
103
101
|
})
|
|
104
102
|
.catch((err) => {
|
|
105
103
|
reject(err);
|
|
106
104
|
})
|
|
107
105
|
.finally(() => {
|
|
108
|
-
cleanup()
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
if (!(config === null || config === void 0 ? void 0 : config.downloadMap)) {
|
|
112
|
-
(0, download_map_1.cleanDownloadMap)(downloadMap);
|
|
113
|
-
}
|
|
106
|
+
cleanup.forEach((c) => {
|
|
107
|
+
c();
|
|
108
|
+
});
|
|
114
109
|
});
|
|
115
110
|
});
|
|
116
111
|
};
|
|
112
|
+
exports.internalGetCompositions = internalGetCompositions;
|
|
113
|
+
/**
|
|
114
|
+
* @description Gets the compositions defined in a Remotion project based on a Webpack bundle.
|
|
115
|
+
* @see [Documentation](https://www.remotion.dev/docs/renderer/get-compositions)
|
|
116
|
+
*/
|
|
117
|
+
const getCompositions = (serveUrlOrWebpackUrl, config) => {
|
|
118
|
+
const { browserExecutable, chromiumOptions, envVariables, inputProps, onBrowserLog, port, puppeteerInstance, timeoutInMilliseconds, verbose, } = config !== null && config !== void 0 ? config : {};
|
|
119
|
+
return (0, exports.internalGetCompositions)({
|
|
120
|
+
browserExecutable: browserExecutable !== null && browserExecutable !== void 0 ? browserExecutable : null,
|
|
121
|
+
chromiumOptions: chromiumOptions !== null && chromiumOptions !== void 0 ? chromiumOptions : {},
|
|
122
|
+
envVariables: envVariables !== null && envVariables !== void 0 ? envVariables : {},
|
|
123
|
+
inputProps: inputProps !== null && inputProps !== void 0 ? inputProps : {},
|
|
124
|
+
indent: false,
|
|
125
|
+
onBrowserLog: onBrowserLog !== null && onBrowserLog !== void 0 ? onBrowserLog : null,
|
|
126
|
+
port: port !== null && port !== void 0 ? port : null,
|
|
127
|
+
puppeteerInstance: puppeteerInstance !== null && puppeteerInstance !== void 0 ? puppeteerInstance : undefined,
|
|
128
|
+
serveUrlOrWebpackUrl,
|
|
129
|
+
server: undefined,
|
|
130
|
+
timeoutInMilliseconds: timeoutInMilliseconds !== null && timeoutInMilliseconds !== void 0 ? timeoutInMilliseconds : TimeoutSettings_1.DEFAULT_TIMEOUT,
|
|
131
|
+
verbose: verbose !== null && verbose !== void 0 ? verbose : false,
|
|
132
|
+
});
|
|
133
|
+
};
|
|
117
134
|
exports.getCompositions = getCompositions;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { VideoImageFormat } from './image-format';
|
|
2
|
-
export
|
|
2
|
+
export type CountType = 'from-zero' | 'actual-frames';
|
|
3
3
|
export declare const getFrameOutputFileName: ({ index, frame, imageFormat, countType, lastFrame, totalFrames, }: {
|
|
4
4
|
index: number;
|
|
5
5
|
frame: number;
|
package/dist/image-format.d.ts
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import type { PixelFormat } from './pixel-format';
|
|
2
2
|
export declare const validVideoImageFormats: readonly ["png", "jpeg", "none"];
|
|
3
3
|
export declare const validStillImageFormats: readonly ["png", "jpeg", "pdf", "webp"];
|
|
4
|
-
export
|
|
5
|
-
export
|
|
4
|
+
export type VideoImageFormat = typeof validVideoImageFormats[number];
|
|
5
|
+
export type StillImageFormat = typeof validStillImageFormats[number];
|
|
6
6
|
/**
|
|
7
7
|
* @deprecated Use VideoImageFormat or StillImageFormat instead
|
|
8
8
|
*/
|
|
9
|
-
export
|
|
9
|
+
export type ImageFormat = 'This type is deprecated, use VideoImageFormat or StillImageFormat instead';
|
|
10
10
|
export declare const DEFAULT_VIDEO_IMAGE_FORMAT: VideoImageFormat;
|
|
11
11
|
export declare const DEFAULT_STILL_IMAGE_FORMAT: StillImageFormat;
|
|
12
12
|
export declare const validateSelectedPixelFormatAndImageFormatCombination: (pixelFormat: PixelFormat | undefined, videoImageFormat: VideoImageFormat) => 'none' | 'valid';
|