@remotion/cli 4.0.79 → 4.0.81

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 (39) hide show
  1. package/dist/cloudrun-command.js +3 -4
  2. package/dist/config/image-format.d.ts +1 -1
  3. package/dist/config/index.d.ts +2 -2
  4. package/dist/config/index.js +3 -4
  5. package/dist/download-progress.d.ts +1 -1
  6. package/dist/download-progress.js +2 -2
  7. package/dist/editor/components/NewComposition/RemInput.d.ts +1 -1
  8. package/dist/editor/components/RenderModal/SchemaEditor/ZodArrayEditor.js +2 -1
  9. package/dist/editor/helpers/colors.d.ts +1 -1
  10. package/dist/get-cli-options.d.ts +2 -2
  11. package/dist/get-composition-id.js +2 -2
  12. package/dist/get-env.js +2 -2
  13. package/dist/get-render-defaults.d.ts +2 -0
  14. package/dist/get-render-defaults.js +71 -0
  15. package/dist/index.d.ts +9 -9
  16. package/dist/index.js +4 -4
  17. package/dist/lambda-command.js +3 -4
  18. package/dist/list-of-remotion-packages.js +1 -0
  19. package/dist/make-on-download.d.ts +1 -1
  20. package/dist/make-on-download.js +4 -2
  21. package/dist/progress-bar.d.ts +1 -9
  22. package/dist/progress-bar.js +3 -4
  23. package/dist/progress-types.d.ts +1 -31
  24. package/dist/render-flows/render.d.ts +1 -1
  25. package/dist/render-flows/still.d.ts +1 -1
  26. package/dist/render-queue/process-still.d.ts +8 -0
  27. package/dist/render-queue/process-still.js +49 -0
  28. package/dist/render-queue/process-video.d.ts +10 -0
  29. package/dist/render-queue/process-video.js +70 -0
  30. package/dist/render-queue/queue.d.ts +11 -0
  31. package/dist/render-queue/queue.js +220 -0
  32. package/dist/setup-cache.d.ts +1 -1
  33. package/dist/studio.js +30 -102
  34. package/dist/upgrade.js +4 -5
  35. package/dist/user-passed-output-location.js +2 -2
  36. package/package.json +10 -14
  37. package/styles/styles.css +0 -123
  38. package/types/global.d.ts +0 -4
  39. package/web/favicon.png +0 -0
@@ -1,9 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.cloudrunCommand = void 0;
4
+ const studio_1 = require("@remotion/studio");
4
5
  const log_1 = require("./log");
