@remotion/renderer 4.0.0-reorg.8 → 4.0.0-retry.8
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/LICENSE.md +8 -8
- package/dist/assets/calculate-asset-positions.d.ts +0 -0
- package/dist/assets/calculate-asset-positions.js +0 -0
- package/dist/assets/calculate-atempo.d.ts +0 -0
- package/dist/assets/calculate-atempo.js +0 -0
- package/dist/assets/convert-assets-to-file-urls.d.ts +3 -2
- package/dist/assets/convert-assets-to-file-urls.js +2 -2
- package/dist/assets/download-and-map-assets-to-file.d.ts +8 -6
- package/dist/assets/download-and-map-assets-to-file.js +91 -50
- package/dist/assets/download-file.d.ts +1 -1
- package/dist/assets/download-file.js +4 -2
- package/dist/assets/download-map.d.ts +64 -0
- package/dist/assets/download-map.js +73 -0
- package/dist/assets/ffmpeg-volume-expression.d.ts +0 -0
- package/dist/assets/ffmpeg-volume-expression.js +0 -0
- package/dist/assets/flatten-volume-array.d.ts +0 -0
- package/dist/assets/flatten-volume-array.js +0 -0
- package/dist/assets/get-audio-channels.d.ts +2 -6
- package/dist/assets/get-audio-channels.js +6 -7
- package/dist/assets/get-video-stream-duration.d.ts +3 -5
- package/dist/assets/get-video-stream-duration.js +39 -14
- package/dist/assets/read-file.d.ts +0 -0
- package/dist/assets/read-file.js +0 -0
- package/dist/assets/round-volume-to-avoid-stack-overflow.d.ts +0 -0
- package/dist/assets/round-volume-to-avoid-stack-overflow.js +0 -0
- package/dist/assets/sanitize-filename.d.ts +0 -0
- package/dist/assets/sanitize-filename.js +0 -0
- package/dist/assets/sanitize-filepath.d.ts +0 -0
- package/dist/assets/sanitize-filepath.js +0 -0
- package/dist/assets/truncate-utf8-bytes.d.ts +0 -0
- package/dist/assets/truncate-utf8-bytes.js +0 -0
- package/dist/assets/types.d.ts +0 -0
- package/dist/assets/types.js +0 -0
- package/dist/browser/Browser.d.ts +1 -0
- package/dist/browser/Browser.js +9 -10
- package/dist/browser/BrowserConnector.d.ts +0 -0
- package/dist/browser/BrowserConnector.js +0 -0
- package/dist/browser/BrowserFetcher.d.ts +0 -0
- package/dist/browser/BrowserFetcher.js +12 -10
- package/dist/browser/BrowserPage.d.ts +0 -0
- package/dist/browser/BrowserPage.js +0 -0
- package/dist/browser/BrowserRunner.d.ts +1 -4
- package/dist/browser/BrowserRunner.js +28 -71
- package/dist/browser/Connection.d.ts +0 -0
- package/dist/browser/Connection.js +1 -1
- package/dist/browser/ConsoleMessage.d.ts +0 -0
- package/dist/browser/ConsoleMessage.js +0 -0
- package/dist/browser/DOMWorld.d.ts +0 -0
- package/dist/browser/DOMWorld.js +0 -0
- package/dist/browser/Errors.d.ts +0 -0
- package/dist/browser/Errors.js +0 -0
- package/dist/browser/EvalTypes.d.ts +0 -0
- package/dist/browser/EvalTypes.js +0 -0
- package/dist/browser/EventEmitter.d.ts +0 -0
- package/dist/browser/EventEmitter.js +0 -0
- package/dist/browser/ExecutionContext.d.ts +0 -0
- package/dist/browser/ExecutionContext.js +0 -0
- package/dist/browser/FrameManager.d.ts +0 -0
- package/dist/browser/FrameManager.js +0 -0
- package/dist/browser/HTTPRequest.d.ts +0 -0
- package/dist/browser/HTTPRequest.js +0 -0
- package/dist/browser/HTTPResponse.d.ts +0 -0
- package/dist/browser/HTTPResponse.js +0 -0
- package/dist/browser/JSHandle.d.ts +0 -0
- package/dist/browser/JSHandle.js +0 -0
- package/dist/browser/LaunchOptions.d.ts +0 -4
- package/dist/browser/LaunchOptions.js +0 -0
- package/dist/browser/Launcher.d.ts +1 -1
- package/dist/browser/Launcher.js +5 -363
- package/dist/browser/LifecycleWatcher.d.ts +0 -0
- package/dist/browser/LifecycleWatcher.js +0 -0
- package/dist/browser/NetworkEventManager.d.ts +0 -0
- package/dist/browser/NetworkEventManager.js +0 -0
- package/dist/browser/NetworkManager.d.ts +0 -0
- package/dist/browser/NetworkManager.js +0 -0
- package/dist/browser/NodeWebSocketTransport.d.ts +0 -0
- package/dist/browser/NodeWebSocketTransport.js +1 -1
- package/dist/browser/Product.d.ts +0 -0
- package/dist/browser/Product.js +0 -0
- package/dist/browser/PuppeteerNode.d.ts +0 -0
- package/dist/browser/PuppeteerNode.js +1 -4
- package/dist/browser/PuppeteerViewport.d.ts +0 -0
- package/dist/browser/PuppeteerViewport.js +0 -0
- package/dist/browser/ScreenshotOptions.d.ts +0 -0
- package/dist/browser/ScreenshotOptions.js +0 -0
- package/dist/browser/Target.d.ts +0 -0
- package/dist/browser/Target.js +0 -0
- package/dist/browser/TaskQueue.d.ts +0 -0
- package/dist/browser/TaskQueue.js +0 -0
- package/dist/browser/TimeoutSettings.d.ts +0 -0
- package/dist/browser/TimeoutSettings.js +0 -0
- package/dist/browser/assert.d.ts +0 -0
- package/dist/browser/assert.js +0 -0
- package/dist/browser/create-browser-fetcher.d.ts +0 -0
- package/dist/browser/create-browser-fetcher.js +2 -44
- package/dist/browser/devtools-commands.d.ts +0 -0
- package/dist/browser/devtools-commands.js +0 -0
- package/dist/browser/devtools-types.d.ts +0 -0
- package/dist/browser/devtools-types.js +0 -0
- package/dist/browser/get-download-destination.d.ts +0 -0
- package/dist/browser/get-download-destination.js +0 -0
- package/dist/browser/mitt/index.d.ts +0 -0
- package/dist/browser/mitt/index.js +0 -0
- package/dist/browser/node.d.ts +0 -0
- package/dist/browser/node.js +0 -0
- package/dist/browser/revisions.d.ts +0 -1
- package/dist/browser/revisions.js +0 -1
- package/dist/browser/util.d.ts +0 -0
- package/dist/browser/util.js +0 -0
- package/dist/browser-executable.d.ts +0 -0
- package/dist/browser-executable.js +0 -0
- package/dist/browser-log.d.ts +0 -0
- package/dist/browser-log.js +0 -0
- package/dist/browser.d.ts +0 -0
- package/dist/browser.js +0 -0
- package/dist/calculate-ffmpeg-filters.d.ts +0 -0
- package/dist/calculate-ffmpeg-filters.js +0 -0
- package/dist/calculate-sar-dar-pixels.d.ts +0 -0
- package/dist/calculate-sar-dar-pixels.js +0 -0
- package/dist/can-use-parallel-encoding.d.ts +0 -0
- package/dist/can-use-parallel-encoding.js +0 -0
- package/dist/check-apple-silicon.d.ts +1 -0
- package/dist/check-apple-silicon.js +55 -0
- package/dist/chunk.d.ts +0 -0
- package/dist/chunk.js +0 -0
- package/dist/codec-supports-media.d.ts +1 -0
- package/dist/codec-supports-media.js +8 -1
- package/dist/codec.d.ts +0 -0
- package/dist/codec.js +0 -0
- package/dist/combine-videos.d.ts +0 -0
- package/dist/combine-videos.js +1 -1
- package/dist/compress-assets.d.ts +0 -0
- package/dist/compress-assets.js +0 -0
- package/dist/convert-number-of-gif-loops-to-ffmpeg.d.ts +0 -0
- package/dist/convert-number-of-gif-loops-to-ffmpeg.js +0 -0
- package/dist/convert-to-pcm.d.ts +0 -0
- package/dist/convert-to-pcm.js +0 -0
- package/dist/convert-to-positive-frame-index.d.ts +4 -0
- package/dist/convert-to-positive-frame-index.js +8 -0
- package/dist/create-ffmpeg-complex-filter.d.ts +2 -1
- package/dist/create-ffmpeg-complex-filter.js +2 -11
- package/dist/create-ffmpeg-merge-filter.d.ts +0 -0
- package/dist/create-ffmpeg-merge-filter.js +0 -0
- package/dist/create-silent-audio.d.ts +0 -0
- package/dist/create-silent-audio.js +0 -0
- package/dist/crf.d.ts +5 -1
- package/dist/crf.js +33 -6
- package/dist/cycle-browser-tabs.d.ts +0 -0
- package/dist/cycle-browser-tabs.js +0 -0
- package/dist/delay-render-embedded-stack.d.ts +0 -0
- package/dist/delay-render-embedded-stack.js +0 -0
- package/dist/delete-directory.d.ts +0 -0
- package/dist/delete-directory.js +0 -0
- package/dist/ensure-frames-in-order.d.ts +0 -0
- package/dist/ensure-frames-in-order.js +0 -0
- package/dist/ensure-output-directory.d.ts +0 -0
- package/dist/ensure-output-directory.js +0 -0
- package/dist/ensure-presentation-timestamp.d.ts +2 -1
- package/dist/ensure-presentation-timestamp.js +7 -5
- package/dist/error-handling/handle-javascript-exception.d.ts +0 -0
- package/dist/error-handling/handle-javascript-exception.js +0 -0
- package/dist/error-handling/symbolicate-error.d.ts +0 -0
- package/dist/error-handling/symbolicate-error.js +0 -0
- package/dist/error-handling/symbolicateable-error.d.ts +0 -0
- package/dist/error-handling/symbolicateable-error.js +0 -0
- package/dist/extract-frame-from-video.d.ts +2 -0
- package/dist/extract-frame-from-video.js +42 -15
- package/dist/ffmpeg-executable.d.ts +0 -0
- package/dist/ffmpeg-executable.js +0 -0
- package/dist/ffmpeg-filter-file.d.ts +2 -1
- package/dist/ffmpeg-filter-file.js +4 -6
- package/dist/ffmpeg-flags.d.ts +5 -2
- package/dist/ffmpeg-flags.js +37 -7
- package/dist/ffmpeg-override.d.ts +4 -0
- package/dist/ffmpeg-override.js +2 -0
- package/dist/frame-range.d.ts +0 -0
- package/dist/frame-range.js +0 -0
- package/dist/frame-to-ffmpeg-timestamp.d.ts +0 -0
- package/dist/frame-to-ffmpeg-timestamp.js +0 -0
- package/dist/get-audio-codec-name.d.ts +0 -0
- package/dist/get-audio-codec-name.js +0 -0
- package/dist/get-browser-instance.d.ts +0 -0
- package/dist/get-browser-instance.js +0 -0
- package/dist/get-codec-name.d.ts +0 -0
- package/dist/get-codec-name.js +0 -0
- package/dist/get-compositions.d.ts +5 -0
- package/dist/get-compositions.js +14 -6
- package/dist/get-concurrency.d.ts +0 -0
- package/dist/get-concurrency.js +0 -0
- package/dist/get-duration-from-frame-range.d.ts +0 -0
- package/dist/get-duration-from-frame-range.js +0 -0
- package/dist/get-extension-from-codec.d.ts +1 -1
- package/dist/get-extension-from-codec.js +0 -0
- package/dist/get-extension-of-filename.d.ts +0 -0
- package/dist/get-extension-of-filename.js +0 -0
- package/dist/get-frame-padded-index.d.ts +0 -0
- package/dist/get-frame-padded-index.js +0 -0
- package/dist/get-frame-to-render.d.ts +0 -0
- package/dist/get-frame-to-render.js +0 -0
- package/dist/get-local-browser-executable.d.ts +0 -0
- package/dist/get-local-browser-executable.js +1 -3
- package/dist/get-port.d.ts +0 -0
- package/dist/get-port.js +0 -0
- package/dist/get-prores-profile-name.d.ts +0 -0
- package/dist/get-prores-profile-name.js +0 -0
- package/dist/get-video-info.d.ts +2 -7
- package/dist/get-video-info.js +7 -8
- package/dist/get-video-threads-flag.d.ts +1 -0
- package/dist/get-video-threads-flag.js +18 -0
- package/dist/guess-extension-for-media.d.ts +1 -1
- package/dist/guess-extension-for-media.js +1 -1
- package/dist/image-format.d.ts +1 -1
- package/dist/image-format.js +3 -0
- package/dist/index.d.ts +19 -28
- package/dist/index.js +16 -24
- package/dist/is-audio-codec.d.ts +0 -0
- package/dist/is-audio-codec.js +0 -0
- package/dist/is-beyond-last-frame.d.ts +3 -2
- package/dist/is-beyond-last-frame.js +5 -5
- package/dist/is-serve-url.d.ts +0 -0
- package/dist/is-serve-url.js +0 -0
- package/dist/last-frame-from-video-cache.d.ts +3 -2
- package/dist/last-frame-from-video-cache.js +17 -17
- package/dist/legacy-webpack-config.d.ts +0 -0
- package/dist/legacy-webpack-config.js +0 -0
- package/dist/log-level.d.ts +0 -0
- package/dist/log-level.js +0 -0
- package/dist/make-cancel-signal.d.ts +0 -0
- package/dist/make-cancel-signal.js +0 -0
- package/dist/merge-audio-track.d.ts +2 -0
- package/dist/merge-audio-track.js +6 -3
- package/dist/mime-db.d.ts +0 -0
- package/dist/mime-db.js +0 -0
- package/dist/mime-types.d.ts +1 -0
- package/dist/mime-types.js +6 -1
- package/dist/normalize-serve-url.d.ts +0 -0
- package/dist/normalize-serve-url.js +0 -0
- package/dist/offthread-video-server.d.ts +3 -2
- package/dist/offthread-video-server.js +14 -2
- package/dist/open-browser.d.ts +0 -0
- package/dist/open-browser.js +3 -12
- package/dist/overwrite.d.ts +0 -0
- package/dist/overwrite.js +0 -0
- package/dist/p-limit.d.ts +0 -0
- package/dist/p-limit.js +0 -0
- package/dist/parse-browser-error-stack.d.ts +0 -0
- package/dist/parse-browser-error-stack.js +0 -0
- package/dist/parse-ffmpeg-progress.d.ts +0 -0
- package/dist/parse-ffmpeg-progress.js +0 -0
- package/dist/perf.d.ts +0 -0
- package/dist/perf.js +0 -0
- package/dist/pixel-format.d.ts +1 -1
- package/dist/pixel-format.js +3 -0
- package/dist/pool.d.ts +0 -0
- package/dist/pool.js +0 -0
- package/dist/prepare-server.d.ts +3 -2
- package/dist/prepare-server.js +3 -3
- package/dist/preprocess-audio-track.d.ts +2 -0
- package/dist/preprocess-audio-track.js +3 -3
- package/dist/prespawn-ffmpeg.d.ts +3 -0
- package/dist/prespawn-ffmpeg.js +15 -11
- package/dist/prestitcher-memory-usage.d.ts +12 -0
- package/dist/prestitcher-memory-usage.js +30 -0
- package/dist/prores-profile.d.ts +4 -1
- package/dist/prores-profile.js +6 -6
- package/dist/provide-screenshot.d.ts +0 -0
- package/dist/provide-screenshot.js +0 -0
- package/dist/puppeteer-evaluate.d.ts +0 -0
- package/dist/puppeteer-evaluate.js +0 -0
- package/dist/puppeteer-screenshot.d.ts +0 -0
- package/dist/puppeteer-screenshot.js +0 -0
- package/dist/quality.d.ts +0 -0
- package/dist/quality.js +0 -0
- package/dist/render-frames.d.ts +16 -3
- package/dist/render-frames.js +98 -30
- package/dist/render-media.d.ts +30 -4
- package/dist/render-media.js +123 -20
- package/dist/render-still.d.ts +6 -1
- package/dist/render-still.js +37 -11
- package/dist/resolve-asset-src.d.ts +0 -0
- package/dist/resolve-asset-src.js +0 -0
- package/dist/sample-rate.d.ts +0 -0
- package/dist/sample-rate.js +0 -0
- package/dist/screenshot-dom-element.d.ts +0 -0
- package/dist/screenshot-dom-element.js +0 -0
- package/dist/screenshot-task.d.ts +0 -0
- package/dist/screenshot-task.js +30 -15
- package/dist/seek-to-frame.d.ts +0 -0
- package/dist/seek-to-frame.js +0 -0
- package/dist/serve-handler/index.d.ts +0 -0
- package/dist/serve-handler/index.js +0 -0
- package/dist/serve-handler/is-path-inside.d.ts +0 -0
- package/dist/serve-handler/is-path-inside.js +0 -0
- package/dist/serve-handler/range-parser.d.ts +0 -0
- package/dist/serve-handler/range-parser.js +0 -0
- package/dist/serve-static.d.ts +2 -1
- package/dist/serve-static.js +14 -1
- package/dist/set-props-and-env.d.ts +3 -1
- package/dist/set-props-and-env.js +34 -8
- package/dist/stitch-frames-to-video.d.ts +7 -7
- package/dist/stitch-frames-to-video.js +68 -57
- package/dist/stringify-ffmpeg-filter.d.ts +0 -0
- package/dist/stringify-ffmpeg-filter.js +0 -0
- package/dist/symbolicate-stacktrace.d.ts +0 -0
- package/dist/symbolicate-stacktrace.js +0 -0
- package/dist/tmp-dir.d.ts +0 -0
- package/dist/tmp-dir.js +0 -0
- package/dist/truthy.d.ts +0 -0
- package/dist/truthy.js +0 -0
- package/dist/types.d.ts +1 -1
- package/dist/types.js +0 -0
- package/dist/validate-concurrency.d.ts +0 -0
- package/dist/validate-concurrency.js +0 -0
- package/dist/validate-even-dimensions-with-codec.d.ts +0 -0
- package/dist/validate-even-dimensions-with-codec.js +0 -0
- package/dist/validate-every-nth-frame.d.ts +2 -1
- package/dist/validate-every-nth-frame.js +8 -1
- package/dist/validate-ffmpeg-override.d.ts +2 -0
- package/dist/validate-ffmpeg-override.js +12 -0
- package/dist/validate-ffmpeg.d.ts +4 -1
- package/dist/validate-ffmpeg.js +23 -7
- package/dist/validate-frame.d.ts +0 -0
- package/dist/validate-frame.js +3 -3
- package/dist/validate-number-of-gif-loops.d.ts +2 -0
- package/dist/validate-number-of-gif-loops.js +24 -0
- package/dist/validate-opengl-renderer.d.ts +0 -0
- package/dist/validate-opengl-renderer.js +0 -0
- package/dist/validate-output-filename.d.ts +0 -0
- package/dist/validate-output-filename.js +0 -0
- package/dist/validate-puppeteer-timeout.d.ts +0 -0
- package/dist/validate-puppeteer-timeout.js +1 -1
- package/dist/validate-scale.d.ts +0 -0
- package/dist/validate-scale.js +0 -0
- package/dist/validate-videobitrate.d.ts +1 -0
- package/dist/validate-videobitrate.js +20 -0
- package/dist/wait-for-symbolication-error-to-be-done.d.ts +0 -0
- package/dist/wait-for-symbolication-error-to-be-done.js +0 -0
- package/dist/warn-about-ffmpeg-version.d.ts +5 -0
- package/dist/warn-about-ffmpeg-version.js +37 -0
- package/dist/ws/ws-types.d.ts +0 -0
- package/dist/ws/ws-types.js +0 -0
- package/package.json +7 -7
- package/dist/make-assets-download-dir.d.ts +0 -1
- package/dist/make-assets-download-dir.js +0 -13
- package/vitest.config.ts +0 -8
package/dist/render-still.js
CHANGED
|
@@ -30,12 +30,13 @@ exports.renderStill = void 0;
|
|
|
30
30
|
const fs_1 = __importStar(require("fs"));
|
|
31
31
|
const path_1 = __importDefault(require("path"));
|
|
32
32
|
const remotion_1 = require("remotion");
|
|
33
|
+
const download_map_1 = require("./assets/download-map");
|
|
33
34
|
const browser_1 = require("./browser");
|
|
35
|
+
const convert_to_positive_frame_index_1 = require("./convert-to-positive-frame-index");
|
|
34
36
|
const ensure_output_directory_1 = require("./ensure-output-directory");
|
|
35
37
|
const handle_javascript_exception_1 = require("./error-handling/handle-javascript-exception");
|
|
36
38
|
const image_format_1 = require("./image-format");
|
|
37
39
|
const legacy_webpack_config_1 = require("./legacy-webpack-config");
|
|
38
|
-
const make_assets_download_dir_1 = require("./make-assets-download-dir");
|
|
39
40
|
const open_browser_1 = require("./open-browser");
|
|
40
41
|
const prepare_server_1 = require("./prepare-server");
|
|
41
42
|
const provide_screenshot_1 = require("./provide-screenshot");
|
|
@@ -53,6 +54,10 @@ const innerRenderStill = async ({ composition, quality, imageFormat = 'png', ser
|
|
|
53
54
|
remotion_1.Internals.validateDurationInFrames(composition.durationInFrames, 'in the `config` object passed to `renderStill()`');
|
|
54
55
|
(0, image_format_1.validateNonNullImageFormat)(imageFormat);
|
|
55
56
|
(0, validate_frame_1.validateFrame)(frame, composition.durationInFrames);
|
|
57
|
+
const stillFrame = (0, convert_to_positive_frame_index_1.convertToPositiveFrameIndex)({
|
|
58
|
+
durationInFrames: composition.durationInFrames,
|
|
59
|
+
frame,
|
|
60
|
+
});
|
|
56
61
|
(0, validate_puppeteer_timeout_1.validatePuppeteerTimeout)(timeoutInMilliseconds);
|
|
57
62
|
(0, validate_scale_1.validateScale)(scale);
|
|
58
63
|
if (typeof output !== 'string') {
|
|
@@ -113,29 +118,44 @@ const innerRenderStill = async ({ composition, quality, imageFormat = 'png', ser
|
|
|
113
118
|
envVariables,
|
|
114
119
|
page,
|
|
115
120
|
serveUrl,
|
|
116
|
-
initialFrame:
|
|
121
|
+
initialFrame: stillFrame,
|
|
117
122
|
timeoutInMilliseconds,
|
|
118
123
|
proxyPort,
|
|
119
124
|
retriesRemaining: 2,
|
|
125
|
+
audioEnabled: false,
|
|
126
|
+
videoEnabled: true,
|
|
120
127
|
});
|
|
121
128
|
await (0, puppeteer_evaluate_1.puppeteerEvaluateWithCatch)({
|
|
122
|
-
|
|
129
|
+
// eslint-disable-next-line max-params
|
|
130
|
+
pageFunction: (id, defaultProps, durationInFrames, fps, height, width) => {
|
|
123
131
|
window.setBundleMode({
|
|
124
132
|
type: 'composition',
|
|
125
133
|
compositionName: id,
|
|
134
|
+
compositionDefaultProps: defaultProps,
|
|
135
|
+
compositionDurationInFrames: durationInFrames,
|
|
136
|
+
compositionFps: fps,
|
|
137
|
+
compositionHeight: height,
|
|
138
|
+
compositionWidth: width,
|
|
126
139
|
});
|
|
127
140
|
},
|
|
128
|
-
args: [
|
|
141
|
+
args: [
|
|
142
|
+
composition.id,
|
|
143
|
+
composition.defaultProps,
|
|
144
|
+
composition.durationInFrames,
|
|
145
|
+
composition.fps,
|
|
146
|
+
composition.height,
|
|
147
|
+
composition.width,
|
|
148
|
+
],
|
|
129
149
|
frame: null,
|
|
130
150
|
page,
|
|
131
151
|
});
|
|
132
|
-
await (0, seek_to_frame_1.seekToFrame)({ frame, page });
|
|
152
|
+
await (0, seek_to_frame_1.seekToFrame)({ frame: stillFrame, page });
|
|
133
153
|
await (0, provide_screenshot_1.provideScreenshot)({
|
|
134
154
|
page,
|
|
135
155
|
imageFormat,
|
|
136
156
|
quality,
|
|
137
157
|
options: {
|
|
138
|
-
frame,
|
|
158
|
+
frame: stillFrame,
|
|
139
159
|
output,
|
|
140
160
|
},
|
|
141
161
|
});
|
|
@@ -147,22 +167,22 @@ const innerRenderStill = async ({ composition, quality, imageFormat = 'png', ser
|
|
|
147
167
|
* @link https://www.remotion.dev/docs/renderer/render-still
|
|
148
168
|
*/
|
|
149
169
|
const renderStill = (options) => {
|
|
150
|
-
var _a;
|
|
170
|
+
var _a, _b;
|
|
151
171
|
const selectedServeUrl = (0, legacy_webpack_config_1.getServeUrlWithFallback)(options);
|
|
152
|
-
const
|
|
153
|
-
const onDownload = (
|
|
172
|
+
const downloadMap = (_a = options.downloadMap) !== null && _a !== void 0 ? _a : (0, download_map_1.makeDownloadMap)();
|
|
173
|
+
const onDownload = (_b = options.onDownload) !== null && _b !== void 0 ? _b : (() => () => undefined);
|
|
154
174
|
const happyPath = new Promise((resolve, reject) => {
|
|
155
175
|
var _a, _b, _c;
|
|
156
176
|
const onError = (err) => reject(err);
|
|
157
177
|
let close = null;
|
|
158
178
|
(0, prepare_server_1.prepareServer)({
|
|
159
179
|
webpackConfigOrServeUrl: selectedServeUrl,
|
|
160
|
-
downloadDir,
|
|
161
180
|
onDownload,
|
|
162
181
|
onError,
|
|
163
182
|
ffmpegExecutable: (_a = options.ffmpegExecutable) !== null && _a !== void 0 ? _a : null,
|
|
164
183
|
ffprobeExecutable: (_b = options.ffprobeExecutable) !== null && _b !== void 0 ? _b : null,
|
|
165
184
|
port: (_c = options.port) !== null && _c !== void 0 ? _c : null,
|
|
185
|
+
downloadMap,
|
|
166
186
|
})
|
|
167
187
|
.then(({ serveUrl, closeServer, offthreadPort }) => {
|
|
168
188
|
close = closeServer;
|
|
@@ -175,7 +195,13 @@ const renderStill = (options) => {
|
|
|
175
195
|
})
|
|
176
196
|
.then((res) => resolve(res))
|
|
177
197
|
.catch((err) => reject(err))
|
|
178
|
-
.finally(() =>
|
|
198
|
+
.finally(() => {
|
|
199
|
+
// Clean download map if it was not passed in
|
|
200
|
+
if (!(options === null || options === void 0 ? void 0 : options.downloadMap)) {
|
|
201
|
+
(0, download_map_1.cleanDownloadMap)(downloadMap);
|
|
202
|
+
}
|
|
203
|
+
return close === null || close === void 0 ? void 0 : close();
|
|
204
|
+
});
|
|
179
205
|
});
|
|
180
206
|
return Promise.race([
|
|
181
207
|
happyPath,
|
|
File without changes
|
|
File without changes
|
package/dist/sample-rate.d.ts
CHANGED
|
File without changes
|
package/dist/sample-rate.js
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
package/dist/screenshot-task.js
CHANGED
|
@@ -7,6 +7,7 @@ exports._screenshotTask = void 0;
|
|
|
7
7
|
const fs_1 = __importDefault(require("fs"));
|
|
8
8
|
const perf_1 = require("./perf");
|
|
9
9
|
const _screenshotTask = async (page, format, options) => {
|
|
10
|
+
var _a;
|
|
10
11
|
const client = page._client();
|
|
11
12
|
const target = page.target();
|
|
12
13
|
const perfTarget = (0, perf_1.startPerfMeasure)('activate-target');
|
|
@@ -20,20 +21,34 @@ const _screenshotTask = async (page, format, options) => {
|
|
|
20
21
|
color: { r: 0, g: 0, b: 0, a: 0 },
|
|
21
22
|
});
|
|
22
23
|
const cap = (0, perf_1.startPerfMeasure)('capture');
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
24
|
+
try {
|
|
25
|
+
const result = await client.send('Page.captureScreenshot', {
|
|
26
|
+
format,
|
|
27
|
+
quality: options.quality,
|
|
28
|
+
clip: undefined,
|
|
29
|
+
captureBeyondViewport: true,
|
|
30
|
+
});
|
|
31
|
+
(0, perf_1.stopPerfMeasure)(cap);
|
|
32
|
+
if (shouldSetDefaultBackground)
|
|
33
|
+
await client.send('Emulation.setDefaultBackgroundColorOverride');
|
|
34
|
+
const saveMarker = (0, perf_1.startPerfMeasure)('save');
|
|
35
|
+
const buffer = Buffer.from(result.data, 'base64');
|
|
36
|
+
if (options.path)
|
|
37
|
+
await fs_1.default.promises.writeFile(options.path, buffer);
|
|
38
|
+
(0, perf_1.stopPerfMeasure)(saveMarker);
|
|
39
|
+
return buffer;
|
|
40
|
+
}
|
|
41
|
+
catch (err) {
|
|
42
|
+
if (err.message.includes('Unable to capture screenshot')) {
|
|
43
|
+
const errMessage = [
|
|
44
|
+
'Could not take a screenshot because Google Chrome ran out of memory or disk space.',
|
|
45
|
+
((_a = process === null || process === void 0 ? void 0 : process.env) === null || _a === void 0 ? void 0 : _a.__RESERVED_IS_INSIDE_REMOTION_LAMBDA)
|
|
46
|
+
? 'Deploy a new Lambda function with more memory or disk space.'
|
|
47
|
+
: 'Decrease the concurrency to use less RAM.',
|
|
48
|
+
].join(' ');
|
|
49
|
+
throw new Error(errMessage);
|
|
50
|
+
}
|
|
51
|
+
throw err;
|
|
52
|
+
}
|
|
38
53
|
};
|
|
39
54
|
exports._screenshotTask = _screenshotTask;
|
package/dist/seek-to-frame.d.ts
CHANGED
|
File without changes
|
package/dist/seek-to-frame.js
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
package/dist/serve-static.d.ts
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import type { RenderMediaOnDownload } from './assets/download-and-map-assets-to-file';
|
|
2
|
+
import type { DownloadMap } from './assets/download-map';
|
|
2
3
|
import type { FfmpegExecutable } from './ffmpeg-executable';
|
|
3
4
|
export declare const serveStatic: (path: string | null, options: {
|
|
4
5
|
port: number | null;
|
|
5
6
|
ffmpegExecutable: FfmpegExecutable;
|
|
6
7
|
ffprobeExecutable: FfmpegExecutable;
|
|
7
|
-
downloadDir: string;
|
|
8
8
|
onDownload: RenderMediaOnDownload;
|
|
9
9
|
onError: (err: Error) => void;
|
|
10
|
+
downloadMap: DownloadMap;
|
|
10
11
|
}) => Promise<{
|
|
11
12
|
port: number;
|
|
12
13
|
close: () => Promise<void>;
|
package/dist/serve-static.js
CHANGED
|
@@ -14,11 +14,12 @@ const serveStatic = async (path, options) => {
|
|
|
14
14
|
const offthreadRequest = (0, offthread_video_server_1.startOffthreadVideoServer)({
|
|
15
15
|
ffmpegExecutable: options.ffmpegExecutable,
|
|
16
16
|
ffprobeExecutable: options.ffprobeExecutable,
|
|
17
|
-
downloadDir: options.downloadDir,
|
|
18
17
|
onDownload: options.onDownload,
|
|
19
18
|
onError: options.onError,
|
|
19
|
+
downloadMap: options.downloadMap,
|
|
20
20
|
});
|
|
21
21
|
try {
|
|
22
|
+
const connections = {};
|
|
22
23
|
const server = http_1.default
|
|
23
24
|
.createServer((request, response) => {
|
|
24
25
|
var _a;
|
|
@@ -38,8 +39,20 @@ const serveStatic = async (path, options) => {
|
|
|
38
39
|
});
|
|
39
40
|
})
|
|
40
41
|
.listen(port);
|
|
42
|
+
server.on('connection', (conn) => {
|
|
43
|
+
const key = conn.remoteAddress + ':' + conn.remotePort;
|
|
44
|
+
connections[key] = conn;
|
|
45
|
+
conn.on('close', () => {
|
|
46
|
+
delete connections[key];
|
|
47
|
+
});
|
|
48
|
+
});
|
|
49
|
+
const destroyConnections = function () {
|
|
50
|
+
for (const key in connections)
|
|
51
|
+
connections[key].destroy();
|
|
52
|
+
};
|
|
41
53
|
const close = () => {
|
|
42
54
|
return new Promise((resolve, reject) => {
|
|
55
|
+
destroyConnections();
|
|
43
56
|
server.close((err) => {
|
|
44
57
|
if (err) {
|
|
45
58
|
if (err.code === 'ERR_SERVER_NOT_RUNNING') {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Page } from './browser/BrowserPage';
|
|
2
|
-
export declare const setPropsAndEnv: ({ inputProps, envVariables, page, serveUrl, initialFrame, timeoutInMilliseconds, proxyPort, retriesRemaining, }: {
|
|
2
|
+
export declare const setPropsAndEnv: ({ inputProps, envVariables, page, serveUrl, initialFrame, timeoutInMilliseconds, proxyPort, retriesRemaining, audioEnabled, videoEnabled, }: {
|
|
3
3
|
inputProps: unknown;
|
|
4
4
|
envVariables: Record<string, string> | undefined;
|
|
5
5
|
page: Page;
|
|
@@ -8,4 +8,6 @@ export declare const setPropsAndEnv: ({ inputProps, envVariables, page, serveUrl
|
|
|
8
8
|
timeoutInMilliseconds: number | undefined;
|
|
9
9
|
proxyPort: number;
|
|
10
10
|
retriesRemaining: number;
|
|
11
|
+
audioEnabled: boolean;
|
|
12
|
+
videoEnabled: boolean;
|
|
11
13
|
}) => Promise<void>;
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.setPropsAndEnv = void 0;
|
|
4
|
+
const version_1 = require("remotion/version");
|
|
4
5
|
const TimeoutSettings_1 = require("./browser/TimeoutSettings");
|
|
5
6
|
const normalize_serve_url_1 = require("./normalize-serve-url");
|
|
6
7
|
const puppeteer_evaluate_1 = require("./puppeteer-evaluate");
|
|
7
8
|
const validate_puppeteer_timeout_1 = require("./validate-puppeteer-timeout");
|
|
8
|
-
const setPropsAndEnv = async ({ inputProps, envVariables, page, serveUrl, initialFrame, timeoutInMilliseconds, proxyPort, retriesRemaining, }) => {
|
|
9
|
+
const setPropsAndEnv = async ({ inputProps, envVariables, page, serveUrl, initialFrame, timeoutInMilliseconds, proxyPort, retriesRemaining, audioEnabled, videoEnabled, }) => {
|
|
9
10
|
(0, validate_puppeteer_timeout_1.validatePuppeteerTimeout)(timeoutInMilliseconds);
|
|
10
11
|
const actualTimeout = timeoutInMilliseconds !== null && timeoutInMilliseconds !== void 0 ? timeoutInMilliseconds : TimeoutSettings_1.DEFAULT_TIMEOUT;
|
|
11
12
|
page.setDefaultTimeout(actualTimeout);
|
|
@@ -13,23 +14,29 @@ const setPropsAndEnv = async ({ inputProps, envVariables, page, serveUrl, initia
|
|
|
13
14
|
const urlToVisit = (0, normalize_serve_url_1.normalizeServeUrl)(serveUrl);
|
|
14
15
|
await page.evaluateOnNewDocument((timeout) => {
|
|
15
16
|
window.remotion_puppeteerTimeout = timeout;
|
|
16
|
-
},
|
|
17
|
+
}, actualTimeout);
|
|
17
18
|
if (inputProps) {
|
|
18
19
|
await page.evaluateOnNewDocument((input) => {
|
|
19
20
|
window.remotion_inputProps = input;
|
|
20
|
-
},
|
|
21
|
+
}, JSON.stringify(inputProps));
|
|
21
22
|
}
|
|
22
23
|
if (envVariables) {
|
|
23
24
|
await page.evaluateOnNewDocument((input) => {
|
|
24
25
|
window.remotion_envVariables = input;
|
|
25
|
-
},
|
|
26
|
+
}, JSON.stringify(envVariables));
|
|
26
27
|
}
|
|
27
28
|
await page.evaluateOnNewDocument((key) => {
|
|
28
29
|
window.remotion_initialFrame = key;
|
|
29
|
-
},
|
|
30
|
+
}, initialFrame);
|
|
30
31
|
await page.evaluateOnNewDocument((port) => {
|
|
31
32
|
window.remotion_proxyPort = port;
|
|
32
|
-
},
|
|
33
|
+
}, proxyPort);
|
|
34
|
+
await page.evaluateOnNewDocument((enabled) => {
|
|
35
|
+
window.remotion_audioEnabled = enabled;
|
|
36
|
+
}, audioEnabled);
|
|
37
|
+
await page.evaluateOnNewDocument((enabled) => {
|
|
38
|
+
window.remotion_videoEnabled = enabled;
|
|
39
|
+
}, videoEnabled);
|
|
33
40
|
const pageRes = await page.goto(urlToVisit);
|
|
34
41
|
if (pageRes === null) {
|
|
35
42
|
throw new Error(`Visited "${urlToVisit}" but got no response.`);
|
|
@@ -52,6 +59,8 @@ const setPropsAndEnv = async ({ inputProps, envVariables, page, serveUrl, initia
|
|
|
52
59
|
retriesRemaining: retriesRemaining - 1,
|
|
53
60
|
serveUrl,
|
|
54
61
|
timeoutInMilliseconds,
|
|
62
|
+
audioEnabled,
|
|
63
|
+
videoEnabled,
|
|
55
64
|
});
|
|
56
65
|
}
|
|
57
66
|
if (status !== 200 &&
|
|
@@ -82,8 +91,25 @@ const setPropsAndEnv = async ({ inputProps, envVariables, page, serveUrl, initia
|
|
|
82
91
|
frame: null,
|
|
83
92
|
page,
|
|
84
93
|
});
|
|
85
|
-
|
|
86
|
-
|
|
94
|
+
const remotionVersion = await (0, puppeteer_evaluate_1.puppeteerEvaluateWithCatch)({
|
|
95
|
+
pageFunction: () => {
|
|
96
|
+
return window.remotion_version;
|
|
97
|
+
},
|
|
98
|
+
args: [],
|
|
99
|
+
frame: null,
|
|
100
|
+
page,
|
|
101
|
+
});
|
|
102
|
+
const requiredVersion = '4';
|
|
103
|
+
if (siteVersion !== requiredVersion) {
|
|
104
|
+
throw new Error(`Incompatible site: When visiting ${urlToVisit}, a bundle was found, but one that is not compatible with this version of Remotion. Found version: ${siteVersion} - Required version: ${requiredVersion}. To resolve this error, please bundle and deploy again.`);
|
|
105
|
+
}
|
|
106
|
+
if (remotionVersion !== version_1.VERSION && process.env.NODE_ENV !== 'test') {
|
|
107
|
+
if (remotionVersion) {
|
|
108
|
+
console.warn(`The site was bundled with version ${remotionVersion} of @remotion/bundler, while @remotion/renderer is on version ${version_1.VERSION}. You may not have the newest bugfixes and features. Re-bundle the site to fix this issue.`);
|
|
109
|
+
}
|
|
110
|
+
else {
|
|
111
|
+
console.warn(`The site was bundled with an old version of Remotion, while @remotion/renderer is on version ${version_1.VERSION}. You may not have the newest bugfixes and features. Re-bundle the site to fix this issue.`);
|
|
112
|
+
}
|
|
87
113
|
}
|
|
88
114
|
};
|
|
89
115
|
exports.setPropsAndEnv = setPropsAndEnv;
|
|
@@ -1,13 +1,16 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
|
-
import type { RenderAssetInfo } from 'remotion';
|
|
3
2
|
import type { RenderMediaOnDownload } from './assets/download-and-map-assets-to-file';
|
|
3
|
+
import type { RenderAssetInfo } from './assets/download-map';
|
|
4
4
|
import type { Codec } from './codec';
|
|
5
5
|
import type { FfmpegExecutable } from './ffmpeg-executable';
|
|
6
|
+
import type { FfmpegOverrideFn } from './ffmpeg-override';
|
|
6
7
|
import type { ImageFormat } from './image-format';
|
|
7
8
|
import type { CancelSignal } from './make-cancel-signal';
|
|
8
9
|
import type { PixelFormat } from './pixel-format';
|
|
9
10
|
import type { ProResProfile } from './prores-profile';
|
|
10
11
|
export declare type StitcherOptions = {
|
|
12
|
+
audioBitrate?: string | null;
|
|
13
|
+
videoBitrate?: string | null;
|
|
11
14
|
fps: number;
|
|
12
15
|
width: number;
|
|
13
16
|
height: number;
|
|
@@ -30,11 +33,8 @@ export declare type StitcherOptions = {
|
|
|
30
33
|
preEncodedFileLocation: string | null;
|
|
31
34
|
imageFormat: ImageFormat;
|
|
32
35
|
};
|
|
36
|
+
muted?: boolean;
|
|
37
|
+
enforceAudioTrack?: boolean;
|
|
38
|
+
ffmpegOverride?: FfmpegOverrideFn;
|
|
33
39
|
};
|
|
34
|
-
declare type ReturnType = {
|
|
35
|
-
task: Promise<Buffer | null>;
|
|
36
|
-
getLogs: () => string;
|
|
37
|
-
};
|
|
38
|
-
export declare const spawnFfmpeg: (options: StitcherOptions) => Promise<ReturnType>;
|
|
39
40
|
export declare const stitchFramesToVideo: (options: StitcherOptions) => Promise<Buffer | null>;
|
|
40
|
-
export {};
|