@remotion/renderer 3.1.6 → 3.1.10
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/add-silent-audio-if-necessary.d.ts +8 -0
- package/dist/add-silent-audio-if-necessary.d.ts.map +1 -0
- package/dist/add-silent-audio-if-necessary.js +51 -0
- package/dist/add-silent-audio-if-necessary.js.map +1 -0
- package/dist/assets/asset-is-used-at-time.d.ts +3 -0
- package/dist/assets/asset-is-used-at-time.d.ts.map +1 -0
- package/dist/assets/asset-is-used-at-time.js +8 -0
- package/dist/assets/asset-is-used-at-time.js.map +1 -0
- package/dist/assets/calculate-asset-positions.d.ts.map +1 -0
- package/dist/assets/calculate-asset-positions.js.map +1 -0
- package/dist/assets/calculate-atempo.d.ts.map +1 -0
- package/dist/assets/calculate-atempo.js.map +1 -0
- package/dist/assets/convert-assets-to-file-urls.d.ts +3 -2
- package/dist/assets/convert-assets-to-file-urls.d.ts.map +1 -0
- package/dist/assets/convert-assets-to-file-urls.js +2 -2
- package/dist/assets/convert-assets-to-file-urls.js.map +1 -0
- package/dist/assets/download-and-map-assets-to-file.d.ts +6 -5
- package/dist/assets/download-and-map-assets-to-file.d.ts.map +1 -0
- package/dist/assets/download-and-map-assets-to-file.js +46 -47
- package/dist/assets/download-and-map-assets-to-file.js.map +1 -0
- package/dist/assets/download-file.d.ts.map +1 -0
- package/dist/assets/download-file.js.map +1 -0
- package/dist/assets/download-map.d.ts +64 -0
- package/dist/assets/download-map.js +73 -0
- package/dist/assets/ffmpeg-volume-expression.d.ts.map +1 -0
- package/dist/assets/ffmpeg-volume-expression.js.map +1 -0
- package/dist/assets/flatten-volume-array.d.ts.map +1 -0
- package/dist/assets/flatten-volume-array.js.map +1 -0
- package/dist/assets/get-asset-audio-details.d.ts +5 -0
- package/dist/assets/get-asset-audio-details.d.ts.map +1 -0
- package/dist/assets/get-asset-audio-details.js +21 -0
- package/dist/assets/get-asset-audio-details.js.map +1 -0
- package/dist/assets/get-audio-channels.d.ts +3 -7
- package/dist/assets/get-audio-channels.d.ts.map +1 -0
- package/dist/assets/get-audio-channels.js +6 -7
- package/dist/assets/get-audio-channels.js.map +1 -0
- package/dist/assets/get-simulatenous-assets.d.ts +3 -0
- package/dist/assets/get-simulatenous-assets.d.ts.map +1 -0
- package/dist/assets/get-simulatenous-assets.js +14 -0
- package/dist/assets/get-simulatenous-assets.js.map +1 -0
- package/dist/assets/get-video-stream-duration.d.ts +3 -6
- package/dist/assets/get-video-stream-duration.js +9 -8
- package/dist/assets/read-file.d.ts.map +1 -0
- package/dist/assets/read-file.js.map +1 -0
- package/dist/assets/round-volume-to-avoid-stack-overflow.d.ts.map +1 -0
- package/dist/assets/round-volume-to-avoid-stack-overflow.js.map +1 -0
- package/dist/assets/sanitize-filename.d.ts.map +1 -0
- package/dist/assets/sanitize-filename.js.map +1 -0
- package/dist/assets/sanitize-filepath.d.ts.map +1 -0
- package/dist/assets/sanitize-filepath.js.map +1 -0
- package/dist/assets/split-assets-into-segments.d.ts +6 -0
- package/dist/assets/split-assets-into-segments.d.ts.map +1 -0
- package/dist/assets/split-assets-into-segments.js +89 -0
- package/dist/assets/split-assets-into-segments.js.map +1 -0
- package/dist/assets/truncate-utf8-bytes.d.ts.map +1 -0
- package/dist/assets/truncate-utf8-bytes.js.map +1 -0
- package/dist/assets/types.d.ts.map +1 -0
- package/dist/assets/types.js.map +1 -0
- package/dist/assets-to-ffmpeg-inputs.d.ts +7 -0
- package/dist/assets-to-ffmpeg-inputs.d.ts.map +1 -0
- package/dist/assets-to-ffmpeg-inputs.js +15 -0
- package/dist/assets-to-ffmpeg-inputs.js.map +1 -0
- package/dist/browser/TimeoutSettings.d.ts +1 -0
- package/dist/browser/TimeoutSettings.js +4 -4
- package/dist/browser-executable.d.ts +1 -0
- package/dist/browser-executable.js +2 -0
- package/dist/browser-log.d.ts.map +1 -0
- package/dist/browser-log.js.map +1 -0
- package/dist/browser.d.ts +2 -0
- package/dist/browser.js +4 -0
- package/dist/calculate-ffmpeg-filters.d.ts.map +1 -0
- package/dist/calculate-ffmpeg-filters.js.map +1 -0
- package/dist/can-use-parallel-encoding.d.ts +1 -1
- package/dist/can-use-parallel-encoding.d.ts.map +1 -0
- package/dist/can-use-parallel-encoding.js +2 -2
- package/dist/can-use-parallel-encoding.js.map +1 -0
- package/dist/codec-supports-media.d.ts +1 -1
- package/dist/codec.d.ts +4 -0
- package/dist/codec.js +16 -0
- package/dist/combine-videos.d.ts +1 -1
- package/dist/combine-videos.d.ts.map +1 -0
- package/dist/combine-videos.js +7 -6
- package/dist/combine-videos.js.map +1 -0
- package/dist/compress-assets.d.ts +7 -0
- package/dist/compress-assets.js +25 -0
- package/dist/convert-to-pcm.d.ts +1 -1
- package/dist/create-ffmpeg-complex-filter.d.ts +6 -2
- package/dist/create-ffmpeg-complex-filter.d.ts.map +1 -0
- package/dist/create-ffmpeg-complex-filter.js +2 -11
- package/dist/create-ffmpeg-complex-filter.js.map +1 -0
- package/dist/create-ffmpeg-merge-filter.js +3 -3
- package/dist/create-silent-audio.d.ts +1 -1
- package/dist/crf.d.ts +5 -0
- package/dist/crf.js +64 -0
- package/dist/cycle-browser-tabs.d.ts.map +1 -0
- package/dist/cycle-browser-tabs.js.map +1 -0
- package/dist/delay-render-embedded-stack.d.ts.map +1 -0
- package/dist/delay-render-embedded-stack.js.map +1 -0
- package/dist/delete-directory.d.ts.map +1 -0
- package/dist/delete-directory.js.map +1 -0
- package/dist/ensure-frames-in-order.d.ts.map +1 -0
- package/dist/ensure-frames-in-order.js.map +1 -0
- package/dist/ensure-output-directory.d.ts.map +1 -0
- package/dist/ensure-output-directory.js.map +1 -0
- package/dist/ensure-presentation-timestamp.d.ts +2 -1
- package/dist/ensure-presentation-timestamp.js +9 -7
- package/dist/error-handling/handle-javascript-exception.d.ts.map +1 -0
- package/dist/error-handling/handle-javascript-exception.js.map +1 -0
- package/dist/error-handling/symbolicate-error.d.ts.map +1 -0
- package/dist/error-handling/symbolicate-error.js.map +1 -0
- package/dist/error-handling/symbolicateable-error.d.ts.map +1 -0
- package/dist/error-handling/symbolicateable-error.js.map +1 -0
- package/dist/extract-frame-from-video.d.ts +4 -1
- package/dist/extract-frame-from-video.js +21 -16
- package/dist/ffmpeg-executable.d.ts +1 -0
- package/dist/ffmpeg-executable.js +2 -0
- package/dist/ffmpeg-filter-file.d.ts +2 -1
- package/dist/ffmpeg-filter-file.js +4 -6
- package/dist/ffmpeg-flags.d.ts.map +1 -0
- package/dist/ffmpeg-flags.js.map +1 -0
- package/dist/frame-range.d.ts +2 -0
- package/dist/frame-range.js +49 -0
- package/dist/get-audio-codec-name.d.ts +1 -1
- package/dist/get-audio-codec-name.d.ts.map +1 -0
- package/dist/get-audio-codec-name.js +2 -2
- package/dist/get-audio-codec-name.js.map +1 -0
- package/dist/get-browser-instance.d.ts +1 -1
- package/dist/get-browser-instance.d.ts.map +1 -0
- package/dist/get-browser-instance.js +2 -2
- package/dist/get-browser-instance.js.map +1 -0
- package/dist/get-codec-name.d.ts +1 -1
- package/dist/get-codec-name.d.ts.map +1 -0
- package/dist/get-codec-name.js +2 -2
- package/dist/get-codec-name.js.map +1 -0
- package/dist/get-compositions.d.ts +8 -1
- package/dist/get-compositions.d.ts.map +1 -0
- package/dist/get-compositions.js +10 -6
- package/dist/get-compositions.js.map +1 -0
- package/dist/get-concurrency.d.ts.map +1 -0
- package/dist/get-concurrency.js.map +1 -0
- package/dist/get-extension-from-codec.d.ts +1 -1
- package/dist/get-extension-from-codec.d.ts.map +1 -0
- package/dist/get-extension-from-codec.js.map +1 -0
- package/dist/get-frame-to-render.d.ts +1 -1
- package/dist/get-frame-to-render.d.ts.map +1 -0
- package/dist/get-frame-to-render.js.map +1 -0
- package/dist/get-local-browser-executable.d.ts +2 -1
- package/dist/get-local-browser-executable.d.ts.map +1 -0
- package/dist/get-local-browser-executable.js.map +1 -0
- package/dist/get-port.d.ts.map +1 -0
- package/dist/get-port.js.map +1 -0
- package/dist/get-prores-profile-name.d.ts +2 -1
- package/dist/get-prores-profile-name.d.ts.map +1 -0
- package/dist/get-prores-profile-name.js.map +1 -0
- package/dist/get-video-info.d.ts +3 -8
- package/dist/get-video-info.js +7 -8
- package/dist/get-video-threads-flag.d.ts +1 -0
- package/dist/get-video-threads-flag.js +18 -0
- package/dist/image-format.d.ts +6 -1
- package/dist/image-format.d.ts.map +1 -0
- package/dist/image-format.js +25 -1
- package/dist/image-format.js.map +1 -0
- package/dist/index.d.ts +48 -9
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +71 -1
- package/dist/index.js.map +1 -0
- package/dist/is-audio-codec.d.ts +2 -0
- package/dist/is-audio-codec.js +7 -0
- package/dist/is-beyond-last-frame.d.ts +3 -2
- package/dist/is-beyond-last-frame.js +5 -5
- package/dist/is-serve-url.d.ts.map +1 -0
- package/dist/is-serve-url.js.map +1 -0
- package/dist/last-frame-from-video-cache.d.ts +5 -4
- package/dist/last-frame-from-video-cache.js +17 -17
- package/dist/legacy-webpack-config.d.ts.map +1 -0
- package/dist/legacy-webpack-config.js.map +1 -0
- package/dist/log-level.d.ts +4 -0
- package/dist/log-level.js +15 -0
- package/dist/make-assets-download-dir.d.ts.map +1 -0
- package/dist/make-assets-download-dir.js.map +1 -0
- package/dist/merge-audio-track.d.ts +3 -1
- package/dist/merge-audio-track.js +6 -4
- package/dist/normalize-serve-url.d.ts.map +1 -0
- package/dist/normalize-serve-url.js.map +1 -0
- package/dist/offthread-video-server.d.ts +5 -3
- package/dist/offthread-video-server.js +3 -2
- package/dist/open-browser.d.ts +1 -1
- package/dist/open-browser.d.ts.map +1 -0
- package/dist/open-browser.js +6 -5
- package/dist/open-browser.js.map +1 -0
- package/dist/overwrite.d.ts +1 -0
- package/dist/overwrite.js +4 -0
- package/dist/parse-browser-error-stack.d.ts.map +1 -0
- package/dist/parse-browser-error-stack.js.map +1 -0
- package/dist/parse-ffmpeg-progress.d.ts.map +1 -0
- package/dist/parse-ffmpeg-progress.js.map +1 -0
- package/dist/perf.d.ts +5 -0
- package/dist/perf.js +35 -0
- package/dist/pixel-format.d.ts +5 -0
- package/dist/pixel-format.js +26 -0
- package/dist/pool.d.ts.map +1 -0
- package/dist/pool.js.map +1 -0
- package/dist/prepare-server.d.ts +4 -3
- package/dist/prepare-server.d.ts.map +1 -0
- package/dist/prepare-server.js +3 -3
- package/dist/prepare-server.js.map +1 -0
- package/dist/preprocess-audio-track.d.ts +3 -1
- package/dist/preprocess-audio-track.js +3 -3
- package/dist/prespawn-ffmpeg.d.ts +5 -1
- package/dist/prespawn-ffmpeg.js +9 -6
- package/dist/prestitcher-memory-usage.d.ts +12 -0
- package/dist/prestitcher-memory-usage.js +30 -0
- package/dist/prores-profile.d.ts +5 -0
- package/dist/prores-profile.js +23 -0
- package/dist/provide-screenshot.d.ts +1 -1
- package/dist/provide-screenshot.d.ts.map +1 -0
- package/dist/provide-screenshot.js.map +1 -0
- package/dist/puppeteer-evaluate.d.ts.map +1 -0
- package/dist/puppeteer-evaluate.js.map +1 -0
- package/dist/puppeteer-screenshot.d.ts.map +1 -0
- package/dist/puppeteer-screenshot.js.map +1 -0
- package/dist/quality.d.ts +1 -0
- package/dist/quality.js +21 -0
- package/dist/render-frames.d.ts +10 -1
- package/dist/render-frames.js +22 -16
- package/dist/render-media.d.ts +13 -2
- package/dist/render-media.d.ts.map +1 -0
- package/dist/render-media.js +40 -14
- package/dist/render-media.js.map +1 -0
- package/dist/render-still.d.ts +9 -1
- package/dist/render-still.d.ts.map +1 -0
- package/dist/render-still.js +21 -11
- package/dist/render-still.js.map +1 -0
- package/dist/render.d.ts +45 -0
- package/dist/render.d.ts.map +1 -0
- package/dist/render.js +245 -0
- package/dist/render.js.map +1 -0
- package/dist/resolve-asset-src.d.ts.map +1 -0
- package/dist/resolve-asset-src.js.map +1 -0
- package/dist/sample-rate.d.ts.map +1 -0
- package/dist/sample-rate.js.map +1 -0
- package/dist/screenshot-dom-element.d.ts +1 -1
- package/dist/screenshot-dom-element.d.ts.map +1 -0
- package/dist/screenshot-dom-element.js.map +1 -0
- package/dist/screenshot-task.d.ts +1 -2
- package/dist/screenshot-task.d.ts.map +1 -0
- package/dist/screenshot-task.js +34 -19
- package/dist/screenshot-task.js.map +1 -0
- package/dist/seek-to-frame.d.ts.map +1 -0
- package/dist/seek-to-frame.js.map +1 -0
- package/dist/serve-static.d.ts +3 -2
- package/dist/serve-static.d.ts.map +1 -0
- package/dist/serve-static.js +3 -4
- package/dist/serve-static.js.map +1 -0
- package/dist/set-props-and-env.d.ts.map +1 -0
- package/dist/set-props-and-env.js +2 -2
- package/dist/set-props-and-env.js.map +1 -0
- package/dist/stitch-frames-to-video.d.ts +6 -1
- package/dist/stitch-frames-to-video.js +30 -43
- package/dist/stitcher.d.ts +32 -0
- package/dist/stitcher.d.ts.map +1 -0
- package/dist/stitcher.js +204 -0
- package/dist/stitcher.js.map +1 -0
- package/dist/stringify-ffmpeg-filter.d.ts.map +1 -0
- package/dist/stringify-ffmpeg-filter.js +2 -2
- package/dist/stringify-ffmpeg-filter.js.map +1 -0
- package/dist/symbolicate-stacktrace.d.ts.map +1 -0
- package/dist/symbolicate-stacktrace.js +3 -3
- package/dist/symbolicate-stacktrace.js.map +1 -0
- package/dist/tmp-dir.d.ts.map +1 -0
- package/dist/tmp-dir.js.map +1 -0
- package/dist/truthy.d.ts +3 -0
- package/dist/truthy.js +7 -0
- package/dist/types.d.ts +1 -1
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js.map +1 -0
- package/dist/validate-even-dimensions-with-codec.d.ts +1 -1
- package/dist/validate-even-dimensions-with-codec.d.ts.map +1 -0
- package/dist/validate-even-dimensions-with-codec.js +2 -2
- package/dist/validate-even-dimensions-with-codec.js.map +1 -0
- package/dist/validate-every-nth-frame.d.ts +1 -0
- package/dist/validate-every-nth-frame.js +21 -0
- package/dist/validate-ffmpeg.d.ts.map +1 -0
- package/dist/validate-ffmpeg.js +2 -3
- package/dist/validate-ffmpeg.js.map +1 -0
- package/dist/validate-frame.d.ts +1 -0
- package/dist/validate-frame.js +24 -0
- package/dist/validate-opengl-renderer.d.ts +5 -0
- package/dist/validate-opengl-renderer.js +15 -0
- package/dist/validate-output-filename.d.ts +1 -1
- package/dist/validate-puppeteer-timeout.d.ts.map +1 -0
- package/dist/validate-puppeteer-timeout.js.map +1 -0
- package/dist/validate-scale.d.ts.map +1 -0
- package/dist/validate-scale.js.map +1 -0
- package/package.json +3 -3
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.validateSelectedCodecAndProResCombination = void 0;
|
|
4
|
+
const proResProfileOptions = [
|
|
5
|
+
'4444-xq',
|
|
6
|
+
'4444',
|
|
7
|
+
'hq',
|
|
8
|
+
'standard',
|
|
9
|
+
'light',
|
|
10
|
+
'proxy',
|
|
11
|
+
];
|
|
12
|
+
const validateSelectedCodecAndProResCombination = (actualCodec, actualProResProfile) => {
|
|
13
|
+
if (typeof actualProResProfile !== 'undefined' && actualCodec !== 'prores') {
|
|
14
|
+
throw new TypeError('You have set a ProRes profile but the codec is not "prores". Set the codec to "prores" or remove the ProRes profile.');
|
|
15
|
+
}
|
|
16
|
+
if (actualProResProfile !== undefined &&
|
|
17
|
+
!proResProfileOptions.includes(actualProResProfile)) {
|
|
18
|
+
throw new TypeError(`The ProRes profile "${actualProResProfile}" is not valid. Valid options are ${proResProfileOptions
|
|
19
|
+
.map((p) => `"${p}"`)
|
|
20
|
+
.join(', ')}`);
|
|
21
|
+
}
|
|
22
|
+
};
|
|
23
|
+
exports.validateSelectedCodecAndProResCombination = validateSelectedCodecAndProResCombination;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
|
-
import type { ImageFormat } from 'remotion';
|
|
3
2
|
import type { Page } from './browser/BrowserPage';
|
|
3
|
+
import type { ImageFormat } from './image-format';
|
|
4
4
|
export declare const provideScreenshot: ({ page, imageFormat, options, quality, }: {
|
|
5
5
|
page: Page;
|
|
6
6
|
imageFormat: ImageFormat;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provide-screenshot.d.ts","sourceRoot":"","sources":["../src/provide-screenshot.ts"],"names":[],"mappings":";AAAA,OAAO,SAAS,MAAM,gBAAgB,CAAC;AACvC,OAAO,EAAC,WAAW,EAAC,MAAM,UAAU,CAAC;AAGrC,eAAO,MAAM,iBAAiB;UAMvB,UAAU,IAAI;iBACP,WAAW;aACf,MAAM,GAAG,SAAS;aAClB;QACR,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,CAAC,EAAE,MAAM,CAAC;KAChB;MACE,QAAQ,MAAM,CAUjB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provide-screenshot.js","sourceRoot":"","sources":["../src/provide-screenshot.ts"],"names":[],"mappings":";;;AAEA,qEAA8D;AAEvD,MAAM,iBAAiB,GAAG,KAAK,EAAE,EACvC,IAAI,EACJ,WAAW,EACX,OAAO,EACP,OAAO,GASP,EAAmB,EAAE;IACrB,OAAO,IAAA,6CAAoB,EAAC;QAC3B,IAAI;QACJ,IAAI,EAAE;YACL,IAAI,EAAE,OAAO,CAAC,MAAM;YACpB,QAAQ,EAAE,kBAAkB;SAC5B;QACD,WAAW;QACX,OAAO;KACP,CAAC,CAAC;AACJ,CAAC,CAAC;AAvBW,QAAA,iBAAiB,qBAuB5B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"puppeteer-evaluate.d.ts","sourceRoot":"","sources":["../src/puppeteer-evaluate.ts"],"names":[],"mappings":"AACA,OAAO,EAAuB,IAAI,EAAW,MAAM,gBAAgB,CAAC;AAIpE,eAAO,MAAM,qBAAqB,oCAAoC,CAAC;AA+BvE,wBAAsB,0BAA0B,CAAC,UAAU,EAAE,EAC5D,IAAI,EACJ,YAAY,EACZ,KAAK,EACL,IAAI,GACJ,EAAE;IACF,IAAI,EAAE,IAAI,CAAC;IACX,YAAY,EAAE,QAAQ,GAAG,MAAM,CAAC;IAChC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,IAAI,EAAE,OAAO,EAAE,CAAC;CAChB,GAAG,OAAO,CAAC,UAAU,CAAC,CAsGtB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"puppeteer-evaluate.js","sourceRoot":"","sources":["../src/puppeteer-evaluate.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"puppeteer-screenshot.d.ts","sourceRoot":"","sources":["../src/puppeteer-screenshot.ts"],"names":[],"mappings":";AACA,OAAO,EAAC,IAAI,EAAE,iBAAiB,EAAC,MAAM,gBAAgB,CAAC;AAIvD,eAAO,MAAM,UAAU,SAChB,IAAI,YACD,iBAAiB,KACxB,QAAQ,MAAM,GAAG,MAAM,GAAG,IAAI,CAyFhC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"puppeteer-screenshot.js","sourceRoot":"","sources":["../src/puppeteer-screenshot.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const validateQuality: (q: number | undefined) => void;
|
package/dist/quality.js
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.validateQuality = void 0;
|
|
4
|
+
const validateQuality = (q) => {
|
|
5
|
+
if (typeof q !== 'undefined' && typeof q !== 'number') {
|
|
6
|
+
throw new Error(`Quality option must be a number or undefined. Got ${typeof q} (${JSON.stringify(q)})`);
|
|
7
|
+
}
|
|
8
|
+
if (typeof q === 'undefined') {
|
|
9
|
+
return;
|
|
10
|
+
}
|
|
11
|
+
if (!Number.isFinite(q)) {
|
|
12
|
+
throw new RangeError(`Quality must be a finite number, but is ${q}`);
|
|
13
|
+
}
|
|
14
|
+
if (Number.isNaN(q)) {
|
|
15
|
+
throw new RangeError(`Quality is NaN, but must be a real number`);
|
|
16
|
+
}
|
|
17
|
+
if (q > 100 || q < 0) {
|
|
18
|
+
throw new RangeError('Quality option must be between 0 and 100.');
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
exports.validateQuality = validateQuality;
|
package/dist/render-frames.d.ts
CHANGED
|
@@ -1,8 +1,13 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
|
-
import type {
|
|
2
|
+
import type { SmallTCompMetadata } from 'remotion';
|
|
3
3
|
import type { RenderMediaOnDownload } from './assets/download-and-map-assets-to-file';
|
|
4
|
+
import type { DownloadMap } from './assets/download-map';
|
|
5
|
+
import type { BrowserExecutable } from './browser-executable';
|
|
4
6
|
import type { BrowserLog } from './browser-log';
|
|
5
7
|
import type { Browser } from './browser/Browser';
|
|
8
|
+
import type { FfmpegExecutable } from './ffmpeg-executable';
|
|
9
|
+
import type { FrameRange } from './frame-range';
|
|
10
|
+
import type { ImageFormat } from './image-format';
|
|
6
11
|
import type { ServeUrlOrWebpackBundle } from './legacy-webpack-config';
|
|
7
12
|
import type { CancelSignal } from './make-cancel-signal';
|
|
8
13
|
import type { ChromiumOptions } from './open-browser';
|
|
@@ -39,6 +44,10 @@ declare type RenderFramesOptions = {
|
|
|
39
44
|
ffprobeExecutable?: FfmpegExecutable;
|
|
40
45
|
port?: number | null;
|
|
41
46
|
cancelSignal?: CancelSignal;
|
|
47
|
+
/**
|
|
48
|
+
* @deprecated Only for Remotion internal usage
|
|
49
|
+
*/
|
|
50
|
+
downloadMap?: DownloadMap;
|
|
42
51
|
} & ConfigOrComposition & ServeUrlOrWebpackBundle;
|
|
43
52
|
export declare const renderFrames: (options: RenderFramesOptions) => Promise<RenderFramesOutput>;
|
|
44
53
|
export {};
|
package/dist/render-frames.js
CHANGED
|
@@ -8,6 +8,9 @@ const fs_1 = __importDefault(require("fs"));
|
|
|
8
8
|
const path_1 = __importDefault(require("path"));
|
|
9
9
|
const remotion_1 = require("remotion");
|
|
10
10
|
const download_and_map_assets_to_file_1 = require("./assets/download-and-map-assets-to-file");
|
|
11
|
+
const download_map_1 = require("./assets/download-map");
|
|
12
|
+
const browser_1 = require("./browser");
|
|
13
|
+
const compress_assets_1 = require("./compress-assets");
|
|
11
14
|
const cycle_browser_tabs_1 = require("./cycle-browser-tabs");
|
|
12
15
|
const handle_javascript_exception_1 = require("./error-handling/handle-javascript-exception");
|
|
13
16
|
const get_concurrency_1 = require("./get-concurrency");
|
|
@@ -16,14 +19,16 @@ const get_frame_padded_index_1 = require("./get-frame-padded-index");
|
|
|
16
19
|
const get_frame_to_render_1 = require("./get-frame-to-render");
|
|
17
20
|
const image_format_1 = require("./image-format");
|
|
18
21
|
const legacy_webpack_config_1 = require("./legacy-webpack-config");
|
|
19
|
-
const make_assets_download_dir_1 = require("./make-assets-download-dir");
|
|
20
22
|
const open_browser_1 = require("./open-browser");
|
|
23
|
+
const perf_1 = require("./perf");
|
|
21
24
|
const pool_1 = require("./pool");
|
|
22
25
|
const prepare_server_1 = require("./prepare-server");
|
|
23
26
|
const provide_screenshot_1 = require("./provide-screenshot");
|
|
24
27
|
const puppeteer_evaluate_1 = require("./puppeteer-evaluate");
|
|
28
|
+
const quality_1 = require("./quality");
|
|
25
29
|
const seek_to_frame_1 = require("./seek-to-frame");
|
|
26
30
|
const set_props_and_env_1 = require("./set-props-and-env");
|
|
31
|
+
const truthy_1 = require("./truthy");
|
|
27
32
|
const validate_scale_1 = require("./validate-scale");
|
|
28
33
|
const getComposition = (others) => {
|
|
29
34
|
if ('composition' in others) {
|
|
@@ -39,7 +44,7 @@ const getPool = async (pages) => {
|
|
|
39
44
|
const pool = new pool_1.Pool(puppeteerPages);
|
|
40
45
|
return pool;
|
|
41
46
|
};
|
|
42
|
-
const innerRenderFrames = ({ onFrameUpdate, outputDir, onStart, inputProps, quality, imageFormat = image_format_1.DEFAULT_IMAGE_FORMAT, frameRange, puppeteerInstance, onError, envVariables, onBrowserLog, onFrameBuffer, onDownload, pagesArray, serveUrl, composition, timeoutInMilliseconds, scale, actualParallelism,
|
|
47
|
+
const innerRenderFrames = ({ onFrameUpdate, outputDir, onStart, inputProps, quality, imageFormat = image_format_1.DEFAULT_IMAGE_FORMAT, frameRange, puppeteerInstance, onError, envVariables, onBrowserLog, onFrameBuffer, onDownload, pagesArray, serveUrl, composition, timeoutInMilliseconds, scale, actualParallelism, everyNthFrame = 1, proxyPort, cancelSignal, downloadMap, }) => {
|
|
43
48
|
if (!puppeteerInstance) {
|
|
44
49
|
throw new Error('no puppeteer instance passed to innerRenderFrames - internal error');
|
|
45
50
|
}
|
|
@@ -133,7 +138,7 @@ const innerRenderFrames = ({ onFrameUpdate, outputDir, onStart, inputProps, qual
|
|
|
133
138
|
await (0, seek_to_frame_1.seekToFrame)({ frame, page: freePage });
|
|
134
139
|
if (imageFormat !== 'none') {
|
|
135
140
|
if (onFrameBuffer) {
|
|
136
|
-
const id =
|
|
141
|
+
const id = (0, perf_1.startPerfMeasure)('save');
|
|
137
142
|
const buffer = await (0, provide_screenshot_1.provideScreenshot)({
|
|
138
143
|
page: freePage,
|
|
139
144
|
imageFormat,
|
|
@@ -143,7 +148,7 @@ const innerRenderFrames = ({ onFrameUpdate, outputDir, onStart, inputProps, qual
|
|
|
143
148
|
output: null,
|
|
144
149
|
},
|
|
145
150
|
});
|
|
146
|
-
|
|
151
|
+
(0, perf_1.stopPerfMeasure)(id);
|
|
147
152
|
onFrameBuffer(buffer, frame);
|
|
148
153
|
}
|
|
149
154
|
else {
|
|
@@ -177,13 +182,13 @@ const innerRenderFrames = ({ onFrameUpdate, outputDir, onStart, inputProps, qual
|
|
|
177
182
|
frame,
|
|
178
183
|
page: freePage,
|
|
179
184
|
});
|
|
180
|
-
const compressedAssets = collectedAssets.map((asset) =>
|
|
185
|
+
const compressedAssets = collectedAssets.map((asset) => (0, compress_assets_1.compressAsset)(assets.filter(truthy_1.truthy).flat(1), asset));
|
|
181
186
|
assets[index] = compressedAssets;
|
|
182
187
|
compressedAssets.forEach((asset) => {
|
|
183
188
|
(0, download_and_map_assets_to_file_1.downloadAndMapAssetsToFileUrl)({
|
|
184
189
|
asset,
|
|
185
|
-
downloadDir,
|
|
186
190
|
onDownload,
|
|
191
|
+
downloadMap,
|
|
187
192
|
}).catch((err) => {
|
|
188
193
|
onError(new Error(`Error while downloading asset: ${err.stack}`));
|
|
189
194
|
});
|
|
@@ -199,9 +204,9 @@ const innerRenderFrames = ({ onFrameUpdate, outputDir, onStart, inputProps, qual
|
|
|
199
204
|
const returnValue = {
|
|
200
205
|
assetsInfo: {
|
|
201
206
|
assets,
|
|
202
|
-
downloadDir,
|
|
203
207
|
imageSequenceName: `element-%0${filePadLength}d.${imageFormat}`,
|
|
204
208
|
firstFrameIndex: framesToRender[0],
|
|
209
|
+
downloadMap,
|
|
205
210
|
},
|
|
206
211
|
frameCount: framesToRender.length,
|
|
207
212
|
};
|
|
@@ -214,30 +219,30 @@ const innerRenderFrames = ({ onFrameUpdate, outputDir, onStart, inputProps, qual
|
|
|
214
219
|
.then(() => happyPath);
|
|
215
220
|
};
|
|
216
221
|
const renderFrames = (options) => {
|
|
217
|
-
var _a, _b, _c, _d;
|
|
222
|
+
var _a, _b, _c, _d, _e;
|
|
218
223
|
const composition = getComposition(options);
|
|
219
224
|
if (!composition) {
|
|
220
225
|
throw new Error('No `composition` option has been specified for renderFrames()');
|
|
221
226
|
}
|
|
222
227
|
remotion_1.Internals.validateDimension(composition.height, 'height', 'in the `config` object passed to `renderFrames()`');
|
|
223
228
|
remotion_1.Internals.validateDimension(composition.width, 'width', 'in the `config` object passed to `renderFrames()`');
|
|
224
|
-
remotion_1.Internals.validateFps(composition.fps, 'in the `config` object of `renderFrames()`',
|
|
229
|
+
remotion_1.Internals.validateFps(composition.fps, 'in the `config` object of `renderFrames()`', false);
|
|
225
230
|
remotion_1.Internals.validateDurationInFrames(composition.durationInFrames, 'in the `config` object passed to `renderFrames()`');
|
|
226
231
|
if (options.quality !== undefined && options.imageFormat !== 'jpeg') {
|
|
227
232
|
throw new Error("You can only pass the `quality` option if `imageFormat` is 'jpeg'.");
|
|
228
233
|
}
|
|
229
234
|
const selectedServeUrl = (0, legacy_webpack_config_1.getServeUrlWithFallback)(options);
|
|
230
|
-
|
|
235
|
+
(0, quality_1.validateQuality)(options.quality);
|
|
231
236
|
(0, validate_scale_1.validateScale)(options.scale);
|
|
232
|
-
const browserInstance = (_a = options.puppeteerInstance) !== null && _a !== void 0 ? _a : (0, open_browser_1.openBrowser)(
|
|
237
|
+
const browserInstance = (_a = options.puppeteerInstance) !== null && _a !== void 0 ? _a : (0, open_browser_1.openBrowser)(browser_1.DEFAULT_BROWSER, {
|
|
233
238
|
shouldDumpIo: options.dumpBrowserLogs,
|
|
234
239
|
browserExecutable: options.browserExecutable,
|
|
235
240
|
chromiumOptions: options.chromiumOptions,
|
|
236
241
|
forceDeviceScaleFactor: (_b = options.scale) !== null && _b !== void 0 ? _b : 1,
|
|
237
242
|
});
|
|
238
|
-
const
|
|
239
|
-
const onDownload = (
|
|
240
|
-
const actualParallelism = (0, get_concurrency_1.getActualConcurrency)((
|
|
243
|
+
const downloadMap = (_c = options.downloadMap) !== null && _c !== void 0 ? _c : (0, download_map_1.makeDownloadMap)();
|
|
244
|
+
const onDownload = (_d = options.onDownload) !== null && _d !== void 0 ? _d : (() => () => undefined);
|
|
245
|
+
const actualParallelism = (0, get_concurrency_1.getActualConcurrency)((_e = options.parallelism) !== null && _e !== void 0 ? _e : null);
|
|
241
246
|
const openedPages = [];
|
|
242
247
|
return new Promise((resolve, reject) => {
|
|
243
248
|
var _a, _b, _c;
|
|
@@ -255,12 +260,12 @@ const renderFrames = (options) => {
|
|
|
255
260
|
Promise.all([
|
|
256
261
|
(0, prepare_server_1.prepareServer)({
|
|
257
262
|
webpackConfigOrServeUrl: selectedServeUrl,
|
|
258
|
-
downloadDir,
|
|
259
263
|
onDownload,
|
|
260
264
|
onError,
|
|
261
265
|
ffmpegExecutable: (_a = options.ffmpegExecutable) !== null && _a !== void 0 ? _a : null,
|
|
262
266
|
ffprobeExecutable: (_b = options.ffprobeExecutable) !== null && _b !== void 0 ? _b : null,
|
|
263
267
|
port: (_c = options.port) !== null && _c !== void 0 ? _c : null,
|
|
268
|
+
downloadMap,
|
|
264
269
|
}),
|
|
265
270
|
browserInstance,
|
|
266
271
|
]).then(([{ serveUrl, closeServer, offthreadPort }, puppeteerInstance]) => {
|
|
@@ -276,8 +281,8 @@ const renderFrames = (options) => {
|
|
|
276
281
|
composition,
|
|
277
282
|
actualParallelism,
|
|
278
283
|
onDownload,
|
|
279
|
-
downloadDir,
|
|
280
284
|
proxyPort: offthreadPort,
|
|
285
|
+
downloadMap,
|
|
281
286
|
});
|
|
282
287
|
}),
|
|
283
288
|
])
|
|
@@ -306,6 +311,7 @@ const renderFrames = (options) => {
|
|
|
306
311
|
cleanup.forEach((c) => {
|
|
307
312
|
c();
|
|
308
313
|
});
|
|
314
|
+
// Don't clear download dir because it might be used by stitchFramesToVideo
|
|
309
315
|
});
|
|
310
316
|
});
|
|
311
317
|
};
|
package/dist/render-media.d.ts
CHANGED
|
@@ -1,11 +1,17 @@
|
|
|
1
|
-
|
|
2
|
-
import type { BrowserExecutable, Codec, FfmpegExecutable, FrameRange, PixelFormat, ProResProfile, SmallTCompMetadata } from 'remotion';
|
|
1
|
+
import type { SmallTCompMetadata } from 'remotion';
|
|
3
2
|
import type { RenderMediaOnDownload } from './assets/download-and-map-assets-to-file';
|
|
3
|
+
import type { DownloadMap } from './assets/download-map';
|
|
4
|
+
import type { BrowserExecutable } from './browser-executable';
|
|
4
5
|
import type { BrowserLog } from './browser-log';
|
|
5
6
|
import type { Browser as PuppeteerBrowser } from './browser/Browser';
|
|
7
|
+
import type { Codec } from './codec';
|
|
8
|
+
import type { FfmpegExecutable } from './ffmpeg-executable';
|
|
9
|
+
import type { FrameRange } from './frame-range';
|
|
6
10
|
import type { ServeUrlOrWebpackBundle } from './legacy-webpack-config';
|
|
7
11
|
import type { CancelSignal } from './make-cancel-signal';
|
|
8
12
|
import type { ChromiumOptions } from './open-browser';
|
|
13
|
+
import type { PixelFormat } from './pixel-format';
|
|
14
|
+
import type { ProResProfile } from './prores-profile';
|
|
9
15
|
import type { OnStartData } from './types';
|
|
10
16
|
export declare type StitchingState = 'encoding' | 'muxing';
|
|
11
17
|
export declare type RenderMediaOnProgress = (progress: {
|
|
@@ -45,6 +51,11 @@ export declare type RenderMediaOptions = {
|
|
|
45
51
|
port?: number | null;
|
|
46
52
|
cancelSignal?: CancelSignal;
|
|
47
53
|
browserExecutable?: BrowserExecutable;
|
|
54
|
+
verbose?: boolean;
|
|
55
|
+
/**
|
|
56
|
+
* @deprecated Only for Remotion internal usage
|
|
57
|
+
*/
|
|
58
|
+
downloadMap?: DownloadMap;
|
|
48
59
|
} & ServeUrlOrWebpackBundle;
|
|
49
60
|
/**
|
|
50
61
|
*
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"render-media.d.ts","sourceRoot":"","sources":["../src/render-media.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,OAAO,IAAI,gBAAgB,EAAC,MAAM,gBAAgB,CAAC;AAChE,OAAO,EACN,KAAK,EACL,gBAAgB,EAChB,UAAU,EAEV,WAAW,EACX,aAAa,EACb,kBAAkB,EAClB,MAAM,UAAU,CAAC;AAGlB,OAAO,EAAC,UAAU,EAAC,MAAM,eAAe,CAAC;AACzC,OAAO,EAAC,WAAW,EAAC,MAAM,SAAS,CAAC;AACpC,OAAO,EAAC,qBAAqB,EAAC,MAAM,0CAA0C,CAAC;AAG/E,OAAO,EAEN,uBAAuB,EACvB,MAAM,yBAAyB,CAAC;AAIjC,OAAO,EAAC,eAAe,EAAC,MAAM,gBAAgB,CAAC;AAK/C,oBAAY,cAAc,GAAG,UAAU,GAAG,QAAQ,CAAC;AAEnD,oBAAY,qBAAqB,GAAG,CAAC,QAAQ,EAAE;IAC9C,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,WAAW,EAAE,cAAc,CAAC;CAC5B,KAAK,IAAI,CAAC;AAEX,oBAAY,kBAAkB,GAAG;IAChC,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE,KAAK,CAAC;IACb,WAAW,EAAE,kBAAkB,CAAC;IAChC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,WAAW,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC;IACtC,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC;IAC/B,iBAAiB,CAAC,EAAE,gBAAgB,CAAC;IACrC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,qBAAqB,CAAC;IACnC,UAAU,CAAC,EAAE,qBAAqB,CAAC;IACnC,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,YAAY,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,UAAU,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IACvD,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,IAAI,CAAC;IACtC,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,KAAK,CAAC,EAAE,MAAM,CAAC;CACf,GAAG,uBAAuB,CAAC;AAI5B,eAAO,MAAM,WAAW,gUAyBrB,kBAAkB,kBAuLpB,CAAC"}
|
package/dist/render-media.js
CHANGED
|
@@ -8,7 +8,10 @@ const fs_1 = __importDefault(require("fs"));
|
|
|
8
8
|
const os_1 = __importDefault(require("os"));
|
|
9
9
|
const path_1 = __importDefault(require("path"));
|
|
10
10
|
const remotion_1 = require("remotion");
|
|
11
|
+
const download_map_1 = require("./assets/download-map");
|
|
11
12
|
const can_use_parallel_encoding_1 = require("./can-use-parallel-encoding");
|
|
13
|
+
const crf_1 = require("./crf");
|
|
14
|
+
const delete_directory_1 = require("./delete-directory");
|
|
12
15
|
const ensure_frames_in_order_1 = require("./ensure-frames-in-order");
|
|
13
16
|
const ensure_output_directory_1 = require("./ensure-output-directory");
|
|
14
17
|
const get_duration_from_frame_range_1 = require("./get-duration-from-frame-range");
|
|
@@ -17,10 +20,13 @@ const get_extension_of_filename_1 = require("./get-extension-of-filename");
|
|
|
17
20
|
const get_frame_to_render_1 = require("./get-frame-to-render");
|
|
18
21
|
const legacy_webpack_config_1 = require("./legacy-webpack-config");
|
|
19
22
|
const make_cancel_signal_1 = require("./make-cancel-signal");
|
|
23
|
+
const overwrite_1 = require("./overwrite");
|
|
24
|
+
const perf_1 = require("./perf");
|
|
20
25
|
const prespawn_ffmpeg_1 = require("./prespawn-ffmpeg");
|
|
26
|
+
const prestitcher_memory_usage_1 = require("./prestitcher-memory-usage");
|
|
27
|
+
const quality_1 = require("./quality");
|
|
21
28
|
const render_frames_1 = require("./render-frames");
|
|
22
29
|
const stitch_frames_to_video_1 = require("./stitch-frames-to-video");
|
|
23
|
-
const tmp_dir_1 = require("./tmp-dir");
|
|
24
30
|
const validate_even_dimensions_with_codec_1 = require("./validate-even-dimensions-with-codec");
|
|
25
31
|
const validate_output_filename_1 = require("./validate-output-filename");
|
|
26
32
|
const validate_scale_1 = require("./validate-scale");
|
|
@@ -30,10 +36,10 @@ const validate_scale_1 = require("./validate-scale");
|
|
|
30
36
|
* @link https://www.remotion.dev/docs/renderer/render-media
|
|
31
37
|
*/
|
|
32
38
|
const renderMedia = ({ parallelism, proResProfile, crf, composition, imageFormat, ffmpegExecutable, ffprobeExecutable, inputProps, pixelFormat, codec, envVariables, quality, frameRange, puppeteerInstance, outputLocation, onProgress, overwrite, onDownload, dumpBrowserLogs, onBrowserLog, onStart, timeoutInMilliseconds, chromiumOptions, scale, browserExecutable, port, cancelSignal, ...options }) => {
|
|
33
|
-
var _a, _b;
|
|
34
|
-
|
|
39
|
+
var _a, _b, _c;
|
|
40
|
+
(0, quality_1.validateQuality)(quality);
|
|
35
41
|
if (typeof crf !== 'undefined' && crf !== null) {
|
|
36
|
-
|
|
42
|
+
(0, crf_1.validateSelectedCrfAndCodecCombination)(crf, codec);
|
|
37
43
|
}
|
|
38
44
|
if (outputLocation) {
|
|
39
45
|
(0, validate_output_filename_1.validateOutputFilename)(codec, (0, get_extension_of_filename_1.getExtensionOfFilename)(outputLocation));
|
|
@@ -51,11 +57,25 @@ const renderMedia = ({ parallelism, proResProfile, crf, composition, imageFormat
|
|
|
51
57
|
let encodedDoneIn = null;
|
|
52
58
|
let cancelled = false;
|
|
53
59
|
const renderStart = Date.now();
|
|
54
|
-
const
|
|
55
|
-
const
|
|
60
|
+
const downloadMap = (_c = options.downloadMap) !== null && _c !== void 0 ? _c : (0, download_map_1.makeDownloadMap)();
|
|
61
|
+
const { estimatedUsage, freeMemory, hasEnoughMemory } = (0, prestitcher_memory_usage_1.shouldUseParallelEncoding)({
|
|
62
|
+
height: composition.height,
|
|
63
|
+
width: composition.width,
|
|
64
|
+
});
|
|
65
|
+
const parallelEncoding = hasEnoughMemory && (0, can_use_parallel_encoding_1.canUseParallelEncoding)(codec);
|
|
66
|
+
if (options.verbose) {
|
|
67
|
+
console.log('[PRESTITCHER] Free memory:', freeMemory, 'Estimated usage parallel encoding', estimatedUsage);
|
|
68
|
+
console.log('[PRESTICHER]: Codec supports parallel rendering:', (0, can_use_parallel_encoding_1.canUseParallelEncoding)(codec));
|
|
69
|
+
if (parallelEncoding) {
|
|
70
|
+
console.log('[PRESTICHER] Parallel encoding is enabled.');
|
|
71
|
+
}
|
|
72
|
+
else {
|
|
73
|
+
console.log('[PRESTITCHER] Parallel encoding is disabled.');
|
|
74
|
+
}
|
|
75
|
+
}
|
|
56
76
|
const actualImageFormat = imageFormat !== null && imageFormat !== void 0 ? imageFormat : 'jpeg';
|
|
57
77
|
const preEncodedFileLocation = parallelEncoding
|
|
58
|
-
? path_1.default.join(
|
|
78
|
+
? path_1.default.join(downloadMap.preEncode, 'pre-encode.' + (0, get_extension_from_codec_1.getFileExtensionFromCodec)(codec, 'chunk'))
|
|
59
79
|
: null;
|
|
60
80
|
const outputDir = parallelEncoding
|
|
61
81
|
? null
|
|
@@ -84,8 +104,9 @@ const renderMedia = ({ parallelism, proResProfile, crf, composition, imageFormat
|
|
|
84
104
|
});
|
|
85
105
|
const { waitForRightTimeOfFrameToBeInserted, setFrameToStitch, waitForFinish } = (0, ensure_frames_in_order_1.ensureFramesInOrder)(realFrameRange);
|
|
86
106
|
const fps = composition.fps / (everyNthFrame !== null && everyNthFrame !== void 0 ? everyNthFrame : 1);
|
|
87
|
-
remotion_1.Internals.validateFps(fps, 'in "renderMedia()"', codec);
|
|
107
|
+
remotion_1.Internals.validateFps(fps, 'in "renderMedia()"', codec === 'gif');
|
|
88
108
|
const createPrestitcherIfNecessary = async () => {
|
|
109
|
+
var _a;
|
|
89
110
|
if (preEncodedFileLocation) {
|
|
90
111
|
preStitcher = await (0, prespawn_ffmpeg_1.prespawnFfmpeg)({
|
|
91
112
|
width: composition.width * (scale !== null && scale !== void 0 ? scale : 1),
|
|
@@ -100,7 +121,7 @@ const renderMedia = ({ parallelism, proResProfile, crf, composition, imageFormat
|
|
|
100
121
|
encodedFrames = frame;
|
|
101
122
|
callUpdate();
|
|
102
123
|
},
|
|
103
|
-
verbose:
|
|
124
|
+
verbose: (_a = options.verbose) !== null && _a !== void 0 ? _a : false,
|
|
104
125
|
ffmpegExecutable,
|
|
105
126
|
imageFormat: actualImageFormat,
|
|
106
127
|
signal: cancelPrestitcher.cancelSignal,
|
|
@@ -150,9 +171,9 @@ const renderMedia = ({ parallelism, proResProfile, crf, composition, imageFormat
|
|
|
150
171
|
if (cancelled) {
|
|
151
172
|
return;
|
|
152
173
|
}
|
|
153
|
-
const id =
|
|
174
|
+
const id = (0, perf_1.startPerfMeasure)('piping');
|
|
154
175
|
(_a = stitcherFfmpeg === null || stitcherFfmpeg === void 0 ? void 0 : stitcherFfmpeg.stdin) === null || _a === void 0 ? void 0 : _a.write(buffer);
|
|
155
|
-
|
|
176
|
+
(0, perf_1.stopPerfMeasure)(id);
|
|
156
177
|
setFrameToStitch(Math.min(realFrameRange[1] + 1, frame + everyNthFrame));
|
|
157
178
|
}
|
|
158
179
|
: undefined,
|
|
@@ -168,6 +189,7 @@ const renderMedia = ({ parallelism, proResProfile, crf, composition, imageFormat
|
|
|
168
189
|
browserExecutable,
|
|
169
190
|
port,
|
|
170
191
|
cancelSignal: cancelRenderFrames.cancelSignal,
|
|
192
|
+
downloadMap,
|
|
171
193
|
});
|
|
172
194
|
return renderFramesProc;
|
|
173
195
|
})
|
|
@@ -191,7 +213,7 @@ const renderMedia = ({ parallelism, proResProfile, crf, composition, imageFormat
|
|
|
191
213
|
preEncodedFileLocation,
|
|
192
214
|
imageFormat: actualImageFormat,
|
|
193
215
|
},
|
|
194
|
-
force: overwrite !== null && overwrite !== void 0 ? overwrite :
|
|
216
|
+
force: overwrite !== null && overwrite !== void 0 ? overwrite : overwrite_1.DEFAULT_OVERWRITE,
|
|
195
217
|
pixelFormat,
|
|
196
218
|
codec,
|
|
197
219
|
proResProfile,
|
|
@@ -206,7 +228,7 @@ const renderMedia = ({ parallelism, proResProfile, crf, composition, imageFormat
|
|
|
206
228
|
},
|
|
207
229
|
onDownload,
|
|
208
230
|
numberOfGifLoops,
|
|
209
|
-
verbose:
|
|
231
|
+
verbose: options.verbose,
|
|
210
232
|
dir: outputDir !== null && outputDir !== void 0 ? outputDir : undefined,
|
|
211
233
|
cancelSignal: cancelStitcher.cancelSignal,
|
|
212
234
|
}),
|
|
@@ -245,7 +267,11 @@ const renderMedia = ({ parallelism, proResProfile, crf, composition, imageFormat
|
|
|
245
267
|
.finally(() => {
|
|
246
268
|
if (preEncodedFileLocation !== null &&
|
|
247
269
|
fs_1.default.existsSync(preEncodedFileLocation)) {
|
|
248
|
-
|
|
270
|
+
(0, delete_directory_1.deleteDirectory)(path_1.default.dirname(preEncodedFileLocation));
|
|
271
|
+
}
|
|
272
|
+
// Clean download map if it was not passed in
|
|
273
|
+
if (!(options === null || options === void 0 ? void 0 : options.downloadMap)) {
|
|
274
|
+
(0, download_map_1.cleanDownloadMap)(downloadMap);
|
|
249
275
|
}
|
|
250
276
|
});
|
|
251
277
|
return Promise.race([
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"render-media.js","sourceRoot":"","sources":["../src/render-media.ts"],"names":[],"mappings":";;;;;;AACA,4CAAoB;AACpB,4CAAoB;AACpB,gDAAwB;AAExB,uCAQkB;AAClB,yCAA4D;AAC5D,qCAAsC;AAItC,uCAAiC;AACjC,yEAAqE;AACrE,mEAGiC;AACjC,uEAAgE;AAChE,qEAA6D;AAC7D,+DAAwD;AAExD,qDAA+C;AAC/C,2EAAmE;AACnE,+FAAsF;AAwC/E,MAAM,WAAW,GAAG,KAAK,EAAE,EACjC,WAAW,EACX,aAAa,EACb,GAAG,EACH,WAAW,EACX,WAAW,EACX,gBAAgB,EAChB,UAAU,EACV,WAAW,EACX,KAAK,EACL,YAAY,EACZ,OAAO,EACP,UAAU,EACV,iBAAiB,EACjB,cAAc,EACd,UAAU,EACV,SAAS,EACT,UAAU,EACV,eAAe,EACf,YAAY,EACZ,OAAO,EACP,qBAAqB,EACrB,eAAe,EACf,KAAK,EACL,GAAG,OAAO,EACU,EAAE,EAAE;;IACxB,oBAAS,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;IACnC,IAAI,OAAO,GAAG,KAAK,WAAW,IAAI,GAAG,KAAK,IAAI,EAAE;QAC/C,oBAAS,CAAC,sCAAsC,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;KAC7D;IAED,IAAA,8BAAa,EAAC,KAAK,CAAC,CAAC;IAErB,MAAM,QAAQ,GAAG,IAAA,+CAAuB,EAAC,OAAO,CAAC,CAAC;IAElD,IAAI,WAAW,GAAmB,UAAU,CAAC;IAC7C,IAAI,cAAqD,CAAC;IAC1D,IAAI,WAAW,GAAiD,IAAI,CAAC;IACrE,IAAI,aAAa,GAAG,CAAC,CAAC;IACtB,IAAI,cAAc,GAAG,CAAC,CAAC;IACvB,IAAI,cAAc,GAAkB,IAAI,CAAC;IACzC,IAAI,aAAa,GAAkB,IAAI,CAAC;IACxC,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC/B,MAAM,MAAM,GAAG,IAAA,gBAAM,EAAC,YAAY,CAAC,CAAC;IACpC,MAAM,gBAAgB,GAAG,IAAA,kDAAsB,EAAC,KAAK,CAAC,CAAC;IACvD,MAAM,iBAAiB,GAAG,WAAW,aAAX,WAAW,cAAX,WAAW,GAAI,MAAM,CAAC;IAEhD,MAAM,sBAAsB,GAAG,gBAAgB;QAC9C,CAAC,CAAC,cAAI,CAAC,IAAI,CACT,MAAM,EACN,aAAa,GAAG,IAAA,oDAAyB,EAAC,KAAK,EAAE,OAAO,CAAC,CACxD;QACH,CAAC,CAAC,IAAI,CAAC;IAER,MAAM,SAAS,GAAG,gBAAgB;QACjC,CAAC,CAAC,IAAI;QACN,CAAC,CAAC,MAAM,YAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,cAAI,CAAC,IAAI,CAAC,YAAE,CAAC,MAAM,EAAE,EAAE,qBAAqB,CAAC,CAAC,CAAC;IAE5E,IAAA,qEAA+B,EAAC;QAC/B,KAAK;QACL,MAAM,EAAE,WAAW,CAAC,MAAM;QAC1B,KAAK,EAAE,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,CAAC;QACjB,KAAK,EAAE,WAAW,CAAC,KAAK;KACxB,CAAC,CAAC;IAEH,IAAI;QACH,MAAM,UAAU,GAAG,GAAG,EAAE;YACvB,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAG;gBACZ,aAAa;gBACb,aAAa;gBACb,cAAc;gBACd,cAAc;gBACd,WAAW;aACX,CAAC,CAAC;QACJ,CAAC,CAAC;QAEF,IAAI,sBAAsB,EAAE;YAC3B,WAAW,GAAG,MAAM,IAAA,sBAAW,EAAC;gBAC/B,KAAK,EAAE,WAAW,CAAC,KAAK,GAAG,CAAC,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,CAAC,CAAC;gBACvC,MAAM,EAAE,WAAW,CAAC,MAAM,GAAG,CAAC,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,CAAC,CAAC;gBACzC,GAAG,EAAE,WAAW,CAAC,GAAG;gBACpB,cAAc,EAAE,sBAAsB;gBACtC,KAAK,EAAE,IAAI;gBACX,WAAW;gBACX,KAAK;gBACL,aAAa;gBACb,GAAG;gBACH,UAAU,EAAE,CAAC,KAAa,EAAE,EAAE;oBAC7B,aAAa,GAAG,KAAK,CAAC;oBACtB,UAAU,EAAE,CAAC;gBACd,CAAC;gBACD,OAAO,EAAE,oBAAS,CAAC,OAAO,CAAC,sBAAsB,CAChD,oBAAS,CAAC,OAAO,CAAC,WAAW,EAAE,EAC/B,SAAS,CACT;gBACD,gBAAgB;gBAChB,eAAe,EAAE;oBAChB,gBAAgB;oBAChB,sBAAsB,EAAE,IAAI;oBAC5B,WAAW,EAAE,iBAAiB;iBAC9B;gBACD,UAAU,EAAE,IAAI;aAChB,CAAC,CAAC;YACH,cAAc,GAAG,WAAW,CAAC,IAAI,CAAC;SAClC;QAED,MAAM,EACL,mCAAmC,EACnC,gBAAgB,EAChB,aAAa,GACb,GAAG,IAAA,4CAAmB,EACtB,IAAA,uCAAiB,EAAC,WAAW,CAAC,gBAAgB,EAAE,UAAU,aAAV,UAAU,cAAV,UAAU,GAAI,IAAI,CAAC,CACnE,CAAC;QAEF,MAAM,EAAC,UAAU,EAAC,GAAG,MAAM,IAAA,qBAAY,EAAC;YACvC,MAAM,EAAE,WAAW;YACnB,aAAa,EAAE,CAAC,KAAa,EAAE,EAAE;gBAChC,cAAc,GAAG,KAAK,CAAC;gBACvB,UAAU,EAAE,CAAC;YACd,CAAC;YACD,WAAW;YACX,SAAS;YACT,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;gBACjB,cAAc,GAAG,CAAC,CAAC;gBACnB,UAAU,EAAE,CAAC;gBACb,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAG,IAAI,CAAC,CAAC;YACjB,CAAC;YACD,UAAU;YACV,YAAY;YACZ,WAAW,EAAE,iBAAiB;YAC9B,OAAO;YACP,UAAU,EAAE,UAAU,aAAV,UAAU,cAAV,UAAU,GAAI,IAAI;YAC9B,iBAAiB;YACjB,aAAa,EAAE,gBAAgB;gBAC9B,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE;;oBACxB,MAAM,mCAAmC,CAAC,KAAK,CAAC,CAAC;oBACjD,MAAA,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,KAAK,0CAAE,KAAK,CAAC,MAAM,CAAC,CAAC;oBAErC,gBAAgB,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;gBAC5B,CAAC;gBACH,CAAC,CAAC,SAAS;YACZ,QAAQ;YACR,eAAe;YACf,YAAY;YACZ,UAAU;YACV,qBAAqB;YACrB,eAAe;YACf,KAAK;SACL,CAAC,CAAC;QACH,IAAI,cAAc,EAAE;YACnB,MAAM,aAAa,EAAE,CAAC;YACtB,MAAA,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,KAAK,0CAAE,GAAG,EAAE,CAAC;YAC7B,IAAI;gBACH,MAAM,cAAc,CAAC;aACrB;YAAC,OAAO,GAAG,EAAE;gBACb,MAAM,IAAI,KAAK,CAAC,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,OAAO,EAAE,CAAC,CAAC;aACxC;oBAAS;gBACT,MAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,OAAO,+CAApB,WAAW,CAAa,CAAC;aACzB;SACD;QAED,cAAc,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,WAAW,CAAC;QAC1C,UAAU,EAAE,CAAC;QAEb,IAAA,+CAAqB,EAAC,cAAc,CAAC,CAAC;QAEtC,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAE/B,MAAM,IAAA,8BAAmB,EAAC;YACzB,KAAK,EAAE,WAAW,CAAC,KAAK,GAAG,CAAC,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,CAAC,CAAC;YACvC,MAAM,EAAE,WAAW,CAAC,MAAM,GAAG,CAAC,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,CAAC,CAAC;YACzC,GAAG,EAAE,WAAW,CAAC,GAAG;YACpB,cAAc;YACd,eAAe,EAAE;gBAChB,gBAAgB,EAAE,KAAK;gBACvB,sBAAsB;gBACtB,WAAW,EAAE,iBAAiB;aAC9B;YACD,KAAK,EAAE,SAAS,aAAT,SAAS,cAAT,SAAS,GAAI,oBAAS,CAAC,iBAAiB;YAC/C,WAAW;YACX,KAAK;YACL,aAAa;YACb,GAAG;YACH,UAAU;YACV,gBAAgB;YAChB,UAAU,EAAE,CAAC,KAAa,EAAE,EAAE;gBAC7B,WAAW,GAAG,QAAQ,CAAC;gBACvB,aAAa,GAAG,KAAK,CAAC;gBACtB,UAAU,EAAE,CAAC;YACd,CAAC;YACD,UAAU;YACV,OAAO,EAAE,oBAAS,CAAC,OAAO,CAAC,sBAAsB,CAChD,oBAAS,CAAC,OAAO,CAAC,WAAW,EAAE,EAC/B,SAAS,CACT;YACD,GAAG,EAAE,SAAS,aAAT,SAAS,cAAT,SAAS,GAAI,SAAS;SAC3B,CAAC,CAAC;QACH,aAAa,GAAG,WAAW,CAAC,gBAAgB,CAAC;QAC7C,aAAa,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,WAAW,CAAC;QACzC,UAAU,EAAE,CAAC;KACb;YAAS;QACT,IACC,sBAAsB,KAAK,IAAI;YAC/B,YAAE,CAAC,UAAU,CAAC,sBAAsB,CAAC,EACpC;YACD,YAAE,CAAC,UAAU,CAAC,sBAAsB,CAAC,CAAC;SACtC;KACD;AACF,CAAC,CAAC;AAhNW,QAAA,WAAW,eAgNtB"}
|
package/dist/render-still.d.ts
CHANGED
|
@@ -1,6 +1,10 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { SmallTCompMetadata } from 'remotion';
|
|
2
2
|
import type { RenderMediaOnDownload } from './assets/download-and-map-assets-to-file';
|
|
3
|
+
import type { DownloadMap } from './assets/download-map';
|
|
4
|
+
import type { BrowserExecutable } from './browser-executable';
|
|
3
5
|
import type { Browser as PuppeteerBrowser } from './browser/Browser';
|
|
6
|
+
import type { FfmpegExecutable } from './ffmpeg-executable';
|
|
7
|
+
import type { StillImageFormat } from './image-format';
|
|
4
8
|
import type { ServeUrlOrWebpackBundle } from './legacy-webpack-config';
|
|
5
9
|
import type { CancelSignal } from './make-cancel-signal';
|
|
6
10
|
import type { ChromiumOptions } from './open-browser';
|
|
@@ -23,6 +27,10 @@ declare type InnerStillOptions = {
|
|
|
23
27
|
cancelSignal?: CancelSignal;
|
|
24
28
|
ffmpegExecutable?: FfmpegExecutable;
|
|
25
29
|
ffprobeExecutable?: FfmpegExecutable;
|
|
30
|
+
/**
|
|
31
|
+
* @deprecated Only for Remotion internal usage
|
|
32
|
+
*/
|
|
33
|
+
downloadMap?: DownloadMap;
|
|
26
34
|
};
|
|
27
35
|
declare type RenderStillOptions = InnerStillOptions & ServeUrlOrWebpackBundle & {
|
|
28
36
|
port?: number | null;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"render-still.d.ts","sourceRoot":"","sources":["../src/render-still.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,OAAO,IAAI,gBAAgB,EAAC,MAAM,gBAAgB,CAAC;AAC3D,OAAO,EACN,iBAAiB,EAEjB,gBAAgB,EAChB,aAAa,EACb,MAAM,UAAU,CAAC;AAGlB,OAAO,EAEN,uBAAuB,EACvB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAC,eAAe,EAAc,MAAM,gBAAgB,CAAC;AAS5D,aAAK,iBAAiB,GAAG;IACxB,WAAW,EAAE,aAAa,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,WAAW,CAAC,EAAE,gBAAgB,CAAC;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iBAAiB,CAAC,EAAE,gBAAgB,CAAC;IACrC,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,KAAK,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,oBAAY,kBAAkB,GAAG,iBAAiB,GAAG,uBAAuB,CAAC;AAqJ7E;;GAEG;AAEH,eAAO,MAAM,WAAW,YACd,kBAAkB,KACzB,QAAQ,IAAI,CAed,CAAC"}
|
package/dist/render-still.js
CHANGED
|
@@ -30,25 +30,29 @@ exports.renderStill = void 0;
|
|
|
30
30
|
const fs_1 = __importStar(require("fs"));
|
|
31
31
|
const path_1 = __importDefault(require("path"));
|
|
32
32
|
const remotion_1 = require("remotion");
|
|
33
|
+
const download_map_1 = require("./assets/download-map");
|
|
34
|
+
const browser_1 = require("./browser");
|
|
33
35
|
const ensure_output_directory_1 = require("./ensure-output-directory");
|
|
34
36
|
const handle_javascript_exception_1 = require("./error-handling/handle-javascript-exception");
|
|
37
|
+
const image_format_1 = require("./image-format");
|
|
35
38
|
const legacy_webpack_config_1 = require("./legacy-webpack-config");
|
|
36
|
-
const make_assets_download_dir_1 = require("./make-assets-download-dir");
|
|
37
39
|
const open_browser_1 = require("./open-browser");
|
|
38
40
|
const prepare_server_1 = require("./prepare-server");
|
|
39
41
|
const provide_screenshot_1 = require("./provide-screenshot");
|
|
40
42
|
const puppeteer_evaluate_1 = require("./puppeteer-evaluate");
|
|
43
|
+
const quality_1 = require("./quality");
|
|
41
44
|
const seek_to_frame_1 = require("./seek-to-frame");
|
|
42
45
|
const set_props_and_env_1 = require("./set-props-and-env");
|
|
46
|
+
const validate_frame_1 = require("./validate-frame");
|
|
43
47
|
const validate_puppeteer_timeout_1 = require("./validate-puppeteer-timeout");
|
|
44
48
|
const validate_scale_1 = require("./validate-scale");
|
|
45
49
|
const innerRenderStill = async ({ composition, quality, imageFormat = 'png', serveUrl, puppeteerInstance, dumpBrowserLogs = false, onError, inputProps, envVariables, output, frame = 0, overwrite = true, browserExecutable, timeoutInMilliseconds, chromiumOptions, scale, proxyPort, cancelSignal, }) => {
|
|
46
50
|
remotion_1.Internals.validateDimension(composition.height, 'height', 'in the `config` object passed to `renderStill()`');
|
|
47
51
|
remotion_1.Internals.validateDimension(composition.width, 'width', 'in the `config` object passed to `renderStill()`');
|
|
48
|
-
remotion_1.Internals.validateFps(composition.fps, 'in the `config` object of `renderStill()`',
|
|
52
|
+
remotion_1.Internals.validateFps(composition.fps, 'in the `config` object of `renderStill()`', false);
|
|
49
53
|
remotion_1.Internals.validateDurationInFrames(composition.durationInFrames, 'in the `config` object passed to `renderStill()`');
|
|
50
|
-
|
|
51
|
-
|
|
54
|
+
(0, image_format_1.validateNonNullImageFormat)(imageFormat);
|
|
55
|
+
(0, validate_frame_1.validateFrame)(frame, composition.durationInFrames);
|
|
52
56
|
(0, validate_puppeteer_timeout_1.validatePuppeteerTimeout)(timeoutInMilliseconds);
|
|
53
57
|
(0, validate_scale_1.validateScale)(scale);
|
|
54
58
|
if (typeof output !== 'string') {
|
|
@@ -58,7 +62,7 @@ const innerRenderStill = async ({ composition, quality, imageFormat = 'png', ser
|
|
|
58
62
|
if (quality !== undefined && imageFormat !== 'jpeg') {
|
|
59
63
|
throw new Error("You can only pass the `quality` option if `imageFormat` is 'jpeg'.");
|
|
60
64
|
}
|
|
61
|
-
|
|
65
|
+
(0, quality_1.validateQuality)(quality);
|
|
62
66
|
if (fs_1.default.existsSync(output)) {
|
|
63
67
|
if (!overwrite) {
|
|
64
68
|
throw new Error(`Cannot render still - "overwrite" option was set to false, but the output destination ${output} already exists.`);
|
|
@@ -69,7 +73,7 @@ const innerRenderStill = async ({ composition, quality, imageFormat = 'png', ser
|
|
|
69
73
|
}
|
|
70
74
|
}
|
|
71
75
|
(0, ensure_output_directory_1.ensureOutputDirectory)(output);
|
|
72
|
-
const browserInstance = puppeteerInstance !== null && puppeteerInstance !== void 0 ? puppeteerInstance : (await (0, open_browser_1.openBrowser)(
|
|
76
|
+
const browserInstance = puppeteerInstance !== null && puppeteerInstance !== void 0 ? puppeteerInstance : (await (0, open_browser_1.openBrowser)(browser_1.DEFAULT_BROWSER, {
|
|
73
77
|
browserExecutable,
|
|
74
78
|
shouldDumpIo: dumpBrowserLogs,
|
|
75
79
|
chromiumOptions,
|
|
@@ -143,22 +147,22 @@ const innerRenderStill = async ({ composition, quality, imageFormat = 'png', ser
|
|
|
143
147
|
* @link https://www.remotion.dev/docs/renderer/render-still
|
|
144
148
|
*/
|
|
145
149
|
const renderStill = (options) => {
|
|
146
|
-
var _a;
|
|
150
|
+
var _a, _b;
|
|
147
151
|
const selectedServeUrl = (0, legacy_webpack_config_1.getServeUrlWithFallback)(options);
|
|
148
|
-
const
|
|
149
|
-
const onDownload = (
|
|
152
|
+
const downloadMap = (_a = options.downloadMap) !== null && _a !== void 0 ? _a : (0, download_map_1.makeDownloadMap)();
|
|
153
|
+
const onDownload = (_b = options.onDownload) !== null && _b !== void 0 ? _b : (() => () => undefined);
|
|
150
154
|
const happyPath = new Promise((resolve, reject) => {
|
|
151
155
|
var _a, _b, _c;
|
|
152
156
|
const onError = (err) => reject(err);
|
|
153
157
|
let close = null;
|
|
154
158
|
(0, prepare_server_1.prepareServer)({
|
|
155
159
|
webpackConfigOrServeUrl: selectedServeUrl,
|
|
156
|
-
downloadDir,
|
|
157
160
|
onDownload,
|
|
158
161
|
onError,
|
|
159
162
|
ffmpegExecutable: (_a = options.ffmpegExecutable) !== null && _a !== void 0 ? _a : null,
|
|
160
163
|
ffprobeExecutable: (_b = options.ffprobeExecutable) !== null && _b !== void 0 ? _b : null,
|
|
161
164
|
port: (_c = options.port) !== null && _c !== void 0 ? _c : null,
|
|
165
|
+
downloadMap,
|
|
162
166
|
})
|
|
163
167
|
.then(({ serveUrl, closeServer, offthreadPort }) => {
|
|
164
168
|
close = closeServer;
|
|
@@ -171,7 +175,13 @@ const renderStill = (options) => {
|
|
|
171
175
|
})
|
|
172
176
|
.then((res) => resolve(res))
|
|
173
177
|
.catch((err) => reject(err))
|
|
174
|
-
.finally(() =>
|
|
178
|
+
.finally(() => {
|
|
179
|
+
// Clean download map if it was not passed in
|
|
180
|
+
if (!(options === null || options === void 0 ? void 0 : options.downloadMap)) {
|
|
181
|
+
(0, download_map_1.cleanDownloadMap)(downloadMap);
|
|
182
|
+
}
|
|
183
|
+
return close === null || close === void 0 ? void 0 : close();
|
|
184
|
+
});
|
|
175
185
|
});
|
|
176
186
|
return Promise.race([
|
|
177
187
|
happyPath,
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"render-still.js","sourceRoot":"","sources":["../src/render-still.ts"],"names":[],"mappings":"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"}
|