5
- const get_package_manager_1 = require("./preview-server/get-package-manager");
6
- const update_available_1 = require("./preview-server/update-available");
7
6
  const cloudrunCommand = async (remotionRoot, args, logLevel) => {
8
7
  try {
9
8
  const path = require.resolve('@remotion/cloudrun', {
@@ -14,13 +13,13 @@ const cloudrunCommand = async (remotionRoot, args, logLevel) => {
14
13
  process.exit(0);
15
14
  }
16
15
  catch (err) {
17
- const manager = (0, get_package_manager_1.getPackageManager)(remotionRoot, undefined);
16
+ const manager = studio_1.StudioInternals.getPackageManager(remotionRoot, undefined);
18
17
  const installCommand = manager === 'unknown' ? 'npm i' : manager.installCommand;
19
18
  log_1.Log.error(err);
20
19
  log_1.Log.error('Remotion Cloud Run is not installed.');
21
20
  log_1.Log.infoAdvanced({ indent: false, logLevel }, '');
22
21
  log_1.Log.infoAdvanced({ indent: false, logLevel }, 'You can install it using:');
23
- log_1.Log.infoAdvanced({ indent: false, logLevel }, `${installCommand} @remotion/cloudrun@${(0, update_available_1.getRemotionVersion)()}`);
22
+ log_1.Log.infoAdvanced({ indent: false, logLevel }, `${installCommand} @remotion/cloudrun@${studio_1.StudioInternals.getRemotionVersion()}`);
24
23
  process.exit(1);
25
24
  }
26
25
  };
@@ -2,4 +2,4 @@ import type { StillImageFormat, VideoImageFormat } from '@remotion/renderer';
2
2
  export declare const setStillImageFormat: (format: StillImageFormat) => void;
3
3
  export declare const setVideoImageFormat: (format: VideoImageFormat) => void;
4
4
  export declare const getUserPreferredStillImageFormat: () => "png" | "jpeg" | "pdf" | "webp" | undefined;
5
- export declare const getUserPreferredVideoImageFormat: () => "none" | "png" | "jpeg" | undefined;
5
+ export declare const getUserPreferredVideoImageFormat: () => "png" | "jpeg" | "none" | undefined;
@@ -315,7 +315,7 @@ export declare const ConfigInternals: {
315
315
  getBrowser: () => null;
316
316
  getPixelFormat: () => "yuv420p" | "yuva420p" | "yuv422p" | "yuv444p" | "yuv420p10le" | "yuv422p10le" | "yuv444p10le" | "yuva444p10le";
317
317
  getProResProfile: () => "4444-xq" | "4444" | "hq" | "standard" | "light" | "proxy" | undefined;
318
- getPresetProfile: () => "medium" | "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "slow" | "slower" | "veryslow" | "placebo" | undefined;
318
+ getPresetProfile: () => "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "medium" | "slow" | "slower" | "veryslow" | "placebo" | undefined;
319
319
  getShouldOverwrite: ({ defaultValue, }: {
320
320
  defaultValue: boolean;
321
321
  }) => boolean;
@@ -337,7 +337,7 @@ export declare const ConfigInternals: {
337
337
  getShouldOutputImageSequence: (frameRange: FrameRange | null) => boolean;
338
338
  getDotEnvLocation: () => string | null;
339
339
  getUserPreferredStillImageFormat: () => "png" | "jpeg" | "pdf" | "webp" | undefined;
340
- getUserPreferredVideoImageFormat: () => "none" | "png" | "jpeg" | undefined;
340
+ getUserPreferredVideoImageFormat: () => "png" | "jpeg" | "none" | undefined;
341
341
  getWebpackOverrideFn: () => WebpackOverrideFn;
342
342
  getWebpackCaching: () => boolean;
343
343
  getOutputLocation: () => string | null;
@@ -36,7 +36,6 @@ const image_format_1 = require("./image-format");
36
36
  const image_sequence_1 = require("./image-sequence");
37
37
  const jpeg_quality_1 = require("./jpeg-quality");
38
38
  const Logging = __importStar(require("./log"));
39
- const max_timeline_tracks_1 = require("./max-timeline-tracks");
40
39
  const output_location_1 = require("./output-location");
41
40
  const override_webpack_1 = require("./override-webpack");
42
41
  const overwrite_1 = require("./overwrite");
@@ -49,6 +48,7 @@ const still_frame_1 = require("./still-frame");
49
48
  const timeout_1 = require("./timeout");
50
49
  const webpack_caching_1 = require("./webpack-caching");
51
50
  const x264_preset_1 = require("./x264-preset");
51
+ const studio_1 = require("@remotion/studio");
52
52
  const audio_codec_1 = require("./audio-codec");
53
53
  const bitrate_1 = require("./bitrate");
54
54
  const browser_executable_2 = require("./browser-executable");
@@ -68,7 +68,6 @@ const image_sequence_2 = require("./image-sequence");
68
68
  const jpeg_quality_2 = require("./jpeg-quality");
69
69
  const keyboard_shortcuts_1 = require("./keyboard-shortcuts");
70
70
  const log_1 = require("./log");
71
- const max_timeline_tracks_2 = require("./max-timeline-tracks");
72
71
  const muted_1 = require("./muted");
73
72
  const number_of_gif_loops_1 = require("./number-of-gif-loops");
74
73
  const number_of_shared_audio_tags_1 = require("./number-of-shared-audio-tags");
@@ -107,7 +106,7 @@ exports.Config = {
107
106
  get Puppeteer() {
108
107
  throw new Error('The config format has changed. Change `Config.Puppeteer.*()` calls to `Config.*()` in your config file.');
109
108
  },
110
- setMaxTimelineTracks: max_timeline_tracks_2.setMaxTimelineTracks,
109
+ setMaxTimelineTracks: studio_1.StudioInternals.setMaxTimelineTracks,
111
110
  setKeyboardShortcutsEnabled: keyboard_shortcuts_1.setKeyboardShortcutsEnabled,
112
111
  setNumberOfSharedAudioTags: number_of_shared_audio_tags_1.setNumberOfSharedAudioTags,
113
112
  setWebpackPollingInMilliseconds: webpack_poll_1.setWebpackPollingInMilliseconds,
@@ -200,7 +199,7 @@ exports.ConfigInternals = {
200
199
  Logging,
201
200
  setFrameRangeFromCli: frame_range_1.setFrameRangeFromCli,
202
201
  setStillFrame: still_frame_1.setStillFrame,
203
- getMaxTimelineTracks: max_timeline_tracks_1.getMaxTimelineTracks,
202
+ getMaxTimelineTracks: studio_1.StudioInternals.getMaxTimelineTracks,
204
203
  defaultOverrideFunction: override_webpack_1.defaultOverrideFunction,
205
204
  setMuted: muted_1.setMuted,
206
205
  getMuted: muted_1.getMuted,
@@ -1,3 +1,3 @@
1
- import type { DownloadProgress } from './progress-types';
1
+ import type { DownloadProgress } from '@remotion/studio';
2
2
  export declare const getFileSizeDownloadBar: (downloaded: number) => string;
3
3
  export declare const makeMultiDownloadProgress: (progresses: DownloadProgress[]) => string | null;
@@ -1,12 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.makeMultiDownloadProgress = exports.getFileSizeDownloadBar = void 0;
4
- const format_bytes_1 = require("./format-bytes");
4
+ const studio_1 = require("@remotion/studio");
5
5
  const make_progress_bar_1 = require("./make-progress-bar");
6
6
  const truthy_1 = require("./truthy");
7
7
  const getFileSizeDownloadBar = (downloaded) => {
8
8
  const desiredLength = (0, make_progress_bar_1.makeProgressBar)(0).length;
9
- return `[${(0, format_bytes_1.formatBytes)(downloaded).padEnd(desiredLength - 2, ' ')}]`;
9
+ return `[${studio_1.StudioInternals.formatBytes(downloaded).padEnd(desiredLength - 2, ' ')}]`;
10
10
  };
11
11
  exports.getFileSizeDownloadBar = getFileSizeDownloadBar;
12
12
  const makeMultiDownloadProgress = (progresses) => {
@@ -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
- }) => "#ff3232" | "hsla(0, 0%, 100%, 0.15)" | "#f1c40f" | "rgba(0, 0, 0, 0.6)" | "rgba(255, 255, 255, 0.05)";
15
+ }) => "hsla(0, 0%, 100%, 0.15)" | "rgba(0, 0, 0, 0.6)" | "rgba(255, 255, 255, 0.05)" | "#ff3232" | "#f1c40f";
16
16
  export declare const RemotionInput: React.ForwardRefExoticComponent<Pick<Props, "key" | keyof React.InputHTMLAttributes<HTMLInputElement> | "status" | "rightAlign"> & React.RefAttributes<HTMLInputElement>>;
17
17
  export {};
@@ -64,9 +64,10 @@ const ZodArrayEditor = ({ schema, jsonPath, setValue, defaultValue, value, onSav
64
64
  }, children: (0, jsx_runtime_1.jsx)(SchemaLabel_1.SchemaLabel, { onReset: reset, isDefaultValue: isDefaultValue, jsonPath: jsonPath, onRemove: onRemove, suffix: suffix, onSave: () => {
65
65
  onSave(() => localValue.value, false, false);
66
66
  }, saveDisabledByParent: saveDisabledByParent, saving: saving, showSaveButton: showSaveButton, valid: localValue.zodValidation.success, handleClick: () => setExpanded(!expanded) }) }), expanded ? ((0, jsx_runtime_1.jsx)(RevisionContextProvider, { children: (0, jsx_runtime_1.jsx)(SchemaVerticalGuide_1.SchemaVerticalGuide, { isRoot: false, children: localValue.value.map((child, i) => {
67
+ var _a;
67
68
  return (
68
69
  // eslint-disable-next-line react/no-array-index-key
69
- (0, jsx_runtime_1.jsxs)(react_1.default.Fragment, { children: [(0, jsx_runtime_1.jsx)(ZodArrayItemEditor_1.ZodArrayItemEditor, { onChange: onChange, value: child, def: def, index: i, jsonPath: jsonPath, defaultValue: defaultValue[i], onSave: onSave, showSaveButton: showSaveButton, saving: saving, saveDisabledByParent: saveDisabledByParent, mayPad: mayPad }), (0, jsx_runtime_1.jsx)(SchemaSeparationLine_1.SchemaArrayItemSeparationLine, { schema: schema, index: i, onChange: onChange, isLast: i === localValue.value.length - 1 })] }, `${i}${localValue.keyStabilityRevision}`));
70
+ (0, jsx_runtime_1.jsxs)(react_1.default.Fragment, { children: [(0, jsx_runtime_1.jsx)(ZodArrayItemEditor_1.ZodArrayItemEditor, { onChange: onChange, value: child, def: def, index: i, jsonPath: jsonPath, defaultValue: (_a = defaultValue[i]) !== null && _a !== void 0 ? _a : child, onSave: onSave, showSaveButton: showSaveButton, saving: saving, saveDisabledByParent: saveDisabledByParent, mayPad: mayPad }), (0, jsx_runtime_1.jsx)(SchemaSeparationLine_1.SchemaArrayItemSeparationLine, { schema: schema, index: i, onChange: onChange, isLast: i === localValue.value.length - 1 })] }, `${i}${localValue.keyStabilityRevision}`));
70
71
  }) }) })) : null, (0, jsx_runtime_1.jsx)(ZodFieldValidation_1.ZodFieldValidation, { path: jsonPath, localValue: localValue })] }));
