@remotion/renderer 4.0.21 → 4.0.23
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/.prettierignore +2 -0
- package/dist/assets/get-video-stream-duration.d.ts +9 -0
- package/dist/assets/get-video-stream-duration.js +71 -0
- package/dist/audio-codec.d.ts +3 -3
- package/dist/browser/Product.d.ts +16 -0
- package/dist/browser/Product.js +17 -0
- package/dist/browser/create-browser-fetcher.d.ts +17 -0
- package/dist/browser/create-browser-fetcher.js +58 -0
- package/dist/browser/revisions.d.ts +20 -0
- package/dist/browser/revisions.js +21 -0
- package/dist/calculate-sar-dar-pixels.d.ts +9 -0
- package/dist/calculate-sar-dar-pixels.js +19 -0
- package/dist/client.d.ts +155 -8
- package/dist/client.js +6 -0
- package/dist/codec.d.ts +1 -1
- package/dist/compositor/compositor.d.ts +2 -2
- package/dist/compositor/compositor.js +22 -19
- package/dist/compositor/payloads.d.ts +2 -2
- package/dist/copy-to-clipboard.js +1 -1
- package/dist/create-ffmpeg-complex-filter.d.ts +4 -1
- package/dist/determine-resize-params.d.ts +4 -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/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/file-extensions.d.ts +1 -1
- package/dist/format-logs.js +3 -1
- package/dist/frame-to-ffmpeg-timestamp.d.ts +1 -0
- package/dist/frame-to-ffmpeg-timestamp.js +8 -0
- 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 +5 -2
- package/dist/get-compositions.js +4 -1
- package/dist/get-extension-from-codec.js +1 -2
- package/dist/get-frame-of-video-slow.d.ts +17 -0
- package/dist/get-frame-of-video-slow.js +72 -0
- package/dist/get-silent-parts.d.ts +1 -1
- package/dist/get-silent-parts.js +1 -1
- package/dist/get-video-info.d.ts +8 -0
- package/dist/get-video-info.js +59 -0
- package/dist/get-video-metadata.js +1 -1
- package/dist/image-format.d.ts +2 -2
- package/dist/index.d.ts +54 -29
- package/dist/is-beyond-last-frame.d.ts +3 -0
- package/dist/is-beyond-last-frame.js +12 -0
- 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 +1 -1
- package/dist/offthread-video-server.d.ts +2 -1
- package/dist/offthread-video-server.js +7 -2
- package/dist/open-browser.d.ts +1 -1
- package/dist/options/audio-bitrate.d.ts +8 -2
- package/dist/options/audio-bitrate.js +1 -0
- package/dist/options/crf.d.ts +8 -2
- package/dist/options/crf.js +1 -0
- package/dist/options/enforce-audio.d.ts +8 -2
- package/dist/options/enforce-audio.js +1 -0
- package/dist/options/jpeg-quality.d.ts +8 -2
- package/dist/options/jpeg-quality.js +1 -0
- package/dist/options/mute.d.ts +8 -2
- package/dist/options/mute.js +1 -0
- package/dist/options/offthreadvideo-cache-size.d.ts +9 -0
- package/dist/options/offthreadvideo-cache-size.js +33 -0
- package/dist/options/option.d.ts +7 -2
- package/dist/options/options-map.d.ts +82 -0
- package/dist/options/options-map.js +16 -0
- package/dist/options/scale.d.ts +8 -2
- package/dist/options/scale.js +1 -0
- package/dist/options/video-bitrate.d.ts +8 -2
- package/dist/options/video-bitrate.js +1 -0
- package/dist/options/video-codec.d.ts +8 -2
- package/dist/options/video-codec.js +1 -0
- package/dist/pixel-format.d.ts +1 -1
- package/dist/prepare-server.d.ts +2 -1
- package/dist/prepare-server.js +3 -1
- 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/quality.d.ts +1 -0
- package/dist/quality.js +21 -0
- package/dist/render-frames.d.ts +5 -2
- package/dist/render-frames.js +4 -2
- package/dist/render-media.d.ts +9 -3
- package/dist/render-media.js +12 -2
- package/dist/render-still.d.ts +5 -1
- package/dist/render-still.js +3 -1
- package/dist/screenshot-dom-element.d.ts +0 -1
- package/dist/screenshot-task.d.ts +0 -1
- package/dist/select-composition.d.ts +4 -1
- package/dist/select-composition.js +5 -1
- package/dist/serve-static.d.ts +1 -0
- package/dist/serve-static.js +1 -0
- package/dist/stitch-frames-to-video.d.ts +4 -2
- package/dist/stitch-frames-to-video.js +4 -2
- package/dist/take-frame-and-compose.d.ts +0 -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/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/dist/x264-preset.d.ts +7 -0
- package/dist/x264-preset.js +29 -0
- package/package.json +11 -12
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
export declare const optionsMap: {
|
|
2
|
+
readonly renderMedia: readonly [{
|
|
3
|
+
name: string;
|
|
4
|
+
cliFlag: "offthreadvideo-cache-size-in-bytes";
|
|
5
|
+
description: JSX.Element;
|
|
6
|
+
ssrName: "offthreadVideoCacheSizeInBytes";
|
|
7
|
+
docLink: string;
|
|
8
|
+
type: number | null;
|
|
9
|
+
}];
|
|
10
|
+
readonly renderStill: readonly [{
|
|
11
|
+
name: string;
|
|
12
|
+
cliFlag: "offthreadvideo-cache-size-in-bytes";
|
|
13
|
+
description: JSX.Element;
|
|
14
|
+
ssrName: "offthreadVideoCacheSizeInBytes";
|
|
15
|
+
docLink: string;
|
|
16
|
+
type: number | null;
|
|
17
|
+
}];
|
|
18
|
+
readonly getCompositions: readonly [{
|
|
19
|
+
name: string;
|
|
20
|
+
cliFlag: "offthreadvideo-cache-size-in-bytes";
|
|
21
|
+
description: JSX.Element;
|
|
22
|
+
ssrName: "offthreadVideoCacheSizeInBytes";
|
|
23
|
+
docLink: string;
|
|
24
|
+
type: number | null;
|
|
25
|
+
}];
|
|
26
|
+
readonly selectComposition: readonly [{
|
|
27
|
+
name: string;
|
|
28
|
+
cliFlag: "offthreadvideo-cache-size-in-bytes";
|
|
29
|
+
description: JSX.Element;
|
|
30
|
+
ssrName: "offthreadVideoCacheSizeInBytes";
|
|
31
|
+
docLink: string;
|
|
32
|
+
type: number | null;
|
|
33
|
+
}];
|
|
34
|
+
readonly renderFrames: readonly [{
|
|
35
|
+
name: string;
|
|
36
|
+
cliFlag: "offthreadvideo-cache-size-in-bytes";
|
|
37
|
+
description: JSX.Element;
|
|
38
|
+
ssrName: "offthreadVideoCacheSizeInBytes";
|
|
39
|
+
docLink: string;
|
|
40
|
+
type: number | null;
|
|
41
|
+
}];
|
|
42
|
+
readonly renderMediaOnLambda: readonly [{
|
|
43
|
+
name: string;
|
|
44
|
+
cliFlag: "offthreadvideo-cache-size-in-bytes";
|
|
45
|
+
description: JSX.Element;
|
|
46
|
+
ssrName: "offthreadVideoCacheSizeInBytes";
|
|
47
|
+
docLink: string;
|
|
48
|
+
type: number | null;
|
|
49
|
+
}];
|
|
50
|
+
readonly renderStillOnLambda: readonly [{
|
|
51
|
+
name: string;
|
|
52
|
+
cliFlag: "offthreadvideo-cache-size-in-bytes";
|
|
53
|
+
description: JSX.Element;
|
|
54
|
+
ssrName: "offthreadVideoCacheSizeInBytes";
|
|
55
|
+
docLink: string;
|
|
56
|
+
type: number | null;
|
|
57
|
+
}];
|
|
58
|
+
readonly getCompositionsOnLambda: readonly [{
|
|
59
|
+
name: string;
|
|
60
|
+
cliFlag: "offthreadvideo-cache-size-in-bytes";
|
|
61
|
+
description: JSX.Element;
|
|
62
|
+
ssrName: "offthreadVideoCacheSizeInBytes";
|
|
63
|
+
docLink: string;
|
|
64
|
+
type: number | null;
|
|
65
|
+
}];
|
|
66
|
+
readonly renderMediaOnCloudRun: readonly [{
|
|
67
|
+
name: string;
|
|
68
|
+
cliFlag: "offthreadvideo-cache-size-in-bytes";
|
|
69
|
+
description: JSX.Element;
|
|
70
|
+
ssrName: "offthreadVideoCacheSizeInBytes";
|
|
71
|
+
docLink: string;
|
|
72
|
+
type: number | null;
|
|
73
|
+
}];
|
|
74
|
+
readonly renderStillOnCloudRun: readonly [{
|
|
75
|
+
name: string;
|
|
76
|
+
cliFlag: "offthreadvideo-cache-size-in-bytes";
|
|
77
|
+
description: JSX.Element;
|
|
78
|
+
ssrName: "offthreadVideoCacheSizeInBytes";
|
|
79
|
+
docLink: string;
|
|
80
|
+
type: number | null;
|
|
81
|
+
}];
|
|
82
|
+
};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.optionsMap = void 0;
|
|
4
|
+
const offthreadvideo_cache_size_1 = require("./offthreadvideo-cache-size");
|
|
5
|
+
exports.optionsMap = {
|
|
6
|
+
renderMedia: [offthreadvideo_cache_size_1.offthreadVideoCacheSizeInBytesOption],
|
|
7
|
+
renderStill: [offthreadvideo_cache_size_1.offthreadVideoCacheSizeInBytesOption],
|
|
8
|
+
getCompositions: [offthreadvideo_cache_size_1.offthreadVideoCacheSizeInBytesOption],
|
|
9
|
+
selectComposition: [offthreadvideo_cache_size_1.offthreadVideoCacheSizeInBytesOption],
|
|
10
|
+
renderFrames: [offthreadvideo_cache_size_1.offthreadVideoCacheSizeInBytesOption],
|
|
11
|
+
renderMediaOnLambda: [offthreadvideo_cache_size_1.offthreadVideoCacheSizeInBytesOption],
|
|
12
|
+
renderStillOnLambda: [offthreadvideo_cache_size_1.offthreadVideoCacheSizeInBytesOption],
|
|
13
|
+
getCompositionsOnLambda: [offthreadvideo_cache_size_1.offthreadVideoCacheSizeInBytesOption],
|
|
14
|
+
renderMediaOnCloudRun: [offthreadvideo_cache_size_1.offthreadVideoCacheSizeInBytesOption],
|
|
15
|
+
renderStillOnCloudRun: [offthreadvideo_cache_size_1.offthreadVideoCacheSizeInBytesOption],
|
|
16
|
+
};
|
package/dist/options/scale.d.ts
CHANGED
package/dist/options/scale.js
CHANGED
|
@@ -8,4 +8,5 @@ exports.scaleOption = {
|
|
|
8
8
|
description: ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: ["Scales the output by a factor. For example, a 1280x720px frame will become a 1920x1080px frame with a scale factor of ", (0, jsx_runtime_1.jsx)("code", { children: "1.5" }), ". Vector elements like fonts and HTML markups will be rendered with extra details."] })),
|
|
9
9
|
ssrName: 'scale',
|
|
10
10
|
docLink: 'https://www.remotion.dev/docs/scaling',
|
|
11
|
+
type: 0,
|
|
11
12
|
};
|
|
@@ -8,4 +8,5 @@ exports.videoBitrate = {
|
|
|
8
8
|
description: ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: ["Specify the target bitrate for the generated video. The syntax for FFMPEGs", (0, jsx_runtime_1.jsx)("code", { children: "-b:v" }), " parameter should be used. FFMPEG may encode the video in a way that will not result in the exact video bitrate specified. Example values: ", (0, jsx_runtime_1.jsx)("code", { children: "512K" }), " for 512 kbps, ", (0, jsx_runtime_1.jsx)("code", { children: "1M" }), " for 1 Mbps."] })),
|
|
9
9
|
ssrName: 'videoBitrate',
|
|
10
10
|
docLink: 'https://www.remotion.dev/docs/renderer/render-media#videobitrate-',
|
|
11
|
+
type: '',
|
|
11
12
|
};
|
|
@@ -1,2 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
export declare const videoCodecOption: {
|
|
2
|
+
name: string;
|
|
3
|
+
cliFlag: string;
|
|
4
|
+
description: JSX.Element;
|
|
5
|
+
ssrName: string;
|
|
6
|
+
docLink: string;
|
|
7
|
+
type: string;
|
|
8
|
+
};
|
|
@@ -8,4 +8,5 @@ exports.videoCodecOption = {
|
|
|
8
8
|
description: ((0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: "H264 works well in most cases, but sometimes it's worth going for a different codec. WebM achieves higher compression but is slower to render. WebM and ProRes support transparency." })),
|
|
9
9
|
ssrName: 'codec',
|
|
10
10
|
docLink: 'https://www.remotion.dev/docs/encoding/#choosing-a-codec',
|
|
11
|
+
type: '',
|
|
11
12
|
};
|
package/dist/pixel-format.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Codec } from './codec';
|
|
2
2
|
export declare const validPixelFormats: readonly ["yuv420p", "yuva420p", "yuv422p", "yuv444p", "yuv420p10le", "yuv422p10le", "yuv444p10le", "yuva444p10le"];
|
|
3
|
-
export type PixelFormat = typeof validPixelFormats[number];
|
|
3
|
+
export type PixelFormat = (typeof validPixelFormats)[number];
|
|
4
4
|
export declare const DEFAULT_PIXEL_FORMAT: PixelFormat;
|
|
5
5
|
export declare const validateSelectedPixelFormatAndCodecCombination: (pixelFormat: PixelFormat | undefined, codec: Codec) => undefined;
|
package/dist/prepare-server.d.ts
CHANGED
|
@@ -18,8 +18,9 @@ type PrepareServerOptions = {
|
|
|
18
18
|
concurrency: number;
|
|
19
19
|
logLevel: LogLevel;
|
|
20
20
|
indent: boolean;
|
|
21
|
+
offthreadVideoCacheSizeInBytes: number | null;
|
|
21
22
|
};
|
|
22
|
-
export declare const prepareServer: ({ webpackConfigOrServeUrl, port, remotionRoot, concurrency, logLevel, indent, }: PrepareServerOptions) => Promise<RemotionServer>;
|
|
23
|
+
export declare const prepareServer: ({ webpackConfigOrServeUrl, port, remotionRoot, concurrency, logLevel, indent, offthreadVideoCacheSizeInBytes, }: PrepareServerOptions) => Promise<RemotionServer>;
|
|
23
24
|
export declare const makeOrReuseServer: (server: RemotionServer | undefined, config: PrepareServerOptions, { onDownload, onError, }: {
|
|
24
25
|
onError: (err: Error) => void;
|
|
25
26
|
onDownload: RenderMediaOnDownload | null;
|
package/dist/prepare-server.js
CHANGED
|
@@ -15,7 +15,7 @@ const logger_1 = require("./logger");
|
|
|
15
15
|
const serve_static_1 = require("./serve-static");
|
|
16
16
|
const symbolicate_stacktrace_1 = require("./symbolicate-stacktrace");
|
|
17
17
|
const wait_for_symbolication_error_to_be_done_1 = require("./wait-for-symbolication-error-to-be-done");
|
|
18
|
-
const prepareServer = async ({ webpackConfigOrServeUrl, port, remotionRoot, concurrency, logLevel, indent, }) => {
|
|
18
|
+
const prepareServer = async ({ webpackConfigOrServeUrl, port, remotionRoot, concurrency, logLevel, indent, offthreadVideoCacheSizeInBytes, }) => {
|
|
19
19
|
const downloadMap = (0, download_map_1.makeDownloadMap)();
|
|
20
20
|
logger_1.Log.verboseAdvanced({ indent, logLevel }, 'Created directory for temporary files', downloadMap.assetDir);
|
|
21
21
|
if ((0, is_serve_url_1.isServeUrl)(webpackConfigOrServeUrl)) {
|
|
@@ -26,6 +26,7 @@ const prepareServer = async ({ webpackConfigOrServeUrl, port, remotionRoot, conc
|
|
|
26
26
|
concurrency,
|
|
27
27
|
logLevel,
|
|
28
28
|
indent,
|
|
29
|
+
offthreadVideoCacheSizeInBytes,
|
|
29
30
|
});
|
|
30
31
|
return Promise.resolve({
|
|
31
32
|
serveUrl: webpackConfigOrServeUrl,
|
|
@@ -56,6 +57,7 @@ const prepareServer = async ({ webpackConfigOrServeUrl, port, remotionRoot, conc
|
|
|
56
57
|
concurrency,
|
|
57
58
|
logLevel,
|
|
58
59
|
indent,
|
|
60
|
+
offthreadVideoCacheSizeInBytes,
|
|
59
61
|
});
|
|
60
62
|
return Promise.resolve({
|
|
61
63
|
closeServer: async (force) => {
|
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 type ProResProfile = typeof proResProfileOptions[number];
|
|
3
|
+
export type ProResProfile = (typeof proResProfileOptions)[number];
|
|
4
4
|
export declare const validateSelectedCodecAndProResCombination: ({ codec, proResProfile, }: {
|
|
5
5
|
codec: Codec;
|
|
6
6
|
proResProfile: ProResProfile | undefined;
|
|
@@ -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
|
@@ -9,6 +9,8 @@ import type { VideoImageFormat } from './image-format';
|
|
|
9
9
|
import { type LogLevel } from './log-level';
|
|
10
10
|
import type { CancelSignal } from './make-cancel-signal';
|
|
11
11
|
import type { ChromiumOptions } from './open-browser';
|
|
12
|
+
import type { ToOptions } from './options/option';
|
|
13
|
+
import type { optionsMap } from './options/options-map';
|
|
12
14
|
import type { RemotionServer } from './prepare-server';
|
|
13
15
|
import type { OnStartData, RenderFramesOutput } from './types';
|
|
14
16
|
export type InternalRenderFramesOptions = {
|
|
@@ -39,7 +41,7 @@ export type InternalRenderFramesOptions = {
|
|
|
39
41
|
logLevel: LogLevel;
|
|
40
42
|
serializedInputPropsWithCustomSchema: string;
|
|
41
43
|
serializedResolvedPropsWithCustomSchema: string;
|
|
42
|
-
}
|
|
44
|
+
} & ToOptions<typeof optionsMap.renderFrames>;
|
|
43
45
|
export type RenderFramesOptions = {
|
|
44
46
|
onStart: (data: OnStartData) => void;
|
|
45
47
|
onFrameUpdate: (framesRendered: number, frameIndex: number, timeToRenderInMilliseconds: number) => void;
|
|
@@ -77,8 +79,9 @@ export type RenderFramesOptions = {
|
|
|
77
79
|
muted?: boolean;
|
|
78
80
|
concurrency?: number | string | null;
|
|
79
81
|
serveUrl: string;
|
|
82
|
+
offthreadVideoCacheSizeInBytes?: number | null;
|
|
80
83
|
};
|
|
81
|
-
export declare const internalRenderFrames: ({ browserExecutable, cancelSignal, chromiumOptions, composition, concurrency, envVariables, everyNthFrame, frameRange, imageFormat, indent, jpegQuality, muted, onBrowserLog, onDownload, onFrameBuffer, onFrameUpdate, onStart, outputDir, port, puppeteerInstance, scale, server, timeoutInMilliseconds, logLevel, webpackBundleOrServeUrl, serializedInputPropsWithCustomSchema, serializedResolvedPropsWithCustomSchema, }: InternalRenderFramesOptions) => Promise<RenderFramesOutput>;
|
|
84
|
+
export declare const internalRenderFrames: ({ browserExecutable, cancelSignal, chromiumOptions, composition, concurrency, envVariables, everyNthFrame, frameRange, imageFormat, indent, jpegQuality, muted, onBrowserLog, onDownload, onFrameBuffer, onFrameUpdate, onStart, outputDir, port, puppeteerInstance, scale, server, timeoutInMilliseconds, logLevel, webpackBundleOrServeUrl, serializedInputPropsWithCustomSchema, serializedResolvedPropsWithCustomSchema, offthreadVideoCacheSizeInBytes, }: InternalRenderFramesOptions) => Promise<RenderFramesOutput>;
|
|
82
85
|
/**
|
|
83
86
|
* @description Renders a series of images using Puppeteer and computes information for mixing audio.
|
|
84
87
|
* @see [Documentation](https://www.remotion.dev/docs/renderer/render-frames)
|
package/dist/render-frames.js
CHANGED
|
@@ -299,7 +299,7 @@ const innerRenderFrames = async ({ onFrameUpdate, outputDir, onStart, serialized
|
|
|
299
299
|
await Promise.all(downloadPromises);
|
|
300
300
|
return result;
|
|
301
301
|
};
|
|
302
|
-
const internalRenderFrames = ({ browserExecutable, cancelSignal, chromiumOptions, composition, concurrency, envVariables, everyNthFrame, frameRange, imageFormat, indent, jpegQuality, muted, onBrowserLog, onDownload, onFrameBuffer, onFrameUpdate, onStart, outputDir, port, puppeteerInstance, scale, server, timeoutInMilliseconds, logLevel, webpackBundleOrServeUrl, serializedInputPropsWithCustomSchema, serializedResolvedPropsWithCustomSchema, }) => {
|
|
302
|
+
const internalRenderFrames = ({ browserExecutable, cancelSignal, chromiumOptions, composition, concurrency, envVariables, everyNthFrame, frameRange, imageFormat, indent, jpegQuality, muted, onBrowserLog, onDownload, onFrameBuffer, onFrameUpdate, onStart, outputDir, port, puppeteerInstance, scale, server, timeoutInMilliseconds, logLevel, webpackBundleOrServeUrl, serializedInputPropsWithCustomSchema, serializedResolvedPropsWithCustomSchema, offthreadVideoCacheSizeInBytes, }) => {
|
|
303
303
|
remotion_1.Internals.validateDimension(composition.height, 'height', 'in the `config` object passed to `renderFrames()`');
|
|
304
304
|
remotion_1.Internals.validateDimension(composition.width, 'width', 'in the `config` object passed to `renderFrames()`');
|
|
305
305
|
remotion_1.Internals.validateFps(composition.fps, 'in the `config` object of `renderFrames()`', false);
|
|
@@ -340,6 +340,7 @@ const internalRenderFrames = ({ browserExecutable, cancelSignal, chromiumOptions
|
|
|
340
340
|
concurrency: actualConcurrency,
|
|
341
341
|
logLevel,
|
|
342
342
|
indent,
|
|
343
|
+
offthreadVideoCacheSizeInBytes,
|
|
343
344
|
}, {
|
|
344
345
|
onDownload,
|
|
345
346
|
onError,
|
|
@@ -425,7 +426,7 @@ exports.internalRenderFrames = internalRenderFrames;
|
|
|
425
426
|
* @see [Documentation](https://www.remotion.dev/docs/renderer/render-frames)
|
|
426
427
|
*/
|
|
427
428
|
const renderFrames = (options) => {
|
|
428
|
-
const { composition, inputProps, onFrameUpdate, onStart, outputDir, serveUrl, browserExecutable, cancelSignal, chromiumOptions, concurrency, dumpBrowserLogs, envVariables, everyNthFrame, frameRange, imageFormat, jpegQuality, muted, onBrowserLog, onDownload, onFrameBuffer, port, puppeteerInstance, scale, timeoutInMilliseconds, verbose, quality, logLevel, } = options;
|
|
429
|
+
const { composition, inputProps, onFrameUpdate, onStart, outputDir, serveUrl, browserExecutable, cancelSignal, chromiumOptions, concurrency, dumpBrowserLogs, envVariables, everyNthFrame, frameRange, imageFormat, jpegQuality, muted, onBrowserLog, onDownload, onFrameBuffer, port, puppeteerInstance, scale, timeoutInMilliseconds, verbose, quality, logLevel, offthreadVideoCacheSizeInBytes, } = options;
|
|
429
430
|
if (!composition) {
|
|
430
431
|
throw new Error('No `composition` option has been specified for renderFrames()');
|
|
431
432
|
}
|
|
@@ -471,6 +472,7 @@ const renderFrames = (options) => {
|
|
|
471
472
|
timeoutInMilliseconds: timeoutInMilliseconds !== null && timeoutInMilliseconds !== void 0 ? timeoutInMilliseconds : TimeoutSettings_1.DEFAULT_TIMEOUT,
|
|
472
473
|
webpackBundleOrServeUrl: serveUrl,
|
|
473
474
|
server: undefined,
|
|
475
|
+
offthreadVideoCacheSizeInBytes: offthreadVideoCacheSizeInBytes !== null && offthreadVideoCacheSizeInBytes !== void 0 ? offthreadVideoCacheSizeInBytes : null,
|
|
474
476
|
});
|
|
475
477
|
};
|
|
476
478
|
exports.renderFrames = renderFrames;
|
package/dist/render-media.d.ts
CHANGED
|
@@ -12,10 +12,13 @@ import type { VideoImageFormat } from './image-format';
|
|
|
12
12
|
import { type LogLevel } from './log-level';
|
|
13
13
|
import type { CancelSignal } from './make-cancel-signal';
|
|
14
14
|
import type { ChromiumOptions } from './open-browser';
|
|
15
|
+
import type { ToOptions } from './options/option';
|
|
16
|
+
import type { optionsMap } from './options/options-map';
|
|
15
17
|
import type { PixelFormat } from './pixel-format';
|
|
16
18
|
import type { RemotionServer } from './prepare-server';
|
|
17
19
|
import type { ProResProfile } from './prores-profile';
|
|
18
20
|
import type { OnStartData } from './types';
|
|
21
|
+
import type { X264Preset } from './x264-preset';
|
|
19
22
|
export type StitchingState = 'encoding' | 'muxing';
|
|
20
23
|
export type SlowFrame = {
|
|
21
24
|
frame: number;
|
|
@@ -48,6 +51,7 @@ export type InternalRenderMediaOptions = {
|
|
|
48
51
|
onProgress: RenderMediaOnProgress;
|
|
49
52
|
onDownload: RenderMediaOnDownload;
|
|
50
53
|
proResProfile: ProResProfile | undefined;
|
|
54
|
+
x264Preset: X264Preset | undefined;
|
|
51
55
|
onBrowserLog: ((log: BrowserLog) => void) | null;
|
|
52
56
|
onStart: (data: OnStartData) => void;
|
|
53
57
|
timeoutInMilliseconds: number;
|
|
@@ -70,7 +74,7 @@ export type InternalRenderMediaOptions = {
|
|
|
70
74
|
audioCodec: AudioCodec | null;
|
|
71
75
|
serveUrl: string;
|
|
72
76
|
concurrency: number | string | null;
|
|
73
|
-
}
|
|
77
|
+
} & ToOptions<typeof optionsMap.renderMedia>;
|
|
74
78
|
export type RenderMediaOptions = {
|
|
75
79
|
outputLocation?: string | null;
|
|
76
80
|
codec: Codec;
|
|
@@ -93,6 +97,7 @@ export type RenderMediaOptions = {
|
|
|
93
97
|
onProgress?: RenderMediaOnProgress;
|
|
94
98
|
onDownload?: RenderMediaOnDownload;
|
|
95
99
|
proResProfile?: ProResProfile;
|
|
100
|
+
x264Preset?: X264Preset;
|
|
96
101
|
/**
|
|
97
102
|
* @deprecated Use "logLevel": "verbose" instead
|
|
98
103
|
*/
|
|
@@ -120,16 +125,17 @@ export type RenderMediaOptions = {
|
|
|
120
125
|
serveUrl: string;
|
|
121
126
|
concurrency?: number | string | null;
|
|
122
127
|
logLevel?: LogLevel;
|
|
128
|
+
offthreadVideoCacheSizeInBytes?: number | null;
|
|
123
129
|
};
|
|
124
130
|
type RenderMediaResult = {
|
|
125
131
|
buffer: Buffer | null;
|
|
126
132
|
slowestFrames: SlowFrame[];
|
|
127
133
|
};
|
|
128
|
-
export declare const internalRenderMedia: ({ proResProfile, crf, composition, serializedInputPropsWithCustomSchema, pixelFormat, codec, envVariables, frameRange, puppeteerInstance, outputLocation, onProgress, overwrite, onDownload, onBrowserLog, onStart, timeoutInMilliseconds, chromiumOptions, scale, browserExecutable, port, cancelSignal, muted, enforceAudioTrack, ffmpegOverride, audioBitrate, videoBitrate, audioCodec, concurrency, disallowParallelEncoding, everyNthFrame, imageFormat: provisionalImageFormat, indent, jpegQuality, numberOfGifLoops, onCtrlCExit, preferLossless, serveUrl, server: reusedServer, logLevel, serializedResolvedPropsWithCustomSchema, }: InternalRenderMediaOptions) => Promise<RenderMediaResult>;
|
|
134
|
+
export declare const internalRenderMedia: ({ proResProfile, x264Preset, crf, composition, serializedInputPropsWithCustomSchema, pixelFormat, codec, envVariables, frameRange, puppeteerInstance, outputLocation, onProgress, overwrite, onDownload, onBrowserLog, onStart, timeoutInMilliseconds, chromiumOptions, scale, browserExecutable, port, cancelSignal, muted, enforceAudioTrack, ffmpegOverride, audioBitrate, videoBitrate, audioCodec, concurrency, disallowParallelEncoding, everyNthFrame, imageFormat: provisionalImageFormat, indent, jpegQuality, numberOfGifLoops, onCtrlCExit, preferLossless, serveUrl, server: reusedServer, logLevel, serializedResolvedPropsWithCustomSchema, offthreadVideoCacheSizeInBytes, }: InternalRenderMediaOptions) => Promise<RenderMediaResult>;
|
|
129
135
|
/**
|
|
130
136
|
*
|
|
131
137
|
* @description Render a video from a composition
|
|
132
138
|
* @see [Documentation](https://www.remotion.dev/docs/renderer/render-media)
|
|
133
139
|
*/
|
|
134
|
-
export declare const renderMedia: ({ proResProfile, crf, composition, inputProps, pixelFormat, codec, envVariables, frameRange, puppeteerInstance, outputLocation, onProgress, overwrite, onDownload, onBrowserLog, onStart, timeoutInMilliseconds, chromiumOptions, scale, browserExecutable, port, cancelSignal, muted, enforceAudioTrack, ffmpegOverride, audioBitrate, videoBitrate, audioCodec, jpegQuality, concurrency, serveUrl, disallowParallelEncoding, everyNthFrame, imageFormat, numberOfGifLoops, dumpBrowserLogs, preferLossless, verbose, quality, logLevel, }: RenderMediaOptions) => Promise<RenderMediaResult>;
|
|
140
|
+
export declare const renderMedia: ({ proResProfile, x264Preset, crf, composition, inputProps, pixelFormat, codec, envVariables, frameRange, puppeteerInstance, outputLocation, onProgress, overwrite, onDownload, onBrowserLog, onStart, timeoutInMilliseconds, chromiumOptions, scale, browserExecutable, port, cancelSignal, muted, enforceAudioTrack, ffmpegOverride, audioBitrate, videoBitrate, audioCodec, jpegQuality, concurrency, serveUrl, disallowParallelEncoding, everyNthFrame, imageFormat, numberOfGifLoops, dumpBrowserLogs, preferLossless, verbose, quality, logLevel, offthreadVideoCacheSizeInBytes, }: RenderMediaOptions) => Promise<RenderMediaResult>;
|
|
135
141
|
export {};
|
package/dist/render-media.js
CHANGED
|
@@ -42,8 +42,9 @@ const validate_number_of_gif_loops_1 = require("./validate-number-of-gif-loops")
|
|
|
42
42
|
const validate_output_filename_1 = require("./validate-output-filename");
|
|
43
43
|
const validate_scale_1 = require("./validate-scale");
|
|
44
44
|
const validate_videobitrate_1 = require("./validate-videobitrate");
|
|
45
|
+
const x264_preset_1 = require("./x264-preset");
|
|
45
46
|
const SLOWEST_FRAME_COUNT = 10;
|
|
46
|
-
const internalRenderMedia = ({ proResProfile, crf, composition, serializedInputPropsWithCustomSchema, pixelFormat, codec, envVariables, frameRange, puppeteerInstance, outputLocation, onProgress, overwrite, onDownload, onBrowserLog, onStart, timeoutInMilliseconds, chromiumOptions, scale, browserExecutable, port, cancelSignal, muted, enforceAudioTrack, ffmpegOverride, audioBitrate, videoBitrate, audioCodec, concurrency, disallowParallelEncoding, everyNthFrame, imageFormat: provisionalImageFormat, indent, jpegQuality, numberOfGifLoops, onCtrlCExit, preferLossless, serveUrl, server: reusedServer, logLevel, serializedResolvedPropsWithCustomSchema, }) => {
|
|
47
|
+
const internalRenderMedia = ({ proResProfile, x264Preset, crf, composition, serializedInputPropsWithCustomSchema, pixelFormat, codec, envVariables, frameRange, puppeteerInstance, outputLocation, onProgress, overwrite, onDownload, onBrowserLog, onStart, timeoutInMilliseconds, chromiumOptions, scale, browserExecutable, port, cancelSignal, muted, enforceAudioTrack, ffmpegOverride, audioBitrate, videoBitrate, audioCodec, concurrency, disallowParallelEncoding, everyNthFrame, imageFormat: provisionalImageFormat, indent, jpegQuality, numberOfGifLoops, onCtrlCExit, preferLossless, serveUrl, server: reusedServer, logLevel, serializedResolvedPropsWithCustomSchema, offthreadVideoCacheSizeInBytes, }) => {
|
|
47
48
|
(0, jpeg_quality_1.validateJpegQuality)(jpegQuality);
|
|
48
49
|
(0, crf_1.validateQualitySettings)({ crf, codec, videoBitrate });
|
|
49
50
|
(0, validate_videobitrate_1.validateBitrate)(audioBitrate, 'audioBitrate');
|
|
@@ -52,6 +53,10 @@ const internalRenderMedia = ({ proResProfile, crf, composition, serializedInputP
|
|
|
52
53
|
codec,
|
|
53
54
|
proResProfile,
|
|
54
55
|
});
|
|
56
|
+
(0, x264_preset_1.validateSelectedCodecAndPresetCombination)({
|
|
57
|
+
codec,
|
|
58
|
+
x264Preset,
|
|
59
|
+
});
|
|
55
60
|
(0, pixel_format_1.validateSelectedPixelFormatAndCodecCombination)(pixelFormat, codec);
|
|
56
61
|
if (outputLocation) {
|
|
57
62
|
(0, validate_output_filename_1.validateOutputFilename)({
|
|
@@ -230,6 +235,7 @@ const internalRenderMedia = ({ proResProfile, crf, composition, serializedInputP
|
|
|
230
235
|
remotionRoot: (0, find_closest_package_json_1.findRemotionRoot)(),
|
|
231
236
|
logLevel,
|
|
232
237
|
webpackConfigOrServeUrl: serveUrl,
|
|
238
|
+
offthreadVideoCacheSizeInBytes: offthreadVideoCacheSizeInBytes !== null && offthreadVideoCacheSizeInBytes !== void 0 ? offthreadVideoCacheSizeInBytes : null,
|
|
233
239
|
}, {
|
|
234
240
|
onDownload,
|
|
235
241
|
onError: (err) => reject(err),
|
|
@@ -293,6 +299,7 @@ const internalRenderMedia = ({ proResProfile, crf, composition, serializedInputP
|
|
|
293
299
|
indent,
|
|
294
300
|
server,
|
|
295
301
|
serializedResolvedPropsWithCustomSchema,
|
|
302
|
+
offthreadVideoCacheSizeInBytes,
|
|
296
303
|
});
|
|
297
304
|
return renderFramesProc;
|
|
298
305
|
})
|
|
@@ -346,6 +353,7 @@ const internalRenderMedia = ({ proResProfile, crf, composition, serializedInputP
|
|
|
346
353
|
audioBitrate,
|
|
347
354
|
videoBitrate,
|
|
348
355
|
audioCodec,
|
|
356
|
+
x264Preset: x264Preset !== null && x264Preset !== void 0 ? x264Preset : null,
|
|
349
357
|
}),
|
|
350
358
|
stitchStart,
|
|
351
359
|
]);
|
|
@@ -411,13 +419,14 @@ exports.internalRenderMedia = internalRenderMedia;
|
|
|
411
419
|
* @description Render a video from a composition
|
|
412
420
|
* @see [Documentation](https://www.remotion.dev/docs/renderer/render-media)
|
|
413
421
|
*/
|
|
414
|
-
const renderMedia = ({ proResProfile, crf, composition, inputProps, pixelFormat, codec, envVariables, frameRange, puppeteerInstance, outputLocation, onProgress, overwrite, onDownload, onBrowserLog, onStart, timeoutInMilliseconds, chromiumOptions, scale, browserExecutable, port, cancelSignal, muted, enforceAudioTrack, ffmpegOverride, audioBitrate, videoBitrate, audioCodec, jpegQuality, concurrency, serveUrl, disallowParallelEncoding, everyNthFrame, imageFormat, numberOfGifLoops, dumpBrowserLogs, preferLossless, verbose, quality, logLevel, }) => {
|
|
422
|
+
const renderMedia = ({ proResProfile, x264Preset, crf, composition, inputProps, pixelFormat, codec, envVariables, frameRange, puppeteerInstance, outputLocation, onProgress, overwrite, onDownload, onBrowserLog, onStart, timeoutInMilliseconds, chromiumOptions, scale, browserExecutable, port, cancelSignal, muted, enforceAudioTrack, ffmpegOverride, audioBitrate, videoBitrate, audioCodec, jpegQuality, concurrency, serveUrl, disallowParallelEncoding, everyNthFrame, imageFormat, numberOfGifLoops, dumpBrowserLogs, preferLossless, verbose, quality, logLevel, offthreadVideoCacheSizeInBytes, }) => {
|
|
415
423
|
var _a, _b;
|
|
416
424
|
if (quality !== undefined) {
|
|
417
425
|
console.warn(`The "quality" option has been renamed. Please use "jpegQuality" instead.`);
|
|
418
426
|
}
|
|
419
427
|
return (0, exports.internalRenderMedia)({
|
|
420
428
|
proResProfile: proResProfile !== null && proResProfile !== void 0 ? proResProfile : undefined,
|
|
429
|
+
x264Preset,
|
|
421
430
|
codec,
|
|
422
431
|
composition,
|
|
423
432
|
serveUrl,
|
|
@@ -465,6 +474,7 @@ const renderMedia = ({ proResProfile, crf, composition, inputProps, pixelFormat,
|
|
|
465
474
|
staticBase: null,
|
|
466
475
|
data: (_b = composition.props) !== null && _b !== void 0 ? _b : {},
|
|
467
476
|
}).serializedString,
|
|
477
|
+
offthreadVideoCacheSizeInBytes: offthreadVideoCacheSizeInBytes !== null && offthreadVideoCacheSizeInBytes !== void 0 ? offthreadVideoCacheSizeInBytes : null,
|
|
468
478
|
});
|
|
469
479
|
};
|
|
470
480
|
exports.renderMedia = renderMedia;
|
package/dist/render-still.d.ts
CHANGED
|
@@ -8,6 +8,8 @@ import type { StillImageFormat } from './image-format';
|
|
|
8
8
|
import type { LogLevel } from './log-level';
|
|
9
9
|
import type { CancelSignal } from './make-cancel-signal';
|
|
10
10
|
import type { ChromiumOptions } from './open-browser';
|
|
11
|
+
import type { ToOptions } from './options/option';
|
|
12
|
+
import type { optionsMap } from './options/options-map';
|
|
11
13
|
import type { RemotionServer } from './prepare-server';
|
|
12
14
|
type InternalRenderStillOptions = {
|
|
13
15
|
composition: VideoConfig;
|
|
@@ -32,7 +34,8 @@ type InternalRenderStillOptions = {
|
|
|
32
34
|
logLevel: LogLevel;
|
|
33
35
|
serveUrl: string;
|
|
34
36
|
port: number | null;
|
|
35
|
-
|
|
37
|
+
offthreadVideoCacheSizeInBytes: number | null;
|
|
38
|
+
} & ToOptions<typeof optionsMap.renderStill>;
|
|
36
39
|
export type RenderStillOptions = {
|
|
37
40
|
port?: number | null;
|
|
38
41
|
composition: VideoConfig;
|
|
@@ -64,6 +67,7 @@ export type RenderStillOptions = {
|
|
|
64
67
|
* @deprecated Renamed to `jpegQuality`
|
|
65
68
|
*/
|
|
66
69
|
quality?: never;
|
|
70
|
+
offthreadVideoCacheSizeInBytes?: number | null;
|
|
67
71
|
};
|
|
68
72
|
type RenderStillReturnValue = {
|
|
69
73
|
buffer: Buffer | null;
|
package/dist/render-still.js
CHANGED
|
@@ -204,6 +204,7 @@ const internalRenderStill = (options) => {
|
|
|
204
204
|
concurrency: 1,
|
|
205
205
|
logLevel: options.logLevel,
|
|
206
206
|
indent: options.indent,
|
|
207
|
+
offthreadVideoCacheSizeInBytes: options.offthreadVideoCacheSizeInBytes,
|
|
207
208
|
}, {
|
|
208
209
|
onDownload: options.onDownload,
|
|
209
210
|
onError,
|
|
@@ -247,7 +248,7 @@ exports.internalRenderStill = internalRenderStill;
|
|
|
247
248
|
*/
|
|
248
249
|
const renderStill = (options) => {
|
|
249
250
|
var _a, _b;
|
|
250
|
-
const { composition, serveUrl, browserExecutable, cancelSignal, chromiumOptions, dumpBrowserLogs, envVariables, frame, imageFormat, inputProps, jpegQuality, onBrowserLog, onDownload, output, overwrite, port, puppeteerInstance, scale, timeoutInMilliseconds, verbose, quality, } = options;
|
|
251
|
+
const { composition, serveUrl, browserExecutable, cancelSignal, chromiumOptions, dumpBrowserLogs, envVariables, frame, imageFormat, inputProps, jpegQuality, onBrowserLog, onDownload, output, overwrite, port, puppeteerInstance, scale, timeoutInMilliseconds, verbose, quality, offthreadVideoCacheSizeInBytes, } = options;
|
|
251
252
|
if (typeof jpegQuality !== 'undefined' && imageFormat !== 'jpeg') {
|
|
252
253
|
throw new Error("You can only pass the `quality` option if `imageFormat` is 'jpeg'.");
|
|
253
254
|
}
|
|
@@ -285,6 +286,7 @@ const renderStill = (options) => {
|
|
|
285
286
|
staticBase: null,
|
|
286
287
|
data: (_b = composition.props) !== null && _b !== void 0 ? _b : {},
|
|
287
288
|
}).serializedString,
|
|
289
|
+
offthreadVideoCacheSizeInBytes: offthreadVideoCacheSizeInBytes !== null && offthreadVideoCacheSizeInBytes !== void 0 ? offthreadVideoCacheSizeInBytes : null,
|
|
288
290
|
});
|
|
289
291
|
};
|
|
290
292
|
exports.renderStill = renderStill;
|
|
@@ -4,6 +4,8 @@ import type { BrowserLog } from './browser-log';
|
|
|
4
4
|
import type { HeadlessBrowser } from './browser/Browser';
|
|
5
5
|
import { type LogLevel } from './log-level';
|
|
6
6
|
import type { ChromiumOptions } from './open-browser';
|
|
7
|
+
import type { ToOptions } from './options/option';
|
|
8
|
+
import type { optionsMap } from './options/options-map';
|
|
7
9
|
import type { RemotionServer } from './prepare-server';
|
|
8
10
|
type InternalSelectCompositionsConfig = {
|
|
9
11
|
serializedInputPropsWithCustomSchema: string;
|
|
@@ -19,7 +21,7 @@ type InternalSelectCompositionsConfig = {
|
|
|
19
21
|
logLevel: LogLevel;
|
|
20
22
|
serveUrl: string;
|
|
21
23
|
id: string;
|
|
22
|
-
}
|
|
24
|
+
} & ToOptions<typeof optionsMap.renderStill>;
|
|
23
25
|
export type SelectCompositionOptions = {
|
|
24
26
|
inputProps?: Record<string, unknown> | null;
|
|
25
27
|
envVariables?: Record<string, string>;
|
|
@@ -30,6 +32,7 @@ export type SelectCompositionOptions = {
|
|
|
30
32
|
chromiumOptions?: ChromiumOptions;
|
|
31
33
|
port?: number | null;
|
|
32
34
|
verbose?: boolean;
|
|
35
|
+
offthreadVideoCacheSizeInBytes?: number | null;
|
|
33
36
|
serveUrl: string;
|
|
34
37
|
id: string;
|
|
35
38
|
};
|
|
@@ -84,7 +84,7 @@ const innerSelectComposition = async ({ page, onBrowserLog, serializedInputProps
|
|
|
84
84
|
};
|
|
85
85
|
const internalSelectComposition = async (options) => {
|
|
86
86
|
const cleanup = [];
|
|
87
|
-
const { puppeteerInstance, browserExecutable, chromiumOptions, serveUrl: serveUrlOrWebpackUrl, logLevel, indent, port, envVariables, id, serializedInputPropsWithCustomSchema, onBrowserLog, server, timeoutInMilliseconds, } = options;
|
|
87
|
+
const { puppeteerInstance, browserExecutable, chromiumOptions, serveUrl: serveUrlOrWebpackUrl, logLevel, indent, port, envVariables, id, serializedInputPropsWithCustomSchema, onBrowserLog, server, timeoutInMilliseconds, offthreadVideoCacheSizeInBytes, } = options;
|
|
88
88
|
const { page, cleanup: cleanupPage } = await (0, get_browser_instance_1.getPageAndCleanupFn)({
|
|
89
89
|
passedInInstance: puppeteerInstance,
|
|
90
90
|
browserExecutable,
|
|
@@ -109,6 +109,7 @@ const internalSelectComposition = async (options) => {
|
|
|
109
109
|
concurrency: 1,
|
|
110
110
|
logLevel,
|
|
111
111
|
indent,
|
|
112
|
+
offthreadVideoCacheSizeInBytes,
|
|
112
113
|
}, {
|
|
113
114
|
onDownload: () => undefined,
|
|
114
115
|
onError,
|
|
@@ -131,6 +132,7 @@ const internalSelectComposition = async (options) => {
|
|
|
131
132
|
indent,
|
|
132
133
|
puppeteerInstance,
|
|
133
134
|
server,
|
|
135
|
+
offthreadVideoCacheSizeInBytes,
|
|
134
136
|
});
|
|
135
137
|
})
|
|
136
138
|
.then((data) => {
|
|
@@ -152,6 +154,7 @@ exports.internalSelectComposition = internalSelectComposition;
|
|
|
152
154
|
* @see [Documentation](https://www.remotion.dev/docs/renderer/select-composition)
|
|
153
155
|
*/
|
|
154
156
|
const selectComposition = async (options) => {
|
|
157
|
+
var _a;
|
|
155
158
|
const { id, serveUrl, browserExecutable, chromiumOptions, envVariables, inputProps, onBrowserLog, port, puppeteerInstance, timeoutInMilliseconds, verbose, } = options;
|
|
156
159
|
const data = await (0, exports.internalSelectComposition)({
|
|
157
160
|
id,
|
|
@@ -171,6 +174,7 @@ const selectComposition = async (options) => {
|
|
|
171
174
|
logLevel: verbose ? 'verbose' : 'info',
|
|
172
175
|
indent: false,
|
|
173
176
|
server: undefined,
|
|
177
|
+
offthreadVideoCacheSizeInBytes: (_a = options.offthreadVideoCacheSizeInBytes) !== null && _a !== void 0 ? _a : null,
|
|
174
178
|
});
|
|
175
179
|
return data.metadata;
|
|
176
180
|
};
|
package/dist/serve-static.d.ts
CHANGED
package/dist/serve-static.js
CHANGED
|
@@ -14,6 +14,7 @@ const serveStatic = async (path, options) => {
|
|
|
14
14
|
concurrency: options.concurrency,
|
|
15
15
|
logLevel: options.logLevel,
|
|
16
16
|
indent: options.indent,
|
|
17
|
+
offthreadVideoCacheSizeInBytes: options.offthreadVideoCacheSizeInBytes,
|
|
17
18
|
});
|
|
18
19
|
const connections = {};
|
|
19
20
|
const server = node_http_1.default.createServer((request, response) => {
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
/// <reference types="node" />
|
|
2
1
|
import type { RenderMediaOnDownload } from './assets/download-and-map-assets-to-file';
|
|
3
2
|
import type { RenderAssetInfo } from './assets/download-map';
|
|
4
3
|
import type { AudioCodec } from './audio-codec';
|
|
@@ -8,6 +7,7 @@ import type { LogLevel } from './log-level';
|
|
|
8
7
|
import type { CancelSignal } from './make-cancel-signal';
|
|
9
8
|
import type { PixelFormat } from './pixel-format';
|
|
10
9
|
import type { ProResProfile } from './prores-profile';
|
|
10
|
+
import type { X264Preset } from './x264-preset';
|
|
11
11
|
type InternalStitchFramesToVideoOptions = {
|
|
12
12
|
audioBitrate: string | null;
|
|
13
13
|
videoBitrate: string | null;
|
|
@@ -32,6 +32,7 @@ type InternalStitchFramesToVideoOptions = {
|
|
|
32
32
|
preferLossless: boolean;
|
|
33
33
|
indent: boolean;
|
|
34
34
|
muted: boolean;
|
|
35
|
+
x264Preset: X264Preset | null;
|
|
35
36
|
enforceAudioTrack: boolean;
|
|
36
37
|
ffmpegOverride: null | FfmpegOverrideFn;
|
|
37
38
|
};
|
|
@@ -58,11 +59,12 @@ export type StitchFramesToVideoOptions = {
|
|
|
58
59
|
muted?: boolean;
|
|
59
60
|
enforceAudioTrack?: boolean;
|
|
60
61
|
ffmpegOverride?: FfmpegOverrideFn;
|
|
62
|
+
x264Preset?: X264Preset | null;
|
|
61
63
|
};
|
|
62
64
|
export declare const internalStitchFramesToVideo: (options: InternalStitchFramesToVideoOptions) => Promise<Buffer | null>;
|
|
63
65
|
/**
|
|
64
66
|
* @description Takes a series of images and audio information generated by renderFrames() and encodes it to a video.
|
|
65
67
|
* @see [Documentation](https://www.remotion.dev/docs/renderer/stitch-frames-to-video)
|
|
66
68
|
*/
|
|
67
|
-
export declare const stitchFramesToVideo: ({ assetsInfo, force, fps, height, width, audioBitrate, audioCodec, cancelSignal, codec, crf, dir, enforceAudioTrack, ffmpegOverride, muted, numberOfGifLoops, onDownload, onProgress, outputLocation, pixelFormat, proResProfile, verbose, videoBitrate, }: StitchFramesToVideoOptions) => Promise<Buffer | null>;
|
|
69
|
+
export declare const stitchFramesToVideo: ({ assetsInfo, force, fps, height, width, audioBitrate, audioCodec, cancelSignal, codec, crf, dir, enforceAudioTrack, ffmpegOverride, muted, numberOfGifLoops, onDownload, onProgress, outputLocation, pixelFormat, proResProfile, verbose, videoBitrate, x264Preset, }: StitchFramesToVideoOptions) => Promise<Buffer | null>;
|
|
68
70
|
export {};
|