@remotion/renderer 4.0.0-alpha13 → 4.0.0-alpha14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/download-and-map-assets-to-file.d.ts +6 -4
- package/dist/assets/download-and-map-assets-to-file.js +30 -6
- package/dist/assets/download-file.d.ts +2 -2
- package/dist/assets/download-map.d.ts +3 -3
- package/dist/assets/ffmpeg-volume-expression.d.ts +2 -2
- package/dist/assets/get-audio-channels.d.ts +1 -0
- package/dist/assets/get-audio-channels.js +10 -5
- package/dist/assets/get-video-stream-duration.d.ts +9 -0
- package/dist/assets/get-video-stream-duration.js +71 -0
- package/dist/assets/read-file.js +1 -1
- package/dist/assets/types.d.ts +4 -4
- package/dist/audio-codec.d.ts +2 -2
- package/dist/browser/Browser.d.ts +9 -9
- package/dist/browser/Browser.js +26 -32
- package/dist/browser/BrowserFetcher.d.ts +1 -1
- package/dist/browser/BrowserPage.d.ts +11 -2
- package/dist/browser/BrowserPage.js +47 -12
- package/dist/browser/BrowserRunner.js +19 -2
- package/dist/browser/ConsoleMessage.d.ts +1 -1
- package/dist/browser/DOMWorld.js +8 -8
- package/dist/browser/EvalTypes.d.ts +7 -7
- package/dist/browser/FrameManager.js +11 -11
- package/dist/browser/JSHandle.js +14 -14
- package/dist/browser/LaunchOptions.d.ts +1 -1
- package/dist/browser/Launcher.js +0 -1
- package/dist/browser/LifecycleWatcher.d.ts +1 -1
- package/dist/browser/NetworkEventManager.d.ts +4 -4
- package/dist/browser/NodeWebSocketTransport.js +16 -16
- package/dist/browser/Product.d.ts +1 -1
- package/dist/browser/Target.d.ts +2 -1
- package/dist/browser/Target.js +8 -2
- package/dist/browser/devtools-types.d.ts +10 -10
- package/dist/browser/mitt/index.d.ts +6 -6
- package/dist/browser/revisions.d.ts +1 -1
- package/dist/browser/should-log-message.d.ts +24 -0
- package/dist/browser/should-log-message.js +72 -0
- package/dist/browser-executable.d.ts +1 -1
- package/dist/browser-log.d.ts +1 -1
- package/dist/browser.d.ts +1 -1
- package/dist/calculate-sar-dar-pixels.d.ts +9 -0
- package/dist/calculate-sar-dar-pixels.js +19 -0
- package/dist/chalk/index.d.ts +4 -4
- package/dist/codec-supports-media.d.ts +1 -1
- package/dist/codec.d.ts +2 -2
- package/dist/combine-videos.d.ts +1 -1
- package/dist/compositor/compose.d.ts +11 -2
- package/dist/compositor/compose.js +15 -4
- package/dist/compositor/compositor.d.ts +1 -1
- package/dist/compositor/compositor.js +1 -1
- package/dist/compositor/payloads.d.ts +5 -5
- package/dist/create-ffmpeg-complex-filter.d.ts +4 -1
- package/dist/crf.d.ts +1 -1
- package/dist/determine-resize-params.d.ts +1 -0
- package/dist/determine-resize-params.js +10 -0
- package/dist/determine-vcodec-ffmpeg-flags.d.ts +2 -0
- package/dist/determine-vcodec-ffmpeg-flags.js +13 -0
- package/dist/ensure-ffmpeg.d.ts +18 -0
- package/dist/ensure-ffmpeg.js +58 -0
- package/dist/ensure-presentation-timestamp.d.ts +15 -0
- package/dist/ensure-presentation-timestamp.js +88 -0
- package/dist/error-handling/symbolicate-error.js +4 -2
- package/dist/extract-frame-from-video.d.ts +16 -0
- package/dist/extract-frame-from-video.js +191 -0
- package/dist/ffmpeg-executable.d.ts +1 -0
- package/dist/ffmpeg-executable.js +2 -0
- package/dist/ffmpeg-flags.d.ts +31 -0
- package/dist/ffmpeg-flags.js +245 -0
- package/dist/ffmpeg-override.d.ts +1 -1
- package/dist/file-extensions.d.ts +1 -1
- package/dist/frame-range.d.ts +1 -1
- package/dist/frame-to-ffmpeg-timestamp.d.ts +1 -0
- package/dist/frame-to-ffmpeg-timestamp.js +8 -0
- package/dist/get-browser-instance.d.ts +6 -1
- package/dist/get-browser-instance.js +9 -4
- package/dist/get-can-extract-frames-fast.d.ts +14 -0
- package/dist/get-can-extract-frames-fast.js +71 -0
- package/dist/get-compositions.d.ts +18 -11
- package/dist/get-compositions.js +66 -49
- package/dist/get-frame-of-video-slow.d.ts +17 -0
- package/dist/get-frame-of-video-slow.js +72 -0
- package/dist/get-frame-padded-index.d.ts +1 -1
- package/dist/get-video-info.d.ts +8 -0
- package/dist/get-video-info.js +59 -0
- package/dist/image-format.d.ts +3 -3
- package/dist/index.d.ts +110 -21
- package/dist/index.js +25 -13
- package/dist/is-beyond-last-frame.d.ts +3 -0
- package/dist/is-beyond-last-frame.js +12 -0
- package/dist/jpeg-quality.d.ts +1 -0
- package/dist/jpeg-quality.js +2 -1
- package/dist/last-frame-from-video-cache.d.ts +17 -0
- package/dist/last-frame-from-video-cache.js +55 -0
- package/dist/legacy-webpack-config.d.ts +9 -0
- package/dist/legacy-webpack-config.js +13 -0
- package/dist/log-level.d.ts +1 -1
- package/dist/logger.d.ts +4 -2
- package/dist/logger.js +12 -5
- package/dist/make-cancel-signal.d.ts +2 -2
- package/dist/merge-audio-track.d.ts +1 -1
- package/dist/mime-types.js +1 -1
- package/dist/offthread-video-server.d.ts +36 -4
- package/dist/offthread-video-server.js +48 -4
- package/dist/open-browser.d.ts +19 -10
- package/dist/open-browser.js +34 -21
- package/dist/options/option.d.ts +1 -1
- package/dist/parse-browser-error-stack.d.ts +1 -1
- package/dist/perf.d.ts +1 -1
- package/dist/pixel-format.d.ts +1 -1
- package/dist/prepare-server.d.ts +20 -8
- package/dist/prepare-server.js +52 -8
- package/dist/preprocess-audio-track.d.ts +2 -2
- package/dist/prespawn-ffmpeg.d.ts +1 -1
- package/dist/prespawn-ffmpeg.js +7 -7
- package/dist/prores-profile.d.ts +1 -1
- package/dist/provide-screenshot.d.ts +0 -1
- package/dist/puppeteer-screenshot.d.ts +0 -1
- package/dist/puppeteer-screenshot.js +1 -2
- package/dist/quality.d.ts +1 -0
- package/dist/quality.js +21 -0
- package/dist/render-frames.d.ts +32 -11
- package/dist/render-frames.js +112 -77
- package/dist/render-media.d.ts +50 -21
- package/dist/render-media.js +249 -197
- package/dist/render-still.d.ts +33 -18
- package/dist/render-still.js +71 -43
- package/dist/replace-browser.d.ts +1 -1
- package/dist/screenshot-dom-element.d.ts +0 -1
- package/dist/screenshot-task.d.ts +0 -1
- package/dist/select-composition.d.ts +19 -11
- package/dist/select-composition.js +79 -42
- package/dist/serve-static.d.ts +2 -3
- package/dist/serve-static.js +2 -4
- package/dist/set-props-and-env.d.ts +1 -1
- package/dist/stitch-frames-to-video.d.ts +32 -11
- package/dist/stitch-frames-to-video.js +121 -99
- package/dist/stringify-ffmpeg-filter.d.ts +2 -2
- package/dist/symbolicate-stacktrace.d.ts +16 -3
- package/dist/symbolicate-stacktrace.js +49 -24
- package/dist/take-frame-and-compose.d.ts +0 -1
- package/dist/truthy.d.ts +1 -1
- package/dist/try-to-extract-frame-of-video-fast.d.ts +12 -0
- package/dist/try-to-extract-frame-of-video-fast.js +55 -0
- package/dist/types.d.ts +2 -2
- package/dist/validate-ffmpeg.d.ts +7 -0
- package/dist/validate-ffmpeg.js +77 -0
- package/dist/validate-opengl-renderer.d.ts +1 -1
- package/dist/warn-about-ffmpeg-version.d.ts +5 -0
- package/dist/warn-about-ffmpeg-version.js +37 -0
- package/package.json +11 -11
package/dist/prepare-server.d.ts
CHANGED
|
@@ -1,19 +1,31 @@
|
|
|
1
1
|
import type { RenderMediaOnDownload } from './assets/download-and-map-assets-to-file';
|
|
2
2
|
import type { DownloadMap } from './assets/download-map';
|
|
3
3
|
import type { Compositor } from './compositor/compositor';
|
|
4
|
-
|
|
4
|
+
import type { OffthreadVideoServerEmitter } from './offthread-video-server';
|
|
5
|
+
import type { AnySourceMapConsumer } from './symbolicate-stacktrace';
|
|
6
|
+
export type RemotionServer = {
|
|
7
|
+
serveUrl: string;
|
|
8
|
+
closeServer: (force: boolean) => Promise<unknown>;
|
|
9
|
+
offthreadPort: number;
|
|
10
|
+
compositor: Compositor;
|
|
11
|
+
sourceMap: AnySourceMapConsumer | null;
|
|
12
|
+
events: OffthreadVideoServerEmitter;
|
|
13
|
+
downloadMap: DownloadMap;
|
|
14
|
+
};
|
|
15
|
+
type PrepareServerOptions = {
|
|
5
16
|
webpackConfigOrServeUrl: string;
|
|
6
|
-
onDownload: RenderMediaOnDownload;
|
|
7
|
-
onError: (err: Error) => void;
|
|
8
17
|
port: number | null;
|
|
9
|
-
downloadMap: DownloadMap;
|
|
10
18
|
remotionRoot: string;
|
|
11
19
|
concurrency: number;
|
|
12
20
|
verbose: boolean;
|
|
13
21
|
indent: boolean;
|
|
22
|
+
};
|
|
23
|
+
export declare const prepareServer: ({ webpackConfigOrServeUrl, port, remotionRoot, concurrency, verbose, indent, }: PrepareServerOptions) => Promise<RemotionServer>;
|
|
24
|
+
export declare const makeOrReuseServer: (server: RemotionServer | undefined, config: PrepareServerOptions, { onDownload, onError, }: {
|
|
25
|
+
onError: (err: Error) => void;
|
|
26
|
+
onDownload: RenderMediaOnDownload | null;
|
|
14
27
|
}) => Promise<{
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
offthreadPort: number;
|
|
18
|
-
compositor: Compositor;
|
|
28
|
+
server: RemotionServer;
|
|
29
|
+
cleanupServer: (force: boolean) => Promise<unknown>;
|
|
19
30
|
}>;
|
|
31
|
+
export {};
|
package/dist/prepare-server.js
CHANGED
|
@@ -3,17 +3,22 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.prepareServer = void 0;
|
|
6
|
+
exports.makeOrReuseServer = exports.prepareServer = void 0;
|
|
7
7
|
const node_fs_1 = require("node:fs");
|
|
8
8
|
const node_path_1 = __importDefault(require("node:path"));
|
|
9
|
+
const remotion_1 = require("remotion");
|
|
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");
|
|
9
12
|
const is_serve_url_1 = require("./is-serve-url");
|
|
13
|
+
const logger_1 = require("./logger");
|
|
10
14
|
const serve_static_1 = require("./serve-static");
|
|
15
|
+
const symbolicate_stacktrace_1 = require("./symbolicate-stacktrace");
|
|
11
16
|
const wait_for_symbolication_error_to_be_done_1 = require("./wait-for-symbolication-error-to-be-done");
|
|
12
|
-
const prepareServer = async ({
|
|
17
|
+
const prepareServer = async ({ webpackConfigOrServeUrl, port, remotionRoot, concurrency, verbose, indent, }) => {
|
|
18
|
+
const downloadMap = (0, download_map_1.makeDownloadMap)();
|
|
19
|
+
logger_1.Log.verboseAdvanced({ indent, logLevel: verbose ? 'verbose' : 'info' }, 'Created directory for temporary files', downloadMap.assetDir);
|
|
13
20
|
if ((0, is_serve_url_1.isServeUrl)(webpackConfigOrServeUrl)) {
|
|
14
|
-
const { port: offthreadPort, close: closeProxy, compositor: comp, } = await (0, serve_static_1.serveStatic)(null, {
|
|
15
|
-
onDownload,
|
|
16
|
-
onError,
|
|
21
|
+
const { port: offthreadPort, close: closeProxy, compositor: comp, events, } = await (0, serve_static_1.serveStatic)(null, {
|
|
17
22
|
port,
|
|
18
23
|
downloadMap,
|
|
19
24
|
remotionRoot,
|
|
@@ -24,10 +29,14 @@ const prepareServer = async ({ onDownload, onError, webpackConfigOrServeUrl, por
|
|
|
24
29
|
return Promise.resolve({
|
|
25
30
|
serveUrl: webpackConfigOrServeUrl,
|
|
26
31
|
closeServer: () => {
|
|
32
|
+
(0, download_map_1.cleanDownloadMap)(downloadMap);
|
|
27
33
|
return closeProxy();
|
|
28
34
|
},
|
|
29
35
|
offthreadPort,
|
|
30
36
|
compositor: comp,
|
|
37
|
+
sourceMap: null,
|
|
38
|
+
events,
|
|
39
|
+
downloadMap,
|
|
31
40
|
});
|
|
32
41
|
}
|
|
33
42
|
// Check if the path has a `index.html` file
|
|
@@ -36,9 +45,8 @@ const prepareServer = async ({ onDownload, onError, webpackConfigOrServeUrl, por
|
|
|
36
45
|
if (!exists) {
|
|
37
46
|
throw new Error(`Tried to serve the Webpack bundle on a HTTP server, but the file ${indexFile} does not exist. Is this a valid path to a Webpack bundle?`);
|
|
38
47
|
}
|
|
39
|
-
const
|
|
40
|
-
|
|
41
|
-
onError,
|
|
48
|
+
const sourceMap = (0, symbolicate_stacktrace_1.getSourceMapFromLocalFile)(node_path_1.default.join(webpackConfigOrServeUrl, remotion_1.Internals.bundleName));
|
|
49
|
+
const { port: serverPort, close, compositor, events: newEvents, } = await (0, serve_static_1.serveStatic)(webpackConfigOrServeUrl, {
|
|
42
50
|
port,
|
|
43
51
|
downloadMap,
|
|
44
52
|
remotionRoot,
|
|
@@ -48,6 +56,8 @@ const prepareServer = async ({ onDownload, onError, webpackConfigOrServeUrl, por
|
|
|
48
56
|
});
|
|
49
57
|
return Promise.resolve({
|
|
50
58
|
closeServer: async (force) => {
|
|
59
|
+
sourceMap.then((s) => s === null || s === void 0 ? void 0 : s.destroy());
|
|
60
|
+
(0, download_map_1.cleanDownloadMap)(downloadMap);
|
|
51
61
|
if (!force) {
|
|
52
62
|
await (0, wait_for_symbolication_error_to_be_done_1.waitForSymbolicationToBeDone)();
|
|
53
63
|
}
|
|
@@ -56,6 +66,40 @@ const prepareServer = async ({ onDownload, onError, webpackConfigOrServeUrl, por
|
|
|
56
66
|
serveUrl: `http://localhost:${serverPort}`,
|
|
57
67
|
offthreadPort: serverPort,
|
|
58
68
|
compositor,
|
|
69
|
+
sourceMap: await sourceMap,
|
|
70
|
+
events: newEvents,
|
|
71
|
+
downloadMap,
|
|
59
72
|
});
|
|
60
73
|
};
|
|
61
74
|
exports.prepareServer = prepareServer;
|
|
75
|
+
const makeOrReuseServer = async (server, config, { onDownload, onError, }) => {
|
|
76
|
+
if (server) {
|
|
77
|
+
const cleanupOnDownload = (0, download_and_map_assets_to_file_1.attachDownloadListenerToEmitter)(server.events, onDownload);
|
|
78
|
+
const cleanupError = server.events.addEventListener('error', ({ detail: { error } }) => {
|
|
79
|
+
onError(error);
|
|
80
|
+
});
|
|
81
|
+
return {
|
|
82
|
+
server,
|
|
83
|
+
cleanupServer: () => {
|
|
84
|
+
cleanupOnDownload();
|
|
85
|
+
cleanupError();
|
|
86
|
+
return Promise.resolve();
|
|
87
|
+
},
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
const newServer = await (0, exports.prepareServer)(config);
|
|
91
|
+
const cleanupOnDownloadNew = (0, download_and_map_assets_to_file_1.attachDownloadListenerToEmitter)(newServer.events, onDownload);
|
|
92
|
+
const cleanupErrorNew = newServer.events.addEventListener('error', ({ detail: { error } }) => {
|
|
93
|
+
onError(error);
|
|
94
|
+
});
|
|
95
|
+
return {
|
|
96
|
+
server: newServer,
|
|
97
|
+
cleanupServer: (force) => {
|
|
98
|
+
newServer.closeServer(force);
|
|
99
|
+
cleanupOnDownloadNew();
|
|
100
|
+
cleanupErrorNew();
|
|
101
|
+
return Promise.resolve();
|
|
102
|
+
},
|
|
103
|
+
};
|
|
104
|
+
};
|
|
105
|
+
exports.makeOrReuseServer = makeOrReuseServer;
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import type { DownloadMap } from './assets/download-map';
|
|
2
2
|
import type { MediaAsset } from './assets/types';
|
|
3
3
|
import type { ProcessedTrack } from './stringify-ffmpeg-filter';
|
|
4
|
-
|
|
4
|
+
type Options = {
|
|
5
5
|
outName: string;
|
|
6
6
|
asset: MediaAsset;
|
|
7
7
|
expectedFrames: number;
|
|
8
8
|
fps: number;
|
|
9
9
|
downloadMap: DownloadMap;
|
|
10
10
|
};
|
|
11
|
-
export
|
|
11
|
+
export type PreprocessedAudioTrack = {
|
|
12
12
|
outName: string;
|
|
13
13
|
filter: ProcessedTrack;
|
|
14
14
|
};
|
|
@@ -4,7 +4,7 @@ import type { VideoImageFormat } from './image-format';
|
|
|
4
4
|
import type { CancelSignal } from './make-cancel-signal';
|
|
5
5
|
import type { PixelFormat } from './pixel-format';
|
|
6
6
|
import type { ProResProfile } from './prores-profile';
|
|
7
|
-
|
|
7
|
+
type PreStitcherOptions = {
|
|
8
8
|
fps: number;
|
|
9
9
|
width: number;
|
|
10
10
|
height: number;
|
package/dist/prespawn-ffmpeg.js
CHANGED
|
@@ -33,29 +33,29 @@ const prespawnFfmpeg = (options) => {
|
|
|
33
33
|
logger_1.Log.verboseAdvanced({
|
|
34
34
|
indent: options.indent,
|
|
35
35
|
logLevel: options.verbose ? 'verbose' : 'info',
|
|
36
|
-
tag: '
|
|
36
|
+
tag: 'prespawnFfmpeg()',
|
|
37
37
|
}, 'encoder', encoderName);
|
|
38
38
|
logger_1.Log.verboseAdvanced({
|
|
39
39
|
indent: options.indent,
|
|
40
40
|
logLevel: options.verbose ? 'verbose' : 'info',
|
|
41
|
-
tag: '
|
|
41
|
+
tag: 'prespawnFfmpeg()',
|
|
42
42
|
}, 'pixelFormat', pixelFormat);
|
|
43
43
|
if (supportsCrf) {
|
|
44
44
|
logger_1.Log.verboseAdvanced({
|
|
45
45
|
indent: options.indent,
|
|
46
46
|
logLevel: options.verbose ? 'verbose' : 'info',
|
|
47
|
-
tag: '
|
|
47
|
+
tag: 'prespawnFfmpeg()',
|
|
48
48
|
}, 'pixelFormat', options.crf);
|
|
49
49
|
}
|
|
50
50
|
logger_1.Log.verboseAdvanced({
|
|
51
51
|
indent: options.indent,
|
|
52
52
|
logLevel: options.verbose ? 'verbose' : 'info',
|
|
53
|
-
tag: '
|
|
53
|
+
tag: 'prespawnFfmpeg()',
|
|
54
54
|
}, 'codec', codec);
|
|
55
55
|
logger_1.Log.verboseAdvanced({
|
|
56
56
|
indent: options.indent,
|
|
57
57
|
logLevel: options.verbose ? 'verbose' : 'info',
|
|
58
|
-
tag: '
|
|
58
|
+
tag: 'prespawnFfmpeg()',
|
|
59
59
|
}, 'proResProfileName', proResProfileName);
|
|
60
60
|
(0, pixel_format_1.validateSelectedPixelFormatAndCodecCombination)(pixelFormat, codec);
|
|
61
61
|
const ffmpegArgs = [
|
|
@@ -87,12 +87,12 @@ const prespawnFfmpeg = (options) => {
|
|
|
87
87
|
logger_1.Log.verboseAdvanced({
|
|
88
88
|
indent: options.indent,
|
|
89
89
|
logLevel: options.verbose ? 'verbose' : 'info',
|
|
90
|
-
tag: '
|
|
90
|
+
tag: 'prespawnFfmpeg()',
|
|
91
91
|
}, 'Generated FFMPEG command:');
|
|
92
92
|
logger_1.Log.verboseAdvanced({
|
|
93
93
|
indent: options.indent,
|
|
94
94
|
logLevel: options.verbose ? 'verbose' : 'info',
|
|
95
|
-
tag: '
|
|
95
|
+
tag: 'prespawnFfmpeg()',
|
|
96
96
|
}, ffmpegArgs.join(' '));
|
|
97
97
|
const ffmpegString = ffmpegArgs.flat(2).filter(Boolean);
|
|
98
98
|
const finalFfmpegString = options.ffmpegOverride
|
package/dist/prores-profile.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { Codec } from './codec';
|
|
2
2
|
export declare const proResProfileOptions: readonly ["4444-xq", "4444", "hq", "standard", "light", "proxy"];
|
|
3
|
-
export
|
|
3
|
+
export type ProResProfile = typeof proResProfileOptions[number];
|
|
4
4
|
export declare const validateSelectedCodecAndProResCombination: ({ codec, proResProfile, }: {
|
|
5
5
|
codec: Codec;
|
|
6
6
|
proResProfile: ProResProfile | undefined;
|
|
@@ -28,7 +28,6 @@ const assert = __importStar(require("node:assert"));
|
|
|
28
28
|
const screenshot_task_1 = require("./screenshot-task");
|
|
29
29
|
const screenshot = (options) => {
|
|
30
30
|
if (options.jpegQuality) {
|
|
31
|
-
assert.ok(options.type === 'jpeg', `options.quality is unsupported for the ${options.type} screenshots`);
|
|
32
31
|
assert.ok(typeof options.jpegQuality === 'number', 'Expected options.quality to be a number but found ' +
|
|
33
32
|
typeof options.jpegQuality);
|
|
34
33
|
assert.ok(Number.isInteger(options.jpegQuality), 'Expected options.quality to be an integer');
|
|
@@ -42,7 +41,7 @@ const screenshot = (options) => {
|
|
|
42
41
|
width: options.width,
|
|
43
42
|
omitBackground: options.omitBackground,
|
|
44
43
|
path: options.path,
|
|
45
|
-
jpegQuality: options.jpegQuality,
|
|
44
|
+
jpegQuality: options.type === 'jpeg' ? options.jpegQuality : undefined,
|
|
46
45
|
clipRegion: options.clipRegion,
|
|
47
46
|
}));
|
|
48
47
|
};
|
|
@@ -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,7 +1,6 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
import type { AnySmallCompMetadata } from 'remotion';
|
|
3
3
|
import type { RenderMediaOnDownload } from './assets/download-and-map-assets-to-file';
|
|
4
|
-
import type { DownloadMap } from './assets/download-map';
|
|
5
4
|
import type { BrowserExecutable } from './browser-executable';
|
|
6
5
|
import type { BrowserLog } from './browser-log';
|
|
7
6
|
import type { HeadlessBrowser } from './browser/Browser';
|
|
@@ -9,8 +8,38 @@ import type { FrameRange } from './frame-range';
|
|
|
9
8
|
import type { VideoImageFormat } from './image-format';
|
|
10
9
|
import type { CancelSignal } from './make-cancel-signal';
|
|
11
10
|
import type { ChromiumOptions } from './open-browser';
|
|
11
|
+
import type { RemotionServer } from './prepare-server';
|
|
12
12
|
import type { OnStartData, RenderFramesOutput } from './types';
|
|
13
|
-
|
|
13
|
+
export type InternalRenderFramesOptions = {
|
|
14
|
+
onStart: null | ((data: OnStartData) => void);
|
|
15
|
+
onFrameUpdate: null | ((framesRendered: number, frameIndex: number, timeToRenderInMilliseconds: number) => void);
|
|
16
|
+
outputDir: string | null;
|
|
17
|
+
inputProps: Record<string, unknown>;
|
|
18
|
+
envVariables: Record<string, string>;
|
|
19
|
+
imageFormat: VideoImageFormat;
|
|
20
|
+
jpegQuality: number;
|
|
21
|
+
frameRange: FrameRange | null;
|
|
22
|
+
everyNthFrame: number;
|
|
23
|
+
dumpBrowserLogs: boolean;
|
|
24
|
+
puppeteerInstance: HeadlessBrowser | undefined;
|
|
25
|
+
browserExecutable: BrowserExecutable | null;
|
|
26
|
+
onBrowserLog: null | ((log: BrowserLog) => void);
|
|
27
|
+
onFrameBuffer: null | ((buffer: Buffer, frame: number) => void);
|
|
28
|
+
onDownload: RenderMediaOnDownload | null;
|
|
29
|
+
timeoutInMilliseconds: number;
|
|
30
|
+
chromiumOptions: ChromiumOptions;
|
|
31
|
+
scale: number;
|
|
32
|
+
port: number | null;
|
|
33
|
+
cancelSignal: CancelSignal | undefined;
|
|
34
|
+
composition: AnySmallCompMetadata;
|
|
35
|
+
indent: boolean;
|
|
36
|
+
server: RemotionServer | undefined;
|
|
37
|
+
muted: boolean;
|
|
38
|
+
concurrency: number | string | null;
|
|
39
|
+
webpackBundleOrServeUrl: string;
|
|
40
|
+
verbose: boolean;
|
|
41
|
+
};
|
|
42
|
+
export type RenderFramesOptions = {
|
|
14
43
|
onStart: (data: OnStartData) => void;
|
|
15
44
|
onFrameUpdate: (framesRendered: number, frameIndex: number, timeToRenderInMilliseconds: number) => void;
|
|
16
45
|
outputDir: string | null;
|
|
@@ -36,22 +65,14 @@ declare type RenderFramesOptions = {
|
|
|
36
65
|
port?: number | null;
|
|
37
66
|
cancelSignal?: CancelSignal;
|
|
38
67
|
composition: AnySmallCompMetadata;
|
|
39
|
-
/**
|
|
40
|
-
* @deprecated Only for Remotion internal usage
|
|
41
|
-
*/
|
|
42
|
-
downloadMap?: DownloadMap;
|
|
43
|
-
/**
|
|
44
|
-
* @deprecated Only for Remotion internal usage
|
|
45
|
-
*/
|
|
46
|
-
indent?: boolean;
|
|
47
68
|
muted?: boolean;
|
|
48
69
|
concurrency?: number | string | null;
|
|
49
70
|
serveUrl: string;
|
|
50
71
|
verbose?: boolean;
|
|
51
72
|
};
|
|
73
|
+
export declare const internalRenderFrames: ({ browserExecutable, cancelSignal, chromiumOptions, composition, concurrency, dumpBrowserLogs, envVariables, everyNthFrame, frameRange, imageFormat, indent, inputProps, jpegQuality, muted, onBrowserLog, onDownload, onFrameBuffer, onFrameUpdate, onStart, outputDir, port, puppeteerInstance, scale, server, timeoutInMilliseconds, verbose, webpackBundleOrServeUrl, }: InternalRenderFramesOptions) => Promise<RenderFramesOutput>;
|
|
52
74
|
/**
|
|
53
75
|
* @description Renders a series of images using Puppeteer and computes information for mixing audio.
|
|
54
76
|
* @see [Documentation](https://www.remotion.dev/docs/renderer/render-frames)
|
|
55
77
|
*/
|
|
56
78
|
export declare const renderFrames: (options: RenderFramesOptions) => Promise<RenderFramesOutput>;
|
|
57
|
-
export {};
|