@remotion/cli 3.3.41 → 3.3.43
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/config/audio-codec.d.ts +3 -0
- package/dist/config/audio-codec.js +20 -0
- package/dist/config/index.d.ts +1 -0
- package/dist/config/index.js +4 -0
- package/dist/editor/components/Modals.js +1 -1
- package/dist/editor/components/RenderButton.js +8 -29
- package/dist/editor/components/RenderModal/CrfSetting.d.ts +2 -2
- package/dist/editor/components/RenderModal/CrfSetting.js +24 -11
- package/dist/editor/components/RenderModal/RenderModal.d.ts +5 -19
- package/dist/editor/components/RenderModal/RenderModal.js +181 -225
- package/dist/editor/components/RenderModal/ScaleSetting.js +18 -2
- package/dist/editor/components/RenderModal/layout.d.ts +0 -1
- package/dist/editor/components/RenderModal/layout.js +2 -8
- package/dist/editor/components/RenderQueue/RenderQueueRemoveItem.js +1 -2
- package/dist/editor/components/RenderQueue/actions.d.ts +2 -15
- package/dist/editor/components/RenderQueue/actions.js +1 -14
- package/dist/editor/components/RenderToolbarIcon.js +8 -30
- package/dist/editor/components/SegmentedControl.js +1 -1
- package/dist/editor/components/SidebarContent.js +1 -2
- package/dist/get-audio-codec.d.ts +2 -0
- package/dist/get-audio-codec.js +10 -0
- package/dist/get-filename.d.ts +1 -3
- package/dist/get-filename.js +5 -23
- package/dist/get-final-output-codec.js +23 -31
- package/dist/get-render-media-options.js +3 -0
- package/dist/parse-command-line.d.ts +2 -1
- package/dist/preview-server/render-queue/get-default-video-contexts.d.ts +1 -1
- package/dist/preview-server/render-queue/job.d.ts +1 -27
- package/dist/preview-server/render-queue/make-retry-payload.js +10 -52
- package/dist/preview-server/render-queue/process-video.js +9 -16
- package/dist/preview-server/routes/add-render.js +0 -13
- package/dist/render-flows/render.d.ts +4 -14
- package/dist/render-flows/render.js +13 -40
- package/dist/render.js +3 -2
- package/package.json +7 -7
- package/dist/editor/components/RenderModal/EveryNthFrameSetting.d.ts +0 -5
- package/dist/editor/components/RenderModal/EveryNthFrameSetting.js +0 -9
- package/dist/editor/components/RenderModal/NumberOfLoopsSetting.d.ts +0 -5
- package/dist/editor/components/RenderModal/NumberOfLoopsSetting.js +0 -26
- package/dist/editor/components/RenderModal/NumberSetting.d.ts +0 -9
- package/dist/editor/components/RenderModal/NumberSetting.js +0 -26
- package/dist/editor/components/RenderModal/RenderModalAdvanced.d.ts +0 -11
- package/dist/editor/components/RenderModal/RenderModalAdvanced.js +0 -15
- package/dist/editor/components/RenderModal/RenderModalAudio.d.ts +0 -13
- package/dist/editor/components/RenderModal/RenderModalAudio.js +0 -22
- package/dist/editor/components/RenderModal/RenderModalBasic.d.ts +0 -22
- package/dist/editor/components/RenderModal/RenderModalBasic.js +0 -70
- package/dist/editor/components/RenderModal/RenderModalGeneral.d.ts +0 -0
- package/dist/editor/components/RenderModal/RenderModalGeneral.js +0 -1
- package/dist/editor/components/RenderModal/RenderModalGif.d.ts +0 -9
- package/dist/editor/components/RenderModal/RenderModalGif.js +0 -16
- package/dist/editor/components/RenderModal/RenderModalHr.d.ts +0 -2
- package/dist/editor/components/RenderModal/RenderModalHr.js +0 -18
- package/dist/editor/components/RenderModal/RenderModalPicture.d.ts +0 -28
- package/dist/editor/components/RenderModal/RenderModalPicture.js +0 -51
- package/dist/editor/components/RenderModal/human-readable-codec.d.ts +0 -2
- package/dist/editor/components/RenderModal/human-readable-codec.js +0 -36
- package/dist/editor/icons/audio.d.ts +0 -2
- package/dist/editor/icons/audio.js +0 -6
- package/dist/editor/icons/file.d.ts +0 -2
- package/dist/editor/icons/file.js +0 -6
- package/dist/editor/icons/frame.d.ts +0 -2
- package/dist/editor/icons/frame.js +0 -6
- package/dist/editor/icons/gear.d.ts +0 -2
- package/dist/editor/icons/gear.js +0 -6
- package/dist/editor/icons/gif.d.ts +0 -2
- package/dist/editor/icons/gif.js +0 -6
|
@@ -14,6 +14,7 @@ const get_cli_options_1 = require("../get-cli-options");
|
|
|
14
14
|
const get_composition_with_dimension_override_1 = require("../get-composition-with-dimension-override");
|
|
15
15
|
const get_filename_1 = require("../get-filename");
|
|
16
16
|
const get_final_output_codec_1 = require("../get-final-output-codec");
|
|
17
|
+
const get_render_media_options_1 = require("../get-render-media-options");
|
|
17
18
|
const image_formats_1 = require("../image-formats");
|
|
18
19
|
const log_1 = require("../log");
|
|
19
20
|
const parse_command_line_1 = require("../parse-command-line");
|
|
@@ -21,7 +22,7 @@ const progress_bar_1 = require("../progress-bar");
|
|
|
21
22
|
const setup_cache_1 = require("../setup-cache");
|
|
22
23
|
const truthy_1 = require("../truthy");
|
|
23
24
|
const user_passed_output_location_1 = require("../user-passed-output-location");
|
|
24
|
-
const renderCompFlow = async ({ 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,
|
|
25
|
+
const renderCompFlow = async ({ 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, cancelSignal, }) => {
|
|
25
26
|
var _a;
|
|
26
27
|
const downloads = [];
|
|
27
28
|
const downloadMap = renderer_1.RenderInternals.makeDownloadMap();
|
|
@@ -100,7 +101,7 @@ const renderCompFlow = async ({ remotionRoot, fullEntryPoint, ffmpegExecutable,
|
|
|
100
101
|
outName: (0, user_passed_output_location_1.getUserPassedOutputLocation)(argsAfterComposition),
|
|
101
102
|
uiCodec,
|
|
102
103
|
});
|
|
103
|
-
|
|
104
|
+
(0, get_cli_options_1.validateFfmpegCanUseCodec)(codec, remotionRoot);
|
|
104
105
|
renderer_1.RenderInternals.validateEvenDimensionsWithCodec({
|
|
105
106
|
width: config.width,
|
|
106
107
|
height: config.height,
|
|
@@ -111,7 +112,7 @@ const renderCompFlow = async ({ remotionRoot, fullEntryPoint, ffmpegExecutable,
|
|
|
111
112
|
codec,
|
|
112
113
|
imageSequence: shouldOutputImageSequence,
|
|
113
114
|
compositionName: compositionId,
|
|
114
|
-
defaultExtension: renderer_1.RenderInternals.getFileExtensionFromCodec(codec),
|
|
115
|
+
defaultExtension: renderer_1.RenderInternals.getFileExtensionFromCodec(codec, 'final'),
|
|
115
116
|
args: argsAfterComposition,
|
|
116
117
|
indent,
|
|
117
118
|
fromUi: outputLocationFromUI,
|
|
@@ -134,7 +135,6 @@ const renderCompFlow = async ({ remotionRoot, fullEntryPoint, ffmpegExecutable,
|
|
|
134
135
|
let encodedDoneIn = null;
|
|
135
136
|
let renderedDoneIn = null;
|
|
136
137
|
let stitchStage = 'encoding';
|
|
137
|
-
const actualConcurrency = renderer_1.RenderInternals.getActualConcurrency(concurrency);
|
|
138
138
|
const updateRenderProgress = () => {
|
|
139
139
|
if (totalFrames.length === 0) {
|
|
140
140
|
throw new Error('totalFrames should not be 0');
|
|
@@ -143,7 +143,7 @@ const renderCompFlow = async ({ remotionRoot, fullEntryPoint, ffmpegExecutable,
|
|
|
143
143
|
rendering: {
|
|
144
144
|
frames: renderedFrames,
|
|
145
145
|
totalFrames: totalFrames.length,
|
|
146
|
-
concurrency:
|
|
146
|
+
concurrency: renderer_1.RenderInternals.getActualConcurrency(concurrency),
|
|
147
147
|
doneIn: renderedDoneIn,
|
|
148
148
|
steps,
|
|
149
149
|
},
|
|
@@ -202,7 +202,7 @@ const renderCompFlow = async ({ remotionRoot, fullEntryPoint, ffmpegExecutable,
|
|
|
202
202
|
everyNthFrame,
|
|
203
203
|
envVariables,
|
|
204
204
|
frameRange,
|
|
205
|
-
concurrency
|
|
205
|
+
concurrency,
|
|
206
206
|
puppeteerInstance,
|
|
207
207
|
quality,
|
|
208
208
|
timeoutInMilliseconds: puppeteerTimeout,
|
|
@@ -215,43 +215,17 @@ const renderCompFlow = async ({ remotionRoot, fullEntryPoint, ffmpegExecutable,
|
|
|
215
215
|
downloadMap,
|
|
216
216
|
});
|
|
217
217
|
updateRenderProgress();
|
|
218
|
-
process.stdout.write('\n');
|
|
219
218
|
log_1.Log.infoAdvanced({ indent, logLevel }, chalk_1.chalk.cyan(`▶ ${absoluteOutputFile}`));
|
|
220
219
|
}
|
|
221
|
-
await (0,
|
|
220
|
+
const options = await (0, get_render_media_options_1.getRenderMediaOptions)({
|
|
221
|
+
config,
|
|
222
222
|
outputLocation: absoluteOutputFile,
|
|
223
|
-
composition: {
|
|
224
|
-
...config,
|
|
225
|
-
width: width !== null && width !== void 0 ? width : config.width,
|
|
226
|
-
height: height !== null && height !== void 0 ? height : config.height,
|
|
227
|
-
},
|
|
228
|
-
crf,
|
|
229
|
-
envVariables,
|
|
230
|
-
ffmpegExecutable,
|
|
231
|
-
ffprobeExecutable,
|
|
232
|
-
frameRange,
|
|
233
|
-
inputProps,
|
|
234
|
-
overwrite,
|
|
235
|
-
pixelFormat,
|
|
236
|
-
proResProfile,
|
|
237
|
-
quality,
|
|
238
|
-
dumpBrowserLogs: renderer_1.RenderInternals.isEqualOrBelowLogLevel(logLevel, 'verbose'),
|
|
239
|
-
chromiumOptions,
|
|
240
|
-
timeoutInMilliseconds: config_1.ConfigInternals.getCurrentPuppeteerTimeout(),
|
|
241
|
-
scale,
|
|
242
|
-
port,
|
|
243
|
-
numberOfGifLoops,
|
|
244
|
-
everyNthFrame,
|
|
245
|
-
verbose: renderer_1.RenderInternals.isEqualOrBelowLogLevel(logLevel, 'verbose'),
|
|
246
|
-
muted,
|
|
247
|
-
enforceAudioTrack,
|
|
248
|
-
browserExecutable,
|
|
249
|
-
ffmpegOverride,
|
|
250
|
-
concurrency,
|
|
251
223
|
serveUrl: urlOrBundle,
|
|
252
224
|
codec,
|
|
253
|
-
|
|
254
|
-
|
|
225
|
+
remotionRoot,
|
|
226
|
+
});
|
|
227
|
+
await (0, renderer_1.renderMedia)({
|
|
228
|
+
...options,
|
|
255
229
|
onProgress: (update) => {
|
|
256
230
|
encodedDoneIn = update.encodedDoneIn;
|
|
257
231
|
encodedFrames = update.encodedFrames;
|
|
@@ -273,8 +247,7 @@ const renderCompFlow = async ({ remotionRoot, fullEntryPoint, ffmpegExecutable,
|
|
|
273
247
|
},
|
|
274
248
|
printLog: (...str) => log_1.Log.verboseAdvanced({ indent, logLevel }, ...str),
|
|
275
249
|
});
|
|
276
|
-
|
|
277
|
-
process.stdout.write('\n');
|
|
250
|
+
log_1.Log.infoAdvanced({ indent, logLevel });
|
|
278
251
|
log_1.Log.infoAdvanced({ indent, logLevel }, chalk_1.chalk.cyan(`▶ ${absoluteOutputFile}`));
|
|
279
252
|
for (const line of renderer_1.RenderInternals.perf.getPerf()) {
|
|
280
253
|
log_1.Log.verboseAdvanced({ indent, logLevel }, line);
|
package/dist/render.js
CHANGED
|
@@ -13,6 +13,7 @@ const remotion_1 = require("remotion");
|
|
|
13
13
|
const chalk_1 = require("./chalk");
|
|
14
14
|
const config_1 = require("./config");
|
|
15
15
|
const entry_point_1 = require("./entry-point");
|
|
16
|
+
const get_audio_codec_1 = require("./get-audio-codec");
|
|
16
17
|
const get_cli_options_1 = require("./get-cli-options");
|
|
17
18
|
const get_composition_with_dimension_override_1 = require("./get-composition-with-dimension-override");
|
|
18
19
|
const get_filename_1 = require("./get-filename");
|
|
@@ -112,11 +113,11 @@ const render = async (remotionRoot, args) => {
|
|
|
112
113
|
codec,
|
|
113
114
|
scale,
|
|
114
115
|
});
|
|
116
|
+
const audioCodec = (0, get_audio_codec_1.getResolvedAudioCodec)();
|
|
115
117
|
const relativeOutputLocation = (0, get_filename_1.getOutputFilename)({
|
|
116
|
-
codec,
|
|
117
118
|
imageSequence: shouldOutputImageSequence,
|
|
118
119
|
compositionName: compositionId,
|
|
119
|
-
defaultExtension: renderer_1.RenderInternals.getFileExtensionFromCodec(codec),
|
|
120
|
+
defaultExtension: renderer_1.RenderInternals.getFileExtensionFromCodec(codec, audioCodec),
|
|
120
121
|
args: argsAfterComposition,
|
|
121
122
|
});
|
|
122
123
|
log_1.Log.info(chalk_1.chalk.gray(`Entry point = ${path_1.default.relative(process.cwd(), file)} (${entryPointReason}), Composition = ${compositionId} (${reason}), Codec = ${codec} (${codecReason}), Output = ${relativeOutputLocation}`));
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@remotion/cli",
|
|
3
|
-
"version": "3.3.
|
|
3
|
+
"version": "3.3.43",
|
|
4
4
|
"description": "CLI for Remotion",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"sideEffects": false,
|
|
@@ -22,16 +22,16 @@
|
|
|
22
22
|
"author": "Jonny Burger <jonny@remotion.dev>",
|
|
23
23
|
"license": "SEE LICENSE IN LICENSE.md",
|
|
24
24
|
"dependencies": {
|
|
25
|
-
"@remotion/bundler": "3.3.
|
|
26
|
-
"@remotion/media-utils": "3.3.
|
|
27
|
-
"@remotion/player": "3.3.
|
|
28
|
-
"@remotion/renderer": "3.3.
|
|
25
|
+
"@remotion/bundler": "3.3.43",
|
|
26
|
+
"@remotion/media-utils": "3.3.43",
|
|
27
|
+
"@remotion/player": "3.3.43",
|
|
28
|
+
"@remotion/renderer": "3.3.43",
|
|
29
29
|
"better-opn": "2.1.1",
|
|
30
30
|
"dotenv": "9.0.2",
|
|
31
31
|
"memfs": "3.4.3",
|
|
32
32
|
"minimist": "1.2.6",
|
|
33
33
|
"prompts": "2.4.1",
|
|
34
|
-
"remotion": "3.3.
|
|
34
|
+
"remotion": "3.3.43",
|
|
35
35
|
"semver": "7.3.5",
|
|
36
36
|
"source-map": "0.6.1"
|
|
37
37
|
},
|
|
@@ -71,5 +71,5 @@
|
|
|
71
71
|
"publishConfig": {
|
|
72
72
|
"access": "public"
|
|
73
73
|
},
|
|
74
|
-
"gitHead": "
|
|
74
|
+
"gitHead": "3585e437a30ba001e983539728eb1914172b729c"
|
|
75
75
|
}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.EveryNthFrameSetting = void 0;
|
|
4
|
-
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
-
const NumberSetting_1 = require("./NumberSetting");
|
|
6
|
-
const EveryNthFrameSetting = ({ everyNthFrame, setEveryNthFrameSetting }) => {
|
|
7
|
-
return ((0, jsx_runtime_1.jsx)(NumberSetting_1.NumberSetting, { name: "Every nth frame", min: 1, onValueChanged: setEveryNthFrameSetting, value: everyNthFrame }));
|
|
8
|
-
};
|
|
9
|
-
exports.EveryNthFrameSetting = EveryNthFrameSetting;
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.NumberOfLoopsSetting = void 0;
|
|
4
|
-
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
-
const react_1 = require("react");
|
|
6
|
-
const InputDragger_1 = require("../NewComposition/InputDragger");
|
|
7
|
-
const RemInput_1 = require("../NewComposition/RemInput");
|
|
8
|
-
const layout_1 = require("./layout");
|
|
9
|
-
const min = 0;
|
|
10
|
-
const NumberOfLoopsSetting = ({ numberOfGifLoops, setNumberOfGifLoops }) => {
|
|
11
|
-
const onNumberOfGifLoopsChangedDirectly = (0, react_1.useCallback)((newConcurrency) => {
|
|
12
|
-
setNumberOfGifLoops(newConcurrency);
|
|
13
|
-
}, [setNumberOfGifLoops]);
|
|
14
|
-
const onNumberOfGifLoopsChanged = (0, react_1.useCallback)((e) => {
|
|
15
|
-
setNumberOfGifLoops((q) => {
|
|
16
|
-
const newConcurrency = parseInt(e, 10);
|
|
17
|
-
if (Number.isNaN(newConcurrency)) {
|
|
18
|
-
return q;
|
|
19
|
-
}
|
|
20
|
-
const newConcurrencyClamped = Math.max(newConcurrency, min);
|
|
21
|
-
return newConcurrencyClamped;
|
|
22
|
-
});
|
|
23
|
-
}, [setNumberOfGifLoops]);
|
|
24
|
-
return ((0, jsx_runtime_1.jsxs)("div", { style: layout_1.optionRow, children: [(0, jsx_runtime_1.jsx)("div", { style: layout_1.label, children: "Number of loops" }), (0, jsx_runtime_1.jsx)("div", { style: layout_1.rightRow, children: (0, jsx_runtime_1.jsx)(RemInput_1.RightAlignInput, { children: (0, jsx_runtime_1.jsx)(InputDragger_1.InputDragger, { value: numberOfGifLoops, onTextChange: onNumberOfGifLoopsChanged, placeholder: `${min}-`, onValueChange: onNumberOfGifLoopsChangedDirectly, name: "number-of-gif-loops", step: 1, min: min }) }) })] }));
|
|
25
|
-
};
|
|
26
|
-
exports.NumberOfLoopsSetting = NumberOfLoopsSetting;
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.NumberSetting = void 0;
|
|
4
|
-
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
-
const react_1 = require("react");
|
|
6
|
-
const InputDragger_1 = require("../NewComposition/InputDragger");
|
|
7
|
-
const RemInput_1 = require("../NewComposition/RemInput");
|
|
8
|
-
const layout_1 = require("./layout");
|
|
9
|
-
const NumberSetting = ({ name, value, step, onValueChanged, max, min }) => {
|
|
10
|
-
const onTextChanged = (0, react_1.useCallback)((e) => {
|
|
11
|
-
onValueChanged((q) => {
|
|
12
|
-
const newSetting = parseInt(e, 10);
|
|
13
|
-
if (Number.isNaN(newSetting)) {
|
|
14
|
-
return q;
|
|
15
|
-
}
|
|
16
|
-
return Math.min(max !== null && max !== void 0 ? max : Infinity, Math.max(newSetting, min));
|
|
17
|
-
});
|
|
18
|
-
}, [max, min, onValueChanged]);
|
|
19
|
-
const onValueChange = (0, react_1.useCallback)((newConcurrency) => {
|
|
20
|
-
onValueChanged(newConcurrency);
|
|
21
|
-
}, [onValueChanged]);
|
|
22
|
-
return ((0, jsx_runtime_1.jsxs)("div", { style: layout_1.optionRow, children: [(0, jsx_runtime_1.jsx)("div", { style: layout_1.label, children: name }), (0, jsx_runtime_1.jsx)("div", { style: layout_1.rightRow, children: (0, jsx_runtime_1.jsx)(RemInput_1.RightAlignInput, { children: (0, jsx_runtime_1.jsx)(InputDragger_1.InputDragger, { value: value, name: name.toLowerCase(), onTextChange: onTextChanged, onValueChange: onValueChange, step: step, placeholder: [min, max]
|
|
23
|
-
.map((f) => (f !== null && f !== undefined ? f : ''))
|
|
24
|
-
.join('-'), min: min, max: max }) }) })] }));
|
|
25
|
-
};
|
|
26
|
-
exports.NumberSetting = NumberSetting;
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
export declare type RenderType = 'still' | 'video' | 'audio';
|
|
3
|
-
export declare const RenderModalAdvanced: React.FC<{
|
|
4
|
-
renderMode: RenderType;
|
|
5
|
-
minConcurrency: number;
|
|
6
|
-
maxConcurrency: number;
|
|
7
|
-
setConcurrency: React.Dispatch<React.SetStateAction<number>>;
|
|
8
|
-
concurrency: number;
|
|
9
|
-
setVerboseLogging: React.Dispatch<React.SetStateAction<boolean>>;
|
|
10
|
-
verbose: boolean;
|
|
11
|
-
}>;
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.RenderModalAdvanced = void 0;
|
|
4
|
-
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
-
const react_1 = require("react");
|
|
6
|
-
const Checkbox_1 = require("../Checkbox");
|
|
7
|
-
const layout_1 = require("./layout");
|
|
8
|
-
const NumberSetting_1 = require("./NumberSetting");
|
|
9
|
-
const RenderModalAdvanced = ({ renderMode, maxConcurrency, minConcurrency, setConcurrency, concurrency, setVerboseLogging, verbose, }) => {
|
|
10
|
-
const onVerboseLoggingChanged = (0, react_1.useCallback)((e) => {
|
|
11
|
-
setVerboseLogging(e.target.checked);
|
|
12
|
-
}, [setVerboseLogging]);
|
|
13
|
-
return ((0, jsx_runtime_1.jsxs)("div", { children: [renderMode === 'still' ? null : ((0, jsx_runtime_1.jsx)(NumberSetting_1.NumberSetting, { min: minConcurrency, max: maxConcurrency, step: 1, name: "Concurrency", onValueChanged: setConcurrency, value: concurrency })), (0, jsx_runtime_1.jsxs)("div", { style: layout_1.optionRow, children: [(0, jsx_runtime_1.jsx)("div", { style: layout_1.label, children: "Verbose logging" }), (0, jsx_runtime_1.jsx)("div", { style: layout_1.rightRow, children: (0, jsx_runtime_1.jsx)(Checkbox_1.Checkbox, { checked: verbose, onChange: onVerboseLoggingChanged }) })] })] }));
|
|
14
|
-
};
|
|
15
|
-
exports.RenderModalAdvanced = RenderModalAdvanced;
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
/// <reference types="react" />
|
|
2
|
-
import type { RenderType } from './RenderModalAdvanced';
|
|
3
|
-
export declare const RenderModalAudio: React.FC<{
|
|
4
|
-
muted: boolean;
|
|
5
|
-
setMuted: React.Dispatch<React.SetStateAction<boolean>>;
|
|
6
|
-
renderMode: RenderType;
|
|
7
|
-
enforceAudioTrack: boolean;
|
|
8
|
-
setEnforceAudioTrackState: React.Dispatch<React.SetStateAction<boolean>>;
|
|
9
|
-
shouldHaveCustomTargetAudioBitrate: boolean;
|
|
10
|
-
setShouldHaveCustomTargetAudioBitrate: React.Dispatch<React.SetStateAction<boolean>>;
|
|
11
|
-
setCustomTargetAudioBitrateValue: React.Dispatch<React.SetStateAction<string>>;
|
|
12
|
-
customTargetAudioBitrate: string;
|
|
13
|
-
}>;
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.RenderModalAudio = void 0;
|
|
4
|
-
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
-
const react_1 = require("react");
|
|
6
|
-
const Checkbox_1 = require("../Checkbox");
|
|
7
|
-
const RemInput_1 = require("../NewComposition/RemInput");
|
|
8
|
-
const EnforceAudioTrackSetting_1 = require("./EnforceAudioTrackSetting");
|
|
9
|
-
const layout_1 = require("./layout");
|
|
10
|
-
const MutedSetting_1 = require("./MutedSetting");
|
|
11
|
-
const RenderModalHr_1 = require("./RenderModalHr");
|
|
12
|
-
const RenderModalAudio = ({ muted, setMuted, renderMode, enforceAudioTrack, setEnforceAudioTrackState, setShouldHaveCustomTargetAudioBitrate, shouldHaveCustomTargetAudioBitrate, setCustomTargetAudioBitrateValue, customTargetAudioBitrate, }) => {
|
|
13
|
-
const onShouldHaveTargetAudioBitrateChanged = (0, react_1.useCallback)((e) => {
|
|
14
|
-
setShouldHaveCustomTargetAudioBitrate(e.target.checked);
|
|
15
|
-
}, [setShouldHaveCustomTargetAudioBitrate]);
|
|
16
|
-
// TODO: When rendering, mp3 does not support the "crf" option. Ignoring.
|
|
17
|
-
const onTargetAudioBitrateChanged = (0, react_1.useCallback)((e) => {
|
|
18
|
-
setCustomTargetAudioBitrateValue(e.target.value);
|
|
19
|
-
}, [setCustomTargetAudioBitrateValue]);
|
|
20
|
-
return ((0, jsx_runtime_1.jsxs)("div", { children: [renderMode === 'video' && ((0, jsx_runtime_1.jsx)(MutedSetting_1.MutedSetting, { muted: muted, setMuted: setMuted })), renderMode === 'video' && ((0, jsx_runtime_1.jsx)(EnforceAudioTrackSetting_1.EnforceAudioTrackSetting, { enforceAudioTrack: enforceAudioTrack, setEnforceAudioTrack: setEnforceAudioTrackState })), (0, jsx_runtime_1.jsx)(RenderModalHr_1.RenderModalHr, {}), renderMode === 'still' ? null : ((0, jsx_runtime_1.jsxs)("div", { style: layout_1.optionRow, children: [(0, jsx_runtime_1.jsx)("div", { style: layout_1.label, children: "Custom audio bitrate" }), (0, jsx_runtime_1.jsx)("div", { style: layout_1.rightRow, children: (0, jsx_runtime_1.jsx)(Checkbox_1.Checkbox, { checked: shouldHaveCustomTargetAudioBitrate, onChange: onShouldHaveTargetAudioBitrateChanged }) })] })), shouldHaveCustomTargetAudioBitrate && renderMode !== 'still' ? ((0, jsx_runtime_1.jsxs)("div", { style: layout_1.optionRow, children: [(0, jsx_runtime_1.jsx)("div", { style: layout_1.label, children: "Target audio bitrate" }), (0, jsx_runtime_1.jsx)("div", { style: layout_1.rightRow, children: (0, jsx_runtime_1.jsx)("div", { children: (0, jsx_runtime_1.jsx)(RemInput_1.RemotionInput, { style: layout_1.input, value: customTargetAudioBitrate, onChange: onTargetAudioBitrateChanged }) }) })] })) : null] }));
|
|
21
|
-
};
|
|
22
|
-
exports.RenderModalAudio = RenderModalAudio;
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import type { Codec, ProResProfile } from '@remotion/renderer';
|
|
2
|
-
import React from 'react';
|
|
3
|
-
import type { TComposition } from 'remotion';
|
|
4
|
-
import type { SegmentedControlItem } from '../SegmentedControl';
|
|
5
|
-
import type { RenderType } from './RenderModalAdvanced';
|
|
6
|
-
export declare const RenderModalBasic: React.FC<{
|
|
7
|
-
renderMode: RenderType;
|
|
8
|
-
imageFormatOptions: SegmentedControlItem[];
|
|
9
|
-
codec: Codec;
|
|
10
|
-
setCodec: (newCodec: Codec) => void;
|
|
11
|
-
outName: string;
|
|
12
|
-
proResProfile: ProResProfile | null;
|
|
13
|
-
setProResProfile: React.Dispatch<React.SetStateAction<ProResProfile>>;
|
|
14
|
-
frame: number;
|
|
15
|
-
setFrame: React.Dispatch<React.SetStateAction<number>>;
|
|
16
|
-
currentComposition: TComposition<unknown>;
|
|
17
|
-
setOutName: (value: React.SetStateAction<string>) => void;
|
|
18
|
-
setEndFrame: React.Dispatch<React.SetStateAction<number | null>>;
|
|
19
|
-
startFrame: number;
|
|
20
|
-
endFrame: number;
|
|
21
|
-
setStartFrame: React.Dispatch<React.SetStateAction<number | null>>;
|
|
22
|
-
}>;
|
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.RenderModalBasic = void 0;
|
|
4
|
-
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
-
const client_1 = require("@remotion/renderer/client");
|
|
6
|
-
const react_1 = require("react");
|
|
7
|
-
const use_file_existence_1 = require("../../helpers/use-file-existence");
|
|
8
|
-
const Checkmark_1 = require("../../icons/Checkmark");
|
|
9
|
-
const ComboBox_1 = require("../NewComposition/ComboBox");
|
|
10
|
-
const InputDragger_1 = require("../NewComposition/InputDragger");
|
|
11
|
-
const RemInput_1 = require("../NewComposition/RemInput");
|
|
12
|
-
const ValidationMessage_1 = require("../NewComposition/ValidationMessage");
|
|
13
|
-
const SegmentedControl_1 = require("../SegmentedControl");
|
|
14
|
-
const FrameRangeSetting_1 = require("./FrameRangeSetting");
|
|
15
|
-
const human_readable_codec_1 = require("./human-readable-codec");
|
|
16
|
-
const layout_1 = require("./layout");
|
|
17
|
-
const RenderModalBasic = ({ renderMode, imageFormatOptions, outName, codec, setCodec, proResProfile, setProResProfile, frame, setFrame, currentComposition, setOutName, setEndFrame, endFrame, setStartFrame, startFrame, }) => {
|
|
18
|
-
const existence = (0, use_file_existence_1.useFileExistence)(outName);
|
|
19
|
-
const videoCodecOptions = (0, react_1.useMemo)(() => {
|
|
20
|
-
return client_1.BrowserSafeApis.validCodecs
|
|
21
|
-
.filter((c) => {
|
|
22
|
-
return client_1.BrowserSafeApis.isAudioCodec(c) === (renderMode === 'audio');
|
|
23
|
-
})
|
|
24
|
-
.map((codecOption) => {
|
|
25
|
-
return {
|
|
26
|
-
label: (0, human_readable_codec_1.humanReadableCodec)(codecOption),
|
|
27
|
-
onClick: () => setCodec(codecOption),
|
|
28
|
-
key: codecOption,
|
|
29
|
-
leftItem: codec === codecOption ? (0, jsx_runtime_1.jsx)(Checkmark_1.Checkmark, {}) : null,
|
|
30
|
-
id: codecOption,
|
|
31
|
-
keyHint: null,
|
|
32
|
-
quickSwitcherLabel: null,
|
|
33
|
-
subMenu: null,
|
|
34
|
-
type: 'item',
|
|
35
|
-
value: codecOption,
|
|
36
|
-
};
|
|
37
|
-
});
|
|
38
|
-
}, [renderMode, setCodec, codec]);
|
|
39
|
-
const proResProfileOptions = (0, react_1.useMemo)(() => {
|
|
40
|
-
return client_1.BrowserSafeApis.proResProfileOptions.map((option) => {
|
|
41
|
-
return {
|
|
42
|
-
label: option,
|
|
43
|
-
onClick: () => setProResProfile(option),
|
|
44
|
-
key: option,
|
|
45
|
-
selected: proResProfile === option,
|
|
46
|
-
};
|
|
47
|
-
});
|
|
48
|
-
}, [proResProfile, setProResProfile]);
|
|
49
|
-
const onFrameSetDirectly = (0, react_1.useCallback)((newFrame) => {
|
|
50
|
-
setFrame(newFrame);
|
|
51
|
-
}, [setFrame]);
|
|
52
|
-
const onFrameChanged = (0, react_1.useCallback)((e) => {
|
|
53
|
-
setFrame((q) => {
|
|
54
|
-
const newFrame = parseFloat(e);
|
|
55
|
-
if (Number.isNaN(newFrame)) {
|
|
56
|
-
return q;
|
|
57
|
-
}
|
|
58
|
-
return newFrame;
|
|
59
|
-
});
|
|
60
|
-
}, [setFrame]);
|
|
61
|
-
const onValueChange = (0, react_1.useCallback)((e) => {
|
|
62
|
-
setOutName(e.target.value);
|
|
63
|
-
}, [setOutName]);
|
|
64
|
-
return ((0, jsx_runtime_1.jsxs)("div", { children: [renderMode === 'still' ? ((0, jsx_runtime_1.jsxs)("div", { style: layout_1.optionRow, children: [(0, jsx_runtime_1.jsx)("div", { style: layout_1.label, children: "Format" }), (0, jsx_runtime_1.jsx)("div", { style: layout_1.rightRow, children: (0, jsx_runtime_1.jsx)(SegmentedControl_1.SegmentedControl, { items: imageFormatOptions, needsWrapping: true }) })] })) : ((0, jsx_runtime_1.jsxs)("div", { style: layout_1.optionRow, children: [(0, jsx_runtime_1.jsx)("div", { style: layout_1.label, children: "Codec" }), (0, jsx_runtime_1.jsx)("div", { style: layout_1.rightRow, children: (0, jsx_runtime_1.jsx)(ComboBox_1.Combobox, { values: videoCodecOptions, selectedId: codec, title: "Codec" }) })] })), renderMode === 'still' && currentComposition.durationInFrames > 1 ? ((0, jsx_runtime_1.jsxs)("div", { style: layout_1.optionRow, children: [(0, jsx_runtime_1.jsx)("div", { style: layout_1.label, children: "Frame" }), (0, jsx_runtime_1.jsx)("div", { style: layout_1.rightRow, children: (0, jsx_runtime_1.jsx)(RemInput_1.RightAlignInput, { children: (0, jsx_runtime_1.jsx)(InputDragger_1.InputDragger, { value: frame, onTextChange: onFrameChanged, placeholder: `0-${currentComposition.durationInFrames - 1}`, onValueChange: onFrameSetDirectly, name: "frame", step: 1, min: 0, max: currentComposition.durationInFrames - 1 }) }) })] })) : null, renderMode === 'video' && codec === 'prores' ? ((0, jsx_runtime_1.jsxs)("div", { style: layout_1.optionRow, children: [(0, jsx_runtime_1.jsx)("div", { style: layout_1.label, children: "ProRes profile" }), (0, jsx_runtime_1.jsx)("div", { style: layout_1.rightRow, children: (0, jsx_runtime_1.jsx)(SegmentedControl_1.SegmentedControl, { items: proResProfileOptions, needsWrapping: true }) })] })) : null, renderMode === 'still' ? null : ((0, jsx_runtime_1.jsx)(FrameRangeSetting_1.FrameRangeSetting, { durationInFrames: currentComposition.durationInFrames, endFrame: endFrame, setEndFrame: setEndFrame, setStartFrame: setStartFrame, startFrame: startFrame })), (0, jsx_runtime_1.jsxs)("div", { style: layout_1.optionRow, children: [(0, jsx_runtime_1.jsx)("div", { style: layout_1.label, children: "Output name" }), (0, jsx_runtime_1.jsx)("div", { style: layout_1.rightRow, children: (0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)(RemInput_1.RemotionInput
|
|
65
|
-
// TODO: Validate and reject folders or weird file names
|
|
66
|
-
, {
|
|
67
|
-
// TODO: Validate and reject folders or weird file names
|
|
68
|
-
warning: existence, style: layout_1.input, type: "text", value: outName, onChange: onValueChange }), existence ? ((0, jsx_runtime_1.jsx)(ValidationMessage_1.ValidationMessage, { align: "flex-end", message: "Will be overwritten" })) : null] }) })] })] }));
|
|
69
|
-
};
|
|
70
|
-
exports.RenderModalBasic = RenderModalBasic;
|
|
File without changes
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
export declare const RenderModalGif: React.FC<{
|
|
3
|
-
limitNumberOfGifLoops: boolean;
|
|
4
|
-
setLimitNumberOfGifLoops: (value: React.SetStateAction<boolean>) => void;
|
|
5
|
-
numberOfGifLoopsSetting: number;
|
|
6
|
-
setNumberOfGifLoopsSetting: React.Dispatch<React.SetStateAction<number>>;
|
|
7
|
-
everyNthFrame: number;
|
|
8
|
-
setEveryNthFrameSetting: React.Dispatch<React.SetStateAction<number>>;
|
|
9
|
-
}>;
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.RenderModalGif = void 0;
|
|
4
|
-
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
-
const react_1 = require("react");
|
|
6
|
-
const Checkbox_1 = require("../Checkbox");
|
|
7
|
-
const layout_1 = require("./layout");
|
|
8
|
-
const NumberOfLoopsSetting_1 = require("./NumberOfLoopsSetting");
|
|
9
|
-
const NumberSetting_1 = require("./NumberSetting");
|
|
10
|
-
const RenderModalGif = ({ everyNthFrame, limitNumberOfGifLoops, numberOfGifLoopsSetting, setEveryNthFrameSetting, setLimitNumberOfGifLoops, setNumberOfGifLoopsSetting, }) => {
|
|
11
|
-
const onShouldLimitNumberOfGifLoops = (0, react_1.useCallback)((e) => {
|
|
12
|
-
setLimitNumberOfGifLoops(e.target.checked);
|
|
13
|
-
}, [setLimitNumberOfGifLoops]);
|
|
14
|
-
return ((0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)(NumberSetting_1.NumberSetting, { name: "Every nth frame", min: 1, onValueChanged: setEveryNthFrameSetting, value: everyNthFrame, step: 1 }), (0, jsx_runtime_1.jsxs)("div", { style: layout_1.optionRow, children: [(0, jsx_runtime_1.jsx)("div", { style: layout_1.label, children: "Limit GIF loops" }), (0, jsx_runtime_1.jsx)("div", { style: layout_1.rightRow, children: (0, jsx_runtime_1.jsx)(Checkbox_1.Checkbox, { checked: limitNumberOfGifLoops, onChange: onShouldLimitNumberOfGifLoops }) })] }), limitNumberOfGifLoops ? ((0, jsx_runtime_1.jsx)(NumberOfLoopsSetting_1.NumberOfLoopsSetting, { numberOfGifLoops: numberOfGifLoopsSetting, setNumberOfGifLoops: setNumberOfGifLoopsSetting })) : null] }));
|
|
15
|
-
};
|
|
16
|
-
exports.RenderModalGif = RenderModalGif;
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.RenderModalHr = void 0;
|
|
4
|
-
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
-
const hrStyle = {
|
|
6
|
-
margin: '0 0 0 0',
|
|
7
|
-
padding: '0 0 0 0',
|
|
8
|
-
border: 'none',
|
|
9
|
-
borderTop: '1px solid #000',
|
|
10
|
-
marginRight: 16,
|
|
11
|
-
marginLeft: 16,
|
|
12
|
-
marginTop: 8,
|
|
13
|
-
marginBottom: 8,
|
|
14
|
-
};
|
|
15
|
-
const RenderModalHr = () => {
|
|
16
|
-
return (0, jsx_runtime_1.jsx)("div", { style: hrStyle });
|
|
17
|
-
};
|
|
18
|
-
exports.RenderModalHr = RenderModalHr;
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
/// <reference types="react" />
|
|
2
|
-
import type { PixelFormat, StillImageFormat } from '@remotion/renderer';
|
|
3
|
-
import type { SegmentedControlItem } from '../SegmentedControl';
|
|
4
|
-
import type { RenderType } from './RenderModalAdvanced';
|
|
5
|
-
declare const qualityControlModes: readonly ["crf", "bitrate"];
|
|
6
|
-
export declare type QualityControl = typeof qualityControlModes[number];
|
|
7
|
-
export declare const RenderModalPicture: React.FC<{
|
|
8
|
-
renderMode: RenderType;
|
|
9
|
-
scale: number;
|
|
10
|
-
setScale: React.Dispatch<React.SetStateAction<number>>;
|
|
11
|
-
pixelFormat: PixelFormat;
|
|
12
|
-
setPixelFormat: React.Dispatch<React.SetStateAction<PixelFormat>>;
|
|
13
|
-
imageFormatOptions: SegmentedControlItem[];
|
|
14
|
-
setQualityControl: React.Dispatch<React.SetStateAction<QualityControl>>;
|
|
15
|
-
qualityControlType: QualityControl;
|
|
16
|
-
videoImageFormat: StillImageFormat;
|
|
17
|
-
stillImageFormat: StillImageFormat;
|
|
18
|
-
setQuality: React.Dispatch<React.SetStateAction<number>>;
|
|
19
|
-
quality: number;
|
|
20
|
-
maxCrf: number;
|
|
21
|
-
minCrf: number;
|
|
22
|
-
setCrf: React.Dispatch<React.SetStateAction<number>>;
|
|
23
|
-
shouldDisplayCrfOption: boolean;
|
|
24
|
-
setCustomTargetVideoBitrateValue: React.Dispatch<React.SetStateAction<string>>;
|
|
25
|
-
crf: number;
|
|
26
|
-
customTargetVideoBitrate: string;
|
|
27
|
-
}>;
|
|
28
|
-
export {};
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.RenderModalPicture = void 0;
|
|
4
|
-
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
-
const client_1 = require("@remotion/renderer/client");
|
|
6
|
-
const react_1 = require("react");
|
|
7
|
-
const Checkmark_1 = require("../../icons/Checkmark");
|
|
8
|
-
const ComboBox_1 = require("../NewComposition/ComboBox");
|
|
9
|
-
const RemInput_1 = require("../NewComposition/RemInput");
|
|
10
|
-
const SegmentedControl_1 = require("../SegmentedControl");
|
|
11
|
-
const layout_1 = require("./layout");
|
|
12
|
-
const NumberSetting_1 = require("./NumberSetting");
|
|
13
|
-
const QualitySetting_1 = require("./QualitySetting");
|
|
14
|
-
const RenderModalHr_1 = require("./RenderModalHr");
|
|
15
|
-
const ScaleSetting_1 = require("./ScaleSetting");
|
|
16
|
-
const qualityControlModes = ['crf', 'bitrate'];
|
|
17
|
-
const RenderModalPicture = ({ renderMode, scale, setScale, pixelFormat, setPixelFormat, imageFormatOptions, setQualityControl, qualityControlType, videoImageFormat, setQuality, quality, maxCrf, minCrf, setCrf, shouldDisplayCrfOption, setCustomTargetVideoBitrateValue, crf, customTargetVideoBitrate, stillImageFormat, }) => {
|
|
18
|
-
const pixelFormatOptions = (0, react_1.useMemo)(() => {
|
|
19
|
-
return client_1.BrowserSafeApis.validPixelFormats.map((option) => {
|
|
20
|
-
return {
|
|
21
|
-
label: option,
|
|
22
|
-
onClick: () => setPixelFormat(option),
|
|
23
|
-
key: option,
|
|
24
|
-
id: option,
|
|
25
|
-
keyHint: null,
|
|
26
|
-
leftItem: pixelFormat === option ? (0, jsx_runtime_1.jsx)(Checkmark_1.Checkmark, {}) : null,
|
|
27
|
-
quickSwitcherLabel: null,
|
|
28
|
-
subMenu: null,
|
|
29
|
-
type: 'item',
|
|
30
|
-
value: option,
|
|
31
|
-
};
|
|
32
|
-
});
|
|
33
|
-
}, [pixelFormat, setPixelFormat]);
|
|
34
|
-
const qualityControlOptions = (0, react_1.useMemo)(() => {
|
|
35
|
-
return qualityControlModes.map((option) => {
|
|
36
|
-
return {
|
|
37
|
-
label: option === 'crf' ? 'CRF' : 'Bitrate',
|
|
38
|
-
onClick: () => setQualityControl(option),
|
|
39
|
-
key: option,
|
|
40
|
-
selected: qualityControlType === option,
|
|
41
|
-
};
|
|
42
|
-
});
|
|
43
|
-
}, [qualityControlType, setQualityControl]);
|
|
44
|
-
const onTargetVideoBitrateChanged = (0, react_1.useCallback)((e) => {
|
|
45
|
-
setCustomTargetVideoBitrateValue(e.target.value);
|
|
46
|
-
}, [setCustomTargetVideoBitrateValue]);
|
|
47
|
-
return ((0, jsx_runtime_1.jsxs)("div", { children: [renderMode === 'video' ? ((0, jsx_runtime_1.jsxs)("div", { style: layout_1.optionRow, children: [(0, jsx_runtime_1.jsx)("div", { style: layout_1.label, children: "Image Format" }), (0, jsx_runtime_1.jsx)("div", { style: layout_1.rightRow, children: (0, jsx_runtime_1.jsx)(SegmentedControl_1.SegmentedControl, { items: imageFormatOptions, needsWrapping: false }) })] })) : null, renderMode === 'video' && videoImageFormat === 'jpeg' && ((0, jsx_runtime_1.jsx)(QualitySetting_1.QualitySetting, { setQuality: setQuality, quality: quality })), renderMode === 'still' && stillImageFormat === 'jpeg' && ((0, jsx_runtime_1.jsx)(QualitySetting_1.QualitySetting, { setQuality: setQuality, quality: quality })), (0, jsx_runtime_1.jsx)(RenderModalHr_1.RenderModalHr, {}), renderMode === 'video' ? ((0, jsx_runtime_1.jsxs)("div", { style: layout_1.optionRow, children: [(0, jsx_runtime_1.jsx)("div", { style: layout_1.label, children: "Quality control" }), (0, jsx_runtime_1.jsx)("div", { style: layout_1.rightRow, children: (0, jsx_runtime_1.jsx)(SegmentedControl_1.SegmentedControl, { items: qualityControlOptions, needsWrapping: true }) })] })) : null, shouldDisplayCrfOption &&
|
|
48
|
-
qualityControlType === 'crf' &&
|
|
49
|
-
renderMode !== 'still' ? ((0, jsx_runtime_1.jsx)(NumberSetting_1.NumberSetting, { min: minCrf, max: maxCrf, name: "CRF", onValueChanged: setCrf, value: crf, step: 1 })) : null, qualityControlType === 'bitrate' && renderMode !== 'still' ? ((0, jsx_runtime_1.jsxs)("div", { style: layout_1.optionRow, children: [(0, jsx_runtime_1.jsx)("div", { style: layout_1.label, children: "Target video bitrate" }), (0, jsx_runtime_1.jsx)("div", { style: layout_1.rightRow, children: (0, jsx_runtime_1.jsx)("div", { children: (0, jsx_runtime_1.jsx)(RemInput_1.RemotionInput, { style: layout_1.input, value: customTargetVideoBitrate, onChange: onTargetVideoBitrateChanged }) }) })] })) : null, (0, jsx_runtime_1.jsx)(RenderModalHr_1.RenderModalHr, {}), renderMode === 'video' ? ((0, jsx_runtime_1.jsx)(ScaleSetting_1.ScaleSetting, { scale: scale, setScale: setScale })) : null, (0, jsx_runtime_1.jsx)(RenderModalHr_1.RenderModalHr, {}), renderMode === 'video' ? ((0, jsx_runtime_1.jsxs)("div", { style: layout_1.optionRow, children: [(0, jsx_runtime_1.jsx)("div", { style: layout_1.label, children: "Pixel format" }), (0, jsx_runtime_1.jsx)("div", { style: layout_1.rightRow, children: (0, jsx_runtime_1.jsx)(ComboBox_1.Combobox, { values: pixelFormatOptions, selectedId: pixelFormat, title: "Pixel Format" }) })] })) : null] }));
|
|
50
|
-
};
|
|
51
|
-
exports.RenderModalPicture = RenderModalPicture;
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.humanReadableCodec = void 0;
|
|
4
|
-
const humanReadableCodec = (codec) => {
|
|
5
|
-
if (codec === 'aac') {
|
|
6
|
-
return 'AAC';
|
|
7
|
-
}
|
|
8
|
-
if (codec === 'mp3') {
|
|
9
|
-
return 'MP3';
|
|
10
|
-
}
|
|
11
|
-
if (codec === 'gif') {
|
|
12
|
-
return 'GIF';
|
|
13
|
-
}
|
|
14
|
-
if (codec === 'h264') {
|
|
15
|
-
return 'H.264';
|
|
16
|
-
}
|
|
17
|
-
if (codec === 'h264-mkv') {
|
|
18
|
-
return 'H.264 MKV';
|
|
19
|
-
}
|
|
20
|
-
if (codec === 'h265') {
|
|
21
|
-
return 'H.265';
|
|
22
|
-
}
|
|
23
|
-
if (codec === 'prores') {
|
|
24
|
-
return 'ProRes';
|
|
25
|
-
}
|
|
26
|
-
if (codec === 'vp8') {
|
|
27
|
-
return 'WebM VP8';
|
|
28
|
-
}
|
|
29
|
-
if (codec === 'vp9') {
|
|
30
|
-
return 'WebM VP9';
|
|
31
|
-
}
|
|
32
|
-
if (codec === 'wav') {
|
|
33
|
-
return 'Waveform';
|
|
34
|
-
}
|
|
35
|
-
};
|
|
36
|
-
exports.humanReadableCodec = humanReadableCodec;
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.AudioIcon = void 0;
|
|
4
|
-
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
-
const AudioIcon = (props) => ((0, jsx_runtime_1.jsx)("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 512 512", ...props, children: (0, jsx_runtime_1.jsx)("path", { fill: "currentcolor", d: "M243 32.32C105.5 39.15 0 157.8 0 295.5v120.4C0 451.3 28.63 480 64 480h32c17.62 0 32-14.38 32-32V288c0-17.62-14.38-32-32-32H64c-10.79 0-20.8 2.9-29.72 7.7 14.2-106.8 100.5-193.9 210.4-199.4 120.5-5.965 221.7 83.92 234 199.9-9.08-5.1-19.48-8.2-30.68-8.2h-32c-17.62 0-32 14.38-32 32v160c0 17.62 14.38 32 32 32h32c35.38 0 64-28.75 64-64.13V287.9c0-145.4-122-262.88-269-255.58zM64 288h32v160H64c-17.62 0-32-14.5-32-32.13v-95.75C32 302.5 46.38 288 64 288zm416 127.9c0 17.6-14.4 32.1-32 32.1h-32V288h32c17.62 0 32 14.5 32 32.13v95.77z" }) }));
|
|
6
|
-
exports.AudioIcon = AudioIcon;
|