@remotion/renderer 3.0.3 → 3.0.6
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 +2 -7
- package/dist/create-ffmpeg-complex-filter.js +8 -34
- package/dist/create-ffmpeg-merge-filter.d.ts +1 -2
- package/dist/create-ffmpeg-merge-filter.js +0 -6
- package/dist/create-silent-audio.d.ts +6 -0
- package/dist/create-silent-audio.js +24 -0
- package/dist/cycle-browser-tabs.d.ts +0 -1
- package/dist/cycle-browser-tabs.js +0 -1
- 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 +7 -3
- package/dist/ensure-frames-in-order.d.ts +0 -1
- package/dist/ensure-frames-in-order.js +0 -1
- 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 +0 -1
- package/dist/get-duration-from-frame-range.js +0 -1
- 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 +2 -9
- package/dist/index.js +2 -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 +2 -3
- package/dist/merge-audio-track.js +49 -12
- 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 +5 -5
- package/dist/preprocess-audio-track.js +28 -18
- package/dist/prespawn-ffmpeg.d.ts +2 -2
- package/dist/prespawn-ffmpeg.js +0 -16
- 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 -9
- package/dist/render-frames.js +2 -4
- package/dist/render-media.d.ts +0 -1
- package/dist/render-media.js +3 -1
- 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 +5 -6
- package/dist/stitch-frames-to-video.js +104 -78
- 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 +21 -4
- 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/create-ffmpeg-complex-filter.d.ts.map +0 -1
- package/dist/create-ffmpeg-complex-filter.js.map +0 -1
- package/dist/create-ffmpeg-merge-filter.d.ts.map +0 -1
- package/dist/create-ffmpeg-merge-filter.js.map +0 -1
- package/dist/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-duration-from-frame-range.d.ts.map +0 -1
- package/dist/get-duration-from-frame-range.js.map +0 -1
- package/dist/get-extension-from-codec.d.ts.map +0 -1
- package/dist/get-extension-from-codec.js.map +0 -1
- package/dist/get-frame-to-render.d.ts.map +0 -1
- package/dist/get-frame-to-render.js.map +0 -1
- package/dist/get-local-browser-executable.d.ts.map +0 -1
- package/dist/get-local-browser-executable.js.map +0 -1
- package/dist/get-port.d.ts.map +0 -1
- package/dist/get-port.js.map +0 -1
- package/dist/get-prores-profile-name.d.ts.map +0 -1
- package/dist/get-prores-profile-name.js.map +0 -1
- package/dist/image-format.d.ts.map +0 -1
- package/dist/image-format.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/is-serve-url.d.ts.map +0 -1
- package/dist/is-serve-url.js.map +0 -1
- package/dist/legacy-webpack-config.d.ts.map +0 -1
- package/dist/legacy-webpack-config.js.map +0 -1
- package/dist/make-assets-download-dir.d.ts.map +0 -1
- package/dist/make-assets-download-dir.js.map +0 -1
- package/dist/merge-audio-track.d.ts.map +0 -1
- package/dist/merge-audio-track.js.map +0 -1
- package/dist/normalize-serve-url.d.ts.map +0 -1
- package/dist/normalize-serve-url.js.map +0 -1
- package/dist/open-browser.d.ts.map +0 -1
- package/dist/open-browser.js.map +0 -1
- package/dist/parse-browser-error-stack.d.ts.map +0 -1
- package/dist/parse-browser-error-stack.js.map +0 -1
- package/dist/parse-ffmpeg-progress.d.ts.map +0 -1
- package/dist/parse-ffmpeg-progress.js.map +0 -1
- package/dist/pool.d.ts.map +0 -1
- package/dist/pool.js.map +0 -1
- package/dist/prepare-server.d.ts.map +0 -1
- package/dist/prepare-server.js.map +0 -1
- package/dist/preprocess-audio-track.d.ts.map +0 -1
- package/dist/preprocess-audio-track.js.map +0 -1
- package/dist/prespawn-ffmpeg.d.ts.map +0 -1
- package/dist/prespawn-ffmpeg.js.map +0 -1
- package/dist/provide-screenshot.d.ts.map +0 -1
- package/dist/provide-screenshot.js.map +0 -1
- package/dist/puppeteer-evaluate.d.ts.map +0 -1
- package/dist/puppeteer-evaluate.js.map +0 -1
- package/dist/puppeteer-screenshot.d.ts.map +0 -1
- package/dist/puppeteer-screenshot.js.map +0 -1
- package/dist/render-frames.d.ts.map +0 -1
- package/dist/render-frames.js.map +0 -1
- package/dist/render-media.d.ts.map +0 -1
- package/dist/render-media.js.map +0 -1
- package/dist/render-still.d.ts.map +0 -1
- package/dist/render-still.js.map +0 -1
- package/dist/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-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
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.calculateAssetPositions = void 0;
|
|
4
4
|
const resolve_asset_src_1 = require("../resolve-asset-src");
|
|
5
|
-
const
|
|
5
|
+
const flatten_volume_array_1 = require("./flatten-volume-array");
|
|
6
6
|
const types_1 = require("./types");
|
|
7
7
|
const areEqual = (a, b) => {
|
|
8
8
|
return a.id === b.id;
|
|
@@ -61,10 +61,6 @@ const calculateAssetPositions = (frames) => {
|
|
|
61
61
|
throw new Error('duration is unexpectedly null');
|
|
62
62
|
}
|
|
63
63
|
}
|
|
64
|
-
return (0,
|
|
65
|
-
assets: assets,
|
|
66
|
-
duration: frames.length,
|
|
67
|
-
});
|
|
64
|
+
return assets.map((a) => (0, flatten_volume_array_1.convertAssetToFlattenedVolume)(a));
|
|
68
65
|
};
|
|
69
66
|
exports.calculateAssetPositions = calculateAssetPositions;
|
|
70
|
-
//# sourceMappingURL=calculate-asset-positions.js.map
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
export declare const calculateATempo: (playbackRate: number) => string;
|
|
2
|
-
//# sourceMappingURL=calculate-atempo.d.ts.map
|
|
1
|
+
export declare const calculateATempo: (playbackRate: number) => string | null;
|
|
@@ -5,10 +5,12 @@
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.calculateATempo = void 0;
|
|
7
7
|
const calculateATempo = (playbackRate) => {
|
|
8
|
+
if (playbackRate === 1) {
|
|
9
|
+
return null;
|
|
10
|
+
}
|
|
8
11
|
if (playbackRate >= 0.5 && playbackRate <= 2) {
|
|
9
12
|
return `atempo=${playbackRate.toFixed(5)}`;
|
|
10
13
|
}
|
|
11
14
|
return `${(0, exports.calculateATempo)(Math.sqrt(playbackRate))},${(0, exports.calculateATempo)(Math.sqrt(playbackRate))}`;
|
|
12
15
|
};
|
|
13
16
|
exports.calculateATempo = calculateATempo;
|
|
14
|
-
//# sourceMappingURL=calculate-atempo.js.map
|
|
@@ -2,7 +2,6 @@ import { TAsset } from 'remotion';
|
|
|
2
2
|
export declare type RenderMediaOnDownload = (src: string) => ((progress: {
|
|
3
3
|
percent: number;
|
|
4
4
|
}) => void) | undefined | void;
|
|
5
|
-
export declare const validateMimeType: (mimeType: string, src: string) => void;
|
|
6
5
|
export declare const markAllAssetsAsDownloaded: () => void;
|
|
7
6
|
export declare const getSanitizedFilenameForAssetUrl: ({ src, downloadDir, }: {
|
|
8
7
|
src: string;
|
|
@@ -13,4 +12,3 @@ export declare const downloadAndMapAssetsToFileUrl: ({ asset, downloadDir, onDow
|
|
|
13
12
|
downloadDir: string;
|
|
14
13
|
onDownload: RenderMediaOnDownload;
|
|
15
14
|
}) => Promise<TAsset>;
|
|
16
|
-
//# sourceMappingURL=download-and-map-assets-to-file.d.ts.map
|
|
@@ -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.downloadAndMapAssetsToFileUrl = exports.getSanitizedFilenameForAssetUrl = exports.markAllAssetsAsDownloaded =
|
|
6
|
+
exports.downloadAndMapAssetsToFileUrl = exports.getSanitizedFilenameForAssetUrl = exports.markAllAssetsAsDownloaded = void 0;
|
|
7
7
|
const fs_1 = __importDefault(require("fs"));
|
|
8
8
|
const path_1 = __importDefault(require("path"));
|
|
9
9
|
const remotion_1 = require("remotion");
|
|
@@ -41,7 +41,6 @@ const validateMimeType = (mimeType, src) => {
|
|
|
41
41
|
throw new TypeError(errMessage);
|
|
42
42
|
}
|
|
43
43
|
};
|
|
44
|
-
exports.validateMimeType = validateMimeType;
|
|
45
44
|
function validateBufferEncoding(potentialEncoding, dataUrl) {
|
|
46
45
|
const asserted = potentialEncoding;
|
|
47
46
|
const validEncodings = [
|
|
@@ -91,7 +90,7 @@ const downloadAsset = async (src, to, onDownload) => {
|
|
|
91
90
|
throw new TypeError(errMessage);
|
|
92
91
|
}
|
|
93
92
|
const [mimeType, encoding] = assetDetails.split(';');
|
|
94
|
-
|
|
93
|
+
validateMimeType(mimeType, src);
|
|
95
94
|
validateBufferEncoding(encoding, src);
|
|
96
95
|
const buff = Buffer.from(assetData, encoding);
|
|
97
96
|
await fs_1.default.promises.writeFile(to, buff);
|
|
@@ -141,4 +140,3 @@ const downloadAndMapAssetsToFileUrl = async ({ asset, downloadDir, onDownload, }
|
|
|
141
140
|
};
|
|
142
141
|
};
|
|
143
142
|
exports.downloadAndMapAssetsToFileUrl = downloadAndMapAssetsToFileUrl;
|
|
144
|
-
//# sourceMappingURL=download-and-map-assets-to-file.js.map
|
|
@@ -4,11 +4,9 @@ declare type FfmpegVolumeExpression = {
|
|
|
4
4
|
eval: FfmpegEval;
|
|
5
5
|
value: string;
|
|
6
6
|
};
|
|
7
|
-
export declare const ffmpegVolumeExpression: ({ volume,
|
|
7
|
+
export declare const ffmpegVolumeExpression: ({ volume, startInVideo, fps, }: {
|
|
8
8
|
volume: AssetVolume;
|
|
9
|
-
multiplier: number;
|
|
10
9
|
startInVideo: number;
|
|
11
10
|
fps: number;
|
|
12
11
|
}) => FfmpegVolumeExpression;
|
|
13
12
|
export {};
|
|
14
|
-
//# sourceMappingURL=ffmpeg-volume-expression.d.ts.map
|
|
@@ -46,20 +46,18 @@ const ffmpegBuildVolumeExpression = (arr, fps) => {
|
|
|
46
46
|
const [volume, frames] = first;
|
|
47
47
|
return ffmpegIfOrElse(ffmpegIsOneOfFrames(frames, fps), String(volume), ffmpegBuildVolumeExpression(rest, fps));
|
|
48
48
|
};
|
|
49
|
-
|
|
50
|
-
const ffmpegVolumeExpression = ({ volume, multiplier, startInVideo, fps, }) => {
|
|
49
|
+
const ffmpegVolumeExpression = ({ volume, startInVideo, fps, }) => {
|
|
51
50
|
// If it's a static volume, we return it and tell
|
|
52
51
|
// FFMPEG it only has to evaluate it once
|
|
53
52
|
if (typeof volume === 'number') {
|
|
54
53
|
return {
|
|
55
54
|
eval: 'once',
|
|
56
|
-
value: String(Math.min(1, volume)
|
|
55
|
+
value: String(Math.min(1, volume)),
|
|
57
56
|
};
|
|
58
57
|
}
|
|
59
58
|
if ([...new Set(volume)].length === 1) {
|
|
60
59
|
return (0, exports.ffmpegVolumeExpression)({
|
|
61
60
|
volume: volume[0],
|
|
62
|
-
multiplier,
|
|
63
61
|
startInVideo,
|
|
64
62
|
fps,
|
|
65
63
|
});
|
|
@@ -71,7 +69,7 @@ const ffmpegVolumeExpression = ({ volume, multiplier, startInVideo, fps, }) => {
|
|
|
71
69
|
const volumeMap = {};
|
|
72
70
|
volume.forEach((baseVolume, frame) => {
|
|
73
71
|
// Adjust volume based on how many other tracks have not yet finished
|
|
74
|
-
const actualVolume = (0, round_volume_to_avoid_stack_overflow_1.roundVolumeToAvoidStackOverflow)(Math.min(1, baseVolume))
|
|
72
|
+
const actualVolume = (0, round_volume_to_avoid_stack_overflow_1.roundVolumeToAvoidStackOverflow)(Math.min(1, baseVolume));
|
|
75
73
|
if (!volumeMap[actualVolume]) {
|
|
76
74
|
volumeMap[actualVolume] = [];
|
|
77
75
|
}
|
|
@@ -90,4 +88,3 @@ const ffmpegVolumeExpression = ({ volume, multiplier, startInVideo, fps, }) => {
|
|
|
90
88
|
};
|
|
91
89
|
};
|
|
92
90
|
exports.ffmpegVolumeExpression = ffmpegVolumeExpression;
|
|
93
|
-
//# sourceMappingURL=ffmpeg-volume-expression.js.map
|
|
@@ -3,26 +3,23 @@ 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.
|
|
6
|
+
exports.getAudioChannelsAndDuration = void 0;
|
|
7
7
|
const execa_1 = __importDefault(require("execa"));
|
|
8
|
-
async function
|
|
8
|
+
async function getAudioChannelsAndDuration(path) {
|
|
9
9
|
const args = [
|
|
10
10
|
['-v', 'error'],
|
|
11
|
-
['-show_entries', 'stream=channels'],
|
|
11
|
+
['-show_entries', 'stream=channels:format=duration'],
|
|
12
12
|
['-of', 'default=nw=1'],
|
|
13
13
|
[path],
|
|
14
14
|
]
|
|
15
15
|
.reduce((acc, val) => acc.concat(val), [])
|
|
16
16
|
.filter(Boolean);
|
|
17
17
|
const task = await (0, execa_1.default)('ffprobe', args);
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
}
|
|
25
|
-
return channels;
|
|
18
|
+
const channels = task.stdout.match(/channels=([0-9]+)/);
|
|
19
|
+
const duration = task.stdout.match(/duration=([0-9.]+)/);
|
|
20
|
+
return {
|
|
21
|
+
channels: channels ? parseInt(channels[1], 10) : 0,
|
|
22
|
+
duration: duration ? parseFloat(duration[1]) : null,
|
|
23
|
+
};
|
|
26
24
|
}
|
|
27
|
-
exports.
|
|
28
|
-
//# sourceMappingURL=get-audio-channels.js.map
|
|
25
|
+
exports.getAudioChannelsAndDuration = getAudioChannelsAndDuration;
|
package/dist/assets/read-file.js
CHANGED
|
@@ -8,11 +8,10 @@
|
|
|
8
8
|
// We then subtract 1 again because FFMPEG is not precise and queries out of range
|
|
9
9
|
// values, for which we have to provide a default
|
|
10
10
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
|
-
exports.roundVolumeToAvoidStackOverflow =
|
|
12
|
-
|
|
11
|
+
exports.roundVolumeToAvoidStackOverflow = void 0;
|
|
12
|
+
const MAX_FFMPEG_STACK_DEPTH = 98;
|
|
13
13
|
const roundVolumeToAvoidStackOverflow = (volume) => {
|
|
14
|
-
return Number((Math.round(volume * (
|
|
15
|
-
(
|
|
14
|
+
return Number((Math.round(volume * (MAX_FFMPEG_STACK_DEPTH - 1)) /
|
|
15
|
+
(MAX_FFMPEG_STACK_DEPTH - 1)).toFixed(3));
|
|
16
16
|
};
|
|
17
17
|
exports.roundVolumeToAvoidStackOverflow = roundVolumeToAvoidStackOverflow;
|
|
18
|
-
//# sourceMappingURL=round-volume-to-avoid-stack-overflow.js.map
|
package/dist/assets/types.d.ts
CHANGED
|
@@ -13,8 +13,4 @@ export declare type MediaAsset = Omit<UnsafeAsset, 'duration' | 'volume'> & {
|
|
|
13
13
|
volume: AssetVolume;
|
|
14
14
|
};
|
|
15
15
|
export declare const uncompressMediaAsset: (allAssets: TAsset[], assetToUncompress: TAsset) => TAsset;
|
|
16
|
-
export declare type AssetAudioDetails = {
|
|
17
|
-
channels: number;
|
|
18
|
-
};
|
|
19
16
|
export declare type Assets = MediaAsset[];
|
|
20
|
-
//# sourceMappingURL=types.d.ts.map
|
package/dist/assets/types.js
CHANGED
package/dist/browser-log.d.ts
CHANGED
package/dist/browser-log.js
CHANGED
|
@@ -1,12 +1,8 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export declare
|
|
3
|
-
|
|
4
|
-
streamIndex: number;
|
|
5
|
-
};
|
|
6
|
-
export declare const calculateFfmpegFilters: ({ assetPositions, assetAudioDetails, fps, videoTrackCount, }: {
|
|
7
|
-
assetPositions: Assets;
|
|
8
|
-
assetAudioDetails: Map<string, AssetAudioDetails>;
|
|
1
|
+
import { MediaAsset } from './assets/types';
|
|
2
|
+
export declare const calculateFfmpegFilter: ({ asset, fps, durationInFrames, channels, assetDuration, }: {
|
|
3
|
+
asset: MediaAsset;
|
|
9
4
|
fps: number;
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
5
|
+
durationInFrames: number;
|
|
6
|
+
channels: number;
|
|
7
|
+
assetDuration: number | null;
|
|
8
|
+
}) => string | null;
|
|
@@ -1,36 +1,24 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
const
|
|
5
|
-
const resolve_asset_src_1 = require("./resolve-asset-src");
|
|
3
|
+
exports.calculateFfmpegFilter = void 0;
|
|
4
|
+
const flatten_volume_array_1 = require("./assets/flatten-volume-array");
|
|
6
5
|
const stringify_ffmpeg_filter_1 = require("./stringify-ffmpeg-filter");
|
|
7
|
-
const
|
|
8
|
-
|
|
9
|
-
return
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
startInVideo: asset.startInVideo,
|
|
24
|
-
trimLeft: assetTrimLeft,
|
|
25
|
-
trimRight: assetTrimRight,
|
|
26
|
-
simulatenousAssets: simultaneousAssets.length,
|
|
27
|
-
volume: asset.volume,
|
|
28
|
-
fps,
|
|
29
|
-
playbackRate: asset.playbackRate,
|
|
30
|
-
}),
|
|
31
|
-
streamIndex,
|
|
32
|
-
};
|
|
6
|
+
const calculateFfmpegFilter = ({ asset, fps, durationInFrames, channels, assetDuration, }) => {
|
|
7
|
+
if (channels === 0) {
|
|
8
|
+
return null;
|
|
9
|
+
}
|
|
10
|
+
const assetTrimLeft = asset.trimLeft / fps;
|
|
11
|
+
const assetTrimRight = (asset.trimLeft + asset.duration * asset.playbackRate) / fps;
|
|
12
|
+
return (0, stringify_ffmpeg_filter_1.stringifyFfmpegFilter)({
|
|
13
|
+
channels,
|
|
14
|
+
startInVideo: asset.startInVideo,
|
|
15
|
+
trimLeft: assetTrimLeft,
|
|
16
|
+
trimRight: assetTrimRight,
|
|
17
|
+
volume: (0, flatten_volume_array_1.flattenVolumeArray)(asset.volume),
|
|
18
|
+
fps,
|
|
19
|
+
playbackRate: asset.playbackRate,
|
|
20
|
+
durationInFrames,
|
|
21
|
+
assetDuration,
|
|
33
22
|
});
|
|
34
23
|
};
|
|
35
|
-
exports.
|
|
36
|
-
//# sourceMappingURL=calculate-ffmpeg-filters.js.map
|
|
24
|
+
exports.calculateFfmpegFilter = calculateFfmpegFilter;
|
package/dist/chunk.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const chunk: <T>(input: T[], size: number) => T[][];
|
package/dist/chunk.js
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.chunk = void 0;
|
|
4
|
+
const chunk = (input, size) => {
|
|
5
|
+
return input.reduce((arr, item, idx) => {
|
|
6
|
+
return idx % size === 0
|
|
7
|
+
? [...arr, [item]]
|
|
8
|
+
: [...arr.slice(0, -1), [...arr.slice(-1)[0], item]];
|
|
9
|
+
}, []);
|
|
10
|
+
};
|
|
11
|
+
exports.chunk = chunk;
|
package/dist/combine-videos.d.ts
CHANGED
package/dist/combine-videos.js
CHANGED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.convertToPcm = void 0;
|
|
7
|
+
const execa_1 = __importDefault(require("execa"));
|
|
8
|
+
const sample_rate_1 = require("./sample-rate");
|
|
9
|
+
const convertToPcm = async ({ ffmpegExecutable, input, outName, }) => {
|
|
10
|
+
await (0, execa_1.default)(ffmpegExecutable !== null && ffmpegExecutable !== void 0 ? ffmpegExecutable : 'ffmpeg', [
|
|
11
|
+
'-i',
|
|
12
|
+
input,
|
|
13
|
+
'-c:a',
|
|
14
|
+
'pcm_s16le',
|
|
15
|
+
'-ar',
|
|
16
|
+
String(sample_rate_1.DEFAULT_SAMPLE_RATE),
|
|
17
|
+
outName,
|
|
18
|
+
]);
|
|
19
|
+
};
|
|
20
|
+
exports.convertToPcm = convertToPcm;
|
|
@@ -1,9 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
complexFilterFlag: [
|
|
4
|
-
string,
|
|
5
|
-
string
|
|
6
|
-
] | null;
|
|
1
|
+
export declare const createFfmpegComplexFilter: (filters: number) => Promise<{
|
|
2
|
+
complexFilterFlag: [string, string] | null;
|
|
7
3
|
cleanup: () => void;
|
|
8
4
|
}>;
|
|
9
|
-
//# sourceMappingURL=create-ffmpeg-complex-filter.d.ts.map
|
|
@@ -6,47 +6,21 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.createFfmpegComplexFilter = void 0;
|
|
7
7
|
const fs_1 = __importDefault(require("fs"));
|
|
8
8
|
const path_1 = __importDefault(require("path"));
|
|
9
|
+
const create_ffmpeg_merge_filter_1 = require("./create-ffmpeg-merge-filter");
|
|
10
|
+
const ffmpeg_filter_file_1 = require("./ffmpeg-filter-file");
|
|
9
11
|
const tmp_dir_1 = require("./tmp-dir");
|
|
10
|
-
const createMix = (filters) => {
|
|
11
|
-
const baseFilter = filters
|
|
12
|
-
.map((asset) => {
|
|
13
|
-
return `[a${asset.streamIndex}]`;
|
|
14
|
-
})
|
|
15
|
-
.join('');
|
|
16
|
-
const options = [
|
|
17
|
-
// Specify the number of inputs we give
|
|
18
|
-
`inputs=${filters.length}`,
|
|
19
|
-
// Disable any fade in transitions when a track stops
|
|
20
|
-
'dropout_transition=0',
|
|
21
|
-
// Audio track is as long as the longest input
|
|
22
|
-
'duration=longest',
|
|
23
|
-
];
|
|
24
|
-
return `${baseFilter}amix=${options.join(':')}`;
|
|
25
|
-
};
|
|
26
12
|
const createFfmpegComplexFilter = async (filters) => {
|
|
27
|
-
if (
|
|
13
|
+
if (filters === 0) {
|
|
28
14
|
return { complexFilterFlag: null, cleanup: () => undefined };
|
|
29
15
|
}
|
|
30
|
-
const complexFilter =
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
].join(';');
|
|
34
|
-
const tempPath = (0, tmp_dir_1.tmpDir)('remotion-complex-filter');
|
|
16
|
+
const complexFilter = (0, create_ffmpeg_merge_filter_1.createFfmpegMergeFilter)(filters);
|
|
17
|
+
const { file, cleanup } = await (0, ffmpeg_filter_file_1.makeFfmpegFilterFile)(complexFilter);
|
|
18
|
+
const tempPath = (0, tmp_dir_1.tmpDir)('remotion-complex-filter-script');
|
|
35
19
|
const filterFile = path_1.default.join(tempPath, 'complex-filter.txt');
|
|
36
20
|
await fs_1.default.promises.writeFile(filterFile, complexFilter);
|
|
37
21
|
return {
|
|
38
|
-
complexFilterFlag: ['-filter_complex_script',
|
|
39
|
-
cleanup
|
|
40
|
-
var _a;
|
|
41
|
-
((_a = fs_1.default.promises.rm) !== null && _a !== void 0 ? _a : fs_1.default.promises.rmdir)(tempPath, {
|
|
42
|
-
recursive: true,
|
|
43
|
-
}).catch((err) => {
|
|
44
|
-
console.error('Could not delete a temp file');
|
|
45
|
-
console.error(err);
|
|
46
|
-
console.error('Do you have the minimum Node.JS installed?');
|
|
47
|
-
});
|
|
48
|
-
},
|
|
22
|
+
complexFilterFlag: ['-filter_complex_script', file],
|
|
23
|
+
cleanup,
|
|
49
24
|
};
|
|
50
25
|
};
|
|
51
26
|
exports.createFfmpegComplexFilter = createFfmpegComplexFilter;
|
|
52
|
-
//# sourceMappingURL=create-ffmpeg-complex-filter.js.map
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
export declare const createFfmpegMergeFilter: (inputs: number) => string
|
|
2
|
-
//# sourceMappingURL=create-ffmpeg-merge-filter.d.ts.map
|
|
1
|
+
export declare const createFfmpegMergeFilter: (inputs: number) => string;
|
|
@@ -3,9 +3,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.createFfmpegMergeFilter = void 0;
|
|
4
4
|
const remotion_1 = require("remotion");
|
|
5
5
|
const createFfmpegMergeFilter = (inputs) => {
|
|
6
|
-
if (inputs === 1) {
|
|
7
|
-
return null;
|
|
8
|
-
}
|
|
9
6
|
const leftChannel = new Array(inputs * 2)
|
|
10
7
|
.fill(true)
|
|
11
8
|
.map((_, i) => (i % 2 === 0 ? `c${i}` : null))
|
|
@@ -16,9 +13,6 @@ const createFfmpegMergeFilter = (inputs) => {
|
|
|
16
13
|
.map((_, i) => (i % 2 === 1 ? `c${i}` : null))
|
|
17
14
|
.filter(remotion_1.Internals.truthy)
|
|
18
15
|
.join('+');
|
|
19
|
-
// TODO: This command will normalize the volume to 1 again. Should it be the default or be configurable?
|
|
20
|
-
// return `[0:a][1:a]amerge=inputs=${inputs},pan=stereo|c0<${leftChannel}|c1<${rightChannel}[a]`;
|
|
21
16
|
return `[0:a][1:a]amerge=inputs=${inputs},pan=stereo|c0=${leftChannel}|c1=${rightChannel}[a]`;
|
|
22
17
|
};
|
|
23
18
|
exports.createFfmpegMergeFilter = createFfmpegMergeFilter;
|
|
24
|
-
//# sourceMappingURL=create-ffmpeg-merge-filter.js.map
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.createSilentAudio = void 0;
|
|
7
|
+
const execa_1 = __importDefault(require("execa"));
|
|
8
|
+
const sample_rate_1 = require("./sample-rate");
|
|
9
|
+
const createSilentAudio = async ({ ffmpegExecutable, numberOfSeconds, outName, }) => {
|
|
10
|
+
await (0, execa_1.default)(ffmpegExecutable !== null && ffmpegExecutable !== void 0 ? ffmpegExecutable : 'ffmpeg', [
|
|
11
|
+
'-f',
|
|
12
|
+
'lavfi',
|
|
13
|
+
'-i',
|
|
14
|
+
`anullsrc=r=${sample_rate_1.DEFAULT_SAMPLE_RATE}`,
|
|
15
|
+
'-c:a',
|
|
16
|
+
'pcm_s16le',
|
|
17
|
+
'-t',
|
|
18
|
+
String(numberOfSeconds),
|
|
19
|
+
'-ar',
|
|
20
|
+
String(sample_rate_1.DEFAULT_SAMPLE_RATE),
|
|
21
|
+
outName,
|
|
22
|
+
]);
|
|
23
|
+
};
|
|
24
|
+
exports.createSilentAudio = createSilentAudio;
|