@remotion/studio 4.0.410 → 4.0.412

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.
@@ -23,7 +23,7 @@ const Modals = ({ readOnlyStudio }) => {
23
23
  const { selectedModal: modalContextType } = (0, react_1.useContext)(modals_1.ModalsContext);
24
24
  const canRender = (0, react_1.useContext)(client_id_1.StudioServerConnectionCtx).previewServerState.type ===
25
25
  'connected';
26
- return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [modalContextType && modalContextType.type === 'duplicate-comp' && ((0, jsx_runtime_1.jsx)(DuplicateComposition_1.DuplicateComposition, { compositionType: modalContextType.compositionType, compositionId: modalContextType.compositionId })), modalContextType && modalContextType.type === 'delete-comp' && ((0, jsx_runtime_1.jsx)(DeleteComposition_1.DeleteComposition, { compositionId: modalContextType.compositionId })), modalContextType && modalContextType.type === 'rename-comp' && ((0, jsx_runtime_1.jsx)(RenameComposition_1.RenameComposition, { compositionId: modalContextType.compositionId })), modalContextType && modalContextType.type === 'input-props-override' && ((0, jsx_runtime_1.jsx)(OverrideInputProps_1.OverrideInputPropsModal, {})), modalContextType && modalContextType.type === 'web-render' && ((0, jsx_runtime_1.jsx)(WebRenderModal_1.WebRenderModalWithLoader, { type: "web-render", initialFrame: modalContextType.initialFrame, compositionId: modalContextType.compositionId, defaultProps: modalContextType.defaultProps, inFrameMark: modalContextType.inFrameMark, outFrameMark: modalContextType.outFrameMark, initialLogLevel: modalContextType.initialLogLevel, initialLicenseKey: modalContextType.initialLicenseKey })), modalContextType &&
26
+ return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [modalContextType && modalContextType.type === 'duplicate-comp' && ((0, jsx_runtime_1.jsx)(DuplicateComposition_1.DuplicateComposition, { compositionType: modalContextType.compositionType, compositionId: modalContextType.compositionId })), modalContextType && modalContextType.type === 'delete-comp' && ((0, jsx_runtime_1.jsx)(DeleteComposition_1.DeleteComposition, { compositionId: modalContextType.compositionId })), modalContextType && modalContextType.type === 'rename-comp' && ((0, jsx_runtime_1.jsx)(RenameComposition_1.RenameComposition, { compositionId: modalContextType.compositionId })), modalContextType && modalContextType.type === 'input-props-override' && ((0, jsx_runtime_1.jsx)(OverrideInputProps_1.OverrideInputPropsModal, {})), modalContextType && modalContextType.type === 'web-render' && ((0, jsx_runtime_1.jsx)(WebRenderModal_1.WebRenderModalWithLoader, { ...modalContextType })), modalContextType &&
27
27
  canRender &&
28
28
  modalContextType.type === 'server-render' && ((0, jsx_runtime_1.jsx)(ServerRenderModal_1.RenderModalWithLoader, { initialFrame: modalContextType.initialFrame, initialDarkMode: modalContextType.initialDarkMode, compositionId: modalContextType.compositionId, initialVideoImageFormat: modalContextType.initialVideoImageFormat, initialJpegQuality: modalContextType.initialJpegQuality, initialScale: modalContextType.initialScale, initialLogLevel: modalContextType.initialLogLevel, initialOffthreadVideoCacheSizeInBytes: modalContextType.initialOffthreadVideoCacheSizeInBytes, initialOffthreadVideoThreads: modalContextType.initialOffthreadVideoThreads, initialMediaCacheSizeInBytes: modalContextType.initialMediaCacheSizeInBytes, initialConcurrency: modalContextType.initialConcurrency, maxConcurrency: modalContextType.maxConcurrency, minConcurrency: modalContextType.minConcurrency, initialStillImageFormat: modalContextType.initialStillImageFormat, initialMuted: modalContextType.initialMuted, initialEnforceAudioTrack: modalContextType.initialEnforceAudioTrack, initialProResProfile: modalContextType.initialProResProfile, initialx264Preset: modalContextType.initialx264Preset, initialPixelFormat: modalContextType.initialPixelFormat, initialAudioBitrate: modalContextType.initialAudioBitrate, initialVideoBitrate: modalContextType.initialVideoBitrate, initialEveryNthFrame: modalContextType.initialEveryNthFrame, initialNumberOfGifLoops: modalContextType.initialNumberOfGifLoops, initialDelayRenderTimeout: modalContextType.initialDelayRenderTimeout, initialEnvVariables: modalContextType.initialEnvVariables, initialDisableWebSecurity: modalContextType.initialDisableWebSecurity, initialGl: modalContextType.initialOpenGlRenderer, initialHeadless: modalContextType.initialHeadless, initialIgnoreCertificateErrors: modalContextType.initialIgnoreCertificateErrors, initialEncodingBufferSize: modalContextType.initialEncodingBufferSize, initialEncodingMaxRate: modalContextType.initialEncodingMaxRate, initialUserAgent: modalContextType.initialUserAgent, initialColorSpace: modalContextType.initialColorSpace, initialMultiProcessOnLinux: modalContextType.initialMultiProcessOnLinux, initialRepro: modalContextType.initialRepro, initialBeep: modalContextType.initialBeep, initialForSeamlessAacConcatenation: modalContextType.initialForSeamlessAacConcatenation, defaultProps: modalContextType.defaultProps, inFrameMark: modalContextType.inFrameMark, outFrameMark: modalContextType.outFrameMark, defaultConfigurationAudioCodec: modalContextType.defaultConfigurationAudioCodec, defaultConfigurationVideoCodec: modalContextType.defaultConfigurationVideoCodec, renderTypeOfLastRender: modalContextType.renderTypeOfLastRender, defaultMetadata: modalContextType.defaulMetadata, initialHardwareAcceleration: modalContextType.initialHardwareAcceleration, initialChromeMode: modalContextType.initialChromeMode, renderDefaults: modalContextType.renderDefaults })), modalContextType && modalContextType.type === 'render-progress' && ((0, jsx_runtime_1.jsx)(RenderStatusModal_1.RenderStatusModal, { jobId: modalContextType.jobId })), modalContextType && modalContextType.type === 'update' && ((0, jsx_runtime_1.jsx)(UpdateModal_1.UpdateModal, { info: modalContextType.info, knownBugs: modalContextType.knownBugs })), modalContextType && modalContextType.type === 'install-packages' && ((0, jsx_runtime_1.jsx)(InstallPackage_1.InstallPackageModal, { packageManager: modalContextType.packageManager })), modalContextType && modalContextType.type === 'quick-switcher' && ((0, jsx_runtime_1.jsx)(QuickSwitcher_1.default, { readOnlyStudio: readOnlyStudio, invocationTimestamp: modalContextType.invocationTimestamp, initialMode: modalContextType.mode })), process.env.ASK_AI_ENABLED && (0, jsx_runtime_1.jsx)(AskAiModal_1.AskAiModal, {})] }));
