@remotion/renderer 4.0.0-offthread.9 → 4.0.0-prefetch.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/calculate-asset-positions.d.ts +2 -2
- package/dist/assets/convert-assets-to-file-urls.d.ts +5 -4
- package/dist/assets/convert-assets-to-file-urls.js +2 -2
- package/dist/assets/download-and-map-assets-to-file.d.ts +16 -12
- package/dist/assets/download-and-map-assets-to-file.js +145 -65
- package/dist/assets/download-file.d.ts +10 -5
- package/dist/assets/download-file.js +20 -5
- package/dist/assets/download-map.d.ts +64 -0
- package/dist/assets/download-map.js +73 -0
- package/dist/assets/ffmpeg-volume-expression.d.ts +2 -3
- package/dist/assets/ffmpeg-volume-expression.js +2 -3
- package/dist/assets/flatten-volume-array.d.ts +1 -1
- package/dist/assets/get-audio-channels.d.ts +3 -4
- package/dist/assets/get-audio-channels.js +14 -4
- package/dist/assets/get-video-stream-duration.d.ts +4 -0
- package/dist/assets/get-video-stream-duration.js +59 -0
- package/dist/assets/read-file.js +4 -1
- package/dist/assets/types.d.ts +1 -1
- package/dist/browser/Browser.d.ts +60 -0
- package/dist/browser/Browser.js +218 -0
- package/dist/browser/BrowserConnector.d.ts +19 -0
- package/dist/browser/BrowserConnector.js +17 -0
- package/dist/browser/BrowserFetcher.d.ts +89 -0
- package/dist/browser/BrowserFetcher.js +510 -0
- package/dist/browser/BrowserPage.d.ts +74 -0
- package/dist/browser/BrowserPage.js +283 -0
- package/dist/browser/BrowserRunner.d.ts +39 -0
- package/dist/browser/BrowserRunner.js +308 -0
- package/dist/browser/Connection.d.ts +42 -0
- package/dist/browser/Connection.js +242 -0
- package/dist/browser/ConsoleMessage.d.ts +31 -0
- package/dist/browser/ConsoleMessage.js +48 -0
- package/dist/browser/DOMWorld.d.ts +52 -0
- package/dist/browser/DOMWorld.js +272 -0
- package/dist/browser/Errors.d.ts +25 -0
- package/dist/browser/Errors.js +35 -0
- package/dist/browser/EvalTypes.d.ts +27 -0
- package/dist/browser/EvalTypes.js +17 -0
- package/dist/browser/EventEmitter.d.ts +23 -0
- package/dist/browser/EventEmitter.js +53 -0
- package/dist/browser/ExecutionContext.d.ts +34 -0
- package/dist/browser/ExecutionContext.js +174 -0
- package/dist/browser/FrameManager.d.ts +93 -0
- package/dist/browser/FrameManager.js +496 -0
- package/dist/browser/HTTPRequest.d.ts +28 -0
- package/dist/browser/HTTPRequest.js +37 -0
- package/dist/browser/HTTPResponse.d.ts +21 -0
- package/dist/browser/HTTPResponse.js +41 -0
- package/dist/browser/JSHandle.d.ts +35 -0
- package/dist/browser/JSHandle.js +90 -0
- package/dist/browser/LaunchOptions.d.ts +37 -0
- package/dist/browser/LaunchOptions.js +17 -0
- package/dist/browser/Launcher.d.ts +9 -0
- package/dist/browser/Launcher.js +504 -0
- package/dist/browser/LifecycleWatcher.d.ts +29 -0
- package/dist/browser/LifecycleWatcher.js +180 -0
- package/dist/browser/NetworkEventManager.d.ts +33 -0
- package/dist/browser/NetworkEventManager.js +81 -0
- package/dist/browser/NetworkManager.d.ts +34 -0
- package/dist/browser/NetworkManager.js +231 -0
- package/dist/browser/NodeWebSocketTransport.d.ts +17 -0
- package/dist/browser/NodeWebSocketTransport.js +87 -0
- package/dist/browser/Product.d.ts +16 -0
- package/dist/browser/Product.js +17 -0
- package/dist/browser/PuppeteerNode.d.ts +40 -0
- package/dist/browser/PuppeteerNode.js +81 -0
- package/dist/browser/PuppeteerViewport.d.ts +5 -0
- package/dist/browser/PuppeteerViewport.js +2 -0
- package/dist/browser/ScreenshotOptions.d.ts +14 -0
- package/dist/browser/ScreenshotOptions.js +2 -0
- package/dist/browser/Target.d.ts +61 -0
- package/dist/browser/Target.js +146 -0
- package/dist/browser/TaskQueue.d.ts +20 -0
- package/dist/browser/TaskQueue.js +47 -0
- package/dist/browser/TimeoutSettings.d.ts +24 -0
- package/dist/browser/TimeoutSettings.js +62 -0
- package/dist/browser/assert.d.ts +1 -0
- package/dist/browser/assert.js +9 -0
- package/dist/browser/create-browser-fetcher.d.ts +17 -0
- package/dist/browser/create-browser-fetcher.js +119 -0
- package/dist/browser/devtools-commands.d.ts +270 -0
- package/dist/browser/devtools-commands.js +2 -0
- package/dist/browser/devtools-types.d.ts +1122 -0
- package/dist/browser/devtools-types.js +2 -0
- package/dist/browser/get-download-destination.d.ts +1 -0
- package/dist/browser/get-download-destination.js +38 -0
- package/dist/browser/mitt/index.d.ts +22 -0
- package/dist/browser/mitt/index.js +49 -0
- package/dist/browser/node.d.ts +2 -0
- package/dist/browser/node.js +9 -0
- package/dist/browser/revisions.d.ts +21 -0
- package/dist/browser/revisions.js +22 -0
- package/dist/browser/util.d.ts +47 -0
- package/dist/browser/util.js +169 -0
- package/dist/browser-executable.d.ts +1 -0
- package/dist/browser-executable.js +2 -0
- package/dist/browser-log.d.ts +1 -1
- package/dist/browser.d.ts +2 -0
- package/dist/browser.js +4 -0
- package/dist/calculate-ffmpeg-filters.d.ts +1 -1
- package/dist/calculate-ffmpeg-filters.js +2 -2
- package/dist/calculate-sar-dar-pixels.d.ts +9 -0
- package/dist/calculate-sar-dar-pixels.js +19 -0
- package/dist/can-use-parallel-encoding.d.ts +1 -1
- package/dist/can-use-parallel-encoding.js +2 -2
- package/dist/codec-supports-media.d.ts +8 -0
- package/dist/codec-supports-media.js +56 -0
- package/dist/codec.d.ts +4 -0
- package/dist/codec.js +16 -0
- package/dist/combine-videos.d.ts +3 -2
- package/dist/combine-videos.js +17 -7
- package/dist/compress-assets.d.ts +7 -0
- package/dist/compress-assets.js +25 -0
- package/dist/convert-number-of-gif-loops-to-ffmpeg.d.ts +1 -0
- package/dist/convert-number-of-gif-loops-to-ffmpeg.js +17 -0
- package/dist/convert-to-pcm.d.ts +1 -1
- package/dist/create-ffmpeg-complex-filter.d.ts +2 -1
- package/dist/create-ffmpeg-complex-filter.js +2 -11
- package/dist/create-ffmpeg-merge-filter.js +3 -3
- package/dist/create-silent-audio.d.ts +1 -1
- package/dist/crf.d.ts +5 -0
- package/dist/crf.js +64 -0
- package/dist/cycle-browser-tabs.d.ts +1 -1
- package/dist/delay-render-embedded-stack.d.ts +1 -1
- package/dist/ensure-frames-in-order.d.ts +1 -1
- package/dist/ensure-frames-in-order.js +3 -2
- package/dist/ensure-presentation-timestamp.d.ts +2 -0
- package/dist/ensure-presentation-timestamp.js +69 -0
- package/dist/error-handling/handle-javascript-exception.d.ts +2 -2
- package/dist/error-handling/handle-javascript-exception.js +3 -4
- package/dist/error-handling/symbolicate-error.d.ts +1 -1
- package/dist/error-handling/symbolicateable-error.d.ts +1 -1
- package/dist/extract-frame-from-video.d.ts +8 -4
- package/dist/extract-frame-from-video.js +173 -55
- package/dist/ffmpeg-executable.d.ts +1 -0
- package/dist/ffmpeg-executable.js +2 -0
- package/dist/ffmpeg-filter-file.d.ts +2 -1
- package/dist/ffmpeg-filter-file.js +4 -6
- package/dist/frame-range.d.ts +2 -0
- package/dist/frame-range.js +49 -0
- package/dist/get-audio-codec-name.d.ts +1 -1
- package/dist/get-audio-codec-name.js +2 -2
- package/dist/get-browser-instance.d.ts +4 -3
- package/dist/get-browser-instance.js +2 -2
- package/dist/get-codec-name.d.ts +1 -1
- package/dist/get-codec-name.js +5 -2
- package/dist/get-compositions.d.ts +12 -4
- package/dist/get-compositions.js +18 -11
- package/dist/get-duration-from-frame-range.d.ts +1 -2
- package/dist/get-duration-from-frame-range.js +13 -9
- package/dist/get-extension-from-codec.d.ts +2 -2
- package/dist/get-extension-from-codec.js +5 -0
- package/dist/get-extension-of-filename.d.ts +1 -1
- package/dist/get-extension-of-filename.js +3 -0
- package/dist/get-frame-padded-index.d.ts +14 -0
- package/dist/get-frame-padded-index.js +33 -0
- package/dist/get-frame-to-render.d.ts +1 -1
- package/dist/get-local-browser-executable.d.ts +2 -1
- package/dist/get-local-browser-executable.js +7 -5
- package/dist/get-port.js +30 -37
- package/dist/get-prores-profile-name.d.ts +2 -1
- package/dist/get-video-info.d.ts +3 -0
- package/dist/get-video-info.js +49 -0
- package/dist/get-video-threads-flag.d.ts +1 -0
- package/dist/get-video-threads-flag.js +18 -0
- package/dist/guess-extension-for-media.d.ts +1 -0
- package/dist/guess-extension-for-media.js +27 -0
- package/dist/image-format.d.ts +6 -1
- package/dist/image-format.js +25 -1
- package/dist/index.d.ts +89 -14
- package/dist/index.js +91 -2
- package/dist/is-audio-codec.d.ts +2 -0
- package/dist/is-audio-codec.js +7 -0
- package/dist/is-beyond-last-frame.d.ts +3 -2
- package/dist/is-beyond-last-frame.js +5 -5
- package/dist/last-frame-from-video-cache.d.ts +9 -4
- package/dist/last-frame-from-video-cache.js +24 -21
- package/dist/log-level.d.ts +4 -0
- package/dist/log-level.js +15 -0
- package/dist/merge-audio-track.d.ts +3 -1
- package/dist/merge-audio-track.js +12 -6
- package/dist/mime-db.d.ts +6 -0
- package/dist/mime-db.js +8636 -0
- package/dist/mime-types.d.ts +3 -0
- package/dist/mime-types.js +94 -0
- package/dist/offthread-video-server.d.ts +9 -5
- package/dist/offthread-video-server.js +31 -10
- package/dist/open-browser.d.ts +5 -3
- package/dist/open-browser.js +15 -15
- package/dist/overwrite.d.ts +1 -0
- package/dist/overwrite.js +4 -0
- package/dist/perf.d.ts +5 -0
- package/dist/perf.js +35 -0
- package/dist/pixel-format.d.ts +5 -0
- package/dist/pixel-format.js +26 -0
- package/dist/prepare-server.d.ts +6 -4
- package/dist/prepare-server.js +21 -5
- package/dist/preprocess-audio-track.d.ts +5 -2
- package/dist/preprocess-audio-track.js +3 -3
- package/dist/prespawn-ffmpeg.d.ts +6 -2
- package/dist/prespawn-ffmpeg.js +10 -7
- package/dist/prestitcher-memory-usage.d.ts +12 -0
- package/dist/prestitcher-memory-usage.js +30 -0
- package/dist/prores-profile.d.ts +5 -0
- package/dist/prores-profile.js +23 -0
- package/dist/provide-screenshot.d.ts +5 -4
- package/dist/provide-screenshot.js +0 -1
- package/dist/puppeteer-evaluate.d.ts +1 -1
- package/dist/puppeteer-evaluate.js +3 -4
- package/dist/puppeteer-screenshot.d.ts +3 -2
- package/dist/puppeteer-screenshot.js +2 -4
- package/dist/quality.d.ts +1 -0
- package/dist/quality.js +21 -0
- package/dist/render-frames.d.ts +21 -9
- package/dist/render-frames.js +111 -82
- package/dist/render-media.d.ts +33 -10
- package/dist/render-media.js +83 -25
- package/dist/render-still.d.ts +18 -7
- package/dist/render-still.js +44 -16
- package/dist/screenshot-dom-element.d.ts +6 -7
- package/dist/screenshot-dom-element.js +3 -6
- package/dist/screenshot-task.d.ts +3 -2
- package/dist/screenshot-task.js +36 -23
- package/dist/seek-to-frame.d.ts +2 -2
- package/dist/seek-to-frame.js +2 -2
- package/dist/serve-handler/index.d.ts +4 -0
- package/dist/serve-handler/index.js +204 -0
- package/dist/serve-handler/is-path-inside.d.ts +1 -0
- package/dist/serve-handler/is-path-inside.js +27 -0
- package/dist/serve-handler/range-parser.d.ts +13 -0
- package/dist/serve-handler/range-parser.js +57 -0
- package/dist/serve-static.d.ts +5 -3
- package/dist/serve-static.js +19 -8
- package/dist/set-props-and-env.d.ts +4 -2
- package/dist/set-props-and-env.js +42 -11
- package/dist/stitch-frames-to-video.d.ts +16 -6
- package/dist/stitch-frames-to-video.js +112 -42
- package/dist/stringify-ffmpeg-filter.d.ts +2 -2
- package/dist/stringify-ffmpeg-filter.js +11 -9
- package/dist/symbolicate-stacktrace.d.ts +1 -1
- package/dist/symbolicate-stacktrace.js +3 -3
- package/dist/truthy.d.ts +3 -0
- package/dist/truthy.js +7 -0
- package/dist/types.d.ts +1 -1
- package/dist/validate-concurrency.d.ts +1 -0
- package/dist/validate-concurrency.js +24 -0
- package/dist/validate-even-dimensions-with-codec.d.ts +1 -1
- package/dist/validate-even-dimensions-with-codec.js +2 -2
- package/dist/validate-every-nth-frame.d.ts +1 -0
- package/dist/validate-every-nth-frame.js +21 -0
- package/dist/validate-ffmpeg.js +2 -3
- package/dist/validate-frame.d.ts +1 -0
- package/dist/validate-frame.js +24 -0
- package/dist/validate-opengl-renderer.d.ts +5 -0
- package/dist/validate-opengl-renderer.js +15 -0
- package/dist/validate-output-filename.d.ts +1 -1
- package/dist/validate-output-filename.js +5 -0
- package/dist/wait-for-symbolication-error-to-be-done.d.ts +3 -0
- package/dist/wait-for-symbolication-error-to-be-done.js +34 -0
- package/dist/ws/ws-types.d.ts +14 -0
- package/dist/ws/ws-types.js +10 -0
- package/package.json +13 -15
- package/tsconfig.json +2 -2
- package/types/ws/index.d.ts +509 -0
- package/vitest.config.ts +8 -0
- package/dist/assets/calculate-asset-positions.d.ts.map +0 -1
- package/dist/assets/calculate-asset-positions.js.map +0 -1
- package/dist/assets/calculate-atempo.d.ts.map +0 -1
- package/dist/assets/calculate-atempo.js.map +0 -1
- package/dist/assets/convert-assets-to-file-urls.d.ts.map +0 -1
- package/dist/assets/convert-assets-to-file-urls.js.map +0 -1
- package/dist/assets/download-and-map-assets-to-file.d.ts.map +0 -1
- package/dist/assets/download-and-map-assets-to-file.js.map +0 -1
- package/dist/assets/download-file.d.ts.map +0 -1
- package/dist/assets/download-file.js.map +0 -1
- package/dist/assets/ffmpeg-volume-expression.d.ts.map +0 -1
- package/dist/assets/ffmpeg-volume-expression.js.map +0 -1
- package/dist/assets/flatten-volume-array.d.ts.map +0 -1
- package/dist/assets/flatten-volume-array.js.map +0 -1
- package/dist/assets/get-audio-channels.d.ts.map +0 -1
- package/dist/assets/get-audio-channels.js.map +0 -1
- package/dist/assets/read-file.d.ts.map +0 -1
- package/dist/assets/read-file.js.map +0 -1
- package/dist/assets/round-volume-to-avoid-stack-overflow.d.ts.map +0 -1
- package/dist/assets/round-volume-to-avoid-stack-overflow.js.map +0 -1
- package/dist/assets/sanitize-filename.d.ts.map +0 -1
- package/dist/assets/sanitize-filename.js.map +0 -1
- package/dist/assets/sanitize-filepath.d.ts.map +0 -1
- package/dist/assets/sanitize-filepath.js.map +0 -1
- package/dist/assets/truncate-utf8-bytes.d.ts.map +0 -1
- package/dist/assets/truncate-utf8-bytes.js.map +0 -1
- package/dist/assets/types.d.ts.map +0 -1
- package/dist/assets/types.js.map +0 -1
- package/dist/browser-log.d.ts.map +0 -1
- package/dist/browser-log.js.map +0 -1
- package/dist/calculate-ffmpeg-filters.d.ts.map +0 -1
- package/dist/calculate-ffmpeg-filters.js.map +0 -1
- package/dist/can-use-parallel-encoding.d.ts.map +0 -1
- package/dist/can-use-parallel-encoding.js.map +0 -1
- package/dist/chunk.d.ts.map +0 -1
- package/dist/chunk.js.map +0 -1
- package/dist/combine-videos.d.ts.map +0 -1
- package/dist/combine-videos.js.map +0 -1
- package/dist/convert-to-pcm.d.ts.map +0 -1
- package/dist/convert-to-pcm.js.map +0 -1
- package/dist/create-ffmpeg-complex-filter.d.ts.map +0 -1
- package/dist/create-ffmpeg-complex-filter.js.map +0 -1
- package/dist/create-ffmpeg-merge-filter.d.ts.map +0 -1
- package/dist/create-ffmpeg-merge-filter.js.map +0 -1
- package/dist/create-silent-audio.d.ts.map +0 -1
- package/dist/create-silent-audio.js.map +0 -1
- package/dist/cycle-browser-tabs.d.ts.map +0 -1
- package/dist/cycle-browser-tabs.js.map +0 -1
- package/dist/delay-render-embedded-stack.d.ts.map +0 -1
- package/dist/delay-render-embedded-stack.js.map +0 -1
- package/dist/delete-directory.d.ts.map +0 -1
- package/dist/delete-directory.js.map +0 -1
- package/dist/ensure-frames-in-order.d.ts.map +0 -1
- package/dist/ensure-frames-in-order.js.map +0 -1
- package/dist/ensure-output-directory.d.ts.map +0 -1
- package/dist/ensure-output-directory.js.map +0 -1
- package/dist/error-handling/handle-javascript-exception.d.ts.map +0 -1
- package/dist/error-handling/handle-javascript-exception.js.map +0 -1
- package/dist/error-handling/symbolicate-error.d.ts.map +0 -1
- package/dist/error-handling/symbolicate-error.js.map +0 -1
- package/dist/error-handling/symbolicateable-error.d.ts.map +0 -1
- package/dist/error-handling/symbolicateable-error.js.map +0 -1
- package/dist/ffmpeg-filter-file.d.ts.map +0 -1
- package/dist/ffmpeg-filter-file.js.map +0 -1
- package/dist/ffmpeg-flags.d.ts.map +0 -1
- package/dist/ffmpeg-flags.js.map +0 -1
- package/dist/get-audio-codec-name.d.ts.map +0 -1
- package/dist/get-audio-codec-name.js.map +0 -1
- package/dist/get-browser-instance.d.ts.map +0 -1
- package/dist/get-browser-instance.js.map +0 -1
- package/dist/get-codec-name.d.ts.map +0 -1
- package/dist/get-codec-name.js.map +0 -1
- package/dist/get-compositions.d.ts.map +0 -1
- package/dist/get-compositions.js.map +0 -1
- package/dist/get-concurrency.d.ts.map +0 -1
- package/dist/get-concurrency.js.map +0 -1
- package/dist/get-duration-from-frame-range.d.ts.map +0 -1
- package/dist/get-duration-from-frame-range.js.map +0 -1
- package/dist/get-extension-from-codec.d.ts.map +0 -1
- package/dist/get-extension-from-codec.js.map +0 -1
- package/dist/get-frame-to-render.d.ts.map +0 -1
- package/dist/get-frame-to-render.js.map +0 -1
- package/dist/get-local-browser-executable.d.ts.map +0 -1
- package/dist/get-local-browser-executable.js.map +0 -1
- package/dist/get-port.d.ts.map +0 -1
- package/dist/get-port.js.map +0 -1
- package/dist/get-prores-profile-name.d.ts.map +0 -1
- package/dist/get-prores-profile-name.js.map +0 -1
- package/dist/image-format.d.ts.map +0 -1
- package/dist/image-format.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/is-serve-url.d.ts.map +0 -1
- package/dist/is-serve-url.js.map +0 -1
- package/dist/legacy-webpack-config.d.ts.map +0 -1
- package/dist/legacy-webpack-config.js.map +0 -1
- package/dist/make-assets-download-dir.d.ts +0 -1
- package/dist/make-assets-download-dir.d.ts.map +0 -1
- package/dist/make-assets-download-dir.js +0 -8
- package/dist/make-assets-download-dir.js.map +0 -1
- package/dist/merge-audio-track.d.ts.map +0 -1
- package/dist/merge-audio-track.js.map +0 -1
- package/dist/normalize-serve-url.d.ts.map +0 -1
- package/dist/normalize-serve-url.js.map +0 -1
- package/dist/open-browser.d.ts.map +0 -1
- package/dist/open-browser.js.map +0 -1
- package/dist/p-limit.d.ts.map +0 -1
- package/dist/p-limit.js.map +0 -1
- package/dist/parse-browser-error-stack.d.ts.map +0 -1
- package/dist/parse-browser-error-stack.js.map +0 -1
- package/dist/parse-ffmpeg-progress.d.ts.map +0 -1
- package/dist/parse-ffmpeg-progress.js.map +0 -1
- package/dist/pool.d.ts.map +0 -1
- package/dist/pool.js.map +0 -1
- package/dist/prepare-server.d.ts.map +0 -1
- package/dist/prepare-server.js.map +0 -1
- package/dist/preprocess-audio-track.d.ts.map +0 -1
- package/dist/preprocess-audio-track.js.map +0 -1
- package/dist/prespawn-ffmpeg.d.ts.map +0 -1
- package/dist/prespawn-ffmpeg.js.map +0 -1
- package/dist/provide-screenshot.d.ts.map +0 -1
- package/dist/provide-screenshot.js.map +0 -1
- package/dist/puppeteer-evaluate.d.ts.map +0 -1
- package/dist/puppeteer-evaluate.js.map +0 -1
- package/dist/puppeteer-screenshot.d.ts.map +0 -1
- package/dist/puppeteer-screenshot.js.map +0 -1
- package/dist/render-frames.d.ts.map +0 -1
- package/dist/render-frames.js.map +0 -1
- package/dist/render-media.d.ts.map +0 -1
- package/dist/render-media.js.map +0 -1
- package/dist/render-still.d.ts.map +0 -1
- package/dist/render-still.js.map +0 -1
- package/dist/resolve-asset-src.d.ts.map +0 -1
- package/dist/resolve-asset-src.js.map +0 -1
- package/dist/sample-rate.d.ts.map +0 -1
- package/dist/sample-rate.js.map +0 -1
- package/dist/screenshot-dom-element.d.ts.map +0 -1
- package/dist/screenshot-dom-element.js.map +0 -1
- package/dist/screenshot-task.d.ts.map +0 -1
- package/dist/screenshot-task.js.map +0 -1
- package/dist/seek-to-frame.d.ts.map +0 -1
- package/dist/seek-to-frame.js.map +0 -1
- package/dist/serve-static.d.ts.map +0 -1
- package/dist/serve-static.js.map +0 -1
- package/dist/set-props-and-env.d.ts.map +0 -1
- package/dist/set-props-and-env.js.map +0 -1
- package/dist/stitch-frames-to-video.d.ts.map +0 -1
- package/dist/stitch-frames-to-video.js.map +0 -1
- package/dist/stringify-ffmpeg-filter.d.ts.map +0 -1
- package/dist/stringify-ffmpeg-filter.js.map +0 -1
- package/dist/symbolicate-stacktrace.d.ts.map +0 -1
- package/dist/symbolicate-stacktrace.js.map +0 -1
- package/dist/tmp-dir.d.ts.map +0 -1
- package/dist/tmp-dir.js.map +0 -1
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js.map +0 -1
- package/dist/validate-even-dimensions-with-codec.d.ts.map +0 -1
- package/dist/validate-even-dimensions-with-codec.js.map +0 -1
- package/dist/validate-ffmpeg.d.ts.map +0 -1
- package/dist/validate-ffmpeg.js.map +0 -1
- package/dist/validate-puppeteer-timeout.d.ts.map +0 -1
- package/dist/validate-puppeteer-timeout.js.map +0 -1
- package/dist/validate-scale.d.ts.map +0 -1
- package/dist/validate-scale.js.map +0 -1
|
@@ -1,11 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
import {
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import type { Page } from './browser/BrowserPage';
|
|
3
|
+
import type { ImageFormat } from './image-format';
|
|
3
4
|
export declare const provideScreenshot: ({ page, imageFormat, options, quality, }: {
|
|
4
|
-
page:
|
|
5
|
+
page: Page;
|
|
5
6
|
imageFormat: ImageFormat;
|
|
6
7
|
quality: number | undefined;
|
|
7
8
|
options: {
|
|
8
9
|
frame: number;
|
|
9
|
-
output
|
|
10
|
+
output: string | null;
|
|
10
11
|
};
|
|
11
12
|
}) => Promise<Buffer>;
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.puppeteerEvaluateWithCatch = void 0;
|
|
4
|
-
|
|
5
|
-
const puppeteer_core_1 = require("puppeteer-core");
|
|
4
|
+
const JSHandle_1 = require("./browser/JSHandle");
|
|
6
5
|
const symbolicateable_error_1 = require("./error-handling/symbolicateable-error");
|
|
7
6
|
const parse_browser_error_stack_1 = require("./parse-browser-error-stack");
|
|
8
7
|
const EVALUATION_SCRIPT_URL = '__puppeteer_evaluation_script__';
|
|
@@ -33,7 +32,7 @@ function isString(obj) {
|
|
|
33
32
|
async function puppeteerEvaluateWithCatch({ page, pageFunction, frame, args, }) {
|
|
34
33
|
var _a, _b, _c, _d, _e, _f, _g;
|
|
35
34
|
const contextId = (await page.mainFrame().executionContext())._contextId;
|
|
36
|
-
const client = page._client;
|
|
35
|
+
const client = page._client();
|
|
37
36
|
const suffix = `//# sourceURL=${EVALUATION_SCRIPT_URL}`;
|
|
38
37
|
if (isString(pageFunction)) {
|
|
39
38
|
const expression = pageFunction;
|
|
@@ -140,7 +139,7 @@ function convertArgument(arg) {
|
|
|
140
139
|
return { unserializableValue: '-Infinity' };
|
|
141
140
|
if (Object.is(arg, NaN))
|
|
142
141
|
return { unserializableValue: 'NaN' };
|
|
143
|
-
const objectHandle = arg && arg instanceof
|
|
142
|
+
const objectHandle = arg && arg instanceof JSHandle_1.JSHandle ? arg : null;
|
|
144
143
|
if (objectHandle) {
|
|
145
144
|
if (objectHandle._disposed)
|
|
146
145
|
throw new Error('JSHandle is disposed!');
|
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
|
-
import { Page
|
|
3
|
-
|
|
2
|
+
import type { Page } from './browser/BrowserPage';
|
|
3
|
+
import type { ScreenshotOptions } from './browser/ScreenshotOptions';
|
|
4
|
+
export declare const screenshot: (page: Page, options: ScreenshotOptions) => Promise<Buffer | string | void>;
|
|
@@ -26,7 +26,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
26
26
|
exports.screenshot = void 0;
|
|
27
27
|
const assert = __importStar(require("assert"));
|
|
28
28
|
const screenshot_task_1 = require("./screenshot-task");
|
|
29
|
-
const screenshot = (page, options
|
|
29
|
+
const screenshot = (page, options) => {
|
|
30
30
|
let screenshotType = null;
|
|
31
31
|
// options.type takes precedence over inferring the type from options.path
|
|
32
32
|
// because it may be a 0-length file with no extension created beforehand
|
|
@@ -58,7 +58,6 @@ const screenshot = (page, options = {}) => {
|
|
|
58
58
|
assert.ok(options.quality >= 0 && options.quality <= 100, 'Expected options.quality to be between 0 and 100 (inclusive), got ' +
|
|
59
59
|
options.quality);
|
|
60
60
|
}
|
|
61
|
-
assert.ok(!options.clip || !options.fullPage, 'options.clip and options.fullPage are exclusive');
|
|
62
61
|
if (options.clip) {
|
|
63
62
|
assert.ok(typeof options.clip.x === 'number', 'Expected options.clip.x to be a number but found ' +
|
|
64
63
|
typeof options.clip.x);
|
|
@@ -71,7 +70,6 @@ const screenshot = (page, options = {}) => {
|
|
|
71
70
|
assert.ok(options.clip.width !== 0, 'Expected options.clip.width not to be 0.');
|
|
72
71
|
assert.ok(options.clip.height !== 0, 'Expected options.clip.height not to be 0.');
|
|
73
72
|
}
|
|
74
|
-
|
|
75
|
-
return page._screenshotTaskQueue.postTask(() => (0, screenshot_task_1._screenshotTask)(page, screenshotType, options));
|
|
73
|
+
return page.screenshotTaskQueue.postTask(() => (0, screenshot_task_1._screenshotTask)(page, screenshotType, options));
|
|
76
74
|
};
|
|
77
75
|
exports.screenshot = screenshot;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const validateQuality: (q: number | undefined) => void;
|
package/dist/quality.js
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.validateQuality = void 0;
|
|
4
|
+
const validateQuality = (q) => {
|
|
5
|
+
if (typeof q !== 'undefined' && typeof q !== 'number') {
|
|
6
|
+
throw new Error(`Quality option must be a number or undefined. Got ${typeof q} (${JSON.stringify(q)})`);
|
|
7
|
+
}
|
|
8
|
+
if (typeof q === 'undefined') {
|
|
9
|
+
return;
|
|
10
|
+
}
|
|
11
|
+
if (!Number.isFinite(q)) {
|
|
12
|
+
throw new RangeError(`Quality must be a finite number, but is ${q}`);
|
|
13
|
+
}
|
|
14
|
+
if (Number.isNaN(q)) {
|
|
15
|
+
throw new RangeError(`Quality is NaN, but must be a real number`);
|
|
16
|
+
}
|
|
17
|
+
if (q > 100 || q < 0) {
|
|
18
|
+
throw new RangeError('Quality option must be between 0 and 100.');
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
exports.validateQuality = validateQuality;
|
package/dist/render-frames.d.ts
CHANGED
|
@@ -1,12 +1,17 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
2
|
+
import type { SmallTCompMetadata } from 'remotion';
|
|
3
|
+
import type { RenderMediaOnDownload } from './assets/download-and-map-assets-to-file';
|
|
4
|
+
import type { DownloadMap } from './assets/download-map';
|
|
5
|
+
import type { BrowserExecutable } from './browser-executable';
|
|
6
|
+
import type { BrowserLog } from './browser-log';
|
|
7
|
+
import type { Browser } from './browser/Browser';
|
|
8
|
+
import type { FfmpegExecutable } from './ffmpeg-executable';
|
|
9
|
+
import type { FrameRange } from './frame-range';
|
|
10
|
+
import type { ImageFormat } from './image-format';
|
|
11
|
+
import type { ServeUrlOrWebpackBundle } from './legacy-webpack-config';
|
|
12
|
+
import type { CancelSignal } from './make-cancel-signal';
|
|
13
|
+
import type { ChromiumOptions } from './open-browser';
|
|
14
|
+
import type { OnStartData, RenderFramesOutput } from './types';
|
|
10
15
|
declare type ConfigOrComposition = {
|
|
11
16
|
/**
|
|
12
17
|
* @deprecated This field has been renamed to `composition`
|
|
@@ -25,8 +30,9 @@ declare type RenderFramesOptions = {
|
|
|
25
30
|
parallelism?: number | null;
|
|
26
31
|
quality?: number;
|
|
27
32
|
frameRange?: FrameRange | null;
|
|
33
|
+
everyNthFrame?: number;
|
|
28
34
|
dumpBrowserLogs?: boolean;
|
|
29
|
-
puppeteerInstance?:
|
|
35
|
+
puppeteerInstance?: Browser;
|
|
30
36
|
browserExecutable?: BrowserExecutable;
|
|
31
37
|
onBrowserLog?: (log: BrowserLog) => void;
|
|
32
38
|
onFrameBuffer?: (buffer: Buffer, frame: number) => void;
|
|
@@ -35,8 +41,14 @@ declare type RenderFramesOptions = {
|
|
|
35
41
|
chromiumOptions?: ChromiumOptions;
|
|
36
42
|
scale?: number;
|
|
37
43
|
ffmpegExecutable?: FfmpegExecutable;
|
|
44
|
+
ffprobeExecutable?: FfmpegExecutable;
|
|
38
45
|
port?: number | null;
|
|
39
46
|
cancelSignal?: CancelSignal;
|
|
47
|
+
/**
|
|
48
|
+
* @deprecated Only for Remotion internal usage
|
|
49
|
+
*/
|
|
50
|
+
downloadMap?: DownloadMap;
|
|
51
|
+
muted?: boolean;
|
|
40
52
|
} & ConfigOrComposition & ServeUrlOrWebpackBundle;
|
|
41
53
|
export declare const renderFrames: (options: RenderFramesOptions) => Promise<RenderFramesOutput>;
|
|
42
54
|
export {};
|
package/dist/render-frames.js
CHANGED
|
@@ -8,21 +8,27 @@ const fs_1 = __importDefault(require("fs"));
|
|
|
8
8
|
const path_1 = __importDefault(require("path"));
|
|
9
9
|
const remotion_1 = require("remotion");
|
|
10
10
|
const download_and_map_assets_to_file_1 = require("./assets/download-and-map-assets-to-file");
|
|
11
|
+
const download_map_1 = require("./assets/download-map");
|
|
12
|
+
const browser_1 = require("./browser");
|
|
13
|
+
const compress_assets_1 = require("./compress-assets");
|
|
11
14
|
const cycle_browser_tabs_1 = require("./cycle-browser-tabs");
|
|
12
15
|
const handle_javascript_exception_1 = require("./error-handling/handle-javascript-exception");
|
|
13
16
|
const get_concurrency_1 = require("./get-concurrency");
|
|
14
17
|
const get_duration_from_frame_range_1 = require("./get-duration-from-frame-range");
|
|
18
|
+
const get_frame_padded_index_1 = require("./get-frame-padded-index");
|
|
15
19
|
const get_frame_to_render_1 = require("./get-frame-to-render");
|
|
16
20
|
const image_format_1 = require("./image-format");
|
|
17
21
|
const legacy_webpack_config_1 = require("./legacy-webpack-config");
|
|
18
|
-
const make_assets_download_dir_1 = require("./make-assets-download-dir");
|
|
19
22
|
const open_browser_1 = require("./open-browser");
|
|
23
|
+
const perf_1 = require("./perf");
|
|
20
24
|
const pool_1 = require("./pool");
|
|
21
25
|
const prepare_server_1 = require("./prepare-server");
|
|
22
26
|
const provide_screenshot_1 = require("./provide-screenshot");
|
|
23
27
|
const puppeteer_evaluate_1 = require("./puppeteer-evaluate");
|
|
28
|
+
const quality_1 = require("./quality");
|
|
24
29
|
const seek_to_frame_1 = require("./seek-to-frame");
|
|
25
30
|
const set_props_and_env_1 = require("./set-props-and-env");
|
|
31
|
+
const truthy_1 = require("./truthy");
|
|
26
32
|
const validate_scale_1 = require("./validate-scale");
|
|
27
33
|
const getComposition = (others) => {
|
|
28
34
|
if ('composition' in others) {
|
|
@@ -38,7 +44,7 @@ const getPool = async (pages) => {
|
|
|
38
44
|
const pool = new pool_1.Pool(puppeteerPages);
|
|
39
45
|
return pool;
|
|
40
46
|
};
|
|
41
|
-
const innerRenderFrames = ({ onFrameUpdate, outputDir, onStart, inputProps, quality, imageFormat = image_format_1.DEFAULT_IMAGE_FORMAT, frameRange, puppeteerInstance, onError, envVariables, onBrowserLog, onFrameBuffer, onDownload, pagesArray, serveUrl, composition, timeoutInMilliseconds, scale, actualParallelism,
|
|
47
|
+
const innerRenderFrames = ({ onFrameUpdate, outputDir, onStart, inputProps, quality, imageFormat = image_format_1.DEFAULT_IMAGE_FORMAT, frameRange, puppeteerInstance, onError, envVariables, onBrowserLog, onFrameBuffer, onDownload, pagesArray, serveUrl, composition, timeoutInMilliseconds, scale, actualParallelism, everyNthFrame = 1, proxyPort, cancelSignal, downloadMap, muted, }) => {
|
|
42
48
|
if (!puppeteerInstance) {
|
|
43
49
|
throw new Error('no puppeteer instance passed to innerRenderFrames - internal error');
|
|
44
50
|
}
|
|
@@ -49,8 +55,10 @@ const innerRenderFrames = ({ onFrameUpdate, outputDir, onStart, inputProps, qual
|
|
|
49
55
|
});
|
|
50
56
|
}
|
|
51
57
|
}
|
|
58
|
+
const downloadPromises = [];
|
|
52
59
|
const realFrameRange = (0, get_frame_to_render_1.getRealFrameRange)(composition.durationInFrames, frameRange !== null && frameRange !== void 0 ? frameRange : null);
|
|
53
|
-
const
|
|
60
|
+
const framesToRender = (0, get_duration_from_frame_range_1.getFramesToRender)(realFrameRange, everyNthFrame);
|
|
61
|
+
const lastFrame = framesToRender[framesToRender.length - 1];
|
|
54
62
|
const pages = new Array(actualParallelism).fill(true).map(async () => {
|
|
55
63
|
const page = await puppeteerInstance.newPage();
|
|
56
64
|
pagesArray.push(page);
|
|
@@ -62,18 +70,14 @@ const innerRenderFrames = ({ onFrameUpdate, outputDir, onStart, inputProps, qual
|
|
|
62
70
|
const logCallback = (log) => {
|
|
63
71
|
onBrowserLog === null || onBrowserLog === void 0 ? void 0 : onBrowserLog({
|
|
64
72
|
stackTrace: log.stackTrace(),
|
|
65
|
-
text: log.text
|
|
66
|
-
type: log.type
|
|
73
|
+
text: log.text,
|
|
74
|
+
type: log.type,
|
|
67
75
|
});
|
|
68
76
|
};
|
|
69
77
|
if (onBrowserLog) {
|
|
70
78
|
page.on('console', logCallback);
|
|
71
79
|
}
|
|
72
|
-
const initialFrame =
|
|
73
|
-
? frameRange
|
|
74
|
-
: frameRange === null || frameRange === undefined
|
|
75
|
-
? 0
|
|
76
|
-
: frameRange[0];
|
|
80
|
+
const initialFrame = realFrameRange[0];
|
|
77
81
|
await (0, set_props_and_env_1.setPropsAndEnv)({
|
|
78
82
|
inputProps,
|
|
79
83
|
envVariables,
|
|
@@ -83,46 +87,60 @@ const innerRenderFrames = ({ onFrameUpdate, outputDir, onStart, inputProps, qual
|
|
|
83
87
|
timeoutInMilliseconds,
|
|
84
88
|
proxyPort,
|
|
85
89
|
retriesRemaining: 2,
|
|
90
|
+
audioEnabled: !muted,
|
|
91
|
+
videoEnabled: imageFormat !== 'none',
|
|
86
92
|
});
|
|
87
93
|
await (0, puppeteer_evaluate_1.puppeteerEvaluateWithCatch)({
|
|
88
|
-
|
|
94
|
+
// eslint-disable-next-line max-params
|
|
95
|
+
pageFunction: (id, defaultProps, durationInFrames, fps, height, width) => {
|
|
89
96
|
window.setBundleMode({
|
|
90
97
|
type: 'composition',
|
|
91
98
|
compositionName: id,
|
|
99
|
+
compositionDefaultProps: defaultProps,
|
|
100
|
+
compositionDurationInFrames: durationInFrames,
|
|
101
|
+
compositionFps: fps,
|
|
102
|
+
compositionHeight: height,
|
|
103
|
+
compositionWidth: width,
|
|
92
104
|
});
|
|
93
105
|
},
|
|
94
|
-
args: [
|
|
106
|
+
args: [
|
|
107
|
+
composition.id,
|
|
108
|
+
composition.defaultProps,
|
|
109
|
+
composition.durationInFrames,
|
|
110
|
+
composition.fps,
|
|
111
|
+
composition.height,
|
|
112
|
+
composition.width,
|
|
113
|
+
],
|
|
95
114
|
frame: null,
|
|
96
115
|
page,
|
|
97
116
|
});
|
|
98
117
|
page.off('console', logCallback);
|
|
99
118
|
return page;
|
|
100
119
|
});
|
|
101
|
-
|
|
102
|
-
//
|
|
103
|
-
|
|
104
|
-
const filePadLength =
|
|
120
|
+
// If rendering a GIF and skipping frames, we must ensure it starts from 0
|
|
121
|
+
// and then is consecutive so FFMPEG recognizes the sequence
|
|
122
|
+
const countType = everyNthFrame === 1 ? 'actual-frames' : 'from-zero';
|
|
123
|
+
const filePadLength = (0, get_frame_padded_index_1.getFilePadLength)({
|
|
124
|
+
lastFrame,
|
|
125
|
+
totalFrames: framesToRender.length,
|
|
126
|
+
countType,
|
|
127
|
+
});
|
|
105
128
|
let framesRendered = 0;
|
|
106
129
|
const poolPromise = getPool(pages);
|
|
107
130
|
onStart({
|
|
108
|
-
frameCount,
|
|
131
|
+
frameCount: framesToRender.length,
|
|
109
132
|
});
|
|
110
|
-
const assets = new Array(
|
|
133
|
+
const assets = new Array(framesToRender.length).fill(undefined);
|
|
111
134
|
let stopped = false;
|
|
112
135
|
cancelSignal === null || cancelSignal === void 0 ? void 0 : cancelSignal(() => {
|
|
113
136
|
stopped = true;
|
|
114
137
|
});
|
|
115
|
-
const progress = Promise.all(
|
|
116
|
-
.fill(Boolean)
|
|
117
|
-
.map((_x, i) => i)
|
|
118
|
-
.map(async (index) => {
|
|
119
|
-
const frame = realFrameRange[0] + index;
|
|
138
|
+
const progress = Promise.all(framesToRender.map(async (frame, index) => {
|
|
120
139
|
const pool = await poolPromise;
|
|
121
140
|
const freePage = await pool.acquire();
|
|
122
141
|
if (stopped) {
|
|
123
142
|
throw new Error('Render was stopped');
|
|
124
143
|
}
|
|
125
|
-
const paddedIndex = String(frame).padStart(filePadLength, '0');
|
|
126
144
|
const errorCallbackOnFrame = (err) => {
|
|
127
145
|
onError(err);
|
|
128
146
|
};
|
|
@@ -135,24 +153,31 @@ const innerRenderFrames = ({ onFrameUpdate, outputDir, onStart, inputProps, qual
|
|
|
135
153
|
await (0, seek_to_frame_1.seekToFrame)({ frame, page: freePage });
|
|
136
154
|
if (imageFormat !== 'none') {
|
|
137
155
|
if (onFrameBuffer) {
|
|
138
|
-
const id =
|
|
156
|
+
const id = (0, perf_1.startPerfMeasure)('save');
|
|
139
157
|
const buffer = await (0, provide_screenshot_1.provideScreenshot)({
|
|
140
158
|
page: freePage,
|
|
141
159
|
imageFormat,
|
|
142
160
|
quality,
|
|
143
161
|
options: {
|
|
144
162
|
frame,
|
|
145
|
-
output:
|
|
163
|
+
output: null,
|
|
146
164
|
},
|
|
147
165
|
});
|
|
148
|
-
|
|
166
|
+
(0, perf_1.stopPerfMeasure)(id);
|
|
149
167
|
onFrameBuffer(buffer, frame);
|
|
150
168
|
}
|
|
151
169
|
else {
|
|
152
170
|
if (!outputDir) {
|
|
153
171
|
throw new Error('Called renderFrames() without specifying either `outputDir` or `onFrameBuffer`');
|
|
154
172
|
}
|
|
155
|
-
const output = path_1.default.join(outputDir,
|
|
173
|
+
const output = path_1.default.join(outputDir, (0, get_frame_padded_index_1.getFrameOutputFileName)({
|
|
174
|
+
frame,
|
|
175
|
+
imageFormat,
|
|
176
|
+
index,
|
|
177
|
+
countType,
|
|
178
|
+
lastFrame,
|
|
179
|
+
totalFrames: framesToRender.length,
|
|
180
|
+
}));
|
|
156
181
|
await (0, provide_screenshot_1.provideScreenshot)({
|
|
157
182
|
page: freePage,
|
|
158
183
|
imageFormat,
|
|
@@ -172,13 +197,13 @@ const innerRenderFrames = ({ onFrameUpdate, outputDir, onStart, inputProps, qual
|
|
|
172
197
|
frame,
|
|
173
198
|
page: freePage,
|
|
174
199
|
});
|
|
175
|
-
const compressedAssets = collectedAssets.map((asset) =>
|
|
200
|
+
const compressedAssets = collectedAssets.map((asset) => (0, compress_assets_1.compressAsset)(assets.filter(truthy_1.truthy).flat(1), asset));
|
|
176
201
|
assets[index] = compressedAssets;
|
|
177
202
|
compressedAssets.forEach((asset) => {
|
|
178
203
|
(0, download_and_map_assets_to_file_1.downloadAndMapAssetsToFileUrl)({
|
|
179
204
|
asset,
|
|
180
|
-
downloadDir,
|
|
181
205
|
onDownload,
|
|
206
|
+
downloadMap,
|
|
182
207
|
}).catch((err) => {
|
|
183
208
|
onError(new Error(`Error while downloading asset: ${err.stack}`));
|
|
184
209
|
});
|
|
@@ -194,88 +219,91 @@ const innerRenderFrames = ({ onFrameUpdate, outputDir, onStart, inputProps, qual
|
|
|
194
219
|
const returnValue = {
|
|
195
220
|
assetsInfo: {
|
|
196
221
|
assets,
|
|
197
|
-
downloadDir,
|
|
198
|
-
firstFrameIndex,
|
|
199
222
|
imageSequenceName: `element-%0${filePadLength}d.${imageFormat}`,
|
|
223
|
+
firstFrameIndex: framesToRender[0],
|
|
224
|
+
downloadMap,
|
|
200
225
|
},
|
|
201
|
-
frameCount,
|
|
226
|
+
frameCount: framesToRender.length,
|
|
202
227
|
};
|
|
203
228
|
return returnValue;
|
|
204
229
|
});
|
|
205
|
-
return
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
});
|
|
211
|
-
}),
|
|
212
|
-
]);
|
|
230
|
+
return happyPath
|
|
231
|
+
.then(() => {
|
|
232
|
+
return Promise.all(downloadPromises);
|
|
233
|
+
})
|
|
234
|
+
.then(() => happyPath);
|
|
213
235
|
};
|
|
214
236
|
const renderFrames = (options) => {
|
|
215
|
-
var _a, _b, _c, _d;
|
|
237
|
+
var _a, _b, _c, _d, _e;
|
|
216
238
|
const composition = getComposition(options);
|
|
217
239
|
if (!composition) {
|
|
218
240
|
throw new Error('No `composition` option has been specified for renderFrames()');
|
|
219
241
|
}
|
|
220
242
|
remotion_1.Internals.validateDimension(composition.height, 'height', 'in the `config` object passed to `renderFrames()`');
|
|
221
243
|
remotion_1.Internals.validateDimension(composition.width, 'width', 'in the `config` object passed to `renderFrames()`');
|
|
222
|
-
remotion_1.Internals.validateFps(composition.fps, 'in the `config` object of `renderFrames()`');
|
|
244
|
+
remotion_1.Internals.validateFps(composition.fps, 'in the `config` object of `renderFrames()`', false);
|
|
223
245
|
remotion_1.Internals.validateDurationInFrames(composition.durationInFrames, 'in the `config` object passed to `renderFrames()`');
|
|
224
246
|
if (options.quality !== undefined && options.imageFormat !== 'jpeg') {
|
|
225
247
|
throw new Error("You can only pass the `quality` option if `imageFormat` is 'jpeg'.");
|
|
226
248
|
}
|
|
227
249
|
const selectedServeUrl = (0, legacy_webpack_config_1.getServeUrlWithFallback)(options);
|
|
228
|
-
|
|
250
|
+
(0, quality_1.validateQuality)(options.quality);
|
|
229
251
|
(0, validate_scale_1.validateScale)(options.scale);
|
|
230
|
-
const browserInstance = (_a = options.puppeteerInstance) !== null && _a !== void 0 ? _a : (0, open_browser_1.openBrowser)(
|
|
252
|
+
const browserInstance = (_a = options.puppeteerInstance) !== null && _a !== void 0 ? _a : (0, open_browser_1.openBrowser)(browser_1.DEFAULT_BROWSER, {
|
|
231
253
|
shouldDumpIo: options.dumpBrowserLogs,
|
|
232
254
|
browserExecutable: options.browserExecutable,
|
|
233
255
|
chromiumOptions: options.chromiumOptions,
|
|
234
256
|
forceDeviceScaleFactor: (_b = options.scale) !== null && _b !== void 0 ? _b : 1,
|
|
235
257
|
});
|
|
236
|
-
const
|
|
237
|
-
const onDownload = (
|
|
238
|
-
const actualParallelism = (0, get_concurrency_1.getActualConcurrency)((
|
|
258
|
+
const downloadMap = (_c = options.downloadMap) !== null && _c !== void 0 ? _c : (0, download_map_1.makeDownloadMap)();
|
|
259
|
+
const onDownload = (_d = options.onDownload) !== null && _d !== void 0 ? _d : (() => () => undefined);
|
|
260
|
+
const actualParallelism = (0, get_concurrency_1.getActualConcurrency)((_e = options.parallelism) !== null && _e !== void 0 ? _e : null);
|
|
239
261
|
const openedPages = [];
|
|
240
262
|
return new Promise((resolve, reject) => {
|
|
241
|
-
var _a, _b;
|
|
263
|
+
var _a, _b, _c;
|
|
242
264
|
const cleanup = [];
|
|
243
|
-
const onError = (err) =>
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
265
|
+
const onError = (err) => {
|
|
266
|
+
reject(err);
|
|
267
|
+
};
|
|
268
|
+
Promise.race([
|
|
269
|
+
new Promise((_, rej) => {
|
|
270
|
+
var _a;
|
|
271
|
+
(_a = options.cancelSignal) === null || _a === void 0 ? void 0 : _a.call(options, () => {
|
|
272
|
+
rej(new Error('renderFrames() got cancelled'));
|
|
273
|
+
});
|
|
274
|
+
}),
|
|
275
|
+
Promise.all([
|
|
276
|
+
(0, prepare_server_1.prepareServer)({
|
|
277
|
+
webpackConfigOrServeUrl: selectedServeUrl,
|
|
278
|
+
onDownload,
|
|
279
|
+
onError,
|
|
280
|
+
ffmpegExecutable: (_a = options.ffmpegExecutable) !== null && _a !== void 0 ? _a : null,
|
|
281
|
+
ffprobeExecutable: (_b = options.ffprobeExecutable) !== null && _b !== void 0 ? _b : null,
|
|
282
|
+
port: (_c = options.port) !== null && _c !== void 0 ? _c : null,
|
|
283
|
+
downloadMap,
|
|
284
|
+
}),
|
|
285
|
+
browserInstance,
|
|
286
|
+
]).then(([{ serveUrl, closeServer, offthreadPort }, puppeteerInstance]) => {
|
|
287
|
+
const { stopCycling } = (0, cycle_browser_tabs_1.cycleBrowserTabs)(puppeteerInstance, actualParallelism);
|
|
288
|
+
cleanup.push(stopCycling);
|
|
289
|
+
cleanup.push(closeServer);
|
|
290
|
+
return innerRenderFrames({
|
|
291
|
+
...options,
|
|
292
|
+
puppeteerInstance,
|
|
293
|
+
onError,
|
|
294
|
+
pagesArray: openedPages,
|
|
295
|
+
serveUrl,
|
|
296
|
+
composition,
|
|
297
|
+
actualParallelism,
|
|
298
|
+
onDownload,
|
|
299
|
+
proxyPort: offthreadPort,
|
|
300
|
+
downloadMap,
|
|
301
|
+
});
|
|
252
302
|
}),
|
|
253
|
-
browserInstance,
|
|
254
303
|
])
|
|
255
|
-
.then((
|
|
256
|
-
|
|
257
|
-
const { stopCycling } = (0, cycle_browser_tabs_1.cycleBrowserTabs)(puppeteerInstance, actualParallelism);
|
|
258
|
-
cleanup.push(stopCycling);
|
|
259
|
-
(_a = options.cancelSignal) === null || _a === void 0 ? void 0 : _a.call(options, () => {
|
|
260
|
-
stopCycling();
|
|
261
|
-
closeServer();
|
|
262
|
-
});
|
|
263
|
-
cleanup.push(closeServer);
|
|
264
|
-
const renderFramesProm = innerRenderFrames({
|
|
265
|
-
...options,
|
|
266
|
-
puppeteerInstance,
|
|
267
|
-
onError,
|
|
268
|
-
pagesArray: openedPages,
|
|
269
|
-
serveUrl,
|
|
270
|
-
composition,
|
|
271
|
-
actualParallelism,
|
|
272
|
-
onDownload,
|
|
273
|
-
downloadDir,
|
|
274
|
-
proxyPort: offthreadPort,
|
|
275
|
-
});
|
|
276
|
-
return renderFramesProm;
|
|
304
|
+
.then((res) => {
|
|
305
|
+
return resolve(res);
|
|
277
306
|
})
|
|
278
|
-
.then((res) => resolve(res))
|
|
279
307
|
.catch((err) => reject(err))
|
|
280
308
|
.finally(() => {
|
|
281
309
|
// If browser instance was passed in, we close all the pages
|
|
@@ -298,6 +326,7 @@ const renderFrames = (options) => {
|
|
|
298
326
|
cleanup.forEach((c) => {
|
|
299
327
|
c();
|
|
300
328
|
});
|
|
329
|
+
// Don't clear download dir because it might be used by stitchFramesToVideo
|
|
301
330
|
});
|
|
302
331
|
});
|
|
303
332
|
};
|
package/dist/render-media.d.ts
CHANGED
|
@@ -1,11 +1,19 @@
|
|
|
1
|
-
|
|
2
|
-
import {
|
|
3
|
-
import { RenderMediaOnDownload } from './assets/download-and-map-assets-to-file';
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import type { SmallTCompMetadata } from 'remotion';
|
|
3
|
+
import type { RenderMediaOnDownload } from './assets/download-and-map-assets-to-file';
|
|
4
|
+
import type { DownloadMap } from './assets/download-map';
|
|
5
|
+
import type { BrowserExecutable } from './browser-executable';
|
|
6
|
+
import type { BrowserLog } from './browser-log';
|
|
7
|
+
import type { Browser as PuppeteerBrowser } from './browser/Browser';
|
|
8
|
+
import type { Codec } from './codec';
|
|
9
|
+
import type { FfmpegExecutable } from './ffmpeg-executable';
|
|
10
|
+
import type { FrameRange } from './frame-range';
|
|
11
|
+
import type { ServeUrlOrWebpackBundle } from './legacy-webpack-config';
|
|
12
|
+
import type { CancelSignal } from './make-cancel-signal';
|
|
13
|
+
import type { ChromiumOptions } from './open-browser';
|
|
14
|
+
import type { PixelFormat } from './pixel-format';
|
|
15
|
+
import type { ProResProfile } from './prores-profile';
|
|
16
|
+
import type { OnStartData } from './types';
|
|
9
17
|
export declare type StitchingState = 'encoding' | 'muxing';
|
|
10
18
|
export declare type RenderMediaOnProgress = (progress: {
|
|
11
19
|
renderedFrames: number;
|
|
@@ -15,7 +23,7 @@ export declare type RenderMediaOnProgress = (progress: {
|
|
|
15
23
|
stitchStage: StitchingState;
|
|
16
24
|
}) => void;
|
|
17
25
|
export declare type RenderMediaOptions = {
|
|
18
|
-
outputLocation
|
|
26
|
+
outputLocation?: string | null;
|
|
19
27
|
codec: Codec;
|
|
20
28
|
composition: SmallTCompMetadata;
|
|
21
29
|
inputProps?: unknown;
|
|
@@ -23,10 +31,13 @@ export declare type RenderMediaOptions = {
|
|
|
23
31
|
crf?: number | null;
|
|
24
32
|
imageFormat?: 'png' | 'jpeg' | 'none';
|
|
25
33
|
ffmpegExecutable?: FfmpegExecutable;
|
|
34
|
+
ffprobeExecutable?: FfmpegExecutable;
|
|
26
35
|
pixelFormat?: PixelFormat;
|
|
27
36
|
envVariables?: Record<string, string>;
|
|
28
37
|
quality?: number;
|
|
29
38
|
frameRange?: FrameRange | null;
|
|
39
|
+
everyNthFrame?: number;
|
|
40
|
+
numberOfGifLoops?: number | null;
|
|
30
41
|
puppeteerInstance?: PuppeteerBrowser;
|
|
31
42
|
overwrite?: boolean;
|
|
32
43
|
onProgress?: RenderMediaOnProgress;
|
|
@@ -41,5 +52,17 @@ export declare type RenderMediaOptions = {
|
|
|
41
52
|
port?: number | null;
|
|
42
53
|
cancelSignal?: CancelSignal;
|
|
43
54
|
browserExecutable?: BrowserExecutable;
|
|
55
|
+
verbose?: boolean;
|
|
56
|
+
/**
|
|
57
|
+
* @deprecated Only for Remotion internal usage
|
|
58
|
+
*/
|
|
59
|
+
downloadMap?: DownloadMap;
|
|
60
|
+
muted?: boolean;
|
|
61
|
+
enforceAudioTrack?: boolean;
|
|
44
62
|
} & ServeUrlOrWebpackBundle;
|
|
45
|
-
|
|
63
|
+
/**
|
|
64
|
+
*
|
|
65
|
+
* @description Render a video from a composition
|
|
66
|
+
* @link https://www.remotion.dev/docs/renderer/render-media
|
|
67
|
+
*/
|
|
68
|
+
export declare const renderMedia: ({ parallelism, 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, ...options }: RenderMediaOptions) => Promise<Buffer | null>;
|