@remotion/cli 4.0.21 → 4.0.23

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 (76) hide show
  1. package/dist/benchmark.js +4 -1
  2. package/dist/better-opn/index.d.ts +0 -1
  3. package/dist/compositions.js +2 -1
  4. package/dist/config/image-format.d.ts +1 -1
  5. package/dist/config/index.d.ts +5 -1
  6. package/dist/config/index.js +7 -0
  7. package/dist/config/offthread-video-cache-size.d.ts +2 -0
  8. package/dist/config/offthread-video-cache-size.js +12 -0
  9. package/dist/config/x264-preset.d.ts +3 -0
  10. package/dist/config/x264-preset.js +12 -0
  11. package/dist/editor/components/Editor.js +14 -1
  12. package/dist/editor/components/Modals.js +1 -1
  13. package/dist/editor/components/NewComposition/NewCompCode.d.ts +0 -1
  14. package/dist/editor/components/NewComposition/RemInput.d.ts +2 -2
  15. package/dist/editor/components/NewComposition/RemInputTypeColor.d.ts +1 -1
  16. package/dist/editor/components/NewComposition/RemTextarea.d.ts +1 -1
  17. package/dist/editor/components/Notifications/ServerDisconnected.js +2 -1
  18. package/dist/editor/components/RenderButton.js +2 -0
  19. package/dist/editor/components/RenderModal/CrfSetting.d.ts +2 -2
  20. package/dist/editor/components/RenderModal/EnforceAudioTrackSetting.d.ts +2 -2
  21. package/dist/editor/components/RenderModal/MutedSetting.d.ts +2 -2
  22. package/dist/editor/components/RenderModal/NumberSetting.d.ts +2 -2
  23. package/dist/editor/components/RenderModal/OptionExplainer.d.ts +2 -2
  24. package/dist/editor/components/RenderModal/RenderModal.d.ts +3 -1
  25. package/dist/editor/components/RenderModal/RenderModal.js +16 -2
  26. package/dist/editor/components/RenderModal/RenderModalAdvanced.d.ts +6 -0
  27. package/dist/editor/components/RenderModal/RenderModalAdvanced.js +42 -3
  28. package/dist/editor/components/RenderModal/RenderModalBasic.js +1 -1
  29. package/dist/editor/components/RenderModal/RenderModalPicture.d.ts +1 -1
  30. package/dist/editor/components/RenderModal/SchemaEditor/ZodDiscriminatedUnionEditor.js +1 -1
  31. package/dist/editor/components/RenderModal/SchemaEditor/input-props-serialization.d.ts +14 -0
  32. package/dist/editor/components/RenderModal/SchemaEditor/input-props-serialization.js +42 -0
  33. package/dist/editor/components/RenderModal/human-readable-codec.d.ts +1 -1
  34. package/dist/editor/components/RenderModal/layout.js +1 -1
  35. package/dist/editor/components/RenderQueue/actions.d.ts +6 -3
  36. package/dist/editor/components/RenderQueue/actions.js +5 -2
  37. package/dist/editor/components/RightPanel.d.ts +8 -0
  38. package/dist/editor/components/RightPanel.js +79 -0
  39. package/dist/editor/components/SidebarRenderButton.js +9 -1
  40. package/dist/editor/components/UpdateCheck.d.ts +0 -1
  41. package/dist/editor/helpers/colors.d.ts +1 -1
  42. package/dist/editor/helpers/convert-env-variables.d.ts +8 -2
  43. package/dist/editor/helpers/document-title.js +1 -0
  44. package/dist/editor/helpers/presets-labels.d.ts +2 -0
  45. package/dist/editor/helpers/presets-labels.js +37 -0
  46. package/dist/editor/helpers/render-modal-sections.d.ts +0 -1
  47. package/dist/editor/state/modals.d.ts +3 -1
  48. package/dist/get-cli-options.d.ts +3 -1
  49. package/dist/get-cli-options.js +7 -0
  50. package/dist/get-composition-id.d.ts +2 -1
  51. package/dist/get-composition-id.js +3 -1
  52. package/dist/get-composition-with-dimension-override.d.ts +2 -1
  53. package/dist/get-composition-with-dimension-override.js +2 -1
  54. package/dist/index.d.ts +11 -6
  55. package/dist/list-of-remotion-packages.js +1 -0
  56. package/dist/parse-command-line.d.ts +5 -1
  57. package/dist/parse-command-line.js +6 -0
  58. package/dist/preview-server/dev-middleware/range-parser.d.ts +1 -1
  59. package/dist/preview-server/error-overlay/react-overlay/listen-to-runtime-errors.js +1 -0
  60. package/dist/preview-server/error-overlay/react-overlay/utils/open-in-editor.d.ts +1 -1
  61. package/dist/preview-server/hot-middleware/process-update.d.ts +0 -5
  62. package/dist/preview-server/hot-middleware/process-update.js +21 -2
  63. package/dist/preview-server/render-queue/job.d.ts +6 -1
  64. package/dist/preview-server/render-queue/make-retry-payload.js +5 -1
  65. package/dist/preview-server/render-queue/process-still.js +1 -0
  66. package/dist/preview-server/render-queue/process-video.js +3 -1
  67. package/dist/preview-server/routes/add-render.js +3 -0
  68. package/dist/preview-server/routes.d.ts +0 -1
  69. package/dist/preview-server/routes.js +6 -2
  70. package/dist/render-flows/render.d.ts +4 -2
  71. package/dist/render-flows/render.js +6 -1
  72. package/dist/render-flows/still.d.ts +2 -1
  73. package/dist/render-flows/still.js +4 -1
  74. package/dist/render.js +3 -1
  75. package/dist/still.js +2 -1
  76. package/package.json +9 -9
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getCompositionWithDimensionOverride = void 0;
4
4
  const get_composition_id_1 = require("./get-composition-id");
