@remotion/renderer 4.0.0-reorg.8 → 4.0.0-retry.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE.md +8 -8
- package/dist/assets/calculate-asset-positions.d.ts +0 -0
- package/dist/assets/calculate-asset-positions.js +0 -0
- package/dist/assets/calculate-atempo.d.ts +0 -0
- package/dist/assets/calculate-atempo.js +0 -0
- package/dist/assets/convert-assets-to-file-urls.d.ts +3 -2
- package/dist/assets/convert-assets-to-file-urls.js +2 -2
- package/dist/assets/download-and-map-assets-to-file.d.ts +8 -6
- package/dist/assets/download-and-map-assets-to-file.js +91 -50
- package/dist/assets/download-file.d.ts +1 -1
- package/dist/assets/download-file.js +4 -2
- 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 +0 -0
- package/dist/assets/ffmpeg-volume-expression.js +0 -0
- package/dist/assets/flatten-volume-array.d.ts +0 -0
- package/dist/assets/flatten-volume-array.js +0 -0
- package/dist/assets/get-audio-channels.d.ts +2 -6
- package/dist/assets/get-audio-channels.js +6 -7
- package/dist/assets/get-video-stream-duration.d.ts +3 -5
- package/dist/assets/get-video-stream-duration.js +39 -14
- package/dist/assets/read-file.d.ts +0 -0
- package/dist/assets/read-file.js +0 -0
- package/dist/assets/round-volume-to-avoid-stack-overflow.d.ts +0 -0
- package/dist/assets/round-volume-to-avoid-stack-overflow.js +0 -0
- package/dist/assets/sanitize-filename.d.ts +0 -0
- package/dist/assets/sanitize-filename.js +0 -0
- package/dist/assets/sanitize-filepath.d.ts +0 -0
- package/dist/assets/sanitize-filepath.js +0 -0
- package/dist/assets/truncate-utf8-bytes.d.ts +0 -0
- package/dist/assets/truncate-utf8-bytes.js +0 -0
- package/dist/assets/types.d.ts +0 -0
- package/dist/assets/types.js +0 -0
- package/dist/browser/Browser.d.ts +1 -0
- package/dist/browser/Browser.js +9 -10
- package/dist/browser/BrowserConnector.d.ts +0 -0
- package/dist/browser/BrowserConnector.js +0 -0
- package/dist/browser/BrowserFetcher.d.ts +0 -0
- package/dist/browser/BrowserFetcher.js +12 -10
- package/dist/browser/BrowserPage.d.ts +0 -0
- package/dist/browser/BrowserPage.js +0 -0
- package/dist/browser/BrowserRunner.d.ts +1 -4
- package/dist/browser/BrowserRunner.js +28 -71
- package/dist/browser/Connection.d.ts +0 -0
- package/dist/browser/Connection.js +1 -1
- package/dist/browser/ConsoleMessage.d.ts +0 -0
- package/dist/browser/ConsoleMessage.js +0 -0
- package/dist/browser/DOMWorld.d.ts +0 -0
- package/dist/browser/DOMWorld.js +0 -0
- package/dist/browser/Errors.d.ts +0 -0
- package/dist/browser/Errors.js +0 -0
- package/dist/browser/EvalTypes.d.ts +0 -0
- package/dist/browser/EvalTypes.js +0 -0
- package/dist/browser/EventEmitter.d.ts +0 -0
- package/dist/browser/EventEmitter.js +0 -0
- package/dist/browser/ExecutionContext.d.ts +0 -0
- package/dist/browser/ExecutionContext.js +0 -0
- package/dist/browser/FrameManager.d.ts +0 -0
- package/dist/browser/FrameManager.js +0 -0
- package/dist/browser/HTTPRequest.d.ts +0 -0
- package/dist/browser/HTTPRequest.js +0 -0
- package/dist/browser/HTTPResponse.d.ts +0 -0
- package/dist/browser/HTTPResponse.js +0 -0
- package/dist/browser/JSHandle.d.ts +0 -0
- package/dist/browser/JSHandle.js +0 -0
- package/dist/browser/LaunchOptions.d.ts +0 -4
- package/dist/browser/LaunchOptions.js +0 -0
- package/dist/browser/Launcher.d.ts +1 -1
- package/dist/browser/Launcher.js +5 -363
- package/dist/browser/LifecycleWatcher.d.ts +0 -0
- package/dist/browser/LifecycleWatcher.js +0 -0
- package/dist/browser/NetworkEventManager.d.ts +0 -0
- package/dist/browser/NetworkEventManager.js +0 -0
- package/dist/browser/NetworkManager.d.ts +0 -0
- package/dist/browser/NetworkManager.js +0 -0
- package/dist/browser/NodeWebSocketTransport.d.ts +0 -0
- package/dist/browser/NodeWebSocketTransport.js +1 -1
- package/dist/browser/Product.d.ts +0 -0
- package/dist/browser/Product.js +0 -0
- package/dist/browser/PuppeteerNode.d.ts +0 -0
- package/dist/browser/PuppeteerNode.js +1 -4
- package/dist/browser/PuppeteerViewport.d.ts +0 -0
- package/dist/browser/PuppeteerViewport.js +0 -0
- package/dist/browser/ScreenshotOptions.d.ts +0 -0
- package/dist/browser/ScreenshotOptions.js +0 -0
- package/dist/browser/Target.d.ts +0 -0
- package/dist/browser/Target.js +0 -0
- package/dist/browser/TaskQueue.d.ts +0 -0
- package/dist/browser/TaskQueue.js +0 -0
- package/dist/browser/TimeoutSettings.d.ts +0 -0
- package/dist/browser/TimeoutSettings.js +0 -0
- package/dist/browser/assert.d.ts +0 -0
- package/dist/browser/assert.js +0 -0
- package/dist/browser/create-browser-fetcher.d.ts +0 -0
- package/dist/browser/create-browser-fetcher.js +2 -44
- package/dist/browser/devtools-commands.d.ts +0 -0
- package/dist/browser/devtools-commands.js +0 -0
- package/dist/browser/devtools-types.d.ts +0 -0
- package/dist/browser/devtools-types.js +0 -0
- package/dist/browser/get-download-destination.d.ts +0 -0
- package/dist/browser/get-download-destination.js +0 -0
- package/dist/browser/mitt/index.d.ts +0 -0
- package/dist/browser/mitt/index.js +0 -0
- package/dist/browser/node.d.ts +0 -0
- package/dist/browser/node.js +0 -0
- package/dist/browser/revisions.d.ts +0 -1
- package/dist/browser/revisions.js +0 -1
- package/dist/browser/util.d.ts +0 -0
- package/dist/browser/util.js +0 -0
- package/dist/browser-executable.d.ts +0 -0
- package/dist/browser-executable.js +0 -0
- package/dist/browser-log.d.ts +0 -0
- package/dist/browser-log.js +0 -0
- package/dist/browser.d.ts +0 -0
- package/dist/browser.js +0 -0
- package/dist/calculate-ffmpeg-filters.d.ts +0 -0
- package/dist/calculate-ffmpeg-filters.js +0 -0
- package/dist/calculate-sar-dar-pixels.d.ts +0 -0
- package/dist/calculate-sar-dar-pixels.js +0 -0
- package/dist/can-use-parallel-encoding.d.ts +0 -0
- package/dist/can-use-parallel-encoding.js +0 -0
- package/dist/check-apple-silicon.d.ts +1 -0
- package/dist/check-apple-silicon.js +55 -0
- package/dist/chunk.d.ts +0 -0
- package/dist/chunk.js +0 -0
- package/dist/codec-supports-media.d.ts +1 -0
- package/dist/codec-supports-media.js +8 -1
- package/dist/codec.d.ts +0 -0
- package/dist/codec.js +0 -0
- package/dist/combine-videos.d.ts +0 -0
- package/dist/combine-videos.js +1 -1
- package/dist/compress-assets.d.ts +0 -0
- package/dist/compress-assets.js +0 -0
- package/dist/convert-number-of-gif-loops-to-ffmpeg.d.ts +0 -0
- package/dist/convert-number-of-gif-loops-to-ffmpeg.js +0 -0
- package/dist/convert-to-pcm.d.ts +0 -0
- package/dist/convert-to-pcm.js +0 -0
- package/dist/convert-to-positive-frame-index.d.ts +4 -0
- package/dist/convert-to-positive-frame-index.js +8 -0
- package/dist/create-ffmpeg-complex-filter.d.ts +2 -1
- package/dist/create-ffmpeg-complex-filter.js +2 -11
- package/dist/create-ffmpeg-merge-filter.d.ts +0 -0
- package/dist/create-ffmpeg-merge-filter.js +0 -0
- package/dist/create-silent-audio.d.ts +0 -0
- package/dist/create-silent-audio.js +0 -0
- package/dist/crf.d.ts +5 -1
- package/dist/crf.js +33 -6
- package/dist/cycle-browser-tabs.d.ts +0 -0
- package/dist/cycle-browser-tabs.js +0 -0
- package/dist/delay-render-embedded-stack.d.ts +0 -0
- package/dist/delay-render-embedded-stack.js +0 -0
- package/dist/delete-directory.d.ts +0 -0
- package/dist/delete-directory.js +0 -0
- package/dist/ensure-frames-in-order.d.ts +0 -0
- package/dist/ensure-frames-in-order.js +0 -0
- package/dist/ensure-output-directory.d.ts +0 -0
- package/dist/ensure-output-directory.js +0 -0
- package/dist/ensure-presentation-timestamp.d.ts +2 -1
- package/dist/ensure-presentation-timestamp.js +7 -5
- package/dist/error-handling/handle-javascript-exception.d.ts +0 -0
- package/dist/error-handling/handle-javascript-exception.js +0 -0
- package/dist/error-handling/symbolicate-error.d.ts +0 -0
- package/dist/error-handling/symbolicate-error.js +0 -0
- package/dist/error-handling/symbolicateable-error.d.ts +0 -0
- package/dist/error-handling/symbolicateable-error.js +0 -0
- package/dist/extract-frame-from-video.d.ts +2 -0
- package/dist/extract-frame-from-video.js +42 -15
- package/dist/ffmpeg-executable.d.ts +0 -0
- package/dist/ffmpeg-executable.js +0 -0
- package/dist/ffmpeg-filter-file.d.ts +2 -1
- package/dist/ffmpeg-filter-file.js +4 -6
- package/dist/ffmpeg-flags.d.ts +5 -2
- package/dist/ffmpeg-flags.js +37 -7
- package/dist/ffmpeg-override.d.ts +4 -0
- package/dist/ffmpeg-override.js +2 -0
- package/dist/frame-range.d.ts +0 -0
- package/dist/frame-range.js +0 -0
- package/dist/frame-to-ffmpeg-timestamp.d.ts +0 -0
- package/dist/frame-to-ffmpeg-timestamp.js +0 -0
- package/dist/get-audio-codec-name.d.ts +0 -0
- package/dist/get-audio-codec-name.js +0 -0
- package/dist/get-browser-instance.d.ts +0 -0
- package/dist/get-browser-instance.js +0 -0
- package/dist/get-codec-name.d.ts +0 -0
- package/dist/get-codec-name.js +0 -0
- package/dist/get-compositions.d.ts +5 -0
- package/dist/get-compositions.js +14 -6
- package/dist/get-concurrency.d.ts +0 -0
- package/dist/get-concurrency.js +0 -0
- package/dist/get-duration-from-frame-range.d.ts +0 -0
- package/dist/get-duration-from-frame-range.js +0 -0
- package/dist/get-extension-from-codec.d.ts +1 -1
- package/dist/get-extension-from-codec.js +0 -0
- package/dist/get-extension-of-filename.d.ts +0 -0
- package/dist/get-extension-of-filename.js +0 -0
- package/dist/get-frame-padded-index.d.ts +0 -0
- package/dist/get-frame-padded-index.js +0 -0
- package/dist/get-frame-to-render.d.ts +0 -0
- package/dist/get-frame-to-render.js +0 -0
- package/dist/get-local-browser-executable.d.ts +0 -0
- package/dist/get-local-browser-executable.js +1 -3
- package/dist/get-port.d.ts +0 -0
- package/dist/get-port.js +0 -0
- package/dist/get-prores-profile-name.d.ts +0 -0
- package/dist/get-prores-profile-name.js +0 -0
- package/dist/get-video-info.d.ts +2 -7
- 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/guess-extension-for-media.d.ts +1 -1
- package/dist/guess-extension-for-media.js +1 -1
- package/dist/image-format.d.ts +1 -1
- package/dist/image-format.js +3 -0
- package/dist/index.d.ts +19 -28
- package/dist/index.js +16 -24
- package/dist/is-audio-codec.d.ts +0 -0
- package/dist/is-audio-codec.js +0 -0
- package/dist/is-beyond-last-frame.d.ts +3 -2
- package/dist/is-beyond-last-frame.js +5 -5
- package/dist/is-serve-url.d.ts +0 -0
- package/dist/is-serve-url.js +0 -0
- package/dist/last-frame-from-video-cache.d.ts +3 -2
- package/dist/last-frame-from-video-cache.js +17 -17
- package/dist/legacy-webpack-config.d.ts +0 -0
- package/dist/legacy-webpack-config.js +0 -0
- package/dist/log-level.d.ts +0 -0
- package/dist/log-level.js +0 -0
- package/dist/make-cancel-signal.d.ts +0 -0
- package/dist/make-cancel-signal.js +0 -0
- package/dist/merge-audio-track.d.ts +2 -0
- package/dist/merge-audio-track.js +6 -3
- package/dist/mime-db.d.ts +0 -0
- package/dist/mime-db.js +0 -0
- package/dist/mime-types.d.ts +1 -0
- package/dist/mime-types.js +6 -1
- package/dist/normalize-serve-url.d.ts +0 -0
- package/dist/normalize-serve-url.js +0 -0
- package/dist/offthread-video-server.d.ts +3 -2
- package/dist/offthread-video-server.js +14 -2
- package/dist/open-browser.d.ts +0 -0
- package/dist/open-browser.js +3 -12
- package/dist/overwrite.d.ts +0 -0
- package/dist/overwrite.js +0 -0
- package/dist/p-limit.d.ts +0 -0
- package/dist/p-limit.js +0 -0
- package/dist/parse-browser-error-stack.d.ts +0 -0
- package/dist/parse-browser-error-stack.js +0 -0
- package/dist/parse-ffmpeg-progress.d.ts +0 -0
- package/dist/parse-ffmpeg-progress.js +0 -0
- package/dist/perf.d.ts +0 -0
- package/dist/perf.js +0 -0
- package/dist/pixel-format.d.ts +1 -1
- package/dist/pixel-format.js +3 -0
- package/dist/pool.d.ts +0 -0
- package/dist/pool.js +0 -0
- package/dist/prepare-server.d.ts +3 -2
- package/dist/prepare-server.js +3 -3
- package/dist/preprocess-audio-track.d.ts +2 -0
- package/dist/preprocess-audio-track.js +3 -3
- package/dist/prespawn-ffmpeg.d.ts +3 -0
- package/dist/prespawn-ffmpeg.js +15 -11
- package/dist/prestitcher-memory-usage.d.ts +12 -0
- package/dist/prestitcher-memory-usage.js +30 -0
- package/dist/prores-profile.d.ts +4 -1
- package/dist/prores-profile.js +6 -6
- package/dist/provide-screenshot.d.ts +0 -0
- package/dist/provide-screenshot.js +0 -0
- package/dist/puppeteer-evaluate.d.ts +0 -0
- package/dist/puppeteer-evaluate.js +0 -0
- package/dist/puppeteer-screenshot.d.ts +0 -0
- package/dist/puppeteer-screenshot.js +0 -0
- package/dist/quality.d.ts +0 -0
- package/dist/quality.js +0 -0
- package/dist/render-frames.d.ts +16 -3
- package/dist/render-frames.js +98 -30
- package/dist/render-media.d.ts +30 -4
- package/dist/render-media.js +123 -20
- package/dist/render-still.d.ts +6 -1
- package/dist/render-still.js +37 -11
- package/dist/resolve-asset-src.d.ts +0 -0
- package/dist/resolve-asset-src.js +0 -0
- package/dist/sample-rate.d.ts +0 -0
- package/dist/sample-rate.js +0 -0
- package/dist/screenshot-dom-element.d.ts +0 -0
- package/dist/screenshot-dom-element.js +0 -0
- package/dist/screenshot-task.d.ts +0 -0
- package/dist/screenshot-task.js +30 -15
- package/dist/seek-to-frame.d.ts +0 -0
- package/dist/seek-to-frame.js +0 -0
- package/dist/serve-handler/index.d.ts +0 -0
- package/dist/serve-handler/index.js +0 -0
- package/dist/serve-handler/is-path-inside.d.ts +0 -0
- package/dist/serve-handler/is-path-inside.js +0 -0
- package/dist/serve-handler/range-parser.d.ts +0 -0
- package/dist/serve-handler/range-parser.js +0 -0
- package/dist/serve-static.d.ts +2 -1
- package/dist/serve-static.js +14 -1
- package/dist/set-props-and-env.d.ts +3 -1
- package/dist/set-props-and-env.js +34 -8
- package/dist/stitch-frames-to-video.d.ts +7 -7
- package/dist/stitch-frames-to-video.js +68 -57
- package/dist/stringify-ffmpeg-filter.d.ts +0 -0
- package/dist/stringify-ffmpeg-filter.js +0 -0
- package/dist/symbolicate-stacktrace.d.ts +0 -0
- package/dist/symbolicate-stacktrace.js +0 -0
- package/dist/tmp-dir.d.ts +0 -0
- package/dist/tmp-dir.js +0 -0
- package/dist/truthy.d.ts +0 -0
- package/dist/truthy.js +0 -0
- package/dist/types.d.ts +1 -1
- package/dist/types.js +0 -0
- package/dist/validate-concurrency.d.ts +0 -0
- package/dist/validate-concurrency.js +0 -0
- package/dist/validate-even-dimensions-with-codec.d.ts +0 -0
- package/dist/validate-even-dimensions-with-codec.js +0 -0
- package/dist/validate-every-nth-frame.d.ts +2 -1
- package/dist/validate-every-nth-frame.js +8 -1
- package/dist/validate-ffmpeg-override.d.ts +2 -0
- package/dist/validate-ffmpeg-override.js +12 -0
- package/dist/validate-ffmpeg.d.ts +4 -1
- package/dist/validate-ffmpeg.js +23 -7
- package/dist/validate-frame.d.ts +0 -0
- package/dist/validate-frame.js +3 -3
- package/dist/validate-number-of-gif-loops.d.ts +2 -0
- package/dist/validate-number-of-gif-loops.js +24 -0
- package/dist/validate-opengl-renderer.d.ts +0 -0
- package/dist/validate-opengl-renderer.js +0 -0
- package/dist/validate-output-filename.d.ts +0 -0
- package/dist/validate-output-filename.js +0 -0
- package/dist/validate-puppeteer-timeout.d.ts +0 -0
- package/dist/validate-puppeteer-timeout.js +1 -1
- package/dist/validate-scale.d.ts +0 -0
- package/dist/validate-scale.js +0 -0
- package/dist/validate-videobitrate.d.ts +1 -0
- package/dist/validate-videobitrate.js +20 -0
- package/dist/wait-for-symbolication-error-to-be-done.d.ts +0 -0
- package/dist/wait-for-symbolication-error-to-be-done.js +0 -0
- package/dist/warn-about-ffmpeg-version.d.ts +5 -0
- package/dist/warn-about-ffmpeg-version.js +37 -0
- package/dist/ws/ws-types.d.ts +0 -0
- package/dist/ws/ws-types.js +0 -0
- package/package.json +7 -7
- package/dist/make-assets-download-dir.d.ts +0 -1
- package/dist/make-assets-download-dir.js +0 -13
- package/vitest.config.ts +0 -8
|
File without changes
|
|
File without changes
|
|
File without changes
|
package/dist/get-codec-name.d.ts
CHANGED
|
File without changes
|
package/dist/get-codec-name.js
CHANGED
|
File without changes
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { TCompMetadata } from 'remotion';
|
|
2
|
+
import type { DownloadMap } from './assets/download-map';
|
|
2
3
|
import type { BrowserExecutable } from './browser-executable';
|
|
3
4
|
import type { BrowserLog } from './browser-log';
|
|
4
5
|
import type { Browser } from './browser/Browser';
|
|
@@ -15,6 +16,10 @@ declare type GetCompositionsConfig = {
|
|
|
15
16
|
ffmpegExecutable?: FfmpegExecutable;
|
|
16
17
|
ffprobeExecutable?: FfmpegExecutable;
|
|
17
18
|
port?: number | null;
|
|
19
|
+
/**
|
|
20
|
+
* @deprecated Only for Remotion internal usage
|
|
21
|
+
*/
|
|
22
|
+
downloadMap?: DownloadMap;
|
|
18
23
|
};
|
|
19
24
|
export declare const getCompositions: (serveUrlOrWebpackUrl: string, config?: GetCompositionsConfig) => Promise<TCompMetadata[]>;
|
|
20
25
|
export {};
|
package/dist/get-compositions.js
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getCompositions = void 0;
|
|
4
|
+
const download_map_1 = require("./assets/download-map");
|
|
4
5
|
const handle_javascript_exception_1 = require("./error-handling/handle-javascript-exception");
|
|
5
6
|
const get_browser_instance_1 = require("./get-browser-instance");
|
|
6
|
-
const make_assets_download_dir_1 = require("./make-assets-download-dir");
|
|
7
7
|
const prepare_server_1 = require("./prepare-server");
|
|
8
8
|
const puppeteer_evaluate_1 = require("./puppeteer-evaluate");
|
|
9
9
|
const set_props_and_env_1 = require("./set-props-and-env");
|
|
10
|
+
const validate_ffmpeg_1 = require("./validate-ffmpeg");
|
|
10
11
|
const validate_puppeteer_timeout_1 = require("./validate-puppeteer-timeout");
|
|
11
12
|
const innerGetCompositions = async (serveUrl, page, config, proxyPort) => {
|
|
12
13
|
if (config === null || config === void 0 ? void 0 : config.onBrowserLog) {
|
|
@@ -29,6 +30,8 @@ const innerGetCompositions = async (serveUrl, page, config, proxyPort) => {
|
|
|
29
30
|
timeoutInMilliseconds: config === null || config === void 0 ? void 0 : config.timeoutInMilliseconds,
|
|
30
31
|
proxyPort,
|
|
31
32
|
retriesRemaining: 2,
|
|
33
|
+
audioEnabled: false,
|
|
34
|
+
videoEnabled: false,
|
|
32
35
|
});
|
|
33
36
|
await (0, puppeteer_evaluate_1.puppeteerEvaluateWithCatch)({
|
|
34
37
|
page,
|
|
@@ -52,12 +55,13 @@ const innerGetCompositions = async (serveUrl, page, config, proxyPort) => {
|
|
|
52
55
|
return result;
|
|
53
56
|
};
|
|
54
57
|
const getCompositions = async (serveUrlOrWebpackUrl, config) => {
|
|
55
|
-
var _a, _b;
|
|
56
|
-
|
|
58
|
+
var _a, _b, _c, _d;
|
|
59
|
+
await (0, validate_ffmpeg_1.validateFfmpeg)((_a = config === null || config === void 0 ? void 0 : config.ffmpegExecutable) !== null && _a !== void 0 ? _a : null);
|
|
60
|
+
const downloadMap = (_b = config === null || config === void 0 ? void 0 : config.downloadMap) !== null && _b !== void 0 ? _b : (0, download_map_1.makeDownloadMap)();
|
|
57
61
|
const { page, cleanup } = await (0, get_browser_instance_1.getPageAndCleanupFn)({
|
|
58
62
|
passedInInstance: config === null || config === void 0 ? void 0 : config.puppeteerInstance,
|
|
59
|
-
browserExecutable: (
|
|
60
|
-
chromiumOptions: (
|
|
63
|
+
browserExecutable: (_c = config === null || config === void 0 ? void 0 : config.browserExecutable) !== null && _c !== void 0 ? _c : null,
|
|
64
|
+
chromiumOptions: (_d = config === null || config === void 0 ? void 0 : config.chromiumOptions) !== null && _d !== void 0 ? _d : {},
|
|
61
65
|
});
|
|
62
66
|
return new Promise((resolve, reject) => {
|
|
63
67
|
var _a, _b, _c;
|
|
@@ -70,12 +74,12 @@ const getCompositions = async (serveUrlOrWebpackUrl, config) => {
|
|
|
70
74
|
let close = null;
|
|
71
75
|
(0, prepare_server_1.prepareServer)({
|
|
72
76
|
webpackConfigOrServeUrl: serveUrlOrWebpackUrl,
|
|
73
|
-
downloadDir,
|
|
74
77
|
onDownload: () => undefined,
|
|
75
78
|
onError,
|
|
76
79
|
ffmpegExecutable: (_a = config === null || config === void 0 ? void 0 : config.ffmpegExecutable) !== null && _a !== void 0 ? _a : null,
|
|
77
80
|
ffprobeExecutable: (_b = config === null || config === void 0 ? void 0 : config.ffprobeExecutable) !== null && _b !== void 0 ? _b : null,
|
|
78
81
|
port: (_c = config === null || config === void 0 ? void 0 : config.port) !== null && _c !== void 0 ? _c : null,
|
|
82
|
+
downloadMap,
|
|
79
83
|
})
|
|
80
84
|
.then(({ serveUrl, closeServer, offthreadPort }) => {
|
|
81
85
|
close = closeServer;
|
|
@@ -89,6 +93,10 @@ const getCompositions = async (serveUrlOrWebpackUrl, config) => {
|
|
|
89
93
|
cleanup();
|
|
90
94
|
close === null || close === void 0 ? void 0 : close();
|
|
91
95
|
cleanupPageError();
|
|
96
|
+
// Clean download map if it was not passed in
|
|
97
|
+
if (!(config === null || config === void 0 ? void 0 : config.downloadMap)) {
|
|
98
|
+
(0, download_map_1.cleanDownloadMap)(downloadMap);
|
|
99
|
+
}
|
|
92
100
|
});
|
|
93
101
|
});
|
|
94
102
|
};
|
|
File without changes
|
package/dist/get-concurrency.js
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import type { Codec } from './codec';
|
|
2
|
-
export declare const getFileExtensionFromCodec: (codec: Codec, type: 'chunk' | 'final') => "mp3" | "aac" | "wav" | "gif" | "
|
|
2
|
+
export declare const getFileExtensionFromCodec: (codec: Codec, type: 'chunk' | 'final') => "mp3" | "aac" | "wav" | "gif" | "webm" | "mp4" | "mov" | "mkv";
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -49,9 +49,7 @@ const getBrowserRevision = (product) => {
|
|
|
49
49
|
path: null,
|
|
50
50
|
platform: null,
|
|
51
51
|
});
|
|
52
|
-
const revisionInfo = browserFetcher.revisionInfo(
|
|
53
|
-
? revisions_1.PUPPETEER_REVISIONS.firefox
|
|
54
|
-
: revisions_1.PUPPETEER_REVISIONS.chromium);
|
|
52
|
+
const revisionInfo = browserFetcher.revisionInfo(revisions_1.PUPPETEER_REVISIONS.chromium);
|
|
55
53
|
return revisionInfo;
|
|
56
54
|
};
|
|
57
55
|
const getBrowserStatus = (product, browserExecutablePath) => {
|
package/dist/get-port.d.ts
CHANGED
|
File without changes
|
package/dist/get-port.js
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
package/dist/get-video-info.d.ts
CHANGED
|
@@ -1,8 +1,3 @@
|
|
|
1
|
+
import type { DownloadMap, Vp9Result } from './assets/download-map';
|
|
1
2
|
import type { FfmpegExecutable } from './ffmpeg-executable';
|
|
2
|
-
declare
|
|
3
|
-
specialVcodec: SpecialVCodecForTransparency;
|
|
4
|
-
needsResize: [number, number] | null;
|
|
5
|
-
};
|
|
6
|
-
export declare type SpecialVCodecForTransparency = 'vp9' | 'vp8' | 'none';
|
|
7
|
-
export declare const getVideoInfo: (src: string, ffprobeExecutable: FfmpegExecutable) => Promise<Result>;
|
|
8
|
-
export {};
|
|
3
|
+
export declare const getVideoInfo: (downloadMap: DownloadMap, src: string, ffprobeExecutable: FfmpegExecutable) => Promise<Vp9Result>;
|
package/dist/get-video-info.js
CHANGED
|
@@ -7,12 +7,11 @@ exports.getVideoInfo = void 0;
|
|
|
7
7
|
const execa_1 = __importDefault(require("execa"));
|
|
8
8
|
const calculate_sar_dar_pixels_1 = require("./calculate-sar-dar-pixels");
|
|
9
9
|
const p_limit_1 = require("./p-limit");
|
|
10
|
-
const isVp9VideoCache = {};
|
|
11
10
|
const limit = (0, p_limit_1.pLimit)(1);
|
|
12
|
-
async function getVideoInfoUnlimited(src, ffprobeExecutable) {
|
|
11
|
+
async function getVideoInfoUnlimited(downloadMap, src, ffprobeExecutable) {
|
|
13
12
|
var _a;
|
|
14
|
-
if (typeof isVp9VideoCache[src] !== 'undefined') {
|
|
15
|
-
return isVp9VideoCache[src];
|
|
13
|
+
if (typeof downloadMap.isVp9VideoCache[src] !== 'undefined') {
|
|
14
|
+
return downloadMap.isVp9VideoCache[src];
|
|
16
15
|
}
|
|
17
16
|
const task = await (0, execa_1.default)(ffprobeExecutable !== null && ffprobeExecutable !== void 0 ? ffprobeExecutable : 'ffprobe', [src]);
|
|
18
17
|
const isVp9 = task.stderr.includes('Video: vp9');
|
|
@@ -41,10 +40,10 @@ async function getVideoInfoUnlimited(src, ffprobeExecutable) {
|
|
|
41
40
|
specialVcodec: isVp9 ? 'vp9' : isVp8 ? 'vp8' : 'none',
|
|
42
41
|
needsResize,
|
|
43
42
|
};
|
|
44
|
-
isVp9VideoCache[src] = result;
|
|
45
|
-
return isVp9VideoCache[src];
|
|
43
|
+
downloadMap.isVp9VideoCache[src] = result;
|
|
44
|
+
return downloadMap.isVp9VideoCache[src];
|
|
46
45
|
}
|
|
47
|
-
const getVideoInfo = (src, ffprobeExecutable) => {
|
|
48
|
-
return limit(() => getVideoInfoUnlimited(src, ffprobeExecutable));
|
|
46
|
+
const getVideoInfo = (downloadMap, src, ffprobeExecutable) => {
|
|
47
|
+
return limit(() => getVideoInfoUnlimited(downloadMap, src, ffprobeExecutable));
|
|
49
48
|
};
|
|
50
49
|
exports.getVideoInfo = getVideoInfo;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const getIdealVideoThreadsFlag: () => number;
|
|
@@ -0,0 +1,18 @@
|
|
|
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.getIdealVideoThreadsFlag = void 0;
|
|
7
|
+
const os_1 = __importDefault(require("os"));
|
|
8
|
+
const MEMORY_USAGE_PER_THREAD = 400000000; // 400MB
|
|
9
|
+
const RESERVED_MEMORY = 2000000000;
|
|
10
|
+
const getIdealVideoThreadsFlag = () => {
|
|
11
|
+
const freeMemory = os_1.default.freemem();
|
|
12
|
+
const cpus = os_1.default.cpus().length;
|
|
13
|
+
const maxRecommendedBasedOnCpus = (cpus * 2) / 3;
|
|
14
|
+
const maxRecommendedBasedOnMemory = (freeMemory - RESERVED_MEMORY) / MEMORY_USAGE_PER_THREAD;
|
|
15
|
+
const maxRecommended = Math.min(maxRecommendedBasedOnCpus, maxRecommendedBasedOnMemory);
|
|
16
|
+
return Math.max(1, Math.round(maxRecommended));
|
|
17
|
+
};
|
|
18
|
+
exports.getIdealVideoThreadsFlag = getIdealVideoThreadsFlag;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const guessExtensionForVideo: (src: string) => Promise<"mp3" | "wav" | "
|
|
1
|
+
export declare const guessExtensionForVideo: (src: string) => Promise<"mp3" | "wav" | "webm" | "mp4">;
|
|
@@ -22,6 +22,6 @@ const guessExtensionForVideo = async (src) => {
|
|
|
22
22
|
if (stderr.includes('Video: h264')) {
|
|
23
23
|
return 'mp4';
|
|
24
24
|
}
|
|
25
|
-
throw new Error(`
|
|
25
|
+
throw new Error(`The media file "${src}" has no file extension and the format could not be guessed. Tips: a) Ensure this is a valid video or audio file b) Add a file extension to the URL like ".mp4" c) Set a "Content-Type" or "Content-Disposition" header if possible.`);
|
|
26
26
|
};
|
|
27
27
|
exports.guessExtensionForVideo = guessExtensionForVideo;
|
package/dist/image-format.d.ts
CHANGED
|
@@ -3,5 +3,5 @@ export declare const validImageFormats: readonly ["png", "jpeg", "none"];
|
|
|
3
3
|
export declare type ImageFormat = typeof validImageFormats[number];
|
|
4
4
|
export declare type StillImageFormat = 'png' | 'jpeg';
|
|
5
5
|
export declare const DEFAULT_IMAGE_FORMAT: ImageFormat;
|
|
6
|
-
export declare const validateSelectedPixelFormatAndImageFormatCombination: (pixelFormat: PixelFormat, imageFormat: ImageFormat) => 'none' | 'valid';
|
|
6
|
+
export declare const validateSelectedPixelFormatAndImageFormatCombination: (pixelFormat: PixelFormat | undefined, imageFormat: ImageFormat) => 'none' | 'valid';
|
|
7
7
|
export declare const validateNonNullImageFormat: (imageFormat: ImageFormat) => void;
|
package/dist/image-format.js
CHANGED
|
@@ -11,6 +11,9 @@ const validateSelectedPixelFormatAndImageFormatCombination = (pixelFormat, image
|
|
|
11
11
|
if (imageFormat === 'none') {
|
|
12
12
|
return 'none';
|
|
13
13
|
}
|
|
14
|
+
if (typeof pixelFormat === 'undefined') {
|
|
15
|
+
return 'valid';
|
|
16
|
+
}
|
|
14
17
|
if (!exports.validImageFormats.includes(imageFormat)) {
|
|
15
18
|
throw new TypeError(`Value ${imageFormat} is not valid as an image format.`);
|
|
16
19
|
}
|
package/dist/index.d.ts
CHANGED
|
@@ -4,6 +4,7 @@ import { SymbolicateableError } from './error-handling/symbolicateable-error';
|
|
|
4
4
|
import { mimeContentType, mimeLookup } from './mime-types';
|
|
5
5
|
import * as perf from './perf';
|
|
6
6
|
export type { RenderMediaOnDownload } from './assets/download-and-map-assets-to-file';
|
|
7
|
+
export type { DownloadMap } from './assets/download-map';
|
|
7
8
|
export { Browser } from './browser';
|
|
8
9
|
export { BrowserExecutable } from './browser-executable';
|
|
9
10
|
export { BrowserLog } from './browser-log';
|
|
@@ -13,6 +14,7 @@ export { Crf } from './crf';
|
|
|
13
14
|
export { ErrorWithStackFrame } from './error-handling/handle-javascript-exception';
|
|
14
15
|
export { FfmpegExecutable } from './ffmpeg-executable';
|
|
15
16
|
export { FfmpegVersion } from './ffmpeg-flags';
|
|
17
|
+
export type { FfmpegOverrideFn } from './ffmpeg-override';
|
|
16
18
|
export { FrameRange } from './frame-range';
|
|
17
19
|
export { getCompositions } from './get-compositions';
|
|
18
20
|
export { ImageFormat, StillImageFormat, validateSelectedPixelFormatAndImageFormatCombination, validImageFormats, } from './image-format';
|
|
@@ -23,35 +25,28 @@ export type { ChromiumOptions } from './open-browser';
|
|
|
23
25
|
export { PixelFormat } from './pixel-format';
|
|
24
26
|
export { ProResProfile } from './prores-profile';
|
|
25
27
|
export { renderFrames } from './render-frames';
|
|
26
|
-
export { renderMedia, RenderMediaOnProgress, RenderMediaOptions, StitchingState, } from './render-media';
|
|
27
|
-
export { renderStill } from './render-still';
|
|
28
|
+
export { OnSlowestFrames, renderMedia, RenderMediaOnProgress, RenderMediaOptions, SlowFrame, StitchingState, } from './render-media';
|
|
29
|
+
export { renderStill, RenderStillOptions } from './render-still';
|
|
28
30
|
export { StitcherOptions, stitchFramesToVideo } from './stitch-frames-to-video';
|
|
29
31
|
export { SymbolicatedStackFrame } from './symbolicate-stacktrace';
|
|
30
32
|
export { OnStartData, RenderFramesOutput } from './types';
|
|
31
33
|
export { OpenGlRenderer } from './validate-opengl-renderer';
|
|
34
|
+
export { validateOutputFilename } from './validate-output-filename';
|
|
32
35
|
export declare const RenderInternals: {
|
|
33
36
|
ensureLocalBrowser: (browser: import("./browser").Browser, preferredBrowserExecutable: import("./browser-executable").BrowserExecutable) => Promise<void>;
|
|
34
|
-
ffmpegHasFeature: ({ ffmpegExecutable, feature,
|
|
37
|
+
ffmpegHasFeature: ({ ffmpegExecutable, feature, }: {
|
|
35
38
|
ffmpegExecutable: string | null;
|
|
36
39
|
feature: "enable-gpl" | "enable-libx265" | "enable-libvpx";
|
|
37
|
-
isLambda: boolean;
|
|
38
40
|
}) => Promise<boolean>;
|
|
39
41
|
getActualConcurrency: (userPreference: number | null) => number;
|
|
40
|
-
getFfmpegVersion: (options: {
|
|
41
|
-
ffmpegExecutable: string | null;
|
|
42
|
-
}) => Promise<import("./ffmpeg-flags").FfmpegVersion>;
|
|
43
42
|
validateFfmpeg: (customFfmpegBinary: string | null) => Promise<void>;
|
|
44
|
-
binaryExists: (name: "ffmpeg" | "brew", localFFmpeg: string | null) => Promise<boolean>;
|
|
45
|
-
getFfmpegBuildInfo: (options: {
|
|
46
|
-
ffmpegExecutable: string | null;
|
|
47
|
-
}) => Promise<string>;
|
|
48
43
|
serveStatic: (path: string | null, options: {
|
|
49
44
|
port: number | null;
|
|
50
45
|
ffmpegExecutable: import("./ffmpeg-executable").FfmpegExecutable;
|
|
51
46
|
ffprobeExecutable: import("./ffmpeg-executable").FfmpegExecutable;
|
|
52
|
-
downloadDir: string;
|
|
53
47
|
onDownload: import("./assets/download-and-map-assets-to-file").RenderMediaOnDownload;
|
|
54
48
|
onError: (err: Error) => void;
|
|
49
|
+
downloadMap: import("./assets/download-map").DownloadMap;
|
|
55
50
|
}) => Promise<{
|
|
56
51
|
port: number;
|
|
57
52
|
close: () => Promise<void>;
|
|
@@ -62,11 +57,6 @@ export declare const RenderInternals: {
|
|
|
62
57
|
scale: number;
|
|
63
58
|
codec: "h264" | "h265" | "vp8" | "vp9" | "mp3" | "aac" | "wav" | "prores" | "h264-mkv" | "gif";
|
|
64
59
|
}) => void;
|
|
65
|
-
normalizeServeUrl: (unnormalized: string) => string;
|
|
66
|
-
spawnFfmpeg: (options: import("./stitch-frames-to-video").StitcherOptions) => Promise<{
|
|
67
|
-
task: Promise<Buffer | null>;
|
|
68
|
-
getLogs: () => string;
|
|
69
|
-
}>;
|
|
70
60
|
getFileExtensionFromCodec: (codec: "h264" | "h265" | "vp8" | "vp9" | "mp3" | "aac" | "wav" | "prores" | "h264-mkv" | "gif", type: "chunk" | "final") => "mp3" | "aac" | "wav" | "gif" | "mp4" | "mkv" | "mov" | "webm";
|
|
71
61
|
tmpDir: (str: string) => string;
|
|
72
62
|
deleteDirectory: (directory: string) => Promise<void>;
|
|
@@ -76,7 +66,7 @@ export declare const RenderInternals: {
|
|
|
76
66
|
validatePuppeteerTimeout: (timeoutInMilliseconds: unknown) => void;
|
|
77
67
|
downloadFile: ({ onProgress, url, to: toFn, }: {
|
|
78
68
|
url: string;
|
|
79
|
-
to: (contentDisposition: string | null) => string;
|
|
69
|
+
to: (contentDisposition: string | null, contentType: string | null) => string;
|
|
80
70
|
onProgress: ((progress: {
|
|
81
71
|
percent: number | null;
|
|
82
72
|
downloaded: number;
|
|
@@ -86,7 +76,6 @@ export declare const RenderInternals: {
|
|
|
86
76
|
sizeInBytes: number;
|
|
87
77
|
to: string;
|
|
88
78
|
}>;
|
|
89
|
-
validateScale: (scale: unknown) => void;
|
|
90
79
|
killAllBrowsers: () => Promise<void>;
|
|
91
80
|
parseStack: (stack: string[]) => import("./parse-browser-error-stack").UnsymbolicatedStackFrame[];
|
|
92
81
|
symbolicateError: (symbolicateableError: SymbolicateableError) => Promise<import("./error-handling/handle-javascript-exception").ErrorWithStackFrame>;
|
|
@@ -124,24 +113,26 @@ export declare const RenderInternals: {
|
|
|
124
113
|
validateFrameRange: (frameRange: import("./frame-range").FrameRange | null) => void;
|
|
125
114
|
DEFAULT_OPENGL_RENDERER: "swangle" | "angle" | "egl" | "swiftshader" | null;
|
|
126
115
|
validateOpenGlRenderer: (option: "swangle" | "angle" | "egl" | "swiftshader" | null) => "swangle" | "angle" | "egl" | "swiftshader" | null;
|
|
127
|
-
getDefaultCrfForCodec: (codec: "h264" | "h265" | "vp8" | "vp9" | "mp3" | "aac" | "wav" | "prores" | "h264-mkv" | "gif") => number;
|
|
128
|
-
validateSelectedCrfAndCodecCombination: (crf: unknown, codec: "h264" | "h265" | "vp8" | "vp9" | "mp3" | "aac" | "wav" | "prores" | "h264-mkv" | "gif") => void;
|
|
129
116
|
validImageFormats: readonly ["png", "jpeg", "none"];
|
|
130
117
|
validCodecs: readonly ["h264", "h265", "vp8", "vp9", "mp3", "aac", "wav", "prores", "h264-mkv", "gif"];
|
|
131
|
-
DEFAULT_OVERWRITE: boolean;
|
|
132
118
|
DEFAULT_PIXEL_FORMAT: "yuv420p" | "yuva420p" | "yuv422p" | "yuv444p" | "yuv420p10le" | "yuv422p10le" | "yuv444p10le" | "yuva444p10le";
|
|
133
119
|
validateQuality: (q: number | undefined) => void;
|
|
134
120
|
validateFrame: (frame: number, durationInFrames: number) => void;
|
|
135
121
|
DEFAULT_TIMEOUT: number;
|
|
136
|
-
getValidCrfRanges: (codec: "h264" | "h265" | "vp8" | "vp9" | "mp3" | "aac" | "wav" | "prores" | "h264-mkv" | "gif") => [number, number];
|
|
137
|
-
validateSelectedPixelFormatAndCodecCombination: (pixelFormat: "yuv420p" | "yuva420p" | "yuv422p" | "yuv444p" | "yuv420p10le" | "yuv422p10le" | "yuv444p10le" | "yuva444p10le", codec: "h264" | "h265" | "vp8" | "vp9" | "mp3" | "aac" | "wav" | "prores" | "h264-mkv" | "gif") => void;
|
|
138
|
-
validateSelectedCodecAndProResCombination: (actualCodec: "h264" | "h265" | "vp8" | "vp9" | "mp3" | "aac" | "wav" | "prores" | "h264-mkv" | "gif", actualProResProfile: "4444-xq" | "4444" | "hq" | "standard" | "light" | "proxy" | undefined) => void;
|
|
139
|
-
validateSelectedPixelFormatAndImageFormatCombination: (pixelFormat: "yuv420p" | "yuva420p" | "yuv422p" | "yuv444p" | "yuv420p10le" | "yuv422p10le" | "yuv444p10le" | "yuva444p10le", imageFormat: "none" | "png" | "jpeg") => "none" | "valid";
|
|
140
122
|
DEFAULT_CODEC: "h264" | "h265" | "vp8" | "vp9" | "mp3" | "aac" | "wav" | "prores" | "h264-mkv" | "gif";
|
|
141
123
|
isAudioCodec: (codec: "h264" | "h265" | "vp8" | "vp9" | "mp3" | "aac" | "wav" | "prores" | "h264-mkv" | "gif" | undefined) => boolean;
|
|
142
124
|
logLevels: readonly ["verbose", "info", "warn", "error"];
|
|
143
|
-
isEqualOrBelowLogLevel: (currentLevel: "
|
|
125
|
+
isEqualOrBelowLogLevel: (currentLevel: "error" | "verbose" | "info" | "warn", level: "error" | "verbose" | "info" | "warn") => boolean;
|
|
144
126
|
isValidLogLevel: (level: string) => boolean;
|
|
145
|
-
validateEveryNthFrame: (everyNthFrame: unknown) => void;
|
|
146
127
|
perf: typeof perf;
|
|
128
|
+
makeDownloadMap: () => import("./assets/download-map").DownloadMap;
|
|
129
|
+
cleanDownloadMap: (downloadMap: import("./assets/download-map").DownloadMap) => Promise<void>;
|
|
130
|
+
convertToPositiveFrameIndex: ({ frame, durationInFrames, }: {
|
|
131
|
+
frame: number;
|
|
132
|
+
durationInFrames: number;
|
|
133
|
+
}) => number;
|
|
134
|
+
validateBitrate: (bitrate: unknown, name: string) => void;
|
|
135
|
+
getFfmpegVersion: (options: {
|
|
136
|
+
ffmpegExecutable: string | null;
|
|
137
|
+
}) => Promise<import("./ffmpeg-flags").FfmpegVersion>;
|
|
147
138
|
};
|
package/dist/index.js
CHANGED
|
@@ -26,14 +26,16 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
26
26
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
27
|
};
|
|
28
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
-
exports.RenderInternals = exports.stitchFramesToVideo = exports.renderStill = exports.renderMedia = exports.renderFrames = exports.openBrowser = exports.makeCancelSignal = exports.validImageFormats = exports.validateSelectedPixelFormatAndImageFormatCombination = exports.getCompositions = exports.ErrorWithStackFrame = exports.combineVideos = void 0;
|
|
29
|
+
exports.RenderInternals = exports.validateOutputFilename = exports.stitchFramesToVideo = exports.renderStill = exports.renderMedia = exports.renderFrames = exports.openBrowser = exports.makeCancelSignal = exports.validImageFormats = exports.validateSelectedPixelFormatAndImageFormatCombination = exports.getCompositions = exports.ErrorWithStackFrame = exports.combineVideos = void 0;
|
|
30
30
|
const execa_1 = __importDefault(require("execa"));
|
|
31
31
|
const download_file_1 = require("./assets/download-file");
|
|
32
|
+
const download_map_1 = require("./assets/download-map");
|
|
32
33
|
const browser_1 = require("./browser");
|
|
33
34
|
const TimeoutSettings_1 = require("./browser/TimeoutSettings");
|
|
34
35
|
const can_use_parallel_encoding_1 = require("./can-use-parallel-encoding");
|
|
36
|
+
const check_apple_silicon_1 = require("./check-apple-silicon");
|
|
35
37
|
const codec_1 = require("./codec");
|
|
36
|
-
const
|
|
38
|
+
const convert_to_positive_frame_index_1 = require("./convert-to-positive-frame-index");
|
|
37
39
|
const delete_directory_1 = require("./delete-directory");
|
|
38
40
|
const ensure_output_directory_1 = require("./ensure-output-directory");
|
|
39
41
|
const symbolicate_error_1 = require("./error-handling/symbolicate-error");
|
|
@@ -52,26 +54,21 @@ const is_audio_codec_1 = require("./is-audio-codec");
|
|
|
52
54
|
const is_serve_url_1 = require("./is-serve-url");
|
|
53
55
|
const log_level_1 = require("./log-level");
|
|
54
56
|
const mime_types_1 = require("./mime-types");
|
|
55
|
-
const normalize_serve_url_1 = require("./normalize-serve-url");
|
|
56
57
|
const open_browser_1 = require("./open-browser");
|
|
57
|
-
const overwrite_1 = require("./overwrite");
|
|
58
58
|
const parse_browser_error_stack_1 = require("./parse-browser-error-stack");
|
|
59
59
|
const perf = __importStar(require("./perf"));
|
|
60
60
|
const pixel_format_1 = require("./pixel-format");
|
|
61
|
-
const prores_profile_1 = require("./prores-profile");
|
|
62
61
|
const quality_1 = require("./quality");
|
|
63
62
|
const is_path_inside_1 = require("./serve-handler/is-path-inside");
|
|
64
63
|
const serve_static_1 = require("./serve-static");
|
|
65
|
-
const stitch_frames_to_video_1 = require("./stitch-frames-to-video");
|
|
66
64
|
const tmp_dir_1 = require("./tmp-dir");
|
|
67
65
|
const validate_concurrency_1 = require("./validate-concurrency");
|
|
68
66
|
const validate_even_dimensions_with_codec_1 = require("./validate-even-dimensions-with-codec");
|
|
69
|
-
const validate_every_nth_frame_1 = require("./validate-every-nth-frame");
|
|
70
67
|
const validate_ffmpeg_1 = require("./validate-ffmpeg");
|
|
71
68
|
const validate_frame_1 = require("./validate-frame");
|
|
72
69
|
const validate_opengl_renderer_1 = require("./validate-opengl-renderer");
|
|
73
70
|
const validate_puppeteer_timeout_1 = require("./validate-puppeteer-timeout");
|
|
74
|
-
const
|
|
71
|
+
const validate_videobitrate_1 = require("./validate-videobitrate");
|
|
75
72
|
const wait_for_symbolication_error_to_be_done_1 = require("./wait-for-symbolication-error-to-be-done");
|
|
76
73
|
var combine_videos_1 = require("./combine-videos");
|
|
77
74
|
Object.defineProperty(exports, "combineVideos", { enumerable: true, get: function () { return combine_videos_1.combineVideos; } });
|
|
@@ -92,20 +89,17 @@ var render_media_1 = require("./render-media");
|
|
|
92
89
|
Object.defineProperty(exports, "renderMedia", { enumerable: true, get: function () { return render_media_1.renderMedia; } });
|
|
93
90
|
var render_still_1 = require("./render-still");
|
|
94
91
|
Object.defineProperty(exports, "renderStill", { enumerable: true, get: function () { return render_still_1.renderStill; } });
|
|
95
|
-
var
|
|
96
|
-
Object.defineProperty(exports, "stitchFramesToVideo", { enumerable: true, get: function () { return
|
|
92
|
+
var stitch_frames_to_video_1 = require("./stitch-frames-to-video");
|
|
93
|
+
Object.defineProperty(exports, "stitchFramesToVideo", { enumerable: true, get: function () { return stitch_frames_to_video_1.stitchFramesToVideo; } });
|
|
94
|
+
var validate_output_filename_1 = require("./validate-output-filename");
|
|
95
|
+
Object.defineProperty(exports, "validateOutputFilename", { enumerable: true, get: function () { return validate_output_filename_1.validateOutputFilename; } });
|
|
97
96
|
exports.RenderInternals = {
|
|
98
97
|
ensureLocalBrowser: get_local_browser_executable_1.ensureLocalBrowser,
|
|
99
98
|
ffmpegHasFeature: ffmpeg_flags_1.ffmpegHasFeature,
|
|
100
99
|
getActualConcurrency: get_concurrency_1.getActualConcurrency,
|
|
101
|
-
getFfmpegVersion: ffmpeg_flags_1.getFfmpegVersion,
|
|
102
100
|
validateFfmpeg: validate_ffmpeg_1.validateFfmpeg,
|
|
103
|
-
binaryExists: validate_ffmpeg_1.binaryExists,
|
|
104
|
-
getFfmpegBuildInfo: ffmpeg_flags_1.getFfmpegBuildInfo,
|
|
105
101
|
serveStatic: serve_static_1.serveStatic,
|
|
106
102
|
validateEvenDimensionsWithCodec: validate_even_dimensions_with_codec_1.validateEvenDimensionsWithCodec,
|
|
107
|
-
normalizeServeUrl: normalize_serve_url_1.normalizeServeUrl,
|
|
108
|
-
spawnFfmpeg: stitch_frames_to_video_1.spawnFfmpeg,
|
|
109
103
|
getFileExtensionFromCodec: get_extension_from_codec_1.getFileExtensionFromCodec,
|
|
110
104
|
tmpDir: tmp_dir_1.tmpDir,
|
|
111
105
|
deleteDirectory: delete_directory_1.deleteDirectory,
|
|
@@ -114,7 +108,6 @@ exports.RenderInternals = {
|
|
|
114
108
|
getRealFrameRange: get_frame_to_render_1.getRealFrameRange,
|
|
115
109
|
validatePuppeteerTimeout: validate_puppeteer_timeout_1.validatePuppeteerTimeout,
|
|
116
110
|
downloadFile: download_file_1.downloadFile,
|
|
117
|
-
validateScale: validate_scale_1.validateScale,
|
|
118
111
|
killAllBrowsers: open_browser_1.killAllBrowsers,
|
|
119
112
|
parseStack: parse_browser_error_stack_1.parseStack,
|
|
120
113
|
symbolicateError: symbolicate_error_1.symbolicateError,
|
|
@@ -135,24 +128,23 @@ exports.RenderInternals = {
|
|
|
135
128
|
validateFrameRange: frame_range_1.validateFrameRange,
|
|
136
129
|
DEFAULT_OPENGL_RENDERER: validate_opengl_renderer_1.DEFAULT_OPENGL_RENDERER,
|
|
137
130
|
validateOpenGlRenderer: validate_opengl_renderer_1.validateOpenGlRenderer,
|
|
138
|
-
getDefaultCrfForCodec: crf_1.getDefaultCrfForCodec,
|
|
139
|
-
validateSelectedCrfAndCodecCombination: crf_1.validateSelectedCrfAndCodecCombination,
|
|
140
131
|
validImageFormats: image_format_1.validImageFormats,
|
|
141
132
|
validCodecs: codec_1.validCodecs,
|
|
142
|
-
DEFAULT_OVERWRITE: overwrite_1.DEFAULT_OVERWRITE,
|
|
143
133
|
DEFAULT_PIXEL_FORMAT: pixel_format_1.DEFAULT_PIXEL_FORMAT,
|
|
144
134
|
validateQuality: quality_1.validateQuality,
|
|
145
135
|
validateFrame: validate_frame_1.validateFrame,
|
|
146
136
|
DEFAULT_TIMEOUT: TimeoutSettings_1.DEFAULT_TIMEOUT,
|
|
147
|
-
getValidCrfRanges: crf_1.getValidCrfRanges,
|
|
148
|
-
validateSelectedPixelFormatAndCodecCombination: pixel_format_1.validateSelectedPixelFormatAndCodecCombination,
|
|
149
|
-
validateSelectedCodecAndProResCombination: prores_profile_1.validateSelectedCodecAndProResCombination,
|
|
150
|
-
validateSelectedPixelFormatAndImageFormatCombination: image_format_1.validateSelectedPixelFormatAndImageFormatCombination,
|
|
151
137
|
DEFAULT_CODEC: codec_1.DEFAULT_CODEC,
|
|
152
138
|
isAudioCodec: is_audio_codec_1.isAudioCodec,
|
|
153
139
|
logLevels: log_level_1.logLevels,
|
|
154
140
|
isEqualOrBelowLogLevel: log_level_1.isEqualOrBelowLogLevel,
|
|
155
141
|
isValidLogLevel: log_level_1.isValidLogLevel,
|
|
156
|
-
validateEveryNthFrame: validate_every_nth_frame_1.validateEveryNthFrame,
|
|
157
142
|
perf,
|
|
143
|
+
makeDownloadMap: download_map_1.makeDownloadMap,
|
|
144
|
+
cleanDownloadMap: download_map_1.cleanDownloadMap,
|
|
145
|
+
convertToPositiveFrameIndex: convert_to_positive_frame_index_1.convertToPositiveFrameIndex,
|
|
146
|
+
validateBitrate: validate_videobitrate_1.validateBitrate,
|
|
147
|
+
getFfmpegVersion: ffmpeg_flags_1.getFfmpegVersion,
|
|
158
148
|
};
|
|
149
|
+
// Warn of potential performance issues with Apple Silicon (M1 chip under Rosetta)
|
|
150
|
+
(0, check_apple_silicon_1.checkNodeVersionAndWarnAboutRosetta)();
|
package/dist/is-audio-codec.d.ts
CHANGED
|
File without changes
|
package/dist/is-audio-codec.js
CHANGED
|
File without changes
|
|
@@ -1,2 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
export declare const
|
|
1
|
+
import type { DownloadMap } from './assets/download-map';
|
|
2
|
+
export declare const isBeyondLastFrame: (downloadMap: DownloadMap, src: string, time: number) => boolean | 0;
|
|
3
|
+
export declare const markAsBeyondLastFrame: (downloadMap: DownloadMap, src: string, time: number) => void;
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.markAsBeyondLastFrame = exports.isBeyondLastFrame = void 0;
|
|
4
|
-
const
|
|
5
|
-
|
|
6
|
-
|
|
4
|
+
const isBeyondLastFrame = (downloadMap, src, time) => {
|
|
5
|
+
return (downloadMap.isBeyondLastFrameMap[src] &&
|
|
6
|
+
time >= downloadMap.isBeyondLastFrameMap[src]);
|
|
7
7
|
};
|
|
8
8
|
exports.isBeyondLastFrame = isBeyondLastFrame;
|
|
9
|
-
const markAsBeyondLastFrame = (src, time) => {
|
|
10
|
-
|
|
9
|
+
const markAsBeyondLastFrame = (downloadMap, src, time) => {
|
|
10
|
+
downloadMap.isBeyondLastFrameMap[src] = time;
|
|
11
11
|
};
|
|
12
12
|
exports.markAsBeyondLastFrame = markAsBeyondLastFrame;
|
package/dist/is-serve-url.d.ts
CHANGED
|
File without changes
|
package/dist/is-serve-url.js
CHANGED
|
File without changes
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
import type { OffthreadVideoImageFormat } from 'remotion';
|
|
3
|
+
import type { DownloadMap, SpecialVCodecForTransparency } from './assets/download-map';
|
|
3
4
|
import type { FfmpegExecutable } from './ffmpeg-executable';
|
|
4
|
-
import type { SpecialVCodecForTransparency } from './get-video-info';
|
|
5
5
|
export declare type LastFrameOptions = {
|
|
6
6
|
ffmpegExecutable: FfmpegExecutable;
|
|
7
7
|
ffprobeExecutable: FfmpegExecutable;
|
|
@@ -10,7 +10,8 @@ export declare type LastFrameOptions = {
|
|
|
10
10
|
specialVCodecForTransparency: SpecialVCodecForTransparency;
|
|
11
11
|
imageFormat: OffthreadVideoImageFormat;
|
|
12
12
|
needsResize: [number, number] | null;
|
|
13
|
+
downloadMap: DownloadMap;
|
|
13
14
|
};
|
|
14
15
|
export declare const setLastFrameInCache: (options: LastFrameOptions, data: Buffer) => void;
|
|
15
16
|
export declare const getLastFrameFromCache: (options: LastFrameOptions) => Buffer | null;
|
|
16
|
-
export declare const clearLastFileCache: () => void;
|
|
17
|
+
export declare const clearLastFileCache: (downloadMap: DownloadMap) => void;
|
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
// OffthreadVideo requires sometimes that the last frame of a video gets extracted, however, this can be slow. We allocate a cache for it but that can be garbage collected
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
4
|
exports.clearLastFileCache = exports.getLastFrameFromCache = exports.setLastFrameInCache = void 0;
|
|
5
|
-
let map = {};
|
|
6
5
|
const MAX_CACHE_SIZE = 50 * 1024 * 1024; // 50MB
|
|
7
6
|
let bufferSize = 0;
|
|
8
7
|
const makeLastFrameCacheKey = (options) => {
|
|
@@ -11,45 +10,46 @@ const makeLastFrameCacheKey = (options) => {
|
|
|
11
10
|
options.offset,
|
|
12
11
|
options.src,
|
|
13
12
|
options.imageFormat,
|
|
13
|
+
options.downloadMap.id,
|
|
14
14
|
].join('-');
|
|
15
15
|
};
|
|
16
16
|
const setLastFrameInCache = (options, data) => {
|
|
17
17
|
const key = makeLastFrameCacheKey(options);
|
|
18
|
-
if (
|
|
19
|
-
bufferSize -=
|
|
18
|
+
if (options.downloadMap.lastFrameMap[key]) {
|
|
19
|
+
bufferSize -= options.downloadMap.lastFrameMap[key].data.byteLength;
|
|
20
20
|
}
|
|
21
|
-
|
|
21
|
+
options.downloadMap.lastFrameMap[key] = { data, lastAccessed: Date.now() };
|
|
22
22
|
bufferSize += data.byteLength;
|
|
23
|
-
ensureMaxSize();
|
|
23
|
+
ensureMaxSize(options.downloadMap);
|
|
24
24
|
};
|
|
25
25
|
exports.setLastFrameInCache = setLastFrameInCache;
|
|
26
26
|
const getLastFrameFromCache = (options) => {
|
|
27
27
|
var _a;
|
|
28
28
|
const key = makeLastFrameCacheKey(options);
|
|
29
|
-
if (!
|
|
29
|
+
if (!options.downloadMap.lastFrameMap[key]) {
|
|
30
30
|
return null;
|
|
31
31
|
}
|
|
32
|
-
|
|
33
|
-
return (_a =
|
|
32
|
+
options.downloadMap.lastFrameMap[key].lastAccessed = Date.now();
|
|
33
|
+
return (_a = options.downloadMap.lastFrameMap[key].data) !== null && _a !== void 0 ? _a : null;
|
|
34
34
|
};
|
|
35
35
|
exports.getLastFrameFromCache = getLastFrameFromCache;
|
|
36
|
-
const removedLastFrameFromCache = (key) => {
|
|
37
|
-
if (!
|
|
36
|
+
const removedLastFrameFromCache = (key, downloadMap) => {
|
|
37
|
+
if (!downloadMap.lastFrameMap[key]) {
|
|
38
38
|
return;
|
|
39
39
|
}
|
|
40
|
-
bufferSize -=
|
|
41
|
-
delete
|
|
40
|
+
bufferSize -= downloadMap.lastFrameMap[key].data.byteLength;
|
|
41
|
+
delete downloadMap.lastFrameMap[key];
|
|
42
42
|
};
|
|
43
|
-
const ensureMaxSize = () => {
|
|
43
|
+
const ensureMaxSize = (downloadMap) => {
|
|
44
44
|
// eslint-disable-next-line no-unmodified-loop-condition
|
|
45
45
|
while (bufferSize > MAX_CACHE_SIZE) {
|
|
46
|
-
const earliest = Object.entries(
|
|
46
|
+
const earliest = Object.entries(downloadMap.lastFrameMap).sort((a, b) => {
|
|
47
47
|
return a[1].lastAccessed - b[1].lastAccessed;
|
|
48
48
|
})[0];
|
|
49
|
-
removedLastFrameFromCache(earliest[0]);
|
|
49
|
+
removedLastFrameFromCache(earliest[0], downloadMap);
|
|
50
50
|
}
|
|
51
51
|
};
|
|
52
|
-
const clearLastFileCache = () => {
|
|
53
|
-
|
|
52
|
+
const clearLastFileCache = (downloadMap) => {
|
|
53
|
+
downloadMap.lastFrameMap = {};
|
|
54
54
|
};
|
|
55
55
|
exports.clearLastFileCache = clearLastFileCache;
|
|
File without changes
|
|
File without changes
|
package/dist/log-level.d.ts
CHANGED
|
File without changes
|