@remotion/cli 3.3.42 → 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.
Files changed (57) hide show
  1. package/dist/editor/components/Modals.js +1 -1
  2. package/dist/editor/components/RenderButton.js +8 -29
  3. package/dist/editor/components/RenderModal/CrfSetting.d.ts +2 -2
  4. package/dist/editor/components/RenderModal/CrfSetting.js +24 -11
  5. package/dist/editor/components/RenderModal/RenderModal.d.ts +5 -19
  6. package/dist/editor/components/RenderModal/RenderModal.js +181 -225
  7. package/dist/editor/components/RenderModal/ScaleSetting.js +18 -2
  8. package/dist/editor/components/RenderModal/layout.d.ts +0 -1
  9. package/dist/editor/components/RenderModal/layout.js +2 -8
  10. package/dist/editor/components/RenderQueue/RenderQueueRemoveItem.js +1 -2
  11. package/dist/editor/components/RenderQueue/actions.d.ts +2 -15
  12. package/dist/editor/components/RenderQueue/actions.js +1 -14
  13. package/dist/editor/components/RenderToolbarIcon.js +8 -30
  14. package/dist/editor/components/SegmentedControl.js +1 -1
  15. package/dist/editor/components/SidebarContent.js +1 -2
  16. package/dist/preview-server/render-queue/get-default-video-contexts.d.ts +1 -1
  17. package/dist/preview-server/render-queue/job.d.ts +1 -27
  18. package/dist/preview-server/render-queue/make-retry-payload.js +10 -52
  19. package/dist/preview-server/render-queue/process-video.js +9 -16
  20. package/dist/preview-server/routes/add-render.js +0 -13
  21. package/dist/render-flows/render.d.ts +4 -14
  22. package/dist/render-flows/render.js +13 -40
  23. package/package.json +7 -7
  24. package/dist/derive-codec-from-file-extension.d.ts +0 -1
  25. package/dist/derive-codec-from-file-extension.js +0 -27
  26. package/dist/editor/components/RenderModal/EveryNthFrameSetting.d.ts +0 -5
  27. package/dist/editor/components/RenderModal/EveryNthFrameSetting.js +0 -9
  28. package/dist/editor/components/RenderModal/NumberOfLoopsSetting.d.ts +0 -5
  29. package/dist/editor/components/RenderModal/NumberOfLoopsSetting.js +0 -26
  30. package/dist/editor/components/RenderModal/NumberSetting.d.ts +0 -9
  31. package/dist/editor/components/RenderModal/NumberSetting.js +0 -26
  32. package/dist/editor/components/RenderModal/RenderModalAdvanced.d.ts +0 -11
  33. package/dist/editor/components/RenderModal/RenderModalAdvanced.js +0 -15
  34. package/dist/editor/components/RenderModal/RenderModalAudio.d.ts +0 -13
  35. package/dist/editor/components/RenderModal/RenderModalAudio.js +0 -22
  36. package/dist/editor/components/RenderModal/RenderModalBasic.d.ts +0 -22
  37. package/dist/editor/components/RenderModal/RenderModalBasic.js +0 -70
  38. package/dist/editor/components/RenderModal/RenderModalGeneral.d.ts +0 -0
  39. package/dist/editor/components/RenderModal/RenderModalGeneral.js +0 -1
  40. package/dist/editor/components/RenderModal/RenderModalGif.d.ts +0 -9
  41. package/dist/editor/components/RenderModal/RenderModalGif.js +0 -16
  42. package/dist/editor/components/RenderModal/RenderModalHr.d.ts +0 -2
  43. package/dist/editor/components/RenderModal/RenderModalHr.js +0 -18
  44. package/dist/editor/components/RenderModal/RenderModalPicture.d.ts +0 -28
  45. package/dist/editor/components/RenderModal/RenderModalPicture.js +0 -51
  46. package/dist/editor/components/RenderModal/human-readable-codec.d.ts +0 -2
  47. package/dist/editor/components/RenderModal/human-readable-codec.js +0 -36
  48. package/dist/editor/icons/audio.d.ts +0 -2
  49. package/dist/editor/icons/audio.js +0 -6
  50. package/dist/editor/icons/file.d.ts +0 -2
  51. package/dist/editor/icons/file.js +0 -6
  52. package/dist/editor/icons/frame.d.ts +0 -2
  53. package/dist/editor/icons/frame.js +0 -6
  54. package/dist/editor/icons/gear.d.ts +0 -2
  55. package/dist/editor/icons/gear.js +0 -6
  56. package/dist/editor/icons/gif.d.ts +0 -2
  57. package/dist/editor/icons/gif.js +0 -6
@@ -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, 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 &&
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
- const defaults = window.remotion_renderDefaults;
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
- initialVideoImageFormat: defaults.videoImageFormat,
36
- initialStillImageFormat: defaults.stillImageFormat,
37
- initialQuality: defaults.quality,
38
- initialScale: defaults.scale,
39
- initialVerbose: defaults.logLevel === 'verbose',
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
- 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,
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: import("react").Dispatch<import("react").SetStateAction<number>>;
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: React.Dispatch<React.SetStateAction<number>>;
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 NumberSetting_1 = require("./NumberSetting");
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
- return ((0, jsx_runtime_1.jsx)(NumberSetting_1.NumberSetting, { min: min, max: max, name: "CRF", onValueChanged: setCrf, value: crf, step: 1 }));
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, PixelFormat, ProResProfile, StillImageFormat } from '@remotion/renderer';
1
+ import type { Codec, StillImageFormat } from '@remotion/renderer';
2
2
  import React from 'react';
3
- import type { RenderType } from './RenderModalAdvanced';
3
+ export declare type RenderType = 'still' | 'video';
4
4
  export declare const RenderModal: React.FC<{
5
5
  compositionId: string;
6
6
  initialFrame: number;
7
- initialVideoImageFormat: StillImageFormat;
8
- initialStillImageFormat: StillImageFormat;
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
- 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;
13
+ initialCodec: Codec;
28
14
  }>;