@remotion/studio 4.0.215 → 4.0.216

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.
@@ -0,0 +1,4 @@
1
+
2
+ > @remotion/studio@4.0.212 build /Users/jonathanburger/remotion/packages/studio
3
+ > bun --env-file=../.env.bundle bundle.ts
4
+
@@ -1,4 +1,4 @@
1
1
 
2
- > @remotion/studio@4.0.214 make /Users/jonathanburger/remotion/packages/studio
2
+ > @remotion/studio@4.0.215 make /Users/jonathanburger/remotion/packages/studio
3
3
  > bun --env-file=../.env.bundle bundle.ts
4
4
 
@@ -20,7 +20,7 @@ const Modals = ({ readOnlyStudio }) => {
20
20
  const { selectedModal: modalContextType } = (0, react_1.useContext)(modals_1.ModalsContext);
21
21
  const canRender = (0, react_1.useContext)(client_id_1.StudioServerConnectionCtx).previewServerState.type ===
22
22
  'connected';
23
- 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 && canRender && modalContextType.type === 'render' && ((0, jsx_runtime_1.jsx)(RenderModal_1.RenderModalWithLoader, { initialFrame: modalContextType.initialFrame, compositionId: modalContextType.compositionId, initialVideoImageFormat: modalContextType.initialVideoImageFormat, initialJpegQuality: modalContextType.initialJpegQuality, initialScale: modalContextType.initialScale, initialLogLevel: modalContextType.initialLogLevel, initialOffthreadVideoCacheSizeInBytes: modalContextType.initialOffthreadVideoCacheSizeInBytes, 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 })), modalContextType &&
23
+ 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 && canRender && modalContextType.type === 'render' && ((0, jsx_runtime_1.jsx)(RenderModal_1.RenderModalWithLoader, { initialFrame: modalContextType.initialFrame, compositionId: modalContextType.compositionId, initialVideoImageFormat: modalContextType.initialVideoImageFormat, initialJpegQuality: modalContextType.initialJpegQuality, initialScale: modalContextType.initialScale, initialLogLevel: modalContextType.initialLogLevel, initialOffthreadVideoCacheSizeInBytes: modalContextType.initialOffthreadVideoCacheSizeInBytes, 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 })), modalContextType &&
24
24
  canRender &&
25
25
  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 }))] }));
26
26
  };
@@ -12,6 +12,6 @@ export declare const getInputBorderColor: ({ status, isFocused, isHovered, }: {
12
12
  status: "error" | "warning" | "ok";
13
13
  isFocused: boolean;
14
14
  isHovered: boolean;
15
- }) => "hsla(0, 0%, 100%, 0.15)" | "rgba(0, 0, 0, 0.6)" | "rgba(255, 255, 255, 0.05)" | "#ff3232" | "#f1c40f";
15
+ }) => "#ff3232" | "hsla(0, 0%, 100%, 0.15)" | "#f1c40f" | "rgba(0, 0, 0, 0.6)" | "rgba(255, 255, 255, 0.05)";
16
16
  export declare const RemotionInput: React.ForwardRefExoticComponent<Omit<Props, "ref"> & React.RefAttributes<HTMLInputElement>>;
17
17
  export {};
@@ -91,6 +91,7 @@ const RenderButton = () => {
91
91
  initialRepro: defaults.repro,
92
92
  initialForSeamlessAacConcatenation: defaults.forSeamlessAacConcatenation,
93
93
  renderTypeOfLastRender: null,
94
+ defaulMetadata: defaults.metadata,
94
95
  });
95
96
  }, [video, setSelectedModal, frame, props, inFrame, outFrame]);
