@remotion/cli 4.0.424 → 4.0.426

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 (42) hide show
  1. package/dist/benchmark.js +46 -7
  2. package/dist/browser/ensure.js +5 -6
  3. package/dist/bundle.js +10 -3
  4. package/dist/compositions.js +18 -2
  5. package/dist/config/index.d.ts +24 -12
  6. package/dist/config/index.js +23 -51
  7. package/dist/config/number-of-shared-audio-tags.d.ts +2 -0
  8. package/dist/config/number-of-shared-audio-tags.js +12 -0
  9. package/dist/config/preview-server.js +3 -1
  10. package/dist/detect-remotion-server.d.ts +9 -0
  11. package/dist/detect-remotion-server.js +45 -0
  12. package/dist/extra-packages.js +2 -2
  13. package/dist/get-cli-options.d.ts +0 -10
  14. package/dist/get-cli-options.js +13 -33
  15. package/dist/get-composition-with-dimension-override.d.ts +3 -1
  16. package/dist/get-composition-with-dimension-override.js +3 -1
  17. package/dist/get-config-file-name.js +7 -4
  18. package/dist/get-env.js +11 -15
  19. package/dist/get-input-props.js +8 -5
  20. package/dist/get-render-defaults.js +16 -8
  21. package/dist/gpu.js +11 -7
  22. package/dist/index.d.ts +4 -12
  23. package/dist/index.js +9 -3
  24. package/dist/is-port-open.d.ts +1 -0
  25. package/dist/is-port-open.js +24 -0
  26. package/dist/list-of-remotion-packages.js +2 -0
  27. package/dist/parse-command-line.d.ts +0 -458
  28. package/dist/parse-command-line.js +0 -65
  29. package/dist/parsed-cli.d.ts +1104 -1
  30. package/dist/parsed-cli.js +24 -33
  31. package/dist/render-flows/render.d.ts +5 -1
  32. package/dist/render-flows/render.js +12 -1
  33. package/dist/render-flows/still.d.ts +5 -1
  34. package/dist/render-flows/still.js +5 -1
  35. package/dist/render-queue/process-still.js +13 -8
  36. package/dist/render-queue/process-video.js +14 -3
  37. package/dist/render.js +46 -4
  38. package/dist/setup-cache.d.ts +6 -2
  39. package/dist/setup-cache.js +5 -3
  40. package/dist/still.js +31 -3
  41. package/dist/studio.js +11 -18
  42. package/package.json +16 -16
package/dist/benchmark.js CHANGED
@@ -21,8 +21,7 @@ const setup_cache_1 = require("./setup-cache");
21
21
  const should_use_non_overlaying_logger_1 = require("./should-use-non-overlaying-logger");
22
22
  const show_compositions_picker_1 = require("./show-compositions-picker");
23
23
  const truthy_1 = require("./truthy");