5
- const getCompositionWithDimensionOverride = async ({ height, width, args, compositionIdFromUi, chromiumOptions, envVariables, port, puppeteerInstance, timeoutInMilliseconds, browserExecutable, serveUrlOrWebpackUrl, indent, serializedInputPropsWithCustomSchema, logLevel, server, }) => {
5
+ const getCompositionWithDimensionOverride = async ({ height, width, args, compositionIdFromUi, chromiumOptions, envVariables, port, puppeteerInstance, timeoutInMilliseconds, browserExecutable, serveUrlOrWebpackUrl, indent, serializedInputPropsWithCustomSchema, logLevel, server, offthreadVideoCacheSizeInBytes, }) => {
6
6
  const returnValue = await (0, get_composition_id_1.getCompositionId)({
7
7
  args,
8
8
  compositionIdFromUi,
@@ -17,6 +17,7 @@ const getCompositionWithDimensionOverride = async ({ height, width, args, compos
17
17
  puppeteerInstance,
18
18
  timeoutInMilliseconds,
19
19
  server,
20
+ offthreadVideoCacheSizeInBytes,
20
21
  });
21
22
  return {
22
23
  ...returnValue,
package/dist/index.d.ts CHANGED
@@ -101,6 +101,7 @@ export declare const CliInternals: {
101
101
  crf: import("@remotion/renderer").Crf | null;
102
102
  pixelFormat: "yuv420p" | "yuva420p" | "yuv422p" | "yuv444p" | "yuv420p10le" | "yuv422p10le" | "yuv444p10le" | "yuva444p10le";
103
103
  proResProfile: "4444-xq" | "4444" | "hq" | "standard" | "light" | "proxy" | undefined;
104
+ x264Preset: "medium" | "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "slow" | "slower" | "veryslow" | "placebo" | undefined;
104
105
  everyNthFrame: number;
105
106
  numberOfGifLoops: import("./config/number-of-gif-loops").Loop;
106
107
  stillFrame: number;
@@ -118,7 +119,8 @@ export declare const CliInternals: {
118
119
  videoBitrate: string | null;
119
120
  height: number | null;
120
121
  width: number | null;
121
- configFileImageFormat: "png" | "jpeg" | "none" | undefined;
122
+ configFileImageFormat: "none" | "png" | "jpeg" | undefined;
123
+ offthreadVideoCacheSizeInBytes: number | null;
122
124
  }>;
123
125
  loadConfig: (remotionRoot: string) => Promise<string | null>;
124
126
  initializeCli: (remotionRoot: string) => Promise<void>;
@@ -127,8 +129,9 @@ export declare const CliInternals: {
127
129
  parsedCli: {
128
130
  "browser-executable": import("@remotion/renderer").BrowserExecutable;
129
131
  "pixel-format": "yuv420p" | "yuva420p" | "yuv422p" | "yuv444p" | "yuv420p10le" | "yuv422p10le" | "yuv444p10le" | "yuva444p10le";
130
- "image-format": "png" | "jpeg" | "pdf" | "webp" | "none";
132
+ "image-format": "none" | "png" | "jpeg" | "pdf" | "webp";
131
133
  "prores-profile": "4444-xq" | "4444" | "hq" | "standard" | "light" | "proxy";
134
+ "x264-preset": "medium" | "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "slow" | "slower" | "veryslow" | "placebo";
132
135
  "bundle-cache": string;
133
136
  "env-file": string;
134
137
  "ignore-certificate-errors": string;
@@ -177,6 +180,7 @@ export declare const CliInternals: {
177
180
  browser: string;
178
181
  "browser-args": string;
179
182
  "user-agent": string;
183
+ "offthreadvideo-cache-size-in-bytes": number | null;
180
184
  } & {
181
185
  _: string[];
182
186
  };
@@ -192,7 +196,7 @@ export declare const CliInternals: {
192
196
  downloadName: string | null;
193
197
  outName: string | null;
194
198
  configImageFormat: "png" | "jpeg" | "pdf" | "webp" | null;
195
- cliFlag: "png" | "jpeg" | "pdf" | "webp" | "none" | null;
199
+ cliFlag: "none" | "png" | "jpeg" | "pdf" | "webp" | null;
196
200
  isLambda: boolean;
197
201
  fromUi: "png" | "jpeg" | "pdf" | "webp" | null;
198
202
  }) => {
@@ -207,8 +211,8 @@ export declare const CliInternals: {
207
211
  };
208
212
  getVideoImageFormat: ({ codec, uiImageFormat, }: {
209
213
  codec: import("@remotion/renderer").CodecOrUndefined;
210
- uiImageFormat: "png" | "jpeg" | "none" | null;
211
- }) => "png" | "jpeg" | "none";
214
+ uiImageFormat: "none" | "png" | "jpeg" | null;
215
+ }) => "none" | "png" | "jpeg";
212
216
  printCompositions: (compositions: import("remotion").VideoConfig[]) => void;
213
217
  getFinalOutputCodec: ({ cliFlag, configFile, downloadName, outName, uiCodec, }: {
214
218
  cliFlag: import("@remotion/renderer").CodecOrUndefined;
@@ -224,7 +228,7 @@ export declare const CliInternals: {
224
228
  shouldUseNonOverlayingLogger: ({ logLevel, }: {
225
229
  logLevel: "verbose" | "info" | "warn" | "error";
226
230
  }) => boolean;
227
- getCompositionWithDimensionOverride: ({ height, width, args, compositionIdFromUi, chromiumOptions, envVariables, port, puppeteerInstance, timeoutInMilliseconds, browserExecutable, serveUrlOrWebpackUrl, indent, serializedInputPropsWithCustomSchema, logLevel, server, }: {
231
+ getCompositionWithDimensionOverride: ({ height, width, args, compositionIdFromUi, chromiumOptions, envVariables, port, puppeteerInstance, timeoutInMilliseconds, browserExecutable, serveUrlOrWebpackUrl, indent, serializedInputPropsWithCustomSchema, logLevel, server, offthreadVideoCacheSizeInBytes, }: {
228
232
  height: number | null;
229
233
  width: number | null;
230
234
  args: string[];
@@ -240,6 +244,7 @@ export declare const CliInternals: {
240
244
  logLevel: "verbose" | "info" | "warn" | "error";
241
245
  serializedInputPropsWithCustomSchema: string;
242
246
  server: import("@remotion/renderer").RemotionServer;
247
+ offthreadVideoCacheSizeInBytes: number | null;
243
248
  }) => Promise<{
244
249
  compositionId: string;
245
250
  reason: string;
@@ -5,6 +5,7 @@ exports.listOfRemotionPackages = void 0;
5
5
  exports.listOfRemotionPackages = [
6
6
  '@remotion/bundler',
7
7
  '@remotion/cli',
8
+ '@remotion/cloudrun',
8
9
  '@remotion/eslint-config',
9
10
  '@remotion/eslint-plugin',
10
11
  '@remotion/renderer',
@@ -1,9 +1,11 @@
1
- import type { AudioCodec, BrowserExecutable, Codec, OpenGlRenderer, PixelFormat, ProResProfile, StillImageFormat, VideoImageFormat } from '@remotion/renderer';
1
+ import type { AudioCodec, BrowserExecutable, Codec, OpenGlRenderer, PixelFormat, ProResProfile, StillImageFormat, VideoImageFormat, X264Preset } from '@remotion/renderer';
2
+ import type { BrowserSafeApis } from '@remotion/renderer/client';
2
3
  type CommandLineOptions = {
3
4
  ['browser-executable']: BrowserExecutable;
4
5
  ['pixel-format']: PixelFormat;
5
6
  ['image-format']: VideoImageFormat | StillImageFormat;
6
7
  ['prores-profile']: ProResProfile;
8
+ ['x264-preset']: X264Preset;
7
9
  ['bundle-cache']: string;
8
10
  ['env-file']: string;
9
11
  ['ignore-certificate-errors']: string;
@@ -11,6 +13,8 @@ type CommandLineOptions = {
11
13
  ['every-nth-frame']: number;
12
14
  ['number-of-gif-loops']: number;
13
15
  ['number-of-shared-audio-tags']: number;
16
+ [BrowserSafeApis.options.offthreadVideoCacheSizeInBytesOption
17
+ .cliFlag]: typeof BrowserSafeApis.options.offthreadVideoCacheSizeInBytesOption.type;
14
18
  version: string;
15
19
  codec: Codec;
16
20
  concurrency: number;
@@ -105,6 +105,9 @@ const parseCommandLine = () => {
105
105
  if (exports.parsedCli['prores-profile']) {
106
106
  config_1.Config.setProResProfile(String(exports.parsedCli['prores-profile']));
107
107
  }
108
+ if (exports.parsedCli['x264-preset']) {
109
+ config_1.Config.setX264Preset(String(exports.parsedCli['x264-preset']));
110
+ }
108
111
  if (exports.parsedCli.overwrite) {
109
112
  config_1.Config.setOverwriteOutput(exports.parsedCli.overwrite);
110
113
  }
@@ -142,6 +145,9 @@ const parseCommandLine = () => {
142
145
  if (typeof exports.parsedCli['video-bitrate'] !== 'undefined') {
143
146
  config_1.Config.setVideoBitrate(exports.parsedCli['video-bitrate']);
144
147
  }
148
+ if (typeof exports.parsedCli['offthreadvideo-cache-size-in-bytes'] !== 'undefined') {
149
+ config_1.Config.setOffthreadVideoCacheSizeInBytes(exports.parsedCli['offthreadvideo-cache-size-in-bytes']);
150
+ }
145
151
  };
146
152
  exports.parseCommandLine = parseCommandLine;
147
153
  const quietFlagProvided = () => exports.parsedCli.quiet || exports.parsedCli.q;
@@ -11,5 +11,5 @@ type Range = {
11
11
  type Ranges = Range[] & {
12
12
  type?: string;
13
13
  };
14
- export declare function parseRange(size: number, str: string | string[]): -1 | Ranges | -2;
14
+ export declare function parseRange(size: number, str: string | string[]): -1 | -2 | Ranges;
15
15
  export {};
@@ -42,6 +42,7 @@ const crashWithFrames = (crash) => (error) => {
42
42
  if (didHookOrderChange && !justRefreshedBecauseOfHooks) {
43
43
  // eslint-disable-next-line no-console
44
44
  console.log('Hook order changed. Reloading app...');
45
+ window.remotion_unsavedProps = false;
45
46
  window.location.reload();
46
47
  }
47
48
  else {
@@ -1,6 +1,6 @@
1
1
  declare const editorNames: readonly ["atom", "/Applications/Atom Beta.app/Contents/MacOS/Atom Beta", "brackets", "/Applications/Sublime Text.app/Contents/SharedSupport/bin/subl", "/Applications/Sublime Text Dev.app/Contents/SharedSupport/bin/subl", "/Applications/Sublime Text 2.app/Contents/SharedSupport/bin/subl", "code", "code-insiders", "vscodium", "/Applications/AppCode.app/Contents/MacOS/appcode", "/Applications/CLion.app/Contents/MacOS/clion", "/Applications/IntelliJ IDEA.app/Contents/MacOS/idea", "/Applications/PhpStorm.app/Contents/MacOS/phpstorm", "/Applications/PyCharm.app/Contents/MacOS/pycharm", "/Applications/PyCharm CE.app/Contents/MacOS/pycharm", "/Applications/RubyMine.app/Contents/MacOS/rubymine", "/Applications/WebStorm.app/Contents/MacOS/webstorm", "/Applications/GoLand.app/Contents/MacOS/goland", "/Applications/Rider.app/Contents/MacOS/rider", "mvim", "emacs", "gvim", "idea", "phpstorm", "pycharm", "rubymine", "subl", "sublime_text", "vim", "webstorm", "goland", "rider", "Brackets.exe", "Code.exe", "Code - Insiders.exe", "VSCodium.exe", "atom.exe", "sublime_text.exe", "notepad++.exe", "clion.exe", "clion64.exe", "idea.exe", "idea64.exe", "phpstorm.exe", "phpstorm64.exe", "pycharm.exe", "pycharm64.exe", "rubymine.exe", "rubymine64.exe", "webstorm.exe", "webstorm64.exe", "goland.exe", "goland64.exe", "rider.exe", "rider64.exe", "nano"];
2
2
  export declare const getDisplayNameForEditor: (editor: Editor | null) => string | null;
3
- type Editor = typeof editorNames[number];
3
+ type Editor = (typeof editorNames)[number];
4
4
  type ProcessAndCommand = {
5
5
  process: string;
6
6
  command: Editor;
@@ -3,10 +3,5 @@
3
3
  * https://github.com/webpack-contrib/webpack-hot-middleware#readme
4
4
  * and rewritten in TypeScript. This file is MIT licensed
5
5
  */
6
- /**
7
- * Based heavily on https://github.com/webpack/webpack/blob/
8
- * c0afdf9c6abc1dd70707c594e473802a566f7b6e/hot/only-dev-server.js
9
- * Original copyright Tobias Koppers @sokra (MIT license)
10
- */
11
6
  import type { HotMiddlewareOptions, ModuleMap } from './types';
12
7
  export declare const processUpdate: (hash: string | undefined, moduleMap: ModuleMap, options: HotMiddlewareOptions) => void;
@@ -7,6 +7,12 @@
7
7
  */
8
8
  Object.defineProperty(exports, "__esModule", { value: true });
9
9
  exports.processUpdate = void 0;
10
+ /**
11
+ * Based heavily on https://github.com/webpack/webpack/blob/
12
+ * c0afdf9c6abc1dd70707c594e473802a566f7b6e/hot/only-dev-server.js
13
+ * Original copyright Tobias Koppers @sokra (MIT license)
14
+ */
15
+ const NotificationCenter_1 = require("../../editor/components/Notifications/NotificationCenter");
10
16
  if (!__webpack_module__.hot) {
11
17
  throw new Error('[Fast refresh] Hot Module Replacement is disabled.');
12
18
  }
@@ -128,16 +134,29 @@ const processUpdate = function (hash, moduleMap, options) {
128
134
  }
129
135
  if (options.warn) {
130
136
  console.warn('[Fast refresh] Update check failed: ' + (err.stack || err.message));
131
- window.location.reload();
137
+ if (!window.remotion_unsavedProps) {
138
+ window.location.reload();
139
+ }
132
140
  }
133
141
  }
134
142
  function performReload() {
143
+ var _a;
135
144
  if (!reload) {
136
145
  return;
137
146
  }
138
147
  if (options.warn)
139
148
  console.warn('[Fast refresh] Reloading page');
140
- window.location.reload();
149
+ if (window.remotion_unsavedProps) {
150
+ (_a = NotificationCenter_1.notificationCenter.current) === null || _a === void 0 ? void 0 : _a.addNotification({
151
+ id: 'random',
152
+ content: 'Fast refresh needs to reload the page, but you have unsaved props. Save then reload the page to apply changes.',
153
+ created: new Date().getMilliseconds(),
154
+ duration: 1,
155
+ });
156
+ }
157
+ else {
158
+ window.location.reload();
159
+ }
141
160
  }
142
161
  };
143
162
  exports.processUpdate = processUpdate;
@@ -1,4 +1,4 @@
1
- import type { AudioCodec, Codec, makeCancelSignal, PixelFormat, ProResProfile, StillImageFormat, VideoImageFormat } from '@remotion/renderer';
1
+ import type { AudioCodec, Codec, makeCancelSignal, PixelFormat, ProResProfile, StillImageFormat, VideoImageFormat, X264Preset } from '@remotion/renderer';
2
2
  import type { EnumPath } from '../../editor/components/RenderModal/SchemaEditor/extract-enum-json-paths';
3
3
  import type { AggregateRenderProgress } from '../../progress-types';
4
4
  import type { RequiredChromiumOptions } from '../../required-chromium-options';
@@ -29,6 +29,7 @@ type RenderJobDynamicFields = ({
29
29
  jpegQuality: number;
30
30
  frame: number;
31
31
  scale: number;
32
+ offthreadVideoCacheSizeInBytes: number | null;
32
33
  } & RenderJobDynamicStatus) | ({
33
34
  type: 'video';
34
35
  imageFormat: VideoImageFormat;
@@ -43,12 +44,14 @@ type RenderJobDynamicFields = ({
43
44
  muted: boolean;
44
45
  enforceAudioTrack: boolean;
45
46
  proResProfile: ProResProfile | null;
47
+ x264Preset: X264Preset | null;
46
48
  pixelFormat: PixelFormat;
47
49
  audioBitrate: string | null;
48
50
  videoBitrate: string | null;
49
51
  everyNthFrame: number;
50
52
  numberOfGifLoops: number | null;
51
53
  disallowParallelEncoding: boolean;
54
+ offthreadVideoCacheSizeInBytes: number | null;
52
55
  } & RenderJobDynamicStatus);
53
56
  export type RenderJob = {
54
57
  startedAt: number;
@@ -88,6 +91,7 @@ type AddRenderRequestDynamicFields = {
88
91
  muted: boolean;
89
92
  enforceAudioTrack: boolean;
90
93
  proResProfile: ProResProfile | null;
94
+ x264Preset: X264Preset | null;
91
95
  pixelFormat: PixelFormat;
92
96
  audioBitrate: string | null;
93
97
  videoBitrate: string | null;
@@ -106,6 +110,7 @@ export type AddRenderRequest = {
106
110
  delayRenderTimeout: number;
107
111
  envVariables: Record<string, string>;
108
112
  serializedInputPropsWithCustomSchema: string;
113
+ offthreadVideoCacheSizeInBytes: number | null;
109
114
  } & AddRenderRequestDynamicFields;
110
115
  export type RemoveRenderRequest = {
111
116
  jobId: string;
@@ -4,7 +4,7 @@ exports.makeRetryPayload = void 0;
4
4
  const remotion_1 = require("remotion");
5
5
  const get_default_video_contexts_1 = require("./get-default-video-contexts");
6
6
  const makeRetryPayload = (job) => {
7
- var _a, _b, _c;
7
+ var _a, _b, _c, _d;
8
8
  const defaults = window.remotion_renderDefaults;
9
9
  if (!defaults) {
10
10
  throw new Error('defaults not set');
@@ -33,6 +33,7 @@ const makeRetryPayload = (job) => {
33
33
  initialMuted: defaults.muted,
34
34
  initialEnforceAudioTrack: defaults.enforceAudioTrack,
35
35
  initialProResProfile: defaults.proResProfile,
36
+ initialx264Preset: defaults.x264Preset,
36
37
  initialPixelFormat: defaults.pixelFormat,
37
38
  initialAudioBitrate: defaults.audioBitrate,
38
39
  initialVideoBitrate: defaults.videoBitrate,
@@ -48,6 +49,7 @@ const makeRetryPayload = (job) => {
48
49
  defaultProps: remotion_1.Internals.deserializeJSONWithCustomFields(job.serializedInputPropsWithCustomSchema),
49
50
  inFrameMark: null,
50
51
  outFrameMark: null,
52
+ initialOffthreadVideoCacheSizeInBytes: job.offthreadVideoCacheSizeInBytes,
51
53
  };
52
54
  }
53
55
  if (job.type === 'video') {
@@ -74,6 +76,7 @@ const makeRetryPayload = (job) => {
74
76
  initialRenderType,
75
77
  initialVideoCodecForVideoTab: initialVideoCodec,
76
78
  initialProResProfile: (_c = job.proResProfile) !== null && _c !== void 0 ? _c : defaults.proResProfile,
79
+ initialx264Preset: (_d = job.x264Preset) !== null && _d !== void 0 ? _d : defaults.x264Preset,
77
80
  initialPixelFormat: job.pixelFormat,
78
81
  initialAudioBitrate: job.audioBitrate,
79
82
  initialVideoBitrate: job.videoBitrate,
@@ -89,6 +92,7 @@ const makeRetryPayload = (job) => {
89
92
  defaultProps: remotion_1.Internals.deserializeJSONWithCustomFields(job.serializedInputPropsWithCustomSchema),
90
93
  inFrameMark: job.startFrame,
91
94
  outFrameMark: job.endFrame,
95
+ initialOffthreadVideoCacheSizeInBytes: job.offthreadVideoCacheSizeInBytes,
92
96
  };
93
97
  }
94
98
  throw new Error(`Job ${JSON.stringify(job)} Not implemented`);
@@ -41,6 +41,7 @@ const processStill = async ({ job, remotionRoot, entryPoint, onProgress, addClea
41
41
  addCleanupCallback,
42
42
  cancelSignal: job.cancelToken.cancelSignal,
43
43
  outputLocationFromUi: job.outName,
44
+ offthreadVideoCacheSizeInBytes: job.offthreadVideoCacheSizeInBytes,
44
45
  });
45
46
  };
46
47
  exports.processStill = processStill;
@@ -5,7 +5,7 @@ const convert_entry_point_to_serve_url_1 = require("../../convert-entry-point-to
5
5
  const get_cli_options_1 = require("../../get-cli-options");
6
6
  const render_1 = require("../../render-flows/render");
7
7
  const processVideoJob = async ({ job, remotionRoot, entryPoint, onProgress, addCleanupCallback, }) => {
8
- var _a, _b;
8
+ var _a, _b, _c;
9
9
  if (job.type !== 'video') {
10
10
  throw new Error('Expected video job');
11
11
  }
@@ -53,11 +53,13 @@ const processVideoJob = async ({ job, remotionRoot, entryPoint, onProgress, addC
53
53
  muted: job.muted,
54
54
  enforceAudioTrack: job.enforceAudioTrack,
55
55
  proResProfile: (_b = job.proResProfile) !== null && _b !== void 0 ? _b : undefined,
56
+ x264Preset: (_c = job.x264Preset) !== null && _c !== void 0 ? _c : undefined,
56
57
  pixelFormat: job.pixelFormat,
57
58
  videoBitrate: job.videoBitrate,
58
59
  numberOfGifLoops: job.numberOfGifLoops,
59
60
  audioCodec: job.audioCodec,
60
61
  disallowParallelEncoding: job.disallowParallelEncoding,
62
+ offthreadVideoCacheSizeInBytes: job.offthreadVideoCacheSizeInBytes,
61
63
  });
62
64
  };
63
65
  exports.processVideoJob = processVideoJob;
@@ -32,6 +32,7 @@ const handleAddRender = ({ input, entryPoint, remotionRoot, }) => {
32
32
  muted: input.muted,
33
33
  enforceAudioTrack: input.enforceAudioTrack,
34
34
  proResProfile: input.proResProfile,
35
+ x264Preset: input.x264Preset,
35
36
  pixelFormat: input.pixelFormat,
36
37
  audioBitrate: input.audioBitrate,
37
38
  videoBitrate: input.videoBitrate,
@@ -42,6 +43,7 @@ const handleAddRender = ({ input, entryPoint, remotionRoot, }) => {
42
43
  chromiumOptions: input.chromiumOptions,
43
44
  envVariables: input.envVariables,
44
45
  serializedInputPropsWithCustomSchema: input.serializedInputPropsWithCustomSchema,
46
+ offthreadVideoCacheSizeInBytes: input.offthreadVideoCacheSizeInBytes,
45
47
  },
46
48
  });
47
49
  }
@@ -66,6 +68,7 @@ const handleAddRender = ({ input, entryPoint, remotionRoot, }) => {
66
68
  delayRenderTimeout: input.delayRenderTimeout,
67
69
  envVariables: input.envVariables,
68
70
  serializedInputPropsWithCustomSchema: input.serializedInputPropsWithCustomSchema,
71
+ offthreadVideoCacheSizeInBytes: input.offthreadVideoCacheSizeInBytes,
69
72
  },
70
73
  entryPoint,
71
74
  remotionRoot,
@@ -1,4 +1,3 @@
1
- /// <reference types="node" />
2
1
  import type { IncomingMessage, ServerResponse } from 'node:http';
3
2
  import type { LiveEventsServer } from './live-events';
4
3
  export declare const handleRoutes: ({ hash, hashPrefix, request, response, liveEventsServer, getCurrentInputProps, getEnvVariables, remotionRoot, entryPoint, publicDir, }: {
@@ -28,7 +28,7 @@ const static404 = (response) => {
28
28
  response.end('The static/ prefix has been changed, this URL is no longer valid.');
29
29
  };
30
30
  const handleFallback = async ({ remotionRoot, hash, response, getCurrentInputProps, getEnvVariables, publicDir, }) => {
31
- var _a, _b;
31
+ var _a, _b, _c;
32
32
  const [edit] = await editorGuess;
33
33
  const displayName = (0, open_in_editor_1.getDisplayNameForEditor)(edit ? edit.command : null);
34
34
  const defaultJpegQuality = config_1.ConfigInternals.getJpegQuality();
@@ -40,6 +40,7 @@ const handleFallback = async ({ remotionRoot, hash, response, getCurrentInputPro
40
40
  const enforceAudioTrack = config_1.ConfigInternals.getEnforceAudioTrack();
41
41
  const pixelFormat = config_1.ConfigInternals.getPixelFormat();
42
42
  const proResProfile = (_a = config_1.ConfigInternals.getProResProfile()) !== null && _a !== void 0 ? _a : 'hq';
43
+ const x264Preset = (_b = config_1.ConfigInternals.getPresetProfile()) !== null && _b !== void 0 ? _b : 'medium';
43
44
  const audioBitrate = config_1.ConfigInternals.getAudioBitrate();
44
45
  const videoBitrate = config_1.ConfigInternals.getVideoBitrate();
45
46
  const everyNthFrame = config_1.ConfigInternals.getEveryNthFrame();
@@ -52,6 +53,7 @@ const handleFallback = async ({ remotionRoot, hash, response, getCurrentInputPro
52
53
  const headless = config_1.ConfigInternals.getChromiumHeadlessMode();
53
54
  const ignoreCertificateErrors = config_1.ConfigInternals.getIgnoreCertificateErrors();
54
55
  const openGlRenderer = config_1.ConfigInternals.getChromiumOpenGlRenderer();
56
+ const offthreadVideoCacheSizeInBytes = config_1.ConfigInternals.getOffthreadVideoCacheSizeInBytes();
55
57
  const maxConcurrency = renderer_1.RenderInternals.getMaxConcurrency();
56
58
  const minConcurrency = renderer_1.RenderInternals.getMinConcurrency();
57
59
  response.setHeader('content-type', 'text/html');
@@ -67,7 +69,7 @@ const handleFallback = async ({ remotionRoot, hash, response, getCurrentInputPro
67
69
  remotionRoot,
68
70
  studioServerCommand: packageManager === 'unknown' ? null : packageManager.startCommand,
69
71
  renderQueue: (0, queue_1.getRenderQueue)(),
70
- numberOfAudioTags: (_b = parse_command_line_1.parsedCli['number-of-shared-audio-tags']) !== null && _b !== void 0 ? _b : (0, number_of_shared_audio_tags_1.getNumberOfSharedAudioTags)(),
72
+ numberOfAudioTags: (_c = parse_command_line_1.parsedCli['number-of-shared-audio-tags']) !== null && _c !== void 0 ? _c : (0, number_of_shared_audio_tags_1.getNumberOfSharedAudioTags)(),
71
73
  publicFiles: (0, public_folder_1.getFiles)(),
72
74
  includeFavicon: true,
73
75
  title: 'Remotion Studio',
@@ -84,6 +86,7 @@ const handleFallback = async ({ remotionRoot, hash, response, getCurrentInputPro
84
86
  muted,
85
87
  enforceAudioTrack,
86
88
  proResProfile,
89
+ x264Preset,
87
90
  pixelFormat,
88
91
  audioBitrate,
89
92
  videoBitrate,
@@ -95,6 +98,7 @@ const handleFallback = async ({ remotionRoot, hash, response, getCurrentInputPro
95
98
  headless,
96
99
  ignoreCertificateErrors,
97
100
  openGlRenderer,
101
+ offthreadVideoCacheSizeInBytes,
98
102
  },
99
103
  publicFolderExists: (0, node_fs_1.existsSync)(publicDir) ? publicDir : null,
100
104
  }));
@@ -1,7 +1,7 @@
1
- import type { AudioCodec, Browser, BrowserExecutable, CancelSignal, ChromiumOptions, Codec, Crf, FfmpegOverrideFn, FrameRange, LogLevel, PixelFormat, ProResProfile, VideoImageFormat } from '@remotion/renderer';
1
+ import type { AudioCodec, Browser, BrowserExecutable, CancelSignal, ChromiumOptions, Codec, Crf, FfmpegOverrideFn, FrameRange, LogLevel, PixelFormat, ProResProfile, VideoImageFormat, X264Preset } from '@remotion/renderer';
2
2
  import type { Loop } from '../config/number-of-gif-loops';
3
3
  import type { JobProgressCallback } from '../preview-server/render-queue/job';
4
- export declare const renderVideoFlow: ({ remotionRoot, fullEntryPoint, indent, logLevel, browserExecutable, browser, chromiumOptions, scale, shouldOutputImageSequence, publicDir, envVariables, puppeteerTimeout, port, height, width, remainingArgs, compositionIdFromUi, entryPointReason, overwrite, quiet, concurrency, frameRange, everyNthFrame, outputLocationFromUI, jpegQuality, onProgress, addCleanupCallback, cancelSignal, crf, uiCodec, uiImageFormat, ffmpegOverride, audioBitrate, muted, enforceAudioTrack, proResProfile, pixelFormat, videoBitrate, numberOfGifLoops, audioCodec, serializedInputPropsWithCustomSchema, disallowParallelEncoding, }: {
4
+ export declare const renderVideoFlow: ({ remotionRoot, fullEntryPoint, indent, logLevel, browserExecutable, browser, chromiumOptions, scale, shouldOutputImageSequence, publicDir, envVariables, puppeteerTimeout, port, height, width, remainingArgs, compositionIdFromUi, entryPointReason, overwrite, quiet, concurrency, frameRange, everyNthFrame, outputLocationFromUI, jpegQuality, onProgress, addCleanupCallback, cancelSignal, crf, uiCodec, uiImageFormat, ffmpegOverride, audioBitrate, muted, enforceAudioTrack, proResProfile, x264Preset, pixelFormat, videoBitrate, numberOfGifLoops, audioCodec, serializedInputPropsWithCustomSchema, disallowParallelEncoding, offthreadVideoCacheSizeInBytes, }: {
5
5
  remotionRoot: string;
6
6
  fullEntryPoint: string;
7
7
  entryPointReason: string;
@@ -40,8 +40,10 @@ export declare const renderVideoFlow: ({ remotionRoot, fullEntryPoint, indent, l
40
40
  muted: boolean;
41
41
  enforceAudioTrack: boolean;
42
42
  proResProfile: ProResProfile | undefined;
43
+ x264Preset: X264Preset | undefined;
43
44
  pixelFormat: PixelFormat;
44
45
  numberOfGifLoops: Loop;
45
46
  audioCodec: AudioCodec | null;
46
47
  disallowParallelEncoding: boolean;
48
+ offthreadVideoCacheSizeInBytes: number | null;
47
49
  }) => Promise<void>;
@@ -47,7 +47,7 @@ const setup_cache_1 = require("../setup-cache");
47
47
  const should_use_non_overlaying_logger_1 = require("../should-use-non-overlaying-logger");
48
48
  const truthy_1 = require("../truthy");
49
49
  const user_passed_output_location_1 = require("../user-passed-output-location");
50
- const renderVideoFlow = async ({ remotionRoot, fullEntryPoint, indent, logLevel, browserExecutable, browser, chromiumOptions, scale, shouldOutputImageSequence, publicDir, envVariables, puppeteerTimeout, port, height, width, remainingArgs, compositionIdFromUi, entryPointReason, overwrite, quiet, concurrency, frameRange, everyNthFrame, outputLocationFromUI, jpegQuality, onProgress, addCleanupCallback, cancelSignal, crf, uiCodec, uiImageFormat, ffmpegOverride, audioBitrate, muted, enforceAudioTrack, proResProfile, pixelFormat, videoBitrate, numberOfGifLoops, audioCodec, serializedInputPropsWithCustomSchema, disallowParallelEncoding, }) => {
50
+ const renderVideoFlow = async ({ remotionRoot, fullEntryPoint, indent, logLevel, browserExecutable, browser, chromiumOptions, scale, shouldOutputImageSequence, publicDir, envVariables, puppeteerTimeout, port, height, width, remainingArgs, compositionIdFromUi, entryPointReason, overwrite, quiet, concurrency, frameRange, everyNthFrame, outputLocationFromUI, jpegQuality, onProgress, addCleanupCallback, cancelSignal, crf, uiCodec, uiImageFormat, ffmpegOverride, audioBitrate, muted, enforceAudioTrack, proResProfile, x264Preset, pixelFormat, videoBitrate, numberOfGifLoops, audioCodec, serializedInputPropsWithCustomSchema, disallowParallelEncoding, offthreadVideoCacheSizeInBytes, }) => {
51
51
  var _a;
52
52
  const downloads = [];
53
53
  if (browserExecutable) {
@@ -138,6 +138,7 @@ const renderVideoFlow = async ({ remotionRoot, fullEntryPoint, indent, logLevel,
138
138
  remotionRoot,
139
139
  logLevel,
140
140
  webpackConfigOrServeUrl: urlOrBundle,
141
+ offthreadVideoCacheSizeInBytes,
141
142
  });
142
143
  addCleanupCallback(() => server.closeServer(false));
143
144
  const { compositionId, config, reason, argsAfterComposition } = await (0, get_composition_with_dimension_override_1.getCompositionWithDimensionOverride)({
@@ -156,6 +157,7 @@ const renderVideoFlow = async ({ remotionRoot, fullEntryPoint, indent, logLevel,
156
157
  timeoutInMilliseconds: puppeteerTimeout,
157
158
  logLevel,
158
159
  server,
160
+ offthreadVideoCacheSizeInBytes,
159
161
  });
160
162
  const { codec, reason: codecReason } = (0, get_final_output_codec_1.getFinalOutputCodec)({
161
163
  cliFlag: parse_command_line_1.parsedCli.codec,
@@ -242,6 +244,7 @@ const renderVideoFlow = async ({ remotionRoot, fullEntryPoint, indent, logLevel,
242
244
  staticBase: null,
243
245
  data: config.props,
244
246
  }).serializedString,
247
+ offthreadVideoCacheSizeInBytes,
245
248
  });
246
249
  updateRenderProgress({ newline: true, printToConsole: true });
247
250
  log_1.Log.infoAdvanced({ indent, logLevel }, chalk_1.chalk.blue(`▶ ${absoluteOutputFile}`));
@@ -268,6 +271,7 @@ const renderVideoFlow = async ({ remotionRoot, fullEntryPoint, indent, logLevel,
268
271
  overwrite,
269
272
  pixelFormat,
270
273
  proResProfile,
274
+ x264Preset,
271
275
  jpegQuality: jpegQuality !== null && jpegQuality !== void 0 ? jpegQuality : renderer_1.RenderInternals.DEFAULT_JPEG_QUALITY,
272
276
  chromiumOptions,
273
277
  timeoutInMilliseconds: puppeteerTimeout,
@@ -314,6 +318,7 @@ const renderVideoFlow = async ({ remotionRoot, fullEntryPoint, indent, logLevel,
314
318
  indent: undefined,
315
319
  staticBase: null,
316
320
  }).serializedString,
321
+ offthreadVideoCacheSizeInBytes,
317
322
  });
318
323
  updateRenderProgress({ newline: true, printToConsole: true });
319
324
  log_1.Log.infoAdvanced({ indent, logLevel }, chalk_1.chalk.blue(`${exists ? '○' : '+'} ${absoluteOutputFile}`));
@@ -1,6 +1,6 @@
1
1
  import type { Browser, BrowserExecutable, CancelSignal, ChromiumOptions, LogLevel, StillImageFormat } from '@remotion/renderer';
2
2
  import type { JobProgressCallback } from '../preview-server/render-queue/job';
3
- export declare const renderStillFlow: ({ remotionRoot, fullEntryPoint, entryPointReason, remainingArgs, browser, browserExecutable, chromiumOptions, envVariables, height, serializedInputPropsWithCustomSchema, overwrite, port, publicDir, puppeteerTimeout, jpegQuality, scale, stillFrame, width, compositionIdFromUi, imageFormatFromUi, logLevel, onProgress, indent, addCleanupCallback, cancelSignal, outputLocationFromUi, }: {
3
+ export declare const renderStillFlow: ({ remotionRoot, fullEntryPoint, entryPointReason, remainingArgs, browser, browserExecutable, chromiumOptions, envVariables, height, serializedInputPropsWithCustomSchema, overwrite, port, publicDir, puppeteerTimeout, jpegQuality, scale, stillFrame, width, compositionIdFromUi, imageFormatFromUi, logLevel, onProgress, indent, addCleanupCallback, cancelSignal, outputLocationFromUi, offthreadVideoCacheSizeInBytes, }: {
4
4
  remotionRoot: string;
5
5
  fullEntryPoint: string;
6
6
  entryPointReason: string;
@@ -27,4 +27,5 @@ export declare const renderStillFlow: ({ remotionRoot, fullEntryPoint, entryPoin
27
27
  addCleanupCallback: (cb: () => void) => void;
28
28
  cancelSignal: CancelSignal | null;
29
29
  outputLocationFromUi: string | null;
30
+ offthreadVideoCacheSizeInBytes: number | null;
30
31
  }) => Promise<void>;
@@ -24,7 +24,7 @@ const setup_cache_1 = require("../setup-cache");
24
24
  const should_use_non_overlaying_logger_1 = require("../should-use-non-overlaying-logger");
25
25
  const truthy_1 = require("../truthy");
26
26
  const user_passed_output_location_1 = require("../user-passed-output-location");
27
- const renderStillFlow = async ({ remotionRoot, fullEntryPoint, entryPointReason, remainingArgs, browser, browserExecutable, chromiumOptions, envVariables, height, serializedInputPropsWithCustomSchema, overwrite, port, publicDir, puppeteerTimeout, jpegQuality, scale, stillFrame, width, compositionIdFromUi, imageFormatFromUi, logLevel, onProgress, indent, addCleanupCallback, cancelSignal, outputLocationFromUi, }) => {
27
+ const renderStillFlow = async ({ remotionRoot, fullEntryPoint, entryPointReason, remainingArgs, browser, browserExecutable, chromiumOptions, envVariables, height, serializedInputPropsWithCustomSchema, overwrite, port, publicDir, puppeteerTimeout, jpegQuality, scale, stillFrame, width, compositionIdFromUi, imageFormatFromUi, logLevel, onProgress, indent, addCleanupCallback, cancelSignal, outputLocationFromUi, offthreadVideoCacheSizeInBytes, }) => {
28
28
  var _a, _b;
29
29
  const aggregate = (0, progress_types_1.initialAggregateRenderProgress)();
30
30
  const updatesDontOverwrite = (0, should_use_non_overlaying_logger_1.shouldUseNonOverlayingLogger)({ logLevel });
@@ -88,6 +88,7 @@ const renderStillFlow = async ({ remotionRoot, fullEntryPoint, entryPointReason,
88
88
  remotionRoot,
89
89
  logLevel,
90
90
  webpackConfigOrServeUrl: urlOrBundle,
91
+ offthreadVideoCacheSizeInBytes,
91
92
  });
92
93
  addCleanupCallback(() => server.closeServer(false));
93
94
  addCleanupCallback(() => cleanupBundle());
@@ -109,6 +110,7 @@ const renderStillFlow = async ({ remotionRoot, fullEntryPoint, entryPointReason,
109
110
  timeoutInMilliseconds: puppeteerTimeout,
110
111
  logLevel,
111
112
  server,
113
+ offthreadVideoCacheSizeInBytes,
112
114
  });
113
115
  const { format: imageFormat, source } = (0, determine_image_format_1.determineFinalStillImageFormat)({
114
116
  cliFlag: (_a = parse_command_line_1.parsedCli['image-format']) !== null && _a !== void 0 ? _a : null,
@@ -175,6 +177,7 @@ const renderStillFlow = async ({ remotionRoot, fullEntryPoint, entryPointReason,
175
177
  staticBase: null,
176
178
  data: config.props,
177
179
  }).serializedString,
180
+ offthreadVideoCacheSizeInBytes,
178
181
  });
179
182
  aggregate.rendering = {
180
183
  frames: 1,
package/dist/render.js CHANGED
@@ -25,7 +25,7 @@ const render = async (remotionRoot, args) => {
25
25
  log_1.Log.error('--frame flag was passed to the `render` command. This flag only works with the `still` command. Did you mean `--frames`? See reference: https://www.remotion.dev/docs/cli/');
26
26
  process.exit(1);
27
27
  }
28
- const { concurrency, frameRange, shouldOutputImageSequence, overwrite, inputProps, envVariables, jpegQuality, browser, browserExecutable, scale, chromiumOptions, port, everyNthFrame, puppeteerTimeout, publicDir, height, width, crf, ffmpegOverride, audioBitrate, muted, enforceAudioTrack, proResProfile, pixelFormat, videoBitrate, numberOfGifLoops, } = await (0, get_cli_options_1.getCliOptions)({
28
+ const { concurrency, frameRange, shouldOutputImageSequence, overwrite, inputProps, envVariables, jpegQuality, browser, browserExecutable, scale, chromiumOptions, port, everyNthFrame, puppeteerTimeout, publicDir, height, width, crf, ffmpegOverride, audioBitrate, muted, enforceAudioTrack, proResProfile, x264Preset, pixelFormat, videoBitrate, numberOfGifLoops, offthreadVideoCacheSizeInBytes, } = await (0, get_cli_options_1.getCliOptions)({
29
29
  isLambda: false,
30
30
  type: 'series',
31
31
  remotionRoot,
@@ -75,11 +75,13 @@ const render = async (remotionRoot, args) => {
75
75
  muted,
76
76
  enforceAudioTrack,
77
77
  proResProfile,
78
+ x264Preset,
78
79
  pixelFormat,
79
80
  videoBitrate,
80
81
  numberOfGifLoops,
81
82
  audioCodec,
82
83
  disallowParallelEncoding: false,
84
+ offthreadVideoCacheSizeInBytes,
83
85
  });
84
86
  };
85
87
  exports.render = render;
package/dist/still.js CHANGED
@@ -22,7 +22,7 @@ const still = async (remotionRoot, args) => {
22
22
  log_1.Log.error('--frames flag was passed to the `still` command. This flag only works with the `render` command. Did you mean `--frame`? See reference: https://www.remotion.dev/docs/cli/');
23
23
  process.exit(1);
24
24
  }
25
- const { browser, browserExecutable, chromiumOptions, envVariables, height, inputProps, overwrite, port, publicDir, puppeteerTimeout, jpegQuality, scale, stillFrame, width, logLevel, } = await (0, get_cli_options_1.getCliOptions)({
25
+ const { browser, browserExecutable, chromiumOptions, envVariables, height, inputProps, overwrite, port, publicDir, puppeteerTimeout, jpegQuality, scale, stillFrame, width, logLevel, offthreadVideoCacheSizeInBytes, } = await (0, get_cli_options_1.getCliOptions)({
26
26
  isLambda: false,
27
27
  type: 'still',
28
28
  remotionRoot,
@@ -60,6 +60,7 @@ const still = async (remotionRoot, args) => {
60
60
  },
61
61
  cancelSignal: null,
62
62
  outputLocationFromUi: null,
63
+ offthreadVideoCacheSizeInBytes,
63
64
  });
64
65
  };
65
66
  exports.still = still;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@remotion/cli",
3
- "version": "4.0.21",
3
+ "version": "4.0.23",
4
4
  "description": "CLI for Remotion",
5
5
  "main": "dist/index.js",
6
6
  "sideEffects": false,
@@ -35,11 +35,11 @@
35
35
  "prompts": "2.4.1",
36
36
  "semver": "7.5.3",
37
37
  "source-map": "0.6.1",
38
- "@remotion/media-utils": "4.0.21",
39
- "@remotion/player": "4.0.21",
40
- "@remotion/bundler": "4.0.21",
41
- "@remotion/renderer": "4.0.21",
42
- "remotion": "4.0.21"
38
+ "@remotion/renderer": "4.0.23",
39
+ "remotion": "4.0.23",
40
+ "@remotion/bundler": "4.0.23",
41
+ "@remotion/media-utils": "4.0.23",
42
+ "@remotion/player": "4.0.23"
43
43
  },
44
44
  "peerDependencies": {
45
45
  "react": ">=16.8.0",
@@ -58,14 +58,14 @@
58
58
  "eslint-plugin-10x": "1.5.2",
59
59
  "eslint-plugin-react": "7.32.2",
60
60
  "eslint-plugin-react-hooks": "4.4.0",
61
- "prettier": "^2.7.1",
61
+ "prettier": "3.0.2",
62
62
  "prettier-plugin-organize-imports": "^3.2.2",
63
63
  "react": "^18.0.0",
64
64
  "react-dom": "^18.0.0",
65
65
  "vitest": "0.31.1",
66
66
  "zod": "^3.21.4",
67
- "@remotion/zod-types": "4.0.21",
68
- "@remotion/tailwind": "4.0.21"
67
+ "@remotion/zod-types": "4.0.23",
68
+ "@remotion/tailwind": "4.0.23"
69
69
  },
70
70
  "keywords": [
71
71
  "remotion",