@remotion/renderer 4.0.0-defer.6 → 4.0.0-esm.17
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/dist/assets/calculate-asset-positions.d.ts +2 -2
- 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 +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 +13 -6
- package/dist/assets/download-file.js +64 -8
- package/dist/assets/download-map.d.ts +69 -0
- package/dist/assets/download-map.js +77 -0
- package/dist/assets/ffmpeg-volume-expression.d.ts +3 -3
- package/dist/assets/ffmpeg-volume-expression.js +6 -5
- package/dist/assets/flatten-volume-array.d.ts +1 -1
- package/dist/assets/flatten-volume-array.js +0 -0
- package/dist/assets/get-audio-channels.d.ts +3 -5
- package/dist/assets/get-audio-channels.js +15 -4
- package/dist/assets/get-video-stream-duration.d.ts +9 -0
- package/dist/assets/get-video-stream-duration.js +71 -0
- package/dist/assets/read-file.d.ts +0 -0
- package/dist/assets/read-file.js +2 -1
- 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 +2 -1
- package/dist/assets/types.js +0 -0
- package/dist/browser/Browser.d.ts +62 -0
- package/dist/browser/Browser.js +221 -0
- package/dist/browser/BrowserConnector.d.ts +19 -0
- package/dist/browser/BrowserConnector.js +17 -0
- package/dist/browser/BrowserFetcher.d.ts +90 -0
- package/dist/browser/BrowserFetcher.js +513 -0
- package/dist/browser/BrowserPage.d.ts +80 -0
- package/dist/browser/BrowserPage.js +280 -0
- package/dist/browser/BrowserRunner.d.ts +36 -0
- package/dist/browser/BrowserRunner.js +265 -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 +53 -0
- package/dist/browser/DOMWorld.js +279 -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 +91 -0
- package/dist/browser/FrameManager.js +493 -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 +33 -0
- package/dist/browser/LaunchOptions.js +17 -0
- package/dist/browser/Launcher.d.ts +15 -0
- package/dist/browser/Launcher.js +144 -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 +74 -0
- package/dist/browser/PuppeteerViewport.d.ts +5 -0
- package/dist/{faststart/options.js → browser/PuppeteerViewport.js} +0 -0
- package/dist/{faststart/index.d.ts → browser/ScreenshotOptions.d.ts} +0 -0
- package/dist/{faststart/index.js → browser/ScreenshotOptions.js} +0 -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 +77 -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 +1126 -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/is-target-closed-err.d.ts +1 -0
- package/dist/browser/is-target-closed-err.js +9 -0
- package/dist/browser/mitt/index.d.ts +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 +20 -0
- package/dist/browser/revisions.js +21 -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/{assets/cleanup-assets.js → browser-executable.js} +0 -0
- package/dist/browser-log.d.ts +1 -1
- package/dist/browser-log.js +0 -0
- 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 +1 -0
- 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/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 +10 -0
- package/dist/client.js +19 -0
- 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 +9 -3
- package/dist/combine-videos.js +18 -10
- package/dist/compositor/compose.d.ts +13 -0
- package/dist/compositor/compose.js +47 -0
- package/dist/compositor/compositor.d.ts +12 -0
- package/dist/compositor/compositor.js +111 -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 +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 +3 -2
- package/dist/convert-to-pcm.js +3 -2
- package/dist/convert-to-positive-frame-index.d.ts +4 -0
- package/dist/convert-to-positive-frame-index.js +8 -0
- package/dist/create-ffmpeg-complex-filter.d.ts +2 -1
- package/dist/create-ffmpeg-complex-filter.js +2 -11
- package/dist/create-ffmpeg-merge-filter.d.ts +0 -0
- package/dist/create-ffmpeg-merge-filter.js +3 -3
- package/dist/create-silent-audio.d.ts +3 -2
- package/dist/create-silent-audio.js +3 -2
- package/dist/crf.d.ts +9 -0
- package/dist/crf.js +91 -0
- 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 +1 -1
- package/dist/delay-render-embedded-stack.js +0 -0
- package/dist/delete-directory.d.ts +0 -0
- package/dist/delete-directory.js +0 -0
- package/dist/determine-resize-params.d.ts +1 -0
- package/dist/determine-resize-params.js +10 -0
- package/dist/determine-vcodec-ffmepg-flags.d.ts +2 -0
- package/dist/determine-vcodec-ffmepg-flags.js +13 -0
- package/dist/determine-vcodec-ffmpeg-flags.d.ts +2 -0
- package/dist/determine-vcodec-ffmpeg-flags.js +13 -0
- package/dist/ensure-ffmpeg.d.ts +10 -0
- package/dist/ensure-ffmpeg.js +50 -0
- package/dist/ensure-frames-in-order.d.ts +1 -1
- package/dist/ensure-frames-in-order.js +3 -2
- package/dist/ensure-output-directory.d.ts +0 -0
- package/dist/ensure-output-directory.js +0 -0
- package/dist/ensure-presentation-timestamp.d.ts +15 -0
- package/dist/ensure-presentation-timestamp.js +88 -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/symbolicate-error.js +0 -0
- package/dist/error-handling/symbolicateable-error.d.ts +1 -1
- package/dist/error-handling/symbolicateable-error.js +0 -0
- package/dist/extract-frame-from-video.d.ts +7 -6
- package/dist/extract-frame-from-video.js +91 -105
- 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/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/find-closest-package-json.d.ts +2 -0
- package/dist/find-closest-package-json.js +31 -0
- package/dist/frame-range.d.ts +2 -0
- package/dist/frame-range.js +49 -0
- package/dist/frame-to-ffmpeg-timestamp.d.ts +0 -0
- package/dist/frame-to-ffmpeg-timestamp.js +0 -0
- package/dist/get-audio-codec-name.d.ts +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 +3 -3
- package/dist/get-can-extract-frames-fast.d.ts +10 -0
- package/dist/get-can-extract-frames-fast.js +67 -0
- package/dist/get-codec-name.d.ts +1 -1
- package/dist/get-codec-name.js +5 -2
- package/dist/get-compositions-from-bundle.d.ts +7 -0
- package/dist/get-compositions-from-bundle.js +55 -0
- package/dist/get-compositions-from-markup.d.ts +3 -0
- package/dist/get-compositions-from-markup.js +17 -0
- package/dist/get-compositions-on-server.d.ts +3 -0
- package/dist/get-compositions-on-server.js +18 -0
- package/dist/get-compositions.d.ts +11 -4
- package/dist/get-compositions.js +30 -11
- package/dist/get-concurrency.d.ts +1 -1
- package/dist/get-concurrency.js +8 -1
- 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 +8 -5
- package/dist/get-extension-of-filename.d.ts +1 -1
- package/dist/get-extension-of-filename.js +8 -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 +14 -0
- package/dist/get-frame-padded-index.js +34 -0
- package/dist/get-frame-to-render.d.ts +1 -1
- package/dist/get-frame-to-render.js +0 -0
- package/dist/get-local-browser-executable.d.ts +2 -1
- package/dist/get-local-browser-executable.js +8 -8
- package/dist/get-port.d.ts +4 -1
- package/dist/get-port.js +13 -22
- package/dist/get-prores-profile-name.d.ts +2 -1
- package/dist/get-prores-profile-name.js +0 -0
- package/dist/get-video-info.d.ts +8 -0
- package/dist/get-video-info.js +59 -0
- package/dist/get-video-signals.d.ts +2 -0
- package/dist/get-video-signals.js +28 -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 +5 -0
- package/dist/guess-extension-for-media.js +28 -0
- package/dist/image-format.d.ts +6 -1
- package/dist/image-format.js +28 -1
- package/dist/index.d.ts +117 -34
- package/dist/index.js +101 -15
- 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/is-serve-url.d.ts +0 -0
- package/dist/is-serve-url.js +0 -0
- package/dist/last-frame-from-video-cache.d.ts +9 -4
- package/dist/last-frame-from-video-cache.js +24 -21
- package/dist/legacy-webpack-config.d.ts +0 -0
- package/dist/legacy-webpack-config.js +0 -0
- package/dist/lock-port-selection.d.ts +2 -0
- package/dist/lock-port-selection.js +11 -0
- package/dist/locks.d.ts +7 -0
- package/dist/locks.js +44 -0
- package/dist/log-level.d.ts +4 -0
- package/dist/log-level.js +15 -0
- package/dist/make-cancel-signal.d.ts +7 -0
- package/dist/make-cancel-signal.js +20 -1
- package/dist/make-comp-manager-context.d.ts +2 -0
- package/dist/make-comp-manager-context.js +45 -0
- package/dist/make-timeline-context-value.d.ts +2 -0
- package/dist/make-timeline-context-value.js +20 -0
- package/dist/merge-audio-track.d.ts +4 -1
- package/dist/merge-audio-track.js +18 -7
- 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/normalize-serve-url.d.ts +0 -0
- package/dist/normalize-serve-url.js +0 -0
- package/dist/offthread-video-server.d.ts +9 -5
- package/dist/offthread-video-server.js +30 -10
- package/dist/open-browser.d.ts +5 -3
- package/dist/open-browser.js +18 -28
- package/dist/overwrite.d.ts +1 -0
- package/dist/overwrite.js +4 -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 +5 -0
- package/dist/perf.js +35 -0
- package/dist/pixel-format.d.ts +5 -0
- package/dist/pixel-format.js +29 -0
- package/dist/pool.d.ts +0 -0
- package/dist/pool.js +0 -0
- package/dist/prepare-server.d.ts +7 -5
- package/dist/prepare-server.js +24 -5
- package/dist/preprocess-audio-track.d.ts +5 -2
- package/dist/preprocess-audio-track.js +5 -4
- package/dist/prespawn-ffmpeg.d.ts +10 -3
- package/dist/prespawn-ffmpeg.js +24 -16
- package/dist/prestitcher-memory-usage.d.ts +12 -0
- package/dist/prestitcher-memory-usage.js +30 -0
- package/dist/prores-profile.d.ts +8 -0
- package/dist/prores-profile.js +23 -0
- package/dist/provide-screenshot.d.ts +9 -5
- package/dist/provide-screenshot.js +4 -2
- package/dist/puppeteer-evaluate.d.ts +1 -1
- package/dist/puppeteer-evaluate.js +3 -4
- package/dist/puppeteer-screenshot.d.ts +12 -2
- package/dist/puppeteer-screenshot.js +11 -16
- package/dist/quality.d.ts +1 -0
- package/dist/quality.js +21 -0
- package/dist/redirect-status-codes.d.ts +1 -0
- package/dist/redirect-status-codes.js +6 -0
- package/dist/render-frames.d.ts +30 -12
- package/dist/render-frames.js +232 -138
- package/dist/render-media.d.ts +49 -12
- package/dist/render-media.js +152 -30
- package/dist/render-on-server.d.ts +3 -0
- package/dist/render-on-server.js +90 -0
- package/dist/render-still.d.ts +21 -9
- package/dist/render-still.js +75 -37
- package/dist/render-svg.d.ts +8 -0
- package/dist/render-svg.js +13 -0
- package/dist/render-video-layer.d.ts +9 -0
- package/dist/render-video-layer.js +23 -0
- package/dist/render-web-frame.d.ts +74 -0
- package/dist/render-web-frame.js +259 -0
- 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 +11 -8
- package/dist/screenshot-dom-element.js +12 -7
- package/dist/screenshot-task.d.ts +13 -3
- package/dist/screenshot-task.js +55 -27
- package/dist/seek-to-frame.d.ts +3 -2
- package/dist/seek-to-frame.js +24 -3
- package/dist/serve-handler/index.d.ts +1 -1
- package/dist/serve-handler/index.js +7 -15
- 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 +5 -3
- package/dist/serve-static.js +20 -4
- package/dist/set-props-and-env.d.ts +4 -2
- package/dist/set-props-and-env.js +41 -15
- package/dist/stitch-frames-to-video.d.ts +20 -7
- package/dist/stitch-frames-to-video.js +175 -59
- package/dist/stringify-ffmpeg-filter.d.ts +4 -3
- package/dist/stringify-ffmpeg-filter.js +15 -11
- package/dist/symbolicate-stacktrace.d.ts +1 -1
- package/dist/symbolicate-stacktrace.js +3 -3
- 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 +3 -0
- package/dist/truthy.js +7 -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 +1 -1
- package/dist/types.js +0 -0
- package/dist/validate-concurrency.d.ts +1 -0
- package/dist/validate-concurrency.js +29 -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 +2 -0
- package/dist/validate-every-nth-frame.js +28 -0
- 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 -44
- package/dist/validate-frame.d.ts +1 -0
- package/dist/validate-frame.js +24 -0
- 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 +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/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 +3 -0
- package/dist/wait-for-symbolication-error-to-be-done.js +8 -0
- package/dist/warn-about-ffmpeg-version.d.ts +5 -0
- package/dist/warn-about-ffmpeg-version.js +37 -0
- package/dist/ws/ws-types.d.ts +14 -0
- package/dist/ws/ws-types.js +10 -0
- package/package.json +30 -22
- package/types/ws/index.d.ts +509 -0
- package/.prettierrc.js +0 -14
- package/dist/abort.d.ts +0 -7
- package/dist/abort.js +0 -20
- package/dist/assets/cleanup-assets.d.ts +0 -2
- package/dist/cancel.d.ts +0 -7
- package/dist/cancel.js +0 -25
- package/dist/ensure-faststart.d.ts +0 -1
- package/dist/ensure-faststart.js +0 -14
- package/dist/faststart/atom.d.ts +0 -35
- package/dist/faststart/atom.js +0 -138
- package/dist/faststart/options.d.ts +0 -6
- package/dist/faststart/qt-faststart.d.ts +0 -18
- package/dist/faststart/qt-faststart.js +0 -66
- package/dist/faststart/update-chunk-offsets.d.ts +0 -10
- package/dist/faststart/update-chunk-offsets.js +0 -114
- package/dist/faststart/util.d.ts +0 -9
- package/dist/faststart/util.js +0 -34
- package/dist/get-duration-of-asset.d.ts +0 -7
- package/dist/get-duration-of-asset.js +0 -36
- package/dist/make-assets-download-dir.d.ts +0 -1
- package/dist/make-assets-download-dir.js +0 -13
- package/dist/offthread/index.d.ts +0 -0
- package/dist/offthread/index.js +0 -1
- package/dist/render-gif.d.ts +0 -2
- package/dist/render-gif.js +0 -242
- package/dist/serve-handler/glob-slash.d.ts +0 -1
- package/dist/serve-handler/glob-slash.js +0 -12
- package/dist/stitch-frames-to-gif.d.ts +0 -8
- package/dist/stitch-frames-to-gif.js +0 -128
- package/dist/validate-fps-for-gif.d.ts +0 -2
- package/dist/validate-fps-for-gif.js +0 -9
- package/tsconfig.json +0 -10
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.validateFrameRange = void 0;
|
|
4
|
+
const validateFrameRange = (frameRange) => {
|
|
5
|
+
if (frameRange === null) {
|
|
6
|
+
return;
|
|
7
|
+
}
|
|
8
|
+
if (typeof frameRange === 'number') {
|
|
9
|
+
if (frameRange < 0) {
|
|
10
|
+
throw new TypeError('Frame must be a non-negative number, got ' + frameRange);
|
|
11
|
+
}
|
|
12
|
+
if (!Number.isFinite(frameRange)) {
|
|
13
|
+
throw new TypeError('Frame must be a finite number, got ' + frameRange);
|
|
14
|
+
}
|
|
15
|
+
if (!Number.isInteger(frameRange)) {
|
|
16
|
+
throw new Error(`Frame must be an integer, but got a float (${frameRange})`);
|
|
17
|
+
}
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
if (Array.isArray(frameRange)) {
|
|
21
|
+
if (frameRange.length !== 2) {
|
|
22
|
+
throw new TypeError('Frame range must be a tuple, got an array with length ' +
|
|
23
|
+
frameRange.length);
|
|
24
|
+
}
|
|
25
|
+
for (const value of frameRange) {
|
|
26
|
+
if (typeof value !== 'number') {
|
|
27
|
+
throw new Error(`Each value of frame range must be a number, but got ${typeof value} (${JSON.stringify(value)})`);
|
|
28
|
+
}
|
|
29
|
+
if (!Number.isFinite(value)) {
|
|
30
|
+
throw new TypeError('Each value of frame range must be finite, but got ' + value);
|
|
31
|
+
}
|
|
32
|
+
if (!Number.isInteger(value)) {
|
|
33
|
+
throw new Error(`Each value of frame range must be an integer, but got a float (${value})`);
|
|
34
|
+
}
|
|
35
|
+
if (value < 0) {
|
|
36
|
+
throw new Error(`Each value of frame range must be non-negative, but got ${value}`);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
const [first, second] = frameRange;
|
|
40
|
+
if (second < first) {
|
|
41
|
+
throw new Error('The second value of frame range must be not smaller than the first one, but got ' +
|
|
42
|
+
frameRange.join('-'));
|
|
43
|
+
}
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
throw new TypeError('Frame range must be a number or a tuple of numbers, but got object of type ' +
|
|
47
|
+
typeof frameRange);
|
|
48
|
+
};
|
|
49
|
+
exports.validateFrameRange = validateFrameRange;
|
|
File without changes
|
|
File without changes
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { Codec } from '
|
|
1
|
+
import type { Codec } from './codec';
|
|
2
2
|
export declare const getAudioCodecName: (codec: Codec) => string | null;
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getAudioCodecName = void 0;
|
|
4
|
-
const
|
|
4
|
+
const is_audio_codec_1 = require("./is-audio-codec");
|
|
5
5
|
const getAudioCodecName = (codec) => {
|
|
6
|
-
if (!
|
|
6
|
+
if (!(0, is_audio_codec_1.isAudioCodec)(codec)) {
|
|
7
7
|
// The mkv container supports WAV, but MP4 does only support
|
|
8
8
|
// AAC. Choose MKV codec for better quality because we can put in lossless audio
|
|
9
9
|
if (codec === 'h264-mkv') {
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
1
|
+
import type { BrowserExecutable } from './browser-executable';
|
|
2
|
+
import type { Browser } from './browser/Browser';
|
|
3
|
+
import type { Page } from './browser/BrowserPage';
|
|
4
|
+
import type { ChromiumOptions } from './open-browser';
|
|
4
5
|
export declare const getPageAndCleanupFn: ({ passedInInstance, browserExecutable, chromiumOptions, }: {
|
|
5
6
|
passedInInstance: Browser | undefined;
|
|
6
7
|
browserExecutable: BrowserExecutable | null;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getPageAndCleanupFn = void 0;
|
|
4
|
-
const
|
|
4
|
+
const browser_1 = require("./browser");
|
|
5
5
|
const open_browser_1 = require("./open-browser");
|
|
6
6
|
const getPageAndCleanupFn = async ({ passedInInstance, browserExecutable, chromiumOptions, }) => {
|
|
7
7
|
if (passedInInstance) {
|
|
@@ -17,7 +17,7 @@ const getPageAndCleanupFn = async ({ passedInInstance, browserExecutable, chromi
|
|
|
17
17
|
},
|
|
18
18
|
};
|
|
19
19
|
}
|
|
20
|
-
const browserInstance = await (0, open_browser_1.openBrowser)(
|
|
20
|
+
const browserInstance = await (0, open_browser_1.openBrowser)(browser_1.DEFAULT_BROWSER, {
|
|
21
21
|
browserExecutable,
|
|
22
22
|
chromiumOptions,
|
|
23
23
|
});
|
|
@@ -26,7 +26,7 @@ const getPageAndCleanupFn = async ({ passedInInstance, browserExecutable, chromi
|
|
|
26
26
|
page: browserPage,
|
|
27
27
|
cleanup: () => {
|
|
28
28
|
// Close whole browser that was just created and don't wait for it to finish.
|
|
29
|
-
browserInstance.close().catch((err) => {
|
|
29
|
+
browserInstance.close(true).catch((err) => {
|
|
30
30
|
console.error('Was not able to close puppeteer page', err);
|
|
31
31
|
});
|
|
32
32
|
},
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { FfmpegExecutable } from './ffmpeg-executable';
|
|
2
|
+
export declare const ACCEPTABLE_OFFSET_THRESHOLD = 50;
|
|
3
|
+
export declare const getCanExtractFramesFast: ({ src, ffmpegExecutable, ffprobeExecutable, }: {
|
|
4
|
+
src: string;
|
|
5
|
+
ffmpegExecutable?: FfmpegExecutable | undefined;
|
|
6
|
+
ffprobeExecutable?: FfmpegExecutable | undefined;
|
|
7
|
+
}) => Promise<{
|
|
8
|
+
canExtractFramesFast: boolean;
|
|
9
|
+
shouldReencode: boolean;
|
|
10
|
+
}>;
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.getCanExtractFramesFast = exports.ACCEPTABLE_OFFSET_THRESHOLD = void 0;
|
|
7
|
+
const fs_1 = __importDefault(require("fs"));
|
|
8
|
+
const get_video_stream_duration_1 = require("./assets/get-video-stream-duration");
|
|
9
|
+
const ensure_presentation_timestamp_1 = require("./ensure-presentation-timestamp");
|
|
10
|
+
const find_closest_package_json_1 = require("./find-closest-package-json");
|
|
11
|
+
const get_video_info_1 = require("./get-video-info");
|
|
12
|
+
const try_to_extract_frame_of_video_fast_1 = require("./try-to-extract-frame-of-video-fast");
|
|
13
|
+
exports.ACCEPTABLE_OFFSET_THRESHOLD = 50;
|
|
14
|
+
const getCanExtractFramesFast = async ({ src, ffmpegExecutable, ffprobeExecutable, }) => {
|
|
15
|
+
const remotionRoot = (0, find_closest_package_json_1.findRemotionRoot)();
|
|
16
|
+
const out = await (0, ensure_presentation_timestamp_1.ensurePresentationTimestampWithoutCache)({
|
|
17
|
+
ffmpegExecutable: ffmpegExecutable !== null && ffmpegExecutable !== void 0 ? ffmpegExecutable : null,
|
|
18
|
+
ffprobeExecutable: ffprobeExecutable !== null && ffprobeExecutable !== void 0 ? ffprobeExecutable : null,
|
|
19
|
+
remotionRoot,
|
|
20
|
+
src,
|
|
21
|
+
});
|
|
22
|
+
const { specialVcodecForTransparency: specialVcodec } = await (0, get_video_info_1.getVideoInfoUncached)({
|
|
23
|
+
src: out,
|
|
24
|
+
ffprobeExecutable: ffprobeExecutable !== null && ffprobeExecutable !== void 0 ? ffprobeExecutable : null,
|
|
25
|
+
remotionRoot,
|
|
26
|
+
});
|
|
27
|
+
if (specialVcodec === 'vp8') {
|
|
28
|
+
fs_1.default.unlinkSync(out);
|
|
29
|
+
return {
|
|
30
|
+
canExtractFramesFast: false,
|
|
31
|
+
shouldReencode: false,
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
const { duration } = await (0, get_video_stream_duration_1.getVideoStreamDurationwithoutCache)({
|
|
35
|
+
ffprobeExecutable: ffprobeExecutable !== null && ffprobeExecutable !== void 0 ? ffprobeExecutable : null,
|
|
36
|
+
remotionRoot,
|
|
37
|
+
src: out,
|
|
38
|
+
});
|
|
39
|
+
if (duration === null) {
|
|
40
|
+
fs_1.default.unlinkSync(out);
|
|
41
|
+
throw new Error(`Could not determine the duration of ${src} using FFMPEG. The file is not supported.`);
|
|
42
|
+
}
|
|
43
|
+
const actualOffset = `${duration * 1000 - exports.ACCEPTABLE_OFFSET_THRESHOLD}ms`;
|
|
44
|
+
const [stdErr] = await (0, try_to_extract_frame_of_video_fast_1.tryToExtractFrameOfVideoFast)({
|
|
45
|
+
actualOffset,
|
|
46
|
+
ffmpegExecutable: ffmpegExecutable !== null && ffmpegExecutable !== void 0 ? ffmpegExecutable : null,
|
|
47
|
+
imageFormat: 'jpeg',
|
|
48
|
+
// Intentionally leaving needsResize as null, because we don't need to resize
|
|
49
|
+
needsResize: null,
|
|
50
|
+
remotionRoot,
|
|
51
|
+
specialVCodecForTransparency: specialVcodec,
|
|
52
|
+
src: out,
|
|
53
|
+
});
|
|
54
|
+
fs_1.default.unlinkSync(out);
|
|
55
|
+
const isEmpty = stdErr.includes('Output file is empty');
|
|
56
|
+
if (isEmpty) {
|
|
57
|
+
return {
|
|
58
|
+
canExtractFramesFast: false,
|
|
59
|
+
shouldReencode: true,
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
return {
|
|
63
|
+
canExtractFramesFast: true,
|
|
64
|
+
shouldReencode: false,
|
|
65
|
+
};
|
|
66
|
+
};
|
|
67
|
+
exports.getCanExtractFramesFast = getCanExtractFramesFast;
|
package/dist/get-codec-name.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { Codec } from '
|
|
1
|
+
import type { Codec } from './codec';
|
|
2
2
|
export declare const getCodecName: (codec: Codec) => string | null;
|
package/dist/get-codec-name.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getCodecName = void 0;
|
|
4
|
-
const
|
|
4
|
+
const is_audio_codec_1 = require("./is-audio-codec");
|
|
5
5
|
const getCodecName = (codec) => {
|
|
6
|
-
if (
|
|
6
|
+
if ((0, is_audio_codec_1.isAudioCodec)(codec)) {
|
|
7
7
|
return null;
|
|
8
8
|
}
|
|
9
9
|
if (codec === 'h264' || codec === 'h264-mkv') {
|
|
@@ -21,6 +21,9 @@ const getCodecName = (codec) => {
|
|
|
21
21
|
if (codec === 'prores') {
|
|
22
22
|
return 'prores_ks';
|
|
23
23
|
}
|
|
24
|
+
if (codec === 'gif') {
|
|
25
|
+
return 'gif';
|
|
26
|
+
}
|
|
24
27
|
throw new TypeError(`Cannot find FFMPEG codec for ${codec}`);
|
|
25
28
|
};
|
|
26
29
|
exports.getCodecName = getCodecName;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { ComponentType } from 'react';
|
|
2
|
+
import type { TCompMetadata } from 'remotion';
|
|
3
|
+
import type { GetCompositionsConfig } from './get-compositions';
|
|
4
|
+
export declare const getCompositionsFromBundle: (bundle: string, options: GetCompositionsConfig) => {
|
|
5
|
+
compositions: TCompMetadata[];
|
|
6
|
+
root: ComponentType;
|
|
7
|
+
};
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.getCompositionsFromBundle = void 0;
|
|
7
|
+
const fs_1 = __importDefault(require("fs"));
|
|
8
|
+
const path_1 = __importDefault(require("path"));
|
|
9
|
+
const remotion_1 = require("remotion");
|
|
10
|
+
const vm_1 = __importDefault(require("vm"));
|
|
11
|
+
const is_serve_url_1 = require("./is-serve-url");
|
|
12
|
+
const getCompositionsFromBundle = (bundle, options) => {
|
|
13
|
+
const bundleFile = path_1.default.join(bundle, 'bundle.js');
|
|
14
|
+
if ((0, is_serve_url_1.isServeUrl)(bundle)) {
|
|
15
|
+
throw new Error('Can only use getCompositionFromBundle from a local file');
|
|
16
|
+
}
|
|
17
|
+
const content = fs_1.default.readFileSync(bundleFile, 'utf-8');
|
|
18
|
+
// @ts-éxpect-error
|
|
19
|
+
process.env.REMOTION_SERVER_RENDERING = 'true';
|
|
20
|
+
const context = {
|
|
21
|
+
window: {
|
|
22
|
+
remotion_envVariables: options.envVariables,
|
|
23
|
+
},
|
|
24
|
+
clearTimeout: () => {
|
|
25
|
+
console.trace('clearTimeout() called inside a server-side bundle. This is not supported.');
|
|
26
|
+
},
|
|
27
|
+
setTimeout: () => {
|
|
28
|
+
console.trace('setTimeout() called inside a server-side bundle. This is not supported.');
|
|
29
|
+
},
|
|
30
|
+
process: {
|
|
31
|
+
env: {
|
|
32
|
+
REMOTION_SERVER_RENDERING: true,
|
|
33
|
+
},
|
|
34
|
+
},
|
|
35
|
+
require,
|
|
36
|
+
Buffer,
|
|
37
|
+
console,
|
|
38
|
+
};
|
|
39
|
+
const vmContext = vm_1.default.createContext(context);
|
|
40
|
+
// TODO: Set props and env
|
|
41
|
+
const code = content;
|
|
42
|
+
vm_1.default.runInContext(code, vmContext, {
|
|
43
|
+
filename: bundleFile,
|
|
44
|
+
breakOnSigint: true,
|
|
45
|
+
});
|
|
46
|
+
const theRoot = remotion_1.Internals.getRoot();
|
|
47
|
+
if (!theRoot) {
|
|
48
|
+
throw new Error('Did not call getRoot() in the bundle. Delaying the calling of getRoot() is not supported in server-side-rendering.');
|
|
49
|
+
}
|
|
50
|
+
const Comp = theRoot;
|
|
51
|
+
const comps = (0, remotion_1.getCompositionsFromMarkup)(Comp);
|
|
52
|
+
remotion_1.Internals.clearRoot();
|
|
53
|
+
return { compositions: comps, root: Comp };
|
|
54
|
+
};
|
|
55
|
+
exports.getCompositionsFromBundle = getCompositionsFromBundle;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getCompositionsFromMarkup = void 0;
|
|
4
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
const server_1 = require("react-dom/server");
|
|
6
|
+
const getCompositionsFromMarkup = (Comp) => {
|
|
7
|
+
process.env.REMOTION_SERVER_RENDERING = 'true';
|
|
8
|
+
const str = (0, server_1.renderToString)((0, jsx_runtime_1.jsx)(Comp, {}));
|
|
9
|
+
const matches = str.matchAll(/<div>(.*?)<\/div>/g);
|
|
10
|
+
const metadata = [];
|
|
11
|
+
for (const match of matches) {
|
|
12
|
+
const json = JSON.parse(match[1]);
|
|
13
|
+
metadata.push(json);
|
|
14
|
+
}
|
|
15
|
+
return metadata;
|
|
16
|
+
};
|
|
17
|
+
exports.getCompositionsFromMarkup = getCompositionsFromMarkup;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getCompositionsFromMarkup = void 0;
|
|
4
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
const server_1 = require("react-dom/server");
|
|
6
|
+
const getCompositionsFromMarkup = (Comp) => {
|
|
7
|
+
process.env.REMOTION_SERVER_RENDERING = 'true';
|
|
8
|
+
const str = (0, server_1.renderToString)((0, jsx_runtime_1.jsx)(Comp, {}));
|
|
9
|
+
console.log({ str }, (0, jsx_runtime_1.jsx)(Comp, {}));
|
|
10
|
+
const matches = str.matchAll(/<div>(.*?)<\/div>/g);
|
|
11
|
+
const metadata = [];
|
|
12
|
+
for (const match of matches) {
|
|
13
|
+
const json = JSON.parse(match[1]);
|
|
14
|
+
metadata.push(json);
|
|
15
|
+
}
|
|
16
|
+
return metadata;
|
|
17
|
+
};
|
|
18
|
+
exports.getCompositionsFromMarkup = getCompositionsFromMarkup;
|
|
@@ -1,7 +1,10 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
1
|
+
import type { TCompMetadata } from 'remotion';
|
|
2
|
+
import type { DownloadMap } from './assets/download-map';
|
|
3
|
+
import type { BrowserExecutable } from './browser-executable';
|
|
4
|
+
import type { BrowserLog } from './browser-log';
|
|
5
|
+
import type { Browser } from './browser/Browser';
|
|
6
|
+
import type { FfmpegExecutable } from './ffmpeg-executable';
|
|
7
|
+
import type { ChromiumOptions } from './open-browser';
|
|
5
8
|
declare type GetCompositionsConfig = {
|
|
6
9
|
inputProps?: object | null;
|
|
7
10
|
envVariables?: Record<string, string>;
|
|
@@ -13,6 +16,10 @@ declare type GetCompositionsConfig = {
|
|
|
13
16
|
ffmpegExecutable?: FfmpegExecutable;
|
|
14
17
|
ffprobeExecutable?: FfmpegExecutable;
|
|
15
18
|
port?: number | null;
|
|
19
|
+
/**
|
|
20
|
+
* @deprecated Only for Remotion internal usage
|
|
21
|
+
*/
|
|
22
|
+
downloadMap?: DownloadMap;
|
|
16
23
|
};
|
|
17
24
|
export declare const getCompositions: (serveUrlOrWebpackUrl: string, config?: GetCompositionsConfig) => Promise<TCompMetadata[]>;
|
|
18
25
|
export {};
|
package/dist/get-compositions.js
CHANGED
|
@@ -1,12 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getCompositions = void 0;
|
|
4
|
+
const download_map_1 = require("./assets/download-map");
|
|
4
5
|
const handle_javascript_exception_1 = require("./error-handling/handle-javascript-exception");
|
|
6
|
+
const find_closest_package_json_1 = require("./find-closest-package-json");
|
|
5
7
|
const get_browser_instance_1 = require("./get-browser-instance");
|
|
6
|
-
const make_assets_download_dir_1 = require("./make-assets-download-dir");
|
|
7
8
|
const prepare_server_1 = require("./prepare-server");
|
|
8
9
|
const puppeteer_evaluate_1 = require("./puppeteer-evaluate");
|
|
10
|
+
const seek_to_frame_1 = require("./seek-to-frame");
|
|
9
11
|
const set_props_and_env_1 = require("./set-props-and-env");
|
|
12
|
+
const validate_ffmpeg_1 = require("./validate-ffmpeg");
|
|
10
13
|
const validate_puppeteer_timeout_1 = require("./validate-puppeteer-timeout");
|
|
11
14
|
const innerGetCompositions = async (serveUrl, page, config, proxyPort) => {
|
|
12
15
|
if (config === null || config === void 0 ? void 0 : config.onBrowserLog) {
|
|
@@ -14,8 +17,8 @@ const innerGetCompositions = async (serveUrl, page, config, proxyPort) => {
|
|
|
14
17
|
var _a;
|
|
15
18
|
(_a = config.onBrowserLog) === null || _a === void 0 ? void 0 : _a.call(config, {
|
|
16
19
|
stackTrace: log.stackTrace(),
|
|
17
|
-
text: log.text
|
|
18
|
-
type: log.type
|
|
20
|
+
text: log.text,
|
|
21
|
+
type: log.type,
|
|
19
22
|
});
|
|
20
23
|
});
|
|
21
24
|
}
|
|
@@ -29,6 +32,8 @@ const innerGetCompositions = async (serveUrl, page, config, proxyPort) => {
|
|
|
29
32
|
timeoutInMilliseconds: config === null || config === void 0 ? void 0 : config.timeoutInMilliseconds,
|
|
30
33
|
proxyPort,
|
|
31
34
|
retriesRemaining: 2,
|
|
35
|
+
audioEnabled: false,
|
|
36
|
+
videoEnabled: false,
|
|
32
37
|
});
|
|
33
38
|
await (0, puppeteer_evaluate_1.puppeteerEvaluateWithCatch)({
|
|
34
39
|
page,
|
|
@@ -40,7 +45,7 @@ const innerGetCompositions = async (serveUrl, page, config, proxyPort) => {
|
|
|
40
45
|
frame: null,
|
|
41
46
|
args: [],
|
|
42
47
|
});
|
|
43
|
-
await
|
|
48
|
+
await (0, seek_to_frame_1.waitForReady)(page);
|
|
44
49
|
const result = await (0, puppeteer_evaluate_1.puppeteerEvaluateWithCatch)({
|
|
45
50
|
pageFunction: () => {
|
|
46
51
|
return window.getStaticCompositions();
|
|
@@ -52,12 +57,14 @@ const innerGetCompositions = async (serveUrl, page, config, proxyPort) => {
|
|
|
52
57
|
return result;
|
|
53
58
|
};
|
|
54
59
|
const getCompositions = async (serveUrlOrWebpackUrl, config) => {
|
|
55
|
-
var _a, _b;
|
|
56
|
-
|
|
60
|
+
var _a, _b, _c, _d, _e;
|
|
61
|
+
await (0, validate_ffmpeg_1.validateFfmpeg)((_a = config === null || config === void 0 ? void 0 : config.ffmpegExecutable) !== null && _a !== void 0 ? _a : null, (0, find_closest_package_json_1.findRemotionRoot)(), 'ffmpeg');
|
|
62
|
+
await (0, validate_ffmpeg_1.validateFfmpeg)((_b = config === null || config === void 0 ? void 0 : config.ffprobeExecutable) !== null && _b !== void 0 ? _b : null, (0, find_closest_package_json_1.findRemotionRoot)(), 'ffprobe');
|
|
63
|
+
const downloadMap = (_c = config === null || config === void 0 ? void 0 : config.downloadMap) !== null && _c !== void 0 ? _c : (0, download_map_1.makeDownloadMap)();
|
|
57
64
|
const { page, cleanup } = await (0, get_browser_instance_1.getPageAndCleanupFn)({
|
|
58
65
|
passedInInstance: config === null || config === void 0 ? void 0 : config.puppeteerInstance,
|
|
59
|
-
browserExecutable: (
|
|
60
|
-
chromiumOptions: (
|
|
66
|
+
browserExecutable: (_d = config === null || config === void 0 ? void 0 : config.browserExecutable) !== null && _d !== void 0 ? _d : null,
|
|
67
|
+
chromiumOptions: (_e = config === null || config === void 0 ? void 0 : config.chromiumOptions) !== null && _e !== void 0 ? _e : {},
|
|
61
68
|
});
|
|
62
69
|
return new Promise((resolve, reject) => {
|
|
63
70
|
var _a, _b, _c;
|
|
@@ -70,25 +77,37 @@ const getCompositions = async (serveUrlOrWebpackUrl, config) => {
|
|
|
70
77
|
let close = null;
|
|
71
78
|
(0, prepare_server_1.prepareServer)({
|
|
72
79
|
webpackConfigOrServeUrl: serveUrlOrWebpackUrl,
|
|
73
|
-
downloadDir,
|
|
74
80
|
onDownload: () => undefined,
|
|
75
81
|
onError,
|
|
76
82
|
ffmpegExecutable: (_a = config === null || config === void 0 ? void 0 : config.ffmpegExecutable) !== null && _a !== void 0 ? _a : null,
|
|
77
83
|
ffprobeExecutable: (_b = config === null || config === void 0 ? void 0 : config.ffprobeExecutable) !== null && _b !== void 0 ? _b : null,
|
|
78
84
|
port: (_c = config === null || config === void 0 ? void 0 : config.port) !== null && _c !== void 0 ? _c : null,
|
|
85
|
+
downloadMap,
|
|
86
|
+
remotionRoot: (0, find_closest_package_json_1.findRemotionRoot)(),
|
|
79
87
|
})
|
|
80
88
|
.then(({ serveUrl, closeServer, offthreadPort }) => {
|
|
81
89
|
close = closeServer;
|
|
82
90
|
return innerGetCompositions(serveUrl, page, config !== null && config !== void 0 ? config : {}, offthreadPort);
|
|
83
91
|
})
|
|
84
|
-
.then((comp) =>
|
|
92
|
+
.then((comp) => {
|
|
93
|
+
if (close) {
|
|
94
|
+
return Promise.all([comp, close(true)]);
|
|
95
|
+
}
|
|
96
|
+
return Promise.resolve([comp, null]);
|
|
97
|
+
})
|
|
98
|
+
.then(([comp]) => {
|
|
99
|
+
return resolve(comp);
|
|
100
|
+
})
|
|
85
101
|
.catch((err) => {
|
|
86
102
|
reject(err);
|
|
87
103
|
})
|
|
88
104
|
.finally(() => {
|
|
89
105
|
cleanup();
|
|
90
|
-
close === null || close === void 0 ? void 0 : close();
|
|
91
106
|
cleanupPageError();
|
|
107
|
+
// Clean download map if it was not passed in
|
|
108
|
+
if (!(config === null || config === void 0 ? void 0 : config.downloadMap)) {
|
|
109
|
+
(0, download_map_1.cleanDownloadMap)(downloadMap);
|
|
110
|
+
}
|
|
92
111
|
});
|
|
93
112
|
});
|
|
94
113
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const getActualConcurrency: (userPreference: number | null) => number;
|
|
1
|
+
export declare const getActualConcurrency: (userPreference: number | string | null) => number;
|
package/dist/get-concurrency.js
CHANGED
|
@@ -9,9 +9,16 @@ const getActualConcurrency = (userPreference) => {
|
|
|
9
9
|
if (userPreference === null) {
|
|
10
10
|
return Math.round(Math.min(8, Math.max(1, os_1.default.cpus().length / 2)));
|
|
11
11
|
}
|
|
12
|
-
const rounded = Math.floor(userPreference);
|
|
13
12
|
const max = os_1.default.cpus().length;
|
|
14
13
|
const min = 1;
|
|
14
|
+
let rounded;
|
|
15
|
+
if (typeof userPreference === 'string') {
|
|
16
|
+
const percentage = parseInt(userPreference.slice(0, -1), 10);
|
|
17
|
+
rounded = Math.floor((percentage / 100) * max);
|
|
18
|
+
}
|
|
19
|
+
else {
|
|
20
|
+
rounded = Math.floor(userPreference);
|
|
21
|
+
}
|
|
15
22
|
if (rounded > max) {
|
|
16
23
|
throw new Error(`Maximum for --concurrency is ${max} (number of cores on this system)`);
|
|
17
24
|
}
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
|
|
2
|
-
export declare const getDurationFromFrameRange: (frameRange: FrameRange | null, durationInFrames: number) => number;
|
|
1
|
+
export declare const getFramesToRender: (frameRange: [number, number], everyNthFrame: number) => number[];
|
|
@@ -1,13 +1,17 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
const
|
|
5
|
-
if (
|
|
6
|
-
|
|
3
|
+
exports.getFramesToRender = void 0;
|
|
4
|
+
const getFramesToRender = (frameRange, everyNthFrame) => {
|
|
5
|
+
if (everyNthFrame === 0) {
|
|
6
|
+
throw new Error('everyNthFrame cannot be 0');
|
|
7
7
|
}
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
8
|
+
return new Array(frameRange[1] - frameRange[0] + 1)
|
|
9
|
+
.fill(true)
|
|
10
|
+
.map((_, index) => {
|
|
11
|
+
return index + frameRange[0];
|
|
12
|
+
})
|
|
13
|
+
.filter((index) => {
|
|
14
|
+
return index % everyNthFrame === 0;
|
|
15
|
+
});
|
|
12
16
|
};
|
|
13
|
-
exports.
|
|
17
|
+
exports.getFramesToRender = getFramesToRender;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { Codec } from '
|
|
2
|
-
export declare const getFileExtensionFromCodec: (codec: Codec
|
|
1
|
+
import type { Codec } from './codec';
|
|
2
|
+
export declare const getFileExtensionFromCodec: (codec: Codec) => "mp3" | "aac" | "wav" | "gif" | "webm" | "mp4" | "mov" | "mkv";
|
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getFileExtensionFromCodec = void 0;
|
|
4
|
-
const
|
|
4
|
+
const codec_1 = require("./codec");
|
|
5
|
+
const getFileExtensionFromCodec = (codec) => {
|
|
6
|
+
if (!codec_1.validCodecs.includes(codec)) {
|
|
7
|
+
throw new Error(`Codec must be one of the following: ${codec_1.validCodecs.join(', ')}, but got ${codec}`);
|
|
8
|
+
}
|
|
5
9
|
switch (codec) {
|
|
6
10
|
case 'aac':
|
|
7
11
|
return 'aac';
|
|
@@ -9,10 +13,7 @@ const getFileExtensionFromCodec = (codec, type) => {
|
|
|
9
13
|
return 'mp4';
|
|
10
14
|
// The chunks will be rendered as mkv, but the final output will still be MP4
|
|
11
15
|
case 'h264-mkv':
|
|
12
|
-
|
|
13
|
-
return 'mkv';
|
|
14
|
-
}
|
|
15
|
-
return 'mp4';
|
|
16
|
+
return 'mkv';
|
|
16
17
|
case 'h265':
|
|
17
18
|
return 'mp4';
|
|
18
19
|
case 'mp3':
|
|
@@ -23,6 +24,8 @@ const getFileExtensionFromCodec = (codec, type) => {
|
|
|
23
24
|
return 'webm';
|
|
24
25
|
case 'vp9':
|
|
25
26
|
return 'webm';
|
|
27
|
+
case 'gif':
|
|
28
|
+
return 'gif';
|
|
26
29
|
case 'wav':
|
|
27
30
|
return 'wav';
|
|
28
31
|
default:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const getExtensionOfFilename: (filename: string) => string | null;
|
|
1
|
+
export declare const getExtensionOfFilename: (filename: string | null) => string | null;
|
|
@@ -1,8 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
6
|
exports.getExtensionOfFilename = void 0;
|
|
7
|
+
const path_1 = __importDefault(require("path"));
|
|
4
8
|
const getExtensionOfFilename = (filename) => {
|
|
5
|
-
|
|
9
|
+
if (filename === null) {
|
|
10
|
+
return null;
|
|
11
|
+
}
|
|
12
|
+
const filenameArr = path_1.default.normalize(filename).split('.');
|
|
6
13
|
const hasExtension = filenameArr.length >= 2;
|
|
7
14
|
const filenameArrLength = filenameArr.length;
|
|
8
15
|
const extension = hasExtension ? filenameArr[filenameArrLength - 1] : null;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import type { OffthreadVideoImageFormat } from 'remotion';
|
|
3
|
+
import type { SpecialVCodecForTransparency } from './assets/download-map';
|
|
4
|
+
import type { FfmpegExecutable } from './ffmpeg-executable';
|
|
5
|
+
export declare const getFrameOfVideoSlow: ({ src, duration, ffmpegExecutable, imageFormat, specialVCodecForTransparency, needsResize, offset, fps, remotionRoot, }: {
|
|
6
|
+
ffmpegExecutable: FfmpegExecutable;
|
|
7
|
+
src: string;
|
|
8
|
+
duration: number;
|
|
9
|
+
imageFormat: OffthreadVideoImageFormat;
|
|
10
|
+
specialVCodecForTransparency: SpecialVCodecForTransparency;
|
|
11
|
+
needsResize: [number, number] | null;
|
|
12
|
+
offset: number;
|
|
13
|
+
fps: number | null;
|
|
14
|
+
remotionRoot: string;
|
|
15
|
+
}) => Promise<Buffer>;
|