@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,94 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.mimeContentType = exports.mimeLookup = exports.getExt = void 0;
|
|
4
|
+
const path_1 = require("path");
|
|
5
|
+
const mime_db_1 = require("./mime-db");
|
|
6
|
+
const extensions = {};
|
|
7
|
+
const types = {};
|
|
8
|
+
// Populate the extensions/types maps
|
|
9
|
+
populateMaps(extensions, {});
|
|
10
|
+
const getExt = (contentType) => {
|
|
11
|
+
var _a, _b, _c;
|
|
12
|
+
return (_c = (_b = (_a = mime_db_1.mimeDb[contentType.toLowerCase()]) === null || _a === void 0 ? void 0 : _a.extensions) === null || _b === void 0 ? void 0 : _b[0]) !== null && _c !== void 0 ? _c : null;
|
|
13
|
+
};
|
|
14
|
+
exports.getExt = getExt;
|
|
15
|
+
function mimeLookup(path) {
|
|
16
|
+
if (!path || typeof path !== 'string') {
|
|
17
|
+
return false;
|
|
18
|
+
}
|
|
19
|
+
// get the extension ("ext" or ".ext" or full path)
|
|
20
|
+
const ext = (0, path_1.extname)('.' + path)
|
|
21
|
+
.toLowerCase()
|
|
22
|
+
.substr(1);
|
|
23
|
+
if (!ext) {
|
|
24
|
+
return false;
|
|
25
|
+
}
|
|
26
|
+
return types[ext] || false;
|
|
27
|
+
}
|
|
28
|
+
exports.mimeLookup = mimeLookup;
|
|
29
|
+
/**
|
|
30
|
+
* Populate the extensions and types maps.
|
|
31
|
+
* @private
|
|
32
|
+
*/
|
|
33
|
+
function populateMaps(exts, _types) {
|
|
34
|
+
// source preference (least -> most)
|
|
35
|
+
const preference = ['nginx', 'apache', undefined, 'iana'];
|
|
36
|
+
Object.keys(mime_db_1.mimeDb).forEach((type) => {
|
|
37
|
+
const mime = mime_db_1.mimeDb[type];
|
|
38
|
+
const _exts = mime.extensions;
|
|
39
|
+
if (!_exts || !_exts.length) {
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
// mime -> extensions
|
|
43
|
+
exts[type] = _exts;
|
|
44
|
+
// extension -> mime
|
|
45
|
+
for (let i = 0; i < _exts.length; i++) {
|
|
46
|
+
const _ext = _exts[i];
|
|
47
|
+
if (_types[_ext]) {
|
|
48
|
+
const from = preference.indexOf(mime_db_1.mimeDb[_types[_ext]].source);
|
|
49
|
+
const to = preference.indexOf(mime.source);
|
|
50
|
+
if (_types[_ext] !== 'application/octet-stream' &&
|
|
51
|
+
(from > to ||
|
|
52
|
+
(from === to && _types[_ext].substr(0, 12) === 'application/'))) {
|
|
53
|
+
// skip the remapping
|
|
54
|
+
continue;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
// set the extension -> mime
|
|
58
|
+
types[_ext] = type;
|
|
59
|
+
}
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
function mimeContentType(str) {
|
|
63
|
+
if (!str || typeof str !== 'string') {
|
|
64
|
+
return false;
|
|
65
|
+
}
|
|
66
|
+
let mime = str.indexOf('/') === -1 ? mimeLookup(str) : str;
|
|
67
|
+
if (!mime) {
|
|
68
|
+
return false;
|
|
69
|
+
}
|
|
70
|
+
if (mime.indexOf('charset') === -1) {
|
|
71
|
+
const _charset = charset(mime);
|
|
72
|
+
if (_charset)
|
|
73
|
+
mime += '; charset=' + _charset.toLowerCase();
|
|
74
|
+
}
|
|
75
|
+
return mime;
|
|
76
|
+
}
|
|
77
|
+
exports.mimeContentType = mimeContentType;
|
|
78
|
+
const EXTRACT_TYPE_REGEXP = /^\s*([^;\s]*)(?:;|\s|$)/;
|
|
79
|
+
const TEXT_TYPE_REGEXP = /^text\//i;
|
|
80
|
+
function charset(type) {
|
|
81
|
+
if (!type || typeof type !== 'string') {
|
|
82
|
+
return false;
|
|
83
|
+
}
|
|
84
|
+
const match = EXTRACT_TYPE_REGEXP.exec(type);
|
|
85
|
+
const mime = match && mime_db_1.mimeDb[match[1].toLowerCase()];
|
|
86
|
+
if (mime === null || mime === void 0 ? void 0 : mime.charset) {
|
|
87
|
+
return mime.charset;
|
|
88
|
+
}
|
|
89
|
+
// default text/* to utf-8
|
|
90
|
+
if (match && TEXT_TYPE_REGEXP.test(match[1])) {
|
|
91
|
+
return 'UTF-8';
|
|
92
|
+
}
|
|
93
|
+
return false;
|
|
94
|
+
}
|
|
File without changes
|
|
File without changes
|
|
@@ -1,14 +1,18 @@
|
|
|
1
|
-
import { RequestListener } from 'http';
|
|
2
|
-
import {
|
|
3
|
-
import { RenderMediaOnDownload } from './assets/download-and-map-assets-to-file';
|
|
1
|
+
import type { RequestListener } from 'http';
|
|
2
|
+
import type { OffthreadVideoImageFormat } 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 { FfmpegExecutable } from './ffmpeg-executable';
|
|
4
6
|
export declare const extractUrlAndSourceFromUrl: (url: string) => {
|
|
5
7
|
src: string;
|
|
6
8
|
time: number;
|
|
9
|
+
imageFormat: OffthreadVideoImageFormat;
|
|
7
10
|
};
|
|
8
|
-
export declare const startOffthreadVideoServer: ({ ffmpegExecutable, ffprobeExecutable,
|
|
11
|
+
export declare const startOffthreadVideoServer: ({ ffmpegExecutable, ffprobeExecutable, onDownload, onError, downloadMap, remotionRoot, }: {
|
|
9
12
|
ffmpegExecutable: FfmpegExecutable;
|
|
10
13
|
ffprobeExecutable: FfmpegExecutable;
|
|
11
|
-
downloadDir: string;
|
|
12
14
|
onDownload: RenderMediaOnDownload;
|
|
13
15
|
onError: (err: Error) => void;
|
|
16
|
+
downloadMap: DownloadMap;
|
|
17
|
+
remotionRoot: string;
|
|
14
18
|
}) => RequestListener;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.startOffthreadVideoServer = exports.extractUrlAndSourceFromUrl = void 0;
|
|
4
|
+
const remotion_1 = require("remotion");
|
|
4
5
|
const url_1 = require("url");
|
|
5
6
|
const download_and_map_assets_to_file_1 = require("./assets/download-and-map-assets-to-file");
|
|
6
7
|
const extract_frame_from_video_1 = require("./extract-frame-from-video");
|
|
@@ -19,10 +20,19 @@ const extractUrlAndSourceFromUrl = (url) => {
|
|
|
19
20
|
if (!time) {
|
|
20
21
|
throw new Error('Did not get `time` parameter');
|
|
21
22
|
}
|
|
22
|
-
|
|
23
|
+
const imageFormat = params.get('imageFormat');
|
|
24
|
+
if (!imageFormat) {
|
|
25
|
+
throw new TypeError('Did not get `imageFormat` parameter');
|
|
26
|
+
}
|
|
27
|
+
remotion_1.Internals.validateOffthreadVideoImageFormat(imageFormat);
|
|
28
|
+
return {
|
|
29
|
+
src,
|
|
30
|
+
time: parseFloat(time),
|
|
31
|
+
imageFormat: imageFormat,
|
|
32
|
+
};
|
|
23
33
|
};
|
|
24
34
|
exports.extractUrlAndSourceFromUrl = extractUrlAndSourceFromUrl;
|
|
25
|
-
const startOffthreadVideoServer = ({ ffmpegExecutable, ffprobeExecutable,
|
|
35
|
+
const startOffthreadVideoServer = ({ ffmpegExecutable, ffprobeExecutable, onDownload, onError, downloadMap, remotionRoot, }) => {
|
|
26
36
|
return (req, res) => {
|
|
27
37
|
if (!req.url) {
|
|
28
38
|
throw new Error('Request came in without URL');
|
|
@@ -32,20 +42,30 @@ const startOffthreadVideoServer = ({ ffmpegExecutable, ffprobeExecutable, downlo
|
|
|
32
42
|
res.end();
|
|
33
43
|
return;
|
|
34
44
|
}
|
|
45
|
+
const { src, time, imageFormat } = (0, exports.extractUrlAndSourceFromUrl)(req.url);
|
|
35
46
|
res.setHeader('access-control-allow-origin', '*');
|
|
36
|
-
res.setHeader('content-type', '
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
47
|
+
res.setHeader('content-type', `image/${imageFormat === 'jpeg' ? 'jpg' : 'png'}`);
|
|
48
|
+
// Handling this case on Lambda:
|
|
49
|
+
// https://support.google.com/chrome/a/answer/7679408?hl=en
|
|
50
|
+
// Chrome sends Private Network Access preflights for subresources
|
|
51
|
+
if (req.method === 'OPTIONS') {
|
|
52
|
+
res.statusCode = 200;
|
|
53
|
+
if (req.headers['access-control-request-private-network']) {
|
|
54
|
+
res.setHeader('Access-Control-Allow-Private-Network', 'true');
|
|
55
|
+
}
|
|
56
|
+
res.end();
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
(0, download_and_map_assets_to_file_1.downloadAsset)({ src, onDownload, downloadMap })
|
|
60
|
+
.then((to) => {
|
|
44
61
|
return (0, extract_frame_from_video_1.extractFrameFromVideo)({
|
|
45
62
|
time,
|
|
46
63
|
src: to,
|
|
47
64
|
ffmpegExecutable,
|
|
48
65
|
ffprobeExecutable,
|
|
66
|
+
imageFormat,
|
|
67
|
+
downloadMap,
|
|
68
|
+
remotionRoot,
|
|
49
69
|
});
|
|
50
70
|
})
|
|
51
71
|
.then((readable) => {
|
package/dist/open-browser.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { Browser } from '
|
|
1
|
+
import type { Browser } from './browser';
|
|
2
|
+
import type { Browser as PuppeteerBrowser } from './browser/Browser';
|
|
3
|
+
import type { Viewport } from './browser/PuppeteerViewport';
|
|
3
4
|
declare const validRenderers: readonly ["swangle", "angle", "egl", "swiftshader"];
|
|
4
5
|
declare type OpenGlRenderer = typeof validRenderers[number];
|
|
5
6
|
export declare type ChromiumOptions = {
|
|
@@ -14,5 +15,6 @@ export declare const openBrowser: (browser: Browser, options?: {
|
|
|
14
15
|
browserExecutable?: string | null;
|
|
15
16
|
chromiumOptions?: ChromiumOptions;
|
|
16
17
|
forceDeviceScaleFactor?: number;
|
|
17
|
-
|
|
18
|
+
viewport?: Viewport;
|
|
19
|
+
}) => Promise<PuppeteerBrowser>;
|
|
18
20
|
export {};
|
package/dist/open-browser.js
CHANGED
|
@@ -1,19 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
3
|
exports.openBrowser = exports.killAllBrowsers = void 0;
|
|
7
|
-
const
|
|
8
|
-
const os_1 = __importDefault(require("os"));
|
|
9
|
-
const path_1 = __importDefault(require("path"));
|
|
10
|
-
const puppeteer_core_1 = __importDefault(require("puppeteer-core"));
|
|
11
|
-
const remotion_1 = require("remotion");
|
|
4
|
+
const node_1 = require("./browser/node");
|
|
12
5
|
const get_local_browser_executable_1 = require("./get-local-browser-executable");
|
|
6
|
+
const get_video_threads_flag_1 = require("./get-video-threads-flag");
|
|
7
|
+
const validate_opengl_renderer_1 = require("./validate-opengl-renderer");
|
|
13
8
|
const validRenderers = ['swangle', 'angle', 'egl', 'swiftshader'];
|
|
14
9
|
const getOpenGlRenderer = (option) => {
|
|
15
|
-
const renderer = option !== null && option !== void 0 ? option :
|
|
16
|
-
|
|
10
|
+
const renderer = option !== null && option !== void 0 ? option : validate_opengl_renderer_1.DEFAULT_OPENGL_RENDERER;
|
|
11
|
+
(0, validate_opengl_renderer_1.validateOpenGlRenderer)(renderer);
|
|
17
12
|
if (renderer === 'swangle') {
|
|
18
13
|
return [`--use-gl=angle`, `--use-angle=swiftshader`];
|
|
19
14
|
}
|
|
@@ -26,25 +21,24 @@ const browserInstances = [];
|
|
|
26
21
|
const killAllBrowsers = async () => {
|
|
27
22
|
for (const browser of browserInstances) {
|
|
28
23
|
try {
|
|
29
|
-
await browser.close();
|
|
24
|
+
await browser.close(true);
|
|
30
25
|
}
|
|
31
26
|
catch (err) { }
|
|
32
27
|
}
|
|
33
28
|
};
|
|
34
29
|
exports.killAllBrowsers = killAllBrowsers;
|
|
35
30
|
const openBrowser = async (browser, options) => {
|
|
36
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j;
|
|
37
|
-
if (browser === 'firefox'
|
|
31
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
|
|
32
|
+
if (browser === 'firefox') {
|
|
38
33
|
throw new TypeError('Firefox supported is not yet turned on. Stay tuned for the future.');
|
|
39
34
|
}
|
|
40
35
|
await (0, get_local_browser_executable_1.ensureLocalBrowser)(browser, (_a = options === null || options === void 0 ? void 0 : options.browserExecutable) !== null && _a !== void 0 ? _a : null);
|
|
41
36
|
const executablePath = (0, get_local_browser_executable_1.getLocalBrowserExecutable)(browser, (_b = options === null || options === void 0 ? void 0 : options.browserExecutable) !== null && _b !== void 0 ? _b : null);
|
|
42
37
|
const customGlRenderer = getOpenGlRenderer((_d = (_c = options === null || options === void 0 ? void 0 : options.chromiumOptions) === null || _c === void 0 ? void 0 : _c.gl) !== null && _d !== void 0 ? _d : null);
|
|
43
|
-
const browserInstance = await
|
|
38
|
+
const browserInstance = await node_1.puppeteer.launch({
|
|
44
39
|
executablePath,
|
|
45
40
|
product: browser,
|
|
46
41
|
dumpio: (_e = options === null || options === void 0 ? void 0 : options.shouldDumpIo) !== null && _e !== void 0 ? _e : false,
|
|
47
|
-
ignoreDefaultArgs: true,
|
|
48
42
|
args: [
|
|
49
43
|
'about:blank',
|
|
50
44
|
'--allow-pre-commit-input',
|
|
@@ -57,14 +51,11 @@ const openBrowser = async (browser, options) => {
|
|
|
57
51
|
'--disable-component-extensions-with-background-pages',
|
|
58
52
|
'--disable-default-apps',
|
|
59
53
|
'--disable-dev-shm-usage',
|
|
60
|
-
'--disable-extensions',
|
|
61
54
|
'--no-proxy-server',
|
|
62
55
|
"--proxy-server='direct://'",
|
|
63
56
|
'--proxy-bypass-list=*',
|
|
64
|
-
// TODO: remove AvoidUnnecessaryBeforeUnloadCheckSync below
|
|
65
|
-
// once crbug.com/1324138 is fixed and released.
|
|
66
|
-
'--disable-features=Translate,BackForwardCache,AvoidUnnecessaryBeforeUnloadCheckSync',
|
|
67
57
|
'--disable-hang-monitor',
|
|
58
|
+
'--disable-extensions',
|
|
68
59
|
'--disable-ipc-flooding-protection',
|
|
69
60
|
'--disable-popup-blocking',
|
|
70
61
|
'--disable-prompt-on-repost',
|
|
@@ -73,12 +64,10 @@ const openBrowser = async (browser, options) => {
|
|
|
73
64
|
'--force-color-profile=srgb',
|
|
74
65
|
'--metrics-recording-only',
|
|
75
66
|
'--no-first-run',
|
|
76
|
-
'--video-threads=
|
|
67
|
+
'--video-threads=' + (0, get_video_threads_flag_1.getIdealVideoThreadsFlag)(),
|
|
77
68
|
'--enable-automation',
|
|
78
69
|
'--password-store=basic',
|
|
79
70
|
'--use-mock-keychain',
|
|
80
|
-
// TODO(sadym): remove '--enable-blink-features=IdleDetection'
|
|
81
|
-
// once IdleDetection is turned on by default.
|
|
82
71
|
'--enable-blink-features=IdleDetection',
|
|
83
72
|
'--export-tagged-pdf',
|
|
84
73
|
'--intensive-wake-up-throttling-policy=0',
|
|
@@ -91,7 +80,7 @@ const openBrowser = async (browser, options) => {
|
|
|
91
80
|
'--allow-running-insecure-content',
|
|
92
81
|
'--disable-component-update',
|
|
93
82
|
'--disable-domain-reliability',
|
|
94
|
-
'--disable-features=AudioServiceOutOfProcess,IsolateOrigins,site-per-process',
|
|
83
|
+
'--disable-features=AudioServiceOutOfProcess,IsolateOrigins,site-per-process,Translate,BackForwardCache,AvoidUnnecessaryBeforeUnloadCheckSync,IntensiveWakeUpThrottling',
|
|
95
84
|
'--disable-print-preview',
|
|
96
85
|
'--disable-site-isolation-trials',
|
|
97
86
|
'--disk-cache-size=268435456',
|
|
@@ -107,13 +96,14 @@ const openBrowser = async (browser, options) => {
|
|
|
107
96
|
? '--ignore-certificate-errors'
|
|
108
97
|
: null,
|
|
109
98
|
...(((_j = options === null || options === void 0 ? void 0 : options.chromiumOptions) === null || _j === void 0 ? void 0 : _j.disableWebSecurity)
|
|
110
|
-
? [
|
|
111
|
-
'--disable-web-security',
|
|
112
|
-
'--user-data-dir=' +
|
|
113
|
-
(await fs_1.default.promises.mkdtemp(path_1.default.join(os_1.default.tmpdir(), 'chrome-user-dir'))),
|
|
114
|
-
]
|
|
99
|
+
? ['--disable-web-security']
|
|
115
100
|
: []),
|
|
116
101
|
].filter(Boolean),
|
|
102
|
+
defaultViewport: (_k = options === null || options === void 0 ? void 0 : options.viewport) !== null && _k !== void 0 ? _k : {
|
|
103
|
+
height: 720,
|
|
104
|
+
width: 1280,
|
|
105
|
+
deviceScaleFactor: 1,
|
|
106
|
+
},
|
|
117
107
|
});
|
|
118
108
|
const pages = await browserInstance.pages();
|
|
119
109
|
await pages[0].close();
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const DEFAULT_OVERWRITE = true;
|
package/dist/p-limit.d.ts
CHANGED
|
File without changes
|
package/dist/p-limit.js
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
package/dist/perf.d.ts
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
declare type PerfId = 'activate-target' | 'capture' | 'save' | 'extract-frame' | 'piping';
|
|
2
|
+
export declare const startPerfMeasure: (marker: PerfId) => number;
|
|
3
|
+
export declare const stopPerfMeasure: (id: number) => void;
|
|
4
|
+
export declare const logPerf: () => void;
|
|
5
|
+
export {};
|
package/dist/perf.js
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.logPerf = exports.stopPerfMeasure = exports.startPerfMeasure = void 0;
|
|
4
|
+
const perf = {
|
|
5
|
+
'activate-target': [],
|
|
6
|
+
capture: [],
|
|
7
|
+
save: [],
|
|
8
|
+
'extract-frame': [],
|
|
9
|
+
piping: [],
|
|
10
|
+
};
|
|
11
|
+
const map = {};
|
|
12
|
+
const startPerfMeasure = (marker) => {
|
|
13
|
+
const id = Math.random();
|
|
14
|
+
map[id] = {
|
|
15
|
+
id,
|
|
16
|
+
marker,
|
|
17
|
+
start: Date.now(),
|
|
18
|
+
};
|
|
19
|
+
return id;
|
|
20
|
+
};
|
|
21
|
+
exports.startPerfMeasure = startPerfMeasure;
|
|
22
|
+
const stopPerfMeasure = (id) => {
|
|
23
|
+
const now = Date.now();
|
|
24
|
+
const diff = now - map[id].start;
|
|
25
|
+
perf[map[id].marker].push(diff);
|
|
26
|
+
delete map[id];
|
|
27
|
+
};
|
|
28
|
+
exports.stopPerfMeasure = stopPerfMeasure;
|
|
29
|
+
const logPerf = () => {
|
|
30
|
+
console.log('Render performance:');
|
|
31
|
+
Object.keys(perf).forEach((p) => {
|
|
32
|
+
console.log(` ${p} => ${perf[p].reduce((a, b) => a + b, 0) / perf[p].length} (n = ${perf[p].length})`);
|
|
33
|
+
});
|
|
34
|
+
};
|
|
35
|
+
exports.logPerf = logPerf;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { Codec } from './codec';
|
|
2
|
+
export declare const validPixelFormats: readonly ["yuv420p", "yuva420p", "yuv422p", "yuv444p", "yuv420p10le", "yuv422p10le", "yuv444p10le", "yuva444p10le"];
|
|
3
|
+
export declare type PixelFormat = typeof validPixelFormats[number];
|
|
4
|
+
export declare const DEFAULT_PIXEL_FORMAT: PixelFormat;
|
|
5
|
+
export declare const validateSelectedPixelFormatAndCodecCombination: (pixelFormat: PixelFormat | undefined, codec: Codec) => undefined;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.validateSelectedPixelFormatAndCodecCombination = exports.DEFAULT_PIXEL_FORMAT = exports.validPixelFormats = void 0;
|
|
4
|
+
exports.validPixelFormats = [
|
|
5
|
+
'yuv420p',
|
|
6
|
+
'yuva420p',
|
|
7
|
+
'yuv422p',
|
|
8
|
+
'yuv444p',
|
|
9
|
+
'yuv420p10le',
|
|
10
|
+
'yuv422p10le',
|
|
11
|
+
'yuv444p10le',
|
|
12
|
+
'yuva444p10le',
|
|
13
|
+
];
|
|
14
|
+
exports.DEFAULT_PIXEL_FORMAT = 'yuv420p';
|
|
15
|
+
const validateSelectedPixelFormatAndCodecCombination = (pixelFormat, codec) => {
|
|
16
|
+
if (typeof pixelFormat === 'undefined') {
|
|
17
|
+
return pixelFormat;
|
|
18
|
+
}
|
|
19
|
+
if (!exports.validPixelFormats.includes(pixelFormat)) {
|
|
20
|
+
throw new TypeError(`Value ${pixelFormat} is not valid as a pixel format.`);
|
|
21
|
+
}
|
|
22
|
+
if (pixelFormat !== 'yuva420p') {
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
if (codec !== 'vp8' && codec !== 'vp9') {
|
|
26
|
+
throw new TypeError("Pixel format was set to 'yuva420p' but codec is not 'vp8' or 'vp9'. To render videos with alpha channel, you must choose a codec that supports it.");
|
|
27
|
+
}
|
|
28
|
+
};
|
|
29
|
+
exports.validateSelectedPixelFormatAndCodecCombination = validateSelectedPixelFormatAndCodecCombination;
|
package/dist/pool.d.ts
CHANGED
|
File without changes
|
package/dist/pool.js
CHANGED
|
File without changes
|
package/dist/prepare-server.d.ts
CHANGED
|
@@ -1,15 +1,17 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
|
|
1
|
+
import type { RenderMediaOnDownload } from './assets/download-and-map-assets-to-file';
|
|
2
|
+
import type { DownloadMap } from './assets/download-map';
|
|
3
|
+
import type { FfmpegExecutable } from './ffmpeg-executable';
|
|
4
|
+
export declare const prepareServer: ({ ffmpegExecutable, ffprobeExecutable, onDownload, onError, webpackConfigOrServeUrl, port, downloadMap, remotionRoot, }: {
|
|
4
5
|
webpackConfigOrServeUrl: string;
|
|
5
|
-
downloadDir: string;
|
|
6
6
|
onDownload: RenderMediaOnDownload;
|
|
7
7
|
onError: (err: Error) => void;
|
|
8
8
|
ffmpegExecutable: FfmpegExecutable;
|
|
9
9
|
ffprobeExecutable: FfmpegExecutable;
|
|
10
10
|
port: number | null;
|
|
11
|
+
downloadMap: DownloadMap;
|
|
12
|
+
remotionRoot: string;
|
|
11
13
|
}) => Promise<{
|
|
12
14
|
serveUrl: string;
|
|
13
|
-
closeServer: () => Promise<unknown>;
|
|
15
|
+
closeServer: (force: boolean) => Promise<unknown>;
|
|
14
16
|
offthreadPort: number;
|
|
15
17
|
}>;
|
package/dist/prepare-server.js
CHANGED
|
@@ -1,34 +1,53 @@
|
|
|
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.prepareServer = void 0;
|
|
7
|
+
const fs_1 = require("fs");
|
|
8
|
+
const path_1 = __importDefault(require("path"));
|
|
4
9
|
const is_serve_url_1 = require("./is-serve-url");
|
|
5
10
|
const serve_static_1 = require("./serve-static");
|
|
6
|
-
const
|
|
11
|
+
const wait_for_symbolication_error_to_be_done_1 = require("./wait-for-symbolication-error-to-be-done");
|
|
12
|
+
const prepareServer = async ({ ffmpegExecutable, ffprobeExecutable, onDownload, onError, webpackConfigOrServeUrl, port, downloadMap, remotionRoot, }) => {
|
|
7
13
|
if ((0, is_serve_url_1.isServeUrl)(webpackConfigOrServeUrl)) {
|
|
8
14
|
const { port: offthreadPort, close: closeProxy } = await (0, serve_static_1.serveStatic)(null, {
|
|
9
|
-
downloadDir,
|
|
10
15
|
onDownload,
|
|
11
16
|
onError,
|
|
12
17
|
ffmpegExecutable,
|
|
13
18
|
ffprobeExecutable,
|
|
14
19
|
port,
|
|
20
|
+
downloadMap,
|
|
21
|
+
remotionRoot,
|
|
15
22
|
});
|
|
16
23
|
return Promise.resolve({
|
|
17
24
|
serveUrl: webpackConfigOrServeUrl,
|
|
18
|
-
closeServer: () =>
|
|
25
|
+
closeServer: () => {
|
|
26
|
+
return closeProxy();
|
|
27
|
+
},
|
|
19
28
|
offthreadPort,
|
|
20
29
|
});
|
|
21
30
|
}
|
|
31
|
+
// Check if the path has a `index.html` file
|
|
32
|
+
const indexFile = path_1.default.join(webpackConfigOrServeUrl, 'index.html');
|
|
33
|
+
const exists = (0, fs_1.existsSync)(indexFile);
|
|
34
|
+
if (!exists) {
|
|
35
|
+
throw new Error(`Tried to serve the Webpack bundle on a HTTP server, but the file ${indexFile} does not exist. Is this a valid path to a Webpack bundle?`);
|
|
36
|
+
}
|
|
22
37
|
const { port: serverPort, close } = await (0, serve_static_1.serveStatic)(webpackConfigOrServeUrl, {
|
|
23
|
-
downloadDir,
|
|
24
38
|
onDownload,
|
|
25
39
|
onError,
|
|
26
40
|
ffmpegExecutable,
|
|
27
41
|
ffprobeExecutable,
|
|
28
42
|
port,
|
|
43
|
+
downloadMap,
|
|
44
|
+
remotionRoot,
|
|
29
45
|
});
|
|
30
46
|
return Promise.resolve({
|
|
31
|
-
closeServer: () => {
|
|
47
|
+
closeServer: async (force) => {
|
|
48
|
+
if (!force) {
|
|
49
|
+
await (0, wait_for_symbolication_error_to_be_done_1.waitForSymbolicationToBeDone)();
|
|
50
|
+
}
|
|
32
51
|
return close();
|
|
33
52
|
},
|
|
34
53
|
serveUrl: `http://localhost:${serverPort}`,
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { MediaAsset } from './assets/types';
|
|
1
|
+
import type { DownloadMap } from './assets/download-map';
|
|
2
|
+
import type { MediaAsset } from './assets/types';
|
|
3
|
+
import type { FfmpegExecutable } from './ffmpeg-executable';
|
|
3
4
|
declare type Options = {
|
|
4
5
|
ffmpegExecutable: FfmpegExecutable;
|
|
5
6
|
ffprobeExecutable: FfmpegExecutable;
|
|
@@ -7,6 +8,8 @@ declare type Options = {
|
|
|
7
8
|
asset: MediaAsset;
|
|
8
9
|
expectedFrames: number;
|
|
9
10
|
fps: number;
|
|
11
|
+
downloadMap: DownloadMap;
|
|
12
|
+
remotionRoot: string;
|
|
10
13
|
};
|
|
11
14
|
export declare const preprocessAudioTrack: (options: Options) => Promise<string | null>;
|
|
12
15
|
export {};
|
|
@@ -8,10 +8,11 @@ const execa_1 = __importDefault(require("execa"));
|
|
|
8
8
|
const get_audio_channels_1 = require("./assets/get-audio-channels");
|
|
9
9
|
const calculate_ffmpeg_filters_1 = require("./calculate-ffmpeg-filters");
|
|
10
10
|
const ffmpeg_filter_file_1 = require("./ffmpeg-filter-file");
|
|
11
|
+
const ffmpeg_flags_1 = require("./ffmpeg-flags");
|
|
11
12
|
const p_limit_1 = require("./p-limit");
|
|
12
13
|
const resolve_asset_src_1 = require("./resolve-asset-src");
|
|
13
|
-
const preprocessAudioTrackUnlimited = async ({ ffmpegExecutable, ffprobeExecutable, outName, asset, expectedFrames, fps, }) => {
|
|
14
|
-
const { channels, duration } = await (0, get_audio_channels_1.getAudioChannelsAndDuration)((0, resolve_asset_src_1.resolveAssetSrc)(asset.src), ffprobeExecutable);
|
|
14
|
+
const preprocessAudioTrackUnlimited = async ({ ffmpegExecutable, ffprobeExecutable, outName, asset, expectedFrames, fps, downloadMap, remotionRoot, }) => {
|
|
15
|
+
const { channels, duration } = await (0, get_audio_channels_1.getAudioChannelsAndDuration)(downloadMap, (0, resolve_asset_src_1.resolveAssetSrc)(asset.src), ffprobeExecutable, remotionRoot);
|
|
15
16
|
const filter = (0, calculate_ffmpeg_filters_1.calculateFfmpegFilter)({
|
|
16
17
|
asset,
|
|
17
18
|
durationInFrames: expectedFrames,
|
|
@@ -22,7 +23,7 @@ const preprocessAudioTrackUnlimited = async ({ ffmpegExecutable, ffprobeExecutab
|
|
|
22
23
|
if (filter === null) {
|
|
23
24
|
return null;
|
|
24
25
|
}
|
|
25
|
-
const { cleanup, file } = await (0, ffmpeg_filter_file_1.makeFfmpegFilterFile)(filter);
|
|
26
|
+
const { cleanup, file } = await (0, ffmpeg_filter_file_1.makeFfmpegFilterFile)(filter, downloadMap);
|
|
26
27
|
const args = [
|
|
27
28
|
['-i', (0, resolve_asset_src_1.resolveAssetSrc)(asset.src)],
|
|
28
29
|
['-ac', '2'],
|
|
@@ -30,7 +31,7 @@ const preprocessAudioTrackUnlimited = async ({ ffmpegExecutable, ffprobeExecutab
|
|
|
30
31
|
['-c:a', 'pcm_s16le'],
|
|
31
32
|
['-y', outName],
|
|
32
33
|
].flat(2);
|
|
33
|
-
await (0, execa_1.default)(
|
|
34
|
+
await (0, execa_1.default)(await (0, ffmpeg_flags_1.getExecutableBinary)(ffmpegExecutable, remotionRoot, 'ffmpeg'), args);
|
|
34
35
|
cleanup();
|
|
35
36
|
return outName;
|
|
36
37
|
};
|
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
import execa from 'execa';
|
|
2
|
-
import { Codec
|
|
3
|
-
import {
|
|
2
|
+
import type { Codec } from './codec';
|
|
3
|
+
import type { FfmpegExecutable } from './ffmpeg-executable';
|
|
4
|
+
import type { FfmpegOverrideFn } from './ffmpeg-override';
|
|
5
|
+
import type { ImageFormat } from './image-format';
|
|
6
|
+
import type { CancelSignal } from './make-cancel-signal';
|
|
7
|
+
import type { PixelFormat } from './pixel-format';
|
|
8
|
+
import type { ProResProfile } from './prores-profile';
|
|
4
9
|
declare type PreSticherOptions = {
|
|
5
10
|
fps: number;
|
|
6
11
|
width: number;
|
|
@@ -14,9 +19,11 @@ declare type PreSticherOptions = {
|
|
|
14
19
|
verbose: boolean;
|
|
15
20
|
ffmpegExecutable: FfmpegExecutable | undefined;
|
|
16
21
|
imageFormat: ImageFormat;
|
|
22
|
+
ffmpegOverride: FfmpegOverrideFn;
|
|
17
23
|
signal: CancelSignal;
|
|
24
|
+
videoBitrate: string | null;
|
|
18
25
|
};
|
|
19
|
-
export declare const prespawnFfmpeg: (options: PreSticherOptions) => Promise<{
|
|
26
|
+
export declare const prespawnFfmpeg: (options: PreSticherOptions, remotionRoot: string) => Promise<{
|
|
20
27
|
task: execa.ExecaChildProcess<string>;
|
|
21
28
|
getLogs: () => string;
|
|
22
29
|
}>;
|