29
29
  };
@@ -225,6 +225,20 @@ const RenderButton = ({ readOnlyStudio, }) => {
225
225
  outFrameMark: outFrame,
226
226
  initialLogLevel: defaults.logLevel,
227
227
  initialLicenseKey: defaults.publicLicenseKey,
228
+ initialStillImageFormat: defaults.stillImageFormat,
229
+ initialScale: defaults.scale,
230
+ initialDelayRenderTimeout: defaults.delayRenderTimeout,
231
+ initialDefaultOutName: null,
232
+ initialContainer: null,
233
+ initialVideoCodec: null,
234
+ initialAudioCodec: null,
235
+ initialAudioBitrate: null,
236
+ initialVideoBitrate: null,
237
+ initialHardwareAcceleration: null,
238
+ initialKeyframeIntervalInSeconds: null,
239
+ initialTransparent: null,
240
+ initialMuted: null,
241
+ initialMediaCacheSizeInBytes: defaults.mediaCacheSizeInBytes,
228
242
  });
229
243
  }, [video, setSelectedModal, getCurrentFrame, props, inFrame, outFrame]);
230
244
  const onClick = (0, react_1.useCallback)(() => {
@@ -81,7 +81,8 @@ const validateOutnameForStill = ({ outName, stillImageFormat, }) => {
81
81
  // TODO: Shortcut: Shift + R
82
82
  // TODO: Apply defaultCodec
83
83
  // TODO: Apply defaultOutName
84
- const WebRenderModal = ({ initialFrame, defaultProps, inFrameMark, outFrameMark, initialLogLevel, initialLicenseKey, }) => {
84
+ const WebRenderModal = ({ initialFrame, defaultProps, inFrameMark, outFrameMark, initialLogLevel, initialLicenseKey, initialStillImageFormat, initialDefaultOutName, initialScale, initialDelayRenderTimeout, initialMediaCacheSizeInBytes, initialContainer, initialVideoCodec, initialAudioCodec, initialAudioBitrate, initialVideoBitrate, initialHardwareAcceleration, initialKeyframeIntervalInSeconds, initialTransparent, initialMuted, }) => {
85
+ var _a;
85
86
  const context = (0, react_1.useContext)(ResolveCompositionBeforeModal_1.ResolvedCompositionContext);
86
87
  const { setSelectedModal } = (0, react_1.useContext)(modals_1.ModalsContext);
87
88
  const { setSidebarCollapsedState } = (0, react_1.useContext)(sidebar_1.SidebarContext);
@@ -97,26 +98,26 @@ const WebRenderModal = ({ initialFrame, defaultProps, inFrameMark, outFrameMark,
97
98
  });
98
99
  const [renderMode, setRenderMode] = (0, react_1.useState)(isVideo ? 'video' : 'still');
99
100
  const [tab, setTab] = (0, react_1.useState)('general');
100
- const [imageFormat, setImageFormat] = (0, react_1.useState)('png');
101
+ const [imageFormat, setImageFormat] = (0, react_1.useState)(() => initialStillImageFormat !== null && initialStillImageFormat !== void 0 ? initialStillImageFormat : 'png');
101
102
  const [frame, setFrame] = (0, react_1.useState)(() => initialFrame);
102
103
  const [logLevel, setLogLevel] = (0, react_1.useState)(() => initialLogLevel);
103
104
  const [inputProps, setInputProps] = (0, react_1.useState)(() => defaultProps);
104
- const [delayRenderTimeout, setDelayRenderTimeout] = (0, react_1.useState)(30000);
105
- const [mediaCacheSizeInBytes, setMediaCacheSizeInBytes] = (0, react_1.useState)(null);
105
+ const [delayRenderTimeout, setDelayRenderTimeout] = (0, react_1.useState)(initialDelayRenderTimeout !== null && initialDelayRenderTimeout !== void 0 ? initialDelayRenderTimeout : 30000);
106
+ const [mediaCacheSizeInBytes, setMediaCacheSizeInBytes] = (0, react_1.useState)(initialMediaCacheSizeInBytes);
106
107
  const [saving, setSaving] = (0, react_1.useState)(false);
107
108
  // Video-specific state
108
- const [codec, setCodec] = (0, react_1.useState)('h264');
109
- const [container, setContainer] = (0, react_1.useState)('mp4');
110
- const [audioCodec, setAudioCodec] = (0, react_1.useState)('aac');
111
- const [audioBitrate, setAudioBitrate] = (0, react_1.useState)('medium');
112
- const [videoBitrate, setVideoBitrate] = (0, react_1.useState)('high');
113
- const [hardwareAcceleration, setHardwareAcceleration] = (0, react_1.useState)('no-preference');
114
- const [keyframeIntervalInSeconds, setKeyframeIntervalInSeconds] = (0, react_1.useState)(5);
115
- const [startFrame, setStartFrame] = (0, react_1.useState)(() => inFrameMark !== null && inFrameMark !== void 0 ? inFrameMark : null);
116
- const [endFrame, setEndFrame] = (0, react_1.useState)(() => outFrameMark !== null && outFrameMark !== void 0 ? outFrameMark : null);
117
- const [transparent, setTransparent] = (0, react_1.useState)(false);
118
- const [muted, setMuted] = (0, react_1.useState)(false);
119
- const [scale, setScale] = (0, react_1.useState)(1);
109
+ const [codec, setCodec] = (0, react_1.useState)(initialVideoCodec !== null && initialVideoCodec !== void 0 ? initialVideoCodec : 'h264');
110
+ const [container, setContainer] = (0, react_1.useState)(initialContainer !== null && initialContainer !== void 0 ? initialContainer : 'mp4');
111
+ const [audioCodec, setAudioCodec] = (0, react_1.useState)(initialAudioCodec !== null && initialAudioCodec !== void 0 ? initialAudioCodec : 'aac');
112
+ const [audioBitrate, setAudioBitrate] = (0, react_1.useState)(initialAudioBitrate !== null && initialAudioBitrate !== void 0 ? initialAudioBitrate : 'medium');
113
+ const [videoBitrate, setVideoBitrate] = (0, react_1.useState)(initialVideoBitrate !== null && initialVideoBitrate !== void 0 ? initialVideoBitrate : 'high');
114
+ const [hardwareAcceleration, setHardwareAcceleration] = (0, react_1.useState)((_a = initialHardwareAcceleration) !== null && _a !== void 0 ? _a : 'no-preference');
115
+ const [keyframeIntervalInSeconds, setKeyframeIntervalInSeconds] = (0, react_1.useState)(initialKeyframeIntervalInSeconds !== null && initialKeyframeIntervalInSeconds !== void 0 ? initialKeyframeIntervalInSeconds : 5);
116
+ const [startFrame, setStartFrame] = (0, react_1.useState)(() => inFrameMark);
117
+ const [endFrame, setEndFrame] = (0, react_1.useState)(() => outFrameMark);
118
+ const [transparent, setTransparent] = (0, react_1.useState)(initialTransparent !== null && initialTransparent !== void 0 ? initialTransparent : false);
119
+ const [muted, setMuted] = (0, react_1.useState)(initialMuted !== null && initialMuted !== void 0 ? initialMuted : false);
120
+ const [scale, setScale] = (0, react_1.useState)(initialScale !== null && initialScale !== void 0 ? initialScale : 1);
120
121
  const [licenseKey, setLicenseKey] = (0, react_1.useState)(initialLicenseKey);
121
122
  const encodableAudioCodecs = (0, use_encodable_audio_codecs_1.useEncodableAudioCodecs)(container);
122
123
  const encodableVideoCodecs = (0, use_encodable_video_codecs_1.useEncodableVideoCodecs)(container);
@@ -146,7 +147,10 @@ const WebRenderModal = ({ initialFrame, defaultProps, inFrameMark, outFrameMark,
146
147
  }
147
148
  return Math.max(0, Math.min(finalEndFrame, startFrame));
148
149
  }, [finalEndFrame, startFrame]);
149
- const [initialOutName] = (0, react_1.useState)(() => {
150
+ const [initialOutNameState] = (0, react_1.useState)(() => {
151
+ if (initialDefaultOutName) {
152
+ return initialDefaultOutName;
153
+ }
150
154
  return (0, studio_shared_1.getDefaultOutLocation)({
151
155
  compositionName: resolvedComposition.id,
152
156
  defaultExtension: renderMode === 'still'
@@ -159,7 +163,7 @@ const WebRenderModal = ({ initialFrame, defaultProps, inFrameMark, outFrameMark,
159
163
  clientSideRender: true,
160
164
  });
161
165
  });
162
- const [outName, setOutName] = (0, react_1.useState)(() => initialOutName);
166
+ const [outName, setOutName] = (0, react_1.useState)(() => initialOutNameState);
163
167
  const setStillFormat = (0, react_1.useCallback)((format) => {
164
168
  setImageFormat(format);
165
169
  setOutName((prev) => {
@@ -1,4 +1,4 @@
1
- import type { RenderStillOnWebImageFormat } from '@remotion/web-renderer';
1
+ import type { RenderStillOnWebImageFormat, WebRendererAudioCodec, WebRendererContainer, WebRendererQuality, WebRendererVideoCodec } from '@remotion/web-renderer';
2
2
  import type { LogLevel } from 'remotion';
3
3
  export type ClientRenderJobProgress = {
4
4
  renderedFrames: number;
@@ -48,13 +48,13 @@ export type ClientStillRenderJob = ClientRenderJobBase & {
48
48
  } & ClientRenderJobDynamicStatus;
49
49
  export type ClientVideoRenderJob = ClientRenderJobBase & {
50
50
  type: 'client-video';
51
- container: string;
52
- videoCodec: string;
53
- audioCodec: string;
51
+ container: WebRendererContainer;
52
+ videoCodec: WebRendererVideoCodec;
53
+ audioCodec: WebRendererAudioCodec;
54
54
  startFrame: number;
55
55
  endFrame: number;
56
- audioBitrate: string;
57
- videoBitrate: string;
56
+ audioBitrate: WebRendererQuality;
57
+ videoBitrate: WebRendererQuality;
58
58
  hardwareAcceleration: string;
59
59
  keyframeIntervalInSeconds: number;
60
60
  transparent: boolean;
@@ -16468,7 +16468,21 @@ var makeClientRetryPayload = (job) => {
16468
16468
  initialLicenseKey: job.licenseKey,
16469
16469
  defaultProps: job.inputProps,
16470
16470
  inFrameMark: job.type === "client-video" ? job.startFrame : null,
16471
- outFrameMark: job.type === "client-video" ? job.endFrame : null
16471
+ outFrameMark: job.type === "client-video" ? job.endFrame : null,
16472
+ initialDefaultOutName: job.outName,
16473
+ initialScale: job.scale,
16474
+ initialDelayRenderTimeout: job.delayRenderTimeout,
16475
+ initialMediaCacheSizeInBytes: job.mediaCacheSizeInBytes,
16476
+ initialAudioBitrate: job.type === "client-video" ? job.audioBitrate : null,
16477
+ initialAudioCodec: job.type === "client-video" ? job.audioCodec : null,
16478
+ initialContainer: job.type === "client-video" ? job.container : null,
16479
+ initialHardwareAcceleration: job.type === "client-video" ? job.hardwareAcceleration : null,
16480
+ initialVideoBitrate: job.type === "client-video" ? job.videoBitrate : null,
16481
+ initialVideoCodec: job.type === "client-video" ? job.videoCodec : null,
16482
+ initialStillImageFormat: job.type === "client-still" ? job.imageFormat : "png",
16483
+ initialKeyframeIntervalInSeconds: job.type === "client-video" ? job.keyframeIntervalInSeconds : null,
16484
+ initialMuted: job.type === "client-video" ? job.muted : null,
16485
+ initialTransparent: job.type === "client-video" ? job.transparent : null
16472
16486
  };
16473
16487
  };
16474
16488
 
@@ -18325,7 +18339,21 @@ var RenderButton = ({
18325
18339
  inFrameMark: inFrame,
18326
18340
  outFrameMark: outFrame,
18327
18341
  initialLogLevel: defaults.logLevel,
18328
- initialLicenseKey: defaults.publicLicenseKey
18342
+ initialLicenseKey: defaults.publicLicenseKey,
18343
+ initialStillImageFormat: defaults.stillImageFormat,
18344
+ initialScale: defaults.scale,
18345
+ initialDelayRenderTimeout: defaults.delayRenderTimeout,
18346
+ initialDefaultOutName: null,
18347
+ initialContainer: null,
18348
+ initialVideoCodec: null,
18349
+ initialAudioCodec: null,
18350
+ initialAudioBitrate: null,
18351
+ initialVideoBitrate: null,
18352
+ initialHardwareAcceleration: null,
18353
+ initialKeyframeIntervalInSeconds: null,
18354
+ initialTransparent: null,
18355
+ initialMuted: null,
18356
+ initialMediaCacheSizeInBytes: defaults.mediaCacheSizeInBytes
18329
18357
  });
18330
18358
  }, [video, setSelectedModal, getCurrentFrame2, props, inFrame, outFrame]);
18331
18359
  const onClick = useCallback88(() => {
@@ -45758,7 +45786,21 @@ var WebRenderModal = ({
45758
45786
  inFrameMark,
45759
45787
  outFrameMark,
45760
45788
  initialLogLevel,
45761
- initialLicenseKey
45789
+ initialLicenseKey,
45790
+ initialStillImageFormat,
45791
+ initialDefaultOutName,
45792
+ initialScale,
45793
+ initialDelayRenderTimeout,
45794
+ initialMediaCacheSizeInBytes,
45795
+ initialContainer,
45796
+ initialVideoCodec,
45797
+ initialAudioCodec,
45798
+ initialAudioBitrate,
45799
+ initialVideoBitrate,
45800
+ initialHardwareAcceleration,
45801
+ initialKeyframeIntervalInSeconds,
45802
+ initialTransparent,
45803
+ initialMuted
45762
45804
  }) => {
45763
45805
  const context = useContext84(ResolvedCompositionContext);
45764
45806
  const { setSelectedModal } = useContext84(ModalsContext);
@@ -45776,25 +45818,25 @@ var WebRenderModal = ({
45776
45818
  });
45777
45819
  const [renderMode, setRenderMode] = useState85(isVideo ? "video" : "still");
45778
45820
  const [tab, setTab] = useState85("general");
45779
- const [imageFormat, setImageFormat] = useState85("png");
45821
+ const [imageFormat, setImageFormat] = useState85(() => initialStillImageFormat ?? "png");
45780
45822
  const [frame2, setFrame] = useState85(() => initialFrame);
45781
45823
  const [logLevel, setLogLevel] = useState85(() => initialLogLevel);
45782
45824
  const [inputProps, setInputProps] = useState85(() => defaultProps);
45783
- const [delayRenderTimeout, setDelayRenderTimeout] = useState85(30000);
45784
- const [mediaCacheSizeInBytes, setMediaCacheSizeInBytes] = useState85(null);
45825
+ const [delayRenderTimeout, setDelayRenderTimeout] = useState85(initialDelayRenderTimeout ?? 30000);
45826
+ const [mediaCacheSizeInBytes, setMediaCacheSizeInBytes] = useState85(initialMediaCacheSizeInBytes);
45785
45827
  const [saving, setSaving] = useState85(false);
45786
- const [codec, setCodec] = useState85("h264");
45787
- const [container61, setContainer] = useState85("mp4");
45788
- const [audioCodec, setAudioCodec] = useState85("aac");
45789
- const [audioBitrate, setAudioBitrate] = useState85("medium");
45790
- const [videoBitrate, setVideoBitrate] = useState85("high");
45791
- const [hardwareAcceleration, setHardwareAcceleration] = useState85("no-preference");
45792
- const [keyframeIntervalInSeconds, setKeyframeIntervalInSeconds] = useState85(5);
45793
- const [startFrame, setStartFrame] = useState85(() => inFrameMark ?? null);
45794
- const [endFrame, setEndFrame] = useState85(() => outFrameMark ?? null);
45795
- const [transparent, setTransparent] = useState85(false);
45796
- const [muted, setMuted] = useState85(false);
45797
- const [scale, setScale] = useState85(1);
45828
+ const [codec, setCodec] = useState85(initialVideoCodec ?? "h264");
45829
+ const [container61, setContainer] = useState85(initialContainer ?? "mp4");
45830
+ const [audioCodec, setAudioCodec] = useState85(initialAudioCodec ?? "aac");
45831
+ const [audioBitrate, setAudioBitrate] = useState85(initialAudioBitrate ?? "medium");
45832
+ const [videoBitrate, setVideoBitrate] = useState85(initialVideoBitrate ?? "high");
45833
+ const [hardwareAcceleration, setHardwareAcceleration] = useState85(initialHardwareAcceleration ?? "no-preference");
45834
+ const [keyframeIntervalInSeconds, setKeyframeIntervalInSeconds] = useState85(initialKeyframeIntervalInSeconds ?? 5);
45835
+ const [startFrame, setStartFrame] = useState85(() => inFrameMark);
45836
+ const [endFrame, setEndFrame] = useState85(() => outFrameMark);
45837
+ const [transparent, setTransparent] = useState85(initialTransparent ?? false);
45838
+ const [muted, setMuted] = useState85(initialMuted ?? false);
45839
+ const [scale, setScale] = useState85(initialScale ?? 1);
45798
45840
  const [licenseKey, setLicenseKey] = useState85(initialLicenseKey);
45799
45841
  const encodableAudioCodecs = useEncodableAudioCodecs(container61);
45800
45842
  const encodableVideoCodecs = useEncodableVideoCodecs(container61);
@@ -45822,7 +45864,10 @@ var WebRenderModal = ({
45822
45864
  }
45823
45865
  return Math.max(0, Math.min(finalEndFrame, startFrame));
45824
45866
  }, [finalEndFrame, startFrame]);
45825
- const [initialOutName] = useState85(() => {
45867
+ const [initialOutNameState] = useState85(() => {
45868
+ if (initialDefaultOutName) {
45869
+ return initialDefaultOutName;
45870
+ }
45826
45871
  return getDefaultOutLocation2({
45827
45872
  compositionName: resolvedComposition.id,
45828
45873
  defaultExtension: renderMode === "still" ? imageFormat : isVideo ? container61 : imageFormat,
@@ -45831,7 +45876,7 @@ var WebRenderModal = ({
45831
45876
  clientSideRender: true
45832
45877
  });
45833
45878
  });
45834
- const [outName, setOutName] = useState85(() => initialOutName);
45879
+ const [outName, setOutName] = useState85(() => initialOutNameState);
45835
45880
  const setStillFormat = useCallback131((format) => {
45836
45881
  setImageFormat(format);
45837
45882
  setOutName((prev) => {
@@ -46538,14 +46583,7 @@ var Modals = ({ readOnlyStudio }) => {
46538
46583
  }),
46539
46584
  modalContextType && modalContextType.type === "input-props-override" && /* @__PURE__ */ jsx273(OverrideInputPropsModal, {}),
46540
46585
  modalContextType && modalContextType.type === "web-render" && /* @__PURE__ */ jsx273(WebRenderModalWithLoader, {
46541
- type: "web-render",
46542
- initialFrame: modalContextType.initialFrame,
46543
- compositionId: modalContextType.compositionId,
46544
- defaultProps: modalContextType.defaultProps,
46545
- inFrameMark: modalContextType.inFrameMark,
46546
- outFrameMark: modalContextType.outFrameMark,
46547
- initialLogLevel: modalContextType.initialLogLevel,
46548
- initialLicenseKey: modalContextType.initialLicenseKey
46586
+ ...modalContextType
46549
46587
  }),
46550
46588
  modalContextType && canRender && modalContextType.type === "server-render" && /* @__PURE__ */ jsx273(RenderModalWithLoader, {
46551
46589
  initialFrame: modalContextType.initialFrame,
@@ -16487,7 +16487,21 @@ var makeClientRetryPayload = (job) => {
16487
16487
  initialLicenseKey: job.licenseKey,
16488
16488
  defaultProps: job.inputProps,
16489
16489
  inFrameMark: job.type === "client-video" ? job.startFrame : null,
16490
- outFrameMark: job.type === "client-video" ? job.endFrame : null
16490
+ outFrameMark: job.type === "client-video" ? job.endFrame : null,
16491
+ initialDefaultOutName: job.outName,
16492
+ initialScale: job.scale,
16493
+ initialDelayRenderTimeout: job.delayRenderTimeout,
16494
+ initialMediaCacheSizeInBytes: job.mediaCacheSizeInBytes,
16495
+ initialAudioBitrate: job.type === "client-video" ? job.audioBitrate : null,
16496
+ initialAudioCodec: job.type === "client-video" ? job.audioCodec : null,
16497
+ initialContainer: job.type === "client-video" ? job.container : null,
16498
+ initialHardwareAcceleration: job.type === "client-video" ? job.hardwareAcceleration : null,
16499
+ initialVideoBitrate: job.type === "client-video" ? job.videoBitrate : null,
16500
+ initialVideoCodec: job.type === "client-video" ? job.videoCodec : null,
16501
+ initialStillImageFormat: job.type === "client-still" ? job.imageFormat : "png",
16502
+ initialKeyframeIntervalInSeconds: job.type === "client-video" ? job.keyframeIntervalInSeconds : null,
16503
+ initialMuted: job.type === "client-video" ? job.muted : null,
16504
+ initialTransparent: job.type === "client-video" ? job.transparent : null
16491
16505
  };
16492
16506
  };
16493
16507
 
@@ -18344,7 +18358,21 @@ var RenderButton = ({
18344
18358
  inFrameMark: inFrame,
18345
18359
  outFrameMark: outFrame,
18346
18360
  initialLogLevel: defaults.logLevel,
18347
- initialLicenseKey: defaults.publicLicenseKey
18361
+ initialLicenseKey: defaults.publicLicenseKey,
18362
+ initialStillImageFormat: defaults.stillImageFormat,
18363
+ initialScale: defaults.scale,
18364
+ initialDelayRenderTimeout: defaults.delayRenderTimeout,
18365
+ initialDefaultOutName: null,
18366
+ initialContainer: null,
18367
+ initialVideoCodec: null,
18368
+ initialAudioCodec: null,
18369
+ initialAudioBitrate: null,
18370
+ initialVideoBitrate: null,
18371
+ initialHardwareAcceleration: null,
18372
+ initialKeyframeIntervalInSeconds: null,
18373
+ initialTransparent: null,
18374
+ initialMuted: null,
18375
+ initialMediaCacheSizeInBytes: defaults.mediaCacheSizeInBytes
18348
18376
  });
18349
18377
  }, [video, setSelectedModal, getCurrentFrame2, props, inFrame, outFrame]);
18350
18378
  const onClick = useCallback88(() => {
@@ -45777,7 +45805,21 @@ var WebRenderModal = ({
45777
45805
  inFrameMark,
45778
45806
  outFrameMark,
45779
45807
  initialLogLevel,
45780
- initialLicenseKey
45808
+ initialLicenseKey,
45809
+ initialStillImageFormat,
45810
+ initialDefaultOutName,
45811
+ initialScale,
45812
+ initialDelayRenderTimeout,
45813
+ initialMediaCacheSizeInBytes,
45814
+ initialContainer,
45815
+ initialVideoCodec,
45816
+ initialAudioCodec,
45817
+ initialAudioBitrate,
45818
+ initialVideoBitrate,
45819
+ initialHardwareAcceleration,
45820
+ initialKeyframeIntervalInSeconds,
45821
+ initialTransparent,
45822
+ initialMuted
45781
45823
  }) => {
45782
45824
  const context = useContext84(ResolvedCompositionContext);
45783
45825
  const { setSelectedModal } = useContext84(ModalsContext);
@@ -45795,25 +45837,25 @@ var WebRenderModal = ({
45795
45837
  });
45796
45838
  const [renderMode, setRenderMode] = useState85(isVideo ? "video" : "still");
45797
45839
  const [tab, setTab] = useState85("general");
45798
- const [imageFormat, setImageFormat] = useState85("png");
45840
+ const [imageFormat, setImageFormat] = useState85(() => initialStillImageFormat ?? "png");
45799
45841
  const [frame2, setFrame] = useState85(() => initialFrame);
45800
45842
  const [logLevel, setLogLevel] = useState85(() => initialLogLevel);
45801
45843
  const [inputProps, setInputProps] = useState85(() => defaultProps);
45802
- const [delayRenderTimeout, setDelayRenderTimeout] = useState85(30000);
45803
- const [mediaCacheSizeInBytes, setMediaCacheSizeInBytes] = useState85(null);
45844
+ const [delayRenderTimeout, setDelayRenderTimeout] = useState85(initialDelayRenderTimeout ?? 30000);
45845
+ const [mediaCacheSizeInBytes, setMediaCacheSizeInBytes] = useState85(initialMediaCacheSizeInBytes);
45804
45846
  const [saving, setSaving] = useState85(false);
45805
- const [codec, setCodec] = useState85("h264");
45806
- const [container61, setContainer] = useState85("mp4");
45807
- const [audioCodec, setAudioCodec] = useState85("aac");
45808
- const [audioBitrate, setAudioBitrate] = useState85("medium");
45809
- const [videoBitrate, setVideoBitrate] = useState85("high");
45810
- const [hardwareAcceleration, setHardwareAcceleration] = useState85("no-preference");
45811
- const [keyframeIntervalInSeconds, setKeyframeIntervalInSeconds] = useState85(5);
45812
- const [startFrame, setStartFrame] = useState85(() => inFrameMark ?? null);
45813
- const [endFrame, setEndFrame] = useState85(() => outFrameMark ?? null);
45814
- const [transparent, setTransparent] = useState85(false);
45815
- const [muted, setMuted] = useState85(false);
45816
- const [scale, setScale] = useState85(1);
45847
+ const [codec, setCodec] = useState85(initialVideoCodec ?? "h264");
45848
+ const [container61, setContainer] = useState85(initialContainer ?? "mp4");
45849
+ const [audioCodec, setAudioCodec] = useState85(initialAudioCodec ?? "aac");
45850
+ const [audioBitrate, setAudioBitrate] = useState85(initialAudioBitrate ?? "medium");
45851
+ const [videoBitrate, setVideoBitrate] = useState85(initialVideoBitrate ?? "high");
45852
+ const [hardwareAcceleration, setHardwareAcceleration] = useState85(initialHardwareAcceleration ?? "no-preference");
45853
+ const [keyframeIntervalInSeconds, setKeyframeIntervalInSeconds] = useState85(initialKeyframeIntervalInSeconds ?? 5);
45854
+ const [startFrame, setStartFrame] = useState85(() => inFrameMark);
45855
+ const [endFrame, setEndFrame] = useState85(() => outFrameMark);
45856
+ const [transparent, setTransparent] = useState85(initialTransparent ?? false);
45857
+ const [muted, setMuted] = useState85(initialMuted ?? false);
45858
+ const [scale, setScale] = useState85(initialScale ?? 1);
45817
45859
  const [licenseKey, setLicenseKey] = useState85(initialLicenseKey);
45818
45860
  const encodableAudioCodecs = useEncodableAudioCodecs(container61);
45819
45861
  const encodableVideoCodecs = useEncodableVideoCodecs(container61);
@@ -45841,7 +45883,10 @@ var WebRenderModal = ({
45841
45883
  }
45842
45884
  return Math.max(0, Math.min(finalEndFrame, startFrame));
45843
45885
  }, [finalEndFrame, startFrame]);
45844
- const [initialOutName] = useState85(() => {
45886
+ const [initialOutNameState] = useState85(() => {
45887
+ if (initialDefaultOutName) {
45888
+ return initialDefaultOutName;
45889
+ }
45845
45890
  return getDefaultOutLocation2({
45846
45891
  compositionName: resolvedComposition.id,
45847
45892
  defaultExtension: renderMode === "still" ? imageFormat : isVideo ? container61 : imageFormat,
@@ -45850,7 +45895,7 @@ var WebRenderModal = ({
45850
45895
  clientSideRender: true
45851
45896
  });
45852
45897
  });
45853
- const [outName, setOutName] = useState85(() => initialOutName);
45898
+ const [outName, setOutName] = useState85(() => initialOutNameState);
45854
45899
  const setStillFormat = useCallback131((format) => {
45855
45900
  setImageFormat(format);
45856
45901
  setOutName((prev) => {
@@ -46557,14 +46602,7 @@ var Modals = ({ readOnlyStudio }) => {
46557
46602
  }),
46558
46603
  modalContextType && modalContextType.type === "input-props-override" && /* @__PURE__ */ jsx273(OverrideInputPropsModal, {}),
46559
46604
  modalContextType && modalContextType.type === "web-render" && /* @__PURE__ */ jsx273(WebRenderModalWithLoader, {
46560
- type: "web-render",
46561
- initialFrame: modalContextType.initialFrame,
46562
- compositionId: modalContextType.compositionId,
46563
- defaultProps: modalContextType.defaultProps,
46564
- inFrameMark: modalContextType.inFrameMark,
46565
- outFrameMark: modalContextType.outFrameMark,
46566
- initialLogLevel: modalContextType.initialLogLevel,
46567
- initialLicenseKey: modalContextType.initialLicenseKey
46605
+ ...modalContextType
46568
46606
  }),
46569
46607
  modalContextType && canRender && modalContextType.type === "server-render" && /* @__PURE__ */ jsx273(RenderModalWithLoader, {
46570
46608
  initialFrame: modalContextType.initialFrame,
@@ -16767,7 +16767,21 @@ var makeClientRetryPayload = (job) => {
16767
16767
  initialLicenseKey: job.licenseKey,
16768
16768
  defaultProps: job.inputProps,
16769
16769
  inFrameMark: job.type === "client-video" ? job.startFrame : null,
16770
- outFrameMark: job.type === "client-video" ? job.endFrame : null
16770
+ outFrameMark: job.type === "client-video" ? job.endFrame : null,
16771
+ initialDefaultOutName: job.outName,
16772
+ initialScale: job.scale,
16773
+ initialDelayRenderTimeout: job.delayRenderTimeout,
16774
+ initialMediaCacheSizeInBytes: job.mediaCacheSizeInBytes,
16775
+ initialAudioBitrate: job.type === "client-video" ? job.audioBitrate : null,
16776
+ initialAudioCodec: job.type === "client-video" ? job.audioCodec : null,
16777
+ initialContainer: job.type === "client-video" ? job.container : null,
16778
+ initialHardwareAcceleration: job.type === "client-video" ? job.hardwareAcceleration : null,
16779
+ initialVideoBitrate: job.type === "client-video" ? job.videoBitrate : null,
16780
+ initialVideoCodec: job.type === "client-video" ? job.videoCodec : null,
16781
+ initialStillImageFormat: job.type === "client-still" ? job.imageFormat : "png",
16782
+ initialKeyframeIntervalInSeconds: job.type === "client-video" ? job.keyframeIntervalInSeconds : null,
16783
+ initialMuted: job.type === "client-video" ? job.muted : null,
16784
+ initialTransparent: job.type === "client-video" ? job.transparent : null
16771
16785
  };
16772
16786
  };
16773
16787
 
@@ -18624,7 +18638,21 @@ var RenderButton = ({
18624
18638
  inFrameMark: inFrame,
18625
18639
  outFrameMark: outFrame,
18626
18640
  initialLogLevel: defaults.logLevel,
18627
- initialLicenseKey: defaults.publicLicenseKey
18641
+ initialLicenseKey: defaults.publicLicenseKey,
18642
+ initialStillImageFormat: defaults.stillImageFormat,
18643
+ initialScale: defaults.scale,
18644
+ initialDelayRenderTimeout: defaults.delayRenderTimeout,
18645
+ initialDefaultOutName: null,
18646
+ initialContainer: null,
18647
+ initialVideoCodec: null,
18648
+ initialAudioCodec: null,
18649
+ initialAudioBitrate: null,
18650
+ initialVideoBitrate: null,
18651
+ initialHardwareAcceleration: null,
18652
+ initialKeyframeIntervalInSeconds: null,
18653
+ initialTransparent: null,
18654
+ initialMuted: null,
18655
+ initialMediaCacheSizeInBytes: defaults.mediaCacheSizeInBytes
18628
18656
  });
18629
18657
  }, [video, setSelectedModal, getCurrentFrame2, props, inFrame, outFrame]);
18630
18658
  const onClick = useCallback89(() => {
@@ -46057,7 +46085,21 @@ var WebRenderModal = ({
46057
46085
  inFrameMark,
46058
46086
  outFrameMark,
46059
46087
  initialLogLevel,
46060
- initialLicenseKey
46088
+ initialLicenseKey,
46089
+ initialStillImageFormat,
46090
+ initialDefaultOutName,
46091
+ initialScale,
46092
+ initialDelayRenderTimeout,
46093
+ initialMediaCacheSizeInBytes,
46094
+ initialContainer,
46095
+ initialVideoCodec,
46096
+ initialAudioCodec,
46097
+ initialAudioBitrate,
46098
+ initialVideoBitrate,
46099
+ initialHardwareAcceleration,
46100
+ initialKeyframeIntervalInSeconds,
46101
+ initialTransparent,
46102
+ initialMuted
46061
46103
  }) => {
46062
46104
  const context = useContext84(ResolvedCompositionContext);
46063
46105
  const { setSelectedModal } = useContext84(ModalsContext);
@@ -46075,25 +46117,25 @@ var WebRenderModal = ({
46075
46117
  });
46076
46118
  const [renderMode, setRenderMode] = useState86(isVideo ? "video" : "still");
46077
46119
  const [tab, setTab] = useState86("general");
46078
- const [imageFormat, setImageFormat] = useState86("png");
46120
+ const [imageFormat, setImageFormat] = useState86(() => initialStillImageFormat ?? "png");
46079
46121
  const [frame2, setFrame] = useState86(() => initialFrame);
46080
46122
  const [logLevel, setLogLevel] = useState86(() => initialLogLevel);
46081
46123
  const [inputProps, setInputProps] = useState86(() => defaultProps);
46082
- const [delayRenderTimeout, setDelayRenderTimeout] = useState86(30000);
46083
- const [mediaCacheSizeInBytes, setMediaCacheSizeInBytes] = useState86(null);
46124
+ const [delayRenderTimeout, setDelayRenderTimeout] = useState86(initialDelayRenderTimeout ?? 30000);
46125
+ const [mediaCacheSizeInBytes, setMediaCacheSizeInBytes] = useState86(initialMediaCacheSizeInBytes);
46084
46126
  const [saving, setSaving] = useState86(false);
46085
- const [codec, setCodec] = useState86("h264");
46086
- const [container61, setContainer] = useState86("mp4");
46087
- const [audioCodec, setAudioCodec] = useState86("aac");
46088
- const [audioBitrate, setAudioBitrate] = useState86("medium");
46089
- const [videoBitrate, setVideoBitrate] = useState86("high");
46090
- const [hardwareAcceleration, setHardwareAcceleration] = useState86("no-preference");
46091
- const [keyframeIntervalInSeconds, setKeyframeIntervalInSeconds] = useState86(5);
46092
- const [startFrame, setStartFrame] = useState86(() => inFrameMark ?? null);
46093
- const [endFrame, setEndFrame] = useState86(() => outFrameMark ?? null);
46094
- const [transparent, setTransparent] = useState86(false);
46095
- const [muted, setMuted] = useState86(false);
46096
- const [scale, setScale] = useState86(1);
46127
+ const [codec, setCodec] = useState86(initialVideoCodec ?? "h264");
46128
+ const [container61, setContainer] = useState86(initialContainer ?? "mp4");
46129
+ const [audioCodec, setAudioCodec] = useState86(initialAudioCodec ?? "aac");
46130
+ const [audioBitrate, setAudioBitrate] = useState86(initialAudioBitrate ?? "medium");
46131
+ const [videoBitrate, setVideoBitrate] = useState86(initialVideoBitrate ?? "high");
46132
+ const [hardwareAcceleration, setHardwareAcceleration] = useState86(initialHardwareAcceleration ?? "no-preference");
46133
+ const [keyframeIntervalInSeconds, setKeyframeIntervalInSeconds] = useState86(initialKeyframeIntervalInSeconds ?? 5);
46134
+ const [startFrame, setStartFrame] = useState86(() => inFrameMark);
46135
+ const [endFrame, setEndFrame] = useState86(() => outFrameMark);
46136
+ const [transparent, setTransparent] = useState86(initialTransparent ?? false);
46137
+ const [muted, setMuted] = useState86(initialMuted ?? false);
46138
+ const [scale, setScale] = useState86(initialScale ?? 1);
46097
46139
  const [licenseKey, setLicenseKey] = useState86(initialLicenseKey);
46098
46140
  const encodableAudioCodecs = useEncodableAudioCodecs(container61);
46099
46141
  const encodableVideoCodecs = useEncodableVideoCodecs(container61);
@@ -46121,7 +46163,10 @@ var WebRenderModal = ({
46121
46163
  }
46122
46164
  return Math.max(0, Math.min(finalEndFrame, startFrame));
46123
46165
  }, [finalEndFrame, startFrame]);
46124
- const [initialOutName] = useState86(() => {
46166
+ const [initialOutNameState] = useState86(() => {
46167
+ if (initialDefaultOutName) {
46168
+ return initialDefaultOutName;
46169
+ }
46125
46170
  return getDefaultOutLocation2({
46126
46171
  compositionName: resolvedComposition.id,
46127
46172
  defaultExtension: renderMode === "still" ? imageFormat : isVideo ? container61 : imageFormat,
@@ -46130,7 +46175,7 @@ var WebRenderModal = ({
46130
46175
  clientSideRender: true
46131
46176
  });
46132
46177
  });
46133
- const [outName, setOutName] = useState86(() => initialOutName);
46178
+ const [outName, setOutName] = useState86(() => initialOutNameState);
46134
46179
  const setStillFormat = useCallback132((format) => {
46135
46180
  setImageFormat(format);
46136
46181
  setOutName((prev) => {
@@ -46837,14 +46882,7 @@ var Modals = ({ readOnlyStudio }) => {
46837
46882
  }),
46838
46883
  modalContextType && modalContextType.type === "input-props-override" && /* @__PURE__ */ jsx274(OverrideInputPropsModal, {}),
46839
46884
  modalContextType && modalContextType.type === "web-render" && /* @__PURE__ */ jsx274(WebRenderModalWithLoader, {
46840
- type: "web-render",
46841
- initialFrame: modalContextType.initialFrame,
46842
- compositionId: modalContextType.compositionId,
46843
- defaultProps: modalContextType.defaultProps,
46844
- inFrameMark: modalContextType.inFrameMark,
46845
- outFrameMark: modalContextType.outFrameMark,
46846
- initialLogLevel: modalContextType.initialLogLevel,
46847
- initialLicenseKey: modalContextType.initialLicenseKey
46885
+ ...modalContextType
46848
46886
  }),
46849
46887
  modalContextType && canRender && modalContextType.type === "server-render" && /* @__PURE__ */ jsx274(RenderModalWithLoader, {
46850
46888
  initialFrame: modalContextType.initialFrame,
@@ -206,7 +206,7 @@ var renderContent = (Root) => {
206
206
  renderToDOM(/* @__PURE__ */ jsx("div", {
207
207
  children: /* @__PURE__ */ jsx(DelayedSpinner, {})
208
208
  }));
209
- import("./chunk-nqxpz7r0.js").then(({ StudioInternals }) => {
209
+ import("./chunk-t3rf3vkq.js").then(({ StudioInternals }) => {
210
210
  window.remotion_isStudio = true;
211
211
  window.remotion_isReadOnlyStudio = true;
212
212
  window.remotion_inputProps = "{}";
@@ -177,6 +177,22 @@ const makeClientRetryPayload = (job) => {
177
177
  defaultProps: job.inputProps,
178
178
  inFrameMark: job.type === 'client-video' ? job.startFrame : null,
179
179
  outFrameMark: job.type === 'client-video' ? job.endFrame : null,
180
+ initialDefaultOutName: job.outName,
181
+ initialScale: job.scale,
182
+ initialDelayRenderTimeout: job.delayRenderTimeout,
183
+ initialMediaCacheSizeInBytes: job.mediaCacheSizeInBytes,
184
+ initialAudioBitrate: job.type === 'client-video' ? job.audioBitrate : null,
185
+ initialAudioCodec: job.type === 'client-video' ? job.audioCodec : null,
186
+ initialContainer: job.type === 'client-video' ? job.container : null,
187
+ initialHardwareAcceleration: job.type === 'client-video'
188
+ ? job.hardwareAcceleration
189
+ : null,
190
+ initialVideoBitrate: job.type === 'client-video' ? job.videoBitrate : null,
191
+ initialVideoCodec: job.type === 'client-video' ? job.videoCodec : null,
192
+ initialStillImageFormat: job.type === 'client-still' ? job.imageFormat : 'png',
193
+ initialKeyframeIntervalInSeconds: job.type === 'client-video' ? job.keyframeIntervalInSeconds : null,
194
+ initialMuted: job.type === 'client-video' ? job.muted : null,
195
+ initialTransparent: job.type === 'client-video' ? job.transparent : null,
180
196
  };
181
197
  };
182
198
  exports.makeClientRetryPayload = makeClientRetryPayload;
@@ -1,6 +1,7 @@
1
1
  import type { AudioCodec, ChromeMode, Codec, ColorSpace, LogLevel, OpenGlRenderer, PixelFormat, StillImageFormat, VideoImageFormat, X264Preset } from '@remotion/renderer';
2
2
  import type { HardwareAccelerationOption } from '@remotion/renderer/client';
3
3
  import type { PackageManager, RenderDefaults } from '@remotion/studio-shared';
4
+ import type { RenderStillOnWebImageFormat, WebRendererAudioCodec, WebRendererContainer, WebRendererHardwareAcceleration, WebRendererQuality, WebRendererVideoCodec } from '@remotion/web-renderer';
4
5
  import type React from 'react';
5
6
  import type { _InternalTypes } from 'remotion';
6
7
  import type { CompType } from '../components/NewComposition/DuplicateComposition';
@@ -15,7 +16,21 @@ export type WebRenderModalState = {
15
16
  inFrameMark: number | null;
16
17
  outFrameMark: number | null;
17
18
  initialLogLevel: LogLevel;
19
+ initialStillImageFormat: RenderStillOnWebImageFormat;
20
+ initialScale: number;
21
+ initialDelayRenderTimeout: number;
22
+ initialDefaultOutName: string | null;
23
+ initialContainer: WebRendererContainer | null;
24
+ initialVideoCodec: WebRendererVideoCodec | null;
25
+ initialAudioCodec: WebRendererAudioCodec | null;
26
+ initialAudioBitrate: WebRendererQuality | null;
27
+ initialVideoBitrate: WebRendererQuality | null;
28
+ initialHardwareAcceleration: WebRendererHardwareAcceleration | null;
29
+ initialKeyframeIntervalInSeconds: number | null;
30
+ initialTransparent: boolean | null;
31
+ initialMuted: boolean | null;
18
32
  initialLicenseKey: string | null;
33
+ initialMediaCacheSizeInBytes: number | null;
19
34
  };
20
35
  export type RenderModalState = {
21
36
  type: 'server-render';
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "url": "https://github.com/remotion-dev/remotion/tree/main/packages/studio"
4
4
  },
5
5
  "name": "@remotion/studio",
6
- "version": "4.0.410",
6
+ "version": "4.0.412",
7
7
  "description": "APIs for interacting with the Remotion Studio",
8
8
  "main": "dist",
9
9
  "sideEffects": false,
@@ -25,13 +25,13 @@
25
25
  },
26
26
  "dependencies": {
27
27
  "semver": "7.5.3",
28
- "remotion": "4.0.410",
29
- "@remotion/player": "4.0.410",
30
- "@remotion/media-utils": "4.0.410",
31
- "@remotion/renderer": "4.0.410",
32
- "@remotion/web-renderer": "4.0.410",
33
- "@remotion/studio-shared": "4.0.410",
34
- "@remotion/zod-types": "4.0.410",
28
+ "remotion": "4.0.411",
29
+ "@remotion/player": "4.0.411",
30
+ "@remotion/media-utils": "4.0.411",
31
+ "@remotion/renderer": "4.0.411",
32
+ "@remotion/web-renderer": "4.0.411",
33
+ "@remotion/studio-shared": "4.0.411",
34
+ "@remotion/zod-types": "4.0.411",
35
35
  "mediabunny": "1.29.0",
36
36
  "memfs": "3.4.3",
37
37
  "source-map": "0.7.3",
@@ -42,7 +42,7 @@
42
42
  "react": "19.2.3",
43
43
  "react-dom": "19.2.3",
44
44
  "@types/semver": "^7.3.4",
45
- "@remotion/eslint-config-internal": "4.0.410",
45
+ "@remotion/eslint-config-internal": "4.0.411",
46
46
  "eslint": "9.19.0"
47
47
  },
48
48
  "publishConfig": {