@remotion/renderer 4.0.0-alpha.4 → 4.0.0-alpha5
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/README.md +9 -0
- package/client.d.ts +1 -0
- package/client.js +1 -0
- package/dist/assets/calculate-asset-positions.d.ts +0 -0
- package/dist/assets/calculate-asset-positions.js +1 -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 +0 -0
- package/dist/assets/convert-assets-to-file-urls.js +0 -0
- package/dist/assets/download-and-map-assets-to-file.d.ts +2 -1
- package/dist/assets/download-and-map-assets-to-file.js +60 -11
- package/dist/assets/download-file.d.ts +7 -5
- package/dist/assets/download-file.js +49 -6
- package/dist/assets/download-map.d.ts +5 -26
- package/dist/assets/download-map.js +8 -9
- package/dist/assets/ffmpeg-volume-expression.d.ts +2 -1
- package/dist/assets/ffmpeg-volume-expression.js +5 -3
- 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 +1 -2
- package/dist/assets/get-audio-channels.js +5 -8
- package/dist/assets/get-video-stream-duration.d.ts +7 -1
- package/dist/assets/get-video-stream-duration.js +50 -14
- package/dist/assets/read-file.d.ts +0 -0
- package/dist/assets/read-file.js +2 -4
- 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 +1 -0
- package/dist/assets/types.js +0 -0
- package/dist/audio-codec.d.ts +28 -0
- package/dist/audio-codec.js +83 -0
- package/dist/browser/Browser.d.ts +4 -2
- package/dist/browser/Browser.js +15 -12
- package/dist/browser/BrowserConnector.d.ts +0 -0
- package/dist/browser/BrowserConnector.js +0 -0
- package/dist/browser/BrowserFetcher.d.ts +15 -63
- package/dist/browser/BrowserFetcher.js +145 -231
- package/dist/browser/BrowserPage.d.ts +8 -2
- package/dist/browser/BrowserPage.js +8 -11
- package/dist/browser/BrowserRunner.d.ts +1 -4
- package/dist/browser/BrowserRunner.js +38 -75
- 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 +2 -1
- package/dist/browser/DOMWorld.js +8 -1
- 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 -2
- package/dist/browser/FrameManager.js +2 -6
- 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 +1 -4
- package/dist/browser/LaunchOptions.js +0 -0
- package/dist/browser/Launcher.d.ts +7 -1
- package/dist/browser/Launcher.js +13 -375
- 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 -3
- package/dist/browser/PuppeteerNode.js +2 -14
- package/dist/browser/PuppeteerViewport.d.ts +0 -0
- package/dist/browser/PuppeteerViewport.js +0 -0
- package/dist/browser/ScreenshotOptions.d.ts +0 -14
- package/dist/browser/ScreenshotOptions.js +0 -1
- 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 +34 -90
- package/dist/browser/devtools-commands.d.ts +5 -1
- package/dist/browser/devtools-commands.js +0 -0
- package/dist/browser/devtools-types.d.ts +82 -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/is-target-closed-err.d.ts +1 -0
- package/dist/browser/is-target-closed-err.js +9 -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 +2 -1
- package/dist/calculate-ffmpeg-filters.js +1 -0
- package/dist/calculate-sar-dar-pixels.d.ts +0 -0
- package/dist/calculate-sar-dar-pixels.js +0 -0
- package/dist/call-ffmpeg.d.ts +14 -0
- package/dist/call-ffmpeg.js +37 -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 +12 -0
- package/dist/chunk.d.ts +0 -0
- package/dist/chunk.js +0 -0
- package/dist/client.d.ts +204 -0
- package/dist/client.js +49 -0
- package/dist/codec-supports-media.d.ts +2 -0
- package/dist/codec-supports-media.js +23 -1
- package/dist/codec.d.ts +0 -0
- package/dist/codec.js +0 -0
- package/dist/combine-videos.d.ts +6 -2
- package/dist/combine-videos.js +14 -14
- package/dist/compositor/compose.d.ts +15 -0
- package/dist/compositor/compose.js +67 -0
- package/dist/compositor/compositor.d.ts +12 -0
- package/dist/compositor/compositor.js +202 -0
- package/dist/compositor/get-executable-path.d.ts +1 -0
- package/dist/compositor/get-executable-path.js +66 -0
- package/dist/compositor/make-nonce.d.ts +1 -0
- package/dist/compositor/make-nonce.js +8 -0
- package/dist/compositor/payloads.d.ts +68 -0
- package/dist/compositor/payloads.js +2 -0
- 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-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 +5 -1
- package/dist/create-ffmpeg-complex-filter.js +6 -4
- package/dist/create-ffmpeg-merge-filter.d.ts +5 -1
- package/dist/create-ffmpeg-merge-filter.js +21 -13
- package/dist/create-silent-audio.d.ts +1 -3
- package/dist/create-silent-audio.js +3 -6
- package/dist/crf.d.ts +5 -1
- package/dist/crf.js +41 -8
- package/dist/cycle-browser-tabs.d.ts +2 -5
- package/dist/cycle-browser-tabs.js +5 -5
- 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 +1 -1
- package/dist/delete-directory.js +43 -17
- package/dist/determine-resize-params.d.ts +1 -0
- package/dist/determine-resize-params.js +10 -0
- package/dist/determine-vcodec-ffmpeg-flags.d.ts +2 -0
- package/dist/determine-vcodec-ffmpeg-flags.js +13 -0
- package/dist/does-have-m2-bug.d.ts +3 -0
- package/dist/does-have-m2-bug.js +12 -0
- package/dist/ensure-ffmpeg.d.ts +18 -0
- package/dist/ensure-ffmpeg.js +58 -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 +14 -1
- package/dist/ensure-presentation-timestamp.js +36 -17
- package/dist/error-handling/handle-javascript-exception.d.ts +0 -0
- package/dist/error-handling/handle-javascript-exception.js +10 -0
- package/dist/error-handling/symbolicate-error.d.ts +0 -0
- package/dist/error-handling/symbolicate-error.js +2 -1
- 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 +47 -110
- package/dist/ffmpeg-executable.d.ts +0 -0
- package/dist/ffmpeg-executable.js +0 -0
- package/dist/ffmpeg-filter-file.d.ts +6 -1
- package/dist/ffmpeg-filter-file.js +36 -4
- package/dist/ffmpeg-flags.d.ts +20 -2
- package/dist/ffmpeg-flags.js +205 -9
- package/dist/ffmpeg-override.d.ts +4 -0
- package/dist/ffmpeg-override.js +2 -0
- package/dist/file-extensions.d.ts +14 -0
- package/dist/file-extensions.js +76 -0
- package/dist/find-closest-package-json.d.ts +2 -0
- package/dist/find-closest-package-json.js +31 -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-browser-instance.d.ts +0 -0
- package/dist/get-browser-instance.js +1 -1
- package/dist/get-can-extract-frames-fast.d.ts +14 -0
- package/dist/get-can-extract-frames-fast.js +71 -0
- package/dist/get-codec-name.d.ts +0 -0
- package/dist/get-codec-name.js +0 -0
- package/dist/get-compositions.d.ts +7 -5
- package/dist/get-compositions.js +23 -7
- package/dist/get-concurrency.d.ts +1 -1
- package/dist/get-concurrency.js +8 -1
- 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 +5 -1
- package/dist/get-extension-from-codec.js +56 -32
- package/dist/get-extension-of-filename.d.ts +0 -0
- package/dist/get-extension-of-filename.js +5 -1
- package/dist/get-frame-of-video-slow.d.ts +15 -0
- package/dist/get-frame-of-video-slow.js +72 -0
- package/dist/get-frame-padded-index.d.ts +2 -1
- package/dist/get-frame-padded-index.js +3 -2
- package/dist/get-frame-to-render.d.ts +0 -0
- package/dist/get-frame-to-render.js +1 -1
- package/dist/get-local-browser-executable.d.ts +0 -0
- package/dist/get-local-browser-executable.js +4 -14
- package/dist/get-port.d.ts +4 -1
- package/dist/get-port.js +8 -8
- 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 +6 -1
- package/dist/get-video-info.js +19 -9
- package/dist/get-video-threads-flag.d.ts +0 -0
- package/dist/get-video-threads-flag.js +0 -0
- package/dist/guess-extension-for-media.d.ts +3 -1
- package/dist/guess-extension-for-media.js +5 -8
- package/dist/image-format.d.ts +12 -6
- package/dist/image-format.js +19 -13
- package/dist/index.d.ts +201 -48
- package/dist/index.js +37 -36
- 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 +0 -0
- package/dist/is-beyond-last-frame.js +0 -0
- package/dist/is-serve-url.d.ts +0 -0
- package/dist/is-serve-url.js +0 -0
- package/dist/jpeg-quality.d.ts +1 -0
- package/dist/jpeg-quality.js +21 -0
- package/dist/last-frame-from-video-cache.d.ts +2 -0
- package/dist/last-frame-from-video-cache.js +0 -0
- package/dist/legacy-webpack-config.d.ts +0 -0
- package/dist/legacy-webpack-config.js +0 -0
- package/dist/locks.d.ts +7 -0
- package/dist/locks.js +44 -0
- package/dist/log-level.d.ts +0 -0
- package/dist/log-level.js +0 -0
- package/dist/make-cancel-signal.d.ts +11 -0
- package/dist/make-cancel-signal.js +24 -1
- package/dist/merge-audio-track.d.ts +3 -3
- package/dist/merge-audio-track.js +39 -33
- 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 +8 -7
- package/dist/offthread-video-server.js +64 -45
- package/dist/open-browser.d.ts +6 -0
- package/dist/open-browser.js +16 -18
- package/dist/options/audio-bitrate.d.ts +2 -0
- package/dist/options/audio-bitrate.js +11 -0
- package/dist/options/crf.d.ts +2 -0
- package/dist/options/crf.js +11 -0
- package/dist/options/enforce-audio.d.ts +2 -0
- package/dist/options/enforce-audio.js +11 -0
- package/dist/options/jpeg-quality.d.ts +2 -0
- package/dist/options/jpeg-quality.js +11 -0
- package/dist/options/mute.d.ts +2 -0
- package/dist/options/mute.js +11 -0
- package/dist/options/option.d.ts +8 -0
- package/dist/options/option.js +2 -0
- package/dist/options/scale.d.ts +2 -0
- package/dist/options/scale.js +11 -0
- package/dist/options/video-bitrate.d.ts +2 -0
- package/dist/options/video-bitrate.js +11 -0
- package/dist/options/video-codec.d.ts +2 -0
- package/dist/options/video-codec.js +11 -0
- 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 +1 -1
- package/dist/perf.js +9 -7
- 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 +5 -5
- package/dist/prepare-server.js +12 -7
- package/dist/preprocess-audio-track.d.ts +6 -4
- package/dist/preprocess-audio-track.js +7 -8
- package/dist/prespawn-ffmpeg.d.ts +9 -9
- package/dist/prespawn-ffmpeg.js +17 -17
- package/dist/prestitcher-memory-usage.d.ts +0 -4
- package/dist/prestitcher-memory-usage.js +2 -3
- package/dist/prores-profile.d.ts +5 -3
- package/dist/prores-profile.js +8 -8
- package/dist/provide-screenshot.d.ts +8 -5
- package/dist/provide-screenshot.js +5 -2
- package/dist/puppeteer-evaluate.d.ts +0 -0
- package/dist/puppeteer-evaluate.js +19 -11
- package/dist/puppeteer-screenshot.d.ts +12 -3
- package/dist/puppeteer-screenshot.js +18 -44
- package/dist/quality.d.ts +0 -0
- package/dist/quality.js +0 -0
- package/dist/redirect-status-codes.d.ts +1 -0
- package/dist/redirect-status-codes.js +6 -0
- package/dist/render-frames.d.ts +19 -19
- package/dist/render-frames.js +186 -105
- package/dist/render-media.d.ts +46 -16
- package/dist/render-media.js +128 -42
- package/dist/render-still.d.ts +17 -11
- package/dist/render-still.js +79 -43
- package/dist/replace-browser.d.ts +6 -0
- package/dist/replace-browser.js +47 -0
- 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 +8 -5
- package/dist/screenshot-dom-element.js +15 -4
- package/dist/screenshot-task.d.ts +11 -2
- package/dist/screenshot-task.js +43 -13
- package/dist/seek-to-frame.d.ts +1 -0
- package/dist/seek-to-frame.js +49 -3
- package/dist/serve-handler/index.d.ts +0 -0
- package/dist/serve-handler/index.js +6 -4
- 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 +3 -3
- package/dist/serve-static.js +84 -44
- package/dist/set-props-and-env.d.ts +3 -1
- package/dist/set-props-and-env.js +39 -15
- package/dist/stitch-frames-to-video.d.ts +15 -12
- package/dist/stitch-frames-to-video.js +120 -57
- package/dist/stringify-ffmpeg-filter.d.ts +10 -2
- package/dist/stringify-ffmpeg-filter.js +37 -34
- package/dist/symbolicate-stacktrace.d.ts +0 -0
- package/dist/symbolicate-stacktrace.js +0 -0
- package/dist/take-frame-and-compose.d.ts +19 -0
- package/dist/take-frame-and-compose.js +102 -0
- package/dist/tmp-dir.d.ts +0 -0
- package/dist/tmp-dir.js +1 -2
- package/dist/truthy.d.ts +0 -0
- package/dist/truthy.js +0 -0
- package/dist/try-to-extract-frame-of-video-fast.d.ts +13 -0
- package/dist/try-to-extract-frame-of-video-fast.js +55 -0
- package/dist/types.d.ts +0 -0
- package/dist/types.js +0 -0
- package/dist/validate-concurrency.d.ts +2 -0
- package/dist/validate-concurrency.js +21 -10
- 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 +7 -2
- package/dist/validate-ffmpeg.js +48 -43
- 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 +7 -2
- package/dist/validate-output-filename.js +20 -51
- package/dist/validate-puppeteer-timeout.d.ts +0 -0
- package/dist/validate-puppeteer-timeout.js +2 -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 +5 -31
- 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 +2 -1
- package/install-toolchain.mjs +36 -0
- package/package.json +69 -60
- package/.prettierrc.js +0 -14
- package/dist/add-silent-audio-if-necessary.d.ts +0 -8
- package/dist/add-silent-audio-if-necessary.d.ts.map +0 -1
- package/dist/add-silent-audio-if-necessary.js +0 -51
- package/dist/add-silent-audio-if-necessary.js.map +0 -1
- package/dist/assets/asset-is-used-at-time.d.ts +0 -3
- package/dist/assets/asset-is-used-at-time.d.ts.map +0 -1
- package/dist/assets/asset-is-used-at-time.js +0 -8
- package/dist/assets/asset-is-used-at-time.js.map +0 -1
- 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-asset-audio-details.d.ts +0 -5
- package/dist/assets/get-asset-audio-details.d.ts.map +0 -1
- package/dist/assets/get-asset-audio-details.js +0 -21
- package/dist/assets/get-asset-audio-details.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/get-simulatenous-assets.d.ts +0 -3
- package/dist/assets/get-simulatenous-assets.d.ts.map +0 -1
- package/dist/assets/get-simulatenous-assets.js +0 -14
- package/dist/assets/get-simulatenous-assets.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/split-assets-into-segments.d.ts +0 -6
- package/dist/assets/split-assets-into-segments.d.ts.map +0 -1
- package/dist/assets/split-assets-into-segments.js +0 -89
- package/dist/assets/split-assets-into-segments.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/assets-to-ffmpeg-inputs.d.ts +0 -7
- package/dist/assets-to-ffmpeg-inputs.d.ts.map +0 -1
- package/dist/assets-to-ffmpeg-inputs.js +0 -15
- package/dist/assets-to-ffmpeg-inputs.js.map +0 -1
- 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/combine-videos.d.ts.map +0 -1
- package/dist/combine-videos.js.map +0 -1
- package/dist/convert-to-pcm.d.ts +0 -6
- package/dist/convert-to-pcm.js +0 -20
- package/dist/create-ffmpeg-complex-filter.d.ts.map +0 -1
- package/dist/create-ffmpeg-complex-filter.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-flags.d.ts.map +0 -1
- package/dist/ffmpeg-flags.js.map +0 -1
- package/dist/get-audio-codec-name.d.ts +0 -2
- package/dist/get-audio-codec-name.d.ts.map +0 -1
- package/dist/get-audio-codec-name.js +0 -28
- 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-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 +0 -1
- package/dist/make-assets-download-dir.d.ts.map +0 -1
- package/dist/make-assets-download-dir.js +0 -13
- package/dist/make-assets-download-dir.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/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/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-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/render.d.ts +0 -45
- package/dist/render.d.ts.map +0 -1
- package/dist/render.js +0 -245
- package/dist/render.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/stitcher.d.ts +0 -32
- package/dist/stitcher.d.ts.map +0 -1
- package/dist/stitcher.js +0 -204
- package/dist/stitcher.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-frame.d.ts +0 -1
- package/dist/validate-frame.js +0 -24
- 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
- package/tsconfig.json +0 -10
- package/vitest.config.ts +0 -8
package/dist/render-media.js
CHANGED
|
@@ -10,6 +10,7 @@ const path_1 = __importDefault(require("path"));
|
|
|
10
10
|
const remotion_1 = require("remotion");
|
|
11
11
|
const download_map_1 = require("./assets/download-map");
|
|
12
12
|
const can_use_parallel_encoding_1 = require("./can-use-parallel-encoding");
|
|
13
|
+
const codec_supports_media_1 = require("./codec-supports-media");
|
|
13
14
|
const crf_1 = require("./crf");
|
|
14
15
|
const delete_directory_1 = require("./delete-directory");
|
|
15
16
|
const ensure_frames_in_order_1 = require("./ensure-frames-in-order");
|
|
@@ -18,36 +19,62 @@ const get_duration_from_frame_range_1 = require("./get-duration-from-frame-range
|
|
|
18
19
|
const get_extension_from_codec_1 = require("./get-extension-from-codec");
|
|
19
20
|
const get_extension_of_filename_1 = require("./get-extension-of-filename");
|
|
20
21
|
const get_frame_to_render_1 = require("./get-frame-to-render");
|
|
21
|
-
const
|
|
22
|
+
const image_format_1 = require("./image-format");
|
|
23
|
+
const is_audio_codec_1 = require("./is-audio-codec");
|
|
24
|
+
const jpeg_quality_1 = require("./jpeg-quality");
|
|
22
25
|
const make_cancel_signal_1 = require("./make-cancel-signal");
|
|
23
26
|
const overwrite_1 = require("./overwrite");
|
|
24
27
|
const perf_1 = require("./perf");
|
|
28
|
+
const pixel_format_1 = require("./pixel-format");
|
|
25
29
|
const prespawn_ffmpeg_1 = require("./prespawn-ffmpeg");
|
|
26
30
|
const prestitcher_memory_usage_1 = require("./prestitcher-memory-usage");
|
|
27
|
-
const
|
|
31
|
+
const prores_profile_1 = require("./prores-profile");
|
|
28
32
|
const render_frames_1 = require("./render-frames");
|
|
29
33
|
const stitch_frames_to_video_1 = require("./stitch-frames-to-video");
|
|
30
34
|
const validate_even_dimensions_with_codec_1 = require("./validate-even-dimensions-with-codec");
|
|
35
|
+
const validate_every_nth_frame_1 = require("./validate-every-nth-frame");
|
|
36
|
+
const validate_ffmpeg_override_1 = require("./validate-ffmpeg-override");
|
|
37
|
+
const validate_number_of_gif_loops_1 = require("./validate-number-of-gif-loops");
|
|
31
38
|
const validate_output_filename_1 = require("./validate-output-filename");
|
|
32
39
|
const validate_scale_1 = require("./validate-scale");
|
|
40
|
+
const validate_videobitrate_1 = require("./validate-videobitrate");
|
|
41
|
+
const SLOWEST_FRAME_COUNT = 10;
|
|
33
42
|
/**
|
|
34
43
|
*
|
|
35
44
|
* @description Render a video from a composition
|
|
36
|
-
* @
|
|
45
|
+
* @see [Documentation](https://www.remotion.dev/docs/renderer/render-media)
|
|
37
46
|
*/
|
|
38
|
-
const renderMedia = ({
|
|
39
|
-
var _a, _b, _c;
|
|
40
|
-
(
|
|
41
|
-
|
|
42
|
-
(0, crf_1.validateSelectedCrfAndCodecCombination)(crf, codec);
|
|
47
|
+
const renderMedia = ({ proResProfile, crf, composition, inputProps, pixelFormat, codec, envVariables, frameRange, puppeteerInstance, outputLocation, onProgress, overwrite, onDownload, dumpBrowserLogs, onBrowserLog, onStart, timeoutInMilliseconds, chromiumOptions, scale, browserExecutable, port, cancelSignal, muted, enforceAudioTrack, ffmpegOverride, audioBitrate, videoBitrate, audioCodec, ...options }) => {
|
|
48
|
+
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
49
|
+
if (options.quality) {
|
|
50
|
+
throw new Error(`The "quality" option has been renamed. Please use "jpegQuality" instead.`);
|
|
43
51
|
}
|
|
52
|
+
(0, jpeg_quality_1.validateJpegQuality)(options.jpegQuality);
|
|
53
|
+
(0, crf_1.validateQualitySettings)({ crf, codec, videoBitrate });
|
|
54
|
+
(0, validate_videobitrate_1.validateBitrate)(audioBitrate, 'audioBitrate');
|
|
55
|
+
(0, validate_videobitrate_1.validateBitrate)(videoBitrate, 'videoBitrate');
|
|
56
|
+
(0, prores_profile_1.validateSelectedCodecAndProResCombination)({
|
|
57
|
+
codec,
|
|
58
|
+
proResProfile,
|
|
59
|
+
});
|
|
60
|
+
(0, pixel_format_1.validateSelectedPixelFormatAndCodecCombination)(pixelFormat, codec);
|
|
44
61
|
if (outputLocation) {
|
|
45
|
-
(0, validate_output_filename_1.validateOutputFilename)(
|
|
62
|
+
(0, validate_output_filename_1.validateOutputFilename)({
|
|
63
|
+
codec,
|
|
64
|
+
audioCodec: audioCodec !== null && audioCodec !== void 0 ? audioCodec : null,
|
|
65
|
+
extension: (0, get_extension_of_filename_1.getExtensionOfFilename)(outputLocation),
|
|
66
|
+
preferLossless: (_a = options.preferLossless) !== null && _a !== void 0 ? _a : false,
|
|
67
|
+
});
|
|
46
68
|
}
|
|
69
|
+
const absoluteOutputLocation = outputLocation
|
|
70
|
+
? path_1.default.resolve(process.cwd(), outputLocation)
|
|
71
|
+
: null;
|
|
47
72
|
(0, validate_scale_1.validateScale)(scale);
|
|
48
|
-
|
|
49
|
-
const
|
|
50
|
-
|
|
73
|
+
(0, validate_ffmpeg_override_1.validateFfmpegOverride)(ffmpegOverride);
|
|
74
|
+
const everyNthFrame = (_b = options.everyNthFrame) !== null && _b !== void 0 ? _b : 1;
|
|
75
|
+
(0, validate_every_nth_frame_1.validateEveryNthFrame)(everyNthFrame, codec);
|
|
76
|
+
const numberOfGifLoops = (_c = options.numberOfGifLoops) !== null && _c !== void 0 ? _c : null;
|
|
77
|
+
(0, validate_number_of_gif_loops_1.validateNumberOfGifLoops)(numberOfGifLoops, codec);
|
|
51
78
|
let stitchStage = 'encoding';
|
|
52
79
|
let stitcherFfmpeg;
|
|
53
80
|
let preStitcher = null;
|
|
@@ -57,29 +84,40 @@ const renderMedia = ({ parallelism, proResProfile, crf, composition, imageFormat
|
|
|
57
84
|
let encodedDoneIn = null;
|
|
58
85
|
let cancelled = false;
|
|
59
86
|
const renderStart = Date.now();
|
|
60
|
-
const downloadMap = (
|
|
87
|
+
const downloadMap = (_e = (_d = options.internal) === null || _d === void 0 ? void 0 : _d.downloadMap) !== null && _e !== void 0 ? _e : (0, download_map_1.makeDownloadMap)();
|
|
61
88
|
const { estimatedUsage, freeMemory, hasEnoughMemory } = (0, prestitcher_memory_usage_1.shouldUseParallelEncoding)({
|
|
62
89
|
height: composition.height,
|
|
63
90
|
width: composition.width,
|
|
64
91
|
});
|
|
65
|
-
const parallelEncoding =
|
|
92
|
+
const parallelEncoding = !options.disallowParallelEncoding &&
|
|
93
|
+
hasEnoughMemory &&
|
|
94
|
+
(0, can_use_parallel_encoding_1.canUseParallelEncoding)(codec);
|
|
66
95
|
if (options.verbose) {
|
|
67
|
-
|
|
68
|
-
|
|
96
|
+
const log = (_f = options.printLog) !== null && _f !== void 0 ? _f : console.log;
|
|
97
|
+
log('[PRESTITCHER] Free memory:', freeMemory, 'Estimated usage parallel encoding', estimatedUsage);
|
|
98
|
+
log('[PRESTITCHER]: Codec supports parallel rendering:', (0, can_use_parallel_encoding_1.canUseParallelEncoding)(codec));
|
|
99
|
+
log('[PRESTITCHER]: User disallowed parallel encoding:', Boolean(options.disallowParallelEncoding));
|
|
69
100
|
if (parallelEncoding) {
|
|
70
|
-
|
|
101
|
+
log('[PRESTITCHER] Parallel encoding is enabled.');
|
|
71
102
|
}
|
|
72
103
|
else {
|
|
73
|
-
|
|
104
|
+
log('[PRESTITCHER] Parallel encoding is disabled.');
|
|
74
105
|
}
|
|
75
106
|
}
|
|
76
|
-
const
|
|
107
|
+
const imageFormat = (0, is_audio_codec_1.isAudioCodec)(codec)
|
|
108
|
+
? 'none'
|
|
109
|
+
: (_g = options.imageFormat) !== null && _g !== void 0 ? _g : 'jpeg';
|
|
110
|
+
const jpegQuality = imageFormat === 'jpeg' ? options.jpegQuality : undefined;
|
|
111
|
+
(0, image_format_1.validateSelectedPixelFormatAndImageFormatCombination)(pixelFormat, imageFormat);
|
|
77
112
|
const preEncodedFileLocation = parallelEncoding
|
|
78
|
-
? path_1.default.join(downloadMap.preEncode, 'pre-encode.' + (0, get_extension_from_codec_1.getFileExtensionFromCodec)(codec,
|
|
113
|
+
? path_1.default.join(downloadMap.preEncode, 'pre-encode.' + (0, get_extension_from_codec_1.getFileExtensionFromCodec)(codec, audioCodec !== null && audioCodec !== void 0 ? audioCodec : null))
|
|
79
114
|
: null;
|
|
80
115
|
const outputDir = parallelEncoding
|
|
81
116
|
? null
|
|
82
117
|
: fs_1.default.mkdtempSync(path_1.default.join(os_1.default.tmpdir(), 'react-motion-render'));
|
|
118
|
+
if (((_h = options.internal) === null || _h === void 0 ? void 0 : _h.onCtrlCExit) && outputDir) {
|
|
119
|
+
options.internal.onCtrlCExit(() => (0, delete_directory_1.deleteDirectory)(outputDir));
|
|
120
|
+
}
|
|
83
121
|
(0, validate_even_dimensions_with_codec_1.validateEvenDimensionsWithCodec)({
|
|
84
122
|
codec,
|
|
85
123
|
height: composition.height,
|
|
@@ -93,6 +131,9 @@ const renderMedia = ({ parallelism, proResProfile, crf, composition, imageFormat
|
|
|
93
131
|
renderedDoneIn,
|
|
94
132
|
renderedFrames,
|
|
95
133
|
stitchStage,
|
|
134
|
+
progress: Math.round(((0.7 * renderedFrames + 0.3 * encodedFrames) /
|
|
135
|
+
composition.durationInFrames) *
|
|
136
|
+
100) / 100,
|
|
96
137
|
});
|
|
97
138
|
};
|
|
98
139
|
const realFrameRange = (0, get_frame_to_render_1.getRealFrameRange)(composition.durationInFrames, frameRange !== null && frameRange !== void 0 ? frameRange : null);
|
|
@@ -105,10 +146,10 @@ const renderMedia = ({ parallelism, proResProfile, crf, composition, imageFormat
|
|
|
105
146
|
const { waitForRightTimeOfFrameToBeInserted, setFrameToStitch, waitForFinish } = (0, ensure_frames_in_order_1.ensureFramesInOrder)(realFrameRange);
|
|
106
147
|
const fps = composition.fps / (everyNthFrame !== null && everyNthFrame !== void 0 ? everyNthFrame : 1);
|
|
107
148
|
remotion_1.Internals.validateFps(fps, 'in "renderMedia()"', codec === 'gif');
|
|
108
|
-
const createPrestitcherIfNecessary =
|
|
149
|
+
const createPrestitcherIfNecessary = () => {
|
|
109
150
|
var _a;
|
|
110
151
|
if (preEncodedFileLocation) {
|
|
111
|
-
preStitcher =
|
|
152
|
+
preStitcher = (0, prespawn_ffmpeg_1.prespawnFfmpeg)({
|
|
112
153
|
width: composition.width * (scale !== null && scale !== void 0 ? scale : 1),
|
|
113
154
|
height: composition.height * (scale !== null && scale !== void 0 ? scale : 1),
|
|
114
155
|
fps,
|
|
@@ -122,9 +163,10 @@ const renderMedia = ({ parallelism, proResProfile, crf, composition, imageFormat
|
|
|
122
163
|
callUpdate();
|
|
123
164
|
},
|
|
124
165
|
verbose: (_a = options.verbose) !== null && _a !== void 0 ? _a : false,
|
|
125
|
-
|
|
126
|
-
imageFormat: actualImageFormat,
|
|
166
|
+
imageFormat,
|
|
127
167
|
signal: cancelPrestitcher.cancelSignal,
|
|
168
|
+
ffmpegOverride: ffmpegOverride !== null && ffmpegOverride !== void 0 ? ffmpegOverride : (({ args }) => args),
|
|
169
|
+
videoBitrate: videoBitrate !== null && videoBitrate !== void 0 ? videoBitrate : null,
|
|
128
170
|
});
|
|
129
171
|
stitcherFfmpeg = preStitcher.task;
|
|
130
172
|
}
|
|
@@ -142,15 +184,43 @@ const renderMedia = ({ parallelism, proResProfile, crf, composition, imageFormat
|
|
|
142
184
|
}
|
|
143
185
|
}
|
|
144
186
|
};
|
|
145
|
-
const
|
|
187
|
+
const mediaSupport = (0, codec_supports_media_1.codecSupportsMedia)(codec);
|
|
188
|
+
const disableAudio = !mediaSupport.audio || muted;
|
|
189
|
+
const slowestFrames = [];
|
|
190
|
+
let maxTime = 0;
|
|
191
|
+
let minTime = 0;
|
|
192
|
+
const recordFrameTime = (frameIndex, time) => {
|
|
193
|
+
var _a, _b;
|
|
194
|
+
const frameTime = { frame: frameIndex, time };
|
|
195
|
+
if (time < minTime && slowestFrames.length === SLOWEST_FRAME_COUNT) {
|
|
196
|
+
return;
|
|
197
|
+
}
|
|
198
|
+
if (time > maxTime) {
|
|
199
|
+
// add at starting;
|
|
200
|
+
slowestFrames.unshift(frameTime);
|
|
201
|
+
maxTime = time;
|
|
202
|
+
}
|
|
203
|
+
else {
|
|
204
|
+
// add frame at appropriate position
|
|
205
|
+
const index = slowestFrames.findIndex(({ time: indexTime }) => indexTime < time);
|
|
206
|
+
slowestFrames.splice(index, 0, frameTime);
|
|
207
|
+
}
|
|
208
|
+
if (slowestFrames.length > SLOWEST_FRAME_COUNT) {
|
|
209
|
+
slowestFrames.pop();
|
|
210
|
+
}
|
|
211
|
+
minTime = (_b = (_a = slowestFrames[slowestFrames.length - 1]) === null || _a === void 0 ? void 0 : _a.time) !== null && _b !== void 0 ? _b : minTime;
|
|
212
|
+
};
|
|
213
|
+
const happyPath = Promise.resolve(createPrestitcherIfNecessary())
|
|
146
214
|
.then(() => {
|
|
215
|
+
var _a;
|
|
147
216
|
const renderFramesProc = (0, render_frames_1.renderFrames)({
|
|
148
|
-
|
|
149
|
-
onFrameUpdate: (frame) => {
|
|
217
|
+
composition,
|
|
218
|
+
onFrameUpdate: (frame, frameIndex, timeToRenderInMilliseconds) => {
|
|
150
219
|
renderedFrames = frame;
|
|
151
220
|
callUpdate();
|
|
221
|
+
recordFrameTime(frameIndex, timeToRenderInMilliseconds);
|
|
152
222
|
},
|
|
153
|
-
|
|
223
|
+
concurrency: options.concurrency,
|
|
154
224
|
outputDir,
|
|
155
225
|
onStart: (data) => {
|
|
156
226
|
renderedFrames = 0;
|
|
@@ -159,8 +229,8 @@ const renderMedia = ({ parallelism, proResProfile, crf, composition, imageFormat
|
|
|
159
229
|
},
|
|
160
230
|
inputProps,
|
|
161
231
|
envVariables,
|
|
162
|
-
imageFormat
|
|
163
|
-
|
|
232
|
+
imageFormat,
|
|
233
|
+
jpegQuality,
|
|
164
234
|
frameRange: frameRange !== null && frameRange !== void 0 ? frameRange : null,
|
|
165
235
|
puppeteerInstance,
|
|
166
236
|
everyNthFrame,
|
|
@@ -177,19 +247,19 @@ const renderMedia = ({ parallelism, proResProfile, crf, composition, imageFormat
|
|
|
177
247
|
setFrameToStitch(Math.min(realFrameRange[1] + 1, frame + everyNthFrame));
|
|
178
248
|
}
|
|
179
249
|
: undefined,
|
|
180
|
-
serveUrl,
|
|
250
|
+
serveUrl: options.serveUrl,
|
|
181
251
|
dumpBrowserLogs,
|
|
182
252
|
onBrowserLog,
|
|
183
253
|
onDownload,
|
|
184
254
|
timeoutInMilliseconds,
|
|
185
255
|
chromiumOptions,
|
|
186
256
|
scale,
|
|
187
|
-
ffmpegExecutable,
|
|
188
|
-
ffprobeExecutable,
|
|
189
257
|
browserExecutable,
|
|
190
258
|
port,
|
|
191
259
|
cancelSignal: cancelRenderFrames.cancelSignal,
|
|
192
260
|
downloadMap,
|
|
261
|
+
muted: disableAudio,
|
|
262
|
+
verbose: (_a = options.verbose) !== null && _a !== void 0 ? _a : false,
|
|
193
263
|
});
|
|
194
264
|
return renderFramesProc;
|
|
195
265
|
})
|
|
@@ -197,10 +267,11 @@ const renderMedia = ({ parallelism, proResProfile, crf, composition, imageFormat
|
|
|
197
267
|
return Promise.all([renderFramesReturn, waitForPrestitcherIfNecessary()]);
|
|
198
268
|
})
|
|
199
269
|
.then(([{ assetsInfo }]) => {
|
|
270
|
+
var _a;
|
|
200
271
|
renderedDoneIn = Date.now() - renderStart;
|
|
201
272
|
callUpdate();
|
|
202
|
-
if (
|
|
203
|
-
(0, ensure_output_directory_1.ensureOutputDirectory)(
|
|
273
|
+
if (absoluteOutputLocation) {
|
|
274
|
+
(0, ensure_output_directory_1.ensureOutputDirectory)(absoluteOutputLocation);
|
|
204
275
|
}
|
|
205
276
|
const stitchStart = Date.now();
|
|
206
277
|
return Promise.all([
|
|
@@ -208,10 +279,11 @@ const renderMedia = ({ parallelism, proResProfile, crf, composition, imageFormat
|
|
|
208
279
|
width: composition.width * (scale !== null && scale !== void 0 ? scale : 1),
|
|
209
280
|
height: composition.height * (scale !== null && scale !== void 0 ? scale : 1),
|
|
210
281
|
fps,
|
|
211
|
-
outputLocation,
|
|
282
|
+
outputLocation: absoluteOutputLocation,
|
|
212
283
|
internalOptions: {
|
|
213
284
|
preEncodedFileLocation,
|
|
214
|
-
imageFormat
|
|
285
|
+
imageFormat,
|
|
286
|
+
preferLossless: (_a = options.preferLossless) !== null && _a !== void 0 ? _a : false,
|
|
215
287
|
},
|
|
216
288
|
force: overwrite !== null && overwrite !== void 0 ? overwrite : overwrite_1.DEFAULT_OVERWRITE,
|
|
217
289
|
pixelFormat,
|
|
@@ -219,8 +291,6 @@ const renderMedia = ({ parallelism, proResProfile, crf, composition, imageFormat
|
|
|
219
291
|
proResProfile,
|
|
220
292
|
crf,
|
|
221
293
|
assetsInfo,
|
|
222
|
-
ffmpegExecutable,
|
|
223
|
-
ffprobeExecutable,
|
|
224
294
|
onProgress: (frame) => {
|
|
225
295
|
stitchStage = 'muxing';
|
|
226
296
|
encodedFrames = frame;
|
|
@@ -231,6 +301,12 @@ const renderMedia = ({ parallelism, proResProfile, crf, composition, imageFormat
|
|
|
231
301
|
verbose: options.verbose,
|
|
232
302
|
dir: outputDir !== null && outputDir !== void 0 ? outputDir : undefined,
|
|
233
303
|
cancelSignal: cancelStitcher.cancelSignal,
|
|
304
|
+
muted: disableAudio,
|
|
305
|
+
enforceAudioTrack,
|
|
306
|
+
ffmpegOverride,
|
|
307
|
+
audioBitrate,
|
|
308
|
+
videoBitrate,
|
|
309
|
+
audioCodec: audioCodec !== null && audioCodec !== void 0 ? audioCodec : null,
|
|
234
310
|
}),
|
|
235
311
|
stitchStart,
|
|
236
312
|
]);
|
|
@@ -239,7 +315,12 @@ const renderMedia = ({ parallelism, proResProfile, crf, composition, imageFormat
|
|
|
239
315
|
encodedFrames = (0, get_duration_from_frame_range_1.getFramesToRender)(realFrameRange, everyNthFrame).length;
|
|
240
316
|
encodedDoneIn = Date.now() - stitchStart;
|
|
241
317
|
callUpdate();
|
|
242
|
-
|
|
318
|
+
slowestFrames.sort((a, b) => b.time - a.time);
|
|
319
|
+
const result = {
|
|
320
|
+
buffer,
|
|
321
|
+
slowestFrames,
|
|
322
|
+
};
|
|
323
|
+
return result;
|
|
243
324
|
})
|
|
244
325
|
.catch((err) => {
|
|
245
326
|
/**
|
|
@@ -265,20 +346,25 @@ const renderMedia = ({ parallelism, proResProfile, crf, composition, imageFormat
|
|
|
265
346
|
throw err;
|
|
266
347
|
})
|
|
267
348
|
.finally(() => {
|
|
349
|
+
var _a;
|
|
268
350
|
if (preEncodedFileLocation !== null &&
|
|
269
351
|
fs_1.default.existsSync(preEncodedFileLocation)) {
|
|
270
352
|
(0, delete_directory_1.deleteDirectory)(path_1.default.dirname(preEncodedFileLocation));
|
|
271
353
|
}
|
|
272
354
|
// Clean download map if it was not passed in
|
|
273
|
-
if (!(options === null ||
|
|
355
|
+
if (!((_a = options.internal) === null || _a === void 0 ? void 0 : _a.downloadMap)) {
|
|
274
356
|
(0, download_map_1.cleanDownloadMap)(downloadMap);
|
|
275
357
|
}
|
|
358
|
+
// Clean temporary image frames when rendering ends or fails
|
|
359
|
+
if (outputDir && fs_1.default.existsSync(outputDir)) {
|
|
360
|
+
(0, delete_directory_1.deleteDirectory)(outputDir);
|
|
361
|
+
}
|
|
276
362
|
});
|
|
277
363
|
return Promise.race([
|
|
278
364
|
happyPath,
|
|
279
365
|
new Promise((_resolve, reject) => {
|
|
280
366
|
cancelSignal === null || cancelSignal === void 0 ? void 0 : cancelSignal(() => {
|
|
281
|
-
reject(new Error(
|
|
367
|
+
reject(new Error(make_cancel_signal_1.cancelErrorMessages.renderMedia));
|
|
282
368
|
});
|
|
283
369
|
}),
|
|
284
370
|
]);
|
package/dist/render-still.d.ts
CHANGED
|
@@ -1,20 +1,23 @@
|
|
|
1
|
-
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import type { AnySmallCompMetadata } from 'remotion';
|
|
2
3
|
import type { RenderMediaOnDownload } from './assets/download-and-map-assets-to-file';
|
|
3
4
|
import type { DownloadMap } from './assets/download-map';
|
|
4
5
|
import type { BrowserExecutable } from './browser-executable';
|
|
5
6
|
import type { Browser as PuppeteerBrowser } from './browser/Browser';
|
|
6
|
-
import type { FfmpegExecutable } from './ffmpeg-executable';
|
|
7
7
|
import type { StillImageFormat } from './image-format';
|
|
8
|
-
import type { ServeUrlOrWebpackBundle } from './legacy-webpack-config';
|
|
9
8
|
import type { CancelSignal } from './make-cancel-signal';
|
|
10
9
|
import type { ChromiumOptions } from './open-browser';
|
|
11
10
|
declare type InnerStillOptions = {
|
|
12
|
-
composition:
|
|
13
|
-
output
|
|
11
|
+
composition: AnySmallCompMetadata;
|
|
12
|
+
output?: string | null;
|
|
14
13
|
frame?: number;
|
|
15
14
|
inputProps?: unknown;
|
|
16
15
|
imageFormat?: StillImageFormat;
|
|
17
|
-
|
|
16
|
+
/**
|
|
17
|
+
* @deprecated Renamed to `jpegQuality`
|
|
18
|
+
*/
|
|
19
|
+
quality?: never;
|
|
20
|
+
jpegQuality?: number;
|
|
18
21
|
puppeteerInstance?: PuppeteerBrowser;
|
|
19
22
|
dumpBrowserLogs?: boolean;
|
|
20
23
|
envVariables?: Record<string, string>;
|
|
@@ -25,20 +28,23 @@ declare type InnerStillOptions = {
|
|
|
25
28
|
scale?: number;
|
|
26
29
|
onDownload?: RenderMediaOnDownload;
|
|
27
30
|
cancelSignal?: CancelSignal;
|
|
28
|
-
ffmpegExecutable?: FfmpegExecutable;
|
|
29
|
-
ffprobeExecutable?: FfmpegExecutable;
|
|
30
31
|
/**
|
|
31
32
|
* @deprecated Only for Remotion internal usage
|
|
32
33
|
*/
|
|
33
34
|
downloadMap?: DownloadMap;
|
|
35
|
+
verbose?: boolean;
|
|
36
|
+
};
|
|
37
|
+
declare type RenderStillReturnValue = {
|
|
38
|
+
buffer: Buffer | null;
|
|
34
39
|
};
|
|
35
|
-
declare type RenderStillOptions = InnerStillOptions &
|
|
40
|
+
export declare type RenderStillOptions = InnerStillOptions & {
|
|
41
|
+
serveUrl: string;
|
|
36
42
|
port?: number | null;
|
|
37
43
|
};
|
|
38
44
|
/**
|
|
39
45
|
*
|
|
40
46
|
* @description Render a still frame from a composition
|
|
41
|
-
* @
|
|
47
|
+
* @see [Documentation](https://www.remotion.dev/docs/renderer/render-still)
|
|
42
48
|
*/
|
|
43
|
-
export declare const renderStill: (options: RenderStillOptions) => Promise<
|
|
49
|
+
export declare const renderStill: (options: RenderStillOptions) => Promise<RenderStillReturnValue>;
|
|
44
50
|
export {};
|
package/dist/render-still.js
CHANGED
|
@@ -32,47 +32,63 @@ const path_1 = __importDefault(require("path"));
|
|
|
32
32
|
const remotion_1 = require("remotion");
|
|
33
33
|
const download_map_1 = require("./assets/download-map");
|
|
34
34
|
const browser_1 = require("./browser");
|
|
35
|
+
const convert_to_positive_frame_index_1 = require("./convert-to-positive-frame-index");
|
|
35
36
|
const ensure_output_directory_1 = require("./ensure-output-directory");
|
|
36
37
|
const handle_javascript_exception_1 = require("./error-handling/handle-javascript-exception");
|
|
38
|
+
const find_closest_package_json_1 = require("./find-closest-package-json");
|
|
37
39
|
const image_format_1 = require("./image-format");
|
|
38
|
-
const
|
|
40
|
+
const jpeg_quality_1 = require("./jpeg-quality");
|
|
41
|
+
const make_cancel_signal_1 = require("./make-cancel-signal");
|
|
39
42
|
const open_browser_1 = require("./open-browser");
|
|
40
43
|
const prepare_server_1 = require("./prepare-server");
|
|
41
|
-
const provide_screenshot_1 = require("./provide-screenshot");
|
|
42
44
|
const puppeteer_evaluate_1 = require("./puppeteer-evaluate");
|
|
43
|
-
const quality_1 = require("./quality");
|
|
44
45
|
const seek_to_frame_1 = require("./seek-to-frame");
|
|
45
46
|
const set_props_and_env_1 = require("./set-props-and-env");
|
|
46
|
-
const
|
|
47
|
+
const take_frame_and_compose_1 = require("./take-frame-and-compose");
|
|
47
48
|
const validate_puppeteer_timeout_1 = require("./validate-puppeteer-timeout");
|
|
48
49
|
const validate_scale_1 = require("./validate-scale");
|
|
49
|
-
const innerRenderStill = async ({ composition, quality, imageFormat =
|
|
50
|
+
const innerRenderStill = async ({ composition, quality, imageFormat = image_format_1.DEFAULT_STILL_IMAGE_FORMAT, serveUrl, puppeteerInstance, dumpBrowserLogs = false, onError, inputProps, envVariables, output, frame = 0, overwrite = true, browserExecutable, timeoutInMilliseconds, chromiumOptions, scale = 1, proxyPort, cancelSignal, downloadMap, jpegQuality, }) => {
|
|
51
|
+
if (quality) {
|
|
52
|
+
throw new Error('quality has been renamed to jpegQuality. Please rename the option.');
|
|
53
|
+
}
|
|
50
54
|
remotion_1.Internals.validateDimension(composition.height, 'height', 'in the `config` object passed to `renderStill()`');
|
|
51
55
|
remotion_1.Internals.validateDimension(composition.width, 'width', 'in the `config` object passed to `renderStill()`');
|
|
52
56
|
remotion_1.Internals.validateFps(composition.fps, 'in the `config` object of `renderStill()`', false);
|
|
53
|
-
remotion_1.Internals.validateDurationInFrames(
|
|
54
|
-
|
|
55
|
-
|
|
57
|
+
remotion_1.Internals.validateDurationInFrames({
|
|
58
|
+
durationInFrames: composition.durationInFrames,
|
|
59
|
+
component: 'in the `config` object passed to `renderStill()`',
|
|
60
|
+
allowFloats: false,
|
|
61
|
+
});
|
|
62
|
+
(0, image_format_1.validateStillImageFormat)(imageFormat);
|
|
63
|
+
remotion_1.Internals.validateFrame({
|
|
64
|
+
frame,
|
|
65
|
+
durationInFrames: composition.durationInFrames,
|
|
66
|
+
allowFloats: false,
|
|
67
|
+
});
|
|
68
|
+
const stillFrame = (0, convert_to_positive_frame_index_1.convertToPositiveFrameIndex)({
|
|
69
|
+
durationInFrames: composition.durationInFrames,
|
|
70
|
+
frame,
|
|
71
|
+
});
|
|
56
72
|
(0, validate_puppeteer_timeout_1.validatePuppeteerTimeout)(timeoutInMilliseconds);
|
|
57
73
|
(0, validate_scale_1.validateScale)(scale);
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
output = path_1.default.resolve(process.cwd(), output);
|
|
62
|
-
if (quality !== undefined && imageFormat !== 'jpeg') {
|
|
74
|
+
output =
|
|
75
|
+
typeof output === 'string' ? path_1.default.resolve(process.cwd(), output) : null;
|
|
76
|
+
if (jpegQuality !== undefined && imageFormat !== 'jpeg') {
|
|
63
77
|
throw new Error("You can only pass the `quality` option if `imageFormat` is 'jpeg'.");
|
|
64
78
|
}
|
|
65
|
-
(0,
|
|
66
|
-
if (
|
|
67
|
-
if (
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
79
|
+
(0, jpeg_quality_1.validateJpegQuality)(jpegQuality);
|
|
80
|
+
if (output) {
|
|
81
|
+
if (fs_1.default.existsSync(output)) {
|
|
82
|
+
if (!overwrite) {
|
|
83
|
+
throw new Error(`Cannot render still - "overwrite" option was set to false, but the output destination ${output} already exists.`);
|
|
84
|
+
}
|
|
85
|
+
const stat = (0, fs_1.statSync)(output);
|
|
86
|
+
if (!stat.isFile()) {
|
|
87
|
+
throw new Error(`The output location ${output} already exists, but is not a file, but something else (e.g. folder). Cannot save to it.`);
|
|
88
|
+
}
|
|
73
89
|
}
|
|
90
|
+
(0, ensure_output_directory_1.ensureOutputDirectory)(output);
|
|
74
91
|
}
|
|
75
|
-
(0, ensure_output_directory_1.ensureOutputDirectory)(output);
|
|
76
92
|
const browserInstance = puppeteerInstance !== null && puppeteerInstance !== void 0 ? puppeteerInstance : (await (0, open_browser_1.openBrowser)(browser_1.DEFAULT_BROWSER, {
|
|
77
93
|
browserExecutable,
|
|
78
94
|
shouldDumpIo: dumpBrowserLogs,
|
|
@@ -100,7 +116,7 @@ const innerRenderStill = async ({ composition, quality, imageFormat = 'png', ser
|
|
|
100
116
|
await page.close();
|
|
101
117
|
}
|
|
102
118
|
else {
|
|
103
|
-
browserInstance.close().catch((err) => {
|
|
119
|
+
browserInstance.close(true).catch((err) => {
|
|
104
120
|
console.log('Unable to close browser', err);
|
|
105
121
|
});
|
|
106
122
|
}
|
|
@@ -113,56 +129,75 @@ const innerRenderStill = async ({ composition, quality, imageFormat = 'png', ser
|
|
|
113
129
|
envVariables,
|
|
114
130
|
page,
|
|
115
131
|
serveUrl,
|
|
116
|
-
initialFrame:
|
|
132
|
+
initialFrame: stillFrame,
|
|
117
133
|
timeoutInMilliseconds,
|
|
118
134
|
proxyPort,
|
|
119
135
|
retriesRemaining: 2,
|
|
136
|
+
audioEnabled: false,
|
|
137
|
+
videoEnabled: true,
|
|
120
138
|
});
|
|
121
139
|
await (0, puppeteer_evaluate_1.puppeteerEvaluateWithCatch)({
|
|
122
|
-
|
|
140
|
+
// eslint-disable-next-line max-params
|
|
141
|
+
pageFunction: (id, defaultProps, durationInFrames, fps, height, width) => {
|
|
123
142
|
window.setBundleMode({
|
|
124
143
|
type: 'composition',
|
|
125
144
|
compositionName: id,
|
|
145
|
+
compositionDefaultProps: defaultProps,
|
|
146
|
+
compositionDurationInFrames: durationInFrames,
|
|
147
|
+
compositionFps: fps,
|
|
148
|
+
compositionHeight: height,
|
|
149
|
+
compositionWidth: width,
|
|
126
150
|
});
|
|
127
151
|
},
|
|
128
|
-
args: [
|
|
152
|
+
args: [
|
|
153
|
+
composition.id,
|
|
154
|
+
composition.defaultProps,
|
|
155
|
+
composition.durationInFrames,
|
|
156
|
+
composition.fps,
|
|
157
|
+
composition.height,
|
|
158
|
+
composition.width,
|
|
159
|
+
],
|
|
129
160
|
frame: null,
|
|
130
161
|
page,
|
|
131
162
|
});
|
|
132
|
-
await (0, seek_to_frame_1.seekToFrame)({ frame, page });
|
|
133
|
-
await (0,
|
|
134
|
-
|
|
163
|
+
await (0, seek_to_frame_1.seekToFrame)({ frame: stillFrame, page });
|
|
164
|
+
const { buffer } = await (0, take_frame_and_compose_1.takeFrameAndCompose)({
|
|
165
|
+
downloadMap,
|
|
166
|
+
frame: stillFrame,
|
|
167
|
+
freePage: page,
|
|
168
|
+
height: composition.height,
|
|
169
|
+
width: composition.width,
|
|
135
170
|
imageFormat,
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
},
|
|
171
|
+
scale,
|
|
172
|
+
output,
|
|
173
|
+
jpegQuality,
|
|
174
|
+
wantsBuffer: !output,
|
|
141
175
|
});
|
|
142
176
|
await cleanup();
|
|
177
|
+
return { buffer: output ? null : buffer };
|
|
143
178
|
};
|
|
144
179
|
/**
|
|
145
180
|
*
|
|
146
181
|
* @description Render a still frame from a composition
|
|
147
|
-
* @
|
|
182
|
+
* @see [Documentation](https://www.remotion.dev/docs/renderer/render-still)
|
|
148
183
|
*/
|
|
149
184
|
const renderStill = (options) => {
|
|
150
185
|
var _a, _b;
|
|
151
|
-
const selectedServeUrl = (0, legacy_webpack_config_1.getServeUrlWithFallback)(options);
|
|
152
186
|
const downloadMap = (_a = options.downloadMap) !== null && _a !== void 0 ? _a : (0, download_map_1.makeDownloadMap)();
|
|
153
187
|
const onDownload = (_b = options.onDownload) !== null && _b !== void 0 ? _b : (() => () => undefined);
|
|
154
188
|
const happyPath = new Promise((resolve, reject) => {
|
|
155
|
-
var _a, _b
|
|
189
|
+
var _a, _b;
|
|
156
190
|
const onError = (err) => reject(err);
|
|
157
191
|
let close = null;
|
|
158
192
|
(0, prepare_server_1.prepareServer)({
|
|
159
|
-
webpackConfigOrServeUrl:
|
|
193
|
+
webpackConfigOrServeUrl: options.serveUrl,
|
|
160
194
|
onDownload,
|
|
161
195
|
onError,
|
|
162
|
-
|
|
163
|
-
ffprobeExecutable: (_b = options.ffprobeExecutable) !== null && _b !== void 0 ? _b : null,
|
|
164
|
-
port: (_c = options.port) !== null && _c !== void 0 ? _c : null,
|
|
196
|
+
port: (_a = options.port) !== null && _a !== void 0 ? _a : null,
|
|
165
197
|
downloadMap,
|
|
198
|
+
remotionRoot: (0, find_closest_package_json_1.findRemotionRoot)(),
|
|
199
|
+
concurrency: 1,
|
|
200
|
+
verbose: (_b = options.verbose) !== null && _b !== void 0 ? _b : false,
|
|
166
201
|
})
|
|
167
202
|
.then(({ serveUrl, closeServer, offthreadPort }) => {
|
|
168
203
|
close = closeServer;
|
|
@@ -171,6 +206,7 @@ const renderStill = (options) => {
|
|
|
171
206
|
serveUrl,
|
|
172
207
|
onError: (err) => reject(err),
|
|
173
208
|
proxyPort: offthreadPort,
|
|
209
|
+
downloadMap,
|
|
174
210
|
});
|
|
175
211
|
})
|
|
176
212
|
.then((res) => resolve(res))
|
|
@@ -180,7 +216,7 @@ const renderStill = (options) => {
|
|
|
180
216
|
if (!(options === null || options === void 0 ? void 0 : options.downloadMap)) {
|
|
181
217
|
(0, download_map_1.cleanDownloadMap)(downloadMap);
|
|
182
218
|
}
|
|
183
|
-
return close === null || close === void 0 ? void 0 : close();
|
|
219
|
+
return close === null || close === void 0 ? void 0 : close(false);
|
|
184
220
|
});
|
|
185
221
|
});
|
|
186
222
|
return Promise.race([
|
|
@@ -188,7 +224,7 @@ const renderStill = (options) => {
|
|
|
188
224
|
new Promise((_resolve, reject) => {
|
|
189
225
|
var _a;
|
|
190
226
|
(_a = options.cancelSignal) === null || _a === void 0 ? void 0 : _a.call(options, () => {
|
|
191
|
-
reject(new Error(
|
|
227
|
+
reject(new Error(make_cancel_signal_1.cancelErrorMessages.renderStill));
|
|
192
228
|
});
|
|
193
229
|
}),
|
|
194
230
|
]);
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { Browser } from './browser/Browser';
|
|
2
|
+
export declare type BrowserReplacer = {
|
|
3
|
+
getBrowser: () => Browser;
|
|
4
|
+
replaceBrowser: (make: () => Promise<Browser>, makeNewPages: () => Promise<void>) => Promise<Browser>;
|
|
5
|
+
};
|
|
6
|
+
export declare const handleBrowserCrash: (instance: Browser) => BrowserReplacer;
|