@remotion/renderer 4.0.0-alpha.4 → 4.0.0-alpha4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE.md +8 -8
- package/README.md +47 -0
- package/client.d.ts +1 -0
- package/client.js +1 -0
- package/dist/assets/calculate-asset-positions.d.ts +0 -0
- package/dist/assets/calculate-asset-positions.js +1 -0
- package/dist/assets/calculate-atempo.d.ts +0 -0
- package/dist/assets/calculate-atempo.js +0 -0
- package/dist/assets/convert-assets-to-file-urls.d.ts +0 -0
- package/dist/assets/convert-assets-to-file-urls.js +0 -0
- package/dist/assets/download-and-map-assets-to-file.d.ts +2 -1
- package/dist/assets/download-and-map-assets-to-file.js +60 -11
- package/dist/assets/download-file.d.ts +7 -5
- package/dist/assets/download-file.js +49 -6
- package/dist/assets/download-map.d.ts +8 -3
- package/dist/assets/download-map.js +8 -4
- package/dist/assets/ffmpeg-volume-expression.d.ts +2 -1
- package/dist/assets/ffmpeg-volume-expression.js +5 -3
- package/dist/assets/flatten-volume-array.d.ts +0 -0
- package/dist/assets/flatten-volume-array.js +0 -0
- package/dist/assets/get-audio-channels.d.ts +1 -1
- package/dist/assets/get-audio-channels.js +5 -4
- package/dist/assets/get-video-stream-duration.d.ts +7 -1
- package/dist/assets/get-video-stream-duration.js +50 -14
- package/dist/assets/read-file.d.ts +0 -0
- package/dist/assets/read-file.js +2 -4
- package/dist/assets/round-volume-to-avoid-stack-overflow.d.ts +0 -0
- package/dist/assets/round-volume-to-avoid-stack-overflow.js +0 -0
- package/dist/assets/sanitize-filename.d.ts +0 -0
- package/dist/assets/sanitize-filename.js +0 -0
- package/dist/assets/sanitize-filepath.d.ts +0 -0
- package/dist/assets/sanitize-filepath.js +0 -0
- package/dist/assets/truncate-utf8-bytes.d.ts +0 -0
- package/dist/assets/truncate-utf8-bytes.js +0 -0
- package/dist/assets/types.d.ts +1 -0
- package/dist/assets/types.js +0 -0
- package/dist/audio-codec.d.ts +27 -0
- package/dist/audio-codec.js +89 -0
- package/dist/browser/Browser.d.ts +4 -2
- package/dist/browser/Browser.js +15 -12
- package/dist/browser/BrowserConnector.d.ts +0 -0
- package/dist/browser/BrowserConnector.js +0 -0
- package/dist/browser/BrowserFetcher.d.ts +16 -63
- package/dist/browser/BrowserFetcher.js +146 -231
- package/dist/browser/BrowserPage.d.ts +8 -2
- package/dist/browser/BrowserPage.js +8 -11
- package/dist/browser/BrowserRunner.d.ts +1 -4
- package/dist/browser/BrowserRunner.js +30 -73
- package/dist/browser/Connection.d.ts +0 -0
- package/dist/browser/Connection.js +1 -1
- package/dist/browser/ConsoleMessage.d.ts +0 -0
- package/dist/browser/ConsoleMessage.js +0 -0
- package/dist/browser/DOMWorld.d.ts +2 -1
- package/dist/browser/DOMWorld.js +8 -1
- package/dist/browser/Errors.d.ts +0 -0
- package/dist/browser/Errors.js +0 -0
- package/dist/browser/EvalTypes.d.ts +0 -0
- package/dist/browser/EvalTypes.js +0 -0
- package/dist/browser/EventEmitter.d.ts +0 -0
- package/dist/browser/EventEmitter.js +0 -0
- package/dist/browser/ExecutionContext.d.ts +0 -0
- package/dist/browser/ExecutionContext.js +0 -0
- package/dist/browser/FrameManager.d.ts +0 -2
- package/dist/browser/FrameManager.js +0 -3
- package/dist/browser/HTTPRequest.d.ts +0 -0
- package/dist/browser/HTTPRequest.js +0 -0
- package/dist/browser/HTTPResponse.d.ts +0 -0
- package/dist/browser/HTTPResponse.js +0 -0
- package/dist/browser/JSHandle.d.ts +0 -0
- package/dist/browser/JSHandle.js +0 -0
- package/dist/browser/LaunchOptions.d.ts +0 -4
- package/dist/browser/LaunchOptions.js +0 -0
- package/dist/browser/Launcher.d.ts +7 -1
- package/dist/browser/Launcher.js +12 -375
- package/dist/browser/LifecycleWatcher.d.ts +0 -0
- package/dist/browser/LifecycleWatcher.js +0 -0
- package/dist/browser/NetworkEventManager.d.ts +0 -0
- package/dist/browser/NetworkEventManager.js +0 -0
- package/dist/browser/NetworkManager.d.ts +0 -0
- package/dist/browser/NetworkManager.js +0 -0
- package/dist/browser/NodeWebSocketTransport.d.ts +0 -0
- package/dist/browser/NodeWebSocketTransport.js +1 -1
- package/dist/browser/Product.d.ts +0 -0
- package/dist/browser/Product.js +0 -0
- package/dist/browser/PuppeteerNode.d.ts +0 -3
- package/dist/browser/PuppeteerNode.js +2 -14
- package/dist/browser/PuppeteerViewport.d.ts +0 -0
- package/dist/browser/PuppeteerViewport.js +0 -0
- package/dist/browser/ScreenshotOptions.d.ts +0 -14
- package/dist/browser/ScreenshotOptions.js +0 -1
- package/dist/browser/Target.d.ts +0 -0
- package/dist/browser/Target.js +0 -0
- package/dist/browser/TaskQueue.d.ts +0 -0
- package/dist/browser/TaskQueue.js +0 -0
- package/dist/browser/TimeoutSettings.d.ts +0 -0
- package/dist/browser/TimeoutSettings.js +0 -0
- package/dist/browser/assert.d.ts +0 -0
- package/dist/browser/assert.js +0 -0
- package/dist/browser/create-browser-fetcher.d.ts +0 -0
- package/dist/browser/create-browser-fetcher.js +34 -90
- package/dist/browser/devtools-commands.d.ts +0 -0
- package/dist/browser/devtools-commands.js +0 -0
- package/dist/browser/devtools-types.d.ts +4 -0
- package/dist/browser/devtools-types.js +0 -0
- package/dist/browser/get-download-destination.d.ts +0 -0
- package/dist/browser/get-download-destination.js +0 -0
- package/dist/browser/mitt/index.d.ts +0 -0
- package/dist/browser/mitt/index.js +0 -0
- package/dist/browser/node.d.ts +0 -0
- package/dist/browser/node.js +0 -0
- package/dist/browser/revisions.d.ts +0 -1
- package/dist/browser/revisions.js +0 -1
- package/dist/browser/util.d.ts +0 -0
- package/dist/browser/util.js +0 -0
- package/dist/browser-executable.d.ts +0 -0
- package/dist/browser-executable.js +0 -0
- package/dist/browser-log.d.ts +0 -0
- package/dist/browser-log.js +0 -0
- package/dist/browser.d.ts +0 -0
- package/dist/browser.js +0 -0
- package/dist/calculate-ffmpeg-filters.d.ts +2 -1
- package/dist/calculate-ffmpeg-filters.js +1 -0
- package/dist/calculate-sar-dar-pixels.d.ts +0 -0
- package/dist/calculate-sar-dar-pixels.js +0 -0
- package/dist/can-use-parallel-encoding.d.ts +0 -0
- package/dist/can-use-parallel-encoding.js +0 -0
- package/dist/check-apple-silicon.d.ts +1 -0
- package/dist/check-apple-silicon.js +55 -0
- package/dist/chunk.d.ts +0 -0
- package/dist/chunk.js +0 -0
- package/dist/client.d.ts +179 -0
- package/dist/client.js +23 -0
- package/dist/codec-supports-media.d.ts +1 -0
- package/dist/codec-supports-media.js +8 -1
- package/dist/codec.d.ts +0 -0
- package/dist/codec.js +0 -0
- package/dist/combine-videos.d.ts +9 -2
- package/dist/combine-videos.js +12 -8
- package/dist/compositor/compose.d.ts +13 -0
- package/dist/compositor/compose.js +47 -0
- package/dist/compositor/get-executable-path.d.ts +1 -0
- package/dist/compositor/get-executable-path.js +47 -0
- package/dist/compositor/payloads.d.ts +41 -0
- package/dist/compositor/payloads.js +2 -0
- package/dist/compress-assets.d.ts +0 -0
- package/dist/compress-assets.js +0 -0
- package/dist/convert-number-of-gif-loops-to-ffmpeg.d.ts +0 -0
- package/dist/convert-number-of-gif-loops-to-ffmpeg.js +0 -0
- package/dist/convert-to-positive-frame-index.d.ts +4 -0
- package/dist/convert-to-positive-frame-index.js +8 -0
- package/dist/create-ffmpeg-complex-filter.d.ts +9 -5
- package/dist/create-ffmpeg-complex-filter.js +8 -4
- package/dist/create-ffmpeg-merge-filter.d.ts +8 -1
- package/dist/create-ffmpeg-merge-filter.js +29 -13
- package/dist/create-silent-audio.d.ts +2 -1
- package/dist/create-silent-audio.js +3 -2
- package/dist/crf.d.ts +5 -1
- package/dist/crf.js +33 -6
- package/dist/cycle-browser-tabs.d.ts +2 -5
- package/dist/cycle-browser-tabs.js +5 -5
- package/dist/delay-render-embedded-stack.d.ts +0 -0
- package/dist/delay-render-embedded-stack.js +0 -0
- package/dist/delete-directory.d.ts +1 -1
- package/dist/delete-directory.js +31 -5
- package/dist/determine-resize-params.d.ts +1 -0
- package/dist/determine-resize-params.js +10 -0
- package/dist/determine-vcodec-ffmpeg-flags.d.ts +2 -0
- package/dist/determine-vcodec-ffmpeg-flags.js +13 -0
- package/dist/does-have-m2-bug.d.ts +3 -0
- package/dist/does-have-m2-bug.js +12 -0
- package/dist/ensure-ffmpeg.d.ts +18 -0
- package/dist/ensure-ffmpeg.js +58 -0
- package/dist/ensure-frames-in-order.d.ts +0 -0
- package/dist/ensure-frames-in-order.js +0 -0
- package/dist/ensure-output-directory.d.ts +0 -0
- package/dist/ensure-output-directory.js +0 -0
- package/dist/ensure-presentation-timestamp.d.ts +14 -1
- package/dist/ensure-presentation-timestamp.js +36 -17
- package/dist/error-handling/handle-javascript-exception.d.ts +0 -0
- package/dist/error-handling/handle-javascript-exception.js +10 -0
- package/dist/error-handling/symbolicate-error.d.ts +0 -0
- package/dist/error-handling/symbolicate-error.js +2 -1
- package/dist/error-handling/symbolicateable-error.d.ts +0 -0
- package/dist/error-handling/symbolicateable-error.js +0 -0
- package/dist/extract-frame-from-video.d.ts +2 -0
- package/dist/extract-frame-from-video.js +47 -110
- package/dist/ffmpeg-executable.d.ts +0 -0
- package/dist/ffmpeg-executable.js +0 -0
- package/dist/ffmpeg-filter-file.d.ts +6 -1
- package/dist/ffmpeg-filter-file.js +36 -4
- package/dist/ffmpeg-flags.d.ts +20 -2
- package/dist/ffmpeg-flags.js +205 -9
- package/dist/ffmpeg-override.d.ts +4 -0
- package/dist/ffmpeg-override.js +2 -0
- package/dist/file-extensions.d.ts +25 -0
- package/dist/file-extensions.js +88 -0
- package/dist/find-closest-package-json.d.ts +2 -0
- package/dist/find-closest-package-json.js +31 -0
- package/dist/frame-range.d.ts +0 -0
- package/dist/frame-range.js +0 -0
- package/dist/frame-to-ffmpeg-timestamp.d.ts +0 -0
- package/dist/frame-to-ffmpeg-timestamp.js +0 -0
- package/dist/get-browser-instance.d.ts +0 -0
- package/dist/get-browser-instance.js +1 -1
- package/dist/get-can-extract-frames-fast.d.ts +14 -0
- package/dist/get-can-extract-frames-fast.js +71 -0
- package/dist/get-codec-name.d.ts +0 -0
- package/dist/get-codec-name.js +0 -0
- package/dist/get-compositions.d.ts +4 -0
- package/dist/get-compositions.js +26 -7
- package/dist/get-concurrency.d.ts +1 -1
- package/dist/get-concurrency.js +8 -1
- package/dist/get-duration-from-frame-range.d.ts +0 -0
- package/dist/get-duration-from-frame-range.js +0 -0
- package/dist/get-extension-from-codec.d.ts +5 -1
- package/dist/get-extension-from-codec.js +56 -32
- package/dist/get-extension-of-filename.d.ts +0 -0
- package/dist/get-extension-of-filename.js +5 -1
- package/dist/get-frame-of-video-slow.d.ts +15 -0
- package/dist/get-frame-of-video-slow.js +72 -0
- package/dist/get-frame-padded-index.d.ts +1 -1
- package/dist/get-frame-padded-index.js +3 -2
- package/dist/get-frame-to-render.d.ts +0 -0
- package/dist/get-frame-to-render.js +1 -1
- package/dist/get-local-browser-executable.d.ts +0 -0
- package/dist/get-local-browser-executable.js +4 -14
- package/dist/get-port.d.ts +4 -1
- package/dist/get-port.js +8 -8
- package/dist/get-prores-profile-name.d.ts +0 -0
- package/dist/get-prores-profile-name.js +0 -0
- package/dist/get-video-info.d.ts +6 -1
- package/dist/get-video-info.js +19 -9
- package/dist/get-video-threads-flag.d.ts +0 -0
- package/dist/get-video-threads-flag.js +0 -0
- package/dist/guess-extension-for-media.d.ts +5 -1
- package/dist/guess-extension-for-media.js +4 -3
- package/dist/image-format.d.ts +1 -1
- package/dist/image-format.js +3 -0
- package/dist/index.d.ts +187 -41
- package/dist/index.js +31 -28
- package/dist/is-audio-codec.d.ts +0 -0
- package/dist/is-audio-codec.js +0 -0
- package/dist/is-beyond-last-frame.d.ts +0 -0
- package/dist/is-beyond-last-frame.js +0 -0
- package/dist/is-serve-url.d.ts +0 -0
- package/dist/is-serve-url.js +0 -0
- package/dist/last-frame-from-video-cache.d.ts +2 -0
- package/dist/last-frame-from-video-cache.js +0 -0
- package/dist/legacy-webpack-config.d.ts +0 -0
- package/dist/legacy-webpack-config.js +0 -0
- package/dist/locks.d.ts +7 -0
- package/dist/locks.js +44 -0
- package/dist/log-level.d.ts +0 -0
- package/dist/log-level.js +0 -0
- package/dist/make-cancel-signal.d.ts +11 -0
- package/dist/make-cancel-signal.js +24 -1
- package/dist/merge-audio-track.d.ts +3 -1
- package/dist/merge-audio-track.js +43 -30
- package/dist/mime-db.d.ts +0 -0
- package/dist/mime-db.js +0 -0
- package/dist/mime-types.d.ts +1 -0
- package/dist/mime-types.js +6 -1
- package/dist/normalize-serve-url.d.ts +0 -0
- package/dist/normalize-serve-url.js +0 -0
- package/dist/offthread-video-server.d.ts +2 -1
- package/dist/offthread-video-server.js +13 -1
- package/dist/open-browser.d.ts +5 -0
- package/dist/open-browser.js +12 -15
- package/dist/overwrite.d.ts +0 -0
- package/dist/overwrite.js +0 -0
- package/dist/p-limit.d.ts +0 -0
- package/dist/p-limit.js +0 -0
- package/dist/parse-browser-error-stack.d.ts +0 -0
- package/dist/parse-browser-error-stack.js +0 -0
- package/dist/parse-ffmpeg-progress.d.ts +0 -0
- package/dist/parse-ffmpeg-progress.js +0 -0
- package/dist/perf.d.ts +0 -0
- package/dist/perf.js +0 -0
- package/dist/pixel-format.d.ts +1 -1
- package/dist/pixel-format.js +3 -0
- package/dist/pool.d.ts +0 -0
- package/dist/pool.js +0 -0
- package/dist/prepare-server.d.ts +3 -2
- package/dist/prepare-server.js +8 -3
- package/dist/preprocess-audio-track.d.ts +7 -1
- package/dist/preprocess-audio-track.js +7 -4
- package/dist/prespawn-ffmpeg.d.ts +4 -1
- package/dist/prespawn-ffmpeg.js +17 -12
- package/dist/prestitcher-memory-usage.d.ts +0 -0
- package/dist/prestitcher-memory-usage.js +0 -0
- package/dist/prores-profile.d.ts +4 -1
- package/dist/prores-profile.js +6 -6
- package/dist/provide-screenshot.d.ts +5 -1
- package/dist/provide-screenshot.js +4 -1
- package/dist/puppeteer-evaluate.d.ts +0 -0
- package/dist/puppeteer-evaluate.js +19 -11
- package/dist/puppeteer-screenshot.d.ts +11 -2
- package/dist/puppeteer-screenshot.js +11 -14
- package/dist/quality.d.ts +0 -0
- package/dist/quality.js +0 -0
- package/dist/redirect-status-codes.d.ts +1 -0
- package/dist/redirect-status-codes.js +6 -0
- package/dist/render-frames.d.ts +15 -3
- package/dist/render-frames.js +176 -84
- package/dist/render-media.d.ts +38 -6
- package/dist/render-media.js +123 -27
- package/dist/render-still.d.ts +8 -4
- package/dist/render-still.js +66 -31
- package/dist/replace-browser.d.ts +6 -0
- package/dist/replace-browser.js +47 -0
- package/dist/resolve-asset-src.d.ts +0 -0
- package/dist/resolve-asset-src.js +0 -0
- package/dist/sample-rate.d.ts +0 -0
- package/dist/sample-rate.js +0 -0
- package/dist/screenshot-dom-element.d.ts +5 -1
- package/dist/screenshot-dom-element.js +10 -2
- package/dist/screenshot-task.d.ts +12 -2
- package/dist/screenshot-task.js +24 -9
- package/dist/seek-to-frame.d.ts +1 -0
- package/dist/seek-to-frame.js +49 -3
- package/dist/serve-handler/index.d.ts +0 -0
- package/dist/serve-handler/index.js +0 -0
- package/dist/serve-handler/is-path-inside.d.ts +0 -0
- package/dist/serve-handler/is-path-inside.js +0 -0
- package/dist/serve-handler/range-parser.d.ts +0 -0
- package/dist/serve-handler/range-parser.js +0 -0
- package/dist/serve-static.d.ts +1 -0
- package/dist/serve-static.js +77 -41
- package/dist/set-props-and-env.d.ts +3 -1
- package/dist/set-props-and-env.js +39 -15
- package/dist/stitch-frames-to-video.d.ts +14 -1
- package/dist/stitch-frames-to-video.js +122 -50
- package/dist/stringify-ffmpeg-filter.d.ts +10 -2
- package/dist/stringify-ffmpeg-filter.js +37 -34
- package/dist/symbolicate-stacktrace.d.ts +0 -0
- package/dist/symbolicate-stacktrace.js +0 -0
- package/dist/take-frame-and-compose.d.ts +20 -0
- package/dist/take-frame-and-compose.js +96 -0
- package/dist/tmp-dir.d.ts +0 -0
- package/dist/tmp-dir.js +0 -0
- package/dist/truthy.d.ts +0 -0
- package/dist/truthy.js +0 -0
- package/dist/try-to-extract-frame-of-video-fast.d.ts +13 -0
- package/dist/try-to-extract-frame-of-video-fast.js +55 -0
- package/dist/types.d.ts +0 -0
- package/dist/types.js +0 -0
- package/dist/validate-concurrency.d.ts +0 -0
- package/dist/validate-concurrency.js +14 -9
- package/dist/validate-even-dimensions-with-codec.d.ts +0 -0
- package/dist/validate-even-dimensions-with-codec.js +0 -0
- package/dist/validate-every-nth-frame.d.ts +2 -1
- package/dist/validate-every-nth-frame.js +8 -1
- package/dist/validate-ffmpeg-override.d.ts +2 -0
- package/dist/validate-ffmpeg-override.js +12 -0
- package/dist/validate-ffmpeg.d.ts +7 -2
- package/dist/validate-ffmpeg.js +48 -43
- package/dist/validate-number-of-gif-loops.d.ts +2 -0
- package/dist/validate-number-of-gif-loops.js +24 -0
- package/dist/validate-opengl-renderer.d.ts +0 -0
- package/dist/validate-opengl-renderer.js +0 -0
- package/dist/validate-output-filename.d.ts +7 -2
- package/dist/validate-output-filename.js +20 -51
- package/dist/validate-puppeteer-timeout.d.ts +0 -0
- package/dist/validate-puppeteer-timeout.js +1 -1
- package/dist/validate-scale.d.ts +0 -0
- package/dist/validate-scale.js +0 -0
- package/dist/validate-videobitrate.d.ts +1 -0
- package/dist/validate-videobitrate.js +20 -0
- package/dist/wait-for-symbolication-error-to-be-done.d.ts +0 -0
- package/dist/wait-for-symbolication-error-to-be-done.js +5 -31
- package/dist/warn-about-ffmpeg-version.d.ts +5 -0
- package/dist/warn-about-ffmpeg-version.js +37 -0
- package/dist/ws/ws-types.d.ts +0 -0
- package/dist/ws/ws-types.js +2 -1
- package/package.json +68 -60
- package/.prettierrc.js +0 -14
- package/dist/add-silent-audio-if-necessary.d.ts +0 -8
- package/dist/add-silent-audio-if-necessary.d.ts.map +0 -1
- package/dist/add-silent-audio-if-necessary.js +0 -51
- package/dist/add-silent-audio-if-necessary.js.map +0 -1
- package/dist/assets/asset-is-used-at-time.d.ts +0 -3
- package/dist/assets/asset-is-used-at-time.d.ts.map +0 -1
- package/dist/assets/asset-is-used-at-time.js +0 -8
- package/dist/assets/asset-is-used-at-time.js.map +0 -1
- package/dist/assets/calculate-asset-positions.d.ts.map +0 -1
- package/dist/assets/calculate-asset-positions.js.map +0 -1
- package/dist/assets/calculate-atempo.d.ts.map +0 -1
- package/dist/assets/calculate-atempo.js.map +0 -1
- package/dist/assets/convert-assets-to-file-urls.d.ts.map +0 -1
- package/dist/assets/convert-assets-to-file-urls.js.map +0 -1
- package/dist/assets/download-and-map-assets-to-file.d.ts.map +0 -1
- package/dist/assets/download-and-map-assets-to-file.js.map +0 -1
- package/dist/assets/download-file.d.ts.map +0 -1
- package/dist/assets/download-file.js.map +0 -1
- package/dist/assets/ffmpeg-volume-expression.d.ts.map +0 -1
- package/dist/assets/ffmpeg-volume-expression.js.map +0 -1
- package/dist/assets/flatten-volume-array.d.ts.map +0 -1
- package/dist/assets/flatten-volume-array.js.map +0 -1
- package/dist/assets/get-asset-audio-details.d.ts +0 -5
- package/dist/assets/get-asset-audio-details.d.ts.map +0 -1
- package/dist/assets/get-asset-audio-details.js +0 -21
- package/dist/assets/get-asset-audio-details.js.map +0 -1
- package/dist/assets/get-audio-channels.d.ts.map +0 -1
- package/dist/assets/get-audio-channels.js.map +0 -1
- package/dist/assets/get-simulatenous-assets.d.ts +0 -3
- package/dist/assets/get-simulatenous-assets.d.ts.map +0 -1
- package/dist/assets/get-simulatenous-assets.js +0 -14
- package/dist/assets/get-simulatenous-assets.js.map +0 -1
- package/dist/assets/read-file.d.ts.map +0 -1
- package/dist/assets/read-file.js.map +0 -1
- package/dist/assets/round-volume-to-avoid-stack-overflow.d.ts.map +0 -1
- package/dist/assets/round-volume-to-avoid-stack-overflow.js.map +0 -1
- package/dist/assets/sanitize-filename.d.ts.map +0 -1
- package/dist/assets/sanitize-filename.js.map +0 -1
- package/dist/assets/sanitize-filepath.d.ts.map +0 -1
- package/dist/assets/sanitize-filepath.js.map +0 -1
- package/dist/assets/split-assets-into-segments.d.ts +0 -6
- package/dist/assets/split-assets-into-segments.d.ts.map +0 -1
- package/dist/assets/split-assets-into-segments.js +0 -89
- package/dist/assets/split-assets-into-segments.js.map +0 -1
- package/dist/assets/truncate-utf8-bytes.d.ts.map +0 -1
- package/dist/assets/truncate-utf8-bytes.js.map +0 -1
- package/dist/assets/types.d.ts.map +0 -1
- package/dist/assets/types.js.map +0 -1
- package/dist/assets-to-ffmpeg-inputs.d.ts +0 -7
- package/dist/assets-to-ffmpeg-inputs.d.ts.map +0 -1
- package/dist/assets-to-ffmpeg-inputs.js +0 -15
- package/dist/assets-to-ffmpeg-inputs.js.map +0 -1
- package/dist/browser-log.d.ts.map +0 -1
- package/dist/browser-log.js.map +0 -1
- package/dist/calculate-ffmpeg-filters.d.ts.map +0 -1
- package/dist/calculate-ffmpeg-filters.js.map +0 -1
- package/dist/can-use-parallel-encoding.d.ts.map +0 -1
- package/dist/can-use-parallel-encoding.js.map +0 -1
- package/dist/combine-videos.d.ts.map +0 -1
- package/dist/combine-videos.js.map +0 -1
- package/dist/convert-to-pcm.d.ts +0 -6
- package/dist/convert-to-pcm.js +0 -20
- package/dist/create-ffmpeg-complex-filter.d.ts.map +0 -1
- package/dist/create-ffmpeg-complex-filter.js.map +0 -1
- package/dist/cycle-browser-tabs.d.ts.map +0 -1
- package/dist/cycle-browser-tabs.js.map +0 -1
- package/dist/delay-render-embedded-stack.d.ts.map +0 -1
- package/dist/delay-render-embedded-stack.js.map +0 -1
- package/dist/delete-directory.d.ts.map +0 -1
- package/dist/delete-directory.js.map +0 -1
- package/dist/ensure-frames-in-order.d.ts.map +0 -1
- package/dist/ensure-frames-in-order.js.map +0 -1
- package/dist/ensure-output-directory.d.ts.map +0 -1
- package/dist/ensure-output-directory.js.map +0 -1
- package/dist/error-handling/handle-javascript-exception.d.ts.map +0 -1
- package/dist/error-handling/handle-javascript-exception.js.map +0 -1
- package/dist/error-handling/symbolicate-error.d.ts.map +0 -1
- package/dist/error-handling/symbolicate-error.js.map +0 -1
- package/dist/error-handling/symbolicateable-error.d.ts.map +0 -1
- package/dist/error-handling/symbolicateable-error.js.map +0 -1
- package/dist/ffmpeg-flags.d.ts.map +0 -1
- package/dist/ffmpeg-flags.js.map +0 -1
- package/dist/get-audio-codec-name.d.ts +0 -2
- package/dist/get-audio-codec-name.d.ts.map +0 -1
- package/dist/get-audio-codec-name.js +0 -28
- package/dist/get-audio-codec-name.js.map +0 -1
- package/dist/get-browser-instance.d.ts.map +0 -1
- package/dist/get-browser-instance.js.map +0 -1
- package/dist/get-codec-name.d.ts.map +0 -1
- package/dist/get-codec-name.js.map +0 -1
- package/dist/get-compositions.d.ts.map +0 -1
- package/dist/get-compositions.js.map +0 -1
- package/dist/get-concurrency.d.ts.map +0 -1
- package/dist/get-concurrency.js.map +0 -1
- package/dist/get-extension-from-codec.d.ts.map +0 -1
- package/dist/get-extension-from-codec.js.map +0 -1
- package/dist/get-frame-to-render.d.ts.map +0 -1
- package/dist/get-frame-to-render.js.map +0 -1
- package/dist/get-local-browser-executable.d.ts.map +0 -1
- package/dist/get-local-browser-executable.js.map +0 -1
- package/dist/get-port.d.ts.map +0 -1
- package/dist/get-port.js.map +0 -1
- package/dist/get-prores-profile-name.d.ts.map +0 -1
- package/dist/get-prores-profile-name.js.map +0 -1
- package/dist/image-format.d.ts.map +0 -1
- package/dist/image-format.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/is-serve-url.d.ts.map +0 -1
- package/dist/is-serve-url.js.map +0 -1
- package/dist/legacy-webpack-config.d.ts.map +0 -1
- package/dist/legacy-webpack-config.js.map +0 -1
- package/dist/make-assets-download-dir.d.ts +0 -1
- package/dist/make-assets-download-dir.d.ts.map +0 -1
- package/dist/make-assets-download-dir.js +0 -13
- package/dist/make-assets-download-dir.js.map +0 -1
- package/dist/normalize-serve-url.d.ts.map +0 -1
- package/dist/normalize-serve-url.js.map +0 -1
- package/dist/open-browser.d.ts.map +0 -1
- package/dist/open-browser.js.map +0 -1
- package/dist/parse-browser-error-stack.d.ts.map +0 -1
- package/dist/parse-browser-error-stack.js.map +0 -1
- package/dist/parse-ffmpeg-progress.d.ts.map +0 -1
- package/dist/parse-ffmpeg-progress.js.map +0 -1
- package/dist/pool.d.ts.map +0 -1
- package/dist/pool.js.map +0 -1
- package/dist/prepare-server.d.ts.map +0 -1
- package/dist/prepare-server.js.map +0 -1
- package/dist/provide-screenshot.d.ts.map +0 -1
- package/dist/provide-screenshot.js.map +0 -1
- package/dist/puppeteer-evaluate.d.ts.map +0 -1
- package/dist/puppeteer-evaluate.js.map +0 -1
- package/dist/puppeteer-screenshot.d.ts.map +0 -1
- package/dist/puppeteer-screenshot.js.map +0 -1
- package/dist/render-media.d.ts.map +0 -1
- package/dist/render-media.js.map +0 -1
- package/dist/render-still.d.ts.map +0 -1
- package/dist/render-still.js.map +0 -1
- package/dist/render.d.ts +0 -45
- package/dist/render.d.ts.map +0 -1
- package/dist/render.js +0 -245
- package/dist/render.js.map +0 -1
- package/dist/resolve-asset-src.d.ts.map +0 -1
- package/dist/resolve-asset-src.js.map +0 -1
- package/dist/sample-rate.d.ts.map +0 -1
- package/dist/sample-rate.js.map +0 -1
- package/dist/screenshot-dom-element.d.ts.map +0 -1
- package/dist/screenshot-dom-element.js.map +0 -1
- package/dist/screenshot-task.d.ts.map +0 -1
- package/dist/screenshot-task.js.map +0 -1
- package/dist/seek-to-frame.d.ts.map +0 -1
- package/dist/seek-to-frame.js.map +0 -1
- package/dist/serve-static.d.ts.map +0 -1
- package/dist/serve-static.js.map +0 -1
- package/dist/set-props-and-env.d.ts.map +0 -1
- package/dist/set-props-and-env.js.map +0 -1
- package/dist/stitcher.d.ts +0 -32
- package/dist/stitcher.d.ts.map +0 -1
- package/dist/stitcher.js +0 -204
- package/dist/stitcher.js.map +0 -1
- package/dist/stringify-ffmpeg-filter.d.ts.map +0 -1
- package/dist/stringify-ffmpeg-filter.js.map +0 -1
- package/dist/symbolicate-stacktrace.d.ts.map +0 -1
- package/dist/symbolicate-stacktrace.js.map +0 -1
- package/dist/tmp-dir.d.ts.map +0 -1
- package/dist/tmp-dir.js.map +0 -1
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js.map +0 -1
- package/dist/validate-even-dimensions-with-codec.d.ts.map +0 -1
- package/dist/validate-even-dimensions-with-codec.js.map +0 -1
- package/dist/validate-ffmpeg.d.ts.map +0 -1
- package/dist/validate-ffmpeg.js.map +0 -1
- package/dist/validate-frame.d.ts +0 -1
- package/dist/validate-frame.js +0 -24
- package/dist/validate-puppeteer-timeout.d.ts.map +0 -1
- package/dist/validate-puppeteer-timeout.js.map +0 -1
- package/dist/validate-scale.d.ts.map +0 -1
- package/dist/validate-scale.js.map +0 -1
- package/tsconfig.json +0 -10
- package/vitest.config.ts +0 -8
|
@@ -7,70 +7,83 @@ exports.mergeAudioTrack = void 0;
|
|
|
7
7
|
const execa_1 = __importDefault(require("execa"));
|
|
8
8
|
const path_1 = __importDefault(require("path"));
|
|
9
9
|
const chunk_1 = require("./chunk");
|
|
10
|
-
const convert_to_pcm_1 = require("./convert-to-pcm");
|
|
11
10
|
const create_ffmpeg_complex_filter_1 = require("./create-ffmpeg-complex-filter");
|
|
11
|
+
const create_ffmpeg_merge_filter_1 = require("./create-ffmpeg-merge-filter");
|
|
12
12
|
const create_silent_audio_1 = require("./create-silent-audio");
|
|
13
13
|
const delete_directory_1 = require("./delete-directory");
|
|
14
|
+
const ffmpeg_flags_1 = require("./ffmpeg-flags");
|
|
14
15
|
const p_limit_1 = require("./p-limit");
|
|
15
16
|
const tmp_dir_1 = require("./tmp-dir");
|
|
16
17
|
const truthy_1 = require("./truthy");
|
|
17
|
-
const mergeAudioTrackUnlimited = async ({ ffmpegExecutable, outName, files, numberOfSeconds, downloadMap, }) => {
|
|
18
|
+
const mergeAudioTrackUnlimited = async ({ ffmpegExecutable, outName, files, numberOfSeconds, downloadMap, remotionRoot, }) => {
|
|
18
19
|
if (files.length === 0) {
|
|
19
20
|
await (0, create_silent_audio_1.createSilentAudio)({
|
|
20
21
|
outName,
|
|
21
22
|
ffmpegExecutable,
|
|
22
23
|
numberOfSeconds,
|
|
24
|
+
remotionRoot,
|
|
23
25
|
});
|
|
24
26
|
return;
|
|
25
27
|
}
|
|
26
|
-
|
|
27
|
-
await (0, convert_to_pcm_1.convertToPcm)({
|
|
28
|
-
outName,
|
|
29
|
-
ffmpegExecutable,
|
|
30
|
-
input: files[0],
|
|
31
|
-
});
|
|
32
|
-
return;
|
|
33
|
-
}
|
|
28
|
+
// Previously a bug: We cannot optimize for files.length === 1 because we need to pad the audio
|
|
34
29
|
// In FFMPEG, the total number of left and right tracks that can be merged at one time is limited to 64
|
|
35
30
|
if (files.length >= 32) {
|
|
36
31
|
const chunked = (0, chunk_1.chunk)(files, 10);
|
|
37
32
|
const tempPath = (0, tmp_dir_1.tmpDir)('remotion-large-audio-mixing');
|
|
38
|
-
|
|
39
|
-
const
|
|
33
|
+
try {
|
|
34
|
+
const chunkNames = await Promise.all(chunked.map(async (chunkFiles, i) => {
|
|
35
|
+
const chunkOutname = path_1.default.join(tempPath, `chunk-${i}.wav`);
|
|
36
|
+
await (0, exports.mergeAudioTrack)({
|
|
37
|
+
ffmpegExecutable,
|
|
38
|
+
files: chunkFiles,
|
|
39
|
+
numberOfSeconds,
|
|
40
|
+
outName: chunkOutname,
|
|
41
|
+
downloadMap,
|
|
42
|
+
remotionRoot,
|
|
43
|
+
});
|
|
44
|
+
return chunkOutname;
|
|
45
|
+
}));
|
|
40
46
|
await (0, exports.mergeAudioTrack)({
|
|
41
47
|
ffmpegExecutable,
|
|
42
|
-
files:
|
|
48
|
+
files: chunkNames.map((c) => ({
|
|
49
|
+
filter: {
|
|
50
|
+
pad_end: null,
|
|
51
|
+
pad_start: null,
|
|
52
|
+
},
|
|
53
|
+
outName: c,
|
|
54
|
+
})),
|
|
43
55
|
numberOfSeconds,
|
|
44
|
-
outName
|
|
56
|
+
outName,
|
|
45
57
|
downloadMap,
|
|
58
|
+
remotionRoot,
|
|
46
59
|
});
|
|
47
|
-
return
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
numberOfSeconds,
|
|
53
|
-
outName,
|
|
54
|
-
downloadMap,
|
|
55
|
-
});
|
|
56
|
-
await (0, delete_directory_1.deleteDirectory)(tempPath);
|
|
57
|
-
return;
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
finally {
|
|
63
|
+
(0, delete_directory_1.deleteDirectory)(tempPath);
|
|
64
|
+
}
|
|
58
65
|
}
|
|
59
|
-
const { complexFilterFlag: mergeFilter, cleanup } = await (0, create_ffmpeg_complex_filter_1.createFfmpegComplexFilter)(
|
|
66
|
+
const { complexFilterFlag: mergeFilter, cleanup } = await (0, create_ffmpeg_complex_filter_1.createFfmpegComplexFilter)({
|
|
67
|
+
filters: files,
|
|
68
|
+
downloadMap,
|
|
69
|
+
ffmpegExecutable,
|
|
70
|
+
remotionRoot,
|
|
71
|
+
});
|
|
60
72
|
const args = [
|
|
61
|
-
...files.map((f) => ['-i', f]),
|
|
73
|
+
...files.map((f) => ['-i', f.outName]),
|
|
62
74
|
mergeFilter,
|
|
63
75
|
['-c:a', 'pcm_s16le'],
|
|
64
|
-
['-map',
|
|
76
|
+
['-map', `[${create_ffmpeg_merge_filter_1.OUTPUT_FILTER_NAME}]`],
|
|
65
77
|
['-y', outName],
|
|
66
78
|
]
|
|
67
79
|
.filter(truthy_1.truthy)
|
|
68
80
|
.flat(2);
|
|
69
|
-
const task = (0, execa_1.default)(
|
|
81
|
+
const task = (0, execa_1.default)(await (0, ffmpeg_flags_1.getExecutableBinary)(ffmpegExecutable, remotionRoot, 'ffmpeg'), args);
|
|
70
82
|
await task;
|
|
71
83
|
cleanup();
|
|
72
84
|
};
|
|
73
|
-
|
|
85
|
+
// Must be at least 3 because recursively called twice in mergeAudioTrack
|
|
86
|
+
const limit = (0, p_limit_1.pLimit)(3);
|
|
74
87
|
const mergeAudioTrack = (options) => {
|
|
75
88
|
return limit(mergeAudioTrackUnlimited, options);
|
|
76
89
|
};
|
package/dist/mime-db.d.ts
CHANGED
|
File without changes
|
package/dist/mime-db.js
CHANGED
|
File without changes
|
package/dist/mime-types.d.ts
CHANGED
package/dist/mime-types.js
CHANGED
|
@@ -1,12 +1,17 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.mimeContentType = exports.mimeLookup = void 0;
|
|
3
|
+
exports.mimeContentType = exports.mimeLookup = exports.getExt = void 0;
|
|
4
4
|
const path_1 = require("path");
|
|
5
5
|
const mime_db_1 = require("./mime-db");
|
|
6
6
|
const extensions = {};
|
|
7
7
|
const types = {};
|
|
8
8
|
// Populate the extensions/types maps
|
|
9
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;
|
|
10
15
|
function mimeLookup(path) {
|
|
11
16
|
if (!path || typeof path !== 'string') {
|
|
12
17
|
return false;
|
|
File without changes
|
|
File without changes
|
|
@@ -8,10 +8,11 @@ export declare const extractUrlAndSourceFromUrl: (url: string) => {
|
|
|
8
8
|
time: number;
|
|
9
9
|
imageFormat: OffthreadVideoImageFormat;
|
|
10
10
|
};
|
|
11
|
-
export declare const startOffthreadVideoServer: ({ ffmpegExecutable, ffprobeExecutable, onDownload, onError, downloadMap, }: {
|
|
11
|
+
export declare const startOffthreadVideoServer: ({ ffmpegExecutable, ffprobeExecutable, onDownload, onError, downloadMap, remotionRoot, }: {
|
|
12
12
|
ffmpegExecutable: FfmpegExecutable;
|
|
13
13
|
ffprobeExecutable: FfmpegExecutable;
|
|
14
14
|
onDownload: RenderMediaOnDownload;
|
|
15
15
|
onError: (err: Error) => void;
|
|
16
16
|
downloadMap: DownloadMap;
|
|
17
|
+
remotionRoot: string;
|
|
17
18
|
}) => RequestListener;
|
|
@@ -32,7 +32,7 @@ const extractUrlAndSourceFromUrl = (url) => {
|
|
|
32
32
|
};
|
|
33
33
|
};
|
|
34
34
|
exports.extractUrlAndSourceFromUrl = extractUrlAndSourceFromUrl;
|
|
35
|
-
const startOffthreadVideoServer = ({ ffmpegExecutable, ffprobeExecutable, onDownload, onError, downloadMap, }) => {
|
|
35
|
+
const startOffthreadVideoServer = ({ ffmpegExecutable, ffprobeExecutable, onDownload, onError, downloadMap, remotionRoot, }) => {
|
|
36
36
|
return (req, res) => {
|
|
37
37
|
if (!req.url) {
|
|
38
38
|
throw new Error('Request came in without URL');
|
|
@@ -45,6 +45,17 @@ const startOffthreadVideoServer = ({ ffmpegExecutable, ffprobeExecutable, onDown
|
|
|
45
45
|
const { src, time, imageFormat } = (0, exports.extractUrlAndSourceFromUrl)(req.url);
|
|
46
46
|
res.setHeader('access-control-allow-origin', '*');
|
|
47
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
|
+
}
|
|
48
59
|
(0, download_and_map_assets_to_file_1.downloadAsset)({ src, onDownload, downloadMap })
|
|
49
60
|
.then((to) => {
|
|
50
61
|
return (0, extract_frame_from_video_1.extractFrameFromVideo)({
|
|
@@ -54,6 +65,7 @@ const startOffthreadVideoServer = ({ ffmpegExecutable, ffprobeExecutable, onDown
|
|
|
54
65
|
ffprobeExecutable,
|
|
55
66
|
imageFormat,
|
|
56
67
|
downloadMap,
|
|
68
|
+
remotionRoot,
|
|
57
69
|
});
|
|
58
70
|
})
|
|
59
71
|
.then((readable) => {
|
package/dist/open-browser.d.ts
CHANGED
|
@@ -8,8 +8,13 @@ export declare type ChromiumOptions = {
|
|
|
8
8
|
disableWebSecurity?: boolean;
|
|
9
9
|
gl?: OpenGlRenderer | null;
|
|
10
10
|
headless?: boolean;
|
|
11
|
+
userAgent?: string | null;
|
|
11
12
|
};
|
|
12
13
|
export declare const killAllBrowsers: () => Promise<void>;
|
|
14
|
+
/**
|
|
15
|
+
* @description Opens a Chrome or Chromium browser instance.
|
|
16
|
+
* @see [Documentation](https://www.remotion.dev/docs/renderer/open-browser)
|
|
17
|
+
*/
|
|
13
18
|
export declare const openBrowser: (browser: Browser, options?: {
|
|
14
19
|
shouldDumpIo?: boolean;
|
|
15
20
|
browserExecutable?: string | null;
|
package/dist/open-browser.js
CHANGED
|
@@ -1,12 +1,6 @@
|
|
|
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 fs_1 = __importDefault(require("fs"));
|
|
8
|
-
const os_1 = __importDefault(require("os"));
|
|
9
|
-
const path_1 = __importDefault(require("path"));
|
|
10
4
|
const node_1 = require("./browser/node");
|
|
11
5
|
const get_local_browser_executable_1 = require("./get-local-browser-executable");
|
|
12
6
|
const get_video_threads_flag_1 = require("./get-video-threads-flag");
|
|
@@ -27,14 +21,18 @@ const browserInstances = [];
|
|
|
27
21
|
const killAllBrowsers = async () => {
|
|
28
22
|
for (const browser of browserInstances) {
|
|
29
23
|
try {
|
|
30
|
-
await browser.close();
|
|
24
|
+
await browser.close(true);
|
|
31
25
|
}
|
|
32
26
|
catch (err) { }
|
|
33
27
|
}
|
|
34
28
|
};
|
|
35
29
|
exports.killAllBrowsers = killAllBrowsers;
|
|
30
|
+
/**
|
|
31
|
+
* @description Opens a Chrome or Chromium browser instance.
|
|
32
|
+
* @see [Documentation](https://www.remotion.dev/docs/renderer/open-browser)
|
|
33
|
+
*/
|
|
36
34
|
const openBrowser = async (browser, options) => {
|
|
37
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
|
|
35
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
|
|
38
36
|
if (browser === 'firefox') {
|
|
39
37
|
throw new TypeError('Firefox supported is not yet turned on. Stay tuned for the future.');
|
|
40
38
|
}
|
|
@@ -57,11 +55,11 @@ const openBrowser = async (browser, options) => {
|
|
|
57
55
|
'--disable-component-extensions-with-background-pages',
|
|
58
56
|
'--disable-default-apps',
|
|
59
57
|
'--disable-dev-shm-usage',
|
|
60
|
-
'--disable-extensions',
|
|
61
58
|
'--no-proxy-server',
|
|
62
59
|
"--proxy-server='direct://'",
|
|
63
60
|
'--proxy-bypass-list=*',
|
|
64
61
|
'--disable-hang-monitor',
|
|
62
|
+
'--disable-extensions',
|
|
65
63
|
'--disable-ipc-flooding-protection',
|
|
66
64
|
'--disable-popup-blocking',
|
|
67
65
|
'--disable-prompt-on-repost',
|
|
@@ -102,14 +100,13 @@ const openBrowser = async (browser, options) => {
|
|
|
102
100
|
? '--ignore-certificate-errors'
|
|
103
101
|
: null,
|
|
104
102
|
...(((_j = options === null || options === void 0 ? void 0 : options.chromiumOptions) === null || _j === void 0 ? void 0 : _j.disableWebSecurity)
|
|
105
|
-
? [
|
|
106
|
-
'--disable-web-security',
|
|
107
|
-
'--user-data-dir=' +
|
|
108
|
-
(await fs_1.default.promises.mkdtemp(path_1.default.join(os_1.default.tmpdir(), 'chrome-user-dir'))),
|
|
109
|
-
]
|
|
103
|
+
? ['--disable-web-security']
|
|
110
104
|
: []),
|
|
105
|
+
((_k = options === null || options === void 0 ? void 0 : options.chromiumOptions) === null || _k === void 0 ? void 0 : _k.userAgent)
|
|
106
|
+
? `--user-agent="${options.chromiumOptions.userAgent}"`
|
|
107
|
+
: null,
|
|
111
108
|
].filter(Boolean),
|
|
112
|
-
defaultViewport: (
|
|
109
|
+
defaultViewport: (_l = options === null || options === void 0 ? void 0 : options.viewport) !== null && _l !== void 0 ? _l : {
|
|
113
110
|
height: 720,
|
|
114
111
|
width: 1280,
|
|
115
112
|
deviceScaleFactor: 1,
|
package/dist/overwrite.d.ts
CHANGED
|
File without changes
|
package/dist/overwrite.js
CHANGED
|
File without changes
|
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
CHANGED
|
File without changes
|
package/dist/perf.js
CHANGED
|
File without changes
|
package/dist/pixel-format.d.ts
CHANGED
|
@@ -2,4 +2,4 @@ import type { Codec } from './codec';
|
|
|
2
2
|
export declare const validPixelFormats: readonly ["yuv420p", "yuva420p", "yuv422p", "yuv444p", "yuv420p10le", "yuv422p10le", "yuv444p10le", "yuva444p10le"];
|
|
3
3
|
export declare type PixelFormat = typeof validPixelFormats[number];
|
|
4
4
|
export declare const DEFAULT_PIXEL_FORMAT: PixelFormat;
|
|
5
|
-
export declare const validateSelectedPixelFormatAndCodecCombination: (pixelFormat: PixelFormat, codec: Codec) =>
|
|
5
|
+
export declare const validateSelectedPixelFormatAndCodecCombination: (pixelFormat: PixelFormat | undefined, codec: Codec) => undefined;
|
package/dist/pixel-format.js
CHANGED
|
@@ -13,6 +13,9 @@ exports.validPixelFormats = [
|
|
|
13
13
|
];
|
|
14
14
|
exports.DEFAULT_PIXEL_FORMAT = 'yuv420p';
|
|
15
15
|
const validateSelectedPixelFormatAndCodecCombination = (pixelFormat, codec) => {
|
|
16
|
+
if (typeof pixelFormat === 'undefined') {
|
|
17
|
+
return pixelFormat;
|
|
18
|
+
}
|
|
16
19
|
if (!exports.validPixelFormats.includes(pixelFormat)) {
|
|
17
20
|
throw new TypeError(`Value ${pixelFormat} is not valid as a pixel format.`);
|
|
18
21
|
}
|
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,7 +1,7 @@
|
|
|
1
1
|
import type { RenderMediaOnDownload } from './assets/download-and-map-assets-to-file';
|
|
2
2
|
import type { DownloadMap } from './assets/download-map';
|
|
3
3
|
import type { FfmpegExecutable } from './ffmpeg-executable';
|
|
4
|
-
export declare const prepareServer: ({ ffmpegExecutable, ffprobeExecutable, onDownload, onError, webpackConfigOrServeUrl, port, downloadMap, }: {
|
|
4
|
+
export declare const prepareServer: ({ ffmpegExecutable, ffprobeExecutable, onDownload, onError, webpackConfigOrServeUrl, port, downloadMap, remotionRoot, }: {
|
|
5
5
|
webpackConfigOrServeUrl: string;
|
|
6
6
|
onDownload: RenderMediaOnDownload;
|
|
7
7
|
onError: (err: Error) => void;
|
|
@@ -9,8 +9,9 @@ export declare const prepareServer: ({ ffmpegExecutable, ffprobeExecutable, onDo
|
|
|
9
9
|
ffprobeExecutable: FfmpegExecutable;
|
|
10
10
|
port: number | null;
|
|
11
11
|
downloadMap: DownloadMap;
|
|
12
|
+
remotionRoot: string;
|
|
12
13
|
}) => Promise<{
|
|
13
14
|
serveUrl: string;
|
|
14
|
-
closeServer: () => Promise<unknown>;
|
|
15
|
+
closeServer: (force: boolean) => Promise<unknown>;
|
|
15
16
|
offthreadPort: number;
|
|
16
17
|
}>;
|
package/dist/prepare-server.js
CHANGED
|
@@ -9,7 +9,7 @@ const path_1 = __importDefault(require("path"));
|
|
|
9
9
|
const is_serve_url_1 = require("./is-serve-url");
|
|
10
10
|
const serve_static_1 = require("./serve-static");
|
|
11
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, }) => {
|
|
12
|
+
const prepareServer = async ({ ffmpegExecutable, ffprobeExecutable, onDownload, onError, webpackConfigOrServeUrl, port, downloadMap, remotionRoot, }) => {
|
|
13
13
|
if ((0, is_serve_url_1.isServeUrl)(webpackConfigOrServeUrl)) {
|
|
14
14
|
const { port: offthreadPort, close: closeProxy } = await (0, serve_static_1.serveStatic)(null, {
|
|
15
15
|
onDownload,
|
|
@@ -18,6 +18,7 @@ const prepareServer = async ({ ffmpegExecutable, ffprobeExecutable, onDownload,
|
|
|
18
18
|
ffprobeExecutable,
|
|
19
19
|
port,
|
|
20
20
|
downloadMap,
|
|
21
|
+
remotionRoot,
|
|
21
22
|
});
|
|
22
23
|
return Promise.resolve({
|
|
23
24
|
serveUrl: webpackConfigOrServeUrl,
|
|
@@ -40,10 +41,14 @@ const prepareServer = async ({ ffmpegExecutable, ffprobeExecutable, onDownload,
|
|
|
40
41
|
ffprobeExecutable,
|
|
41
42
|
port,
|
|
42
43
|
downloadMap,
|
|
44
|
+
remotionRoot,
|
|
43
45
|
});
|
|
44
46
|
return Promise.resolve({
|
|
45
|
-
closeServer: () => {
|
|
46
|
-
|
|
47
|
+
closeServer: async (force) => {
|
|
48
|
+
if (!force) {
|
|
49
|
+
await (0, wait_for_symbolication_error_to_be_done_1.waitForSymbolicationToBeDone)();
|
|
50
|
+
}
|
|
51
|
+
return close();
|
|
47
52
|
},
|
|
48
53
|
serveUrl: `http://localhost:${serverPort}`,
|
|
49
54
|
offthreadPort: serverPort,
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { DownloadMap } from './assets/download-map';
|
|
2
2
|
import type { MediaAsset } from './assets/types';
|
|
3
3
|
import type { FfmpegExecutable } from './ffmpeg-executable';
|
|
4
|
+
import type { ProcessedTrack } from './stringify-ffmpeg-filter';
|
|
4
5
|
declare type Options = {
|
|
5
6
|
ffmpegExecutable: FfmpegExecutable;
|
|
6
7
|
ffprobeExecutable: FfmpegExecutable;
|
|
@@ -9,6 +10,11 @@ declare type Options = {
|
|
|
9
10
|
expectedFrames: number;
|
|
10
11
|
fps: number;
|
|
11
12
|
downloadMap: DownloadMap;
|
|
13
|
+
remotionRoot: string;
|
|
12
14
|
};
|
|
13
|
-
export declare
|
|
15
|
+
export declare type PreprocessedAudioTrack = {
|
|
16
|
+
outName: string;
|
|
17
|
+
filter: ProcessedTrack;
|
|
18
|
+
};
|
|
19
|
+
export declare const preprocessAudioTrack: (options: Options) => Promise<PreprocessedAudioTrack | null>;
|
|
14
20
|
export {};
|
|
@@ -8,10 +8,12 @@ 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
|
|
14
|
-
|
|
14
|
+
const sample_rate_1 = require("./sample-rate");
|
|
15
|
+
const preprocessAudioTrackUnlimited = async ({ ffmpegExecutable, ffprobeExecutable, outName, asset, expectedFrames, fps, downloadMap, remotionRoot, }) => {
|
|
16
|
+
const { channels, duration } = await (0, get_audio_channels_1.getAudioChannelsAndDuration)(downloadMap, (0, resolve_asset_src_1.resolveAssetSrc)(asset.src), ffprobeExecutable, remotionRoot);
|
|
15
17
|
const filter = (0, calculate_ffmpeg_filters_1.calculateFfmpegFilter)({
|
|
16
18
|
asset,
|
|
17
19
|
durationInFrames: expectedFrames,
|
|
@@ -28,11 +30,12 @@ const preprocessAudioTrackUnlimited = async ({ ffmpegExecutable, ffprobeExecutab
|
|
|
28
30
|
['-ac', '2'],
|
|
29
31
|
['-filter_script:a', file],
|
|
30
32
|
['-c:a', 'pcm_s16le'],
|
|
33
|
+
['-ar', String(sample_rate_1.DEFAULT_SAMPLE_RATE)],
|
|
31
34
|
['-y', outName],
|
|
32
35
|
].flat(2);
|
|
33
|
-
await (0, execa_1.default)(
|
|
36
|
+
await (0, execa_1.default)(await (0, ffmpeg_flags_1.getExecutableBinary)(ffmpegExecutable, remotionRoot, 'ffmpeg'), args);
|
|
34
37
|
cleanup();
|
|
35
|
-
return outName;
|
|
38
|
+
return { outName, filter };
|
|
36
39
|
};
|
|
37
40
|
const limit = (0, p_limit_1.pLimit)(2);
|
|
38
41
|
const preprocessAudioTrack = (options) => {
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import execa from 'execa';
|
|
2
2
|
import type { Codec } from './codec';
|
|
3
3
|
import type { FfmpegExecutable } from './ffmpeg-executable';
|
|
4
|
+
import type { FfmpegOverrideFn } from './ffmpeg-override';
|
|
4
5
|
import type { ImageFormat } from './image-format';
|
|
5
6
|
import type { CancelSignal } from './make-cancel-signal';
|
|
6
7
|
import type { PixelFormat } from './pixel-format';
|
|
@@ -18,9 +19,11 @@ declare type PreSticherOptions = {
|
|
|
18
19
|
verbose: boolean;
|
|
19
20
|
ffmpegExecutable: FfmpegExecutable | undefined;
|
|
20
21
|
imageFormat: ImageFormat;
|
|
22
|
+
ffmpegOverride: FfmpegOverrideFn;
|
|
21
23
|
signal: CancelSignal;
|
|
24
|
+
videoBitrate: string | null;
|
|
22
25
|
};
|
|
23
|
-
export declare const prespawnFfmpeg: (options: PreSticherOptions) => Promise<{
|
|
26
|
+
export declare const prespawnFfmpeg: (options: PreSticherOptions, remotionRoot: string) => Promise<{
|
|
24
27
|
task: execa.ExecaChildProcess<string>;
|
|
25
28
|
getLogs: () => string;
|
|
26
29
|
}>;
|
package/dist/prespawn-ffmpeg.js
CHANGED
|
@@ -8,14 +8,15 @@ const execa_1 = __importDefault(require("execa"));
|
|
|
8
8
|
const remotion_1 = require("remotion");
|
|
9
9
|
const codec_1 = require("./codec");
|
|
10
10
|
const crf_1 = require("./crf");
|
|
11
|
+
const ffmpeg_flags_1 = require("./ffmpeg-flags");
|
|
11
12
|
const get_codec_name_1 = require("./get-codec-name");
|
|
12
13
|
const get_prores_profile_name_1 = require("./get-prores-profile-name");
|
|
13
14
|
const parse_ffmpeg_progress_1 = require("./parse-ffmpeg-progress");
|
|
14
15
|
const pixel_format_1 = require("./pixel-format");
|
|
15
16
|
const validate_even_dimensions_with_codec_1 = require("./validate-even-dimensions-with-codec");
|
|
16
17
|
const validate_ffmpeg_1 = require("./validate-ffmpeg");
|
|
17
|
-
const prespawnFfmpeg = async (options) => {
|
|
18
|
-
var _a, _b, _c, _d, _e, _f
|
|
18
|
+
const prespawnFfmpeg = async (options, remotionRoot) => {
|
|
19
|
+
var _a, _b, _c, _d, _e, _f;
|
|
19
20
|
remotion_1.Internals.validateDimension(options.height, 'height', 'passed to `stitchFramesToVideo()`');
|
|
20
21
|
remotion_1.Internals.validateDimension(options.width, 'width', 'passed to `stitchFramesToVideo()`');
|
|
21
22
|
const codec = (_a = options.codec) !== null && _a !== void 0 ? _a : codec_1.DEFAULT_CODEC;
|
|
@@ -26,9 +27,8 @@ const prespawnFfmpeg = async (options) => {
|
|
|
26
27
|
codec,
|
|
27
28
|
scale: 1,
|
|
28
29
|
});
|
|
29
|
-
const
|
|
30
|
-
|
|
31
|
-
await (0, validate_ffmpeg_1.validateFfmpeg)((_d = options.ffmpegExecutable) !== null && _d !== void 0 ? _d : null);
|
|
30
|
+
const pixelFormat = (_b = options.pixelFormat) !== null && _b !== void 0 ? _b : pixel_format_1.DEFAULT_PIXEL_FORMAT;
|
|
31
|
+
await (0, validate_ffmpeg_1.validateFfmpeg)((_c = options.ffmpegExecutable) !== null && _c !== void 0 ? _c : null, remotionRoot, 'ffmpeg');
|
|
32
32
|
const encoderName = (0, get_codec_name_1.getCodecName)(codec);
|
|
33
33
|
const proResProfileName = (0, get_prores_profile_name_1.getProResProfileName)(codec, options.proResProfile);
|
|
34
34
|
if (encoderName === null) {
|
|
@@ -36,16 +36,15 @@ const prespawnFfmpeg = async (options) => {
|
|
|
36
36
|
}
|
|
37
37
|
const supportsCrf = codec !== 'prores';
|
|
38
38
|
if (options.verbose) {
|
|
39
|
-
console.log('[verbose] ffmpeg', (
|
|
39
|
+
console.log('[verbose] ffmpeg', (_d = options.ffmpegExecutable) !== null && _d !== void 0 ? _d : 'ffmpeg in PATH');
|
|
40
40
|
console.log('[verbose] encoder', encoderName);
|
|
41
41
|
console.log('[verbose] pixelFormat', pixelFormat);
|
|
42
42
|
if (supportsCrf) {
|
|
43
|
-
console.log('[verbose] crf', crf);
|
|
43
|
+
console.log('[verbose] crf', options.crf);
|
|
44
44
|
}
|
|
45
45
|
console.log('[verbose] codec', codec);
|
|
46
46
|
console.log('[verbose] proResProfileName', proResProfileName);
|
|
47
47
|
}
|
|
48
|
-
(0, crf_1.validateSelectedCrfAndCodecCombination)(crf, codec);
|
|
49
48
|
(0, pixel_format_1.validateSelectedPixelFormatAndCodecCombination)(pixelFormat, codec);
|
|
50
49
|
const ffmpegArgs = [
|
|
51
50
|
['-r', options.fps.toFixed(2)],
|
|
@@ -61,12 +60,15 @@ const prespawnFfmpeg = async (options) => {
|
|
|
61
60
|
// and specified the video codec.
|
|
62
61
|
['-c:v', encoderName],
|
|
63
62
|
proResProfileName ? ['-profile:v', proResProfileName] : null,
|
|
64
|
-
supportsCrf ? ['-crf', String(crf)] : null,
|
|
65
63
|
['-pix_fmt', pixelFormat],
|
|
66
64
|
// Without explicitly disabling auto-alt-ref,
|
|
67
65
|
// transparent WebM generation doesn't work
|
|
68
66
|
pixelFormat === 'yuva420p' ? ['-auto-alt-ref', '0'] : null,
|
|
69
|
-
|
|
67
|
+
...(0, crf_1.validateQualitySettings)({
|
|
68
|
+
crf: options.crf,
|
|
69
|
+
videoBitrate: options.videoBitrate,
|
|
70
|
+
codec,
|
|
71
|
+
}),
|
|
70
72
|
'-y',
|
|
71
73
|
options.outputLocation,
|
|
72
74
|
];
|
|
@@ -75,12 +77,15 @@ const prespawnFfmpeg = async (options) => {
|
|
|
75
77
|
console.log(ffmpegArgs);
|
|
76
78
|
}
|
|
77
79
|
const ffmpegString = ffmpegArgs.flat(2).filter(Boolean);
|
|
78
|
-
const
|
|
80
|
+
const finalFfmpegString = options.ffmpegOverride
|
|
81
|
+
? options.ffmpegOverride({ type: 'pre-stitcher', args: ffmpegString })
|
|
82
|
+
: ffmpegString;
|
|
83
|
+
const task = (0, execa_1.default)(await (0, ffmpeg_flags_1.getExecutableBinary)((_e = options.ffmpegExecutable) !== null && _e !== void 0 ? _e : null, remotionRoot, 'ffmpeg'), finalFfmpegString);
|
|
79
84
|
options.signal(() => {
|
|
80
85
|
task.kill();
|
|
81
86
|
});
|
|
82
87
|
let ffmpegOutput = '';
|
|
83
|
-
(
|
|
88
|
+
(_f = task.stderr) === null || _f === void 0 ? void 0 : _f.on('data', (data) => {
|
|
84
89
|
const str = data.toString();
|
|
85
90
|
ffmpegOutput += str;
|
|
86
91
|
if (options.onProgress) {
|
|
File without changes
|
|
File without changes
|
package/dist/prores-profile.d.ts
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
import type { Codec } from './codec';
|
|
2
2
|
declare const proResProfileOptions: readonly ["4444-xq", "4444", "hq", "standard", "light", "proxy"];
|
|
3
3
|
export declare type ProResProfile = typeof proResProfileOptions[number];
|
|
4
|
-
export declare const validateSelectedCodecAndProResCombination: (
|
|
4
|
+
export declare const validateSelectedCodecAndProResCombination: ({ codec, proResProfile, }: {
|
|
5
|
+
codec: Codec;
|
|
6
|
+
proResProfile: ProResProfile | undefined;
|
|
7
|
+
}) => void;
|
|
5
8
|
export {};
|
package/dist/prores-profile.js
CHANGED
|
@@ -9,13 +9,13 @@ const proResProfileOptions = [
|
|
|
9
9
|
'light',
|
|
10
10
|
'proxy',
|
|
11
11
|
];
|
|
12
|
-
const validateSelectedCodecAndProResCombination = (
|
|
13
|
-
if (typeof
|
|
14
|
-
throw new TypeError(
|
|
12
|
+
const validateSelectedCodecAndProResCombination = ({ codec, proResProfile, }) => {
|
|
13
|
+
if (typeof proResProfile !== 'undefined' && codec !== 'prores') {
|
|
14
|
+
throw new TypeError(`You have set a ProRes profile but the codec is "${codec}". Set the codec to "prores" or remove the ProRes profile.`);
|
|
15
15
|
}
|
|
16
|
-
if (
|
|
17
|
-
!proResProfileOptions.includes(
|
|
18
|
-
throw new TypeError(`The ProRes profile "${
|
|
16
|
+
if (proResProfile !== undefined &&
|
|
17
|
+
!proResProfileOptions.includes(proResProfile)) {
|
|
18
|
+
throw new TypeError(`The ProRes profile "${proResProfile}" is not valid. Valid options are ${proResProfileOptions
|
|
19
19
|
.map((p) => `"${p}"`)
|
|
20
20
|
.join(', ')}`);
|
|
21
21
|
}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
|
+
import type { ClipRegion } from 'remotion';
|
|
2
3
|
import type { Page } from './browser/BrowserPage';
|
|
3
4
|
import type { ImageFormat } from './image-format';
|
|
4
|
-
export declare const provideScreenshot: ({ page, imageFormat, options, quality, }: {
|
|
5
|
+
export declare const provideScreenshot: ({ page, imageFormat, options, quality, height, width, clipRegion, }: {
|
|
5
6
|
page: Page;
|
|
6
7
|
imageFormat: ImageFormat;
|
|
7
8
|
quality: number | undefined;
|
|
@@ -9,4 +10,7 @@ export declare const provideScreenshot: ({ page, imageFormat, options, quality,
|
|
|
9
10
|
frame: number;
|
|
10
11
|
output: string | null;
|
|
11
12
|
};
|
|
13
|
+
height: number;
|
|
14
|
+
width: number;
|
|
15
|
+
clipRegion: ClipRegion | null;
|
|
12
16
|
}) => Promise<Buffer>;
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.provideScreenshot = void 0;
|
|
4
4
|
const screenshot_dom_element_1 = require("./screenshot-dom-element");
|
|
5
|
-
const provideScreenshot = ({ page, imageFormat, options, quality, }) => {
|
|
5
|
+
const provideScreenshot = ({ page, imageFormat, options, quality, height, width, clipRegion, }) => {
|
|
6
6
|
return (0, screenshot_dom_element_1.screenshotDOMElement)({
|
|
7
7
|
page,
|
|
8
8
|
opts: {
|
|
@@ -10,6 +10,9 @@ const provideScreenshot = ({ page, imageFormat, options, quality, }) => {
|
|
|
10
10
|
},
|
|
11
11
|
imageFormat,
|
|
12
12
|
quality,
|
|
13
|
+
height,
|
|
14
|
+
width,
|
|
15
|
+
clipRegion,
|
|
13
16
|
});
|
|
14
17
|
};
|
|
15
18
|
exports.provideScreenshot = provideScreenshot;
|
|
File without changes
|