24
- const DEFAULT_RUNS = 3;
25
- const { audioBitrateOption, x264Option, offthreadVideoCacheSizeInBytesOption, scaleOption, crfOption, jpegQualityOption, videoBitrateOption, enforceAudioOption, mutedOption, videoCodecOption, colorSpaceOption, disallowParallelEncodingOption, enableMultiprocessOnLinuxOption, glOption, numberOfGifLoopsOption, encodingMaxRateOption, encodingBufferSizeOption, delayRenderTimeoutInMillisecondsOption, headlessOption, overwriteOption, binariesDirectoryOption, forSeamlessAacConcatenationOption, publicPathOption, publicDirOption, metadataOption, hardwareAccelerationOption, chromeModeOption, offthreadVideoThreadsOption, mediaCacheSizeInBytesOption, darkModeOption, askAIOption, experimentalClientSideRenderingOption, keyboardShortcutsOption, } = client_1.BrowserSafeApis.options;
24
+ const { audioBitrateOption, x264Option, offthreadVideoCacheSizeInBytesOption, scaleOption, crfOption, jpegQualityOption, videoBitrateOption, enforceAudioOption, mutedOption, videoCodecOption, colorSpaceOption, disallowParallelEncodingOption, enableMultiprocessOnLinuxOption, glOption, numberOfGifLoopsOption, encodingMaxRateOption, encodingBufferSizeOption, delayRenderTimeoutInMillisecondsOption, headlessOption, overwriteOption, binariesDirectoryOption, forSeamlessAacConcatenationOption, publicPathOption, publicDirOption, metadataOption, hardwareAccelerationOption, chromeModeOption, offthreadVideoThreadsOption, mediaCacheSizeInBytesOption, darkModeOption, askAIOption, experimentalClientSideRenderingOption, keyboardShortcutsOption, rspackOption, pixelFormatOption, browserExecutableOption, everyNthFrameOption, proResProfileOption, userAgentOption, disableWebSecurityOption, ignoreCertificateErrorsOption, concurrencyOption, overrideHeightOption, overrideWidthOption, overrideFpsOption, overrideDurationOption, bundleCacheOption, runsOption, } = client_1.BrowserSafeApis.options;
26
25
  const getValidConcurrency = (cliConcurrency) => {
27
26
  const { concurrencies } = parsed_cli_1.parsedCli;
28
27
  if (!concurrencies) {
@@ -87,8 +86,8 @@ const makeBenchmarkProgressBar = ({ totalRuns, run, progress, doneIn, }) => {
87
86
  ].join(' ');
88
87
  };
89
88
  const benchmarkCommand = async (remotionRoot, args, logLevel) => {
90
- var _a, _b, _c;
91
- const runs = (_a = parsed_cli_1.parsedCli.runs) !== null && _a !== void 0 ? _a : DEFAULT_RUNS;
89
+ var _a, _b;
90
+ const runs = runsOption.getValue({ commandLine: parsed_cli_1.parsedCli }).value;
92
91
  const { file, reason, remainingArgs } = (0, entry_point_1.findEntryPoint)({
93
92
  args,
94
93
  remotionRoot,
@@ -103,11 +102,43 @@ const benchmarkCommand = async (remotionRoot, args, logLevel) => {
103
102
  process.exit(1);
104
103
  }
105
104
  const fullEntryPoint = (0, convert_entry_point_to_serve_url_1.convertEntryPointToServeUrl)(file);
106
- const { inputProps, envVariables, browserExecutable, proResProfile, frameRange: defaultFrameRange, pixelFormat, everyNthFrame, ffmpegOverride, height, width, concurrency: unparsedConcurrency, disableWebSecurity, userAgent, ignoreCertificateErrors, } = (0, get_cli_options_1.getCliOptions)({
105
+ const { inputProps, envVariables, frameRange: defaultFrameRange, ffmpegOverride, } = (0, get_cli_options_1.getCliOptions)({
107
106
  isStill: false,
108
107
  logLevel,
109
108
  indent: false,
110
109
  });
110
+ const unparsedConcurrency = concurrencyOption.getValue({
111
+ commandLine: parsed_cli_1.parsedCli,
112
+ }).value;
113
+ const height = overrideHeightOption.getValue({
114
+ commandLine: parsed_cli_1.parsedCli,
115
+ }).value;
116
+ const width = overrideWidthOption.getValue({
117
+ commandLine: parsed_cli_1.parsedCli,
118
+ }).value;
119
+ const fps = overrideFpsOption.getValue({ commandLine: parsed_cli_1.parsedCli }).value;
120
+ const durationInFrames = overrideDurationOption.getValue({
121
+ commandLine: parsed_cli_1.parsedCli,
122
+ }).value;
123
+ const pixelFormat = pixelFormatOption.getValue({
124
+ commandLine: parsed_cli_1.parsedCli,
125
+ }).value;
126
+ const browserExecutable = browserExecutableOption.getValue({
127
+ commandLine: parsed_cli_1.parsedCli,
128
+ }).value;
129
+ const everyNthFrame = everyNthFrameOption.getValue({
130
+ commandLine: parsed_cli_1.parsedCli,
131
+ }).value;
132
+ const proResProfile = proResProfileOption.getValue({
133
+ commandLine: parsed_cli_1.parsedCli,
134
+ }).value;
135
+ const userAgent = userAgentOption.getValue({ commandLine: parsed_cli_1.parsedCli }).value;
136
+ const disableWebSecurity = disableWebSecurityOption.getValue({
137
+ commandLine: parsed_cli_1.parsedCli,
138
+ }).value;
139
+ const ignoreCertificateErrors = ignoreCertificateErrorsOption.getValue({
140
+ commandLine: parsed_cli_1.parsedCli,
141
+ }).value;
111
142
  log_1.Log.verbose({ indent: false, logLevel }, 'Entry point:', fullEntryPoint, 'reason:', reason);
112
143
  const scale = scaleOption.getValue({ commandLine: parsed_cli_1.parsedCli }).value;
113
144
  const enableMultiProcessOnLinux = enableMultiprocessOnLinuxOption.getValue({
@@ -126,6 +157,10 @@ const benchmarkCommand = async (remotionRoot, args, logLevel) => {
126
157
  const keyboardShortcutsEnabled = keyboardShortcutsOption.getValue({
127
158
  commandLine: parsed_cli_1.parsedCli,
128
159
  }).value;
160
+ const rspack = rspackOption.getValue({ commandLine: parsed_cli_1.parsedCli }).value;
161
+ const shouldCache = bundleCacheOption.getValue({
162
+ commandLine: parsed_cli_1.parsedCli,
163
+ }).value;
129
164
  if (experimentalClientSideRenderingEnabled) {
130
165
  log_1.Log.warn({ indent: false, logLevel }, 'Enabling WIP client-side rendering. Please see caveats on https://www.remotion.dev/docs/client-side-rendering/.');
131
166
  }
@@ -185,6 +220,8 @@ const benchmarkCommand = async (remotionRoot, args, logLevel) => {
185
220
  experimentalClientSideRenderingEnabled,
186
221
  askAIEnabled,
187
222
  keyboardShortcutsEnabled,
223
+ rspack,
224
+ shouldCache,
188
225
  });
189
226
  (0, cleanup_before_quit_1.registerCleanupJob)(`Deleting bundle`, () => cleanupBundle());
190
227
  const puppeteerInstance = await browserInstance;
@@ -283,9 +320,9 @@ const benchmarkCommand = async (remotionRoot, args, logLevel) => {
283
320
  }, {
284
321
  downloadName: null,
285
322
  outName: null,
286
- configFile: (_b = config_1.ConfigInternals.getOutputCodecOrUndefined()) !== null && _b !== void 0 ? _b : null,
323
+ configFile: (_a = config_1.ConfigInternals.getOutputCodecOrUndefined()) !== null && _a !== void 0 ? _a : null,
287
324
  uiCodec: null,
288
- compositionCodec: (_c = composition.defaultCodec) !== null && _c !== void 0 ? _c : null,
325
+ compositionCodec: (_b = composition.defaultCodec) !== null && _b !== void 0 ? _b : null,
289
326
  });
290
327
  const concurrency = getValidConcurrency(unparsedConcurrency);
291
328
  benchmark[composition.id] = {};
@@ -304,6 +341,8 @@ const benchmarkCommand = async (remotionRoot, args, logLevel) => {
304
341
  ...composition,
305
342
  width: width !== null && width !== void 0 ? width : composition.width,
306
343
  height: height !== null && height !== void 0 ? height : composition.height,
344
+ fps: fps !== null && fps !== void 0 ? fps : composition.fps,
345
+ durationInFrames: durationInFrames !== null && durationInFrames !== void 0 ? durationInFrames : composition.durationInFrames,
307
346
  },
308
347
  crf: configFileCrf !== null && configFileCrf !== void 0 ? configFileCrf : null,
309
348
  envVariables,
@@ -2,18 +2,17 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ensureCommand = exports.ENSURE_COMMAND = void 0;
4
4
  const renderer_1 = require("@remotion/renderer");
5
+ const client_1 = require("@remotion/renderer/client");
5
6
  const browser_download_bar_1 = require("../browser-download-bar");
6
- const get_cli_options_1 = require("../get-cli-options");
7
7
  const log_1 = require("../log");
8
8
  const parsed_cli_1 = require("../parsed-cli");
9
+ const { browserExecutableOption } = client_1.BrowserSafeApis.options;
9
10
  exports.ENSURE_COMMAND = 'ensure';
10
11
  const ensureCommand = async (logLevel) => {
11
12
  const indent = false;
12
- const { browserExecutable } = (0, get_cli_options_1.getCliOptions)({
13
- isStill: false,
14
- logLevel,
15
- indent,
16
- });
13
+ const browserExecutable = browserExecutableOption.getValue({
14
+ commandLine: parsed_cli_1.parsedCli,
15
+ }).value;
17
16
  const status = await (0, renderer_1.ensureBrowser)({
18
17
  browserExecutable,
19
18
  logLevel,
package/dist/bundle.js CHANGED
@@ -17,7 +17,7 @@ const parsed_cli_1 = require("./parsed-cli");
17
17
  const setup_cache_1 = require("./setup-cache");
18
18
  const should_use_non_overlaying_logger_1 = require("./should-use-non-overlaying-logger");
19
19
  const yes_or_no_1 = require("./yes-or-no");
20
- const { publicPathOption, publicDirOption, disableGitSourceOption, audioLatencyHintOption, askAIOption, experimentalClientSideRenderingOption, keyboardShortcutsOption, } = client_1.BrowserSafeApis.options;
20
+ const { publicPathOption, publicDirOption, disableGitSourceOption, audioLatencyHintOption, askAIOption, experimentalClientSideRenderingOption, keyboardShortcutsOption, rspackOption, outDirOption, bundleCacheOption, } = client_1.BrowserSafeApis.options;
21
21
  const bundleCommand = async (remotionRoot, args, logLevel) => {
22
22
  const { file, reason } = (0, entry_point_1.findEntryPoint)({
23
23
  args,
@@ -47,6 +47,10 @@ const bundleCommand = async (remotionRoot, args, logLevel) => {
47
47
  const keyboardShortcutsEnabled = keyboardShortcutsOption.getValue({
48
48
  commandLine: parsed_cli_1.parsedCli,
49
49
  }).value;
50
+ const rspack = rspackOption.getValue({ commandLine: parsed_cli_1.parsedCli }).value;
51
+ const shouldCache = bundleCacheOption.getValue({
52
+ commandLine: parsed_cli_1.parsedCli,
53
+ }).value;
50
54
  if (experimentalClientSideRenderingEnabled) {
51
55
  log_1.Log.warn({ indent: false, logLevel }, 'Enabling WIP client-side rendering. Please see caveats on https://www.remotion.dev/docs/client-side-rendering/.');
52
56
  }
@@ -58,8 +62,9 @@ const bundleCommand = async (remotionRoot, args, logLevel) => {
58
62
  const audioLatencyHint = audioLatencyHintOption.getValue({
59
63
  commandLine: parsed_cli_1.parsedCli,
60
64
  }).value;
61
- const outputPath = parsed_cli_1.parsedCli['out-dir']
62
- ? path_1.default.resolve(process.cwd(), parsed_cli_1.parsedCli['out-dir'])
65
+ const outDir = outDirOption.getValue({ commandLine: parsed_cli_1.parsedCli }).value;
66
+ const outputPath = outDir
67
+ ? path_1.default.resolve(process.cwd(), outDir)
63
68
  : path_1.default.join(remotionRoot, 'build');
64
69
  const gitignoreFolder = bundler_1.BundlerInternals.findClosestFolderWithItem(outputPath, '.gitignore');
65
70
  const existed = (0, fs_1.existsSync)(outputPath);
@@ -106,6 +111,8 @@ const bundleCommand = async (remotionRoot, args, logLevel) => {
106
111
  experimentalClientSideRenderingEnabled,
107
112
  askAIEnabled,
108
113
  keyboardShortcutsEnabled,
114
+ rspack,
115
+ shouldCache,
109
116
  });
110
117
  log_1.Log.info({ indent: false, logLevel }, chalk_1.chalk.blue(`${existed ? '○' : '+'} ${output}`));
111
118
  if (!gitignoreFolder) {
@@ -13,7 +13,7 @@ const log_1 = require("./log");
13
13
  const parsed_cli_1 = require("./parsed-cli");
14
14
  const print_compositions_1 = require("./print-compositions");
15
15
  const setup_cache_1 = require("./setup-cache");
16
- const { enableMultiprocessOnLinuxOption, offthreadVideoCacheSizeInBytesOption, offthreadVideoThreadsOption, glOption, headlessOption, delayRenderTimeoutInMillisecondsOption, binariesDirectoryOption, publicPathOption, publicDirOption, chromeModeOption, audioLatencyHintOption, mediaCacheSizeInBytesOption, darkModeOption, askAIOption, experimentalClientSideRenderingOption, keyboardShortcutsOption, } = client_1.BrowserSafeApis.options;
16
+ const { enableMultiprocessOnLinuxOption, offthreadVideoCacheSizeInBytesOption, offthreadVideoThreadsOption, glOption, headlessOption, delayRenderTimeoutInMillisecondsOption, binariesDirectoryOption, publicPathOption, publicDirOption, chromeModeOption, audioLatencyHintOption, mediaCacheSizeInBytesOption, darkModeOption, askAIOption, experimentalClientSideRenderingOption, keyboardShortcutsOption, rspackOption, browserExecutableOption, userAgentOption, disableWebSecurityOption, ignoreCertificateErrorsOption, bundleCacheOption, } = client_1.BrowserSafeApis.options;
17
17
  const listCompositionsCommand = async (remotionRoot, args, logLevel) => {
18
18
  const { file, reason } = (0, entry_point_1.findEntryPoint)({
19
19
  args,
@@ -28,11 +28,21 @@ const listCompositionsCommand = async (remotionRoot, args, logLevel) => {
28
28
  process.exit(1);
29
29
  }
30
30
  log_1.Log.verbose({ indent: false, logLevel }, 'Entry point:', file, 'reason:', reason);
31
- const { browserExecutable, envVariables, inputProps, ignoreCertificateErrors, userAgent, disableWebSecurity, } = (0, get_cli_options_1.getCliOptions)({
31
+ const { envVariables, inputProps } = (0, get_cli_options_1.getCliOptions)({
32
32
  isStill: false,
33
33
  logLevel,
34
34
  indent: false,
35
35
  });
36
+ const browserExecutable = browserExecutableOption.getValue({
37
+ commandLine: parsed_cli_1.parsedCli,
38
+ }).value;
39
+ const userAgent = userAgentOption.getValue({ commandLine: parsed_cli_1.parsedCli }).value;
40
+ const disableWebSecurity = disableWebSecurityOption.getValue({
41
+ commandLine: parsed_cli_1.parsedCli,
42
+ }).value;
43
+ const ignoreCertificateErrors = ignoreCertificateErrorsOption.getValue({
44
+ commandLine: parsed_cli_1.parsedCli,
45
+ }).value;
36
46
  const publicPath = publicPathOption.getValue({ commandLine: parsed_cli_1.parsedCli }).value;
37
47
  const timeoutInMilliseconds = delayRenderTimeoutInMillisecondsOption.getValue({
38
48
  commandLine: parsed_cli_1.parsedCli,
@@ -75,6 +85,10 @@ const listCompositionsCommand = async (remotionRoot, args, logLevel) => {
75
85
  const keyboardShortcutsEnabled = keyboardShortcutsOption.getValue({
76
86
  commandLine: parsed_cli_1.parsedCli,
77
87
  }).value;
88
+ const rspack = rspackOption.getValue({ commandLine: parsed_cli_1.parsedCli }).value;
89
+ const shouldCache = bundleCacheOption.getValue({
90
+ commandLine: parsed_cli_1.parsedCli,
91
+ }).value;
78
92
  if (experimentalClientSideRenderingEnabled) {
79
93
  log_1.Log.warn({ indent: false, logLevel }, 'Enabling WIP client-side rendering. Please see caveats on https://www.remotion.dev/docs/client-side-rendering/.');
80
94
  }
@@ -100,6 +114,8 @@ const listCompositionsCommand = async (remotionRoot, args, logLevel) => {
100
114
  experimentalClientSideRenderingEnabled,
101
115
  askAIEnabled,
102
116
  keyboardShortcutsEnabled,
117
+ rspack,
118
+ shouldCache,
103
119
  });
104
120
  (0, cleanup_before_quit_1.registerCleanupJob)(`Cleanup bundle`, () => cleanupBundle());
105
121
  const compositions = await renderer_1.RenderInternals.internalGetCompositions({
@@ -61,6 +61,12 @@ declare global {
61
61
  * @default false
62
62
  */
63
63
  readonly setExperimentalClientSideRenderingEnabled: (enabled: boolean) => void;
64
+ /**
65
+ * Enable experimental Rspack bundler instead of Webpack.
66
+ * @param enabled Boolean whether to enable the Rspack bundler
67
+ * @default false
68
+ */
69
+ readonly setExperimentalRspackEnabled: (enabled: boolean) => void;
64
70
  /**
65
71
  * Set number of shared audio tags. https://www.remotion.dev/docs/player/autoplay#using-the-numberofsharedaudiotags-prop
66
72
  * @param numberOfAudioTags
@@ -241,6 +247,14 @@ declare global {
241
247
  * Overrides the width of a composition
242
248
  */
243
249
  readonly overrideWidth: (newWidth: number) => void;
250
+ /**
251
+ * Overrides the FPS of a composition
252
+ */
253
+ readonly overrideFps: (newFps: number) => void;
254
+ /**
255
+ * Overrides the duration in frames of a composition
256
+ */
257
+ readonly overrideDuration: (newDuration: number) => void;
244
258
  /**
245
259
  * Set the ProRes profile.
246
260
  * This method is only valid if the codec has been set to 'prores'.
@@ -377,10 +391,20 @@ type FlatConfig = RemotionConfigObject & RemotionBundlingOptions & {
377
391
  * Default: false
378
392
  */
379
393
  setIPv4: (ipv4: boolean) => void;
394
+ /**
395
+ * Define the output directory for `npx remotion bundle`.
396
+ * Default: `build` in the Remotion root.
397
+ */
398
+ setBundleOutDir: (outDir: string | null) => void;
380
399
  /**
381
400
  * Choose between using Chrome Headless Shell or Chrome for Testing
382
401
  */
383
402
  setChromeMode: (chromeMode: ChromeMode) => void;
403
+ /**
404
+ * Set how many times the video should be rendered during a benchmark.
405
+ * Default: 3
406
+ */
407
+ setBenchmarkRuns: (runs: number) => void;
384
408
  /**
385
409
  * @deprecated 'The config format has changed. Change `Config.Bundling.*()` calls to `Config.*()` in your config file.'
386
410
  */
@@ -408,17 +432,10 @@ type FlatConfig = RemotionConfigObject & RemotionBundlingOptions & {
408
432
  };
409
433
  export declare const Config: FlatConfig;
410
434
  export declare const ConfigInternals: {
411
- getRange: () => FrameRange | null;
412
435
  getBrowser: () => null;
413
- getPixelFormat: () => "yuv420p" | "yuv420p10le" | "yuv422p" | "yuv422p10le" | "yuv444p" | "yuv444p10le" | "yuva420p" | "yuva444p10le";
414
- getProResProfile: () => "4444" | "4444-xq" | "hq" | "light" | "proxy" | "standard" | undefined;
415
- getBrowserExecutable: () => BrowserExecutable;
416
436
  getStudioPort: () => number | undefined;
417
437
  getRendererPortFromConfigFile: () => number | null;
418
438
  getRendererPortFromConfigFileAndCliFlag: () => number | null;
419
- getChromiumDisableWebSecurity: () => boolean;
420
- getIgnoreCertificateErrors: () => boolean;
421
- getEveryNthFrame: () => number;
422
439
  getConcurrency: () => string | number | null;
423
440
  getStillFrame: () => number;
424
441
  getShouldOutputImageSequence: (frameRange: FrameRange | null) => boolean;
@@ -426,18 +443,13 @@ export declare const ConfigInternals: {
426
443
  getWebpackOverrideFn: () => WebpackOverrideFn;
427
444
  getWebpackCaching: () => boolean;
428
445
  getOutputLocation: () => string | null;
429
- setFrameRangeFromCli: (newFrameRange: string | number) => void;
430
446
  setStillFrame: (frame: number) => void;
431
447
  getMaxTimelineTracks: () => number;
432
448
  defaultOverrideFunction: WebpackOverrideFn;
433
449
  getFfmpegOverrideFunction: () => import("@remotion/renderer").FfmpegOverrideFn;
434
- getHeight: () => number | null;
435
- getWidth: () => number | null;
436
450
  getMetadata: () => Record<string, string>;
437
451
  getEntryPoint: () => string | null;
438
452
  getWebpackPolling: () => number | null;
439
- getShouldOpenBrowser: () => boolean;
440
- getChromiumUserAgent: () => string | null;
441
453
  getBufferStateDelayInMilliseconds: () => number | null;
442
454
  getOutputCodecOrUndefined: () => CodecOrUndefined;
443
455
  };
@@ -2,44 +2,25 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ConfigInternals = exports.Config = void 0;
4
4
  const browser_1 = require("./browser");
5
- const browser_executable_1 = require("./browser-executable");
6
- const chromium_flags_1 = require("./chromium-flags");
7
5
  const concurrency_1 = require("./concurrency");
8
6
  const env_file_1 = require("./env-file");
9
- const frame_range_1 = require("./frame-range");
10
7
  const image_sequence_1 = require("./image-sequence");
11
8
  const output_location_1 = require("./output-location");
12
9
  const override_webpack_1 = require("./override-webpack");
13
- const pixel_format_1 = require("./pixel-format");
14
10
  const preview_server_1 = require("./preview-server");
15
- const prores_profile_1 = require("./prores-profile");
16
11
  const still_frame_1 = require("./still-frame");
17
12
  const webpack_caching_1 = require("./webpack-caching");
18
13
  const client_1 = require("@remotion/renderer/client");
19
14
  const studio_server_1 = require("@remotion/studio-server");
20
- const browser_executable_2 = require("./browser-executable");
21
15
  const buffer_state_delay_in_milliseconds_1 = require("./buffer-state-delay-in-milliseconds");
22
- const chromium_flags_2 = require("./chromium-flags");
23
- const concurrency_2 = require("./concurrency");
24
16
  const entry_point_1 = require("./entry-point");
25
- const env_file_2 = require("./env-file");
26
- const every_nth_frame_1 = require("./every-nth-frame");
27
17
  const ffmpeg_override_1 = require("./ffmpeg-override");
28
- const frame_range_2 = require("./frame-range");
29
- const height_1 = require("./height");
30
- const image_sequence_2 = require("./image-sequence");
31
18
  const metadata_1 = require("./metadata");
32
- const open_browser_1 = require("./open-browser");
33
19
  const output_location_2 = require("./output-location");
34
20
  const override_webpack_2 = require("./override-webpack");
35
- const pixel_format_2 = require("./pixel-format");
36
21
  const preview_server_2 = require("./preview-server");
37
- const prores_profile_2 = require("./prores-profile");
38
- const user_agent_1 = require("./user-agent");
39
- const webpack_caching_2 = require("./webpack-caching");
40
22
  const webpack_poll_1 = require("./webpack-poll");
41
- const width_1 = require("./width");
42
- const { offthreadVideoCacheSizeInBytesOption, x264Option, audioBitrateOption, videoBitrateOption, scaleOption, crfOption, jpegQualityOption, enforceAudioOption, overwriteOption, chromeModeOption, mutedOption, videoCodecOption, colorSpaceOption, disallowParallelEncodingOption, deleteAfterOption, folderExpiryOption, enableMultiprocessOnLinuxOption, glOption, headlessOption, numberOfGifLoopsOption, beepOnFinishOption, encodingMaxRateOption, encodingBufferSizeOption, reproOption, enableLambdaInsights, logLevelOption, delayRenderTimeoutInMillisecondsOption, publicDirOption, binariesDirectoryOption, preferLosslessOption, forSeamlessAacConcatenationOption, audioCodecOption, publicPathOption, hardwareAccelerationOption, audioLatencyHintOption, enableCrossSiteIsolationOption, imageSequencePatternOption, darkModeOption, askAIOption, publicLicenseKeyOption, experimentalClientSideRenderingOption, keyboardShortcutsOption, forceNewStudioOption, numberOfSharedAudioTagsOption, ipv4Option, stillImageFormatOption, videoImageFormatOption, } = client_1.BrowserSafeApis.options;
23
+ const { concurrencyOption, offthreadVideoCacheSizeInBytesOption, x264Option, audioBitrateOption, videoBitrateOption, scaleOption, crfOption, jpegQualityOption, enforceAudioOption, overwriteOption, chromeModeOption, mutedOption, videoCodecOption, colorSpaceOption, disallowParallelEncodingOption, deleteAfterOption, folderExpiryOption, enableMultiprocessOnLinuxOption, glOption, headlessOption, numberOfGifLoopsOption, beepOnFinishOption, encodingMaxRateOption, encodingBufferSizeOption, reproOption, enableLambdaInsights, logLevelOption, delayRenderTimeoutInMillisecondsOption, publicDirOption, binariesDirectoryOption, preferLosslessOption, framesOption, forSeamlessAacConcatenationOption, audioCodecOption, publicPathOption, hardwareAccelerationOption, audioLatencyHintOption, enableCrossSiteIsolationOption, imageSequencePatternOption, darkModeOption, askAIOption, publicLicenseKeyOption, experimentalClientSideRenderingOption, keyboardShortcutsOption, forceNewStudioOption, numberOfSharedAudioTagsOption, ipv4Option, pixelFormatOption, browserExecutableOption, everyNthFrameOption, proResProfileOption, stillImageFormatOption, videoImageFormatOption, userAgentOption, disableWebSecurityOption, ignoreCertificateErrorsOption, overrideHeightOption, overrideWidthOption, overrideFpsOption, overrideDurationOption, rspackOption, outDirOption, webpackPollOption, imageSequenceOption, bundleCacheOption, envFileOption, runsOption, noOpenOption, } = client_1.BrowserSafeApis.options;
43
24
  exports.Config = {
44
25
  get Bundling() {
45
26
  throw new Error('The config format has changed. Change `Config.Bundling.*()` calls to `Config.*()` in your config file.');
@@ -62,28 +43,29 @@ exports.Config = {
62
43
  setMaxTimelineTracks: studio_server_1.StudioServerInternals.setMaxTimelineTracks,
63
44
  setKeyboardShortcutsEnabled: keyboardShortcutsOption.setConfig,
64
45
  setExperimentalClientSideRenderingEnabled: experimentalClientSideRenderingOption.setConfig,
46
+ setExperimentalRspackEnabled: rspackOption.setConfig,
65
47
  setNumberOfSharedAudioTags: numberOfSharedAudioTagsOption.setConfig,
66
- setWebpackPollingInMilliseconds: webpack_poll_1.setWebpackPollingInMilliseconds,
67
- setShouldOpenBrowser: open_browser_1.setShouldOpenBrowser,
48
+ setWebpackPollingInMilliseconds: webpackPollOption.setConfig,
49
+ setShouldOpenBrowser: noOpenOption.setConfig,
68
50
  setBufferStateDelayInMilliseconds: buffer_state_delay_in_milliseconds_1.setBufferStateDelayInMilliseconds,
69
51
  overrideWebpackConfig: override_webpack_2.overrideWebpackConfig,
70
- setCachingEnabled: webpack_caching_2.setWebpackCaching,
52
+ setCachingEnabled: bundleCacheOption.setConfig,
71
53
  setPort: preview_server_2.setPort,
72
54
  setStudioPort: preview_server_2.setStudioPort,
73
55
  setRendererPort: preview_server_2.setRendererPort,
74
56
  setPublicDir: publicDirOption.setConfig,
75
57
  setEntryPoint: entry_point_1.setEntryPoint,
76
58
  setLevel: logLevelOption.setConfig,
77
- setBrowserExecutable: browser_executable_2.setBrowserExecutable,
59
+ setBrowserExecutable: browserExecutableOption.setConfig,
78
60
  setTimeoutInMilliseconds: delayRenderTimeoutInMillisecondsOption.setConfig,
79
61
  setDelayRenderTimeoutInMilliseconds: delayRenderTimeoutInMillisecondsOption.setConfig,
80
- setChromiumDisableWebSecurity: chromium_flags_2.setChromiumDisableWebSecurity,
81
- setChromiumIgnoreCertificateErrors: chromium_flags_2.setChromiumIgnoreCertificateErrors,
62
+ setChromiumDisableWebSecurity: disableWebSecurityOption.setConfig,
63
+ setChromiumIgnoreCertificateErrors: ignoreCertificateErrorsOption.setConfig,
82
64
  setChromiumHeadlessMode: headlessOption.setConfig,
83
65
  setChromiumOpenGlRenderer: glOption.setConfig,
84
- setChromiumUserAgent: user_agent_1.setChromiumUserAgent,
85
- setDotEnvLocation: env_file_2.setDotEnvLocation,
86
- setConcurrency: concurrency_2.setConcurrency,
66
+ setChromiumUserAgent: userAgentOption.setConfig,
67
+ setDotEnvLocation: envFileOption.setConfig,
68
+ setConcurrency: concurrencyOption.setConfig,
87
69
  setChromiumMultiProcessOnLinux: enableMultiprocessOnLinuxOption.setConfig,
88
70
  setChromiumDarkMode: darkModeOption.setConfig,
89
71
  setQuality: () => {
@@ -98,32 +80,32 @@ exports.Config = {
98
80
  setMetadata: metadata_1.setMetadata,
99
81
  setEncodingMaxRate: encodingMaxRateOption.setConfig,
100
82
  setEncodingBufferSize: encodingBufferSizeOption.setConfig,
101
- setFrameRange: frame_range_2.setFrameRange,
83
+ setFrameRange: framesOption.setConfig,
102
84
  setScale: scaleOption.setConfig,
103
- setEveryNthFrame: every_nth_frame_1.setEveryNthFrame,
85
+ setEveryNthFrame: everyNthFrameOption.setConfig,
104
86
  setNumberOfGifLoops: numberOfGifLoopsOption.setConfig,
105
87
  setMuted: mutedOption.setConfig,
106
88
  setEnforceAudioTrack: enforceAudioOption.setConfig,
107
89
  setOutputLocation: output_location_2.setOutputLocation,
108
90
  setOverwriteOutput: overwriteOption.setConfig,
109
91
  setChromeMode: chromeModeOption.setConfig,
110
- setPixelFormat: pixel_format_2.setPixelFormat,
92
+ setPixelFormat: pixelFormatOption.setConfig,
111
93
  setCodec: videoCodecOption.setConfig,
112
94
  setCrf: crfOption.setConfig,
113
- setImageSequence: image_sequence_2.setImageSequence,
114
- setProResProfile: prores_profile_2.setProResProfile,
95
+ setImageSequence: imageSequenceOption.setConfig,
96
+ setProResProfile: proResProfileOption.setConfig,
115
97
  setX264Preset: x264Option.setConfig,
116
98
  setAudioBitrate: audioBitrateOption.setConfig,
117
99
  setVideoBitrate: videoBitrateOption.setConfig,
118
100
  setAudioLatencyHint: audioLatencyHintOption.setConfig,
119
101
  setForSeamlessAacConcatenation: forSeamlessAacConcatenationOption.setConfig,
120
- overrideHeight: height_1.overrideHeight,
121
- overrideWidth: width_1.overrideWidth,
102
+ overrideHeight: overrideHeightOption.setConfig,
103
+ overrideWidth: overrideWidthOption.setConfig,
104
+ overrideFps: overrideFpsOption.setConfig,
105
+ overrideDuration: overrideDurationOption.setConfig,
122
106
  overrideFfmpegCommand: ffmpeg_override_1.setFfmpegOverrideFunction,
123
107
  setAudioCodec: audioCodecOption.setConfig,
124
- setOffthreadVideoCacheSizeInBytes: (size) => {
125
- offthreadVideoCacheSizeInBytesOption.setConfig(size);
126
- },
108
+ setOffthreadVideoCacheSizeInBytes: offthreadVideoCacheSizeInBytesOption.setConfig,
127
109
  setDeleteAfter: deleteAfterOption.setConfig,
128
110
  setColorSpace: colorSpaceOption.setConfig,
129
111
  setDisallowParallelEncoding: disallowParallelEncodingOption.setConfig,
@@ -141,19 +123,14 @@ exports.Config = {
141
123
  setPublicLicenseKey: publicLicenseKeyOption.setConfig,
142
124
  setForceNewStudioEnabled: forceNewStudioOption.setConfig,
143
125
  setIPv4: ipv4Option.setConfig,
126
+ setBundleOutDir: outDirOption.setConfig,
127
+ setBenchmarkRuns: runsOption.setConfig,
144
128
  };
145
129
  exports.ConfigInternals = {
146
- getRange: frame_range_1.getRange,
147
130
  getBrowser: browser_1.getBrowser,
148
- getPixelFormat: pixel_format_1.getPixelFormat,
149
- getProResProfile: prores_profile_1.getProResProfile,
150
- getBrowserExecutable: browser_executable_1.getBrowserExecutable,
151
131
  getStudioPort: preview_server_1.getStudioPort,
152
132
  getRendererPortFromConfigFile: preview_server_1.getRendererPortFromConfigFile,
153
133
  getRendererPortFromConfigFileAndCliFlag: preview_server_1.getRendererPortFromConfigFileAndCliFlag,
154
- getChromiumDisableWebSecurity: chromium_flags_1.getChromiumDisableWebSecurity,
155
- getIgnoreCertificateErrors: chromium_flags_1.getIgnoreCertificateErrors,
156
- getEveryNthFrame: every_nth_frame_1.getEveryNthFrame,
157
134
  getConcurrency: concurrency_1.getConcurrency,
158
135
  getStillFrame: still_frame_1.getStillFrame,
159
136
  getShouldOutputImageSequence: image_sequence_1.getShouldOutputImageSequence,
@@ -161,18 +138,13 @@ exports.ConfigInternals = {
161
138
  getWebpackOverrideFn: override_webpack_1.getWebpackOverrideFn,
162
139
  getWebpackCaching: webpack_caching_1.getWebpackCaching,
163
140
  getOutputLocation: output_location_1.getOutputLocation,
164
- setFrameRangeFromCli: frame_range_1.setFrameRangeFromCli,
165
141
  setStillFrame: still_frame_1.setStillFrame,
166
142
  getMaxTimelineTracks: studio_server_1.StudioServerInternals.getMaxTimelineTracks,
167
143
  defaultOverrideFunction: override_webpack_1.defaultOverrideFunction,
168
144
  getFfmpegOverrideFunction: ffmpeg_override_1.getFfmpegOverrideFunction,
169
- getHeight: height_1.getHeight,
170
- getWidth: width_1.getWidth,
171
145
  getMetadata: metadata_1.getMetadata,
172
146
  getEntryPoint: entry_point_1.getEntryPoint,
173
147
  getWebpackPolling: webpack_poll_1.getWebpackPolling,
174
- getShouldOpenBrowser: open_browser_1.getShouldOpenBrowser,
175
- getChromiumUserAgent: user_agent_1.getChromiumUserAgent,
176
148
  getBufferStateDelayInMilliseconds: buffer_state_delay_in_milliseconds_1.getBufferStateDelayInMilliseconds,
177
149
  getOutputCodecOrUndefined: client_1.BrowserSafeApis.getOutputCodecOrUndefined,
178
150
  };
@@ -0,0 +1,2 @@
1
+ export declare const getNumberOfSharedAudioTags: () => number;
2
+ export declare const setNumberOfSharedAudioTags: (audioTags: number) => void;
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.setNumberOfSharedAudioTags = exports.getNumberOfSharedAudioTags = void 0;
4
+ let numberOfSharedAudioTags = 0;
5
+ const getNumberOfSharedAudioTags = () => {
6
+ return numberOfSharedAudioTags;
7
+ };
8
+ exports.getNumberOfSharedAudioTags = getNumberOfSharedAudioTags;
9
+ const setNumberOfSharedAudioTags = (audioTags) => {
10
+ numberOfSharedAudioTags = audioTags;
11
+ };
12
+ exports.setNumberOfSharedAudioTags = setNumberOfSharedAudioTags;
@@ -1,7 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getRendererPortFromConfigFileAndCliFlag = exports.getRendererPortFromConfigFile = exports.getStudioPort = exports.setRendererPort = exports.setStudioPort = exports.setPort = void 0;
4
+ const client_1 = require("@remotion/renderer/client");
4
5
  const parsed_cli_1 = require("../parsed-cli");
6
+ const { portOption } = client_1.BrowserSafeApis.options;
5
7
  let studioPort;
6
8
  let rendererPort;
7
9
  const validatePort = (port) => {
@@ -44,6 +46,6 @@ const getRendererPortFromConfigFile = () => {
44
46
  exports.getRendererPortFromConfigFile = getRendererPortFromConfigFile;
45
47
  const getRendererPortFromConfigFileAndCliFlag = () => {
46
48
  var _a, _b;
47
- return (_b = (_a = parsed_cli_1.parsedCli.port) !== null && _a !== void 0 ? _a : rendererPort) !== null && _b !== void 0 ? _b : null;
49
+ return ((_b = (_a = portOption.getValue({ commandLine: parsed_cli_1.parsedCli }).value) !== null && _a !== void 0 ? _a : rendererPort) !== null && _b !== void 0 ? _b : null);
48
50
  };
49
51
  exports.getRendererPortFromConfigFileAndCliFlag = getRendererPortFromConfigFileAndCliFlag;
@@ -0,0 +1,9 @@
1
+ type RemotionDetectionResult = {
2
+ type: 'match';
3
+ } | {
4
+ type: 'mismatch';
5
+ } | {
6
+ type: 'not-remotion';
7
+ };
8
+ export declare const detectRemotionServer: (port: number, cwd: string) => Promise<RemotionDetectionResult>;
9
+ export {};
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.detectRemotionServer = void 0;
7
+ const http_1 = __importDefault(require("http"));
8
+ const detectRemotionServer = (port, cwd) => {
9
+ return new Promise((resolve) => {
10
+ const req = http_1.default.get({
11
+ hostname: 'localhost',
12
+ port,
13
+ path: '/__remotion_config',
14
+ timeout: 1000,
15
+ }, (res) => {
16
+ let data = '';
17
+ res.on('data', (chunk) => {
18
+ data += chunk;
19
+ });
20
+ res.on('end', () => {
21
+ try {
22
+ const json = JSON.parse(data);
23
+ if ((json === null || json === void 0 ? void 0 : json.isRemotion) !== true) {
24
+ return resolve({ type: 'not-remotion' });
25
+ }
26
+ // Normalize paths for comparison to avoid issues with different separators or casing on Windows
27
+ const normalize = (p) => p.replace(/\\/g, '/').toLowerCase();
28
+ if (normalize(json.cwd) === normalize(cwd)) {
29
+ return resolve({ type: 'match' });
30
+ }
31
+ return resolve({ type: 'mismatch' });
32
+ }
33
+ catch (_a) {
34
+ resolve({ type: 'not-remotion' });
35
+ }
36
+ });
37
+ });
38
+ req.on('error', () => resolve({ type: 'not-remotion' }));
39
+ req.on('timeout', () => {
40
+ req.destroy();
41
+ resolve({ type: 'not-remotion' });
42
+ });
43
+ });
44
+ };
45
+ exports.detectRemotionServer = detectRemotionServer;
@@ -2,10 +2,10 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.EXTRA_PACKAGES_DOCS = exports.EXTRA_PACKAGES = void 0;
4
4
  exports.EXTRA_PACKAGES = {
5
- zod: '3.22.3',
6
5
  mediabunny: '1.34.4',
6
+ zod: '4.3.6',
7
7
  };
8
8
  exports.EXTRA_PACKAGES_DOCS = {
9
- zod: 'https://www.remotion.dev/docs/schemas#prerequisites',
10
9
  mediabunny: 'https://www.remotion.dev/docs/mediabunny/version',
10
+ zod: 'https://zod.dev',
11
11
  };
@@ -4,20 +4,10 @@ export declare const getCliOptions: (options: {
4
4
  logLevel: "error" | "info" | "trace" | "verbose" | "warn";
5
5
  indent: boolean;
6
6
  }) => {
7
- concurrency: string | number | null;
8
7
  frameRange: import("@remotion/renderer").FrameRange | null;
9
8
  shouldOutputImageSequence: boolean;
10
9
  inputProps: Record<string, unknown>;
11
10
  envVariables: Record<string, string>;
12
- pixelFormat: "yuv420p" | "yuv420p10le" | "yuv422p" | "yuv422p10le" | "yuv444p" | "yuv444p10le" | "yuva420p" | "yuva444p10le";
13
- proResProfile: "4444" | "4444-xq" | "hq" | "light" | "proxy" | "standard" | undefined;
14
- everyNthFrame: number;
15
11
  stillFrame: number;
16
- browserExecutable: import("@remotion/renderer").BrowserExecutable;
17
- userAgent: string | null;
18
- disableWebSecurity: boolean;
19
- ignoreCertificateErrors: boolean;
20
12
  ffmpegOverride: import("@remotion/renderer").FfmpegOverrideFn;
21
- height: number | null;
22
- width: number | null;
23
13
  };