@remotion/renderer 3.0.23 → 3.0.24
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/abort.d.ts +7 -0
- package/dist/abort.js +20 -0
- package/dist/browser/Browser.d.ts +5 -159
- package/dist/browser/Browser.js +5 -190
- package/dist/browser/BrowserConnector.d.ts +1 -8
- package/dist/browser/BrowserConnector.js +0 -32
- package/dist/browser/BrowserFetcher.d.ts +1 -1
- package/dist/browser/BrowserFetcher.js +8 -10
- package/dist/browser/BrowserRunner.d.ts +2 -2
- package/dist/browser/BrowserRunner.js +1 -1
- package/dist/browser/Connection.d.ts +4 -11
- package/dist/browser/Connection.js +5 -25
- package/dist/browser/ConsoleMessage.d.ts +4 -28
- package/dist/browser/ConsoleMessage.js +5 -32
- package/dist/browser/DOMWorld.d.ts +5 -6
- package/dist/browser/DOMWorld.js +2 -18
- package/dist/browser/EvalTypes.d.ts +1 -1
- package/dist/browser/EventEmitter.d.ts +1 -48
- package/dist/browser/EventEmitter.js +0 -49
- package/dist/browser/ExecutionContext.d.ts +7 -8
- package/dist/browser/ExecutionContext.js +0 -16
- package/dist/browser/FrameManager.d.ts +10 -14
- package/dist/browser/FrameManager.js +3 -19
- package/dist/browser/HTTPRequest.d.ts +4 -18
- package/dist/browser/HTTPRequest.js +3 -48
- package/dist/browser/HTTPResponse.d.ts +2 -81
- package/dist/browser/HTTPResponse.js +3 -173
- package/dist/browser/JSHandle.d.ts +4 -5
- package/dist/browser/JSHandle.js +0 -3
- package/dist/browser/LaunchOptions.d.ts +2 -81
- package/dist/browser/Launcher.d.ts +2 -2
- package/dist/browser/Launcher.js +21 -119
- package/dist/browser/LifecycleWatcher.d.ts +4 -4
- package/dist/browser/LifecycleWatcher.js +4 -17
- package/dist/browser/NetworkEventManager.d.ts +2 -4
- package/dist/browser/NetworkEventManager.js +0 -47
- package/dist/browser/NetworkManager.d.ts +1 -3
- package/dist/browser/NetworkManager.js +6 -42
- package/dist/browser/NodeWebSocketTransport.d.ts +8 -2
- package/dist/browser/NodeWebSocketTransport.js +1 -1
- package/dist/browser/{page.d.ts → Page.d.ts} +7 -13
- package/dist/browser/{page.js → Page.js} +14 -9
- package/dist/browser/PuppeteerNode.d.ts +7 -59
- package/dist/browser/PuppeteerNode.js +4 -66
- package/dist/browser/Target.d.ts +4 -4
- package/dist/browser/assert.d.ts +0 -20
- package/dist/browser/assert.js +0 -20
- package/dist/browser/create-browser-fetcher.d.ts +1 -1
- package/dist/browser/create-browser-fetcher.js +4 -25
- package/dist/browser/util.d.ts +3 -3
- package/dist/browser/util.js +1 -1
- package/dist/browser-log.d.ts +1 -1
- package/dist/cancel.d.ts +7 -0
- package/dist/cancel.js +25 -0
- package/dist/ensure-faststart.d.ts +1 -0
- package/dist/ensure-faststart.js +14 -0
- package/dist/error-handling/handle-javascript-exception.d.ts +1 -1
- package/dist/error-handling/handle-javascript-exception.js +2 -2
- package/dist/extract-frame-from-video.d.ts +4 -2
- package/dist/extract-frame-from-video.js +26 -14
- package/dist/faststart/atom.d.ts +35 -0
- package/dist/faststart/atom.js +138 -0
- package/dist/faststart/index.d.ts +0 -0
- package/dist/faststart/index.js +1 -0
- package/dist/faststart/options.d.ts +6 -0
- package/dist/faststart/options.js +2 -0
- package/dist/faststart/qt-faststart.d.ts +18 -0
- package/dist/faststart/qt-faststart.js +66 -0
- package/dist/faststart/update-chunk-offsets.d.ts +10 -0
- package/dist/faststart/update-chunk-offsets.js +114 -0
- package/dist/faststart/util.d.ts +9 -0
- package/dist/faststart/util.js +34 -0
- package/dist/get-browser-instance.d.ts +2 -1
- package/dist/get-compositions.d.ts +1 -1
- package/dist/get-compositions.js +2 -2
- package/dist/get-local-browser-executable.js +7 -5
- package/dist/get-video-info.d.ts +8 -0
- package/dist/get-video-info.js +45 -0
- package/dist/last-frame-from-video-cache.d.ts +2 -1
- package/dist/offthread/index.d.ts +0 -0
- package/dist/offthread/index.js +1 -0
- package/dist/open-browser.d.ts +4 -2
- package/dist/open-browser.js +8 -8
- package/dist/provide-screenshot.d.ts +3 -3
- package/dist/provide-screenshot.js +0 -1
- package/dist/puppeteer-evaluate.d.ts +1 -1
- package/dist/puppeteer-evaluate.js +3 -3
- package/dist/puppeteer-screenshot.d.ts +3 -2
- package/dist/puppeteer-screenshot.js +2 -4
- package/dist/render-frames.d.ts +2 -2
- package/dist/render-frames.js +18 -10
- package/dist/render-gif.d.ts +2 -0
- package/dist/render-gif.js +242 -0
- package/dist/render-media.d.ts +1 -1
- package/dist/render-still.d.ts +1 -1
- package/dist/screenshot-dom-element.d.ts +5 -6
- package/dist/screenshot-dom-element.js +3 -6
- package/dist/screenshot-task.d.ts +2 -1
- package/dist/screenshot-task.js +3 -5
- package/dist/seek-to-frame.d.ts +2 -2
- package/dist/set-props-and-env.d.ts +1 -1
- package/dist/set-props-and-env.js +3 -0
- package/dist/should-use-vp9-decoder.d.ts +0 -0
- package/dist/should-use-vp9-decoder.js +1 -0
- package/dist/stitch-frames-to-gif.d.ts +8 -0
- package/dist/stitch-frames-to-gif.js +128 -0
- package/dist/stringify-ffmpeg-filter.d.ts +1 -1
- package/dist/stringify-ffmpeg-filter.js +3 -0
- package/dist/validate-offthreadvideo-image-format.d.ts +1 -0
- package/dist/validate-offthreadvideo-image-format.js +15 -0
- package/package.json +9 -5
- package/dist/assets/calculate-asset-positions.d.ts.map +0 -1
- package/dist/assets/calculate-asset-positions.js.map +0 -1
- package/dist/assets/calculate-atempo.d.ts.map +0 -1
- package/dist/assets/calculate-atempo.js.map +0 -1
- package/dist/assets/convert-assets-to-file-urls.d.ts.map +0 -1
- package/dist/assets/convert-assets-to-file-urls.js.map +0 -1
- package/dist/assets/download-and-map-assets-to-file.d.ts.map +0 -1
- package/dist/assets/download-and-map-assets-to-file.js.map +0 -1
- package/dist/assets/download-file.d.ts.map +0 -1
- package/dist/assets/download-file.js.map +0 -1
- package/dist/assets/ffmpeg-volume-expression.d.ts.map +0 -1
- package/dist/assets/ffmpeg-volume-expression.js.map +0 -1
- package/dist/assets/flatten-volume-array.d.ts.map +0 -1
- package/dist/assets/flatten-volume-array.js.map +0 -1
- package/dist/assets/get-audio-channels.d.ts.map +0 -1
- package/dist/assets/get-audio-channels.js.map +0 -1
- package/dist/assets/read-file.d.ts.map +0 -1
- package/dist/assets/read-file.js.map +0 -1
- package/dist/assets/round-volume-to-avoid-stack-overflow.d.ts.map +0 -1
- package/dist/assets/round-volume-to-avoid-stack-overflow.js.map +0 -1
- package/dist/assets/sanitize-filename.d.ts.map +0 -1
- package/dist/assets/sanitize-filename.js.map +0 -1
- package/dist/assets/sanitize-filepath.d.ts.map +0 -1
- package/dist/assets/sanitize-filepath.js.map +0 -1
- package/dist/assets/truncate-utf8-bytes.d.ts.map +0 -1
- package/dist/assets/truncate-utf8-bytes.js.map +0 -1
- package/dist/assets/types.d.ts.map +0 -1
- package/dist/assets/types.js.map +0 -1
- package/dist/browser/Accessibility.d.ts +0 -175
- package/dist/browser/Accessibility.js +0 -423
- package/dist/browser/AriaQueryHandler.d.ts +0 -20
- package/dist/browser/AriaQueryHandler.js +0 -108
- package/dist/browser/Coverage.d.ts +0 -180
- package/dist/browser/Coverage.js +0 -371
- package/dist/browser/Debug.d.ts +0 -19
- package/dist/browser/Debug.js +0 -42
- package/dist/browser/DeviceDescriptors.d.ts +0 -40
- package/dist/browser/DeviceDescriptors.js +0 -1407
- package/dist/browser/FileChooser.d.ts +0 -56
- package/dist/browser/FileChooser.js +0 -86
- package/dist/browser/Input.d.ts +0 -355
- package/dist/browser/Input.js +0 -592
- package/dist/browser/NetworkConditions.d.ts +0 -26
- package/dist/browser/NetworkConditions.js +0 -33
- package/dist/browser/PDFOptions.d.ts +0 -165
- package/dist/browser/PDFOptions.js +0 -34
- package/dist/browser/PipeTransport.d.ts +0 -10
- package/dist/browser/PipeTransport.js +0 -86
- package/dist/browser/Puppeteer.d.ts +0 -35
- package/dist/browser/Puppeteer.js +0 -17
- package/dist/browser/QueryHandler.d.ts +0 -64
- package/dist/browser/QueryHandler.js +0 -183
- package/dist/browser/SecurityDetails.d.ts +0 -55
- package/dist/browser/SecurityDetails.js +0 -95
- package/dist/browser/Tracing.d.ts +0 -45
- package/dist/browser/Tracing.js +0 -136
- package/dist/browser/USKeyboardLayout.d.ts +0 -39
- package/dist/browser/USKeyboardLayout.js +0 -406
- package/dist/browser/WebWorker.d.ts +0 -96
- package/dist/browser/WebWorker.js +0 -122
- package/dist/browser/dialog.d.ts +0 -70
- package/dist/browser/dialog.js +0 -114
- package/dist/browser/fetch.d.ts +0 -16
- package/dist/browser/fetch.js +0 -46
- package/dist/browser/find-up.d.ts +0 -4
- package/dist/browser/find-up.js +0 -85
- package/dist/browser/pkg-dir.d.ts +0 -3
- package/dist/browser/pkg-dir.js +0 -13
- package/dist/browser-log.d.ts.map +0 -1
- package/dist/browser-log.js.map +0 -1
- package/dist/calculate-ffmpeg-filters.d.ts.map +0 -1
- package/dist/calculate-ffmpeg-filters.js.map +0 -1
- package/dist/can-use-parallel-encoding.d.ts.map +0 -1
- package/dist/can-use-parallel-encoding.js.map +0 -1
- package/dist/chunk.d.ts.map +0 -1
- package/dist/chunk.js.map +0 -1
- package/dist/combine-videos.d.ts.map +0 -1
- package/dist/combine-videos.js.map +0 -1
- package/dist/convert-to-pcm.d.ts.map +0 -1
- package/dist/convert-to-pcm.js.map +0 -1
- package/dist/create-ffmpeg-complex-filter.d.ts.map +0 -1
- package/dist/create-ffmpeg-complex-filter.js.map +0 -1
- package/dist/create-ffmpeg-merge-filter.d.ts.map +0 -1
- package/dist/create-ffmpeg-merge-filter.js.map +0 -1
- package/dist/create-silent-audio.d.ts.map +0 -1
- package/dist/create-silent-audio.js.map +0 -1
- package/dist/cycle-browser-tabs.d.ts.map +0 -1
- package/dist/cycle-browser-tabs.js.map +0 -1
- package/dist/delay-render-embedded-stack.d.ts.map +0 -1
- package/dist/delay-render-embedded-stack.js.map +0 -1
- package/dist/delete-directory.d.ts.map +0 -1
- package/dist/delete-directory.js.map +0 -1
- package/dist/ensure-frames-in-order.d.ts.map +0 -1
- package/dist/ensure-frames-in-order.js.map +0 -1
- package/dist/ensure-output-directory.d.ts.map +0 -1
- package/dist/ensure-output-directory.js.map +0 -1
- package/dist/error-handling/handle-javascript-exception.d.ts.map +0 -1
- package/dist/error-handling/handle-javascript-exception.js.map +0 -1
- package/dist/error-handling/symbolicate-error.d.ts.map +0 -1
- package/dist/error-handling/symbolicate-error.js.map +0 -1
- package/dist/error-handling/symbolicateable-error.d.ts.map +0 -1
- package/dist/error-handling/symbolicateable-error.js.map +0 -1
- package/dist/ffmpeg-filter-file.d.ts.map +0 -1
- package/dist/ffmpeg-filter-file.js.map +0 -1
- package/dist/ffmpeg-flags.d.ts.map +0 -1
- package/dist/ffmpeg-flags.js.map +0 -1
- package/dist/get-audio-codec-name.d.ts.map +0 -1
- package/dist/get-audio-codec-name.js.map +0 -1
- package/dist/get-browser-instance.d.ts.map +0 -1
- package/dist/get-browser-instance.js.map +0 -1
- package/dist/get-codec-name.d.ts.map +0 -1
- package/dist/get-codec-name.js.map +0 -1
- package/dist/get-compositions.d.ts.map +0 -1
- package/dist/get-compositions.js.map +0 -1
- package/dist/get-concurrency.d.ts.map +0 -1
- package/dist/get-concurrency.js.map +0 -1
- package/dist/get-duration-from-frame-range.d.ts.map +0 -1
- package/dist/get-duration-from-frame-range.js.map +0 -1
- package/dist/get-extension-from-codec.d.ts.map +0 -1
- package/dist/get-extension-from-codec.js.map +0 -1
- package/dist/get-frame-to-render.d.ts.map +0 -1
- package/dist/get-frame-to-render.js.map +0 -1
- package/dist/get-local-browser-executable.d.ts.map +0 -1
- package/dist/get-local-browser-executable.js.map +0 -1
- package/dist/get-port.d.ts.map +0 -1
- package/dist/get-port.js.map +0 -1
- package/dist/get-prores-profile-name.d.ts.map +0 -1
- package/dist/get-prores-profile-name.js.map +0 -1
- package/dist/image-format.d.ts.map +0 -1
- package/dist/image-format.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/is-serve-url.d.ts.map +0 -1
- package/dist/is-serve-url.js.map +0 -1
- package/dist/legacy-webpack-config.d.ts.map +0 -1
- package/dist/legacy-webpack-config.js.map +0 -1
- package/dist/make-assets-download-dir.d.ts.map +0 -1
- package/dist/make-assets-download-dir.js.map +0 -1
- package/dist/merge-audio-track.d.ts.map +0 -1
- package/dist/merge-audio-track.js.map +0 -1
- package/dist/normalize-serve-url.d.ts.map +0 -1
- package/dist/normalize-serve-url.js.map +0 -1
- package/dist/open-browser.d.ts.map +0 -1
- package/dist/open-browser.js.map +0 -1
- package/dist/p-limit.d.ts.map +0 -1
- package/dist/p-limit.js.map +0 -1
- package/dist/parse-browser-error-stack.d.ts.map +0 -1
- package/dist/parse-browser-error-stack.js.map +0 -1
- package/dist/parse-ffmpeg-progress.d.ts.map +0 -1
- package/dist/parse-ffmpeg-progress.js.map +0 -1
- package/dist/pool.d.ts.map +0 -1
- package/dist/pool.js.map +0 -1
- package/dist/prepare-server.d.ts.map +0 -1
- package/dist/prepare-server.js.map +0 -1
- package/dist/preprocess-audio-track.d.ts.map +0 -1
- package/dist/preprocess-audio-track.js.map +0 -1
- package/dist/prespawn-ffmpeg.d.ts.map +0 -1
- package/dist/prespawn-ffmpeg.js.map +0 -1
- package/dist/provide-screenshot.d.ts.map +0 -1
- package/dist/provide-screenshot.js.map +0 -1
- package/dist/puppeteer-evaluate.d.ts.map +0 -1
- package/dist/puppeteer-evaluate.js.map +0 -1
- package/dist/puppeteer-screenshot.d.ts.map +0 -1
- package/dist/puppeteer-screenshot.js.map +0 -1
- package/dist/render-frames.d.ts.map +0 -1
- package/dist/render-frames.js.map +0 -1
- package/dist/render-media.d.ts.map +0 -1
- package/dist/render-media.js.map +0 -1
- package/dist/render-still.d.ts.map +0 -1
- package/dist/render-still.js.map +0 -1
- package/dist/resolve-asset-src.d.ts.map +0 -1
- package/dist/resolve-asset-src.js.map +0 -1
- package/dist/sample-rate.d.ts.map +0 -1
- package/dist/sample-rate.js.map +0 -1
- package/dist/screenshot-dom-element.d.ts.map +0 -1
- package/dist/screenshot-dom-element.js.map +0 -1
- package/dist/screenshot-task.d.ts.map +0 -1
- package/dist/screenshot-task.js.map +0 -1
- package/dist/seek-to-frame.d.ts.map +0 -1
- package/dist/seek-to-frame.js.map +0 -1
- package/dist/serve-static.d.ts.map +0 -1
- package/dist/serve-static.js.map +0 -1
- package/dist/set-props-and-env.d.ts.map +0 -1
- package/dist/set-props-and-env.js.map +0 -1
- package/dist/stitch-frames-to-video.d.ts.map +0 -1
- package/dist/stitch-frames-to-video.js.map +0 -1
- package/dist/stringify-ffmpeg-filter.d.ts.map +0 -1
- package/dist/stringify-ffmpeg-filter.js.map +0 -1
- package/dist/symbolicate-stacktrace.d.ts.map +0 -1
- package/dist/symbolicate-stacktrace.js.map +0 -1
- package/dist/tmp-dir.d.ts.map +0 -1
- package/dist/tmp-dir.js.map +0 -1
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js.map +0 -1
- package/dist/validate-even-dimensions-with-codec.d.ts.map +0 -1
- package/dist/validate-even-dimensions-with-codec.js.map +0 -1
- package/dist/validate-ffmpeg.d.ts.map +0 -1
- package/dist/validate-ffmpeg.js.map +0 -1
- package/dist/validate-puppeteer-timeout.d.ts.map +0 -1
- package/dist/validate-puppeteer-timeout.js.map +0 -1
- package/dist/validate-scale.d.ts.map +0 -1
- package/dist/validate-scale.js.map +0 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.puppeteerEvaluateWithCatch = void 0;
|
|
4
|
-
const
|
|
4
|
+
const JSHandle_1 = require("./browser/JSHandle");
|
|
5
5
|
const symbolicateable_error_1 = require("./error-handling/symbolicateable-error");
|
|
6
6
|
const parse_browser_error_stack_1 = require("./parse-browser-error-stack");
|
|
7
7
|
const EVALUATION_SCRIPT_URL = '__puppeteer_evaluation_script__';
|
|
@@ -32,7 +32,7 @@ function isString(obj) {
|
|
|
32
32
|
async function puppeteerEvaluateWithCatch({ page, pageFunction, frame, args, }) {
|
|
33
33
|
var _a, _b, _c, _d, _e, _f, _g;
|
|
34
34
|
const contextId = (await page.mainFrame().executionContext())._contextId;
|
|
35
|
-
const client = page._client;
|
|
35
|
+
const client = page._client();
|
|
36
36
|
const suffix = `//# sourceURL=${EVALUATION_SCRIPT_URL}`;
|
|
37
37
|
if (isString(pageFunction)) {
|
|
38
38
|
const expression = pageFunction;
|
|
@@ -139,7 +139,7 @@ function convertArgument(arg) {
|
|
|
139
139
|
return { unserializableValue: '-Infinity' };
|
|
140
140
|
if (Object.is(arg, NaN))
|
|
141
141
|
return { unserializableValue: 'NaN' };
|
|
142
|
-
const objectHandle = arg && arg instanceof
|
|
142
|
+
const objectHandle = arg && arg instanceof JSHandle_1.JSHandle ? arg : null;
|
|
143
143
|
if (objectHandle) {
|
|
144
144
|
if (objectHandle._disposed)
|
|
145
145
|
throw new Error('JSHandle is disposed!');
|
|
@@ -1,2 +1,3 @@
|
|
|
1
|
-
import type { Page
|
|
2
|
-
|
|
1
|
+
import type { Page } from './browser/Page';
|
|
2
|
+
import type { ScreenshotOptions } from './browser/ScreenshotOptions';
|
|
3
|
+
export declare const screenshot: (page: Page, options: ScreenshotOptions) => Promise<Buffer | string | void>;
|
|
@@ -26,7 +26,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
26
26
|
exports.screenshot = void 0;
|
|
27
27
|
const assert = __importStar(require("assert"));
|
|
28
28
|
const screenshot_task_1 = require("./screenshot-task");
|
|
29
|
-
const screenshot = (page, options
|
|
29
|
+
const screenshot = (page, options) => {
|
|
30
30
|
let screenshotType = null;
|
|
31
31
|
// options.type takes precedence over inferring the type from options.path
|
|
32
32
|
// because it may be a 0-length file with no extension created beforehand
|
|
@@ -58,7 +58,6 @@ const screenshot = (page, options = {}) => {
|
|
|
58
58
|
assert.ok(options.quality >= 0 && options.quality <= 100, 'Expected options.quality to be between 0 and 100 (inclusive), got ' +
|
|
59
59
|
options.quality);
|
|
60
60
|
}
|
|
61
|
-
assert.ok(!options.clip || !options.fullPage, 'options.clip and options.fullPage are exclusive');
|
|
62
61
|
if (options.clip) {
|
|
63
62
|
assert.ok(typeof options.clip.x === 'number', 'Expected options.clip.x to be a number but found ' +
|
|
64
63
|
typeof options.clip.x);
|
|
@@ -71,7 +70,6 @@ const screenshot = (page, options = {}) => {
|
|
|
71
70
|
assert.ok(options.clip.width !== 0, 'Expected options.clip.width not to be 0.');
|
|
72
71
|
assert.ok(options.clip.height !== 0, 'Expected options.clip.height not to be 0.');
|
|
73
72
|
}
|
|
74
|
-
|
|
75
|
-
return page._screenshotTaskQueue.postTask(() => (0, screenshot_task_1._screenshotTask)(page, screenshotType, options));
|
|
73
|
+
return page.screenshotTaskQueue.postTask(() => (0, screenshot_task_1._screenshotTask)(page, screenshotType, options));
|
|
76
74
|
};
|
|
77
75
|
exports.screenshot = screenshot;
|
package/dist/render-frames.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
|
-
import type { Browser as PuppeteerBrowser } from 'puppeteer-core';
|
|
3
2
|
import type { BrowserExecutable, FfmpegExecutable, FrameRange, ImageFormat, SmallTCompMetadata } from 'remotion';
|
|
4
3
|
import type { RenderMediaOnDownload } from './assets/download-and-map-assets-to-file';
|
|
5
4
|
import type { BrowserLog } from './browser-log';
|
|
5
|
+
import type { Browser } from './browser/Browser';
|
|
6
6
|
import type { ServeUrlOrWebpackBundle } from './legacy-webpack-config';
|
|
7
7
|
import type { CancelSignal } from './make-cancel-signal';
|
|
8
8
|
import type { ChromiumOptions } from './open-browser';
|
|
@@ -26,7 +26,7 @@ declare type RenderFramesOptions = {
|
|
|
26
26
|
quality?: number;
|
|
27
27
|
frameRange?: FrameRange | null;
|
|
28
28
|
dumpBrowserLogs?: boolean;
|
|
29
|
-
puppeteerInstance?:
|
|
29
|
+
puppeteerInstance?: Browser;
|
|
30
30
|
browserExecutable?: BrowserExecutable;
|
|
31
31
|
onBrowserLog?: (log: BrowserLog) => void;
|
|
32
32
|
onFrameBuffer?: (buffer: Buffer, frame: number) => void;
|
package/dist/render-frames.js
CHANGED
|
@@ -49,6 +49,7 @@ const innerRenderFrames = ({ onFrameUpdate, outputDir, onStart, inputProps, qual
|
|
|
49
49
|
});
|
|
50
50
|
}
|
|
51
51
|
}
|
|
52
|
+
const downloadPromises = [];
|
|
52
53
|
const realFrameRange = (0, get_frame_to_render_1.getRealFrameRange)(composition.durationInFrames, frameRange !== null && frameRange !== void 0 ? frameRange : null);
|
|
53
54
|
const frameCount = (0, get_duration_from_frame_range_1.getDurationFromFrameRange)(realFrameRange, composition.durationInFrames);
|
|
54
55
|
const pages = new Array(actualParallelism).fill(true).map(async () => {
|
|
@@ -62,8 +63,8 @@ const innerRenderFrames = ({ onFrameUpdate, outputDir, onStart, inputProps, qual
|
|
|
62
63
|
const logCallback = (log) => {
|
|
63
64
|
onBrowserLog === null || onBrowserLog === void 0 ? void 0 : onBrowserLog({
|
|
64
65
|
stackTrace: log.stackTrace(),
|
|
65
|
-
text: log.text
|
|
66
|
-
type: log.type
|
|
66
|
+
text: log.text,
|
|
67
|
+
type: log.type,
|
|
67
68
|
});
|
|
68
69
|
};
|
|
69
70
|
if (onBrowserLog) {
|
|
@@ -142,7 +143,7 @@ const innerRenderFrames = ({ onFrameUpdate, outputDir, onStart, inputProps, qual
|
|
|
142
143
|
quality,
|
|
143
144
|
options: {
|
|
144
145
|
frame,
|
|
145
|
-
output:
|
|
146
|
+
output: null,
|
|
146
147
|
},
|
|
147
148
|
});
|
|
148
149
|
remotion_1.Internals.perf.stopPerfMeasure(id);
|
|
@@ -175,13 +176,13 @@ const innerRenderFrames = ({ onFrameUpdate, outputDir, onStart, inputProps, qual
|
|
|
175
176
|
const compressedAssets = collectedAssets.map((asset) => remotion_1.Internals.AssetCompression.compressAsset(assets.filter(remotion_1.Internals.truthy).flat(1), asset));
|
|
176
177
|
assets[index] = compressedAssets;
|
|
177
178
|
compressedAssets.forEach((asset) => {
|
|
178
|
-
(0, download_and_map_assets_to_file_1.downloadAndMapAssetsToFileUrl)({
|
|
179
|
+
downloadPromises.push((0, download_and_map_assets_to_file_1.downloadAndMapAssetsToFileUrl)({
|
|
179
180
|
asset,
|
|
180
181
|
downloadDir,
|
|
181
182
|
onDownload,
|
|
182
183
|
}).catch((err) => {
|
|
183
184
|
onError(new Error(`Error while downloading asset: ${err.stack}`));
|
|
184
|
-
});
|
|
185
|
+
}));
|
|
185
186
|
});
|
|
186
187
|
pool.release(freePage);
|
|
187
188
|
framesRendered++;
|
|
@@ -203,7 +204,11 @@ const innerRenderFrames = ({ onFrameUpdate, outputDir, onStart, inputProps, qual
|
|
|
203
204
|
return returnValue;
|
|
204
205
|
});
|
|
205
206
|
return Promise.race([
|
|
206
|
-
happyPath
|
|
207
|
+
happyPath
|
|
208
|
+
.then(() => {
|
|
209
|
+
return Promise.all(downloadPromises);
|
|
210
|
+
})
|
|
211
|
+
.then(() => happyPath),
|
|
207
212
|
new Promise((_resolve, reject) => {
|
|
208
213
|
cancelSignal === null || cancelSignal === void 0 ? void 0 : cancelSignal(() => {
|
|
209
214
|
reject(new Error('renderFrames() got cancelled'));
|
|
@@ -240,7 +245,9 @@ const renderFrames = (options) => {
|
|
|
240
245
|
return new Promise((resolve, reject) => {
|
|
241
246
|
var _a, _b, _c;
|
|
242
247
|
const cleanup = [];
|
|
243
|
-
const onError = (err) =>
|
|
248
|
+
const onError = (err) => {
|
|
249
|
+
reject(err);
|
|
250
|
+
};
|
|
244
251
|
Promise.all([
|
|
245
252
|
(0, prepare_server_1.prepareServer)({
|
|
246
253
|
webpackConfigOrServeUrl: selectedServeUrl,
|
|
@@ -262,7 +269,7 @@ const renderFrames = (options) => {
|
|
|
262
269
|
closeServer();
|
|
263
270
|
});
|
|
264
271
|
cleanup.push(closeServer);
|
|
265
|
-
|
|
272
|
+
return innerRenderFrames({
|
|
266
273
|
...options,
|
|
267
274
|
puppeteerInstance,
|
|
268
275
|
onError,
|
|
@@ -274,9 +281,10 @@ const renderFrames = (options) => {
|
|
|
274
281
|
downloadDir,
|
|
275
282
|
proxyPort: offthreadPort,
|
|
276
283
|
});
|
|
277
|
-
return renderFramesProm;
|
|
278
284
|
})
|
|
279
|
-
.then((res) =>
|
|
285
|
+
.then((res) => {
|
|
286
|
+
return resolve(res);
|
|
287
|
+
})
|
|
280
288
|
.catch((err) => reject(err))
|
|
281
289
|
.finally(() => {
|
|
282
290
|
// If browser instance was passed in, we close all the pages
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { RenderMediaOptions } from './render-media';
|
|
2
|
+
export declare const renderGif: ({ parallelism, proResProfile, crf, composition, imageFormat, ffmpegExecutable, inputProps, pixelFormat, codec, envVariables, quality, frameRange, puppeteerInstance, outputLocation, onProgress, overwrite, onDownload, loop, skipNFrames, dumpBrowserLogs, onBrowserLog, onStart, timeoutInMilliseconds, chromiumOptions, scale, browserExecutable, port, cancelSignal, ...options }: RenderMediaOptions) => Promise<void>;
|
|
@@ -0,0 +1,242 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.renderGif = void 0;
|
|
7
|
+
const fs_1 = __importDefault(require("fs"));
|
|
8
|
+
const os_1 = __importDefault(require("os"));
|
|
9
|
+
const path_1 = __importDefault(require("path"));
|
|
10
|
+
const remotion_1 = require("remotion");
|
|
11
|
+
const can_use_parallel_encoding_1 = require("./can-use-parallel-encoding");
|
|
12
|
+
const ensure_frames_in_order_1 = require("./ensure-frames-in-order");
|
|
13
|
+
const ensure_output_directory_1 = require("./ensure-output-directory");
|
|
14
|
+
const get_duration_from_frame_range_1 = require("./get-duration-from-frame-range");
|
|
15
|
+
const get_extension_from_codec_1 = require("./get-extension-from-codec");
|
|
16
|
+
const get_extension_of_filename_1 = require("./get-extension-of-filename");
|
|
17
|
+
const get_frame_to_render_1 = require("./get-frame-to-render");
|
|
18
|
+
const legacy_webpack_config_1 = require("./legacy-webpack-config");
|
|
19
|
+
const make_cancel_signal_1 = require("./make-cancel-signal");
|
|
20
|
+
const prespawn_ffmpeg_1 = require("./prespawn-ffmpeg");
|
|
21
|
+
const render_frames_1 = require("./render-frames");
|
|
22
|
+
const stitch_frames_to_gif_1 = require("./stitch-frames-to-gif");
|
|
23
|
+
const tmp_dir_1 = require("./tmp-dir");
|
|
24
|
+
const validate_even_dimensions_with_codec_1 = require("./validate-even-dimensions-with-codec");
|
|
25
|
+
const validate_output_filename_1 = require("./validate-output-filename");
|
|
26
|
+
const validate_scale_1 = require("./validate-scale");
|
|
27
|
+
const renderGif = ({ parallelism, proResProfile, crf, composition, imageFormat, ffmpegExecutable, inputProps, pixelFormat, codec, envVariables, quality, frameRange, puppeteerInstance, outputLocation, onProgress, overwrite, onDownload, loop, skipNFrames, dumpBrowserLogs, onBrowserLog, onStart, timeoutInMilliseconds, chromiumOptions, scale, browserExecutable, port, cancelSignal, ...options }) => {
|
|
28
|
+
remotion_1.Internals.validateQuality(quality);
|
|
29
|
+
if (typeof crf !== 'undefined' && crf !== null) {
|
|
30
|
+
remotion_1.Internals.validateSelectedCrfAndCodecCombination(crf, codec);
|
|
31
|
+
}
|
|
32
|
+
(0, validate_output_filename_1.validateOutputFilename)(codec, (0, get_extension_of_filename_1.getExtensionOfFilename)(outputLocation));
|
|
33
|
+
(0, validate_scale_1.validateScale)(scale);
|
|
34
|
+
const serveUrl = (0, legacy_webpack_config_1.getServeUrlWithFallback)(options);
|
|
35
|
+
let stitchStage = 'encoding';
|
|
36
|
+
let stitcherFfmpeg;
|
|
37
|
+
let preStitcher = null;
|
|
38
|
+
let encodedFrames = 0;
|
|
39
|
+
let renderedFrames = 0;
|
|
40
|
+
let renderedDoneIn = null;
|
|
41
|
+
let encodedDoneIn = null;
|
|
42
|
+
let cancelled = false;
|
|
43
|
+
const renderStart = Date.now();
|
|
44
|
+
const tmpdir = (0, tmp_dir_1.tmpDir)('pre-encode');
|
|
45
|
+
const parallelEncoding = (0, can_use_parallel_encoding_1.canUseParallelEncoding)(codec);
|
|
46
|
+
const actualImageFormat = imageFormat !== null && imageFormat !== void 0 ? imageFormat : 'jpeg';
|
|
47
|
+
const preEncodedFileLocation = parallelEncoding
|
|
48
|
+
? path_1.default.join(tmpdir, 'pre-encode.' + (0, get_extension_from_codec_1.getFileExtensionFromCodec)(codec, 'chunk'))
|
|
49
|
+
: null;
|
|
50
|
+
const outputDir = parallelEncoding
|
|
51
|
+
? null
|
|
52
|
+
: fs_1.default.mkdtempSync(path_1.default.join(os_1.default.tmpdir(), 'react-motion-render'));
|
|
53
|
+
(0, validate_even_dimensions_with_codec_1.validateEvenDimensionsWithCodec)({
|
|
54
|
+
codec,
|
|
55
|
+
height: composition.height,
|
|
56
|
+
scale: scale !== null && scale !== void 0 ? scale : 1,
|
|
57
|
+
width: composition.width,
|
|
58
|
+
});
|
|
59
|
+
const callUpdate = () => {
|
|
60
|
+
onProgress === null || onProgress === void 0 ? void 0 : onProgress({
|
|
61
|
+
encodedDoneIn,
|
|
62
|
+
encodedFrames,
|
|
63
|
+
renderedDoneIn,
|
|
64
|
+
renderedFrames,
|
|
65
|
+
stitchStage,
|
|
66
|
+
});
|
|
67
|
+
};
|
|
68
|
+
const realFrameRange = (0, get_frame_to_render_1.getRealFrameRange)(composition.durationInFrames, frameRange !== null && frameRange !== void 0 ? frameRange : null);
|
|
69
|
+
const cancelRenderFrames = (0, make_cancel_signal_1.makeCancelSignal)();
|
|
70
|
+
const cancelPrestitcher = (0, make_cancel_signal_1.makeCancelSignal)();
|
|
71
|
+
const cancelStitcher = (0, make_cancel_signal_1.makeCancelSignal)();
|
|
72
|
+
cancelSignal === null || cancelSignal === void 0 ? void 0 : cancelSignal(() => {
|
|
73
|
+
cancelRenderFrames.cancel();
|
|
74
|
+
});
|
|
75
|
+
const { waitForRightTimeOfFrameToBeInserted, setFrameToStitch, waitForFinish } = (0, ensure_frames_in_order_1.ensureFramesInOrder)(realFrameRange);
|
|
76
|
+
const actualGifFps = Math.floor(composition.fps / (skipNFrames + 1));
|
|
77
|
+
const createPrestitcherIfNecessary = async () => {
|
|
78
|
+
if (preEncodedFileLocation) {
|
|
79
|
+
preStitcher = await (0, prespawn_ffmpeg_1.prespawnFfmpeg)({
|
|
80
|
+
width: composition.width * (scale !== null && scale !== void 0 ? scale : 1),
|
|
81
|
+
height: composition.height * (scale !== null && scale !== void 0 ? scale : 1),
|
|
82
|
+
fps: actualGifFps,
|
|
83
|
+
outputLocation: preEncodedFileLocation,
|
|
84
|
+
pixelFormat,
|
|
85
|
+
codec,
|
|
86
|
+
proResProfile,
|
|
87
|
+
crf,
|
|
88
|
+
onProgress: (frame) => {
|
|
89
|
+
encodedFrames = frame;
|
|
90
|
+
callUpdate();
|
|
91
|
+
},
|
|
92
|
+
verbose: remotion_1.Internals.Logging.isEqualOrBelowLogLevel(remotion_1.Internals.Logging.getLogLevel(), 'verbose'),
|
|
93
|
+
ffmpegExecutable,
|
|
94
|
+
imageFormat: actualImageFormat,
|
|
95
|
+
signal: cancelPrestitcher.cancelSignal,
|
|
96
|
+
});
|
|
97
|
+
stitcherFfmpeg = preStitcher.task;
|
|
98
|
+
}
|
|
99
|
+
};
|
|
100
|
+
const waitForPrestitcherIfNecessary = async () => {
|
|
101
|
+
var _a;
|
|
102
|
+
if (stitcherFfmpeg) {
|
|
103
|
+
await waitForFinish();
|
|
104
|
+
(_a = stitcherFfmpeg === null || stitcherFfmpeg === void 0 ? void 0 : stitcherFfmpeg.stdin) === null || _a === void 0 ? void 0 : _a.end();
|
|
105
|
+
try {
|
|
106
|
+
await stitcherFfmpeg;
|
|
107
|
+
}
|
|
108
|
+
catch (err) {
|
|
109
|
+
throw new Error(preStitcher === null || preStitcher === void 0 ? void 0 : preStitcher.getLogs());
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
};
|
|
113
|
+
const happyPath = createPrestitcherIfNecessary()
|
|
114
|
+
.then(() => {
|
|
115
|
+
const renderFramesProc = (0, render_frames_1.renderFrames)({
|
|
116
|
+
config: composition,
|
|
117
|
+
onFrameUpdate: (frame) => {
|
|
118
|
+
stitchStage = 'gif';
|
|
119
|
+
renderedFrames = frame;
|
|
120
|
+
callUpdate();
|
|
121
|
+
},
|
|
122
|
+
parallelism,
|
|
123
|
+
outputDir,
|
|
124
|
+
skipNFrames,
|
|
125
|
+
onStart: (data) => {
|
|
126
|
+
renderedFrames = 0;
|
|
127
|
+
callUpdate();
|
|
128
|
+
onStart === null || onStart === void 0 ? void 0 : onStart(data);
|
|
129
|
+
},
|
|
130
|
+
inputProps,
|
|
131
|
+
envVariables,
|
|
132
|
+
imageFormat: actualImageFormat,
|
|
133
|
+
quality,
|
|
134
|
+
frameRange: frameRange !== null && frameRange !== void 0 ? frameRange : null,
|
|
135
|
+
puppeteerInstance,
|
|
136
|
+
onFrameBuffer: parallelEncoding
|
|
137
|
+
? async (buffer, frame) => {
|
|
138
|
+
var _a;
|
|
139
|
+
await waitForRightTimeOfFrameToBeInserted(frame);
|
|
140
|
+
if (cancelled) {
|
|
141
|
+
return;
|
|
142
|
+
}
|
|
143
|
+
(_a = stitcherFfmpeg === null || stitcherFfmpeg === void 0 ? void 0 : stitcherFfmpeg.stdin) === null || _a === void 0 ? void 0 : _a.write(buffer);
|
|
144
|
+
setFrameToStitch(frame + 1);
|
|
145
|
+
}
|
|
146
|
+
: undefined,
|
|
147
|
+
serveUrl,
|
|
148
|
+
dumpBrowserLogs,
|
|
149
|
+
onBrowserLog,
|
|
150
|
+
onDownload,
|
|
151
|
+
timeoutInMilliseconds,
|
|
152
|
+
chromiumOptions,
|
|
153
|
+
scale,
|
|
154
|
+
ffmpegExecutable,
|
|
155
|
+
browserExecutable,
|
|
156
|
+
port,
|
|
157
|
+
cancelSignal: cancelRenderFrames.cancelSignal,
|
|
158
|
+
});
|
|
159
|
+
return renderFramesProc;
|
|
160
|
+
})
|
|
161
|
+
.then((renderFramesReturn) => {
|
|
162
|
+
return Promise.all([renderFramesReturn, waitForPrestitcherIfNecessary()]);
|
|
163
|
+
})
|
|
164
|
+
.then(([{ assetsInfo }]) => {
|
|
165
|
+
renderedDoneIn = Date.now() - renderStart;
|
|
166
|
+
callUpdate();
|
|
167
|
+
(0, ensure_output_directory_1.ensureOutputDirectory)(outputLocation);
|
|
168
|
+
const stitchStart = Date.now();
|
|
169
|
+
return Promise.all([
|
|
170
|
+
(0, stitch_frames_to_gif_1.stitchFramesToGif)({
|
|
171
|
+
width: composition.width * (scale !== null && scale !== void 0 ? scale : 1),
|
|
172
|
+
height: composition.height * (scale !== null && scale !== void 0 ? scale : 1),
|
|
173
|
+
fps: actualGifFps,
|
|
174
|
+
outputLocation,
|
|
175
|
+
internalOptions: {
|
|
176
|
+
preEncodedFileLocation,
|
|
177
|
+
imageFormat: actualImageFormat,
|
|
178
|
+
},
|
|
179
|
+
force: overwrite !== null && overwrite !== void 0 ? overwrite : remotion_1.Internals.DEFAULT_OVERWRITE,
|
|
180
|
+
pixelFormat,
|
|
181
|
+
codec,
|
|
182
|
+
proResProfile,
|
|
183
|
+
crf,
|
|
184
|
+
loop,
|
|
185
|
+
assetsInfo,
|
|
186
|
+
ffmpegExecutable,
|
|
187
|
+
onProgress: (frame) => {
|
|
188
|
+
stitchStage = 'gif';
|
|
189
|
+
encodedFrames = frame;
|
|
190
|
+
callUpdate();
|
|
191
|
+
},
|
|
192
|
+
verbose: remotion_1.Internals.Logging.isEqualOrBelowLogLevel(remotion_1.Internals.Logging.getLogLevel(), 'verbose'),
|
|
193
|
+
dir: outputDir !== null && outputDir !== void 0 ? outputDir : undefined,
|
|
194
|
+
cancelSignal: cancelStitcher.cancelSignal,
|
|
195
|
+
}),
|
|
196
|
+
stitchStart,
|
|
197
|
+
]);
|
|
198
|
+
})
|
|
199
|
+
.then(([, stitchStart]) => {
|
|
200
|
+
encodedFrames = (0, get_duration_from_frame_range_1.getDurationFromFrameRange)(frameRange !== null && frameRange !== void 0 ? frameRange : null, composition.durationInFrames, skipNFrames);
|
|
201
|
+
encodedDoneIn = Date.now() - stitchStart;
|
|
202
|
+
callUpdate();
|
|
203
|
+
})
|
|
204
|
+
.catch((err) => {
|
|
205
|
+
/**
|
|
206
|
+
* When an error is thrown in renderFrames(...) (e.g., when delayRender() is used incorrectly), fs.unlinkSync(...) throws an error that the file is locked because ffmpeg is still running, and renderMedia returns it.
|
|
207
|
+
* Therefore we first kill the FFMPEG process before deleting the file
|
|
208
|
+
*/
|
|
209
|
+
cancelled = true;
|
|
210
|
+
cancelRenderFrames.cancel();
|
|
211
|
+
cancelStitcher.cancel();
|
|
212
|
+
cancelPrestitcher.cancel();
|
|
213
|
+
if (stitcherFfmpeg !== undefined && stitcherFfmpeg.exitCode === null) {
|
|
214
|
+
const promise = new Promise((resolve) => {
|
|
215
|
+
setTimeout(() => {
|
|
216
|
+
resolve();
|
|
217
|
+
}, 2000);
|
|
218
|
+
stitcherFfmpeg.on('close', resolve);
|
|
219
|
+
});
|
|
220
|
+
stitcherFfmpeg.kill();
|
|
221
|
+
return promise.then(() => {
|
|
222
|
+
throw err;
|
|
223
|
+
});
|
|
224
|
+
}
|
|
225
|
+
throw err;
|
|
226
|
+
})
|
|
227
|
+
.finally(() => {
|
|
228
|
+
if (preEncodedFileLocation !== null &&
|
|
229
|
+
fs_1.default.existsSync(preEncodedFileLocation)) {
|
|
230
|
+
fs_1.default.unlinkSync(preEncodedFileLocation);
|
|
231
|
+
}
|
|
232
|
+
});
|
|
233
|
+
return Promise.race([
|
|
234
|
+
happyPath,
|
|
235
|
+
new Promise((_resolve, reject) => {
|
|
236
|
+
cancelSignal === null || cancelSignal === void 0 ? void 0 : cancelSignal(() => {
|
|
237
|
+
reject(new Error('renderMedia() got cancelled'));
|
|
238
|
+
});
|
|
239
|
+
}),
|
|
240
|
+
]);
|
|
241
|
+
};
|
|
242
|
+
exports.renderGif = renderGif;
|
package/dist/render-media.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import type { Browser as PuppeteerBrowser } from 'puppeteer-core';
|
|
2
1
|
import type { BrowserExecutable, Codec, FfmpegExecutable, FrameRange, PixelFormat, ProResProfile, SmallTCompMetadata } from 'remotion';
|
|
3
2
|
import type { RenderMediaOnDownload } from './assets/download-and-map-assets-to-file';
|
|
4
3
|
import type { BrowserLog } from './browser-log';
|
|
4
|
+
import type { Browser as PuppeteerBrowser } from './browser/Browser';
|
|
5
5
|
import type { ServeUrlOrWebpackBundle } from './legacy-webpack-config';
|
|
6
6
|
import type { CancelSignal } from './make-cancel-signal';
|
|
7
7
|
import type { ChromiumOptions } from './open-browser';
|
package/dist/render-still.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import type { Browser as PuppeteerBrowser } from 'puppeteer-core';
|
|
2
1
|
import type { BrowserExecutable, FfmpegExecutable, SmallTCompMetadata, StillImageFormat } from 'remotion';
|
|
3
2
|
import type { RenderMediaOnDownload } from './assets/download-and-map-assets-to-file';
|
|
3
|
+
import type { Browser as PuppeteerBrowser } from './browser/Browser';
|
|
4
4
|
import type { ServeUrlOrWebpackBundle } from './legacy-webpack-config';
|
|
5
5
|
import type { CancelSignal } from './make-cancel-signal';
|
|
6
6
|
import type { ChromiumOptions } from './open-browser';
|
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
import type puppeteer from 'puppeteer-core';
|
|
2
1
|
import type { ImageFormat } from 'remotion';
|
|
2
|
+
import type { Page } from './browser/Page';
|
|
3
3
|
export declare const screenshotDOMElement: ({ page, imageFormat, quality, opts, }: {
|
|
4
|
-
page:
|
|
4
|
+
page: Page;
|
|
5
5
|
imageFormat: ImageFormat;
|
|
6
6
|
quality: number | undefined;
|
|
7
|
-
opts
|
|
8
|
-
path
|
|
9
|
-
|
|
10
|
-
} | undefined;
|
|
7
|
+
opts: {
|
|
8
|
+
path: string | null;
|
|
9
|
+
};
|
|
11
10
|
}) => Promise<Buffer>;
|
|
@@ -3,11 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.screenshotDOMElement = void 0;
|
|
4
4
|
const puppeteer_evaluate_1 = require("./puppeteer-evaluate");
|
|
5
5
|
const puppeteer_screenshot_1 = require("./puppeteer-screenshot");
|
|
6
|
-
const screenshotDOMElement = async ({ page, imageFormat, quality, opts
|
|
7
|
-
const
|
|
8
|
-
const { selector } = opts;
|
|
9
|
-
if (!selector)
|
|
10
|
-
throw Error('Please provide a selector.');
|
|
6
|
+
const screenshotDOMElement = async ({ page, imageFormat, quality, opts, }) => {
|
|
7
|
+
const { path } = opts;
|
|
11
8
|
if (imageFormat === 'png') {
|
|
12
9
|
await (0, puppeteer_evaluate_1.puppeteerEvaluateWithCatch)({
|
|
13
10
|
pageFunction: () => {
|
|
@@ -33,7 +30,7 @@ const screenshotDOMElement = async ({ page, imageFormat, quality, opts = {}, })
|
|
|
33
30
|
}
|
|
34
31
|
return (0, puppeteer_screenshot_1.screenshot)(page, {
|
|
35
32
|
omitBackground: imageFormat === 'png',
|
|
36
|
-
path,
|
|
33
|
+
path: path !== null && path !== void 0 ? path : undefined,
|
|
37
34
|
type: imageFormat,
|
|
38
35
|
quality,
|
|
39
36
|
});
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
-
import type { Page, ScreenshotOptions } from 'puppeteer-core';
|
|
2
1
|
import type { StillImageFormat } from 'remotion';
|
|
2
|
+
import type { Page } from './browser/Page';
|
|
3
|
+
import type { ScreenshotOptions } from './browser/ScreenshotOptions';
|
|
3
4
|
export declare const _screenshotTask: (page: Page, format: StillImageFormat, options: ScreenshotOptions) => Promise<Buffer | string>;
|
package/dist/screenshot-task.js
CHANGED
|
@@ -7,8 +7,8 @@ exports._screenshotTask = void 0;
|
|
|
7
7
|
const fs_1 = __importDefault(require("fs"));
|
|
8
8
|
const remotion_1 = require("remotion");
|
|
9
9
|
const _screenshotTask = async (page, format, options) => {
|
|
10
|
-
const client = page._client;
|
|
11
|
-
const target = page.
|
|
10
|
+
const client = page._client();
|
|
11
|
+
const target = page.target();
|
|
12
12
|
const perfTarget = remotion_1.Internals.perf.startPerfMeasure('activate-target');
|
|
13
13
|
await client.send('Target.activateTarget', {
|
|
14
14
|
targetId: target._targetId,
|
|
@@ -30,9 +30,7 @@ const _screenshotTask = async (page, format, options) => {
|
|
|
30
30
|
if (shouldSetDefaultBackground)
|
|
31
31
|
await client.send('Emulation.setDefaultBackgroundColorOverride');
|
|
32
32
|
const saveMarker = remotion_1.Internals.perf.startPerfMeasure('save');
|
|
33
|
-
const buffer =
|
|
34
|
-
? result.data
|
|
35
|
-
: Buffer.from(result.data, 'base64');
|
|
33
|
+
const buffer = Buffer.from(result.data, 'base64');
|
|
36
34
|
if (options.path)
|
|
37
35
|
await fs_1.default.promises.writeFile(options.path, buffer);
|
|
38
36
|
remotion_1.Internals.perf.stopPerfMeasure(saveMarker);
|
package/dist/seek-to-frame.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { Page } from '
|
|
1
|
+
import type { Page } from './browser/Page';
|
|
2
2
|
export declare const setPropsAndEnv: ({ inputProps, envVariables, page, serveUrl, initialFrame, timeoutInMilliseconds, proxyPort, retriesRemaining, }: {
|
|
3
3
|
inputProps: unknown;
|
|
4
4
|
envVariables: Record<string, string> | undefined;
|
|
@@ -31,6 +31,9 @@ const setPropsAndEnv = async ({ inputProps, envVariables, page, serveUrl, initia
|
|
|
31
31
|
window.remotion_proxyPort = port;
|
|
32
32
|
}, [proxyPort]);
|
|
33
33
|
const pageRes = await page.goto(urlToVisit);
|
|
34
|
+
if (pageRes === null) {
|
|
35
|
+
throw new Error(`Visited "${urlToVisit}" but got no response.`);
|
|
36
|
+
}
|
|
34
37
|
const status = pageRes.status();
|
|
35
38
|
// S3 in rare occasions returns a 500 or 503 error code for GET operations.
|
|
36
39
|
// Usually it is fixed by retrying.
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { StitcherOptions } from './stitch-frames-to-video';
|
|
2
|
+
declare type ReturnType = {
|
|
3
|
+
task: Promise<unknown>;
|
|
4
|
+
getLogs: () => string;
|
|
5
|
+
};
|
|
6
|
+
export declare const spawnFfmpeg: (options: StitcherOptions) => Promise<ReturnType>;
|
|
7
|
+
export declare const stitchFramesToGif: (options: StitcherOptions) => Promise<void>;
|
|
8
|
+
export {};
|