@remotion/renderer 4.0.0-alpha.4 → 4.0.0-alpha4
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 +47 -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 +8 -3
- package/dist/assets/download-map.js +8 -4
- 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 -1
- package/dist/assets/get-audio-channels.js +5 -4
- 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 +27 -0
- package/dist/audio-codec.js +89 -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 +16 -63
- package/dist/browser/BrowserFetcher.js +146 -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 +30 -73
- 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 +0 -3
- 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 +7 -1
- package/dist/browser/Launcher.js +12 -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 +0 -0
- package/dist/browser/devtools-commands.js +0 -0
- package/dist/browser/devtools-types.d.ts +4 -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 +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/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/client.d.ts +179 -0
- package/dist/client.js +23 -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 +9 -2
- package/dist/combine-videos.js +12 -8
- package/dist/compositor/compose.d.ts +13 -0
- package/dist/compositor/compose.js +47 -0
- package/dist/compositor/get-executable-path.d.ts +1 -0
- package/dist/compositor/get-executable-path.js +47 -0
- package/dist/compositor/payloads.d.ts +41 -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 +9 -5
- package/dist/create-ffmpeg-complex-filter.js +8 -4
- package/dist/create-ffmpeg-merge-filter.d.ts +8 -1
- package/dist/create-ffmpeg-merge-filter.js +29 -13
- package/dist/create-silent-audio.d.ts +2 -1
- package/dist/create-silent-audio.js +3 -2
- package/dist/crf.d.ts +5 -1
- package/dist/crf.js +33 -6
- 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 +31 -5
- 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 +25 -0
- package/dist/file-extensions.js +88 -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 +4 -0
- package/dist/get-compositions.js +26 -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 +1 -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 +5 -1
- package/dist/guess-extension-for-media.js +4 -3
- package/dist/image-format.d.ts +1 -1
- package/dist/image-format.js +3 -0
- package/dist/index.d.ts +187 -41
- package/dist/index.js +31 -28
- 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/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 -1
- package/dist/merge-audio-track.js +43 -30
- 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 +2 -1
- package/dist/offthread-video-server.js +13 -1
- package/dist/open-browser.d.ts +5 -0
- package/dist/open-browser.js +12 -15
- 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 +8 -3
- package/dist/preprocess-audio-track.d.ts +7 -1
- package/dist/preprocess-audio-track.js +7 -4
- package/dist/prespawn-ffmpeg.d.ts +4 -1
- package/dist/prespawn-ffmpeg.js +17 -12
- package/dist/prestitcher-memory-usage.d.ts +0 -0
- package/dist/prestitcher-memory-usage.js +0 -0
- package/dist/prores-profile.d.ts +4 -1
- package/dist/prores-profile.js +6 -6
- package/dist/provide-screenshot.d.ts +5 -1
- package/dist/provide-screenshot.js +4 -1
- package/dist/puppeteer-evaluate.d.ts +0 -0
- package/dist/puppeteer-evaluate.js +19 -11
- package/dist/puppeteer-screenshot.d.ts +11 -2
- package/dist/puppeteer-screenshot.js +11 -14
- 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 +15 -3
- package/dist/render-frames.js +176 -84
- package/dist/render-media.d.ts +38 -6
- package/dist/render-media.js +123 -27
- package/dist/render-still.d.ts +8 -4
- package/dist/render-still.js +66 -31
- 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 +5 -1
- package/dist/screenshot-dom-element.js +10 -2
- package/dist/screenshot-task.d.ts +12 -2
- package/dist/screenshot-task.js +24 -9
- 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 +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 +1 -0
- package/dist/serve-static.js +77 -41
- 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 +14 -1
- package/dist/stitch-frames-to-video.js +122 -50
- 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 +20 -0
- package/dist/take-frame-and-compose.js +96 -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/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 +0 -0
- package/dist/validate-concurrency.js +14 -9
- 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 +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 +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/package.json +68 -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.d.ts
CHANGED
|
@@ -1,11 +1,14 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
1
2
|
import type { SmallTCompMetadata } from 'remotion';
|
|
2
3
|
import type { RenderMediaOnDownload } from './assets/download-and-map-assets-to-file';
|
|
3
4
|
import type { DownloadMap } from './assets/download-map';
|
|
5
|
+
import type { AudioCodec } from './audio-codec';
|
|
4
6
|
import type { BrowserExecutable } from './browser-executable';
|
|
5
7
|
import type { BrowserLog } from './browser-log';
|
|
6
8
|
import type { Browser as PuppeteerBrowser } from './browser/Browser';
|
|
7
9
|
import type { Codec } from './codec';
|
|
8
10
|
import type { FfmpegExecutable } from './ffmpeg-executable';
|
|
11
|
+
import type { FfmpegOverrideFn } from './ffmpeg-override';
|
|
9
12
|
import type { FrameRange } from './frame-range';
|
|
10
13
|
import type { ServeUrlOrWebpackBundle } from './legacy-webpack-config';
|
|
11
14
|
import type { CancelSignal } from './make-cancel-signal';
|
|
@@ -14,11 +17,17 @@ import type { PixelFormat } from './pixel-format';
|
|
|
14
17
|
import type { ProResProfile } from './prores-profile';
|
|
15
18
|
import type { OnStartData } from './types';
|
|
16
19
|
export declare type StitchingState = 'encoding' | 'muxing';
|
|
20
|
+
export declare type SlowFrame = {
|
|
21
|
+
frame: number;
|
|
22
|
+
time: number;
|
|
23
|
+
};
|
|
24
|
+
export declare type OnSlowestFrames = (frames: SlowFrame[]) => void;
|
|
17
25
|
export declare type RenderMediaOnProgress = (progress: {
|
|
18
26
|
renderedFrames: number;
|
|
19
27
|
encodedFrames: number;
|
|
20
28
|
encodedDoneIn: number | null;
|
|
21
29
|
renderedDoneIn: number | null;
|
|
30
|
+
progress: number;
|
|
22
31
|
stitchStage: StitchingState;
|
|
23
32
|
}) => void;
|
|
24
33
|
export declare type RenderMediaOptions = {
|
|
@@ -26,7 +35,6 @@ export declare type RenderMediaOptions = {
|
|
|
26
35
|
codec: Codec;
|
|
27
36
|
composition: SmallTCompMetadata;
|
|
28
37
|
inputProps?: unknown;
|
|
29
|
-
parallelism?: number | null;
|
|
30
38
|
crf?: number | null;
|
|
31
39
|
imageFormat?: 'png' | 'jpeg' | 'none';
|
|
32
40
|
ffmpegExecutable?: FfmpegExecutable;
|
|
@@ -52,14 +60,38 @@ export declare type RenderMediaOptions = {
|
|
|
52
60
|
cancelSignal?: CancelSignal;
|
|
53
61
|
browserExecutable?: BrowserExecutable;
|
|
54
62
|
verbose?: boolean;
|
|
63
|
+
internal?: {
|
|
64
|
+
/**
|
|
65
|
+
* @deprecated Only for Remotion internal usage
|
|
66
|
+
*/
|
|
67
|
+
downloadMap?: DownloadMap;
|
|
68
|
+
/**
|
|
69
|
+
* @deprecated Only for Remotion internal usage
|
|
70
|
+
*/
|
|
71
|
+
onCtrlCExit?: (fn: () => void) => void;
|
|
72
|
+
};
|
|
73
|
+
preferLossless?: boolean;
|
|
74
|
+
muted?: boolean;
|
|
75
|
+
enforceAudioTrack?: boolean;
|
|
76
|
+
ffmpegOverride?: FfmpegOverrideFn;
|
|
77
|
+
audioBitrate?: string | null;
|
|
78
|
+
videoBitrate?: string | null;
|
|
79
|
+
onSlowestFrames?: OnSlowestFrames;
|
|
80
|
+
disallowParallelEncoding?: boolean;
|
|
81
|
+
audioCodec?: AudioCodec | null;
|
|
82
|
+
} & ServeUrlOrWebpackBundle & ConcurrencyOrParallelism;
|
|
83
|
+
declare type ConcurrencyOrParallelism = {
|
|
84
|
+
concurrency?: number | string | null;
|
|
85
|
+
} | {
|
|
55
86
|
/**
|
|
56
|
-
* @deprecated
|
|
87
|
+
* @deprecated This field has been renamed to `concurrency`
|
|
57
88
|
*/
|
|
58
|
-
|
|
59
|
-
}
|
|
89
|
+
parallelism?: number | null;
|
|
90
|
+
};
|
|
60
91
|
/**
|
|
61
92
|
*
|
|
62
93
|
* @description Render a video from a composition
|
|
63
|
-
* @
|
|
94
|
+
* @see [Documentation](https://www.remotion.dev/docs/renderer/render-media)
|
|
64
95
|
*/
|
|
65
|
-
export declare const renderMedia: ({
|
|
96
|
+
export declare const renderMedia: ({ proResProfile, crf, composition, ffmpegExecutable, ffprobeExecutable, inputProps, pixelFormat, codec, envVariables, frameRange, puppeteerInstance, outputLocation, onProgress, overwrite, onDownload, dumpBrowserLogs, onBrowserLog, onStart, timeoutInMilliseconds, chromiumOptions, scale, browserExecutable, port, cancelSignal, muted, enforceAudioTrack, ffmpegOverride, audioBitrate, videoBitrate, onSlowestFrames, audioCodec, ...options }: RenderMediaOptions) => Promise<Buffer | null>;
|
|
97
|
+
export {};
|
package/dist/render-media.js
CHANGED
|
@@ -10,43 +10,81 @@ 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");
|
|
16
17
|
const ensure_output_directory_1 = require("./ensure-output-directory");
|
|
18
|
+
const find_closest_package_json_1 = require("./find-closest-package-json");
|
|
17
19
|
const get_duration_from_frame_range_1 = require("./get-duration-from-frame-range");
|
|
18
20
|
const get_extension_from_codec_1 = require("./get-extension-from-codec");
|
|
19
21
|
const get_extension_of_filename_1 = require("./get-extension-of-filename");
|
|
20
22
|
const get_frame_to_render_1 = require("./get-frame-to-render");
|
|
23
|
+
const image_format_1 = require("./image-format");
|
|
24
|
+
const is_audio_codec_1 = require("./is-audio-codec");
|
|
21
25
|
const legacy_webpack_config_1 = require("./legacy-webpack-config");
|
|
22
26
|
const make_cancel_signal_1 = require("./make-cancel-signal");
|
|
23
27
|
const overwrite_1 = require("./overwrite");
|
|
24
28
|
const perf_1 = require("./perf");
|
|
29
|
+
const pixel_format_1 = require("./pixel-format");
|
|
25
30
|
const prespawn_ffmpeg_1 = require("./prespawn-ffmpeg");
|
|
26
31
|
const prestitcher_memory_usage_1 = require("./prestitcher-memory-usage");
|
|
32
|
+
const prores_profile_1 = require("./prores-profile");
|
|
27
33
|
const quality_1 = require("./quality");
|
|
28
34
|
const render_frames_1 = require("./render-frames");
|
|
29
35
|
const stitch_frames_to_video_1 = require("./stitch-frames-to-video");
|
|
30
36
|
const validate_even_dimensions_with_codec_1 = require("./validate-even-dimensions-with-codec");
|
|
37
|
+
const validate_every_nth_frame_1 = require("./validate-every-nth-frame");
|
|
38
|
+
const validate_ffmpeg_1 = require("./validate-ffmpeg");
|
|
39
|
+
const validate_ffmpeg_override_1 = require("./validate-ffmpeg-override");
|
|
31
40
|
const validate_output_filename_1 = require("./validate-output-filename");
|
|
32
41
|
const validate_scale_1 = require("./validate-scale");
|
|
42
|
+
const validate_videobitrate_1 = require("./validate-videobitrate");
|
|
43
|
+
const SLOWEST_FRAME_COUNT = 10;
|
|
44
|
+
const getConcurrency = (others) => {
|
|
45
|
+
if ('concurrency' in others) {
|
|
46
|
+
return others.concurrency;
|
|
47
|
+
}
|
|
48
|
+
if ('parallelism' in others) {
|
|
49
|
+
return others.parallelism;
|
|
50
|
+
}
|
|
51
|
+
return null;
|
|
52
|
+
};
|
|
33
53
|
/**
|
|
34
54
|
*
|
|
35
55
|
* @description Render a video from a composition
|
|
36
|
-
* @
|
|
56
|
+
* @see [Documentation](https://www.remotion.dev/docs/renderer/render-media)
|
|
37
57
|
*/
|
|
38
|
-
const renderMedia = ({
|
|
39
|
-
var _a, _b, _c;
|
|
40
|
-
(0,
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
}
|
|
58
|
+
const renderMedia = ({ proResProfile, crf, composition, ffmpegExecutable, ffprobeExecutable, inputProps, pixelFormat, codec, envVariables, frameRange, puppeteerInstance, outputLocation, onProgress, overwrite, onDownload, dumpBrowserLogs, onBrowserLog, onStart, timeoutInMilliseconds, chromiumOptions, scale, browserExecutable, port, cancelSignal, muted, enforceAudioTrack, ffmpegOverride, audioBitrate, videoBitrate, onSlowestFrames, audioCodec, ...options }) => {
|
|
59
|
+
var _a, _b, _c, _d, _e, _f, _g;
|
|
60
|
+
const remotionRoot = (0, find_closest_package_json_1.findRemotionRoot)();
|
|
61
|
+
(0, validate_ffmpeg_1.validateFfmpeg)(ffmpegExecutable !== null && ffmpegExecutable !== void 0 ? ffmpegExecutable : null, remotionRoot, 'ffmpeg');
|
|
62
|
+
(0, quality_1.validateQuality)(options.quality);
|
|
63
|
+
(0, crf_1.validateQualitySettings)({ crf, codec, videoBitrate });
|
|
64
|
+
(0, validate_videobitrate_1.validateBitrate)(audioBitrate, 'audioBitrate');
|
|
65
|
+
(0, validate_videobitrate_1.validateBitrate)(videoBitrate, 'videoBitrate');
|
|
66
|
+
(0, prores_profile_1.validateSelectedCodecAndProResCombination)({
|
|
67
|
+
codec,
|
|
68
|
+
proResProfile,
|
|
69
|
+
});
|
|
70
|
+
(0, pixel_format_1.validateSelectedPixelFormatAndCodecCombination)(pixelFormat, codec);
|
|
44
71
|
if (outputLocation) {
|
|
45
|
-
(0, validate_output_filename_1.validateOutputFilename)(
|
|
72
|
+
(0, validate_output_filename_1.validateOutputFilename)({
|
|
73
|
+
codec,
|
|
74
|
+
audioCodec: audioCodec !== null && audioCodec !== void 0 ? audioCodec : null,
|
|
75
|
+
extension: (0, get_extension_of_filename_1.getExtensionOfFilename)(outputLocation),
|
|
76
|
+
preferLossless: (_a = options.preferLossless) !== null && _a !== void 0 ? _a : false,
|
|
77
|
+
});
|
|
46
78
|
}
|
|
79
|
+
const absoluteOutputLocation = outputLocation
|
|
80
|
+
? path_1.default.resolve(process.cwd(), outputLocation)
|
|
81
|
+
: null;
|
|
47
82
|
(0, validate_scale_1.validateScale)(scale);
|
|
48
|
-
const
|
|
49
|
-
|
|
83
|
+
const concurrency = getConcurrency(options);
|
|
84
|
+
(0, validate_ffmpeg_override_1.validateFfmpegOverride)(ffmpegOverride);
|
|
85
|
+
const everyNthFrame = (_b = options.everyNthFrame) !== null && _b !== void 0 ? _b : 1;
|
|
86
|
+
(0, validate_every_nth_frame_1.validateEveryNthFrame)(everyNthFrame, codec);
|
|
87
|
+
const numberOfGifLoops = (_c = options.numberOfGifLoops) !== null && _c !== void 0 ? _c : null;
|
|
50
88
|
const serveUrl = (0, legacy_webpack_config_1.getServeUrlWithFallback)(options);
|
|
51
89
|
let stitchStage = 'encoding';
|
|
52
90
|
let stitcherFfmpeg;
|
|
@@ -57,29 +95,39 @@ const renderMedia = ({ parallelism, proResProfile, crf, composition, imageFormat
|
|
|
57
95
|
let encodedDoneIn = null;
|
|
58
96
|
let cancelled = false;
|
|
59
97
|
const renderStart = Date.now();
|
|
60
|
-
const downloadMap = (
|
|
98
|
+
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
99
|
const { estimatedUsage, freeMemory, hasEnoughMemory } = (0, prestitcher_memory_usage_1.shouldUseParallelEncoding)({
|
|
62
100
|
height: composition.height,
|
|
63
101
|
width: composition.width,
|
|
64
102
|
});
|
|
65
|
-
const parallelEncoding =
|
|
103
|
+
const parallelEncoding = !options.disallowParallelEncoding &&
|
|
104
|
+
hasEnoughMemory &&
|
|
105
|
+
(0, can_use_parallel_encoding_1.canUseParallelEncoding)(codec);
|
|
66
106
|
if (options.verbose) {
|
|
67
107
|
console.log('[PRESTITCHER] Free memory:', freeMemory, 'Estimated usage parallel encoding', estimatedUsage);
|
|
68
|
-
console.log('[
|
|
108
|
+
console.log('[PRESTITCHER]: Codec supports parallel rendering:', (0, can_use_parallel_encoding_1.canUseParallelEncoding)(codec));
|
|
109
|
+
console.log('[PRESTITCHER]: User disallowed parallel encoding:', Boolean(options.disallowParallelEncoding));
|
|
69
110
|
if (parallelEncoding) {
|
|
70
|
-
console.log('[
|
|
111
|
+
console.log('[PRESTITCHER] Parallel encoding is enabled.');
|
|
71
112
|
}
|
|
72
113
|
else {
|
|
73
114
|
console.log('[PRESTITCHER] Parallel encoding is disabled.');
|
|
74
115
|
}
|
|
75
116
|
}
|
|
76
|
-
const
|
|
117
|
+
const imageFormat = (0, is_audio_codec_1.isAudioCodec)(codec)
|
|
118
|
+
? 'none'
|
|
119
|
+
: (_f = options.imageFormat) !== null && _f !== void 0 ? _f : 'jpeg';
|
|
120
|
+
const quality = imageFormat === 'jpeg' ? options.quality : undefined;
|
|
121
|
+
(0, image_format_1.validateSelectedPixelFormatAndImageFormatCombination)(pixelFormat, imageFormat);
|
|
77
122
|
const preEncodedFileLocation = parallelEncoding
|
|
78
|
-
? path_1.default.join(downloadMap.preEncode, 'pre-encode.' + (0, get_extension_from_codec_1.getFileExtensionFromCodec)(codec,
|
|
123
|
+
? path_1.default.join(downloadMap.preEncode, 'pre-encode.' + (0, get_extension_from_codec_1.getFileExtensionFromCodec)(codec, audioCodec !== null && audioCodec !== void 0 ? audioCodec : null))
|
|
79
124
|
: null;
|
|
80
125
|
const outputDir = parallelEncoding
|
|
81
126
|
? null
|
|
82
127
|
: fs_1.default.mkdtempSync(path_1.default.join(os_1.default.tmpdir(), 'react-motion-render'));
|
|
128
|
+
if (((_g = options.internal) === null || _g === void 0 ? void 0 : _g.onCtrlCExit) && outputDir) {
|
|
129
|
+
options.internal.onCtrlCExit(() => (0, delete_directory_1.deleteDirectory)(outputDir));
|
|
130
|
+
}
|
|
83
131
|
(0, validate_even_dimensions_with_codec_1.validateEvenDimensionsWithCodec)({
|
|
84
132
|
codec,
|
|
85
133
|
height: composition.height,
|
|
@@ -93,6 +141,9 @@ const renderMedia = ({ parallelism, proResProfile, crf, composition, imageFormat
|
|
|
93
141
|
renderedDoneIn,
|
|
94
142
|
renderedFrames,
|
|
95
143
|
stitchStage,
|
|
144
|
+
progress: Math.round(((0.7 * renderedFrames + 0.3 * encodedFrames) /
|
|
145
|
+
composition.durationInFrames) *
|
|
146
|
+
100) / 100,
|
|
96
147
|
});
|
|
97
148
|
};
|
|
98
149
|
const realFrameRange = (0, get_frame_to_render_1.getRealFrameRange)(composition.durationInFrames, frameRange !== null && frameRange !== void 0 ? frameRange : null);
|
|
@@ -123,9 +174,11 @@ const renderMedia = ({ parallelism, proResProfile, crf, composition, imageFormat
|
|
|
123
174
|
},
|
|
124
175
|
verbose: (_a = options.verbose) !== null && _a !== void 0 ? _a : false,
|
|
125
176
|
ffmpegExecutable,
|
|
126
|
-
imageFormat
|
|
177
|
+
imageFormat,
|
|
127
178
|
signal: cancelPrestitcher.cancelSignal,
|
|
128
|
-
|
|
179
|
+
ffmpegOverride: ffmpegOverride !== null && ffmpegOverride !== void 0 ? ffmpegOverride : (({ args }) => args),
|
|
180
|
+
videoBitrate: videoBitrate !== null && videoBitrate !== void 0 ? videoBitrate : null,
|
|
181
|
+
}, remotionRoot);
|
|
129
182
|
stitcherFfmpeg = preStitcher.task;
|
|
130
183
|
}
|
|
131
184
|
};
|
|
@@ -142,15 +195,42 @@ const renderMedia = ({ parallelism, proResProfile, crf, composition, imageFormat
|
|
|
142
195
|
}
|
|
143
196
|
}
|
|
144
197
|
};
|
|
198
|
+
const mediaSupport = (0, codec_supports_media_1.codecSupportsMedia)(codec);
|
|
199
|
+
const disableAudio = !mediaSupport.audio || muted;
|
|
200
|
+
const slowestFrames = [];
|
|
201
|
+
let maxTime = 0;
|
|
202
|
+
let minTime = 0;
|
|
203
|
+
const recordFrameTime = (frameIndex, time) => {
|
|
204
|
+
var _a, _b;
|
|
205
|
+
const frameTime = { frame: frameIndex, time };
|
|
206
|
+
if (time < minTime && slowestFrames.length === SLOWEST_FRAME_COUNT) {
|
|
207
|
+
return;
|
|
208
|
+
}
|
|
209
|
+
if (time > maxTime) {
|
|
210
|
+
// add at starting;
|
|
211
|
+
slowestFrames.unshift(frameTime);
|
|
212
|
+
maxTime = time;
|
|
213
|
+
}
|
|
214
|
+
else {
|
|
215
|
+
// add frame at appropriate position
|
|
216
|
+
const index = slowestFrames.findIndex(({ time: indexTime }) => indexTime < time);
|
|
217
|
+
slowestFrames.splice(index, 0, frameTime);
|
|
218
|
+
}
|
|
219
|
+
if (slowestFrames.length > SLOWEST_FRAME_COUNT) {
|
|
220
|
+
slowestFrames.pop();
|
|
221
|
+
}
|
|
222
|
+
minTime = (_b = (_a = slowestFrames[slowestFrames.length - 1]) === null || _a === void 0 ? void 0 : _a.time) !== null && _b !== void 0 ? _b : minTime;
|
|
223
|
+
};
|
|
145
224
|
const happyPath = createPrestitcherIfNecessary()
|
|
146
225
|
.then(() => {
|
|
147
226
|
const renderFramesProc = (0, render_frames_1.renderFrames)({
|
|
148
227
|
config: composition,
|
|
149
|
-
onFrameUpdate: (frame) => {
|
|
228
|
+
onFrameUpdate: (frame, frameIndex, timeToRenderInMilliseconds) => {
|
|
150
229
|
renderedFrames = frame;
|
|
151
230
|
callUpdate();
|
|
231
|
+
recordFrameTime(frameIndex, timeToRenderInMilliseconds);
|
|
152
232
|
},
|
|
153
|
-
|
|
233
|
+
concurrency,
|
|
154
234
|
outputDir,
|
|
155
235
|
onStart: (data) => {
|
|
156
236
|
renderedFrames = 0;
|
|
@@ -159,7 +239,7 @@ const renderMedia = ({ parallelism, proResProfile, crf, composition, imageFormat
|
|
|
159
239
|
},
|
|
160
240
|
inputProps,
|
|
161
241
|
envVariables,
|
|
162
|
-
imageFormat
|
|
242
|
+
imageFormat,
|
|
163
243
|
quality,
|
|
164
244
|
frameRange: frameRange !== null && frameRange !== void 0 ? frameRange : null,
|
|
165
245
|
puppeteerInstance,
|
|
@@ -190,6 +270,7 @@ const renderMedia = ({ parallelism, proResProfile, crf, composition, imageFormat
|
|
|
190
270
|
port,
|
|
191
271
|
cancelSignal: cancelRenderFrames.cancelSignal,
|
|
192
272
|
downloadMap,
|
|
273
|
+
muted: disableAudio,
|
|
193
274
|
});
|
|
194
275
|
return renderFramesProc;
|
|
195
276
|
})
|
|
@@ -197,10 +278,11 @@ const renderMedia = ({ parallelism, proResProfile, crf, composition, imageFormat
|
|
|
197
278
|
return Promise.all([renderFramesReturn, waitForPrestitcherIfNecessary()]);
|
|
198
279
|
})
|
|
199
280
|
.then(([{ assetsInfo }]) => {
|
|
281
|
+
var _a;
|
|
200
282
|
renderedDoneIn = Date.now() - renderStart;
|
|
201
283
|
callUpdate();
|
|
202
|
-
if (
|
|
203
|
-
(0, ensure_output_directory_1.ensureOutputDirectory)(
|
|
284
|
+
if (absoluteOutputLocation) {
|
|
285
|
+
(0, ensure_output_directory_1.ensureOutputDirectory)(absoluteOutputLocation);
|
|
204
286
|
}
|
|
205
287
|
const stitchStart = Date.now();
|
|
206
288
|
return Promise.all([
|
|
@@ -208,10 +290,11 @@ const renderMedia = ({ parallelism, proResProfile, crf, composition, imageFormat
|
|
|
208
290
|
width: composition.width * (scale !== null && scale !== void 0 ? scale : 1),
|
|
209
291
|
height: composition.height * (scale !== null && scale !== void 0 ? scale : 1),
|
|
210
292
|
fps,
|
|
211
|
-
outputLocation,
|
|
293
|
+
outputLocation: absoluteOutputLocation,
|
|
212
294
|
internalOptions: {
|
|
213
295
|
preEncodedFileLocation,
|
|
214
|
-
imageFormat
|
|
296
|
+
imageFormat,
|
|
297
|
+
preferLossless: (_a = options.preferLossless) !== null && _a !== void 0 ? _a : false,
|
|
215
298
|
},
|
|
216
299
|
force: overwrite !== null && overwrite !== void 0 ? overwrite : overwrite_1.DEFAULT_OVERWRITE,
|
|
217
300
|
pixelFormat,
|
|
@@ -231,6 +314,12 @@ const renderMedia = ({ parallelism, proResProfile, crf, composition, imageFormat
|
|
|
231
314
|
verbose: options.verbose,
|
|
232
315
|
dir: outputDir !== null && outputDir !== void 0 ? outputDir : undefined,
|
|
233
316
|
cancelSignal: cancelStitcher.cancelSignal,
|
|
317
|
+
muted: disableAudio,
|
|
318
|
+
enforceAudioTrack,
|
|
319
|
+
ffmpegOverride,
|
|
320
|
+
audioBitrate,
|
|
321
|
+
videoBitrate,
|
|
322
|
+
audioCodec: audioCodec !== null && audioCodec !== void 0 ? audioCodec : null,
|
|
234
323
|
}),
|
|
235
324
|
stitchStart,
|
|
236
325
|
]);
|
|
@@ -239,6 +328,8 @@ const renderMedia = ({ parallelism, proResProfile, crf, composition, imageFormat
|
|
|
239
328
|
encodedFrames = (0, get_duration_from_frame_range_1.getFramesToRender)(realFrameRange, everyNthFrame).length;
|
|
240
329
|
encodedDoneIn = Date.now() - stitchStart;
|
|
241
330
|
callUpdate();
|
|
331
|
+
slowestFrames.sort((a, b) => b.time - a.time);
|
|
332
|
+
onSlowestFrames === null || onSlowestFrames === void 0 ? void 0 : onSlowestFrames(slowestFrames);
|
|
242
333
|
return buffer;
|
|
243
334
|
})
|
|
244
335
|
.catch((err) => {
|
|
@@ -265,20 +356,25 @@ const renderMedia = ({ parallelism, proResProfile, crf, composition, imageFormat
|
|
|
265
356
|
throw err;
|
|
266
357
|
})
|
|
267
358
|
.finally(() => {
|
|
359
|
+
var _a;
|
|
268
360
|
if (preEncodedFileLocation !== null &&
|
|
269
361
|
fs_1.default.existsSync(preEncodedFileLocation)) {
|
|
270
362
|
(0, delete_directory_1.deleteDirectory)(path_1.default.dirname(preEncodedFileLocation));
|
|
271
363
|
}
|
|
272
364
|
// Clean download map if it was not passed in
|
|
273
|
-
if (!(options === null ||
|
|
365
|
+
if (!((_a = options.internal) === null || _a === void 0 ? void 0 : _a.downloadMap)) {
|
|
274
366
|
(0, download_map_1.cleanDownloadMap)(downloadMap);
|
|
275
367
|
}
|
|
368
|
+
// Clean temporary image frames when rendering ends or fails
|
|
369
|
+
if (outputDir && fs_1.default.existsSync(outputDir)) {
|
|
370
|
+
(0, delete_directory_1.deleteDirectory)(outputDir);
|
|
371
|
+
}
|
|
276
372
|
});
|
|
277
373
|
return Promise.race([
|
|
278
374
|
happyPath,
|
|
279
375
|
new Promise((_resolve, reject) => {
|
|
280
376
|
cancelSignal === null || cancelSignal === void 0 ? void 0 : cancelSignal(() => {
|
|
281
|
-
reject(new Error(
|
|
377
|
+
reject(new Error(make_cancel_signal_1.cancelErrorMessages.renderMedia));
|
|
282
378
|
});
|
|
283
379
|
}),
|
|
284
380
|
]);
|
package/dist/render-still.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
1
2
|
import type { SmallTCompMetadata } from 'remotion';
|
|
2
3
|
import type { RenderMediaOnDownload } from './assets/download-and-map-assets-to-file';
|
|
3
4
|
import type { DownloadMap } from './assets/download-map';
|
|
@@ -10,7 +11,7 @@ import type { CancelSignal } from './make-cancel-signal';
|
|
|
10
11
|
import type { ChromiumOptions } from './open-browser';
|
|
11
12
|
declare type InnerStillOptions = {
|
|
12
13
|
composition: SmallTCompMetadata;
|
|
13
|
-
output
|
|
14
|
+
output?: string | null;
|
|
14
15
|
frame?: number;
|
|
15
16
|
inputProps?: unknown;
|
|
16
17
|
imageFormat?: StillImageFormat;
|
|
@@ -32,13 +33,16 @@ declare type InnerStillOptions = {
|
|
|
32
33
|
*/
|
|
33
34
|
downloadMap?: DownloadMap;
|
|
34
35
|
};
|
|
35
|
-
declare type
|
|
36
|
+
declare type RenderStillReturnValue = {
|
|
37
|
+
buffer: Buffer | null;
|
|
38
|
+
};
|
|
39
|
+
export declare type RenderStillOptions = InnerStillOptions & ServeUrlOrWebpackBundle & {
|
|
36
40
|
port?: number | null;
|
|
37
41
|
};
|
|
38
42
|
/**
|
|
39
43
|
*
|
|
40
44
|
* @description Render a still frame from a composition
|
|
41
|
-
* @
|
|
45
|
+
* @see [Documentation](https://www.remotion.dev/docs/renderer/render-still)
|
|
42
46
|
*/
|
|
43
|
-
export declare const renderStill: (options: RenderStillOptions) => Promise<
|
|
47
|
+
export declare const renderStill: (options: RenderStillOptions) => Promise<RenderStillReturnValue>;
|
|
44
48
|
export {};
|
package/dist/render-still.js
CHANGED
|
@@ -32,47 +32,61 @@ 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
40
|
const legacy_webpack_config_1 = require("./legacy-webpack-config");
|
|
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
45
|
const quality_1 = require("./quality");
|
|
44
46
|
const seek_to_frame_1 = require("./seek-to-frame");
|
|
45
47
|
const set_props_and_env_1 = require("./set-props-and-env");
|
|
46
|
-
const
|
|
48
|
+
const take_frame_and_compose_1 = require("./take-frame-and-compose");
|
|
47
49
|
const validate_puppeteer_timeout_1 = require("./validate-puppeteer-timeout");
|
|
48
50
|
const validate_scale_1 = require("./validate-scale");
|
|
49
|
-
const innerRenderStill = async ({ composition, quality, imageFormat = 'png', serveUrl, puppeteerInstance, dumpBrowserLogs = false, onError, inputProps, envVariables, output, frame = 0, overwrite = true, browserExecutable, timeoutInMilliseconds, chromiumOptions, scale, proxyPort, cancelSignal, }) => {
|
|
51
|
+
const innerRenderStill = async ({ composition, quality, imageFormat = 'png', serveUrl, puppeteerInstance, dumpBrowserLogs = false, onError, inputProps, envVariables, output, frame = 0, overwrite = true, browserExecutable, timeoutInMilliseconds, chromiumOptions, scale = 1, proxyPort, cancelSignal, downloadMap, }) => {
|
|
50
52
|
remotion_1.Internals.validateDimension(composition.height, 'height', 'in the `config` object passed to `renderStill()`');
|
|
51
53
|
remotion_1.Internals.validateDimension(composition.width, 'width', 'in the `config` object passed to `renderStill()`');
|
|
52
54
|
remotion_1.Internals.validateFps(composition.fps, 'in the `config` object of `renderStill()`', false);
|
|
53
|
-
remotion_1.Internals.validateDurationInFrames(
|
|
55
|
+
remotion_1.Internals.validateDurationInFrames({
|
|
56
|
+
durationInFrames: composition.durationInFrames,
|
|
57
|
+
component: 'in the `config` object passed to `renderStill()`',
|
|
58
|
+
allowFloats: false,
|
|
59
|
+
});
|
|
54
60
|
(0, image_format_1.validateNonNullImageFormat)(imageFormat);
|
|
55
|
-
|
|
61
|
+
remotion_1.Internals.validateFrame({
|
|
62
|
+
frame,
|
|
63
|
+
durationInFrames: composition.durationInFrames,
|
|
64
|
+
allowFloats: false,
|
|
65
|
+
});
|
|
66
|
+
const stillFrame = (0, convert_to_positive_frame_index_1.convertToPositiveFrameIndex)({
|
|
67
|
+
durationInFrames: composition.durationInFrames,
|
|
68
|
+
frame,
|
|
69
|
+
});
|
|
56
70
|
(0, validate_puppeteer_timeout_1.validatePuppeteerTimeout)(timeoutInMilliseconds);
|
|
57
71
|
(0, validate_scale_1.validateScale)(scale);
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
}
|
|
61
|
-
output = path_1.default.resolve(process.cwd(), output);
|
|
72
|
+
output =
|
|
73
|
+
typeof output === 'string' ? path_1.default.resolve(process.cwd(), output) : null;
|
|
62
74
|
if (quality !== undefined && imageFormat !== 'jpeg') {
|
|
63
75
|
throw new Error("You can only pass the `quality` option if `imageFormat` is 'jpeg'.");
|
|
64
76
|
}
|
|
65
77
|
(0, quality_1.validateQuality)(quality);
|
|
66
|
-
if (
|
|
67
|
-
if (
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
78
|
+
if (output) {
|
|
79
|
+
if (fs_1.default.existsSync(output)) {
|
|
80
|
+
if (!overwrite) {
|
|
81
|
+
throw new Error(`Cannot render still - "overwrite" option was set to false, but the output destination ${output} already exists.`);
|
|
82
|
+
}
|
|
83
|
+
const stat = (0, fs_1.statSync)(output);
|
|
84
|
+
if (!stat.isFile()) {
|
|
85
|
+
throw new Error(`The output location ${output} already exists, but is not a file, but something else (e.g. folder). Cannot save to it.`);
|
|
86
|
+
}
|
|
73
87
|
}
|
|
88
|
+
(0, ensure_output_directory_1.ensureOutputDirectory)(output);
|
|
74
89
|
}
|
|
75
|
-
(0, ensure_output_directory_1.ensureOutputDirectory)(output);
|
|
76
90
|
const browserInstance = puppeteerInstance !== null && puppeteerInstance !== void 0 ? puppeteerInstance : (await (0, open_browser_1.openBrowser)(browser_1.DEFAULT_BROWSER, {
|
|
77
91
|
browserExecutable,
|
|
78
92
|
shouldDumpIo: dumpBrowserLogs,
|
|
@@ -100,7 +114,7 @@ const innerRenderStill = async ({ composition, quality, imageFormat = 'png', ser
|
|
|
100
114
|
await page.close();
|
|
101
115
|
}
|
|
102
116
|
else {
|
|
103
|
-
browserInstance.close().catch((err) => {
|
|
117
|
+
browserInstance.close(true).catch((err) => {
|
|
104
118
|
console.log('Unable to close browser', err);
|
|
105
119
|
});
|
|
106
120
|
}
|
|
@@ -113,38 +127,57 @@ const innerRenderStill = async ({ composition, quality, imageFormat = 'png', ser
|
|
|
113
127
|
envVariables,
|
|
114
128
|
page,
|
|
115
129
|
serveUrl,
|
|
116
|
-
initialFrame:
|
|
130
|
+
initialFrame: stillFrame,
|
|
117
131
|
timeoutInMilliseconds,
|
|
118
132
|
proxyPort,
|
|
119
133
|
retriesRemaining: 2,
|
|
134
|
+
audioEnabled: false,
|
|
135
|
+
videoEnabled: true,
|
|
120
136
|
});
|
|
121
137
|
await (0, puppeteer_evaluate_1.puppeteerEvaluateWithCatch)({
|
|
122
|
-
|
|
138
|
+
// eslint-disable-next-line max-params
|
|
139
|
+
pageFunction: (id, defaultProps, durationInFrames, fps, height, width) => {
|
|
123
140
|
window.setBundleMode({
|
|
124
141
|
type: 'composition',
|
|
125
142
|
compositionName: id,
|
|
143
|
+
compositionDefaultProps: defaultProps,
|
|
144
|
+
compositionDurationInFrames: durationInFrames,
|
|
145
|
+
compositionFps: fps,
|
|
146
|
+
compositionHeight: height,
|
|
147
|
+
compositionWidth: width,
|
|
126
148
|
});
|
|
127
149
|
},
|
|
128
|
-
args: [
|
|
150
|
+
args: [
|
|
151
|
+
composition.id,
|
|
152
|
+
composition.defaultProps,
|
|
153
|
+
composition.durationInFrames,
|
|
154
|
+
composition.fps,
|
|
155
|
+
composition.height,
|
|
156
|
+
composition.width,
|
|
157
|
+
],
|
|
129
158
|
frame: null,
|
|
130
159
|
page,
|
|
131
160
|
});
|
|
132
|
-
await (0, seek_to_frame_1.seekToFrame)({ frame, page });
|
|
133
|
-
await (0,
|
|
134
|
-
|
|
161
|
+
await (0, seek_to_frame_1.seekToFrame)({ frame: stillFrame, page });
|
|
162
|
+
const { buffer } = await (0, take_frame_and_compose_1.takeFrameAndCompose)({
|
|
163
|
+
downloadMap,
|
|
164
|
+
frame: stillFrame,
|
|
165
|
+
freePage: page,
|
|
166
|
+
height: composition.height,
|
|
167
|
+
width: composition.width,
|
|
135
168
|
imageFormat,
|
|
169
|
+
scale,
|
|
170
|
+
output,
|
|
136
171
|
quality,
|
|
137
|
-
|
|
138
|
-
frame,
|
|
139
|
-
output,
|
|
140
|
-
},
|
|
172
|
+
wantsBuffer: !output,
|
|
141
173
|
});
|
|
142
174
|
await cleanup();
|
|
175
|
+
return { buffer: output ? null : buffer };
|
|
143
176
|
};
|
|
144
177
|
/**
|
|
145
178
|
*
|
|
146
179
|
* @description Render a still frame from a composition
|
|
147
|
-
* @
|
|
180
|
+
* @see [Documentation](https://www.remotion.dev/docs/renderer/render-still)
|
|
148
181
|
*/
|
|
149
182
|
const renderStill = (options) => {
|
|
150
183
|
var _a, _b;
|
|
@@ -163,6 +196,7 @@ const renderStill = (options) => {
|
|
|
163
196
|
ffprobeExecutable: (_b = options.ffprobeExecutable) !== null && _b !== void 0 ? _b : null,
|
|
164
197
|
port: (_c = options.port) !== null && _c !== void 0 ? _c : null,
|
|
165
198
|
downloadMap,
|
|
199
|
+
remotionRoot: (0, find_closest_package_json_1.findRemotionRoot)(),
|
|
166
200
|
})
|
|
167
201
|
.then(({ serveUrl, closeServer, offthreadPort }) => {
|
|
168
202
|
close = closeServer;
|
|
@@ -171,6 +205,7 @@ const renderStill = (options) => {
|
|
|
171
205
|
serveUrl,
|
|
172
206
|
onError: (err) => reject(err),
|
|
173
207
|
proxyPort: offthreadPort,
|
|
208
|
+
downloadMap,
|
|
174
209
|
});
|
|
175
210
|
})
|
|
176
211
|
.then((res) => resolve(res))
|
|
@@ -180,7 +215,7 @@ const renderStill = (options) => {
|
|
|
180
215
|
if (!(options === null || options === void 0 ? void 0 : options.downloadMap)) {
|
|
181
216
|
(0, download_map_1.cleanDownloadMap)(downloadMap);
|
|
182
217
|
}
|
|
183
|
-
return close === null || close === void 0 ? void 0 : close();
|
|
218
|
+
return close === null || close === void 0 ? void 0 : close(false);
|
|
184
219
|
});
|
|
185
220
|
});
|
|
186
221
|
return Promise.race([
|
|
@@ -188,7 +223,7 @@ const renderStill = (options) => {
|
|
|
188
223
|
new Promise((_resolve, reject) => {
|
|
189
224
|
var _a;
|
|
190
225
|
(_a = options.cancelSignal) === null || _a === void 0 ? void 0 : _a.call(options, () => {
|
|
191
|
-
reject(new Error(
|
|
226
|
+
reject(new Error(make_cancel_signal_1.cancelErrorMessages.renderStill));
|
|
192
227
|
});
|
|
193
228
|
}),
|
|
194
229
|
]);
|
|
@@ -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;
|