96
97
  if (!video) {
@@ -42,6 +42,7 @@ type RenderModalProps = {
42
42
  readonly defaultConfigurationAudioCodec: AudioCodec | null;
43
43
  readonly initialForSeamlessAacConcatenation: boolean;
44
44
  readonly renderTypeOfLastRender: RenderType | null;
45
+ readonly defaultMetadata: Record<string, string> | null;
45
46
  };
46
47
  export declare const RenderModalWithLoader: React.FC<RenderModalProps>;
47
48
  export {};
@@ -116,7 +116,7 @@ const outer = {
116
116
  display: 'flex',
117
117
  flexDirection: 'column',
118
118
  };
119
- const RenderModal = ({ initialFrame, initialVideoImageFormat, initialStillImageFormat, initialJpegQuality, initialScale, initialLogLevel, initialConcurrency, maxConcurrency, minConcurrency, initialMuted, initialEnforceAudioTrack, initialProResProfile, initialx264Preset, initialPixelFormat, initialVideoBitrate, initialAudioBitrate, initialEveryNthFrame, initialNumberOfGifLoops, initialDelayRenderTimeout, initialOffthreadVideoCacheSizeInBytes, initialEnvVariables, initialDisableWebSecurity, initialGl, initialHeadless, initialIgnoreCertificateErrors, initialEncodingBufferSize, initialEncodingMaxRate, initialUserAgent, defaultProps, inFrameMark, outFrameMark, initialColorSpace, initialMultiProcessOnLinux, defaultConfigurationAudioCodec, defaultConfigurationVideoCodec, initialBeep, initialRepro, initialForSeamlessAacConcatenation, renderTypeOfLastRender, }) => {
119
+ const RenderModal = ({ initialFrame, initialVideoImageFormat, initialStillImageFormat, initialJpegQuality, initialScale, initialLogLevel, initialConcurrency, maxConcurrency, minConcurrency, initialMuted, initialEnforceAudioTrack, initialProResProfile, initialx264Preset, initialPixelFormat, initialVideoBitrate, initialAudioBitrate, initialEveryNthFrame, initialNumberOfGifLoops, initialDelayRenderTimeout, initialOffthreadVideoCacheSizeInBytes, initialEnvVariables, initialDisableWebSecurity, initialGl, initialHeadless, initialIgnoreCertificateErrors, initialEncodingBufferSize, initialEncodingMaxRate, initialUserAgent, defaultProps, inFrameMark, outFrameMark, initialColorSpace, initialMultiProcessOnLinux, defaultConfigurationAudioCodec, defaultConfigurationVideoCodec, initialBeep, initialRepro, initialForSeamlessAacConcatenation, renderTypeOfLastRender, defaultMetadata, }) => {
120
120
  const { setSelectedModal } = (0, react_1.useContext)(modals_1.ModalsContext);
121
121
  const context = (0, react_1.useContext)(ResolveCompositionBeforeModal_1.ResolvedCompositionContext);
122
122
  if (!context) {
@@ -294,6 +294,7 @@ const RenderModal = ({ initialFrame, initialVideoImageFormat, initialStillImageF
294
294
  return null;
295
295
  }, [codec, x264PresetSetting, renderMode]);
296
296
  const [inputProps, setInputProps] = (0, react_1.useState)(() => defaultProps);
297
+ const [metadata] = (0, react_1.useState)(() => defaultMetadata);
297
298
  const endFrame = (0, react_1.useMemo)(() => {
298
299
  if (endFrameOrNull === null) {
299
300
  return resolvedComposition.durationInFrames - 1;
@@ -399,6 +400,7 @@ const RenderModal = ({ initialFrame, initialVideoImageFormat, initialStillImageF
399
400
  offthreadVideoCacheSizeInBytes,
400
401
  multiProcessOnLinux,
401
402
  beepOnFinish,
403
+ metadata,
402
404
  })
403
405
  .then(() => {
404
406
  dispatchIfMounted({ type: 'succeed' });
@@ -425,6 +427,7 @@ const RenderModal = ({ initialFrame, initialVideoImageFormat, initialStillImageF
425
427
  multiProcessOnLinux,
426
428
  beepOnFinish,
427
429
  setSelectedModal,
430
+ metadata,
428
431
  ]);
429
432
  const [everyNthFrameSetting, setEveryNthFrameSetting] = (0, react_1.useState)(() => initialEveryNthFrame);
430
433
  const everyNthFrame = (0, react_1.useMemo)(() => {
@@ -485,6 +488,7 @@ const RenderModal = ({ initialFrame, initialVideoImageFormat, initialStillImageF
485
488
  repro,
486
489
  forSeamlessAacConcatenation,
487
490
  separateAudioTo,
491
+ metadata,
488
492
  })
489
493
  .then(() => {
490
494
  dispatchIfMounted({ type: 'succeed' });
@@ -534,6 +538,7 @@ const RenderModal = ({ initialFrame, initialVideoImageFormat, initialStillImageF
534
538
  forSeamlessAacConcatenation,
535
539
  separateAudioTo,
536
540
  setSelectedModal,
541
+ metadata,
537
542
  ]);
538
543
  const onClickSequence = (0, react_1.useCallback)(() => {
539
544
  var _a;
@@ -560,6 +565,7 @@ const RenderModal = ({ initialFrame, initialVideoImageFormat, initialStillImageF
560
565
  multiProcessOnLinux,
561
566
  beepOnFinish,
562
567
  repro,
568
+ metadata,
563
569
  })
564
570
  .then(() => {
565
571
  dispatchIfMounted({ type: 'succeed' });
@@ -590,6 +596,7 @@ const RenderModal = ({ initialFrame, initialVideoImageFormat, initialStillImageF
590
596
  beepOnFinish,
591
597
  repro,
592
598
  setSelectedModal,
599
+ metadata,
593
600
  ]);
594
601
  (0, react_1.useEffect)(() => {
595
602
  return () => {
@@ -1,6 +1,6 @@
1
1
  import type { AudioCodec, Codec, ColorSpace, LogLevel, PixelFormat, ProResProfile, StillImageFormat, VideoImageFormat, X264Preset } from '@remotion/renderer';
2
2
  import type { CanUpdateDefaultPropsResponse, EnumPath, RecastCodemod, RenderJob, RequiredChromiumOptions } from '@remotion/studio-shared';
3
- export declare const addStillRenderJob: ({ compositionId, outName, imageFormat, jpegQuality, frame, scale, logLevel, chromiumOptions, delayRenderTimeout, envVariables, inputProps, offthreadVideoCacheSizeInBytes, multiProcessOnLinux, beepOnFinish, }: {
3
+ export declare const addStillRenderJob: ({ compositionId, outName, imageFormat, jpegQuality, frame, scale, logLevel, chromiumOptions, delayRenderTimeout, envVariables, inputProps, offthreadVideoCacheSizeInBytes, multiProcessOnLinux, beepOnFinish, metadata, }: {
4
4
  compositionId: string;
5
5
  outName: string;
6
6
  imageFormat: StillImageFormat;
@@ -15,8 +15,9 @@ export declare const addStillRenderJob: ({ compositionId, outName, imageFormat,
15
15
  offthreadVideoCacheSizeInBytes: number | null;
16
16
  multiProcessOnLinux: boolean;
17
17
  beepOnFinish: boolean;
18
+ metadata: Record<string, string> | null;
18
19
  }) => Promise<undefined>;
19
- export declare const addSequenceRenderJob: ({ compositionId, outName, imageFormat, startFrame, endFrame, scale, logLevel, chromiumOptions, delayRenderTimeout, envVariables, inputProps, concurrency, offthreadVideoCacheSizeInBytes, jpegQuality, disallowParallelEncoding, multiProcessOnLinux, beepOnFinish, repro, }: {
20
+ export declare const addSequenceRenderJob: ({ compositionId, outName, imageFormat, startFrame, endFrame, scale, logLevel, chromiumOptions, delayRenderTimeout, envVariables, inputProps, concurrency, offthreadVideoCacheSizeInBytes, jpegQuality, disallowParallelEncoding, multiProcessOnLinux, beepOnFinish, repro, metadata, }: {
20
21
  compositionId: string;
21
22
  outName: string;
22
23
  imageFormat: VideoImageFormat;
@@ -35,8 +36,9 @@ export declare const addSequenceRenderJob: ({ compositionId, outName, imageForma
35
36
  multiProcessOnLinux: boolean;
36
37
  beepOnFinish: boolean;
37
38
  repro: boolean;
39
+ metadata: Record<string, string> | null;
38
40
  }) => Promise<undefined>;
39
- export declare const addVideoRenderJob: ({ compositionId, outName, imageFormat, jpegQuality, scale, logLevel, codec, concurrency, crf, startFrame, endFrame, muted, enforceAudioTrack, proResProfile, x264Preset, pixelFormat, audioBitrate, videoBitrate, everyNthFrame, numberOfGifLoops, delayRenderTimeout, audioCodec, disallowParallelEncoding, chromiumOptions, envVariables, inputProps, offthreadVideoCacheSizeInBytes, colorSpace, multiProcessOnLinux, encodingMaxRate, encodingBufferSize, beepOnFinish, repro, forSeamlessAacConcatenation, separateAudioTo, }: {
41
+ export declare const addVideoRenderJob: ({ compositionId, outName, imageFormat, jpegQuality, scale, logLevel, codec, concurrency, crf, startFrame, endFrame, muted, enforceAudioTrack, proResProfile, x264Preset, pixelFormat, audioBitrate, videoBitrate, everyNthFrame, numberOfGifLoops, delayRenderTimeout, audioCodec, disallowParallelEncoding, chromiumOptions, envVariables, inputProps, offthreadVideoCacheSizeInBytes, colorSpace, multiProcessOnLinux, encodingMaxRate, encodingBufferSize, beepOnFinish, repro, forSeamlessAacConcatenation, separateAudioTo, metadata, }: {
40
42
  compositionId: string;
41
43
  outName: string;
42
44
  imageFormat: VideoImageFormat;
@@ -72,6 +74,7 @@ export declare const addVideoRenderJob: ({ compositionId, outName, imageFormat,
72
74
  repro: boolean;
73
75
  forSeamlessAacConcatenation: boolean;
74
76
  separateAudioTo: string | null;
77
+ metadata: Record<string, string> | null;
75
78
  }) => Promise<undefined>;
76
79
  export declare const unsubscribeFromFileExistenceWatcher: ({ file, clientId, }: {
77
80
  file: string;
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.canUpdateDefaultProps = exports.callUpdateDefaultPropsApi = exports.getProjectInfo = exports.updateAvailable = exports.cancelRenderJob = exports.removeRenderJob = exports.applyCodemod = exports.copyToClipboard = exports.openInFileExplorer = exports.subscribeToFileExistenceWatcher = exports.unsubscribeFromFileExistenceWatcher = exports.addVideoRenderJob = exports.addSequenceRenderJob = exports.addStillRenderJob = void 0;
4
4
  const no_react_1 = require("remotion/no-react");
5
5
  const call_api_1 = require("../call-api");
6
- const addStillRenderJob = ({ compositionId, outName, imageFormat, jpegQuality, frame, scale, logLevel, chromiumOptions, delayRenderTimeout, envVariables, inputProps, offthreadVideoCacheSizeInBytes, multiProcessOnLinux, beepOnFinish, }) => {
6
+ const addStillRenderJob = ({ compositionId, outName, imageFormat, jpegQuality, frame, scale, logLevel, chromiumOptions, delayRenderTimeout, envVariables, inputProps, offthreadVideoCacheSizeInBytes, multiProcessOnLinux, beepOnFinish, metadata, }) => {
7
7
  return (0, call_api_1.callApi)('/api/render', {
8
8
  compositionId,
9
9
  type: 'still',
@@ -24,10 +24,11 @@ const addStillRenderJob = ({ compositionId, outName, imageFormat, jpegQuality, f
24
24
  offthreadVideoCacheSizeInBytes,
25
25
  multiProcessOnLinux,
26
26
  beepOnFinish,
27
+ metadata,
27
28
  });
28
29
  };
29
30
  exports.addStillRenderJob = addStillRenderJob;
30
- const addSequenceRenderJob = ({ compositionId, outName, imageFormat, startFrame, endFrame, scale, logLevel, chromiumOptions, delayRenderTimeout, envVariables, inputProps, concurrency, offthreadVideoCacheSizeInBytes, jpegQuality, disallowParallelEncoding, multiProcessOnLinux, beepOnFinish, repro, }) => {
31
+ const addSequenceRenderJob = ({ compositionId, outName, imageFormat, startFrame, endFrame, scale, logLevel, chromiumOptions, delayRenderTimeout, envVariables, inputProps, concurrency, offthreadVideoCacheSizeInBytes, jpegQuality, disallowParallelEncoding, multiProcessOnLinux, beepOnFinish, repro, metadata, }) => {
31
32
  return (0, call_api_1.callApi)('/api/render', {
32
33
  compositionId,
33
34
  type: 'sequence',
@@ -52,10 +53,11 @@ const addSequenceRenderJob = ({ compositionId, outName, imageFormat, startFrame,
52
53
  multiProcessOnLinux,
53
54
  beepOnFinish,
54
55
  repro,
56
+ metadata,
55
57
  });
56
58
  };
57
59
  exports.addSequenceRenderJob = addSequenceRenderJob;
58
- const addVideoRenderJob = ({ compositionId, outName, imageFormat, jpegQuality, scale, logLevel, codec, concurrency, crf, startFrame, endFrame, muted, enforceAudioTrack, proResProfile, x264Preset, pixelFormat, audioBitrate, videoBitrate, everyNthFrame, numberOfGifLoops, delayRenderTimeout, audioCodec, disallowParallelEncoding, chromiumOptions, envVariables, inputProps, offthreadVideoCacheSizeInBytes, colorSpace, multiProcessOnLinux, encodingMaxRate, encodingBufferSize, beepOnFinish, repro, forSeamlessAacConcatenation, separateAudioTo, }) => {
60
+ const addVideoRenderJob = ({ compositionId, outName, imageFormat, jpegQuality, scale, logLevel, codec, concurrency, crf, startFrame, endFrame, muted, enforceAudioTrack, proResProfile, x264Preset, pixelFormat, audioBitrate, videoBitrate, everyNthFrame, numberOfGifLoops, delayRenderTimeout, audioCodec, disallowParallelEncoding, chromiumOptions, envVariables, inputProps, offthreadVideoCacheSizeInBytes, colorSpace, multiProcessOnLinux, encodingMaxRate, encodingBufferSize, beepOnFinish, repro, forSeamlessAacConcatenation, separateAudioTo, metadata, }) => {
59
61
  return (0, call_api_1.callApi)('/api/render', {
60
62
  compositionId,
61
63
  type: 'video',
@@ -97,6 +99,7 @@ const addVideoRenderJob = ({ compositionId, outName, imageFormat, jpegQuality, s
97
99
  repro,
98
100
  forSeamlessAacConcatenation,
99
101
  separateAudioTo,
102
+ metadata,
100
103
  });
101
104
  };
102
105
  exports.addVideoRenderJob = addVideoRenderJob;
@@ -73,6 +73,7 @@ const SidebarRenderButton = ({ composition, visible }) => {
73
73
  initialRepro: defaults.repro,
74
74
  initialForSeamlessAacConcatenation: defaults.forSeamlessAacConcatenation,
75
75
  renderTypeOfLastRender: null,
76
+ defaulMetadata: defaults.metadata,
76
77
  });
77
78
  if (isMobileLayout) {
78
79
  setSidebarCollapsedState({ left: 'collapsed', right: 'collapsed' });
@@ -2567,7 +2567,8 @@ var SidebarRenderButton = ({ composition, visible }) => {
2567
2567
  initialBeep: defaults.beepOnFinish,
2568
2568
  initialRepro: defaults.repro,
2569
2569
  initialForSeamlessAacConcatenation: defaults.forSeamlessAacConcatenation,
2570
- renderTypeOfLastRender: null
2570
+ renderTypeOfLastRender: null,
2571
+ defaulMetadata: defaults.metadata
2571
2572
  });
2572
2573
  if (isMobileLayout) {
2573
2574
  setSidebarCollapsedState({ left: "collapsed", right: "collapsed" });
@@ -3204,7 +3205,8 @@ var addStillRenderJob = ({
3204
3205
  inputProps,
3205
3206
  offthreadVideoCacheSizeInBytes,
3206
3207
  multiProcessOnLinux,
3207
- beepOnFinish
3208
+ beepOnFinish,
3209
+ metadata
3208
3210
  }) => {
3209
3211
  return callApi("/api/render", {
3210
3212
  compositionId,
@@ -3225,7 +3227,8 @@ var addStillRenderJob = ({
3225
3227
  }).serializedString,
3226
3228
  offthreadVideoCacheSizeInBytes,
3227
3229
  multiProcessOnLinux,
3228
- beepOnFinish
3230
+ beepOnFinish,
3231
+ metadata
3229
3232
  });
3230
3233
  };
3231
3234
  var addSequenceRenderJob = ({
@@ -3246,7 +3249,8 @@ var addSequenceRenderJob = ({
3246
3249
  disallowParallelEncoding,
3247
3250
  multiProcessOnLinux,
3248
3251
  beepOnFinish,
3249
- repro
3252
+ repro,
3253
+ metadata
3250
3254
  }) => {
3251
3255
  return callApi("/api/render", {
3252
3256
  compositionId,
@@ -3271,7 +3275,8 @@ var addSequenceRenderJob = ({
3271
3275
  disallowParallelEncoding,
3272
3276
  multiProcessOnLinux,
3273
3277
  beepOnFinish,
3274
- repro
3278
+ repro,
3279
+ metadata
3275
3280
  });
3276
3281
  };
3277
3282
  var addVideoRenderJob = ({
@@ -3309,7 +3314,8 @@ var addVideoRenderJob = ({
3309
3314
  beepOnFinish,
3310
3315
  repro,
3311
3316
  forSeamlessAacConcatenation,
3312
- separateAudioTo
3317
+ separateAudioTo,
3318
+ metadata
3313
3319
  }) => {
3314
3320
  return callApi("/api/render", {
3315
3321
  compositionId,
@@ -3351,7 +3357,8 @@ var addVideoRenderJob = ({
3351
3357
  beepOnFinish,
3352
3358
  repro,
3353
3359
  forSeamlessAacConcatenation,
3354
- separateAudioTo
3360
+ separateAudioTo,
3361
+ metadata
3355
3362
  });
3356
3363
  };
3357
3364
  var unsubscribeFromFileExistenceWatcher = ({
@@ -14893,6 +14900,7 @@ var makeRetryPayload = (job) => {
14893
14900
  initialBeep: job.beepOnFinish,
14894
14901
  initialRepro: job.repro,
14895
14902
  initialForSeamlessAacConcatenation: defaults.forSeamlessAacConcatenation,
14903
+ defaulMetadata: job.metadata,
14896
14904
  renderTypeOfLastRender: "still"
14897
14905
  };
14898
14906
  }
@@ -14938,6 +14946,7 @@ var makeRetryPayload = (job) => {
14938
14946
  initialBeep: job.beepOnFinish,
14939
14947
  initialRepro: job.repro,
14940
14948
  initialForSeamlessAacConcatenation: defaults.forSeamlessAacConcatenation,
14949
+ defaulMetadata: job.metadata,
14941
14950
  renderTypeOfLastRender: "sequence"
14942
14951
  };
14943
14952
  }
@@ -14983,6 +14992,7 @@ var makeRetryPayload = (job) => {
14983
14992
  initialBeep: job.beepOnFinish,
14984
14993
  initialRepro: job.repro,
14985
14994
  initialForSeamlessAacConcatenation: job.forSeamlessAacConcatenation,
14995
+ defaulMetadata: job.metadata,
14986
14996
  renderTypeOfLastRender: "video"
14987
14997
  };
14988
14998
  }
@@ -16341,7 +16351,8 @@ var RenderButton = () => {
16341
16351
  initialBeep: defaults.beepOnFinish,
16342
16352
  initialRepro: defaults.repro,
16343
16353
  initialForSeamlessAacConcatenation: defaults.forSeamlessAacConcatenation,
16344
- renderTypeOfLastRender: null
16354
+ renderTypeOfLastRender: null,
16355
+ defaulMetadata: defaults.metadata
16345
16356
  });
16346
16357
  }, [video, setSelectedModal, frame2, props, inFrame, outFrame]);
16347
16358
  if (!video) {
@@ -24914,7 +24925,8 @@ var RenderModal = ({
24914
24925
  initialBeep,
24915
24926
  initialRepro,
24916
24927
  initialForSeamlessAacConcatenation,
24917
- renderTypeOfLastRender
24928
+ renderTypeOfLastRender,
24929
+ defaultMetadata
24918
24930
  }) => {
24919
24931
  const { setSelectedModal } = useContext75(ModalsContext);
24920
24932
  const context = useContext75(ResolvedCompositionContext);
@@ -25097,6 +25109,7 @@ var RenderModal = ({
25097
25109
  return null;
25098
25110
  }, [codec, x264PresetSetting, renderMode]);
25099
25111
  const [inputProps, setInputProps] = useState70(() => defaultProps);
25112
+ const [metadata] = useState70(() => defaultMetadata);
25100
25113
  const endFrame = useMemo116(() => {
25101
25114
  if (endFrameOrNull === null) {
25102
25115
  return resolvedComposition.durationInFrames - 1;
@@ -25195,7 +25208,8 @@ var RenderModal = ({
25195
25208
  inputProps,
25196
25209
  offthreadVideoCacheSizeInBytes,
25197
25210
  multiProcessOnLinux,
25198
- beepOnFinish
25211
+ beepOnFinish,
25212
+ metadata
25199
25213
  }).then(() => {
25200
25214
  dispatchIfMounted({ type: "succeed" });
25201
25215
  setSelectedModal(null);
@@ -25219,7 +25233,8 @@ var RenderModal = ({
25219
25233
  offthreadVideoCacheSizeInBytes,
25220
25234
  multiProcessOnLinux,
25221
25235
  beepOnFinish,
25222
- setSelectedModal
25236
+ setSelectedModal,
25237
+ metadata
25223
25238
  ]);
25224
25239
  const [everyNthFrameSetting, setEveryNthFrameSetting] = useState70(() => initialEveryNthFrame);
25225
25240
  const everyNthFrame = useMemo116(() => {
@@ -25278,7 +25293,8 @@ var RenderModal = ({
25278
25293
  beepOnFinish,
25279
25294
  repro,
25280
25295
  forSeamlessAacConcatenation,
25281
- separateAudioTo
25296
+ separateAudioTo,
25297
+ metadata
25282
25298
  }).then(() => {
25283
25299
  dispatchIfMounted({ type: "succeed" });
25284
25300
  setSelectedModal(null);
@@ -25325,7 +25341,8 @@ var RenderModal = ({
25325
25341
  repro,
25326
25342
  forSeamlessAacConcatenation,
25327
25343
  separateAudioTo,
25328
- setSelectedModal
25344
+ setSelectedModal,
25345
+ metadata
25329
25346
  ]);
25330
25347
  const onClickSequence = useCallback116(() => {
25331
25348
  setSidebarCollapsedState({ left: null, right: "expanded" });
@@ -25350,7 +25367,8 @@ var RenderModal = ({
25350
25367
  disallowParallelEncoding,
25351
25368
  multiProcessOnLinux,
25352
25369
  beepOnFinish,
25353
- repro
25370
+ repro,
25371
+ metadata
25354
25372
  }).then(() => {
25355
25373
  dispatchIfMounted({ type: "succeed" });
25356
25374
  setSelectedModal(null);
@@ -25378,7 +25396,8 @@ var RenderModal = ({
25378
25396
  multiProcessOnLinux,
25379
25397
  beepOnFinish,
25380
25398
  repro,
25381
- setSelectedModal
25399
+ setSelectedModal,
25400
+ metadata
25382
25401
  ]);
25383
25402
  useEffect70(() => {
25384
25403
  return () => {
@@ -26500,7 +26519,8 @@ var Modals = ({ readOnlyStudio }) => {
26500
26519
  outFrameMark: modalContextType.outFrameMark,
26501
26520
  defaultConfigurationAudioCodec: modalContextType.defaultConfigurationAudioCodec,
26502
26521
  defaultConfigurationVideoCodec: modalContextType.defaultConfigurationVideoCodec,
26503
- renderTypeOfLastRender: modalContextType.renderTypeOfLastRender
26522
+ renderTypeOfLastRender: modalContextType.renderTypeOfLastRender,
26523
+ defaultMetadata: modalContextType.defaulMetadata
26504
26524
  }),
26505
26525
  modalContextType && canRender && modalContextType.type === "render-progress" && /* @__PURE__ */ jsx246(RenderStatusModal, {
26506
26526
  jobId: modalContextType.jobId
@@ -24,4 +24,4 @@ export declare const TIMELINE_TRACK_SEPARATOR = "rgba(0, 0, 0, 0.3)";
24
24
  export declare const getBackgroundFromHoverState: ({ selected, hovered, }: {
25
25
  selected: boolean;
26
26
  hovered: boolean;
27
- }) => "hsla(0, 0%, 100%, 0.15)" | "hsla(0, 0%, 100%, 0.25)" | "rgba(255, 255, 255, 0.06)" | "transparent";
27
+ }) => "transparent" | "hsla(0, 0%, 100%, 0.25)" | "hsla(0, 0%, 100%, 0.15)" | "rgba(255, 255, 255, 0.06)";
@@ -1,2 +1,2 @@
1
1
  import type { X264Preset } from '@remotion/renderer';
2
- export declare const labelx264Preset: (profile: X264Preset) => "medium" | "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "slow" | "slower" | "veryslow" | "placebo";
2
+ export declare const labelx264Preset: (profile: X264Preset) => "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "medium" | "slow" | "slower" | "veryslow" | "placebo";
@@ -50,6 +50,7 @@ const makeRetryPayload = (job) => {
50
50
  initialBeep: job.beepOnFinish,
51
51
  initialRepro: job.repro,
52
52
  initialForSeamlessAacConcatenation: defaults.forSeamlessAacConcatenation,
53
+ defaulMetadata: job.metadata,
53
54
  renderTypeOfLastRender: 'still',
54
55
  };
55
56
  }
@@ -95,6 +96,7 @@ const makeRetryPayload = (job) => {
95
96
  initialBeep: job.beepOnFinish,
96
97
  initialRepro: job.repro,
97
98
  initialForSeamlessAacConcatenation: defaults.forSeamlessAacConcatenation,
99
+ defaulMetadata: job.metadata,
98
100
  renderTypeOfLastRender: 'sequence',
99
101
  };
100
102
  }
@@ -140,6 +142,7 @@ const makeRetryPayload = (job) => {
140
142
  initialBeep: job.beepOnFinish,
141
143
  initialRepro: job.repro,
142
144
  initialForSeamlessAacConcatenation: job.forSeamlessAacConcatenation,
145
+ defaulMetadata: job.metadata,
143
146
  renderTypeOfLastRender: 'video',
144
147
  };
145
148
  }
@@ -47,6 +47,7 @@ export type RenderModalState = {
47
47
  defaultConfigurationVideoCodec: Codec;
48
48
  defaultConfigurationAudioCodec: AudioCodec | null;
49
49
  renderTypeOfLastRender: RenderType | null;
50
+ defaulMetadata: Record<string, string> | null;
50
51
  };
51
52
  export type ModalState = {
52
53
  type: 'duplicate-comp';
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.215",
6
+ "version": "4.0.216",
7
7
  "description": "APIs for interacting with the Remotion Studio",
8
8
  "main": "dist",
9
9
  "sideEffects": false,
@@ -18,18 +18,18 @@
18
18
  "memfs": "3.4.3",
19
19
  "source-map": "0.7.3",
20
20
  "open": "^8.4.2",
21
- "remotion": "4.0.215",
22
- "@remotion/player": "4.0.215",
23
- "@remotion/studio-shared": "4.0.215",
24
- "@remotion/media-utils": "4.0.215",
25
- "@remotion/renderer": "4.0.215"
21
+ "remotion": "4.0.216",
22
+ "@remotion/player": "4.0.216",
23
+ "@remotion/media-utils": "4.0.216",
24
+ "@remotion/renderer": "4.0.216",
25
+ "@remotion/studio-shared": "4.0.216"
26
26
  },
27
27
  "devDependencies": {
28
28
  "react": "18.3.1",
29
29
  "react-dom": "18.3.1",
30
30
  "@types/semver": "^7.3.4",
31
31
  "zod": "3.22.3",
32
- "@remotion/zod-types": "4.0.215"
32
+ "@remotion/zod-types": "4.0.216"
33
33
  },
34
34
  "publishConfig": {
35
35
  "access": "public"