@remotion/renderer 3.0.2 → 3.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/calculate-asset-positions.d.ts +0 -1
- package/dist/assets/calculate-asset-positions.js +2 -6
- package/dist/assets/calculate-atempo.d.ts +1 -2
- package/dist/assets/calculate-atempo.js +3 -1
- package/dist/assets/convert-assets-to-file-urls.d.ts +0 -1
- package/dist/assets/convert-assets-to-file-urls.js +0 -1
- package/dist/assets/download-and-map-assets-to-file.d.ts +0 -2
- package/dist/assets/download-and-map-assets-to-file.js +2 -4
- package/dist/assets/download-file.d.ts +0 -1
- package/dist/assets/download-file.js +0 -1
- package/dist/assets/ffmpeg-volume-expression.d.ts +1 -3
- package/dist/assets/ffmpeg-volume-expression.js +3 -6
- package/dist/assets/flatten-volume-array.d.ts +0 -1
- package/dist/assets/flatten-volume-array.js +0 -1
- package/dist/assets/get-audio-channels.d.ts +4 -2
- package/dist/assets/get-audio-channels.js +10 -13
- package/dist/assets/read-file.d.ts +0 -1
- package/dist/assets/read-file.js +0 -1
- package/dist/assets/round-volume-to-avoid-stack-overflow.d.ts +0 -2
- package/dist/assets/round-volume-to-avoid-stack-overflow.js +4 -5
- package/dist/assets/sanitize-filename.d.ts +0 -1
- package/dist/assets/sanitize-filename.js +0 -1
- package/dist/assets/sanitize-filepath.d.ts +0 -1
- package/dist/assets/sanitize-filepath.js +0 -1
- package/dist/assets/truncate-utf8-bytes.d.ts +0 -1
- package/dist/assets/truncate-utf8-bytes.js +0 -1
- package/dist/assets/types.d.ts +0 -4
- package/dist/assets/types.js +0 -1
- package/dist/browser-log.d.ts +0 -1
- package/dist/browser-log.js +0 -1
- package/dist/calculate-ffmpeg-filters.d.ts +7 -11
- package/dist/calculate-ffmpeg-filters.js +19 -31
- package/dist/can-use-parallel-encoding.d.ts +0 -1
- package/dist/can-use-parallel-encoding.js +0 -1
- package/dist/chunk.d.ts +1 -0
- package/dist/chunk.js +11 -0
- package/dist/combine-videos.d.ts +0 -1
- package/dist/combine-videos.js +0 -1
- package/dist/convert-to-pcm.d.ts +6 -0
- package/dist/convert-to-pcm.js +20 -0
- package/dist/create-ffmpeg-complex-filter.d.ts +1 -3
- package/dist/create-ffmpeg-complex-filter.js +8 -34
- package/dist/create-ffmpeg-merge-filter.d.ts +1 -0
- package/dist/create-ffmpeg-merge-filter.js +18 -0
- package/dist/create-silent-audio.d.ts +6 -0
- package/dist/create-silent-audio.js +24 -0
- package/dist/cycle-browser-tabs.d.ts +1 -2
- package/dist/cycle-browser-tabs.js +6 -2
- package/dist/delay-render-embedded-stack.d.ts +0 -1
- package/dist/delay-render-embedded-stack.js +0 -1
- package/dist/delete-directory.d.ts +0 -1
- package/dist/delete-directory.js +6 -2
- package/dist/ensure-frames-in-order.d.ts +0 -1
- package/dist/ensure-frames-in-order.js +1 -2
- package/dist/ensure-output-directory.d.ts +0 -1
- package/dist/ensure-output-directory.js +0 -1
- package/dist/error-handling/handle-javascript-exception.d.ts +0 -2
- package/dist/error-handling/handle-javascript-exception.js +3 -5
- package/dist/error-handling/symbolicate-error.d.ts +0 -1
- package/dist/error-handling/symbolicate-error.js +0 -1
- package/dist/error-handling/symbolicateable-error.d.ts +0 -1
- package/dist/error-handling/symbolicateable-error.js +0 -1
- package/dist/ffmpeg-filter-file.d.ts +4 -0
- package/dist/ffmpeg-filter-file.js +24 -0
- package/dist/ffmpeg-flags.d.ts +0 -1
- package/dist/ffmpeg-flags.js +0 -1
- package/dist/get-audio-codec-name.d.ts +0 -1
- package/dist/get-audio-codec-name.js +0 -1
- package/dist/get-browser-instance.d.ts +0 -1
- package/dist/get-browser-instance.js +0 -1
- package/dist/get-codec-name.d.ts +0 -1
- package/dist/get-codec-name.js +0 -1
- package/dist/get-compositions.d.ts +0 -1
- package/dist/get-compositions.js +0 -1
- package/dist/get-concurrency.d.ts +0 -1
- package/dist/get-concurrency.js +0 -1
- package/dist/get-duration-from-frame-range.d.ts +2 -0
- package/dist/get-duration-from-frame-range.js +13 -0
- package/dist/get-extension-from-codec.d.ts +1 -2
- package/dist/get-extension-from-codec.js +0 -1
- package/dist/get-extension-of-filename.d.ts +1 -0
- package/dist/get-extension-of-filename.js +11 -0
- package/dist/get-frame-to-render.d.ts +0 -1
- package/dist/get-frame-to-render.js +0 -1
- package/dist/get-local-browser-executable.d.ts +0 -1
- package/dist/get-local-browser-executable.js +0 -1
- package/dist/get-port.d.ts +0 -1
- package/dist/get-port.js +0 -1
- package/dist/get-prores-profile-name.d.ts +0 -1
- package/dist/get-prores-profile-name.js +0 -1
- package/dist/image-format.d.ts +0 -1
- package/dist/image-format.js +0 -1
- package/dist/index.d.ts +3 -9
- package/dist/index.js +4 -3
- package/dist/is-serve-url.d.ts +0 -1
- package/dist/is-serve-url.js +0 -1
- package/dist/legacy-webpack-config.d.ts +0 -1
- package/dist/legacy-webpack-config.js +0 -1
- package/dist/make-assets-download-dir.d.ts +0 -1
- package/dist/make-assets-download-dir.js +0 -1
- package/dist/merge-audio-track.d.ts +9 -0
- package/dist/merge-audio-track.js +72 -0
- package/dist/normalize-serve-url.d.ts +0 -1
- package/dist/normalize-serve-url.js +0 -1
- package/dist/open-browser.d.ts +0 -1
- package/dist/open-browser.js +0 -1
- package/dist/p-limit.d.ts +1 -0
- package/dist/p-limit.js +57 -0
- package/dist/parse-browser-error-stack.d.ts +0 -1
- package/dist/parse-browser-error-stack.js +0 -1
- package/dist/parse-ffmpeg-progress.d.ts +0 -1
- package/dist/parse-ffmpeg-progress.js +0 -1
- package/dist/pool.d.ts +0 -1
- package/dist/pool.js +0 -1
- package/dist/prepare-server.d.ts +0 -1
- package/dist/prepare-server.js +0 -1
- package/dist/preprocess-audio-track.d.ts +11 -0
- package/dist/preprocess-audio-track.js +41 -0
- package/dist/prespawn-ffmpeg.d.ts +21 -0
- package/dist/prespawn-ffmpeg.js +91 -0
- package/dist/provide-screenshot.d.ts +0 -1
- package/dist/provide-screenshot.js +0 -1
- package/dist/puppeteer-evaluate.d.ts +0 -2
- package/dist/puppeteer-evaluate.js +3 -4
- package/dist/puppeteer-screenshot.d.ts +0 -1
- package/dist/puppeteer-screenshot.js +0 -1
- package/dist/render-frames.d.ts +1 -8
- package/dist/render-frames.js +9 -9
- package/dist/render-media.d.ts +0 -1
- package/dist/render-media.js +11 -16
- package/dist/render-still.d.ts +1 -2
- package/dist/render-still.js +0 -1
- package/dist/resolve-asset-src.d.ts +0 -1
- package/dist/resolve-asset-src.js +0 -1
- package/dist/sample-rate.d.ts +0 -1
- package/dist/sample-rate.js +0 -1
- package/dist/screenshot-dom-element.d.ts +0 -1
- package/dist/screenshot-dom-element.js +0 -1
- package/dist/screenshot-task.d.ts +0 -1
- package/dist/screenshot-task.js +0 -1
- package/dist/seek-to-frame.d.ts +0 -1
- package/dist/seek-to-frame.js +0 -1
- package/dist/serve-static.d.ts +0 -1
- package/dist/serve-static.js +0 -1
- package/dist/set-props-and-env.d.ts +0 -1
- package/dist/set-props-and-env.js +0 -1
- package/dist/stitch-frames-to-video.d.ts +6 -8
- package/dist/stitch-frames-to-video.js +122 -108
- package/dist/stringify-ffmpeg-filter.d.ts +5 -6
- package/dist/stringify-ffmpeg-filter.js +29 -11
- package/dist/symbolicate-stacktrace.d.ts +2 -4
- package/dist/symbolicate-stacktrace.js +1 -3
- package/dist/tmp-dir.d.ts +0 -1
- package/dist/tmp-dir.js +0 -1
- package/dist/types.d.ts +0 -1
- package/dist/types.js +0 -1
- package/dist/validate-even-dimensions-with-codec.d.ts +0 -1
- package/dist/validate-even-dimensions-with-codec.js +0 -1
- package/dist/validate-ffmpeg.d.ts +0 -2
- package/dist/validate-ffmpeg.js +2 -4
- package/dist/validate-output-filename.d.ts +2 -0
- package/dist/validate-output-filename.js +52 -0
- package/dist/validate-puppeteer-timeout.d.ts +0 -1
- package/dist/validate-puppeteer-timeout.js +0 -1
- package/dist/validate-scale.d.ts +0 -1
- package/dist/validate-scale.js +0 -1
- package/package.json +4 -5
- 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 -10
- 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-mp3-to-pcm.d.ts +0 -7
- package/dist/convert-mp3-to-pcm.d.ts.map +0 -1
- package/dist/convert-mp3-to-pcm.js +0 -41
- package/dist/convert-mp3-to-pcm.js.map +0 -1
- package/dist/create-ffmpeg-complex-filter.d.ts.map +0 -1
- package/dist/create-ffmpeg-complex-filter.js.map +0 -1
- package/dist/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.map +0 -1
- package/dist/get-audio-codec-name.js.map +0 -1
- package/dist/get-browser-instance.d.ts.map +0 -1
- package/dist/get-browser-instance.js.map +0 -1
- package/dist/get-codec-name.d.ts.map +0 -1
- package/dist/get-codec-name.js.map +0 -1
- package/dist/get-compositions.d.ts.map +0 -1
- package/dist/get-compositions.js.map +0 -1
- package/dist/get-concurrency.d.ts.map +0 -1
- package/dist/get-concurrency.js.map +0 -1
- package/dist/get-extension-from-codec.d.ts.map +0 -1
- package/dist/get-extension-from-codec.js.map +0 -1
- package/dist/get-frame-number-length.d.ts +0 -8
- package/dist/get-frame-number-length.d.ts.map +0 -1
- package/dist/get-frame-number-length.js +0 -30
- package/dist/get-frame-number-length.js.map +0 -1
- package/dist/get-frame-range.d.ts +0 -3
- package/dist/get-frame-range.d.ts.map +0 -1
- package/dist/get-frame-range.js +0 -23
- package/dist/get-frame-range.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/handle-javascript-exception.d.ts +0 -32
- package/dist/handle-javascript-exception.d.ts.map +0 -1
- package/dist/handle-javascript-exception.js +0 -82
- package/dist/handle-javascript-exception.js.map +0 -1
- package/dist/handle-null-audio.d.ts +0 -1
- package/dist/handle-null-audio.d.ts.map +0 -1
- package/dist/handle-null-audio.js +0 -2
- package/dist/handle-null-audio.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-local-file.d.ts +0 -2
- package/dist/is-local-file.d.ts.map +0 -1
- package/dist/is-local-file.js +0 -13
- package/dist/is-local-file.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.map +0 -1
- package/dist/make-assets-download-dir.js.map +0 -1
- package/dist/min-max.d.ts +0 -3
- package/dist/min-max.d.ts.map +0 -1
- package/dist/min-max.js +0 -34
- package/dist/min-max.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-frames.d.ts.map +0 -1
- package/dist/render-frames.js.map +0 -1
- package/dist/render-media.d.ts.map +0 -1
- package/dist/render-media.js.map +0 -1
- package/dist/render-still.d.ts.map +0 -1
- package/dist/render-still.js.map +0 -1
- package/dist/render-video.d.ts +0 -38
- package/dist/render-video.d.ts.map +0 -1
- package/dist/render-video.js +0 -169
- package/dist/render-video.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/stitch-frames-to-video.d.ts.map +0 -1
- package/dist/stitch-frames-to-video.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 -2
- package/dist/validate-frame.d.ts.map +0 -1
- package/dist/validate-frame.js +0 -25
- package/dist/validate-frame.js.map +0 -1
- package/dist/validate-puppeteer-timeout.d.ts.map +0 -1
- package/dist/validate-puppeteer-timeout.js.map +0 -1
- package/dist/validate-quality.d.ts +0 -1
- package/dist/validate-quality.d.ts.map +0 -1
- package/dist/validate-quality.js +0 -2
- package/dist/validate-quality.js.map +0 -1
- package/dist/validate-scale.d.ts.map +0 -1
- package/dist/validate-scale.js.map +0 -1
|
@@ -5,60 +5,70 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.stitchFramesToVideo = exports.spawnFfmpeg = void 0;
|
|
7
7
|
const execa_1 = __importDefault(require("execa"));
|
|
8
|
+
const fs_1 = __importDefault(require("fs"));
|
|
9
|
+
const path_1 = __importDefault(require("path"));
|
|
8
10
|
const remotion_1 = require("remotion");
|
|
9
|
-
const assets_to_ffmpeg_inputs_1 = require("./assets-to-ffmpeg-inputs");
|
|
10
11
|
const calculate_asset_positions_1 = require("./assets/calculate-asset-positions");
|
|
11
12
|
const convert_assets_to_file_urls_1 = require("./assets/convert-assets-to-file-urls");
|
|
12
13
|
const download_and_map_assets_to_file_1 = require("./assets/download-and-map-assets-to-file");
|
|
13
|
-
const
|
|
14
|
-
const calculate_ffmpeg_filters_1 = require("./calculate-ffmpeg-filters");
|
|
15
|
-
const create_ffmpeg_complex_filter_1 = require("./create-ffmpeg-complex-filter");
|
|
14
|
+
const delete_directory_1 = require("./delete-directory");
|
|
16
15
|
const get_audio_codec_name_1 = require("./get-audio-codec-name");
|
|
17
16
|
const get_codec_name_1 = require("./get-codec-name");
|
|
18
17
|
const get_prores_profile_name_1 = require("./get-prores-profile-name");
|
|
18
|
+
const merge_audio_track_1 = require("./merge-audio-track");
|
|
19
19
|
const parse_ffmpeg_progress_1 = require("./parse-ffmpeg-progress");
|
|
20
|
-
const
|
|
20
|
+
const preprocess_audio_track_1 = require("./preprocess-audio-track");
|
|
21
|
+
const tmp_dir_1 = require("./tmp-dir");
|
|
21
22
|
const validate_even_dimensions_with_codec_1 = require("./validate-even-dimensions-with-codec");
|
|
22
23
|
const validate_ffmpeg_1 = require("./validate-ffmpeg");
|
|
23
|
-
const
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
const fileUrlAssets = await (
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
onDownload: (_b = options.onDownload) !== null && _b !== void 0 ? _b : (() => () => undefined),
|
|
33
|
-
})
|
|
34
|
-
: null);
|
|
35
|
-
(0, download_and_map_assets_to_file_1.markAllAssetsAsDownloaded)();
|
|
36
|
-
const assetPositions = fileUrlAssets === null ? [] : (0, calculate_asset_positions_1.calculateAssetPositions)(fileUrlAssets);
|
|
37
|
-
(0, download_and_map_assets_to_file_1.markAllAssetsAsDownloaded)();
|
|
38
|
-
const assetAudioDetails = await (0, get_asset_audio_details_1.getAssetAudioDetails)({
|
|
39
|
-
assetPaths: assetPositions.map((a) => a.src),
|
|
24
|
+
const packageJsonPath = path_1.default.join(__dirname, '..', 'package.json');
|
|
25
|
+
const packageJson = fs_1.default.existsSync(packageJsonPath)
|
|
26
|
+
? JSON.parse(fs_1.default.readFileSync(packageJsonPath, 'utf-8'))
|
|
27
|
+
: null;
|
|
28
|
+
const getAssetsData = async ({ assets, downloadDir, onDownload, fps, expectedFrames, verbose, ffmpegExecutable, onProgress, }) => {
|
|
29
|
+
const fileUrlAssets = await (0, convert_assets_to_file_urls_1.convertAssetsToFileUrls)({
|
|
30
|
+
assets,
|
|
31
|
+
downloadDir,
|
|
32
|
+
onDownload: onDownload !== null && onDownload !== void 0 ? onDownload : (() => () => undefined),
|
|
40
33
|
});
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
fps: options.fps,
|
|
45
|
-
videoTrackCount: isAudioOnly ? 0 : 1,
|
|
46
|
-
});
|
|
47
|
-
if (options.verbose) {
|
|
34
|
+
(0, download_and_map_assets_to_file_1.markAllAssetsAsDownloaded)();
|
|
35
|
+
const assetPositions = (0, calculate_asset_positions_1.calculateAssetPositions)(fileUrlAssets);
|
|
36
|
+
if (verbose) {
|
|
48
37
|
console.log('asset positions', assetPositions);
|
|
49
38
|
}
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
return {
|
|
55
|
-
complexFilterFlag,
|
|
56
|
-
cleanup,
|
|
57
|
-
assetPositions,
|
|
39
|
+
const tempPath = (0, tmp_dir_1.tmpDir)('remotion-audio-mixing');
|
|
40
|
+
const preprocessProgress = new Array(assetPositions.length).fill(0);
|
|
41
|
+
const updateProgress = () => {
|
|
42
|
+
onProgress(preprocessProgress.reduce((a, b) => a + b, 0) / assetPositions.length);
|
|
58
43
|
};
|
|
44
|
+
const preprocessed = (await Promise.all(assetPositions.map(async (asset, index) => {
|
|
45
|
+
const filterFile = path_1.default.join(tempPath, `${index}.wav`);
|
|
46
|
+
const result = await (0, preprocess_audio_track_1.preprocessAudioTrack)({
|
|
47
|
+
ffmpegExecutable: ffmpegExecutable !== null && ffmpegExecutable !== void 0 ? ffmpegExecutable : null,
|
|
48
|
+
outName: filterFile,
|
|
49
|
+
asset,
|
|
50
|
+
expectedFrames,
|
|
51
|
+
fps,
|
|
52
|
+
});
|
|
53
|
+
preprocessProgress[index] = 1;
|
|
54
|
+
updateProgress();
|
|
55
|
+
return result;
|
|
56
|
+
}))).filter(remotion_1.Internals.truthy);
|
|
57
|
+
const outName = path_1.default.join(tempPath, `audio.wav`);
|
|
58
|
+
await (0, merge_audio_track_1.mergeAudioTrack)({
|
|
59
|
+
ffmpegExecutable: ffmpegExecutable !== null && ffmpegExecutable !== void 0 ? ffmpegExecutable : null,
|
|
60
|
+
files: preprocessed,
|
|
61
|
+
outName,
|
|
62
|
+
numberOfSeconds: Number((expectedFrames / fps).toFixed(3)),
|
|
63
|
+
});
|
|
64
|
+
onProgress(1);
|
|
65
|
+
preprocessed.forEach((p) => {
|
|
66
|
+
(0, delete_directory_1.deleteDirectory)(p);
|
|
67
|
+
});
|
|
68
|
+
return outName;
|
|
59
69
|
};
|
|
60
70
|
const spawnFfmpeg = async (options) => {
|
|
61
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o
|
|
71
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
|
|
62
72
|
remotion_1.Internals.validateDimension(options.height, 'height', 'passed to `stitchFramesToVideo()`');
|
|
63
73
|
remotion_1.Internals.validateDimension(options.width, 'width', 'passed to `stitchFramesToVideo()`');
|
|
64
74
|
remotion_1.Internals.validateFps(options.fps, 'passed to `stitchFramesToVideo()`');
|
|
@@ -91,78 +101,73 @@ const spawnFfmpeg = async (options) => {
|
|
|
91
101
|
}
|
|
92
102
|
remotion_1.Internals.validateSelectedCrfAndCodecCombination(crf, codec);
|
|
93
103
|
remotion_1.Internals.validateSelectedPixelFormatAndCodecCombination(pixelFormat, codec);
|
|
94
|
-
const
|
|
95
|
-
|
|
96
|
-
|
|
104
|
+
const expectedFrames = options.assetsInfo.assets.length;
|
|
105
|
+
const updateProgress = (preStitchProgress, muxProgress) => {
|
|
106
|
+
var _a;
|
|
107
|
+
const totalFrameProgress = 0.5 * preStitchProgress * expectedFrames + muxProgress * 0.5;
|
|
108
|
+
(_a = options.onProgress) === null || _a === void 0 ? void 0 : _a.call(options, Math.round(totalFrameProgress));
|
|
109
|
+
};
|
|
110
|
+
const audio = await getAssetsData({
|
|
111
|
+
assets: options.assetsInfo.assets,
|
|
112
|
+
downloadDir: options.assetsInfo.downloadDir,
|
|
113
|
+
onDownload: options.onDownload,
|
|
114
|
+
fps: options.fps,
|
|
115
|
+
expectedFrames,
|
|
116
|
+
verbose: (_f = options.verbose) !== null && _f !== void 0 ? _f : false,
|
|
117
|
+
ffmpegExecutable: (_g = options.ffmpegExecutable) !== null && _g !== void 0 ? _g : null,
|
|
118
|
+
onProgress: (prog) => updateProgress(prog, 0),
|
|
119
|
+
});
|
|
120
|
+
if (isAudioOnly) {
|
|
121
|
+
if (!audioCodecName) {
|
|
122
|
+
throw new TypeError('exporting audio but has no audio codec name. Report this in the Remotion repo.');
|
|
123
|
+
}
|
|
124
|
+
await (0, execa_1.default)('ffmpeg', [
|
|
125
|
+
'-i',
|
|
126
|
+
audio,
|
|
127
|
+
'-c:a',
|
|
128
|
+
audioCodecName,
|
|
129
|
+
options.force ? '-y' : null,
|
|
130
|
+
options.outputLocation,
|
|
131
|
+
].filter(remotion_1.Internals.truthy));
|
|
132
|
+
(_h = options.onProgress) === null || _h === void 0 ? void 0 : _h.call(options, expectedFrames);
|
|
133
|
+
return {
|
|
134
|
+
getLogs: () => '',
|
|
135
|
+
task: Promise.resolve(),
|
|
136
|
+
};
|
|
137
|
+
}
|
|
97
138
|
const ffmpegArgs = [
|
|
98
139
|
['-r', String(options.fps)],
|
|
99
|
-
...(((
|
|
100
|
-
? [['-i', (
|
|
101
|
-
:
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
? ['-start_number', String(options.assetsInfo.firstFrameIndex)]
|
|
113
|
-
: null,
|
|
114
|
-
options.assetsInfo
|
|
115
|
-
? ['-i', options.assetsInfo.imageSequenceName]
|
|
116
|
-
: null,
|
|
117
|
-
// If scale is very small (like 0.1), FFMPEG cannot figure out the image
|
|
118
|
-
// format on it's own and we need to hint the format
|
|
119
|
-
((_k = options.internalOptions) === null || _k === void 0 ? void 0 : _k.parallelEncoding)
|
|
120
|
-
? [
|
|
121
|
-
'-vcodec',
|
|
122
|
-
options.internalOptions.imageFormat === 'jpeg'
|
|
123
|
-
? 'mjpeg'
|
|
124
|
-
: 'png',
|
|
125
|
-
]
|
|
126
|
-
: null,
|
|
127
|
-
((_l = options.internalOptions) === null || _l === void 0 ? void 0 : _l.parallelEncoding) ? ['-i', '-'] : null,
|
|
128
|
-
]),
|
|
129
|
-
...(options.assetsInfo && assetPositions
|
|
130
|
-
? (0, assets_to_ffmpeg_inputs_1.assetsToFfmpegInputs)({
|
|
131
|
-
assets: assetPositions.map((a) => a.src),
|
|
132
|
-
isAudioOnly,
|
|
133
|
-
fps: options.fps,
|
|
134
|
-
frameCount: options.assetsInfo.assets.length,
|
|
135
|
-
})
|
|
136
|
-
: []),
|
|
137
|
-
encoderName
|
|
138
|
-
? // -c:v is the same as -vcodec as -codec:video
|
|
139
|
-
// and specified the video codec.
|
|
140
|
-
['-c:v', encoderName]
|
|
141
|
-
: // If only exporting audio, we drop the video explicitly
|
|
142
|
-
['-vn'],
|
|
143
|
-
...(((_m = options.internalOptions) === null || _m === void 0 ? void 0 : _m.preEncodedFileLocation)
|
|
140
|
+
...(((_j = options.internalOptions) === null || _j === void 0 ? void 0 : _j.preEncodedFileLocation)
|
|
141
|
+
? [['-i', (_k = options.internalOptions) === null || _k === void 0 ? void 0 : _k.preEncodedFileLocation]]
|
|
142
|
+
: [
|
|
143
|
+
['-f', 'image2'],
|
|
144
|
+
['-s', `${options.width}x${options.height}`],
|
|
145
|
+
['-start_number', String(options.assetsInfo.firstFrameIndex)],
|
|
146
|
+
['-i', options.assetsInfo.imageSequenceName],
|
|
147
|
+
]),
|
|
148
|
+
['-i', audio],
|
|
149
|
+
// -c:v is the same as -vcodec as -codec:video
|
|
150
|
+
// and specified the video codec.
|
|
151
|
+
['-c:v', encoderName],
|
|
152
|
+
...(((_l = options.internalOptions) === null || _l === void 0 ? void 0 : _l.preEncodedFileLocation)
|
|
144
153
|
? []
|
|
145
154
|
: [
|
|
146
155
|
proResProfileName ? ['-profile:v', proResProfileName] : null,
|
|
147
156
|
supportsCrf ? ['-crf', String(crf)] : null,
|
|
148
|
-
|
|
157
|
+
['-pix_fmt', pixelFormat],
|
|
149
158
|
// Without explicitly disabling auto-alt-ref,
|
|
150
159
|
// transparent WebM generation doesn't work
|
|
151
160
|
pixelFormat === 'yuva420p' ? ['-auto-alt-ref', '0'] : null,
|
|
152
|
-
|
|
161
|
+
['-b:v', '1M'],
|
|
153
162
|
]),
|
|
154
|
-
'-ar',
|
|
155
|
-
String(sample_rate_1.DEFAULT_SAMPLE_RATE),
|
|
156
|
-
// Stereo sound, even force mono to be stereo
|
|
157
|
-
// Otherwise mixing mono + stereo ends up speeding up the audio
|
|
158
|
-
'-ac',
|
|
159
|
-
'2',
|
|
160
163
|
audioCodecName ? ['-c:a', audioCodecName] : null,
|
|
161
|
-
complexFilterFlag,
|
|
162
|
-
// Ignore audio from image sequence
|
|
163
|
-
isAudioOnly ? null : ['-map', '0:v'],
|
|
164
164
|
// Ignore metadata that may come from remote media
|
|
165
|
-
|
|
165
|
+
['-map_metadata', '-1'],
|
|
166
|
+
[
|
|
167
|
+
'-metadata',
|
|
168
|
+
`comment=` +
|
|
169
|
+
[`Made with Remotion`, packageJson ? packageJson.version : null].join(' '),
|
|
170
|
+
],
|
|
166
171
|
options.force ? '-y' : null,
|
|
167
172
|
options.outputLocation,
|
|
168
173
|
];
|
|
@@ -171,34 +176,43 @@ const spawnFfmpeg = async (options) => {
|
|
|
171
176
|
console.log(ffmpegArgs);
|
|
172
177
|
}
|
|
173
178
|
const ffmpegString = ffmpegArgs.flat(2).filter(Boolean);
|
|
174
|
-
const task = (0, execa_1.default)((
|
|
175
|
-
cwd:
|
|
179
|
+
const task = (0, execa_1.default)((_m = options.ffmpegExecutable) !== null && _m !== void 0 ? _m : 'ffmpeg', ffmpegString, {
|
|
180
|
+
cwd: options.dir,
|
|
176
181
|
});
|
|
177
182
|
let ffmpegOutput = '';
|
|
178
|
-
|
|
183
|
+
let isFinished = false;
|
|
184
|
+
(_o = task.stderr) === null || _o === void 0 ? void 0 : _o.on('data', (data) => {
|
|
185
|
+
var _a;
|
|
179
186
|
const str = data.toString();
|
|
180
187
|
ffmpegOutput += str;
|
|
181
188
|
if (options.onProgress) {
|
|
182
189
|
const parsed = (0, parse_ffmpeg_progress_1.parseFfmpegProgress)(str);
|
|
190
|
+
// FFMPEG bug: In some cases, FFMPEG does hang after it is finished with it's job
|
|
191
|
+
// Example repo: https://github.com/JonnyBurger/ffmpeg-repro (access can be given upon request)
|
|
183
192
|
if (parsed !== undefined) {
|
|
184
|
-
|
|
193
|
+
// If two times in a row the finishing frame is logged, we quit the render
|
|
194
|
+
if (parsed === expectedFrames) {
|
|
195
|
+
if (isFinished) {
|
|
196
|
+
(_a = task.stdin) === null || _a === void 0 ? void 0 : _a.write('q');
|
|
197
|
+
}
|
|
198
|
+
else {
|
|
199
|
+
isFinished = true;
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
updateProgress(1, parsed);
|
|
185
203
|
}
|
|
186
204
|
}
|
|
187
205
|
});
|
|
188
|
-
return { task,
|
|
206
|
+
return { task, getLogs: () => ffmpegOutput };
|
|
189
207
|
};
|
|
190
208
|
exports.spawnFfmpeg = spawnFfmpeg;
|
|
191
209
|
const stitchFramesToVideo = async (options) => {
|
|
192
|
-
const { task,
|
|
210
|
+
const { task, getLogs } = await (0, exports.spawnFfmpeg)(options);
|
|
193
211
|
try {
|
|
194
212
|
await task;
|
|
195
213
|
}
|
|
196
214
|
catch (err) {
|
|
197
215
|
throw new Error(getLogs());
|
|
198
216
|
}
|
|
199
|
-
finally {
|
|
200
|
-
cleanup === null || cleanup === void 0 ? void 0 : cleanup();
|
|
201
|
-
}
|
|
202
217
|
};
|
|
203
218
|
exports.stitchFramesToVideo = stitchFramesToVideo;
|
|
204
|
-
//# sourceMappingURL=stitch-frames-to-video.js.map
|
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
import { AssetVolume } from './assets/types';
|
|
2
|
-
export declare const stringifyFfmpegFilter: ({
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
trimRight: string;
|
|
2
|
+
export declare const stringifyFfmpegFilter: ({ trimLeft, trimRight, channels, startInVideo, volume, fps, playbackRate, durationInFrames, assetDuration, }: {
|
|
3
|
+
trimLeft: number;
|
|
4
|
+
trimRight: number;
|
|
6
5
|
channels: number;
|
|
7
6
|
startInVideo: number;
|
|
8
|
-
simulatenousAssets: number;
|
|
9
7
|
volume: AssetVolume;
|
|
10
8
|
fps: number;
|
|
9
|
+
durationInFrames: number;
|
|
11
10
|
playbackRate: number;
|
|
11
|
+
assetDuration: number | null;
|
|
12
12
|
}) => string;
|
|
13
|
-
//# sourceMappingURL=stringify-ffmpeg-filter.d.ts.map
|
|
@@ -4,31 +4,49 @@ exports.stringifyFfmpegFilter = void 0;
|
|
|
4
4
|
const remotion_1 = require("remotion");
|
|
5
5
|
const calculate_atempo_1 = require("./assets/calculate-atempo");
|
|
6
6
|
const ffmpeg_volume_expression_1 = require("./assets/ffmpeg-volume-expression");
|
|
7
|
-
const
|
|
8
|
-
|
|
7
|
+
const sample_rate_1 = require("./sample-rate");
|
|
8
|
+
const stringifyFfmpegFilter = ({ trimLeft, trimRight, channels, startInVideo, volume, fps, playbackRate, durationInFrames, assetDuration, }) => {
|
|
9
|
+
const startInVideoSeconds = startInVideo / fps;
|
|
9
10
|
const volumeFilter = (0, ffmpeg_volume_expression_1.ffmpegVolumeExpression)({
|
|
10
11
|
volume,
|
|
11
|
-
multiplier: simulatenousAssets,
|
|
12
12
|
startInVideo,
|
|
13
13
|
fps,
|
|
14
14
|
});
|
|
15
|
-
|
|
15
|
+
// Avoid setting filters if possible, as combining them can create noise
|
|
16
|
+
const chunkLength = durationInFrames / fps;
|
|
17
|
+
const actualTrimRight = assetDuration
|
|
18
|
+
? Math.min(trimRight, assetDuration)
|
|
19
|
+
: trimRight;
|
|
20
|
+
const padAtEnd = chunkLength - (actualTrimRight - trimLeft) - startInVideoSeconds;
|
|
21
|
+
return (`[0:a]` +
|
|
16
22
|
[
|
|
17
|
-
|
|
18
|
-
|
|
23
|
+
`aformat=sample_fmts=s32:sample_rates=${sample_rate_1.DEFAULT_SAMPLE_RATE}`,
|
|
24
|
+
// Order matters! First trim the audio
|
|
25
|
+
`atrim=${trimLeft.toFixed(6)}:${actualTrimRight.toFixed(6)}`,
|
|
26
|
+
// then set the tempo
|
|
27
|
+
(0, calculate_atempo_1.calculateATempo)(playbackRate),
|
|
19
28
|
// For n channels, we delay n + 1 channels.
|
|
20
29
|
// This is because `ffprobe` for some audio files reports the wrong amount
|
|
21
30
|
// of channels.
|
|
22
31
|
// This should be fine because FFMPEG documentation states:
|
|
23
32
|
// "Unused delays will be silently ignored."
|
|
24
33
|
// https://ffmpeg.org/ffmpeg-filters.html#adelay
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
34
|
+
startInVideoSeconds === 0
|
|
35
|
+
? null
|
|
36
|
+
: `adelay=${new Array(channels + 1)
|
|
37
|
+
.fill((startInVideoSeconds * 1000).toFixed(0))
|
|
38
|
+
.join('|')}`,
|
|
39
|
+
// set the volume if needed
|
|
40
|
+
volumeFilter.value === '1'
|
|
41
|
+
? null
|
|
42
|
+
: `volume=${volumeFilter.value}:eval=${volumeFilter.eval}`,
|
|
43
|
+
// Only in the end, we pad to the full length.
|
|
44
|
+
padAtEnd > 0.0000001
|
|
45
|
+
? 'apad=pad_len=' + Math.round(padAtEnd * sample_rate_1.DEFAULT_SAMPLE_RATE)
|
|
46
|
+
: null,
|
|
28
47
|
]
|
|
29
48
|
.filter(remotion_1.Internals.truthy)
|
|
30
49
|
.join(',') +
|
|
31
|
-
`[
|
|
50
|
+
`[a0]`);
|
|
32
51
|
};
|
|
33
52
|
exports.stringifyFfmpegFilter = stringifyFfmpegFilter;
|
|
34
|
-
//# sourceMappingURL=stringify-ffmpeg-filter.js.map
|
|
@@ -1,7 +1,5 @@
|
|
|
1
|
-
import { SourceMapConsumer } from 'source-map';
|
|
2
1
|
import { UnsymbolicatedStackFrame } from './parse-browser-error-stack';
|
|
3
|
-
|
|
4
|
-
export declare type ScriptLine = {
|
|
2
|
+
declare type ScriptLine = {
|
|
5
3
|
lineNumber: number;
|
|
6
4
|
content: string;
|
|
7
5
|
highlight: boolean;
|
|
@@ -14,4 +12,4 @@ export declare type SymbolicatedStackFrame = {
|
|
|
14
12
|
originalScriptCode: ScriptLine[] | null;
|
|
15
13
|
};
|
|
16
14
|
export declare const symbolicateStackTrace: (frames: UnsymbolicatedStackFrame[]) => Promise<SymbolicatedStackFrame[]>;
|
|
17
|
-
|
|
15
|
+
export {};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.symbolicateStackTrace =
|
|
3
|
+
exports.symbolicateStackTrace = void 0;
|
|
4
4
|
const remotion_1 = require("remotion");
|
|
5
5
|
const source_map_1 = require("source-map");
|
|
6
6
|
const read_file_1 = require("./assets/read-file");
|
|
@@ -38,7 +38,6 @@ async function getSourceMap(fileUri, fileContents) {
|
|
|
38
38
|
const obj = await fetchUrl(url);
|
|
39
39
|
return new source_map_1.SourceMapConsumer(obj);
|
|
40
40
|
}
|
|
41
|
-
exports.getSourceMap = getSourceMap;
|
|
42
41
|
const fetchUrl = async (url) => {
|
|
43
42
|
const res = await (0, read_file_1.readFile)(url);
|
|
44
43
|
return new Promise((resolve, reject) => {
|
|
@@ -109,4 +108,3 @@ const symbolicateStackTrace = async (frames) => {
|
|
|
109
108
|
.filter(remotion_1.Internals.truthy);
|
|
110
109
|
};
|
|
111
110
|
exports.symbolicateStackTrace = symbolicateStackTrace;
|
|
112
|
-
//# sourceMappingURL=symbolicate-stacktrace.js.map
|
package/dist/tmp-dir.d.ts
CHANGED
package/dist/tmp-dir.js
CHANGED
package/dist/types.d.ts
CHANGED
package/dist/types.js
CHANGED
|
@@ -1,4 +1,2 @@
|
|
|
1
1
|
export declare const binaryExists: (name: 'ffmpeg' | 'brew', localFFmpeg: string | null) => Promise<boolean>;
|
|
2
|
-
export declare const isHomebrewInstalled: () => Promise<boolean>;
|
|
3
2
|
export declare const validateFfmpeg: (customFfmpegBinary: string | null) => Promise<void>;
|
|
4
|
-
//# sourceMappingURL=validate-ffmpeg.d.ts.map
|
package/dist/validate-ffmpeg.js
CHANGED
|
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.validateFfmpeg = exports.
|
|
6
|
+
exports.validateFfmpeg = exports.binaryExists = void 0;
|
|
7
7
|
const execa_1 = __importDefault(require("execa"));
|
|
8
8
|
const fs_1 = require("fs");
|
|
9
9
|
const os_1 = __importDefault(require("os"));
|
|
@@ -39,7 +39,6 @@ exports.binaryExists = binaryExists;
|
|
|
39
39
|
const isHomebrewInstalled = () => {
|
|
40
40
|
return (0, exports.binaryExists)('brew', null);
|
|
41
41
|
};
|
|
42
|
-
exports.isHomebrewInstalled = isHomebrewInstalled;
|
|
43
42
|
const validateFfmpeg = async (customFfmpegBinary) => {
|
|
44
43
|
const ffmpegExists = await (0, exports.binaryExists)('ffmpeg', customFfmpegBinary);
|
|
45
44
|
if (!ffmpegExists) {
|
|
@@ -49,7 +48,7 @@ const validateFfmpeg = async (customFfmpegBinary) => {
|
|
|
49
48
|
process.exit(1);
|
|
50
49
|
}
|
|
51
50
|
console.error('It looks like FFMPEG is not installed');
|
|
52
|
-
if (os_1.default.platform() === 'darwin' && (await
|
|
51
|
+
if (os_1.default.platform() === 'darwin' && (await isHomebrewInstalled())) {
|
|
53
52
|
console.error('Run `brew install ffmpeg` to install ffmpeg');
|
|
54
53
|
}
|
|
55
54
|
else if (os_1.default.platform() === 'win32') {
|
|
@@ -72,4 +71,3 @@ const validateFfmpeg = async (customFfmpegBinary) => {
|
|
|
72
71
|
}
|
|
73
72
|
};
|
|
74
73
|
exports.validateFfmpeg = validateFfmpeg;
|
|
75
|
-
//# sourceMappingURL=validate-ffmpeg.js.map
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.validateOutputFilename = void 0;
|
|
4
|
+
const validateOutputFilename = (codec, extension) => {
|
|
5
|
+
if (codec === 'h264') {
|
|
6
|
+
if (extension !== 'mp4' && extension !== 'mkv') {
|
|
7
|
+
throw new TypeError('When using the H264 codec, the output filename must end in .mp4 or .mkv.');
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
if (codec === 'h264-mkv') {
|
|
11
|
+
if (extension !== 'mkv') {
|
|
12
|
+
throw new TypeError('When using the "h264-mkv" codec, the output filename must end in ".mkv".');
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
if (codec === 'h265') {
|
|
16
|
+
if (extension !== 'mp4' && extension !== 'hevc') {
|
|
17
|
+
throw new TypeError('When using H265 codec, the output filename must end in .mp4 or .hevc.');
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
if (codec === 'vp8' || codec === 'vp9') {
|
|
21
|
+
if (extension !== 'webm') {
|
|
22
|
+
throw new TypeError(`When using the ${codec.toUpperCase()} codec, the output filename must end in .webm.`);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
if (codec === 'prores') {
|
|
26
|
+
const allowedProResExtensions = ['mov', 'mkv', 'mxf'];
|
|
27
|
+
if (!extension || !allowedProResExtensions.includes(extension)) {
|
|
28
|
+
throw new TypeError(`When using the 'prores' codec, the output must end in one of those extensions: ${allowedProResExtensions
|
|
29
|
+
.map((a) => `.${a}`)
|
|
30
|
+
.join(', ')}`);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
if (codec === 'mp3') {
|
|
34
|
+
if (extension !== 'mp3') {
|
|
35
|
+
throw new TypeError("When using the 'mp3' codec, the output must end in .mp3");
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
if (codec === 'aac') {
|
|
39
|
+
const allowedAacExtensions = ['aac', '3gp', 'm4a', 'm4b', 'mpg', 'mpeg'];
|
|
40
|
+
if (!extension || !allowedAacExtensions.includes(extension)) {
|
|
41
|
+
throw new TypeError(`When using the 'aac' codec, the output must end in one of those extensions: ${allowedAacExtensions
|
|
42
|
+
.map((a) => `.${a}`)
|
|
43
|
+
.join(', ')}`);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
if (codec === 'wav') {
|
|
47
|
+
if (extension !== 'wav') {
|
|
48
|
+
throw new TypeError("When using the 'wav' codec, the output location must end in .wav.");
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
};
|
|
52
|
+
exports.validateOutputFilename = validateOutputFilename;
|
package/dist/validate-scale.d.ts
CHANGED
package/dist/validate-scale.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@remotion/renderer",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.0.5",
|
|
4
4
|
"description": "Renderer for Remotion",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -20,11 +20,10 @@
|
|
|
20
20
|
"url": "https://github.com/remotion-dev/remotion/issues"
|
|
21
21
|
},
|
|
22
22
|
"dependencies": {
|
|
23
|
-
"@remotion/bundler": "3.0.
|
|
23
|
+
"@remotion/bundler": "3.0.5",
|
|
24
24
|
"execa": "5.1.1",
|
|
25
|
-
"p-limit": "3.1.0",
|
|
26
25
|
"puppeteer-core": "13.5.1",
|
|
27
|
-
"remotion": "3.0.
|
|
26
|
+
"remotion": "3.0.5",
|
|
28
27
|
"serve-handler": "6.1.3",
|
|
29
28
|
"source-map": "^0.8.0-beta.0"
|
|
30
29
|
},
|
|
@@ -61,5 +60,5 @@
|
|
|
61
60
|
"publishConfig": {
|
|
62
61
|
"access": "public"
|
|
63
62
|
},
|
|
64
|
-
"gitHead": "
|
|
63
|
+
"gitHead": "9e3767ddb637f32a83577e2284ae3661f87763ae"
|
|
65
64
|
}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { Codec } from 'remotion';
|
|
2
|
-
export declare const addSilentAudioIfNecessary: ({ durationInFrames, fps, outputLocation, chunkCodec, }: {
|
|
3
|
-
outputLocation: string;
|
|
4
|
-
durationInFrames: number;
|
|
5
|
-
fps: number;
|
|
6
|
-
chunkCodec: Codec;
|
|
7
|
-
}) => Promise<void>;
|
|
8
|
-
//# sourceMappingURL=add-silent-audio-if-necessary.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"add-silent-audio-if-necessary.d.ts","sourceRoot":"","sources":["../src/add-silent-audio-if-necessary.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,KAAK,EAAC,MAAM,UAAU,CAAC;AAK/B,eAAO,MAAM,yBAAyB;oBAMrB,MAAM;sBACJ,MAAM;SACnB,MAAM;gBACC,KAAK;MACd,QAAQ,IAAI,CA0Cf,CAAC"}
|