@remotion/cli 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/dist/benchmark.js +4 -1
- package/dist/better-opn/index.d.ts +0 -1
- package/dist/compositions.js +2 -1
- package/dist/config/image-format.d.ts +1 -1
- package/dist/config/index.d.ts +5 -1
- package/dist/config/index.js +7 -0
- package/dist/config/offthread-video-cache-size.d.ts +2 -0
- package/dist/config/offthread-video-cache-size.js +12 -0
- package/dist/config/x264-preset.d.ts +3 -0
- package/dist/config/x264-preset.js +12 -0
- package/dist/editor/components/Editor.js +14 -1
- package/dist/editor/components/Modals.js +1 -1
- package/dist/editor/components/NewComposition/NewCompCode.d.ts +0 -1
- package/dist/editor/components/NewComposition/RemInput.d.ts +2 -2
- package/dist/editor/components/NewComposition/RemInputTypeColor.d.ts +1 -1
- package/dist/editor/components/NewComposition/RemTextarea.d.ts +1 -1
- package/dist/editor/components/Notifications/ServerDisconnected.js +2 -1
- package/dist/editor/components/RenderButton.js +2 -0
- package/dist/editor/components/RenderModal/CrfSetting.d.ts +2 -2
- package/dist/editor/components/RenderModal/EnforceAudioTrackSetting.d.ts +2 -2
- package/dist/editor/components/RenderModal/MutedSetting.d.ts +2 -2
- package/dist/editor/components/RenderModal/NumberSetting.d.ts +2 -2
- package/dist/editor/components/RenderModal/OptionExplainer.d.ts +2 -2
- package/dist/editor/components/RenderModal/RenderModal.d.ts +3 -1
- package/dist/editor/components/RenderModal/RenderModal.js +16 -2
- package/dist/editor/components/RenderModal/RenderModalAdvanced.d.ts +6 -0
- package/dist/editor/components/RenderModal/RenderModalAdvanced.js +42 -3
- package/dist/editor/components/RenderModal/RenderModalBasic.js +1 -1
- package/dist/editor/components/RenderModal/RenderModalPicture.d.ts +1 -1
- package/dist/editor/components/RenderModal/SchemaEditor/ZodDiscriminatedUnionEditor.js +1 -1
- package/dist/editor/components/RenderModal/SchemaEditor/input-props-serialization.d.ts +14 -0
- package/dist/editor/components/RenderModal/SchemaEditor/input-props-serialization.js +42 -0
- package/dist/editor/components/RenderModal/human-readable-codec.d.ts +1 -1
- package/dist/editor/components/RenderModal/layout.js +1 -1
- package/dist/editor/components/RenderQueue/actions.d.ts +6 -3
- package/dist/editor/components/RenderQueue/actions.js +5 -2
- package/dist/editor/components/RightPanel.d.ts +8 -0
- package/dist/editor/components/RightPanel.js +79 -0
- package/dist/editor/components/SidebarRenderButton.js +9 -1
- package/dist/editor/components/UpdateCheck.d.ts +0 -1
- package/dist/editor/helpers/colors.d.ts +1 -1
- package/dist/editor/helpers/convert-env-variables.d.ts +8 -2
- package/dist/editor/helpers/document-title.js +1 -0
- package/dist/editor/helpers/presets-labels.d.ts +2 -0
- package/dist/editor/helpers/presets-labels.js +37 -0
- package/dist/editor/helpers/render-modal-sections.d.ts +0 -1
- package/dist/editor/state/modals.d.ts +3 -1
- package/dist/get-cli-options.d.ts +3 -1
- package/dist/get-cli-options.js +7 -0
- package/dist/get-composition-id.d.ts +2 -1
- package/dist/get-composition-id.js +3 -1
- package/dist/get-composition-with-dimension-override.d.ts +2 -1
- package/dist/get-composition-with-dimension-override.js +2 -1
- package/dist/index.d.ts +11 -6
- package/dist/list-of-remotion-packages.js +1 -0
- package/dist/parse-command-line.d.ts +5 -1
- package/dist/parse-command-line.js +6 -0
- package/dist/preview-server/dev-middleware/range-parser.d.ts +1 -1
- package/dist/preview-server/error-overlay/react-overlay/listen-to-runtime-errors.js +1 -0
- package/dist/preview-server/error-overlay/react-overlay/utils/open-in-editor.d.ts +1 -1
- package/dist/preview-server/hot-middleware/process-update.d.ts +0 -5
- package/dist/preview-server/hot-middleware/process-update.js +21 -2
- package/dist/preview-server/render-queue/job.d.ts +6 -1
- package/dist/preview-server/render-queue/make-retry-payload.js +5 -1
- package/dist/preview-server/render-queue/process-still.js +1 -0
- package/dist/preview-server/render-queue/process-video.js +3 -1
- package/dist/preview-server/routes/add-render.js +3 -0
- package/dist/preview-server/routes.d.ts +0 -1
- package/dist/preview-server/routes.js +6 -2
- package/dist/render-flows/render.d.ts +4 -2
- package/dist/render-flows/render.js +6 -1
- package/dist/render-flows/still.d.ts +2 -1
- package/dist/render-flows/still.js +4 -1
- package/dist/render.js +3 -1
- package/dist/still.js +2 -1
- package/package.json +9 -9
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getCompositionWithDimensionOverride = void 0;
|
|
4
4
|
const get_composition_id_1 = require("./get-composition-id");
|
|
5
|
-
const getCompositionWithDimensionOverride = async ({ height, width, args, compositionIdFromUi, chromiumOptions, envVariables, port, puppeteerInstance, timeoutInMilliseconds, browserExecutable, serveUrlOrWebpackUrl, indent, serializedInputPropsWithCustomSchema, logLevel, server, }) => {
|
|
5
|
+
const getCompositionWithDimensionOverride = async ({ height, width, args, compositionIdFromUi, chromiumOptions, envVariables, port, puppeteerInstance, timeoutInMilliseconds, browserExecutable, serveUrlOrWebpackUrl, indent, serializedInputPropsWithCustomSchema, logLevel, server, offthreadVideoCacheSizeInBytes, }) => {
|
|
6
6
|
const returnValue = await (0, get_composition_id_1.getCompositionId)({
|
|
7
7
|
args,
|
|
8
8
|
compositionIdFromUi,
|
|
@@ -17,6 +17,7 @@ const getCompositionWithDimensionOverride = async ({ height, width, args, compos
|
|
|
17
17
|
puppeteerInstance,
|
|
18
18
|
timeoutInMilliseconds,
|
|
19
19
|
server,
|
|
20
|
+
offthreadVideoCacheSizeInBytes,
|
|
20
21
|
});
|
|
21
22
|
return {
|
|
22
23
|
...returnValue,
|
package/dist/index.d.ts
CHANGED
|
@@ -101,6 +101,7 @@ export declare const CliInternals: {
|
|
|
101
101
|
crf: import("@remotion/renderer").Crf | null;
|
|
102
102
|
pixelFormat: "yuv420p" | "yuva420p" | "yuv422p" | "yuv444p" | "yuv420p10le" | "yuv422p10le" | "yuv444p10le" | "yuva444p10le";
|
|
103
103
|
proResProfile: "4444-xq" | "4444" | "hq" | "standard" | "light" | "proxy" | undefined;
|
|
104
|
+
x264Preset: "medium" | "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "slow" | "slower" | "veryslow" | "placebo" | undefined;
|
|
104
105
|
everyNthFrame: number;
|
|
105
106
|
numberOfGifLoops: import("./config/number-of-gif-loops").Loop;
|
|
106
107
|
stillFrame: number;
|
|
@@ -118,7 +119,8 @@ export declare const CliInternals: {
|
|
|
118
119
|
videoBitrate: string | null;
|
|
119
120
|
height: number | null;
|
|
120
121
|
width: number | null;
|
|
121
|
-
configFileImageFormat: "
|
|
122
|
+
configFileImageFormat: "none" | "png" | "jpeg" | undefined;
|
|
123
|
+
offthreadVideoCacheSizeInBytes: number | null;
|
|
122
124
|
}>;
|
|
123
125
|
loadConfig: (remotionRoot: string) => Promise<string | null>;
|
|
124
126
|
initializeCli: (remotionRoot: string) => Promise<void>;
|
|
@@ -127,8 +129,9 @@ export declare const CliInternals: {
|
|
|
127
129
|
parsedCli: {
|
|
128
130
|
"browser-executable": import("@remotion/renderer").BrowserExecutable;
|
|
129
131
|
"pixel-format": "yuv420p" | "yuva420p" | "yuv422p" | "yuv444p" | "yuv420p10le" | "yuv422p10le" | "yuv444p10le" | "yuva444p10le";
|
|
130
|
-
"image-format": "
|
|
132
|
+
"image-format": "none" | "png" | "jpeg" | "pdf" | "webp";
|
|
131
133
|
"prores-profile": "4444-xq" | "4444" | "hq" | "standard" | "light" | "proxy";
|
|
134
|
+
"x264-preset": "medium" | "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "slow" | "slower" | "veryslow" | "placebo";
|
|
132
135
|
"bundle-cache": string;
|
|
133
136
|
"env-file": string;
|
|
134
137
|
"ignore-certificate-errors": string;
|
|
@@ -177,6 +180,7 @@ export declare const CliInternals: {
|
|
|
177
180
|
browser: string;
|
|
178
181
|
"browser-args": string;
|
|
179
182
|
"user-agent": string;
|
|
183
|
+
"offthreadvideo-cache-size-in-bytes": number | null;
|
|
180
184
|
} & {
|
|
181
185
|
_: string[];
|
|
182
186
|
};
|
|
@@ -192,7 +196,7 @@ export declare const CliInternals: {
|
|
|
192
196
|
downloadName: string | null;
|
|
193
197
|
outName: string | null;
|
|
194
198
|
configImageFormat: "png" | "jpeg" | "pdf" | "webp" | null;
|
|
195
|
-
cliFlag: "
|
|
199
|
+
cliFlag: "none" | "png" | "jpeg" | "pdf" | "webp" | null;
|
|
196
200
|
isLambda: boolean;
|
|
197
201
|
fromUi: "png" | "jpeg" | "pdf" | "webp" | null;
|
|
198
202
|
}) => {
|
|
@@ -207,8 +211,8 @@ export declare const CliInternals: {
|
|
|
207
211
|
};
|
|
208
212
|
getVideoImageFormat: ({ codec, uiImageFormat, }: {
|
|
209
213
|
codec: import("@remotion/renderer").CodecOrUndefined;
|
|
210
|
-
uiImageFormat: "
|
|
211
|
-
}) => "
|
|
214
|
+
uiImageFormat: "none" | "png" | "jpeg" | null;
|
|
215
|
+
}) => "none" | "png" | "jpeg";
|
|
212
216
|
printCompositions: (compositions: import("remotion").VideoConfig[]) => void;
|
|
213
217
|
getFinalOutputCodec: ({ cliFlag, configFile, downloadName, outName, uiCodec, }: {
|
|
214
218
|
cliFlag: import("@remotion/renderer").CodecOrUndefined;
|
|
@@ -224,7 +228,7 @@ export declare const CliInternals: {
|
|
|
224
228
|
shouldUseNonOverlayingLogger: ({ logLevel, }: {
|
|
225
229
|
logLevel: "verbose" | "info" | "warn" | "error";
|
|
226
230
|
}) => boolean;
|
|
227
|
-
getCompositionWithDimensionOverride: ({ height, width, args, compositionIdFromUi, chromiumOptions, envVariables, port, puppeteerInstance, timeoutInMilliseconds, browserExecutable, serveUrlOrWebpackUrl, indent, serializedInputPropsWithCustomSchema, logLevel, server, }: {
|
|
231
|
+
getCompositionWithDimensionOverride: ({ height, width, args, compositionIdFromUi, chromiumOptions, envVariables, port, puppeteerInstance, timeoutInMilliseconds, browserExecutable, serveUrlOrWebpackUrl, indent, serializedInputPropsWithCustomSchema, logLevel, server, offthreadVideoCacheSizeInBytes, }: {
|
|
228
232
|
height: number | null;
|
|
229
233
|
width: number | null;
|
|
230
234
|
args: string[];
|
|
@@ -240,6 +244,7 @@ export declare const CliInternals: {
|
|
|
240
244
|
logLevel: "verbose" | "info" | "warn" | "error";
|
|
241
245
|
serializedInputPropsWithCustomSchema: string;
|
|
242
246
|
server: import("@remotion/renderer").RemotionServer;
|
|
247
|
+
offthreadVideoCacheSizeInBytes: number | null;
|
|
243
248
|
}) => Promise<{
|
|
244
249
|
compositionId: string;
|
|
245
250
|
reason: string;
|
|
@@ -1,9 +1,11 @@
|
|
|
1
|
-
import type { AudioCodec, BrowserExecutable, Codec, OpenGlRenderer, PixelFormat, ProResProfile, StillImageFormat, VideoImageFormat } from '@remotion/renderer';
|
|
1
|
+
import type { AudioCodec, BrowserExecutable, Codec, OpenGlRenderer, PixelFormat, ProResProfile, StillImageFormat, VideoImageFormat, X264Preset } from '@remotion/renderer';
|
|
2
|
+
import type { BrowserSafeApis } from '@remotion/renderer/client';
|
|
2
3
|
type CommandLineOptions = {
|
|
3
4
|
['browser-executable']: BrowserExecutable;
|
|
4
5
|
['pixel-format']: PixelFormat;
|
|
5
6
|
['image-format']: VideoImageFormat | StillImageFormat;
|
|
6
7
|
['prores-profile']: ProResProfile;
|
|
8
|
+
['x264-preset']: X264Preset;
|
|
7
9
|
['bundle-cache']: string;
|
|
8
10
|
['env-file']: string;
|
|
9
11
|
['ignore-certificate-errors']: string;
|
|
@@ -11,6 +13,8 @@ type CommandLineOptions = {
|
|
|
11
13
|
['every-nth-frame']: number;
|
|
12
14
|
['number-of-gif-loops']: number;
|
|
13
15
|
['number-of-shared-audio-tags']: number;
|
|
16
|
+
[BrowserSafeApis.options.offthreadVideoCacheSizeInBytesOption
|
|
17
|
+
.cliFlag]: typeof BrowserSafeApis.options.offthreadVideoCacheSizeInBytesOption.type;
|
|
14
18
|
version: string;
|
|
15
19
|
codec: Codec;
|
|
16
20
|
concurrency: number;
|
|
@@ -105,6 +105,9 @@ const parseCommandLine = () => {
|
|
|
105
105
|
if (exports.parsedCli['prores-profile']) {
|
|
106
106
|
config_1.Config.setProResProfile(String(exports.parsedCli['prores-profile']));
|
|
107
107
|
}
|
|
108
|
+
if (exports.parsedCli['x264-preset']) {
|
|
109
|
+
config_1.Config.setX264Preset(String(exports.parsedCli['x264-preset']));
|
|
110
|
+
}
|
|
108
111
|
if (exports.parsedCli.overwrite) {
|
|
109
112
|
config_1.Config.setOverwriteOutput(exports.parsedCli.overwrite);
|
|
110
113
|
}
|
|
@@ -142,6 +145,9 @@ const parseCommandLine = () => {
|
|
|
142
145
|
if (typeof exports.parsedCli['video-bitrate'] !== 'undefined') {
|
|
143
146
|
config_1.Config.setVideoBitrate(exports.parsedCli['video-bitrate']);
|
|
144
147
|
}
|
|
148
|
+
if (typeof exports.parsedCli['offthreadvideo-cache-size-in-bytes'] !== 'undefined') {
|
|
149
|
+
config_1.Config.setOffthreadVideoCacheSizeInBytes(exports.parsedCli['offthreadvideo-cache-size-in-bytes']);
|
|
150
|
+
}
|
|
145
151
|
};
|
|
146
152
|
exports.parseCommandLine = parseCommandLine;
|
|
147
153
|
const quietFlagProvided = () => exports.parsedCli.quiet || exports.parsedCli.q;
|
|
@@ -11,5 +11,5 @@ type Range = {
|
|
|
11
11
|
type Ranges = Range[] & {
|
|
12
12
|
type?: string;
|
|
13
13
|
};
|
|
14
|
-
export declare function parseRange(size: number, str: string | string[]): -1 |
|
|
14
|
+
export declare function parseRange(size: number, str: string | string[]): -1 | -2 | Ranges;
|
|
15
15
|
export {};
|
|
@@ -42,6 +42,7 @@ const crashWithFrames = (crash) => (error) => {
|
|
|
42
42
|
if (didHookOrderChange && !justRefreshedBecauseOfHooks) {
|
|
43
43
|
// eslint-disable-next-line no-console
|
|
44
44
|
console.log('Hook order changed. Reloading app...');
|
|
45
|
+
window.remotion_unsavedProps = false;
|
|
45
46
|
window.location.reload();
|
|
46
47
|
}
|
|
47
48
|
else {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
declare const editorNames: readonly ["atom", "/Applications/Atom Beta.app/Contents/MacOS/Atom Beta", "brackets", "/Applications/Sublime Text.app/Contents/SharedSupport/bin/subl", "/Applications/Sublime Text Dev.app/Contents/SharedSupport/bin/subl", "/Applications/Sublime Text 2.app/Contents/SharedSupport/bin/subl", "code", "code-insiders", "vscodium", "/Applications/AppCode.app/Contents/MacOS/appcode", "/Applications/CLion.app/Contents/MacOS/clion", "/Applications/IntelliJ IDEA.app/Contents/MacOS/idea", "/Applications/PhpStorm.app/Contents/MacOS/phpstorm", "/Applications/PyCharm.app/Contents/MacOS/pycharm", "/Applications/PyCharm CE.app/Contents/MacOS/pycharm", "/Applications/RubyMine.app/Contents/MacOS/rubymine", "/Applications/WebStorm.app/Contents/MacOS/webstorm", "/Applications/GoLand.app/Contents/MacOS/goland", "/Applications/Rider.app/Contents/MacOS/rider", "mvim", "emacs", "gvim", "idea", "phpstorm", "pycharm", "rubymine", "subl", "sublime_text", "vim", "webstorm", "goland", "rider", "Brackets.exe", "Code.exe", "Code - Insiders.exe", "VSCodium.exe", "atom.exe", "sublime_text.exe", "notepad++.exe", "clion.exe", "clion64.exe", "idea.exe", "idea64.exe", "phpstorm.exe", "phpstorm64.exe", "pycharm.exe", "pycharm64.exe", "rubymine.exe", "rubymine64.exe", "webstorm.exe", "webstorm64.exe", "goland.exe", "goland64.exe", "rider.exe", "rider64.exe", "nano"];
|
|
2
2
|
export declare const getDisplayNameForEditor: (editor: Editor | null) => string | null;
|
|
3
|
-
type Editor = typeof editorNames[number];
|
|
3
|
+
type Editor = (typeof editorNames)[number];
|
|
4
4
|
type ProcessAndCommand = {
|
|
5
5
|
process: string;
|
|
6
6
|
command: Editor;
|
|
@@ -3,10 +3,5 @@
|
|
|
3
3
|
* https://github.com/webpack-contrib/webpack-hot-middleware#readme
|
|
4
4
|
* and rewritten in TypeScript. This file is MIT licensed
|
|
5
5
|
*/
|
|
6
|
-
/**
|
|
7
|
-
* Based heavily on https://github.com/webpack/webpack/blob/
|
|
8
|
-
* c0afdf9c6abc1dd70707c594e473802a566f7b6e/hot/only-dev-server.js
|
|
9
|
-
* Original copyright Tobias Koppers @sokra (MIT license)
|
|
10
|
-
*/
|
|
11
6
|
import type { HotMiddlewareOptions, ModuleMap } from './types';
|
|
12
7
|
export declare const processUpdate: (hash: string | undefined, moduleMap: ModuleMap, options: HotMiddlewareOptions) => void;
|
|
@@ -7,6 +7,12 @@
|
|
|
7
7
|
*/
|
|
8
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
9
|
exports.processUpdate = void 0;
|
|
10
|
+
/**
|
|
11
|
+
* Based heavily on https://github.com/webpack/webpack/blob/
|
|
12
|
+
* c0afdf9c6abc1dd70707c594e473802a566f7b6e/hot/only-dev-server.js
|
|
13
|
+
* Original copyright Tobias Koppers @sokra (MIT license)
|
|
14
|
+
*/
|
|
15
|
+
const NotificationCenter_1 = require("../../editor/components/Notifications/NotificationCenter");
|
|
10
16
|
if (!__webpack_module__.hot) {
|
|
11
17
|
throw new Error('[Fast refresh] Hot Module Replacement is disabled.');
|
|
12
18
|
}
|
|
@@ -128,16 +134,29 @@ const processUpdate = function (hash, moduleMap, options) {
|
|
|
128
134
|
}
|
|
129
135
|
if (options.warn) {
|
|
130
136
|
console.warn('[Fast refresh] Update check failed: ' + (err.stack || err.message));
|
|
131
|
-
window.
|
|
137
|
+
if (!window.remotion_unsavedProps) {
|
|
138
|
+
window.location.reload();
|
|
139
|
+
}
|
|
132
140
|
}
|
|
133
141
|
}
|
|
134
142
|
function performReload() {
|
|
143
|
+
var _a;
|
|
135
144
|
if (!reload) {
|
|
136
145
|
return;
|
|
137
146
|
}
|
|
138
147
|
if (options.warn)
|
|
139
148
|
console.warn('[Fast refresh] Reloading page');
|
|
140
|
-
window.
|
|
149
|
+
if (window.remotion_unsavedProps) {
|
|
150
|
+
(_a = NotificationCenter_1.notificationCenter.current) === null || _a === void 0 ? void 0 : _a.addNotification({
|
|
151
|
+
id: 'random',
|
|
152
|
+
content: 'Fast refresh needs to reload the page, but you have unsaved props. Save then reload the page to apply changes.',
|
|
153
|
+
created: new Date().getMilliseconds(),
|
|
154
|
+
duration: 1,
|
|
155
|
+
});
|
|
156
|
+
}
|
|
157
|
+
else {
|
|
158
|
+
window.location.reload();
|
|
159
|
+
}
|
|
141
160
|
}
|
|
142
161
|
};
|
|
143
162
|
exports.processUpdate = processUpdate;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { AudioCodec, Codec, makeCancelSignal, PixelFormat, ProResProfile, StillImageFormat, VideoImageFormat } from '@remotion/renderer';
|
|
1
|
+
import type { AudioCodec, Codec, makeCancelSignal, PixelFormat, ProResProfile, StillImageFormat, VideoImageFormat, X264Preset } from '@remotion/renderer';
|
|
2
2
|
import type { EnumPath } from '../../editor/components/RenderModal/SchemaEditor/extract-enum-json-paths';
|
|
3
3
|
import type { AggregateRenderProgress } from '../../progress-types';
|
|
4
4
|
import type { RequiredChromiumOptions } from '../../required-chromium-options';
|
|
@@ -29,6 +29,7 @@ type RenderJobDynamicFields = ({
|
|
|
29
29
|
jpegQuality: number;
|
|
30
30
|
frame: number;
|
|
31
31
|
scale: number;
|
|
32
|
+
offthreadVideoCacheSizeInBytes: number | null;
|
|
32
33
|
} & RenderJobDynamicStatus) | ({
|
|
33
34
|
type: 'video';
|
|
34
35
|
imageFormat: VideoImageFormat;
|
|
@@ -43,12 +44,14 @@ type RenderJobDynamicFields = ({
|
|
|
43
44
|
muted: boolean;
|
|
44
45
|
enforceAudioTrack: boolean;
|
|
45
46
|
proResProfile: ProResProfile | null;
|
|
47
|
+
x264Preset: X264Preset | null;
|
|
46
48
|
pixelFormat: PixelFormat;
|
|
47
49
|
audioBitrate: string | null;
|
|
48
50
|
videoBitrate: string | null;
|
|
49
51
|
everyNthFrame: number;
|
|
50
52
|
numberOfGifLoops: number | null;
|
|
51
53
|
disallowParallelEncoding: boolean;
|
|
54
|
+
offthreadVideoCacheSizeInBytes: number | null;
|
|
52
55
|
} & RenderJobDynamicStatus);
|
|
53
56
|
export type RenderJob = {
|
|
54
57
|
startedAt: number;
|
|
@@ -88,6 +91,7 @@ type AddRenderRequestDynamicFields = {
|
|
|
88
91
|
muted: boolean;
|
|
89
92
|
enforceAudioTrack: boolean;
|
|
90
93
|
proResProfile: ProResProfile | null;
|
|
94
|
+
x264Preset: X264Preset | null;
|
|
91
95
|
pixelFormat: PixelFormat;
|
|
92
96
|
audioBitrate: string | null;
|
|
93
97
|
videoBitrate: string | null;
|
|
@@ -106,6 +110,7 @@ export type AddRenderRequest = {
|
|
|
106
110
|
delayRenderTimeout: number;
|
|
107
111
|
envVariables: Record<string, string>;
|
|
108
112
|
serializedInputPropsWithCustomSchema: string;
|
|
113
|
+
offthreadVideoCacheSizeInBytes: number | null;
|
|
109
114
|
} & AddRenderRequestDynamicFields;
|
|
110
115
|
export type RemoveRenderRequest = {
|
|
111
116
|
jobId: string;
|
|
@@ -4,7 +4,7 @@ exports.makeRetryPayload = void 0;
|
|
|
4
4
|
const remotion_1 = require("remotion");
|
|
5
5
|
const get_default_video_contexts_1 = require("./get-default-video-contexts");
|
|
6
6
|
const makeRetryPayload = (job) => {
|
|
7
|
-
var _a, _b, _c;
|
|
7
|
+
var _a, _b, _c, _d;
|
|
8
8
|
const defaults = window.remotion_renderDefaults;
|
|
9
9
|
if (!defaults) {
|
|
10
10
|
throw new Error('defaults not set');
|
|
@@ -33,6 +33,7 @@ const makeRetryPayload = (job) => {
|
|
|
33
33
|
initialMuted: defaults.muted,
|
|
34
34
|
initialEnforceAudioTrack: defaults.enforceAudioTrack,
|
|
35
35
|
initialProResProfile: defaults.proResProfile,
|
|
36
|
+
initialx264Preset: defaults.x264Preset,
|
|
36
37
|
initialPixelFormat: defaults.pixelFormat,
|
|
37
38
|
initialAudioBitrate: defaults.audioBitrate,
|
|
38
39
|
initialVideoBitrate: defaults.videoBitrate,
|
|
@@ -48,6 +49,7 @@ const makeRetryPayload = (job) => {
|
|
|
48
49
|
defaultProps: remotion_1.Internals.deserializeJSONWithCustomFields(job.serializedInputPropsWithCustomSchema),
|
|
49
50
|
inFrameMark: null,
|
|
50
51
|
outFrameMark: null,
|
|
52
|
+
initialOffthreadVideoCacheSizeInBytes: job.offthreadVideoCacheSizeInBytes,
|
|
51
53
|
};
|
|
52
54
|
}
|
|
53
55
|
if (job.type === 'video') {
|
|
@@ -74,6 +76,7 @@ const makeRetryPayload = (job) => {
|
|
|
74
76
|
initialRenderType,
|
|
75
77
|
initialVideoCodecForVideoTab: initialVideoCodec,
|
|
76
78
|
initialProResProfile: (_c = job.proResProfile) !== null && _c !== void 0 ? _c : defaults.proResProfile,
|
|
79
|
+
initialx264Preset: (_d = job.x264Preset) !== null && _d !== void 0 ? _d : defaults.x264Preset,
|
|
77
80
|
initialPixelFormat: job.pixelFormat,
|
|
78
81
|
initialAudioBitrate: job.audioBitrate,
|
|
79
82
|
initialVideoBitrate: job.videoBitrate,
|
|
@@ -89,6 +92,7 @@ const makeRetryPayload = (job) => {
|
|
|
89
92
|
defaultProps: remotion_1.Internals.deserializeJSONWithCustomFields(job.serializedInputPropsWithCustomSchema),
|
|
90
93
|
inFrameMark: job.startFrame,
|
|
91
94
|
outFrameMark: job.endFrame,
|
|
95
|
+
initialOffthreadVideoCacheSizeInBytes: job.offthreadVideoCacheSizeInBytes,
|
|
92
96
|
};
|
|
93
97
|
}
|
|
94
98
|
throw new Error(`Job ${JSON.stringify(job)} Not implemented`);
|
|
@@ -41,6 +41,7 @@ const processStill = async ({ job, remotionRoot, entryPoint, onProgress, addClea
|
|
|
41
41
|
addCleanupCallback,
|
|
42
42
|
cancelSignal: job.cancelToken.cancelSignal,
|
|
43
43
|
outputLocationFromUi: job.outName,
|
|
44
|
+
offthreadVideoCacheSizeInBytes: job.offthreadVideoCacheSizeInBytes,
|
|
44
45
|
});
|
|
45
46
|
};
|
|
46
47
|
exports.processStill = processStill;
|
|
@@ -5,7 +5,7 @@ const convert_entry_point_to_serve_url_1 = require("../../convert-entry-point-to
|
|
|
5
5
|
const get_cli_options_1 = require("../../get-cli-options");
|
|
6
6
|
const render_1 = require("../../render-flows/render");
|
|
7
7
|
const processVideoJob = async ({ job, remotionRoot, entryPoint, onProgress, addCleanupCallback, }) => {
|
|
8
|
-
var _a, _b;
|
|
8
|
+
var _a, _b, _c;
|
|
9
9
|
if (job.type !== 'video') {
|
|
10
10
|
throw new Error('Expected video job');
|
|
11
11
|
}
|
|
@@ -53,11 +53,13 @@ const processVideoJob = async ({ job, remotionRoot, entryPoint, onProgress, addC
|
|
|
53
53
|
muted: job.muted,
|
|
54
54
|
enforceAudioTrack: job.enforceAudioTrack,
|
|
55
55
|
proResProfile: (_b = job.proResProfile) !== null && _b !== void 0 ? _b : undefined,
|
|
56
|
+
x264Preset: (_c = job.x264Preset) !== null && _c !== void 0 ? _c : undefined,
|
|
56
57
|
pixelFormat: job.pixelFormat,
|
|
57
58
|
videoBitrate: job.videoBitrate,
|
|
58
59
|
numberOfGifLoops: job.numberOfGifLoops,
|
|
59
60
|
audioCodec: job.audioCodec,
|
|
60
61
|
disallowParallelEncoding: job.disallowParallelEncoding,
|
|
62
|
+
offthreadVideoCacheSizeInBytes: job.offthreadVideoCacheSizeInBytes,
|
|
61
63
|
});
|
|
62
64
|
};
|
|
63
65
|
exports.processVideoJob = processVideoJob;
|
|
@@ -32,6 +32,7 @@ const handleAddRender = ({ input, entryPoint, remotionRoot, }) => {
|
|
|
32
32
|
muted: input.muted,
|
|
33
33
|
enforceAudioTrack: input.enforceAudioTrack,
|
|
34
34
|
proResProfile: input.proResProfile,
|
|
35
|
+
x264Preset: input.x264Preset,
|
|
35
36
|
pixelFormat: input.pixelFormat,
|
|
36
37
|
audioBitrate: input.audioBitrate,
|
|
37
38
|
videoBitrate: input.videoBitrate,
|
|
@@ -42,6 +43,7 @@ const handleAddRender = ({ input, entryPoint, remotionRoot, }) => {
|
|
|
42
43
|
chromiumOptions: input.chromiumOptions,
|
|
43
44
|
envVariables: input.envVariables,
|
|
44
45
|
serializedInputPropsWithCustomSchema: input.serializedInputPropsWithCustomSchema,
|
|
46
|
+
offthreadVideoCacheSizeInBytes: input.offthreadVideoCacheSizeInBytes,
|
|
45
47
|
},
|
|
46
48
|
});
|
|
47
49
|
}
|
|
@@ -66,6 +68,7 @@ const handleAddRender = ({ input, entryPoint, remotionRoot, }) => {
|
|
|
66
68
|
delayRenderTimeout: input.delayRenderTimeout,
|
|
67
69
|
envVariables: input.envVariables,
|
|
68
70
|
serializedInputPropsWithCustomSchema: input.serializedInputPropsWithCustomSchema,
|
|
71
|
+
offthreadVideoCacheSizeInBytes: input.offthreadVideoCacheSizeInBytes,
|
|
69
72
|
},
|
|
70
73
|
entryPoint,
|
|
71
74
|
remotionRoot,
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
/// <reference types="node" />
|
|
2
1
|
import type { IncomingMessage, ServerResponse } from 'node:http';
|
|
3
2
|
import type { LiveEventsServer } from './live-events';
|
|
4
3
|
export declare const handleRoutes: ({ hash, hashPrefix, request, response, liveEventsServer, getCurrentInputProps, getEnvVariables, remotionRoot, entryPoint, publicDir, }: {
|
|
@@ -28,7 +28,7 @@ const static404 = (response) => {
|
|
|
28
28
|
response.end('The static/ prefix has been changed, this URL is no longer valid.');
|
|
29
29
|
};
|
|
30
30
|
const handleFallback = async ({ remotionRoot, hash, response, getCurrentInputProps, getEnvVariables, publicDir, }) => {
|
|
31
|
-
var _a, _b;
|
|
31
|
+
var _a, _b, _c;
|
|
32
32
|
const [edit] = await editorGuess;
|
|
33
33
|
const displayName = (0, open_in_editor_1.getDisplayNameForEditor)(edit ? edit.command : null);
|
|
34
34
|
const defaultJpegQuality = config_1.ConfigInternals.getJpegQuality();
|
|
@@ -40,6 +40,7 @@ const handleFallback = async ({ remotionRoot, hash, response, getCurrentInputPro
|
|
|
40
40
|
const enforceAudioTrack = config_1.ConfigInternals.getEnforceAudioTrack();
|
|
41
41
|
const pixelFormat = config_1.ConfigInternals.getPixelFormat();
|
|
42
42
|
const proResProfile = (_a = config_1.ConfigInternals.getProResProfile()) !== null && _a !== void 0 ? _a : 'hq';
|
|
43
|
+
const x264Preset = (_b = config_1.ConfigInternals.getPresetProfile()) !== null && _b !== void 0 ? _b : 'medium';
|
|
43
44
|
const audioBitrate = config_1.ConfigInternals.getAudioBitrate();
|
|
44
45
|
const videoBitrate = config_1.ConfigInternals.getVideoBitrate();
|
|
45
46
|
const everyNthFrame = config_1.ConfigInternals.getEveryNthFrame();
|
|
@@ -52,6 +53,7 @@ const handleFallback = async ({ remotionRoot, hash, response, getCurrentInputPro
|
|
|
52
53
|
const headless = config_1.ConfigInternals.getChromiumHeadlessMode();
|
|
53
54
|
const ignoreCertificateErrors = config_1.ConfigInternals.getIgnoreCertificateErrors();
|
|
54
55
|
const openGlRenderer = config_1.ConfigInternals.getChromiumOpenGlRenderer();
|
|
56
|
+
const offthreadVideoCacheSizeInBytes = config_1.ConfigInternals.getOffthreadVideoCacheSizeInBytes();
|
|
55
57
|
const maxConcurrency = renderer_1.RenderInternals.getMaxConcurrency();
|
|
56
58
|
const minConcurrency = renderer_1.RenderInternals.getMinConcurrency();
|
|
57
59
|
response.setHeader('content-type', 'text/html');
|
|
@@ -67,7 +69,7 @@ const handleFallback = async ({ remotionRoot, hash, response, getCurrentInputPro
|
|
|
67
69
|
remotionRoot,
|
|
68
70
|
studioServerCommand: packageManager === 'unknown' ? null : packageManager.startCommand,
|
|
69
71
|
renderQueue: (0, queue_1.getRenderQueue)(),
|
|
70
|
-
numberOfAudioTags: (
|
|
72
|
+
numberOfAudioTags: (_c = parse_command_line_1.parsedCli['number-of-shared-audio-tags']) !== null && _c !== void 0 ? _c : (0, number_of_shared_audio_tags_1.getNumberOfSharedAudioTags)(),
|
|
71
73
|
publicFiles: (0, public_folder_1.getFiles)(),
|
|
72
74
|
includeFavicon: true,
|
|
73
75
|
title: 'Remotion Studio',
|
|
@@ -84,6 +86,7 @@ const handleFallback = async ({ remotionRoot, hash, response, getCurrentInputPro
|
|
|
84
86
|
muted,
|
|
85
87
|
enforceAudioTrack,
|
|
86
88
|
proResProfile,
|
|
89
|
+
x264Preset,
|
|
87
90
|
pixelFormat,
|
|
88
91
|
audioBitrate,
|
|
89
92
|
videoBitrate,
|
|
@@ -95,6 +98,7 @@ const handleFallback = async ({ remotionRoot, hash, response, getCurrentInputPro
|
|
|
95
98
|
headless,
|
|
96
99
|
ignoreCertificateErrors,
|
|
97
100
|
openGlRenderer,
|
|
101
|
+
offthreadVideoCacheSizeInBytes,
|
|
98
102
|
},
|
|
99
103
|
publicFolderExists: (0, node_fs_1.existsSync)(publicDir) ? publicDir : null,
|
|
100
104
|
}));
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import type { AudioCodec, Browser, BrowserExecutable, CancelSignal, ChromiumOptions, Codec, Crf, FfmpegOverrideFn, FrameRange, LogLevel, PixelFormat, ProResProfile, VideoImageFormat } from '@remotion/renderer';
|
|
1
|
+
import type { AudioCodec, Browser, BrowserExecutable, CancelSignal, ChromiumOptions, Codec, Crf, FfmpegOverrideFn, FrameRange, LogLevel, PixelFormat, ProResProfile, VideoImageFormat, X264Preset } from '@remotion/renderer';
|
|
2
2
|
import type { Loop } from '../config/number-of-gif-loops';
|
|
3
3
|
import type { JobProgressCallback } from '../preview-server/render-queue/job';
|
|
4
|
-
export declare const renderVideoFlow: ({ remotionRoot, fullEntryPoint, indent, logLevel, browserExecutable, browser, chromiumOptions, scale, shouldOutputImageSequence, publicDir, envVariables, puppeteerTimeout, port, height, width, remainingArgs, compositionIdFromUi, entryPointReason, overwrite, quiet, concurrency, frameRange, everyNthFrame, outputLocationFromUI, jpegQuality, onProgress, addCleanupCallback, cancelSignal, crf, uiCodec, uiImageFormat, ffmpegOverride, audioBitrate, muted, enforceAudioTrack, proResProfile, pixelFormat, videoBitrate, numberOfGifLoops, audioCodec, serializedInputPropsWithCustomSchema, disallowParallelEncoding, }: {
|
|
4
|
+
export declare const renderVideoFlow: ({ remotionRoot, fullEntryPoint, indent, logLevel, browserExecutable, browser, chromiumOptions, scale, shouldOutputImageSequence, publicDir, envVariables, puppeteerTimeout, port, height, width, remainingArgs, compositionIdFromUi, entryPointReason, overwrite, quiet, concurrency, frameRange, everyNthFrame, outputLocationFromUI, jpegQuality, onProgress, addCleanupCallback, cancelSignal, crf, uiCodec, uiImageFormat, ffmpegOverride, audioBitrate, muted, enforceAudioTrack, proResProfile, x264Preset, pixelFormat, videoBitrate, numberOfGifLoops, audioCodec, serializedInputPropsWithCustomSchema, disallowParallelEncoding, offthreadVideoCacheSizeInBytes, }: {
|
|
5
5
|
remotionRoot: string;
|
|
6
6
|
fullEntryPoint: string;
|
|
7
7
|
entryPointReason: string;
|
|
@@ -40,8 +40,10 @@ export declare const renderVideoFlow: ({ remotionRoot, fullEntryPoint, indent, l
|
|
|
40
40
|
muted: boolean;
|
|
41
41
|
enforceAudioTrack: boolean;
|
|
42
42
|
proResProfile: ProResProfile | undefined;
|
|
43
|
+
x264Preset: X264Preset | undefined;
|
|
43
44
|
pixelFormat: PixelFormat;
|
|
44
45
|
numberOfGifLoops: Loop;
|
|
45
46
|
audioCodec: AudioCodec | null;
|
|
46
47
|
disallowParallelEncoding: boolean;
|
|
48
|
+
offthreadVideoCacheSizeInBytes: number | null;
|
|
47
49
|
}) => Promise<void>;
|
|
@@ -47,7 +47,7 @@ const setup_cache_1 = require("../setup-cache");
|
|
|
47
47
|
const should_use_non_overlaying_logger_1 = require("../should-use-non-overlaying-logger");
|
|
48
48
|
const truthy_1 = require("../truthy");
|
|
49
49
|
const user_passed_output_location_1 = require("../user-passed-output-location");
|
|
50
|
-
const renderVideoFlow = async ({ remotionRoot, fullEntryPoint, indent, logLevel, browserExecutable, browser, chromiumOptions, scale, shouldOutputImageSequence, publicDir, envVariables, puppeteerTimeout, port, height, width, remainingArgs, compositionIdFromUi, entryPointReason, overwrite, quiet, concurrency, frameRange, everyNthFrame, outputLocationFromUI, jpegQuality, onProgress, addCleanupCallback, cancelSignal, crf, uiCodec, uiImageFormat, ffmpegOverride, audioBitrate, muted, enforceAudioTrack, proResProfile, pixelFormat, videoBitrate, numberOfGifLoops, audioCodec, serializedInputPropsWithCustomSchema, disallowParallelEncoding, }) => {
|
|
50
|
+
const renderVideoFlow = async ({ remotionRoot, fullEntryPoint, indent, logLevel, browserExecutable, browser, chromiumOptions, scale, shouldOutputImageSequence, publicDir, envVariables, puppeteerTimeout, port, height, width, remainingArgs, compositionIdFromUi, entryPointReason, overwrite, quiet, concurrency, frameRange, everyNthFrame, outputLocationFromUI, jpegQuality, onProgress, addCleanupCallback, cancelSignal, crf, uiCodec, uiImageFormat, ffmpegOverride, audioBitrate, muted, enforceAudioTrack, proResProfile, x264Preset, pixelFormat, videoBitrate, numberOfGifLoops, audioCodec, serializedInputPropsWithCustomSchema, disallowParallelEncoding, offthreadVideoCacheSizeInBytes, }) => {
|
|
51
51
|
var _a;
|
|
52
52
|
const downloads = [];
|
|
53
53
|
if (browserExecutable) {
|
|
@@ -138,6 +138,7 @@ const renderVideoFlow = async ({ remotionRoot, fullEntryPoint, indent, logLevel,
|
|
|
138
138
|
remotionRoot,
|
|
139
139
|
logLevel,
|
|
140
140
|
webpackConfigOrServeUrl: urlOrBundle,
|
|
141
|
+
offthreadVideoCacheSizeInBytes,
|
|
141
142
|
});
|
|
142
143
|
addCleanupCallback(() => server.closeServer(false));
|
|
143
144
|
const { compositionId, config, reason, argsAfterComposition } = await (0, get_composition_with_dimension_override_1.getCompositionWithDimensionOverride)({
|
|
@@ -156,6 +157,7 @@ const renderVideoFlow = async ({ remotionRoot, fullEntryPoint, indent, logLevel,
|
|
|
156
157
|
timeoutInMilliseconds: puppeteerTimeout,
|
|
157
158
|
logLevel,
|
|
158
159
|
server,
|
|
160
|
+
offthreadVideoCacheSizeInBytes,
|
|
159
161
|
});
|
|
160
162
|
const { codec, reason: codecReason } = (0, get_final_output_codec_1.getFinalOutputCodec)({
|
|
161
163
|
cliFlag: parse_command_line_1.parsedCli.codec,
|
|
@@ -242,6 +244,7 @@ const renderVideoFlow = async ({ remotionRoot, fullEntryPoint, indent, logLevel,
|
|
|
242
244
|
staticBase: null,
|
|
243
245
|
data: config.props,
|
|
244
246
|
}).serializedString,
|
|
247
|
+
offthreadVideoCacheSizeInBytes,
|
|
245
248
|
});
|
|
246
249
|
updateRenderProgress({ newline: true, printToConsole: true });
|
|
247
250
|
log_1.Log.infoAdvanced({ indent, logLevel }, chalk_1.chalk.blue(`▶ ${absoluteOutputFile}`));
|
|
@@ -268,6 +271,7 @@ const renderVideoFlow = async ({ remotionRoot, fullEntryPoint, indent, logLevel,
|
|
|
268
271
|
overwrite,
|
|
269
272
|
pixelFormat,
|
|
270
273
|
proResProfile,
|
|
274
|
+
x264Preset,
|
|
271
275
|
jpegQuality: jpegQuality !== null && jpegQuality !== void 0 ? jpegQuality : renderer_1.RenderInternals.DEFAULT_JPEG_QUALITY,
|
|
272
276
|
chromiumOptions,
|
|
273
277
|
timeoutInMilliseconds: puppeteerTimeout,
|
|
@@ -314,6 +318,7 @@ const renderVideoFlow = async ({ remotionRoot, fullEntryPoint, indent, logLevel,
|
|
|
314
318
|
indent: undefined,
|
|
315
319
|
staticBase: null,
|
|
316
320
|
}).serializedString,
|
|
321
|
+
offthreadVideoCacheSizeInBytes,
|
|
317
322
|
});
|
|
318
323
|
updateRenderProgress({ newline: true, printToConsole: true });
|
|
319
324
|
log_1.Log.infoAdvanced({ indent, logLevel }, chalk_1.chalk.blue(`${exists ? '○' : '+'} ${absoluteOutputFile}`));
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { Browser, BrowserExecutable, CancelSignal, ChromiumOptions, LogLevel, StillImageFormat } from '@remotion/renderer';
|
|
2
2
|
import type { JobProgressCallback } from '../preview-server/render-queue/job';
|
|
3
|
-
export declare const renderStillFlow: ({ remotionRoot, fullEntryPoint, entryPointReason, remainingArgs, browser, browserExecutable, chromiumOptions, envVariables, height, serializedInputPropsWithCustomSchema, overwrite, port, publicDir, puppeteerTimeout, jpegQuality, scale, stillFrame, width, compositionIdFromUi, imageFormatFromUi, logLevel, onProgress, indent, addCleanupCallback, cancelSignal, outputLocationFromUi, }: {
|
|
3
|
+
export declare const renderStillFlow: ({ remotionRoot, fullEntryPoint, entryPointReason, remainingArgs, browser, browserExecutable, chromiumOptions, envVariables, height, serializedInputPropsWithCustomSchema, overwrite, port, publicDir, puppeteerTimeout, jpegQuality, scale, stillFrame, width, compositionIdFromUi, imageFormatFromUi, logLevel, onProgress, indent, addCleanupCallback, cancelSignal, outputLocationFromUi, offthreadVideoCacheSizeInBytes, }: {
|
|
4
4
|
remotionRoot: string;
|
|
5
5
|
fullEntryPoint: string;
|
|
6
6
|
entryPointReason: string;
|
|
@@ -27,4 +27,5 @@ export declare const renderStillFlow: ({ remotionRoot, fullEntryPoint, entryPoin
|
|
|
27
27
|
addCleanupCallback: (cb: () => void) => void;
|
|
28
28
|
cancelSignal: CancelSignal | null;
|
|
29
29
|
outputLocationFromUi: string | null;
|
|
30
|
+
offthreadVideoCacheSizeInBytes: number | null;
|
|
30
31
|
}) => Promise<void>;
|
|
@@ -24,7 +24,7 @@ const setup_cache_1 = require("../setup-cache");
|
|
|
24
24
|
const should_use_non_overlaying_logger_1 = require("../should-use-non-overlaying-logger");
|
|
25
25
|
const truthy_1 = require("../truthy");
|
|
26
26
|
const user_passed_output_location_1 = require("../user-passed-output-location");
|
|
27
|
-
const renderStillFlow = async ({ remotionRoot, fullEntryPoint, entryPointReason, remainingArgs, browser, browserExecutable, chromiumOptions, envVariables, height, serializedInputPropsWithCustomSchema, overwrite, port, publicDir, puppeteerTimeout, jpegQuality, scale, stillFrame, width, compositionIdFromUi, imageFormatFromUi, logLevel, onProgress, indent, addCleanupCallback, cancelSignal, outputLocationFromUi, }) => {
|
|
27
|
+
const renderStillFlow = async ({ remotionRoot, fullEntryPoint, entryPointReason, remainingArgs, browser, browserExecutable, chromiumOptions, envVariables, height, serializedInputPropsWithCustomSchema, overwrite, port, publicDir, puppeteerTimeout, jpegQuality, scale, stillFrame, width, compositionIdFromUi, imageFormatFromUi, logLevel, onProgress, indent, addCleanupCallback, cancelSignal, outputLocationFromUi, offthreadVideoCacheSizeInBytes, }) => {
|
|
28
28
|
var _a, _b;
|
|
29
29
|
const aggregate = (0, progress_types_1.initialAggregateRenderProgress)();
|
|
30
30
|
const updatesDontOverwrite = (0, should_use_non_overlaying_logger_1.shouldUseNonOverlayingLogger)({ logLevel });
|
|
@@ -88,6 +88,7 @@ const renderStillFlow = async ({ remotionRoot, fullEntryPoint, entryPointReason,
|
|
|
88
88
|
remotionRoot,
|
|
89
89
|
logLevel,
|
|
90
90
|
webpackConfigOrServeUrl: urlOrBundle,
|
|
91
|
+
offthreadVideoCacheSizeInBytes,
|
|
91
92
|
});
|
|
92
93
|
addCleanupCallback(() => server.closeServer(false));
|
|
93
94
|
addCleanupCallback(() => cleanupBundle());
|
|
@@ -109,6 +110,7 @@ const renderStillFlow = async ({ remotionRoot, fullEntryPoint, entryPointReason,
|
|
|
109
110
|
timeoutInMilliseconds: puppeteerTimeout,
|
|
110
111
|
logLevel,
|
|
111
112
|
server,
|
|
113
|
+
offthreadVideoCacheSizeInBytes,
|
|
112
114
|
});
|
|
113
115
|
const { format: imageFormat, source } = (0, determine_image_format_1.determineFinalStillImageFormat)({
|
|
114
116
|
cliFlag: (_a = parse_command_line_1.parsedCli['image-format']) !== null && _a !== void 0 ? _a : null,
|
|
@@ -175,6 +177,7 @@ const renderStillFlow = async ({ remotionRoot, fullEntryPoint, entryPointReason,
|
|
|
175
177
|
staticBase: null,
|
|
176
178
|
data: config.props,
|
|
177
179
|
}).serializedString,
|
|
180
|
+
offthreadVideoCacheSizeInBytes,
|
|
178
181
|
});
|
|
179
182
|
aggregate.rendering = {
|
|
180
183
|
frames: 1,
|
package/dist/render.js
CHANGED
|
@@ -25,7 +25,7 @@ const render = async (remotionRoot, args) => {
|
|
|
25
25
|
log_1.Log.error('--frame flag was passed to the `render` command. This flag only works with the `still` command. Did you mean `--frames`? See reference: https://www.remotion.dev/docs/cli/');
|
|
26
26
|
process.exit(1);
|
|
27
27
|
}
|
|
28
|
-
const { concurrency, frameRange, shouldOutputImageSequence, overwrite, inputProps, envVariables, jpegQuality, browser, browserExecutable, scale, chromiumOptions, port, everyNthFrame, puppeteerTimeout, publicDir, height, width, crf, ffmpegOverride, audioBitrate, muted, enforceAudioTrack, proResProfile, pixelFormat, videoBitrate, numberOfGifLoops, } = await (0, get_cli_options_1.getCliOptions)({
|
|
28
|
+
const { concurrency, frameRange, shouldOutputImageSequence, overwrite, inputProps, envVariables, jpegQuality, browser, browserExecutable, scale, chromiumOptions, port, everyNthFrame, puppeteerTimeout, publicDir, height, width, crf, ffmpegOverride, audioBitrate, muted, enforceAudioTrack, proResProfile, x264Preset, pixelFormat, videoBitrate, numberOfGifLoops, offthreadVideoCacheSizeInBytes, } = await (0, get_cli_options_1.getCliOptions)({
|
|
29
29
|
isLambda: false,
|
|
30
30
|
type: 'series',
|
|
31
31
|
remotionRoot,
|
|
@@ -75,11 +75,13 @@ const render = async (remotionRoot, args) => {
|
|
|
75
75
|
muted,
|
|
76
76
|
enforceAudioTrack,
|
|
77
77
|
proResProfile,
|
|
78
|
+
x264Preset,
|
|
78
79
|
pixelFormat,
|
|
79
80
|
videoBitrate,
|
|
80
81
|
numberOfGifLoops,
|
|
81
82
|
audioCodec,
|
|
82
83
|
disallowParallelEncoding: false,
|
|
84
|
+
offthreadVideoCacheSizeInBytes,
|
|
83
85
|
});
|
|
84
86
|
};
|
|
85
87
|
exports.render = render;
|
package/dist/still.js
CHANGED
|
@@ -22,7 +22,7 @@ const still = async (remotionRoot, args) => {
|
|
|
22
22
|
log_1.Log.error('--frames flag was passed to the `still` command. This flag only works with the `render` command. Did you mean `--frame`? See reference: https://www.remotion.dev/docs/cli/');
|
|
23
23
|
process.exit(1);
|
|
24
24
|
}
|
|
25
|
-
const { browser, browserExecutable, chromiumOptions, envVariables, height, inputProps, overwrite, port, publicDir, puppeteerTimeout, jpegQuality, scale, stillFrame, width, logLevel, } = await (0, get_cli_options_1.getCliOptions)({
|
|
25
|
+
const { browser, browserExecutable, chromiumOptions, envVariables, height, inputProps, overwrite, port, publicDir, puppeteerTimeout, jpegQuality, scale, stillFrame, width, logLevel, offthreadVideoCacheSizeInBytes, } = await (0, get_cli_options_1.getCliOptions)({
|
|
26
26
|
isLambda: false,
|
|
27
27
|
type: 'still',
|
|
28
28
|
remotionRoot,
|
|
@@ -60,6 +60,7 @@ const still = async (remotionRoot, args) => {
|
|
|
60
60
|
},
|
|
61
61
|
cancelSignal: null,
|
|
62
62
|
outputLocationFromUi: null,
|
|
63
|
+
offthreadVideoCacheSizeInBytes,
|
|
63
64
|
});
|
|
64
65
|
};
|
|
65
66
|
exports.still = still;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@remotion/cli",
|
|
3
|
-
"version": "4.0.
|
|
3
|
+
"version": "4.0.23",
|
|
4
4
|
"description": "CLI for Remotion",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"sideEffects": false,
|
|
@@ -35,11 +35,11 @@
|
|
|
35
35
|
"prompts": "2.4.1",
|
|
36
36
|
"semver": "7.5.3",
|
|
37
37
|
"source-map": "0.6.1",
|
|
38
|
-
"@remotion/
|
|
39
|
-
"
|
|
40
|
-
"@remotion/bundler": "4.0.
|
|
41
|
-
"@remotion/
|
|
42
|
-
"remotion": "4.0.
|
|
38
|
+
"@remotion/renderer": "4.0.23",
|
|
39
|
+
"remotion": "4.0.23",
|
|
40
|
+
"@remotion/bundler": "4.0.23",
|
|
41
|
+
"@remotion/media-utils": "4.0.23",
|
|
42
|
+
"@remotion/player": "4.0.23"
|
|
43
43
|
},
|
|
44
44
|
"peerDependencies": {
|
|
45
45
|
"react": ">=16.8.0",
|
|
@@ -58,14 +58,14 @@
|
|
|
58
58
|
"eslint-plugin-10x": "1.5.2",
|
|
59
59
|
"eslint-plugin-react": "7.32.2",
|
|
60
60
|
"eslint-plugin-react-hooks": "4.4.0",
|
|
61
|
-
"prettier": "
|
|
61
|
+
"prettier": "3.0.2",
|
|
62
62
|
"prettier-plugin-organize-imports": "^3.2.2",
|
|
63
63
|
"react": "^18.0.0",
|
|
64
64
|
"react-dom": "^18.0.0",
|
|
65
65
|
"vitest": "0.31.1",
|
|
66
66
|
"zod": "^3.21.4",
|
|
67
|
-
"@remotion/zod-types": "4.0.
|
|
68
|
-
"@remotion/tailwind": "4.0.
|
|
67
|
+
"@remotion/zod-types": "4.0.23",
|
|
68
|
+
"@remotion/tailwind": "4.0.23"
|
|
69
69
|
},
|
|
70
70
|
"keywords": [
|
|
71
71
|
"remotion",
|