@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
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getAudioCodec = exports.setAudioCodec = void 0;
|
|
4
|
+
const renderer_1 = require("@remotion/renderer");
|
|
5
|
+
let _audioCodec = null;
|
|
6
|
+
const setAudioCodec = (audioCodec) => {
|
|
7
|
+
if (audioCodec === null) {
|
|
8
|
+
_audioCodec = null;
|
|
9
|
+
return;
|
|
10
|
+
}
|
|
11
|
+
if (!renderer_1.RenderInternals.validAudioCodecs.includes(audioCodec)) {
|
|
12
|
+
throw new Error(`Audio codec must be one of the following: ${renderer_1.RenderInternals.validAudioCodecs.join(', ')}, but got ${audioCodec}`);
|
|
13
|
+
}
|
|
14
|
+
_audioCodec = audioCodec;
|
|
15
|
+
};
|
|
16
|
+
exports.setAudioCodec = setAudioCodec;
|
|
17
|
+
const getAudioCodec = () => {
|
|
18
|
+
return _audioCodec;
|
|
19
|
+
};
|
|
20
|
+
exports.getAudioCodec = getAudioCodec;
|
package/dist/config/index.d.ts
CHANGED
|
@@ -27,6 +27,7 @@ export declare const ConfigInternals: {
|
|
|
27
27
|
getConcurrency: () => string | number | null;
|
|
28
28
|
getCurrentPuppeteerTimeout: () => number;
|
|
29
29
|
getQuality: () => number | undefined;
|
|
30
|
+
getAudioCodec: () => "mp3" | "aac" | "pcm-16" | "opus" | null;
|
|
30
31
|
getStillFrame: () => number;
|
|
31
32
|
getShouldOutputImageSequence: (frameRange: import("@remotion/renderer").FrameRange | null) => boolean;
|
|
32
33
|
getDotEnvLocation: () => string | null;
|
package/dist/config/index.js
CHANGED
|
@@ -49,6 +49,7 @@ const scale_1 = require("./scale");
|
|
|
49
49
|
const still_frame_1 = require("./still-frame");
|
|
50
50
|
const timeout_1 = require("./timeout");
|
|
51
51
|
const webpack_caching_1 = require("./webpack-caching");
|
|
52
|
+
const audio_codec_1 = require("./audio-codec");
|
|
52
53
|
const bitrate_1 = require("./bitrate");
|
|
53
54
|
const browser_executable_2 = require("./browser-executable");
|
|
54
55
|
const chromium_flags_2 = require("./chromium-flags");
|
|
@@ -155,6 +156,8 @@ exports.Config = {
|
|
|
155
156
|
Puppeteer,
|
|
156
157
|
Rendering,
|
|
157
158
|
Output,
|
|
159
|
+
// Options added after migration
|
|
160
|
+
setAudioCodec: audio_codec_1.setAudioCodec,
|
|
158
161
|
};
|
|
159
162
|
exports.ConfigInternals = {
|
|
160
163
|
getRange: frame_range_1.getRange,
|
|
@@ -176,6 +179,7 @@ exports.ConfigInternals = {
|
|
|
176
179
|
getConcurrency: concurrency_1.getConcurrency,
|
|
177
180
|
getCurrentPuppeteerTimeout: timeout_1.getCurrentPuppeteerTimeout,
|
|
178
181
|
getQuality: quality_1.getQuality,
|
|
182
|
+
getAudioCodec: audio_codec_1.getAudioCodec,
|
|
179
183
|
getStillFrame: still_frame_1.getStillFrame,
|
|
180
184
|
getShouldOutputImageSequence: image_sequence_1.getShouldOutputImageSequence,
|
|
181
185
|
getDotEnvLocation: env_file_1.getDotEnvLocation,
|
|
@@ -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, initialImageFormat: modalContextType.initialImageFormat, initialQuality: modalContextType.initialQuality, initialOutName: modalContextType.initialOutName, initialScale: modalContextType.initialScale, initialVerbose: modalContextType.initialVerbose, initialRenderType: modalContextType.initialRenderType, initialCodec: modalContextType.initialCodec })), 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,7 +4,6 @@ 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");
|
|
8
7
|
const render_1 = require("../icons/render");
|
|
9
8
|
const modals_1 = require("../state/modals");
|
|
10
9
|
const InlineAction_1 = require("./InlineAction");
|
|
@@ -19,44 +18,24 @@ const RenderButton = ({ composition, visible }) => {
|
|
|
19
18
|
}, []);
|
|
20
19
|
const isVideo = composition.durationInFrames > 1;
|
|
21
20
|
const onClick = (0, react_1.useCallback)((e) => {
|
|
22
|
-
|
|
23
|
-
if (!defaults) {
|
|
24
|
-
throw new Error('expected defaults');
|
|
25
|
-
}
|
|
21
|
+
var _a, _b, _c, _d, _e;
|
|
26
22
|
e.stopPropagation();
|
|
27
|
-
const { initialAudioCodec, initialRenderType, initialVideoCodec } = (0, get_default_video_contexts_1.getDefaultCodecs)({
|
|
28
|
-
defaultCodec: defaults.codec,
|
|
29
|
-
isStill: !isVideo,
|
|
30
|
-
});
|
|
31
23
|
setSelectedModal({
|
|
32
24
|
type: 'render',
|
|
33
25
|
compositionId: composition.id,
|
|
34
26
|
initialFrame: 0,
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
initialQuality:
|
|
38
|
-
initialScale:
|
|
39
|
-
initialVerbose:
|
|
27
|
+
initialImageFormat: isVideo ? 'jpeg' : 'png',
|
|
28
|
+
// TODO: Determine defaults from config file
|
|
29
|
+
initialQuality: (_b = (_a = window.remotion_renderDefaults) === null || _a === void 0 ? void 0 : _a.quality) !== null && _b !== void 0 ? _b : 80,
|
|
30
|
+
initialScale: (_d = (_c = window.remotion_renderDefaults) === null || _c === void 0 ? void 0 : _c.scale) !== null && _d !== void 0 ? _d : 1,
|
|
31
|
+
initialVerbose: ((_e = window.remotion_renderDefaults) === null || _e === void 0 ? void 0 : _e.logLevel) === 'verbose',
|
|
40
32
|
initialOutName: (0, get_default_out_name_1.getDefaultOutLocation)({
|
|
41
33
|
compositionName: composition.id,
|
|
42
34
|
defaultExtension: isVideo ? 'mp4' : 'png',
|
|
43
35
|
type: 'asset',
|
|
44
36
|
}),
|
|
45
|
-
|
|
46
|
-
|
|
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,
|
|
37
|
+
initialRenderType: isVideo ? 'video' : 'still',
|
|
38
|
+
initialCodec: 'h264',
|
|
60
39
|
});
|
|
61
40
|
}, [composition.id, isVideo, setSelectedModal]);
|
|
62
41
|
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: (updater: (prev: number) => number) => void;
|
|
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: (value: (prevVal: number) => number) => void;
|
|
13
13
|
min: number;
|
|
14
14
|
max: number;
|
|
15
15
|
}>;
|
|
@@ -4,7 +4,9 @@ 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
|
|
7
|
+
const InputDragger_1 = require("../NewComposition/InputDragger");
|
|
8
|
+
const RemInput_1 = require("../NewComposition/RemInput");
|
|
9
|
+
const layout_1 = require("./layout");
|
|
8
10
|
const getDefaultCrfState = () => {
|
|
9
11
|
return client_1.BrowserSafeApis.validCodecs
|
|
10
12
|
.map((c) => {
|
|
@@ -20,17 +22,16 @@ const getDefaultCrfState = () => {
|
|
|
20
22
|
const useCrfState = (codec) => {
|
|
21
23
|
const [state, setState] = (0, react_1.useState)(() => getDefaultCrfState());
|
|
22
24
|
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
|
-
};
|
|
31
25
|
return {
|
|
32
26
|
crf: state[codec],
|
|
33
|
-
setCrf
|
|
27
|
+
setCrf: (updater) => {
|
|
28
|
+
setState((q) => {
|
|
29
|
+
return {
|
|
30
|
+
...q,
|
|
31
|
+
[codec]: updater(q[codec]),
|
|
32
|
+
};
|
|
33
|
+
});
|
|
34
|
+
},
|
|
34
35
|
minCrf: range[0],
|
|
35
36
|
maxCrf: range[1],
|
|
36
37
|
shouldDisplayOption: range[0] !== range[1],
|
|
@@ -38,6 +39,18 @@ const useCrfState = (codec) => {
|
|
|
38
39
|
};
|
|
39
40
|
exports.useCrfState = useCrfState;
|
|
40
41
|
const CrfSetting = ({ crf, setCrf, min, max }) => {
|
|
41
|
-
|
|
42
|
+
const onCrfSetDirectly = (0, react_1.useCallback)((newCrf) => {
|
|
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 }) }) })] }));
|
|
42
55
|
};
|
|
43
56
|
exports.CrfSetting = CrfSetting;
|
|
@@ -1,28 +1,14 @@
|
|
|
1
|
-
import type { Codec,
|
|
1
|
+
import type { Codec, StillImageFormat } from '@remotion/renderer';
|
|
2
2
|
import React from 'react';
|
|
3
|
-
|
|
3
|
+
export declare type RenderType = 'still' | 'video';
|
|
4
4
|
export declare const RenderModal: React.FC<{
|
|
5
5
|
compositionId: string;
|
|
6
6
|
initialFrame: number;
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
initialQuality: number;
|
|
7
|
+
initialImageFormat: StillImageFormat;
|
|
8
|
+
initialQuality: number | null;
|
|
10
9
|
initialScale: number;
|
|
11
10
|
initialVerbose: boolean;
|
|
12
11
|
initialOutName: string;
|
|
13
12
|
initialRenderType: RenderType;
|
|
14
|
-
|
|
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;
|
|
13
|
+
initialCodec: Codec;
|
|
28
14
|
}>;
|