@remotion/cli 3.3.38 → 3.3.40
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 +1 -6
- package/dist/compositions.js +1 -6
- package/dist/config/index.js +69 -55
- package/dist/config/timeout.js +1 -1
- package/dist/editor/components/Modals.js +1 -1
- package/dist/editor/components/RenderButton.js +29 -8
- package/dist/editor/components/RenderModal/CrfSetting.d.ts +2 -2
- package/dist/editor/components/RenderModal/CrfSetting.js +11 -24
- package/dist/editor/components/RenderModal/EveryNthFrameSetting.d.ts +5 -0
- package/dist/editor/components/RenderModal/EveryNthFrameSetting.js +9 -0
- package/dist/editor/components/RenderModal/NumberOfLoopsSetting.d.ts +5 -0
- package/dist/editor/components/RenderModal/NumberOfLoopsSetting.js +26 -0
- package/dist/editor/components/RenderModal/NumberSetting.d.ts +9 -0
- package/dist/editor/components/RenderModal/NumberSetting.js +26 -0
- package/dist/editor/components/RenderModal/RenderModal.d.ts +19 -5
- package/dist/editor/components/RenderModal/RenderModal.js +225 -181
- package/dist/editor/components/RenderModal/RenderModalAdvanced.d.ts +11 -0
- package/dist/editor/components/RenderModal/RenderModalAdvanced.js +15 -0
- package/dist/editor/components/RenderModal/RenderModalAudio.d.ts +13 -0
- package/dist/editor/components/RenderModal/RenderModalAudio.js +22 -0
- package/dist/editor/components/RenderModal/RenderModalBasic.d.ts +22 -0
- package/dist/editor/components/RenderModal/RenderModalBasic.js +70 -0
- package/dist/editor/components/RenderModal/RenderModalGeneral.d.ts +0 -0
- package/dist/editor/components/RenderModal/RenderModalGeneral.js +1 -0
- package/dist/editor/components/RenderModal/RenderModalGif.d.ts +9 -0
- package/dist/editor/components/RenderModal/RenderModalGif.js +16 -0
- package/dist/editor/components/RenderModal/RenderModalHr.d.ts +2 -0
- package/dist/editor/components/RenderModal/RenderModalHr.js +18 -0
- package/dist/editor/components/RenderModal/RenderModalPicture.d.ts +28 -0
- package/dist/editor/components/RenderModal/RenderModalPicture.js +51 -0
- package/dist/editor/components/RenderModal/ScaleSetting.js +2 -18
- package/dist/editor/components/RenderModal/human-readable-codec.d.ts +2 -0
- package/dist/editor/components/RenderModal/human-readable-codec.js +36 -0
- package/dist/editor/components/RenderModal/layout.d.ts +1 -0
- package/dist/editor/components/RenderModal/layout.js +8 -2
- package/dist/editor/components/RenderQueue/RenderQueueRemoveItem.js +2 -1
- package/dist/editor/components/RenderQueue/actions.d.ts +15 -2
- package/dist/editor/components/RenderQueue/actions.js +14 -1
- package/dist/editor/components/RenderToolbarIcon.js +30 -8
- package/dist/editor/components/SegmentedControl.js +1 -1
- package/dist/editor/components/SidebarContent.js +2 -1
- package/dist/editor/icons/audio.d.ts +2 -0
- package/dist/editor/icons/audio.js +6 -0
- package/dist/editor/icons/file.d.ts +2 -0
- package/dist/editor/icons/file.js +6 -0
- package/dist/editor/icons/frame.d.ts +2 -0
- package/dist/editor/icons/frame.js +6 -0
- package/dist/editor/icons/gear.d.ts +2 -0
- package/dist/editor/icons/gear.js +6 -0
- package/dist/editor/icons/gif.d.ts +2 -0
- package/dist/editor/icons/gif.js +6 -0
- package/dist/entry-point.js +49 -6
- package/dist/get-env.js +1 -1
- package/dist/handle-common-errors.js +7 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +2 -0
- package/dist/list-of-remotion-packages.js +1 -0
- package/dist/parse-command-line.js +32 -32
- package/dist/preview-server/render-queue/get-default-video-contexts.d.ts +1 -1
- package/dist/preview-server/render-queue/job.d.ts +27 -1
- package/dist/preview-server/render-queue/make-retry-payload.js +52 -10
- package/dist/preview-server/render-queue/process-video.js +16 -9
- package/dist/preview-server/routes/add-render.js +13 -0
- package/dist/preview.js +1 -2
- package/dist/render-flows/render.d.ts +14 -4
- package/dist/render-flows/render.js +40 -13
- package/dist/render.js +3 -6
- package/dist/still.js +2 -5
- package/dist/upgrade.js +9 -3
- package/package.json +7 -7
package/dist/entry-point.js
CHANGED
|
@@ -4,6 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.findEntryPoint = void 0;
|
|
7
|
+
const renderer_1 = require("@remotion/renderer");
|
|
7
8
|
const fs_1 = require("fs");
|
|
8
9
|
const path_1 = __importDefault(require("path"));
|
|
9
10
|
const config_1 = require("./config");
|
|
@@ -20,12 +21,46 @@ const findCommonPath = (remotionRoot) => {
|
|
|
20
21
|
return candidates.find((candidate) => (0, fs_1.existsSync)(path_1.default.resolve(remotionRoot, candidate)));
|
|
21
22
|
};
|
|
22
23
|
const findEntryPoint = (args, remotionRoot) => {
|
|
24
|
+
const result = findEntryPointInner(args, remotionRoot);
|
|
25
|
+
if (result.file === null) {
|
|
26
|
+
return result;
|
|
27
|
+
}
|
|
28
|
+
if (renderer_1.RenderInternals.isServeUrl(result.file)) {
|
|
29
|
+
return result;
|
|
30
|
+
}
|
|
31
|
+
if (!(0, fs_1.existsSync)(result.file)) {
|
|
32
|
+
throw new Error(`${result.file} was chosen as the entry point (reason = ${result.reason}) but it does not exist.`);
|
|
33
|
+
}
|
|
34
|
+
if ((0, fs_1.lstatSync)(result.file).isDirectory()) {
|
|
35
|
+
throw new Error(`${result.file} was chosen as the entry point (reason = ${result.reason}) but it is a directory - it needs to be a file.`);
|
|
36
|
+
}
|
|
37
|
+
return result;
|
|
38
|
+
};
|
|
39
|
+
exports.findEntryPoint = findEntryPoint;
|
|
40
|
+
const findEntryPointInner = (args, remotionRoot) => {
|
|
23
41
|
// 1st priority: Explicitly passed entry point
|
|
24
42
|
let file = args[0];
|
|
25
43
|
if (file) {
|
|
26
44
|
log_1.Log.verbose('Checking if', file, 'is the entry file');
|
|
27
|
-
|
|
28
|
-
|
|
45
|
+
const cwdResolution = path_1.default.resolve(process.cwd(), file);
|
|
46
|
+
const remotionRootResolution = path_1.default.resolve(remotionRoot, file);
|
|
47
|
+
// Checking if file was found in CWD
|
|
48
|
+
if ((0, fs_1.existsSync)(cwdResolution)) {
|
|
49
|
+
return {
|
|
50
|
+
file: cwdResolution,
|
|
51
|
+
remainingArgs: args.slice(1),
|
|
52
|
+
reason: 'argument passed - found in cwd',
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
// Checking if file was found in remotion root
|
|
56
|
+
if ((0, fs_1.existsSync)(remotionRootResolution)) {
|
|
57
|
+
return {
|
|
58
|
+
file: remotionRootResolution,
|
|
59
|
+
remainingArgs: args.slice(1),
|
|
60
|
+
reason: 'argument passed - found in root',
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
if (renderer_1.RenderInternals.isServeUrl(file)) {
|
|
29
64
|
return { file, remainingArgs: args.slice(1), reason: 'argument passed' };
|
|
30
65
|
}
|
|
31
66
|
}
|
|
@@ -33,14 +68,22 @@ const findEntryPoint = (args, remotionRoot) => {
|
|
|
33
68
|
file = config_1.ConfigInternals.getEntryPoint();
|
|
34
69
|
if (file) {
|
|
35
70
|
log_1.Log.verbose('Entry point from config file is', file);
|
|
36
|
-
return {
|
|
71
|
+
return {
|
|
72
|
+
file: path_1.default.resolve(remotionRoot, file),
|
|
73
|
+
remainingArgs: args,
|
|
74
|
+
reason: 'config file',
|
|
75
|
+
};
|
|
37
76
|
}
|
|
38
77
|
// 3rd priority: Common paths
|
|
39
78
|
const found = findCommonPath(remotionRoot);
|
|
40
79
|
if (found) {
|
|
41
|
-
|
|
42
|
-
|
|
80
|
+
const absolutePath = path_1.default.resolve(remotionRoot, found);
|
|
81
|
+
log_1.Log.verbose('Selected', absolutePath, 'as the entry point because file exists and is a common entry point and no entry point was explicitly selected');
|
|
82
|
+
return {
|
|
83
|
+
file: absolutePath,
|
|
84
|
+
remainingArgs: args,
|
|
85
|
+
reason: 'common paths',
|
|
86
|
+
};
|
|
43
87
|
}
|
|
44
88
|
return { file: null, remainingArgs: args, reason: 'none found' };
|
|
45
89
|
};
|
|
46
|
-
exports.findEntryPoint = findEntryPoint;
|
package/dist/get-env.js
CHANGED
|
@@ -96,7 +96,7 @@ const getEnvironmentVariables = (onUpdate) => {
|
|
|
96
96
|
if (configFileSetting) {
|
|
97
97
|
const envFile = path_1.default.resolve(remotionRoot, configFileSetting);
|
|
98
98
|
if (!fs_1.default.existsSync(envFile)) {
|
|
99
|
-
log_1.Log.error('You specified a custom .env file using `Config.
|
|
99
|
+
log_1.Log.error('You specified a custom .env file using `Config.setDotEnvLocation()` in the config file but it could not be found');
|
|
100
100
|
log_1.Log.error('We looked for the file at:', envFile);
|
|
101
101
|
log_1.Log.error('Check that your path is correct and try again.');
|
|
102
102
|
process.exit(1);
|
|
@@ -10,7 +10,8 @@ const handleCommonError = async (err) => {
|
|
|
10
10
|
log_1.Log.info();
|
|
11
11
|
log_1.Log.info('💡 Get help for this issue at https://remotion.dev/docs/media-playback-error');
|
|
12
12
|
}
|
|
13
|
-
if (err.message.includes('A delayRender
|
|
13
|
+
if (err.message.includes('A delayRender()') &&
|
|
14
|
+
err.message.includes('was called but not cleared after')) {
|
|
14
15
|
log_1.Log.info();
|
|
15
16
|
log_1.Log.info('💡 Get help for this issue at https://remotion.dev/docs/timeout');
|
|
16
17
|
}
|
|
@@ -22,6 +23,11 @@ const handleCommonError = async (err) => {
|
|
|
22
23
|
log_1.Log.info();
|
|
23
24
|
log_1.Log.info('💡 Get help for this issue at https://remotion.dev/docs/enametoolong');
|
|
24
25
|
}
|
|
26
|
+
if (err.message.includes('Error creating WebGL context')) {
|
|
27
|
+
log_1.Log.info();
|
|
28
|
+
log_1.Log.info('💡 You might need to set the OpenGL renderer to "angle"');
|
|
29
|
+
log_1.Log.info('💡 Get help for this issue at https://www.remotion.dev/docs/three');
|
|
30
|
+
}
|
|
25
31
|
if (err.message.includes('The bucket does not allow ACLs')) {
|
|
26
32
|
log_1.Log.info();
|
|
27
33
|
log_1.Log.info(chalk_1.chalk.green('💡 Fix this issue https://remotion.dev/docs/lambda/troubleshooting/bucket-disallows-acl'));
|
package/dist/index.d.ts
CHANGED
|
@@ -146,4 +146,5 @@ export declare const CliInternals: {
|
|
|
146
146
|
};
|
|
147
147
|
getImageFormat: (codec: import("@remotion/renderer").CodecOrUndefined) => "png" | "jpeg" | "none";
|
|
148
148
|
printCompositions: (compositions: import("remotion").TCompMetadata[]) => void;
|
|
149
|
+
listOfRemotionPackages: string[];
|
|
149
150
|
};
|
package/dist/index.js
CHANGED
|
@@ -35,6 +35,7 @@ const image_formats_1 = require("./image-formats");
|
|
|
35
35
|
const initialize_cli_1 = require("./initialize-cli");
|
|
36
36
|
const install_1 = require("./install");
|
|
37
37
|
const lambda_command_1 = require("./lambda-command");
|
|
38
|
+
const list_of_remotion_packages_1 = require("./list-of-remotion-packages");
|
|
38
39
|
const log_1 = require("./log");
|
|
39
40
|
const make_progress_bar_1 = require("./make-progress-bar");
|
|
40
41
|
const parse_command_line_1 = require("./parse-command-line");
|
|
@@ -135,4 +136,5 @@ exports.CliInternals = {
|
|
|
135
136
|
findEntryPoint: entry_point_1.findEntryPoint,
|
|
136
137
|
getImageFormat: image_formats_1.getImageFormat,
|
|
137
138
|
printCompositions: print_compositions_1.printCompositions,
|
|
139
|
+
listOfRemotionPackages: list_of_remotion_packages_1.listOfRemotionPackages,
|
|
138
140
|
};
|
|
@@ -37,34 +37,34 @@ exports.parsedCli = (0, minimist_1.default)(process.argv.slice(2), {
|
|
|
37
37
|
});
|
|
38
38
|
const parseCommandLine = () => {
|
|
39
39
|
if (exports.parsedCli['pixel-format']) {
|
|
40
|
-
config_1.Config.
|
|
40
|
+
config_1.Config.setPixelFormat(exports.parsedCli['pixel-format']);
|
|
41
41
|
}
|
|
42
42
|
if (exports.parsedCli['image-format']) {
|
|
43
|
-
config_1.Config.
|
|
43
|
+
config_1.Config.setImageFormat(exports.parsedCli['image-format']);
|
|
44
44
|
}
|
|
45
45
|
if (exports.parsedCli['browser-executable']) {
|
|
46
|
-
config_1.Config.
|
|
46
|
+
config_1.Config.setBrowserExecutable(exports.parsedCli['browser-executable']);
|
|
47
47
|
}
|
|
48
48
|
if (exports.parsedCli['ffmpeg-executable']) {
|
|
49
|
-
config_1.Config.
|
|
49
|
+
config_1.Config.setFfmpegExecutable((0, path_1.resolve)(exports.parsedCli['ffmpeg-executable']));
|
|
50
50
|
}
|
|
51
51
|
if (exports.parsedCli['number-of-gif-loops']) {
|
|
52
|
-
config_1.Config.
|
|
52
|
+
config_1.Config.setNumberOfGifLoops(exports.parsedCli['number-of-gif-loops']);
|
|
53
53
|
}
|
|
54
54
|
if (exports.parsedCli['ffprobe-executable']) {
|
|
55
|
-
config_1.Config.
|
|
55
|
+
config_1.Config.setFfprobeExecutable((0, path_1.resolve)(exports.parsedCli['ffprobe-executable']));
|
|
56
56
|
}
|
|
57
57
|
if (typeof exports.parsedCli['bundle-cache'] !== 'undefined') {
|
|
58
|
-
config_1.Config.
|
|
58
|
+
config_1.Config.setCachingEnabled(exports.parsedCli['bundle-cache'] !== 'false');
|
|
59
59
|
}
|
|
60
60
|
if (exports.parsedCli['disable-web-security']) {
|
|
61
|
-
config_1.Config.
|
|
61
|
+
config_1.Config.setChromiumDisableWebSecurity(true);
|
|
62
62
|
}
|
|
63
63
|
if (exports.parsedCli['ignore-certificate-errors']) {
|
|
64
|
-
config_1.Config.
|
|
64
|
+
config_1.Config.setChromiumIgnoreCertificateErrors(true);
|
|
65
65
|
}
|
|
66
66
|
if (exports.parsedCli['disable-headless']) {
|
|
67
|
-
config_1.Config.
|
|
67
|
+
config_1.Config.setChromiumHeadlessMode(false);
|
|
68
68
|
}
|
|
69
69
|
if (exports.parsedCli.log) {
|
|
70
70
|
if (!renderer_1.RenderInternals.isValidLogLevel(exports.parsedCli.log)) {
|
|
@@ -77,16 +77,16 @@ const parseCommandLine = () => {
|
|
|
77
77
|
config_1.ConfigInternals.Logging.setLogLevel(exports.parsedCli.log);
|
|
78
78
|
}
|
|
79
79
|
if (exports.parsedCli.concurrency) {
|
|
80
|
-
config_1.Config.
|
|
80
|
+
config_1.Config.setConcurrency(exports.parsedCli.concurrency);
|
|
81
81
|
}
|
|
82
82
|
if (exports.parsedCli.timeout) {
|
|
83
|
-
config_1.Config.
|
|
83
|
+
config_1.Config.setTimeoutInMilliseconds(exports.parsedCli.timeout);
|
|
84
84
|
}
|
|
85
85
|
if (exports.parsedCli.height) {
|
|
86
|
-
config_1.Config.
|
|
86
|
+
config_1.Config.overrideHeight(exports.parsedCli.height);
|
|
87
87
|
}
|
|
88
88
|
if (exports.parsedCli.width) {
|
|
89
|
-
config_1.Config.
|
|
89
|
+
config_1.Config.overrideWidth(exports.parsedCli.width);
|
|
90
90
|
}
|
|
91
91
|
if (exports.parsedCli.frames) {
|
|
92
92
|
config_1.ConfigInternals.setFrameRangeFromCli(exports.parsedCli.frames);
|
|
@@ -96,56 +96,56 @@ const parseCommandLine = () => {
|
|
|
96
96
|
}
|
|
97
97
|
if (exports.parsedCli.png) {
|
|
98
98
|
log_1.Log.warn('The --png flag has been deprecrated. Use --sequence --image-format=png from now on.');
|
|
99
|
-
config_1.Config.
|
|
100
|
-
config_1.Config.
|
|
99
|
+
config_1.Config.setImageSequence(true);
|
|
100
|
+
config_1.Config.setImageFormat('png');
|
|
101
101
|
}
|
|
102
102
|
if (exports.parsedCli.sequence) {
|
|
103
|
-
config_1.Config.
|
|
103
|
+
config_1.Config.setImageSequence(true);
|
|
104
104
|
}
|
|
105
105
|
if (typeof exports.parsedCli.crf !== 'undefined') {
|
|
106
|
-
config_1.Config.
|
|
106
|
+
config_1.Config.setCrf(exports.parsedCli.crf);
|
|
107
107
|
}
|
|
108
108
|
if (exports.parsedCli['every-nth-frame']) {
|
|
109
|
-
config_1.Config.
|
|
109
|
+
config_1.Config.setEveryNthFrame(exports.parsedCli['every-nth-frame']);
|
|
110
110
|
}
|
|
111
111
|
if (exports.parsedCli.gl) {
|
|
112
|
-
config_1.Config.
|
|
112
|
+
config_1.Config.setChromiumOpenGlRenderer(exports.parsedCli.gl);
|
|
113
113
|
}
|
|
114
114
|
if (exports.parsedCli['prores-profile']) {
|
|
115
|
-
config_1.Config.
|
|
115
|
+
config_1.Config.setProResProfile(String(exports.parsedCli['prores-profile']));
|
|
116
116
|
}
|
|
117
117
|
if (exports.parsedCli.overwrite) {
|
|
118
|
-
config_1.Config.
|
|
118
|
+
config_1.Config.setOverwriteOutput(exports.parsedCli.overwrite);
|
|
119
119
|
}
|
|
120
120
|
if (typeof exports.parsedCli.quality !== 'undefined') {
|
|
121
|
-
config_1.Config.
|
|
121
|
+
config_1.Config.setQuality(exports.parsedCli.quality);
|
|
122
122
|
}
|
|
123
123
|
if (typeof exports.parsedCli.scale !== 'undefined') {
|
|
124
|
-
config_1.Config.
|
|
124
|
+
config_1.Config.setScale(exports.parsedCli.scale);
|
|
125
125
|
}
|
|
126
126
|
if (typeof exports.parsedCli.port !== 'undefined') {
|
|
127
|
-
config_1.Config.
|
|
127
|
+
config_1.Config.setPort(exports.parsedCli.port);
|
|
128
128
|
}
|
|
129
129
|
if (typeof exports.parsedCli.muted !== 'undefined') {
|
|
130
|
-
config_1.Config.
|
|
130
|
+
config_1.Config.setMuted(exports.parsedCli.muted);
|
|
131
131
|
}
|
|
132
132
|
if (typeof exports.parsedCli['disable-keyboard-shortcuts'] !== 'undefined') {
|
|
133
|
-
config_1.Config.
|
|
133
|
+
config_1.Config.setKeyboardShortcutsEnabled(!exports.parsedCli['disable-keyboard-shortcuts']);
|
|
134
134
|
}
|
|
135
135
|
if (typeof exports.parsedCli['enforce-audio-track'] !== 'undefined') {
|
|
136
|
-
config_1.Config.
|
|
136
|
+
config_1.Config.setEnforceAudioTrack(exports.parsedCli['enforce-audio-track']);
|
|
137
137
|
}
|
|
138
138
|
if (typeof exports.parsedCli['public-dir'] !== 'undefined') {
|
|
139
|
-
config_1.Config.
|
|
139
|
+
config_1.Config.setPublicDir(exports.parsedCli['public-dir']);
|
|
140
140
|
}
|
|
141
141
|
if (typeof exports.parsedCli['webpack-poll'] !== 'undefined') {
|
|
142
|
-
config_1.Config.
|
|
142
|
+
config_1.Config.setWebpackPollingInMilliseconds(exports.parsedCli['webpack-poll']);
|
|
143
143
|
}
|
|
144
144
|
if (typeof exports.parsedCli['audio-bitrate'] !== 'undefined') {
|
|
145
|
-
config_1.Config.
|
|
145
|
+
config_1.Config.setAudioBitrate(exports.parsedCli['audio-bitrate']);
|
|
146
146
|
}
|
|
147
147
|
if (typeof exports.parsedCli['video-bitrate'] !== 'undefined') {
|
|
148
|
-
config_1.Config.
|
|
148
|
+
config_1.Config.setVideoBitrate(exports.parsedCli['video-bitrate']);
|
|
149
149
|
}
|
|
150
150
|
};
|
|
151
151
|
exports.parseCommandLine = parseCommandLine;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Codec } from '@remotion/renderer';
|
|
2
|
-
import type { RenderType } from '../../editor/components/RenderModal/
|
|
2
|
+
import type { RenderType } from '../../editor/components/RenderModal/RenderModalAdvanced';
|
|
3
3
|
export declare const getDefaultCodecs: ({ defaultCodec, isStill, }: {
|
|
4
4
|
defaultCodec: Codec;
|
|
5
5
|
isStill: boolean;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { Codec, makeCancelSignal, StillImageFormat } from '@remotion/renderer';
|
|
1
|
+
import type { Codec, makeCancelSignal, PixelFormat, ProResProfile, StillImageFormat } from '@remotion/renderer';
|
|
2
2
|
declare type RenderJobDynamicStatus = {
|
|
3
3
|
status: 'done';
|
|
4
4
|
} | {
|
|
@@ -30,6 +30,19 @@ declare type RenderJobDynamicFields = {
|
|
|
30
30
|
quality: number | null;
|
|
31
31
|
scale: number;
|
|
32
32
|
codec: Codec;
|
|
33
|
+
concurrency: number;
|
|
34
|
+
crf: number | null;
|
|
35
|
+
startFrame: number;
|
|
36
|
+
endFrame: number;
|
|
37
|
+
muted: boolean;
|
|
38
|
+
enforceAudioTrack: boolean;
|
|
39
|
+
proResProfile: ProResProfile | null;
|
|
40
|
+
pixelFormat: PixelFormat;
|
|
41
|
+
audioBitrate: string | null;
|
|
42
|
+
videoBitrate: string | null;
|
|
43
|
+
everyNthFrame: number;
|
|
44
|
+
numberOfGifLoops: number | null;
|
|
45
|
+
delayRenderTimeout: number;
|
|
33
46
|
};
|
|
34
47
|
export declare type RenderJob = {
|
|
35
48
|
startedAt: number;
|
|
@@ -57,6 +70,19 @@ declare type AddRenderRequestDynamicFields = {
|
|
|
57
70
|
quality: number | null;
|
|
58
71
|
scale: number;
|
|
59
72
|
verbose: boolean;
|
|
73
|
+
concurrency: number;
|
|
74
|
+
crf: number | null;
|
|
75
|
+
startFrame: number;
|
|
76
|
+
endFrame: number;
|
|
77
|
+
muted: boolean;
|
|
78
|
+
enforceAudioTrack: boolean;
|
|
79
|
+
proResProfile: ProResProfile | null;
|
|
80
|
+
pixelFormat: PixelFormat;
|
|
81
|
+
audioBitrate: string | null;
|
|
82
|
+
videoBitrate: string | null;
|
|
83
|
+
everyNthFrame: number;
|
|
84
|
+
numberOfGifLoops: number | null;
|
|
85
|
+
delayRenderTimeout: number;
|
|
60
86
|
};
|
|
61
87
|
export declare type CancelRenderRequest = {
|
|
62
88
|
jobId: string;
|
|
@@ -1,35 +1,77 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.makeRetryPayload = void 0;
|
|
4
|
+
const get_default_video_contexts_1 = require("./get-default-video-contexts");
|
|
4
5
|
const makeRetryPayload = (job) => {
|
|
6
|
+
var _a, _b, _c;
|
|
7
|
+
const defaults = window.remotion_renderDefaults;
|
|
8
|
+
if (!defaults) {
|
|
9
|
+
throw new Error('defaults not set');
|
|
10
|
+
}
|
|
5
11
|
if (job.type === 'still') {
|
|
12
|
+
const { initialAudioCodec, initialRenderType, initialVideoCodec } = (0, get_default_video_contexts_1.getDefaultCodecs)({
|
|
13
|
+
defaultCodec: defaults.codec,
|
|
14
|
+
isStill: true,
|
|
15
|
+
});
|
|
6
16
|
return {
|
|
7
17
|
type: 'render',
|
|
8
18
|
compositionId: job.compositionId,
|
|
9
19
|
initialFrame: job.frame,
|
|
10
|
-
|
|
11
|
-
|
|
20
|
+
initialStillImageFormat: job.imageFormat,
|
|
21
|
+
// TODO: Take from config
|
|
22
|
+
initialVideoImageFormat: 'jpeg',
|
|
23
|
+
initialQuality: (_a = job.quality) !== null && _a !== void 0 ? _a : defaults.quality,
|
|
12
24
|
initialOutName: job.outName,
|
|
13
25
|
initialScale: job.scale,
|
|
14
26
|
initialVerbose: job.verbose,
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
27
|
+
initialAudioCodec,
|
|
28
|
+
initialRenderType,
|
|
29
|
+
initialVideoCodec,
|
|
30
|
+
initialConcurrency: defaults.concurrency,
|
|
31
|
+
maxConcurrency: defaults.maxConcurrency,
|
|
32
|
+
minConcurrency: defaults.minConcurrency,
|
|
33
|
+
initialMuted: defaults.muted,
|
|
34
|
+
initialEnforceAudioTrack: defaults.enforceAudioTrack,
|
|
35
|
+
initialProResProfile: defaults.proResProfile,
|
|
36
|
+
initialPixelFormat: defaults.pixelFormat,
|
|
37
|
+
initialAudioBitrate: defaults.audioBitrate,
|
|
38
|
+
initialVideoBitrate: defaults.videoBitrate,
|
|
39
|
+
initialEveryNthFrame: defaults.everyNthFrame,
|
|
40
|
+
initialNumberOfGifLoops: defaults.numberOfGifLoops,
|
|
41
|
+
initialDelayRenderTimeout: defaults.delayRenderTimeout,
|
|
18
42
|
};
|
|
19
43
|
}
|
|
20
44
|
if (job.type === 'video') {
|
|
21
|
-
|
|
45
|
+
const { initialAudioCodec, initialRenderType, initialVideoCodec } = (0, get_default_video_contexts_1.getDefaultCodecs)({
|
|
46
|
+
defaultCodec: defaults.codec,
|
|
47
|
+
isStill: false,
|
|
48
|
+
});
|
|
22
49
|
return {
|
|
23
50
|
type: 'render',
|
|
24
51
|
compositionId: job.compositionId,
|
|
25
|
-
|
|
26
|
-
|
|
52
|
+
// TODO: Take from config
|
|
53
|
+
initialStillImageFormat: 'png',
|
|
54
|
+
initialVideoImageFormat: job.imageFormat,
|
|
55
|
+
initialQuality: (_b = job.quality) !== null && _b !== void 0 ? _b : defaults.quality,
|
|
27
56
|
initialOutName: job.outName,
|
|
28
57
|
initialScale: job.scale,
|
|
29
58
|
initialVerbose: job.verbose,
|
|
30
59
|
initialFrame: 0,
|
|
31
|
-
|
|
32
|
-
|
|
60
|
+
initialConcurrency: job.concurrency,
|
|
61
|
+
maxConcurrency: defaults.maxConcurrency,
|
|
62
|
+
minConcurrency: defaults.minConcurrency,
|
|
63
|
+
initialMuted: job.muted,
|
|
64
|
+
initialAudioCodec,
|
|
65
|
+
initialEnforceAudioTrack: job.enforceAudioTrack,
|
|
66
|
+
initialRenderType,
|
|
67
|
+
initialVideoCodec,
|
|
68
|
+
initialProResProfile: (_c = job.proResProfile) !== null && _c !== void 0 ? _c : defaults.proResProfile,
|
|
69
|
+
initialPixelFormat: job.pixelFormat,
|
|
70
|
+
initialAudioBitrate: job.audioBitrate,
|
|
71
|
+
initialVideoBitrate: job.videoBitrate,
|
|
72
|
+
initialEveryNthFrame: job.everyNthFrame,
|
|
73
|
+
initialNumberOfGifLoops: job.numberOfGifLoops,
|
|
74
|
+
initialDelayRenderTimeout: job.delayRenderTimeout,
|
|
33
75
|
};
|
|
34
76
|
}
|
|
35
77
|
throw new Error(`Job ${JSON.stringify(job)} Not implemented`);
|
|
@@ -5,11 +5,12 @@ 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;
|
|
8
|
+
var _a, _b;
|
|
9
9
|
if (job.type !== 'video') {
|
|
10
10
|
throw new Error('Expected video job');
|
|
11
11
|
}
|
|
12
|
-
|
|
12
|
+
// TODO: Change until none can be derived from UI
|
|
13
|
+
const { publicDir, browserExecutable, ffmpegExecutable, ffprobeExecutable, chromiumOptions, envVariables, inputProps, port, browser, ffmpegOverride, } = await (0, get_cli_options_1.getCliOptions)({
|
|
13
14
|
isLambda: false,
|
|
14
15
|
type: 'still',
|
|
15
16
|
remotionRoot,
|
|
@@ -30,7 +31,7 @@ const processVideoJob = async ({ job, remotionRoot, entryPoint, onProgress, addC
|
|
|
30
31
|
overwrite: true,
|
|
31
32
|
port,
|
|
32
33
|
publicDir,
|
|
33
|
-
puppeteerTimeout,
|
|
34
|
+
puppeteerTimeout: job.delayRenderTimeout,
|
|
34
35
|
quality: (_a = job.quality) !== null && _a !== void 0 ? _a : undefined,
|
|
35
36
|
remainingArgs: [],
|
|
36
37
|
scale: job.scale,
|
|
@@ -40,12 +41,9 @@ const processVideoJob = async ({ job, remotionRoot, entryPoint, onProgress, addC
|
|
|
40
41
|
logLevel: job.verbose ? 'verbose' : 'info',
|
|
41
42
|
onProgress,
|
|
42
43
|
indent: true,
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
everyNthFrame: 1,
|
|
47
|
-
// TODO: Make configurable
|
|
48
|
-
frameRange: null,
|
|
44
|
+
concurrency: job.concurrency,
|
|
45
|
+
everyNthFrame: job.everyNthFrame,
|
|
46
|
+
frameRange: [job.startFrame, job.endFrame],
|
|
49
47
|
quiet: false,
|
|
50
48
|
shouldOutputImageSequence: false,
|
|
51
49
|
addCleanupCallback,
|
|
@@ -53,6 +51,15 @@ const processVideoJob = async ({ job, remotionRoot, entryPoint, onProgress, addC
|
|
|
53
51
|
uiCodec: job.codec,
|
|
54
52
|
uiImageFormat: job.imageFormat,
|
|
55
53
|
cancelSignal: job.cancelToken.cancelSignal,
|
|
54
|
+
crf: job.crf,
|
|
55
|
+
ffmpegOverride,
|
|
56
|
+
audioBitrate: job.audioBitrate,
|
|
57
|
+
muted: job.muted,
|
|
58
|
+
enforceAudioTrack: job.enforceAudioTrack,
|
|
59
|
+
proResProfile: (_b = job.proResProfile) !== null && _b !== void 0 ? _b : undefined,
|
|
60
|
+
pixelFormat: job.pixelFormat,
|
|
61
|
+
videoBitrate: job.videoBitrate,
|
|
62
|
+
numberOfGifLoops: job.numberOfGifLoops,
|
|
56
63
|
});
|
|
57
64
|
// TODO: Accept CLI options
|
|
58
65
|
};
|
|
@@ -24,6 +24,19 @@ const handleAddRender = ({ input, entryPoint, remotionRoot, }) => {
|
|
|
24
24
|
startedAt: Date.now(),
|
|
25
25
|
verbose: input.verbose,
|
|
26
26
|
cancelToken: (0, renderer_1.makeCancelSignal)(),
|
|
27
|
+
concurrency: input.concurrency,
|
|
28
|
+
crf: input.crf,
|
|
29
|
+
endFrame: input.endFrame,
|
|
30
|
+
startFrame: input.startFrame,
|
|
31
|
+
muted: input.muted,
|
|
32
|
+
enforceAudioTrack: input.enforceAudioTrack,
|
|
33
|
+
proResProfile: input.proResProfile,
|
|
34
|
+
pixelFormat: input.pixelFormat,
|
|
35
|
+
audioBitrate: input.audioBitrate,
|
|
36
|
+
videoBitrate: input.videoBitrate,
|
|
37
|
+
everyNthFrame: input.everyNthFrame,
|
|
38
|
+
numberOfGifLoops: input.numberOfGifLoops,
|
|
39
|
+
delayRenderTimeout: input.delayRenderTimeout,
|
|
27
40
|
},
|
|
28
41
|
});
|
|
29
42
|
}
|
package/dist/preview.js
CHANGED
|
@@ -73,7 +73,6 @@ const previewCommand = async (remotionRoot, args) => {
|
|
|
73
73
|
process.exit(1);
|
|
74
74
|
}
|
|
75
75
|
const desiredPort = getPort();
|
|
76
|
-
const fullPath = path_1.default.join(process.cwd(), file);
|
|
77
76
|
let inputProps = (0, get_input_props_1.getInputProps)((newProps) => {
|
|
78
77
|
waitForLiveEventsListener().then((listener) => {
|
|
79
78
|
inputProps = newProps;
|
|
@@ -113,7 +112,7 @@ const previewCommand = async (remotionRoot, args) => {
|
|
|
113
112
|
});
|
|
114
113
|
const { port, liveEventsServer } = await (0, start_server_1.startServer)({
|
|
115
114
|
entry: path_1.default.resolve(__dirname, 'previewEntry.js'),
|
|
116
|
-
userDefinedComponent:
|
|
115
|
+
userDefinedComponent: file,
|
|
117
116
|
getCurrentInputProps: () => inputProps,
|
|
118
117
|
getEnvVariables: () => envVariables,
|
|
119
118
|
port: desiredPort,
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import type { Browser, BrowserExecutable, CancelSignal, ChromiumOptions, Codec, FfmpegExecutable, FrameRange, ImageFormat, LogLevel } from '@remotion/renderer';
|
|
1
|
+
import type { Browser, BrowserExecutable, CancelSignal, ChromiumOptions, Codec, Crf, FfmpegExecutable, FfmpegOverrideFn, FrameRange, ImageFormat, LogLevel, PixelFormat, ProResProfile } from '@remotion/renderer';
|
|
2
|
+
import type { Loop } from '../config/number-of-gif-loops';
|
|
2
3
|
import type { JobProgressCallback } from '../preview-server/render-queue/job';
|
|
3
|
-
export declare const renderCompFlow: ({ remotionRoot, fullEntryPoint, ffmpegExecutable, ffprobeExecutable, indent, logLevel, browserExecutable, browser, chromiumOptions, scale, shouldOutputImageSequence, publicDir, inputProps, envVariables, puppeteerTimeout, port, height, width, remainingArgs, compositionIdFromUi, entryPointReason, overwrite, quiet, concurrency, frameRange, everyNthFrame, configFileImageFormat, outputLocationFromUI, quality, onProgress, addCleanupCallback, uiCodec, uiImageFormat,
|
|
4
|
+
export declare const renderCompFlow: ({ remotionRoot, fullEntryPoint, ffmpegExecutable, ffprobeExecutable, indent, logLevel, browserExecutable, browser, chromiumOptions, scale, shouldOutputImageSequence, publicDir, inputProps, envVariables, puppeteerTimeout, port, height, width, remainingArgs, compositionIdFromUi, entryPointReason, overwrite, quiet, concurrency, frameRange, everyNthFrame, configFileImageFormat, outputLocationFromUI, quality, onProgress, addCleanupCallback, cancelSignal, crf, uiCodec, uiImageFormat, ffmpegOverride, audioBitrate, muted, enforceAudioTrack, proResProfile, pixelFormat, videoBitrate, numberOfGifLoops, }: {
|
|
4
5
|
remotionRoot: string;
|
|
5
6
|
fullEntryPoint: string;
|
|
6
7
|
entryPointReason: string;
|
|
@@ -32,7 +33,16 @@ export declare const renderCompFlow: ({ remotionRoot, fullEntryPoint, ffmpegExec
|
|
|
32
33
|
quality: number | undefined;
|
|
33
34
|
onProgress: JobProgressCallback;
|
|
34
35
|
addCleanupCallback: (cb: () => Promise<void>) => void;
|
|
35
|
-
|
|
36
|
-
uiImageFormat: ImageFormat | null;
|
|
36
|
+
crf: Crf | null;
|
|
37
37
|
cancelSignal: CancelSignal | null;
|
|
38
|
+
uiCodec: Codec | null;
|
|
39
|
+
uiImageFormat: 'png' | 'jpeg' | 'none' | null;
|
|
40
|
+
ffmpegOverride: FfmpegOverrideFn;
|
|
41
|
+
audioBitrate: string | null;
|
|
42
|
+
videoBitrate: string | null;
|
|
43
|
+
muted: boolean;
|
|
44
|
+
enforceAudioTrack: boolean;
|
|
45
|
+
proResProfile: ProResProfile | undefined;
|
|
46
|
+
pixelFormat: PixelFormat;
|
|
47
|
+
numberOfGifLoops: Loop;
|
|
38
48
|
}) => Promise<void>;
|