71
72
  };
72
73
  exports.ZodArrayEditor = ZodArrayEditor;
@@ -22,4 +22,4 @@ export declare const LINE_COLOR = "#363A3E";
22
22
  export declare const getBackgroundFromHoverState: ({ selected, hovered, }: {
23
23
  selected: boolean;
24
24
  hovered: boolean;
25
- }) => "transparent" | "hsla(0, 0%, 100%, 0.25)" | "hsla(0, 0%, 100%, 0.15)" | "rgba(255, 255, 255, 0.06)";
25
+ }) => "transparent" | "hsla(0, 0%, 100%, 0.15)" | "hsla(0, 0%, 100%, 0.25)" | "rgba(255, 255, 255, 0.06)";
@@ -17,7 +17,7 @@ export declare const getCliOptions: (options: {
17
17
  crf: import("@remotion/renderer").Crf | null;
18
18
  pixelFormat: "yuv420p" | "yuva420p" | "yuv422p" | "yuv444p" | "yuv420p10le" | "yuv422p10le" | "yuv444p10le" | "yuva444p10le";
19
19
  proResProfile: "4444-xq" | "4444" | "hq" | "standard" | "light" | "proxy" | undefined;
20
- x264Preset: "medium" | "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "slow" | "slower" | "veryslow" | "placebo" | undefined;
20
+ x264Preset: "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "medium" | "slow" | "slower" | "veryslow" | "placebo" | undefined;
21
21
  everyNthFrame: number;
22
22
  numberOfGifLoops: import("./config/number-of-gif-loops").Loop;
23
23
  stillFrame: number;
@@ -36,7 +36,7 @@ export declare const getCliOptions: (options: {
36
36
  encodingMaxRate: string | null;
37
37
  height: number | null;
38
38
  width: number | null;
39
- configFileImageFormat: "none" | "png" | "jpeg" | undefined;
39
+ configFileImageFormat: "png" | "jpeg" | "none" | undefined;
40
40
  offthreadVideoCacheSizeInBytes: number | null;
41
41
  deleteAfter: ("1-day" | "3-days" | "7-days" | "30-days") | null;
42
42
  colorSpace: "default" | "bt709";
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getCompositionId = void 0;
4
4
  const renderer_1 = require("@remotion/renderer");
5
- const format_bytes_1 = require("./format-bytes");
5
+ const studio_1 = require("@remotion/studio");
6
6
  const log_1 = require("./log");
7
7
  const show_compositions_picker_1 = require("./show-compositions-picker");
8
8
  const getCompName = ({ cliArgs, compositionIdFromUi, }) => {
@@ -42,7 +42,7 @@ const getCompositionId = async ({ args, compositionIdFromUi, serializedInputProp
42
42
  log_1.Log.warn({
43
43
  indent,
44
44
  logLevel,
45
- }, `The props of your composition are large (${(0, format_bytes_1.formatBytes)(propsSize)}). This may cause slowdown.`);
45
+ }, `The props of your composition are large (${studio_1.StudioInternals.formatBytes(propsSize)}). This may cause slowdown.`);
46
46
  }
47
47
  if (!config) {
48
48
  throw new Error(`Cannot find composition with ID "${compName}"`);
package/dist/get-env.js CHANGED
@@ -28,12 +28,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
28
28
  Object.defineProperty(exports, "__esModule", { value: true });
29
29
  exports.getEnvironmentVariables = void 0;
30
30
  const renderer_1 = require("@remotion/renderer");
31
+ const studio_1 = require("@remotion/studio");
31
32
  const dotenv_1 = __importDefault(require("dotenv"));
32
33
  const node_fs_1 = __importStar(require("node:fs"));
33
34
  const node_path_1 = __importDefault(require("node:path"));
34
35
  const chalk_1 = require("./chalk");
35
36
  const config_1 = require("./config");
36
- const file_watcher_1 = require("./file-watcher");
37
37
  const log_1 = require("./log");
38
38
  const parse_command_line_1 = require("./parse-command-line");
39
39
  function getProcessEnv() {
@@ -52,7 +52,7 @@ const watchEnvFile = ({ processEnv, envFile, onUpdate, logLevel, }) => {
52
52
  ...dotenv_1.default.parse(file),
53
53
  });
54
54
  };
55
- const { unwatch } = (0, file_watcher_1.installFileWatcher)({
55
+ const { unwatch } = studio_1.StudioInternals.installFileWatcher({
56
56
  file: envFile,
57
57
  onChange: async (type) => {
58
58
  try {
@@ -0,0 +1,2 @@
1
+ import type { RenderDefaults } from '@remotion/bundler';
2
+ export declare const getRenderDefaults: () => RenderDefaults;
@@ -0,0 +1,71 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getRenderDefaults = void 0;
4
+ const renderer_1 = require("@remotion/renderer");
5
+ const config_1 = require("./config");
6
+ const getRenderDefaults = () => {
7
+ var _a, _b;
8
+ const defaultJpegQuality = config_1.ConfigInternals.getJpegQuality();
9
+ const defaultScale = config_1.ConfigInternals.getScale();
10
+ const logLevel = config_1.ConfigInternals.Logging.getLogLevel();
11
+ const defaultCodec = config_1.ConfigInternals.getOutputCodecOrUndefined();
12
+ const concurrency = renderer_1.RenderInternals.getActualConcurrency(config_1.ConfigInternals.getConcurrency());
13
+ const muted = config_1.ConfigInternals.getMuted();
14
+ const enforceAudioTrack = config_1.ConfigInternals.getEnforceAudioTrack();
15
+ const pixelFormat = config_1.ConfigInternals.getPixelFormat();
16
+ const proResProfile = (_a = config_1.ConfigInternals.getProResProfile()) !== null && _a !== void 0 ? _a : 'hq';
17
+ const x264Preset = (_b = config_1.ConfigInternals.getPresetProfile()) !== null && _b !== void 0 ? _b : 'medium';
18
+ const audioBitrate = config_1.ConfigInternals.getAudioBitrate();
19
+ const videoBitrate = config_1.ConfigInternals.getVideoBitrate();
20
+ const encodingBufferSize = config_1.ConfigInternals.getEncodingBufferSize();
21
+ const encodingMaxRate = config_1.ConfigInternals.getEncodingMaxRate();
22
+ const everyNthFrame = config_1.ConfigInternals.getEveryNthFrame();
23
+ const numberOfGifLoops = config_1.ConfigInternals.getNumberOfGifLoops();
24
+ const delayRenderTimeout = config_1.ConfigInternals.getCurrentPuppeteerTimeout();
25
+ const audioCodec = config_1.ConfigInternals.getAudioCodec();
26
+ const stillImageFormat = config_1.ConfigInternals.getUserPreferredStillImageFormat();
27
+ const videoImageFormat = config_1.ConfigInternals.getUserPreferredVideoImageFormat();
28
+ const disableWebSecurity = config_1.ConfigInternals.getChromiumDisableWebSecurity();
29
+ const headless = config_1.ConfigInternals.getChromiumHeadlessMode();
30
+ const ignoreCertificateErrors = config_1.ConfigInternals.getIgnoreCertificateErrors();
31
+ const openGlRenderer = config_1.ConfigInternals.getChromiumOpenGlRenderer();
32
+ const offthreadVideoCacheSizeInBytes = config_1.ConfigInternals.getOffthreadVideoCacheSizeInBytes();
33
+ const colorSpace = config_1.ConfigInternals.getColorSpace();
34
+ const userAgent = config_1.ConfigInternals.getChromiumUserAgent();
35
+ const maxConcurrency = renderer_1.RenderInternals.getMaxConcurrency();
36
+ const minConcurrency = renderer_1.RenderInternals.getMinConcurrency();
37
+ const multiProcessOnLinux = config_1.ConfigInternals.getChromiumMultiProcessOnLinux();
38
+ return {
39
+ jpegQuality: defaultJpegQuality !== null && defaultJpegQuality !== void 0 ? defaultJpegQuality : renderer_1.RenderInternals.DEFAULT_JPEG_QUALITY,
40
+ scale: defaultScale !== null && defaultScale !== void 0 ? defaultScale : 1,
41
+ logLevel,
42
+ codec: defaultCodec !== null && defaultCodec !== void 0 ? defaultCodec : 'h264',
43
+ concurrency,
44
+ maxConcurrency,
45
+ minConcurrency,
46
+ stillImageFormat: stillImageFormat !== null && stillImageFormat !== void 0 ? stillImageFormat : renderer_1.RenderInternals.DEFAULT_STILL_IMAGE_FORMAT,
47
+ videoImageFormat: videoImageFormat !== null && videoImageFormat !== void 0 ? videoImageFormat : renderer_1.RenderInternals.DEFAULT_VIDEO_IMAGE_FORMAT,
48
+ muted,
49
+ enforceAudioTrack,
50
+ proResProfile,
51
+ x264Preset,
52
+ pixelFormat,
53
+ audioBitrate,
54
+ videoBitrate,
55
+ encodingBufferSize,
56
+ encodingMaxRate,
57
+ everyNthFrame,
58
+ numberOfGifLoops,
59
+ delayRenderTimeout,
60
+ audioCodec,
61
+ disableWebSecurity,
62
+ headless,
63
+ ignoreCertificateErrors,
64
+ openGlRenderer,
65
+ offthreadVideoCacheSizeInBytes,
66
+ colorSpace,
67
+ multiProcessOnLinux,
68
+ userAgent,
69
+ };
70
+ };
71
+ exports.getRenderDefaults = getRenderDefaults;
package/dist/index.d.ts CHANGED
@@ -87,7 +87,7 @@ export declare const CliInternals: {
87
87
  crf: import("@remotion/renderer").Crf | null;
88
88
  pixelFormat: "yuv420p" | "yuva420p" | "yuv422p" | "yuv444p" | "yuv420p10le" | "yuv422p10le" | "yuv444p10le" | "yuva444p10le";
89
89
  proResProfile: "4444-xq" | "4444" | "hq" | "standard" | "light" | "proxy" | undefined;
90
- x264Preset: "medium" | "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "slow" | "slower" | "veryslow" | "placebo" | undefined;
90
+ x264Preset: "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "medium" | "slow" | "slower" | "veryslow" | "placebo" | undefined;
91
91
  everyNthFrame: number;
92
92
  numberOfGifLoops: import("./config/number-of-gif-loops").Loop;
93
93
  stillFrame: number;
@@ -106,7 +106,7 @@ export declare const CliInternals: {
106
106
  encodingMaxRate: string | null;
107
107
  height: number | null;
108
108
  width: number | null;
109
- configFileImageFormat: "none" | "png" | "jpeg" | undefined;
109
+ configFileImageFormat: "png" | "jpeg" | "none" | undefined;
110
110
  offthreadVideoCacheSizeInBytes: number | null;
111
111
  deleteAfter: ("1-day" | "3-days" | "7-days" | "30-days") | null;
112
112
  colorSpace: "default" | "bt709";
@@ -118,9 +118,9 @@ export declare const CliInternals: {
118
118
  parsedCli: {
119
119
  "browser-executable": import("@remotion/renderer").BrowserExecutable;
120
120
  "pixel-format": "yuv420p" | "yuva420p" | "yuv422p" | "yuv444p" | "yuv420p10le" | "yuv422p10le" | "yuv444p10le" | "yuva444p10le";
121
- "image-format": "none" | "png" | "jpeg" | "pdf" | "webp";
121
+ "image-format": "png" | "jpeg" | "pdf" | "webp" | "none";
122
122
  "prores-profile": "4444-xq" | "4444" | "hq" | "standard" | "light" | "proxy";
123
- "x264-preset": "medium" | "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "slow" | "slower" | "veryslow" | "placebo";
123
+ "x264-preset": "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "medium" | "slow" | "slower" | "veryslow" | "placebo";
124
124
  "bundle-cache": string;
125
125
  "env-file": string;
126
126
  "ignore-certificate-errors": string;
@@ -180,18 +180,18 @@ export declare const CliInternals: {
180
180
  _: string[];
181
181
  };
182
182
  printError: (err: Error, logLevel: "verbose" | "info" | "warn" | "error") => Promise<void>;
183
- formatBytes: (number: number, options?: Intl.NumberFormatOptions & {
183
+ formatBytes: (number: number, options?: (Intl.NumberFormatOptions & {
184
184
  locale: string;
185
185
  bits?: boolean | undefined;
186
186
  binary?: boolean | undefined;
187
187
  signed: boolean;
188
- }) => string;
188
+ }) | undefined) => string;
189
189
  getFileSizeDownloadBar: (downloaded: number) => string;
190
190
  determineFinalStillImageFormat: ({ downloadName, outName, configImageFormat, cliFlag, isLambda, fromUi, }: {
191
191
  downloadName: string | null;
192
192
  outName: string | null;
193
193
  configImageFormat: "png" | "jpeg" | "pdf" | "webp" | null;
194
- cliFlag: "none" | "png" | "jpeg" | "pdf" | "webp" | null;
194
+ cliFlag: "png" | "jpeg" | "pdf" | "webp" | "none" | null;
195
195
  isLambda: boolean;
196
196
  fromUi: "png" | "jpeg" | "pdf" | "webp" | null;
197
197
  }) => {
@@ -206,8 +206,8 @@ export declare const CliInternals: {
206
206
  };
207
207
  getVideoImageFormat: ({ codec, uiImageFormat, }: {
208
208
  codec: import("@remotion/renderer").CodecOrUndefined;
209
- uiImageFormat: "none" | "png" | "jpeg" | null;
210
- }) => "none" | "png" | "jpeg";
209
+ uiImageFormat: "png" | "jpeg" | "none" | null;
210
+ }) => "png" | "jpeg" | "none";
211
211
  printCompositions: (compositions: import("remotion").VideoConfig[]) => void;
212
212
  getFinalOutputCodec: ({ cliFlag, configFile, downloadName, outName, uiCodec, compositionCodec, }: {
213
213
  cliFlag: import("@remotion/renderer").CodecOrUndefined;
package/dist/index.js CHANGED
@@ -5,6 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.CliInternals = exports.cli = void 0;
7
7
  const renderer_1 = require("@remotion/renderer");
8
+ const studio_1 = require("@remotion/studio");
8
9
  const minimist_1 = __importDefault(require("minimist"));
9
10
  const benchmark_1 = require("./benchmark");
10
11
  const chalk_1 = require("./chalk");
@@ -16,7 +17,6 @@ const determine_image_format_1 = require("./determine-image-format");
16
17
  const download_progress_1 = require("./download-progress");
17
18
  const entry_point_1 = require("./entry-point");
18
19
  const ffmpeg_1 = require("./ffmpeg");
19
- const format_bytes_1 = require("./format-bytes");
20
20
  const get_cli_options_1 = require("./get-cli-options");
21
21
  const get_composition_with_dimension_override_1 = require("./get-composition-with-dimension-override");
22
22
  const get_config_file_name_1 = require("./get-config-file-name");
@@ -36,7 +36,7 @@ const progress_bar_1 = require("./progress-bar");
36
36
  const render_1 = require("./render");
37
37
  const should_use_non_overlaying_logger_1 = require("./should-use-non-overlaying-logger");
38
38
  const still_1 = require("./still");
39
- const studio_1 = require("./studio");
39
+ const studio_2 = require("./studio");
40
40
  const upgrade_1 = require("./upgrade");
41
41
  const versions_1 = require("./versions");
42
42
  const cli = async () => {
@@ -73,7 +73,7 @@ const cli = async () => {
73
73
  await (0, compositions_1.listCompositionsCommand)(remotionRoot, args, logLevel);
74
74
  }
75
75
  else if (isStudio) {
76
- await (0, studio_1.studioCommand)(remotionRoot, args, logLevel);
76
+ await (0, studio_2.studioCommand)(remotionRoot, args, logLevel);
77
77
  }
78
78
  else if (command === 'lambda') {
79
79
  await (0, lambda_command_1.lambdaCommand)(remotionRoot, args, logLevel);
@@ -141,7 +141,7 @@ exports.CliInternals = {
141
141
  quietFlagProvided: parse_command_line_1.quietFlagProvided,
142
142
  parsedCli: parse_command_line_1.parsedCli,
143
143
  printError: print_error_1.printError,
144
- formatBytes: format_bytes_1.formatBytes,
144
+ formatBytes: studio_1.StudioInternals.formatBytes,
145
145
  getFileSizeDownloadBar: download_progress_1.getFileSizeDownloadBar,
146
146
  determineFinalStillImageFormat: determine_image_format_1.determineFinalStillImageFormat,
147
147
  minimist: minimist_1.default,
@@ -1,9 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.lambdaCommand = void 0;
4
+ const studio_1 = require("@remotion/studio");
4
5
  const log_1 = require("./log");
5
- const get_package_manager_1 = require("./preview-server/get-package-manager");
6
- const update_available_1 = require("./preview-server/update-available");
7
6
  const lambdaCommand = async (remotionRoot, args, logLevel) => {
8
7
  try {
9
8
  const path = require.resolve('@remotion/lambda', {
@@ -14,13 +13,13 @@ const lambdaCommand = async (remotionRoot, args, logLevel) => {
14
13
  process.exit(0);
15
14
  }
16
15
  catch (err) {
17
- const manager = (0, get_package_manager_1.getPackageManager)(remotionRoot, undefined);
16
+ const manager = studio_1.StudioInternals.getPackageManager(remotionRoot, undefined);
18
17
  const installCommand = manager === 'unknown' ? 'npm i' : manager.installCommand;
19
18
  log_1.Log.error(err);
20
19
  log_1.Log.error('Remotion Lambda is not installed.');
21
20
  log_1.Log.info('');
22
21
  log_1.Log.info('You can install it using:');
23
- log_1.Log.info(`${installCommand} @remotion/lambda@${(0, update_available_1.getRemotionVersion)()}`);
22
+ log_1.Log.info(`${installCommand} @remotion/lambda@${studio_1.StudioInternals.getRemotionVersion()}`);
24
23
  process.exit(1);
25
24
  }
26
25
  };
@@ -25,6 +25,7 @@ exports.listOfRemotionPackages = [
25
25
  '@remotion/rive',
26
26
  '@remotion/gif',
27
27
  '@remotion/shapes',
28
+ '@remotion/studio',
28
29
  '@remotion/zod-types',
29
30
  '@remotion/tailwind',
30
31
  '@remotion/transitions',
@@ -1,5 +1,5 @@
1
1
  import type { LogLevel, RenderMediaOnDownload } from '@remotion/renderer';
2
- import type { DownloadProgress } from './progress-types';
2
+ import type { DownloadProgress } from '@remotion/studio';
3
3
  export declare const makeOnDownload: ({ indent, logLevel, updatesDontOverwrite, downloads, updateRenderProgress, isUsingParallelEncoding, }: {
4
4
  indent: boolean;
5
5
  logLevel: LogLevel;
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.makeOnDownload = void 0;
4
- const format_bytes_1 = require("./format-bytes");
4
+ const studio_1 = require("@remotion/studio");
5
5
  const log_1 = require("./log");
6
6
  const makeOnDownload = ({ indent, logLevel, updatesDontOverwrite, downloads, updateRenderProgress, isUsingParallelEncoding, }) => {
7
7
  return (src) => {
@@ -30,7 +30,9 @@ const makeOnDownload = ({ indent, logLevel, updatesDontOverwrite, downloads, upd
30
30
  return;
31
31
  }
32
32
  lastUpdate = Date.now();
33
- log_1.Log.verbose({ indent, logLevel }, `Download [${nextDownloadIndex}]:`, percent ? `${(percent * 100).toFixed(1)}%` : (0, format_bytes_1.formatBytes)(downloaded));
33
+ log_1.Log.verbose({ indent, logLevel }, `Download [${nextDownloadIndex}]:`, percent
34
+ ? `${(percent * 100).toFixed(1)}%`
35
+ : studio_1.StudioInternals.formatBytes(downloaded));
34
36
  updateRenderProgress({
35
37
  newline: false,
36
38
  printToConsole: !updatesDontOverwrite,
@@ -1,5 +1,5 @@
1
1
  import type { CancelSignal } from '@remotion/renderer';
2
- import type { AggregateRenderProgress } from './progress-types';
2
+ import type { AggregateRenderProgress, BundlingState, CopyingState } from '@remotion/studio';
3
3
  export type OverwriteableCliOutput = {
4
4
  update: (up: string, newline: boolean) => boolean;
5
5
  };
@@ -9,14 +9,6 @@ export declare const createOverwriteableCliOutput: (options: {
9
9
  updatesDontOverwrite: boolean;
10
10
  indent: boolean;
11
11
  }) => OverwriteableCliOutput;
12
- export type CopyingState = {
13
- bytes: number;
14
- doneIn: number | null;
15
- };
16
- export type BundlingState = {
17
- progress: number;
18
- doneIn: number | null;
19
- };
20
12
  export type SymbolicLinksState = {
21
13
  symlinks: string[];
22
14
  };
@@ -2,10 +2,9 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.makeRenderingAndStitchingProgress = exports.makeBundlingAndCopyProgress = exports.createOverwriteableCliOutput = void 0;
4
4
  const renderer_1 = require("@remotion/renderer");
5
- const ansi_diff_1 = require("./ansi/ansi-diff");
5
+ const studio_1 = require("@remotion/studio");
6
6
  const chalk_1 = require("./chalk");
7
7
  const download_progress_1 = require("./download-progress");
8
- const format_bytes_1 = require("./format-bytes");
9
8
  const make_progress_bar_1 = require("./make-progress-bar");
10
9
  const truthy_1 = require("./truthy");
11
10
  const createOverwriteableCliOutput = (options) => {
@@ -34,7 +33,7 @@ const createOverwriteableCliOutput = (options) => {
34
33
  },
35
34
  };
36
35
  }
37
- const diff = new ansi_diff_1.AnsiDiff();
36
+ const diff = new studio_1.StudioInternals.AnsiDiff();
38
37
  (_a = options.cancelSignal) === null || _a === void 0 ? void 0 : _a.call(options, () => {
39
38
  process.stdout.write(diff.finish());
40
39
  });
@@ -173,7 +172,7 @@ const getGuiProgressSubtitle = (progress) => {
173
172
  return `Bundling ${Math.round(progress.bundling.progress * 100)}%`;
174
173
  }
175
174
  if (progress.copyingState.doneIn === null) {
176
- return `Copying public dir ${(0, format_bytes_1.formatBytes)(progress.copyingState.bytes)}`;
175
+ return `Copying public dir ${studio_1.StudioInternals.formatBytes(progress.copyingState.bytes)}`;
177
176
  }
178
177
  if (!progress.rendering) {
179
178
  return `Getting compositions`;
@@ -1,32 +1,2 @@
1
- import type { Codec, StitchingState } from '@remotion/renderer';
2
- import type { BundlingState, CopyingState } from './progress-bar';
3
- import type { RenderStep } from './step';
4
- export type DownloadProgress = {
5
- name: string;
6
- id: number;
7
- progress: number | null;
8
- totalBytes: number | null;
9
- downloaded: number;
10
- };
11
- export type RenderingProgressInput = {
12
- frames: number;
13
- totalFrames: number;
14
- steps: RenderStep[];
15
- concurrency: number;
16
- doneIn: number | null;
17
- };
18
- export type StitchingProgressInput = {
19
- frames: number;
20
- totalFrames: number;
21
- doneIn: number | null;
22
- stage: StitchingState;
23
- codec: Codec;
24
- };
25
- export type AggregateRenderProgress = {
26
- rendering: RenderingProgressInput | null;
27
- stitching: StitchingProgressInput | null;
28
- downloads: DownloadProgress[];
29
- bundling: BundlingState;
30
- copyingState: CopyingState;
31
- };
1
+ import type { AggregateRenderProgress } from '@remotion/studio';
32
2
  export declare const initialAggregateRenderProgress: () => AggregateRenderProgress;
@@ -1,6 +1,6 @@
1
1
  import type { AudioCodec, Browser, BrowserExecutable, CancelSignal, ChromiumOptions, Codec, ColorSpace, Crf, FfmpegOverrideFn, FrameRange, LogLevel, PixelFormat, ProResProfile, VideoImageFormat, X264Preset } from '@remotion/renderer';
2
+ import type { JobProgressCallback } from '@remotion/studio';
2
3
  import type { Loop } from '../config/number-of-gif-loops';
3
- import type { JobProgressCallback } from '../preview-server/render-queue/job';
4
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, encodingMaxRate, encodingBufferSize, numberOfGifLoops, audioCodec, serializedInputPropsWithCustomSchema, disallowParallelEncoding, offthreadVideoCacheSizeInBytes, colorSpace, }: {
5
5
  remotionRoot: string;
6
6
  fullEntryPoint: string;
@@ -1,5 +1,5 @@
1
1
  import type { Browser, BrowserExecutable, CancelSignal, ChromiumOptions, LogLevel, StillImageFormat } from '@remotion/renderer';
2
- import type { JobProgressCallback } from '../preview-server/render-queue/job';
2
+ import type { JobProgressCallback } from '@remotion/studio';
3
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;
@@ -0,0 +1,8 @@
1
+ import type { JobProgressCallback, RenderJob } from '@remotion/studio';
2
+ export declare const processStill: ({ job, remotionRoot, entryPoint, onProgress, addCleanupCallback, }: {
3
+ job: RenderJob;
4
+ remotionRoot: string;
5
+ entryPoint: string;
6
+ onProgress: JobProgressCallback;
7
+ addCleanupCallback: (cb: () => void) => void;
8
+ }) => Promise<void>;
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.processStill = void 0;
4
+ const preview_server_1 = require("../config/preview-server");
5
+ const convert_entry_point_to_serve_url_1 = require("../convert-entry-point-to-serve-url");
6
+ const get_cli_options_1 = require("../get-cli-options");
7
+ const still_1 = require("../render-flows/still");
8
+ const processStill = async ({ job, remotionRoot, entryPoint, onProgress, addCleanupCallback, }) => {
9
+ if (job.type !== 'still') {
10
+ throw new Error('Expected still job');
11
+ }
12
+ const { publicDir, browserExecutable, browser, puppeteerTimeout } = await (0, get_cli_options_1.getCliOptions)({
13
+ isLambda: false,
14
+ type: 'still',
15
+ remotionRoot,
16
+ logLevel: job.logLevel,
17
+ });
18
+ const fullEntryPoint = (0, convert_entry_point_to_serve_url_1.convertEntryPointToServeUrl)(entryPoint);
19
+ await (0, still_1.renderStillFlow)({
20
+ remotionRoot,
21
+ browser,
22
+ browserExecutable,
23
+ chromiumOptions: job.chromiumOptions,
24
+ entryPointReason: 'same as Studio',
25
+ envVariables: job.envVariables,
26
+ height: null,
27
+ fullEntryPoint,
28
+ serializedInputPropsWithCustomSchema: job.serializedInputPropsWithCustomSchema,
29
+ overwrite: true,
30
+ port: (0, preview_server_1.getRendererPortFromConfigFile)(),
31
+ publicDir,
32
+ puppeteerTimeout,
33
+ jpegQuality: job.jpegQuality,
34
+ remainingArgs: [],
35
+ scale: job.scale,
36
+ stillFrame: job.frame,
37
+ width: null,
38
+ compositionIdFromUi: job.compositionId,
39
+ imageFormatFromUi: job.imageFormat,
40
+ logLevel: job.logLevel,
41
+ onProgress,
42
+ indent: true,
43
+ addCleanupCallback,
44
+ cancelSignal: job.cancelToken.cancelSignal,
45
+ outputLocationFromUi: job.outName,
46
+ offthreadVideoCacheSizeInBytes: job.offthreadVideoCacheSizeInBytes,
47
+ });
48
+ };
49
+ exports.processStill = processStill;