@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/benchmark.js
CHANGED
|
@@ -1,11 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
3
|
exports.benchmarkCommand = void 0;
|
|
7
4
|
const renderer_1 = require("@remotion/renderer");
|
|
8
|
-
const path_1 = __importDefault(require("path"));
|
|
9
5
|
const chalk_1 = require("./chalk");
|
|
10
6
|
const config_1 = require("./config");
|
|
11
7
|
const entry_point_1 = require("./entry-point");
|
|
@@ -97,7 +93,6 @@ const benchmarkCommand = async (remotionRoot, args) => {
|
|
|
97
93
|
log_1.Log.info(`$ remotion benchmark <entry file>`);
|
|
98
94
|
process.exit(1);
|
|
99
95
|
}
|
|
100
|
-
const fullPath = path_1.default.join(process.cwd(), file);
|
|
101
96
|
const { inputProps, envVariables, browserExecutable, ffmpegExecutable, ffprobeExecutable, chromiumOptions, port, puppeteerTimeout, browser, scale, publicDir, } = await (0, get_cli_options_1.getCliOptions)({
|
|
102
97
|
isLambda: false,
|
|
103
98
|
type: 'series',
|
|
@@ -111,7 +106,7 @@ const benchmarkCommand = async (remotionRoot, args) => {
|
|
|
111
106
|
forceDeviceScaleFactor: scale,
|
|
112
107
|
});
|
|
113
108
|
const { urlOrBundle: bundleLocation, cleanup: cleanupBundle } = await (0, setup_cache_1.bundleOnCliOrTakeServeUrl)({
|
|
114
|
-
fullPath,
|
|
109
|
+
fullPath: file,
|
|
115
110
|
publicDir,
|
|
116
111
|
remotionRoot,
|
|
117
112
|
steps: ['bundling'],
|
package/dist/compositions.js
CHANGED
|
@@ -1,11 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
3
|
exports.listCompositionsCommand = void 0;
|
|
7
4
|
const renderer_1 = require("@remotion/renderer");
|
|
8
|
-
const path_1 = __importDefault(require("path"));
|
|
9
5
|
const entry_point_1 = require("./entry-point");
|
|
10
6
|
const get_cli_options_1 = require("./get-cli-options");
|
|
11
7
|
const get_config_file_name_1 = require("./get-config-file-name");
|
|
@@ -22,7 +18,6 @@ const listCompositionsCommand = async (remotionRoot, args) => {
|
|
|
22
18
|
}
|
|
23
19
|
log_1.Log.verbose('Entry point:', file, 'reason:', reason);
|
|
24
20
|
const downloadMap = renderer_1.RenderInternals.makeDownloadMap();
|
|
25
|
-
const fullPath = path_1.default.join(process.cwd(), file);
|
|
26
21
|
await (0, get_config_file_name_1.loadConfig)(remotionRoot);
|
|
27
22
|
const { browserExecutable, ffmpegExecutable, ffprobeExecutable, chromiumOptions, envVariables, inputProps, puppeteerTimeout, port, publicDir, } = await (0, get_cli_options_1.getCliOptions)({
|
|
28
23
|
isLambda: false,
|
|
@@ -31,7 +26,7 @@ const listCompositionsCommand = async (remotionRoot, args) => {
|
|
|
31
26
|
});
|
|
32
27
|
const { urlOrBundle: bundled, cleanup: cleanupBundle } = await (0, setup_cache_1.bundleOnCliOrTakeServeUrl)({
|
|
33
28
|
remotionRoot,
|
|
34
|
-
fullPath,
|
|
29
|
+
fullPath: file,
|
|
35
30
|
steps: ['bundling'],
|
|
36
31
|
publicDir,
|
|
37
32
|
});
|
package/dist/config/index.js
CHANGED
|
@@ -85,63 +85,77 @@ const timeout_2 = require("./timeout");
|
|
|
85
85
|
const webpack_caching_2 = require("./webpack-caching");
|
|
86
86
|
const webpack_poll_1 = require("./webpack-poll");
|
|
87
87
|
const width_1 = require("./width");
|
|
88
|
+
const Preview = {
|
|
89
|
+
setMaxTimelineTracks: max_timeline_tracks_2.setMaxTimelineTracks,
|
|
90
|
+
setKeyboardShortcutsEnabled: keyboard_shortcuts_1.setKeyboardShortcutsEnabled,
|
|
91
|
+
setNumberOfSharedAudioTags: number_of_shared_audio_tags_1.setNumberOfSharedAudioTags,
|
|
92
|
+
setWebpackPollingInMilliseconds: webpack_poll_1.setWebpackPollingInMilliseconds,
|
|
93
|
+
setShouldOpenBrowser: open_browser_1.setShouldOpenBrowser,
|
|
94
|
+
};
|
|
95
|
+
const Bundling = {
|
|
96
|
+
overrideWebpackConfig: override_webpack_2.overrideWebpackConfig,
|
|
97
|
+
setCachingEnabled: webpack_caching_2.setWebpackCaching,
|
|
98
|
+
setPort: preview_server_2.setPort,
|
|
99
|
+
setPublicDir: public_dir_1.setPublicDir,
|
|
100
|
+
setEntryPoint: entry_point_1.setEntryPoint,
|
|
101
|
+
};
|
|
102
|
+
const Log = {
|
|
103
|
+
setLevel: log_1.setLogLevel,
|
|
104
|
+
};
|
|
105
|
+
const Puppeteer = {
|
|
106
|
+
setBrowserExecutable: browser_executable_2.setBrowserExecutable,
|
|
107
|
+
setTimeoutInMilliseconds: timeout_2.setPuppeteerTimeout,
|
|
108
|
+
setDelayRenderTimeoutInMilliseconds: timeout_2.setPuppeteerTimeout,
|
|
109
|
+
setChromiumDisableWebSecurity: chromium_flags_2.setChromiumDisableWebSecurity,
|
|
110
|
+
setChromiumIgnoreCertificateErrors: chromium_flags_2.setChromiumIgnoreCertificateErrors,
|
|
111
|
+
setChromiumHeadlessMode: chromium_flags_2.setChromiumHeadlessMode,
|
|
112
|
+
setChromiumOpenGlRenderer: chromium_flags_2.setChromiumOpenGlRenderer,
|
|
113
|
+
};
|
|
114
|
+
const Rendering = {
|
|
115
|
+
setDotEnvLocation: env_file_2.setDotEnvLocation,
|
|
116
|
+
setConcurrency: concurrency_2.setConcurrency,
|
|
117
|
+
setQuality: quality_2.setQuality,
|
|
118
|
+
setImageFormat: image_format_2.setImageFormat,
|
|
119
|
+
setFrameRange: frame_range_2.setFrameRange,
|
|
120
|
+
setFfmpegExecutable: ffmpeg_executable_2.setFfmpegExecutable,
|
|
121
|
+
setFfprobeExecutable: ffmpeg_executable_2.setFfprobeExecutable,
|
|
122
|
+
setScale: scale_2.setScale,
|
|
123
|
+
setEveryNthFrame: every_nth_frame_1.setEveryNthFrame,
|
|
124
|
+
setNumberOfGifLoops: number_of_gif_loops_1.setNumberOfGifLoops,
|
|
125
|
+
setMuted: muted_1.setMuted,
|
|
126
|
+
setEnforceAudioTrack: enforce_audio_track_1.setEnforceAudioTrack,
|
|
127
|
+
};
|
|
128
|
+
const Output = {
|
|
129
|
+
setOutputLocation: output_location_2.setOutputLocation,
|
|
130
|
+
setOverwriteOutput: overwrite_2.setOverwriteOutput,
|
|
131
|
+
setPixelFormat: pixel_format_2.setPixelFormat,
|
|
132
|
+
setOutputFormat: codec_2.setOutputFormat,
|
|
133
|
+
setCodec: codec_2.setCodec,
|
|
134
|
+
setCrf: crf_1.setCrf,
|
|
135
|
+
setImageSequence: image_sequence_2.setImageSequence,
|
|
136
|
+
setProResProfile: prores_profile_2.setProResProfile,
|
|
137
|
+
setAudioBitrate: bitrate_1.setAudioBitrate,
|
|
138
|
+
setVideoBitrate: bitrate_1.setVideoBitrate,
|
|
139
|
+
overrideHeight: height_1.overrideHeight,
|
|
140
|
+
overrideWidth: width_1.overrideWidth,
|
|
141
|
+
overrideFfmpegCommand: ffmpeg_override_1.setFfmpegOverrideFunction,
|
|
142
|
+
};
|
|
88
143
|
exports.Config = {
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
Log: {
|
|
104
|
-
setLevel: log_1.setLogLevel,
|
|
105
|
-
},
|
|
106
|
-
Puppeteer: {
|
|
107
|
-
setBrowserExecutable: browser_executable_2.setBrowserExecutable,
|
|
108
|
-
setTimeoutInMilliseconds: timeout_2.setPuppeteerTimeout,
|
|
109
|
-
setChromiumDisableWebSecurity: chromium_flags_2.setChromiumDisableWebSecurity,
|
|
110
|
-
setChromiumIgnoreCertificateErrors: chromium_flags_2.setChromiumIgnoreCertificateErrors,
|
|
111
|
-
setChromiumHeadlessMode: chromium_flags_2.setChromiumHeadlessMode,
|
|
112
|
-
setChromiumOpenGlRenderer: chromium_flags_2.setChromiumOpenGlRenderer,
|
|
113
|
-
},
|
|
114
|
-
Rendering: {
|
|
115
|
-
setDotEnvLocation: env_file_2.setDotEnvLocation,
|
|
116
|
-
setConcurrency: concurrency_2.setConcurrency,
|
|
117
|
-
setQuality: quality_2.setQuality,
|
|
118
|
-
setImageFormat: image_format_2.setImageFormat,
|
|
119
|
-
setFrameRange: frame_range_2.setFrameRange,
|
|
120
|
-
setFfmpegExecutable: ffmpeg_executable_2.setFfmpegExecutable,
|
|
121
|
-
setFfprobeExecutable: ffmpeg_executable_2.setFfprobeExecutable,
|
|
122
|
-
setScale: scale_2.setScale,
|
|
123
|
-
setEveryNthFrame: every_nth_frame_1.setEveryNthFrame,
|
|
124
|
-
setNumberOfGifLoops: number_of_gif_loops_1.setNumberOfGifLoops,
|
|
125
|
-
setMuted: muted_1.setMuted,
|
|
126
|
-
setEnforceAudioTrack: enforce_audio_track_1.setEnforceAudioTrack,
|
|
127
|
-
},
|
|
128
|
-
Output: {
|
|
129
|
-
setOutputLocation: output_location_2.setOutputLocation,
|
|
130
|
-
setOverwriteOutput: overwrite_2.setOverwriteOutput,
|
|
131
|
-
setPixelFormat: pixel_format_2.setPixelFormat,
|
|
132
|
-
setOutputFormat: codec_2.setOutputFormat,
|
|
133
|
-
setCodec: codec_2.setCodec,
|
|
134
|
-
setCrf: crf_1.setCrf,
|
|
135
|
-
setImageSequence: image_sequence_2.setImageSequence,
|
|
136
|
-
setProResProfile: prores_profile_2.setProResProfile,
|
|
137
|
-
setAudioBitrate: bitrate_1.setAudioBitrate,
|
|
138
|
-
setVideoBitrate: bitrate_1.setVideoBitrate,
|
|
139
|
-
overrideHeight: height_1.overrideHeight,
|
|
140
|
-
overrideWidth: width_1.overrideWidth,
|
|
141
|
-
overrideFfmpegCommand: ffmpeg_override_1.setFfmpegOverrideFunction,
|
|
142
|
-
},
|
|
144
|
+
// New flat config format
|
|
145
|
+
...Preview,
|
|
146
|
+
...Bundling,
|
|
147
|
+
...Log,
|
|
148
|
+
...Puppeteer,
|
|
149
|
+
...Rendering,
|
|
150
|
+
...Output,
|
|
151
|
+
// Legacy config format
|
|
152
|
+
Preview,
|
|
153
|
+
Bundling,
|
|
154
|
+
Log,
|
|
155
|
+
Puppeteer,
|
|
156
|
+
Rendering,
|
|
157
|
+
Output,
|
|
143
158
|
};
|
|
144
|
-
// eslint-disable-next-line no-restricted-imports
|
|
145
159
|
exports.ConfigInternals = {
|
|
146
160
|
getRange: frame_range_1.getRange,
|
|
147
161
|
getOutputCodecOrUndefined: codec_1.getOutputCodecOrUndefined,
|
package/dist/config/timeout.js
CHANGED
|
@@ -5,7 +5,7 @@ const renderer_1 = require("@remotion/renderer");
|
|
|
5
5
|
let currentTimeout = renderer_1.RenderInternals.DEFAULT_TIMEOUT;
|
|
6
6
|
const setPuppeteerTimeout = (newPuppeteerTimeout) => {
|
|
7
7
|
if (typeof newPuppeteerTimeout !== 'number') {
|
|
8
|
-
throw new Error('--timeout flag /
|
|
8
|
+
throw new Error('--timeout flag / setDelayRenderTimeoutInMilliseconds() must be a number, but got ' +
|
|
9
9
|
JSON.stringify(newPuppeteerTimeout));
|
|
10
10
|
}
|
|
11
11
|
currentTimeout = newPuppeteerTimeout;
|
|
@@ -16,7 +16,7 @@ const UpdateModal_1 = require("./UpdateModal/UpdateModal");
|
|
|
16
16
|
const Modals = () => {
|
|
17
17
|
const { selectedModal: modalContextType } = (0, react_1.useContext)(modals_1.ModalsContext);
|
|
18
18
|
const canRender = (0, react_1.useContext)(client_id_1.PreviewServerConnectionCtx).type === 'connected';
|
|
19
|
-
return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [modalContextType && modalContextType.type === 'new-comp' && ((0, jsx_runtime_1.jsx)(NewComposition_1.default, { initialCompType: modalContextType.compType })), modalContextType && canRender && modalContextType.type === 'render' && ((0, jsx_runtime_1.jsx)(RenderModal_1.RenderModal, { initialFrame: modalContextType.initialFrame, compositionId: modalContextType.compositionId,
|
|
19
|
+
return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [modalContextType && modalContextType.type === 'new-comp' && ((0, jsx_runtime_1.jsx)(NewComposition_1.default, { initialCompType: modalContextType.compType })), modalContextType && canRender && modalContextType.type === 'render' && ((0, jsx_runtime_1.jsx)(RenderModal_1.RenderModal, { initialFrame: modalContextType.initialFrame, compositionId: modalContextType.compositionId, initialVideoImageFormat: modalContextType.initialVideoImageFormat, initialQuality: modalContextType.initialQuality, initialOutName: modalContextType.initialOutName, initialScale: modalContextType.initialScale, initialVerbose: modalContextType.initialVerbose, initialRenderType: modalContextType.initialRenderType, initialAudioCodec: modalContextType.initialAudioCodec, initialVideoCodec: modalContextType.initialVideoCodec, initialConcurrency: modalContextType.initialConcurrency, maxConcurrency: modalContextType.maxConcurrency, minConcurrency: modalContextType.minConcurrency, initialStillImageFormat: modalContextType.initialStillImageFormat, initialMuted: modalContextType.initialMuted, initialEnforceAudioTrack: modalContextType.initialEnforceAudioTrack, initialProResProfile: modalContextType.initialProResProfile, initialPixelFormat: modalContextType.initialPixelFormat, initialAudioBitrate: modalContextType.initialAudioBitrate, initialVideoBitrate: modalContextType.initialVideoBitrate, initialEveryNthFrame: modalContextType.initialEveryNthFrame, initialNumberOfGifLoops: modalContextType.initialNumberOfGifLoops, initialDelayRenderTimeout: modalContextType.initialDelayRenderTimeout })), modalContextType &&
|
|
20
20
|
canRender &&
|
|
21
21
|
modalContextType.type === 'render-error' && ((0, jsx_runtime_1.jsx)(RenderErrorModal_1.RenderErrorModal, { job: modalContextType.job })), modalContextType && modalContextType.type === 'update' && ((0, jsx_runtime_1.jsx)(UpdateModal_1.UpdateModal, { info: modalContextType.info })), modalContextType && modalContextType.type === 'quick-switcher' && ((0, jsx_runtime_1.jsx)(QuickSwitcher_1.default, { invocationTimestamp: modalContextType.invocationTimestamp, initialMode: modalContextType.mode }))] }));
|
|
22
22
|
};
|
|
@@ -4,6 +4,7 @@ exports.RenderButton = void 0;
|
|
|
4
4
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
5
|
const react_1 = require("react");
|
|
6
6
|
const get_default_out_name_1 = require("../../get-default-out-name");
|
|
7
|
+
const get_default_video_contexts_1 = require("../../preview-server/render-queue/get-default-video-contexts");
|
|
7
8
|
const render_1 = require("../icons/render");
|
|
8
9
|
const modals_1 = require("../state/modals");
|
|
9
10
|
const InlineAction_1 = require("./InlineAction");
|
|
@@ -18,24 +19,44 @@ const RenderButton = ({ composition, visible }) => {
|
|
|
18
19
|
}, []);
|
|
19
20
|
const isVideo = composition.durationInFrames > 1;
|
|
20
21
|
const onClick = (0, react_1.useCallback)((e) => {
|
|
21
|
-
|
|
22
|
+
const defaults = window.remotion_renderDefaults;
|
|
23
|
+
if (!defaults) {
|
|
24
|
+
throw new Error('expected defaults');
|
|
25
|
+
}
|
|
22
26
|
e.stopPropagation();
|
|
27
|
+
const { initialAudioCodec, initialRenderType, initialVideoCodec } = (0, get_default_video_contexts_1.getDefaultCodecs)({
|
|
28
|
+
defaultCodec: defaults.codec,
|
|
29
|
+
isStill: !isVideo,
|
|
30
|
+
});
|
|
23
31
|
setSelectedModal({
|
|
24
32
|
type: 'render',
|
|
25
33
|
compositionId: composition.id,
|
|
26
34
|
initialFrame: 0,
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
initialQuality:
|
|
30
|
-
initialScale:
|
|
31
|
-
initialVerbose:
|
|
35
|
+
initialVideoImageFormat: defaults.videoImageFormat,
|
|
36
|
+
initialStillImageFormat: defaults.stillImageFormat,
|
|
37
|
+
initialQuality: defaults.quality,
|
|
38
|
+
initialScale: defaults.scale,
|
|
39
|
+
initialVerbose: defaults.logLevel === 'verbose',
|
|
32
40
|
initialOutName: (0, get_default_out_name_1.getDefaultOutLocation)({
|
|
33
41
|
compositionName: composition.id,
|
|
34
42
|
defaultExtension: isVideo ? 'mp4' : 'png',
|
|
35
43
|
type: 'asset',
|
|
36
44
|
}),
|
|
37
|
-
|
|
38
|
-
|
|
45
|
+
initialAudioCodec,
|
|
46
|
+
initialRenderType,
|
|
47
|
+
initialVideoCodec,
|
|
48
|
+
initialConcurrency: defaults.concurrency,
|
|
49
|
+
maxConcurrency: defaults.maxConcurrency,
|
|
50
|
+
minConcurrency: defaults.minConcurrency,
|
|
51
|
+
initialMuted: defaults.muted,
|
|
52
|
+
initialEnforceAudioTrack: defaults.enforceAudioTrack,
|
|
53
|
+
initialProResProfile: defaults.proResProfile,
|
|
54
|
+
initialPixelFormat: defaults.pixelFormat,
|
|
55
|
+
initialAudioBitrate: defaults.audioBitrate,
|
|
56
|
+
initialVideoBitrate: defaults.videoBitrate,
|
|
57
|
+
initialEveryNthFrame: defaults.everyNthFrame,
|
|
58
|
+
initialNumberOfGifLoops: defaults.numberOfGifLoops,
|
|
59
|
+
initialDelayRenderTimeout: defaults.delayRenderTimeout,
|
|
39
60
|
});
|
|
40
61
|
}, [composition.id, isVideo, setSelectedModal]);
|
|
41
62
|
if (!visible) {
|
|
@@ -2,14 +2,14 @@
|
|
|
2
2
|
import type { Codec } from '@remotion/renderer';
|
|
3
3
|
export declare const useCrfState: (codec: Codec) => {
|
|
4
4
|
crf: number;
|
|
5
|
-
setCrf: (
|
|
5
|
+
setCrf: import("react").Dispatch<import("react").SetStateAction<number>>;
|
|
6
6
|
minCrf: number;
|
|
7
7
|
maxCrf: number;
|
|
8
8
|
shouldDisplayOption: boolean;
|
|
9
9
|
};
|
|
10
10
|
export declare const CrfSetting: React.FC<{
|
|
11
11
|
crf: number;
|
|
12
|
-
setCrf:
|
|
12
|
+
setCrf: React.Dispatch<React.SetStateAction<number>>;
|
|
13
13
|
min: number;
|
|
14
14
|
max: number;
|
|
15
15
|
}>;
|
|
@@ -4,9 +4,7 @@ exports.CrfSetting = exports.useCrfState = void 0;
|
|
|
4
4
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
5
|
const client_1 = require("@remotion/renderer/client");
|
|
6
6
|
const react_1 = require("react");
|
|
7
|
-
const
|
|
8
|
-
const RemInput_1 = require("../NewComposition/RemInput");
|
|
9
|
-
const layout_1 = require("./layout");
|
|
7
|
+
const NumberSetting_1 = require("./NumberSetting");
|
|
10
8
|
const getDefaultCrfState = () => {
|
|
11
9
|
return client_1.BrowserSafeApis.validCodecs
|
|
12
10
|
.map((c) => {
|
|
@@ -22,16 +20,17 @@ const getDefaultCrfState = () => {
|
|
|
22
20
|
const useCrfState = (codec) => {
|
|
23
21
|
const [state, setState] = (0, react_1.useState)(() => getDefaultCrfState());
|
|
24
22
|
const range = client_1.BrowserSafeApis.getValidCrfRanges(codec);
|
|
23
|
+
const setCrf = (updater) => {
|
|
24
|
+
setState((q) => {
|
|
25
|
+
return {
|
|
26
|
+
...q,
|
|
27
|
+
[codec]: typeof updater === 'number' ? updater : updater(q[codec]),
|
|
28
|
+
};
|
|
29
|
+
});
|
|
30
|
+
};
|
|
25
31
|
return {
|
|
26
32
|
crf: state[codec],
|
|
27
|
-
setCrf
|
|
28
|
-
setState((q) => {
|
|
29
|
-
return {
|
|
30
|
-
...q,
|
|
31
|
-
[codec]: updater(q[codec]),
|
|
32
|
-
};
|
|
33
|
-
});
|
|
34
|
-
},
|
|
33
|
+
setCrf,
|
|
35
34
|
minCrf: range[0],
|
|
36
35
|
maxCrf: range[1],
|
|
37
36
|
shouldDisplayOption: range[0] !== range[1],
|
|
@@ -39,18 +38,6 @@ const useCrfState = (codec) => {
|
|
|
39
38
|
};
|
|
40
39
|
exports.useCrfState = useCrfState;
|
|
41
40
|
const CrfSetting = ({ crf, setCrf, min, max }) => {
|
|
42
|
-
|
|
43
|
-
setCrf(() => newCrf);
|
|
44
|
-
}, [setCrf]);
|
|
45
|
-
const onCrfChanged = (0, react_1.useCallback)((e) => {
|
|
46
|
-
setCrf((q) => {
|
|
47
|
-
const newCrf = parseFloat(e);
|
|
48
|
-
if (Number.isNaN(newCrf)) {
|
|
49
|
-
return q;
|
|
50
|
-
}
|
|
51
|
-
return Math.min(max, Math.max(newCrf, min));
|
|
52
|
-
});
|
|
53
|
-
}, [max, min, setCrf]);
|
|
54
|
-
return ((0, jsx_runtime_1.jsxs)("div", { style: layout_1.optionRow, children: [(0, jsx_runtime_1.jsx)("div", { style: layout_1.label, children: "CRF" }), (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: crf, onTextChange: onCrfChanged, placeholder: `${min}-${max}`, onValueChange: onCrfSetDirectly, name: "crf", step: 1, min: min, max: max }) }) })] }));
|
|
41
|
+
return ((0, jsx_runtime_1.jsx)(NumberSetting_1.NumberSetting, { min: min, max: max, name: "CRF", onValueChanged: setCrf, value: crf, step: 1 }));
|
|
55
42
|
};
|
|
56
43
|
exports.CrfSetting = CrfSetting;
|
|
@@ -0,0 +1,9 @@
|
|
|
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;
|
|
@@ -0,0 +1,26 @@
|
|
|
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;
|
|
@@ -0,0 +1,26 @@
|
|
|
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,14 +1,28 @@
|
|
|
1
|
-
import type { Codec, StillImageFormat } from '@remotion/renderer';
|
|
1
|
+
import type { Codec, PixelFormat, ProResProfile, StillImageFormat } from '@remotion/renderer';
|
|
2
2
|
import React from 'react';
|
|
3
|
-
|
|
3
|
+
import type { RenderType } from './RenderModalAdvanced';
|
|
4
4
|
export declare const RenderModal: React.FC<{
|
|
5
5
|
compositionId: string;
|
|
6
6
|
initialFrame: number;
|
|
7
|
-
|
|
8
|
-
|
|
7
|
+
initialVideoImageFormat: StillImageFormat;
|
|
8
|
+
initialStillImageFormat: StillImageFormat;
|
|
9
|
+
initialQuality: number;
|
|
9
10
|
initialScale: number;
|
|
10
11
|
initialVerbose: boolean;
|
|
11
12
|
initialOutName: string;
|
|
12
13
|
initialRenderType: RenderType;
|
|
13
|
-
|
|
14
|
+
initialAudioCodec: Codec;
|
|
15
|
+
initialVideoCodec: Codec;
|
|
16
|
+
initialConcurrency: number;
|
|
17
|
+
minConcurrency: number;
|
|
18
|
+
maxConcurrency: number;
|
|
19
|
+
initialMuted: boolean;
|
|
20
|
+
initialEnforceAudioTrack: boolean;
|
|
21
|
+
initialProResProfile: ProResProfile;
|
|
22
|
+
initialPixelFormat: PixelFormat;
|
|
23
|
+
initialVideoBitrate: string | null;
|
|
24
|
+
initialAudioBitrate: string | null;
|
|
25
|
+
initialEveryNthFrame: number;
|
|
26
|
+
initialNumberOfGifLoops: number | null;
|
|
27
|
+
initialDelayRenderTimeout: number;
|
|
14
28
|
}>;
|