@remotion/cli 4.0.420 → 4.0.421

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.
@@ -346,6 +346,11 @@ type FlatConfig = RemotionConfigObject & RemotionBundlingOptions & {
346
346
  */
347
347
  setAudioCodec: (codec: 'pcm-16' | 'aac' | 'mp3' | 'opus') => void;
348
348
  setOffthreadVideoCacheSizeInBytes: (size: number | null) => void;
349
+ /**
350
+ * Forces starting a new Studio instance even if one is already running on the same port for the same project.
351
+ * Default: false
352
+ */
353
+ setForceNewStudioEnabled: (forceNew: boolean) => void;
349
354
  setDeleteAfter: (day: DeleteAfter | null) => void;
350
355
  /**
351
356
  * Set whether S3 buckets should be allowed to expire.
@@ -41,7 +41,7 @@ const user_agent_1 = require("./user-agent");
41
41
  const webpack_caching_2 = require("./webpack-caching");
42
42
  const webpack_poll_1 = require("./webpack-poll");
43
43
  const width_1 = require("./width");
44
- 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, } = client_1.BrowserSafeApis.options;
44
+ 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, } = client_1.BrowserSafeApis.options;
45
45
  exports.Config = {
46
46
  get Bundling() {
47
47
  throw new Error('The config format has changed. Change `Config.Bundling.*()` calls to `Config.*()` in your config file.');
@@ -141,6 +141,7 @@ exports.Config = {
141
141
  setEnableCrossSiteIsolation: enableCrossSiteIsolationOption.setConfig,
142
142
  setAskAIEnabled: askAIOption.setConfig,
143
143
  setPublicLicenseKey: publicLicenseKeyOption.setConfig,
144
+ setForceNewStudioEnabled: forceNewStudioOption.setConfig,
144
145
  };
145
146
  exports.ConfigInternals = {
146
147
  getRange: frame_range_1.getRange,
@@ -314,6 +314,20 @@ declare const beepOnFinishOption: {
314
314
  };
315
315
  setConfig: (value: string | null) => void;
316
316
  type: string | null;
317
+ }, forceNewStudioOption: {
318
+ name: string;
319
+ cliFlag: "force-new";
320
+ description: () => import("react/jsx-runtime").JSX.Element;
321
+ ssrName: null;
322
+ docLink: string;
323
+ type: boolean;
324
+ getValue: ({ commandLine }: {
325
+ commandLine: Record<string, unknown>;
326
+ }) => {
327
+ value: boolean;
328
+ source: string;
329
+ };
330
+ setConfig(value: boolean): void;
317
331
  };
318
332
  export type CommandLineOptions = {
319
333
  ['browser-executable']: BrowserExecutable;
@@ -388,6 +402,7 @@ export type CommandLineOptions = {
388
402
  'image-sequence-pattern': string;
389
403
  'license-key': string;
390
404
  [publicLicenseKeyOption.cliFlag]: string;
405
+ [forceNewStudioOption.cliFlag]: TypeOfOption<typeof forceNewStudioOption>;
391
406
  };
392
407
  export declare const parseCommandLine: () => void;
393
408
  export {};
@@ -5,7 +5,7 @@ const client_1 = require("@remotion/renderer/client");
5
5
  const config_1 = require("./config");
6
6
  const log_1 = require("./log");
7
7
  const parsed_cli_1 = require("./parsed-cli");
8
- const { beepOnFinishOption, colorSpaceOption, disallowParallelEncodingOption, offthreadVideoCacheSizeInBytesOption, encodingBufferSizeOption, encodingMaxRateOption, deleteAfterOption, folderExpiryOption, enableMultiprocessOnLinuxOption, numberOfGifLoopsOption, x264Option, enforceAudioOption, jpegQualityOption, audioBitrateOption, videoBitrateOption, audioCodecOption, publicPathOption, audioLatencyHintOption, darkModeOption, publicLicenseKeyOption, } = client_1.BrowserSafeApis.options;
8
+ const { beepOnFinishOption, colorSpaceOption, disallowParallelEncodingOption, offthreadVideoCacheSizeInBytesOption, encodingBufferSizeOption, encodingMaxRateOption, deleteAfterOption, folderExpiryOption, enableMultiprocessOnLinuxOption, numberOfGifLoopsOption, x264Option, enforceAudioOption, jpegQualityOption, audioBitrateOption, videoBitrateOption, audioCodecOption, publicPathOption, audioLatencyHintOption, darkModeOption, publicLicenseKeyOption, forceNewStudioOption, } = client_1.BrowserSafeApis.options;
9
9
  const parseCommandLine = () => {
10
10
  if (parsed_cli_1.parsedCli['pixel-format']) {
11
11
  config_1.Config.setPixelFormat(parsed_cli_1.parsedCli['pixel-format']);
@@ -40,6 +40,7 @@ exports.BooleanFlags = [
40
40
  'force-path-style',
41
41
  'onlyAllocateCpuDuringRequestProcessing',
42
42
  client_1.BrowserSafeApis.options.isProductionOption.cliFlag,
43
+ client_1.BrowserSafeApis.options.forceNewStudioOption.cliFlag,
43
44
  ];
44
45
  exports.parsedCli = (0, minimist_1.default)(process.argv.slice(2), {
45
46
  boolean: exports.BooleanFlags,
package/dist/studio.js CHANGED
@@ -24,7 +24,7 @@ const getPort = () => {
24
24
  }
25
25
  return null;
26
26
  };
27
- const { binariesDirectoryOption, publicDirOption, disableGitSourceOption, enableCrossSiteIsolationOption, askAIOption, experimentalClientSideRenderingOption, keyboardShortcutsOption, } = client_1.BrowserSafeApis.options;
27
+ const { binariesDirectoryOption, publicDirOption, disableGitSourceOption, enableCrossSiteIsolationOption, askAIOption, experimentalClientSideRenderingOption, keyboardShortcutsOption, forceNewStudioOption, } = client_1.BrowserSafeApis.options;
28
28
  const studioCommand = async (remotionRoot, args, logLevel) => {
29
29
  var _a;
30
30
  const { file, reason } = (0, entry_point_1.findEntryPoint)({
@@ -85,7 +85,7 @@ const studioCommand = async (remotionRoot, args, logLevel) => {
85
85
  commandLine: parsed_cli_1.parsedCli,
86
86
  }).value;
87
87
  const gitSource = (0, get_github_repository_1.getGitSource)({ remotionRoot, disableGitSource, logLevel });
88
- await studio_server_1.StudioServerInternals.startStudio({
88
+ const result = await studio_server_1.StudioServerInternals.startStudio({
89
89
  previewEntry: require.resolve('@remotion/studio/previewEntry'),
90
90
  browserArgs: parsed_cli_1.parsedCli['browser-args'],
91
91
  browserFlag: parsed_cli_1.parsedCli.browser,
@@ -120,7 +120,11 @@ const studioCommand = async (remotionRoot, args, logLevel) => {
120
120
  audioLatencyHint: parsed_cli_1.parsedCli['audio-latency-hint'],
121
121
  enableCrossSiteIsolation,
122
122
  askAIEnabled,
123
+ forceNew: forceNewStudioOption.getValue({ commandLine: parsed_cli_1.parsedCli }).value,
123
124
  });
125
+ if (result.type === 'already-running') {
126
+ return;
127
+ }
124
128
  // If the server is restarted through the UI, let's do the whole thing again.
125
129
  await (0, exports.studioCommand)(remotionRoot, args, logLevel);
126
130
  };
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "url": "https://github.com/remotion-dev/remotion/tree/main/packages/cli"
4
4
  },
5
5
  "name": "@remotion/cli",
6
- "version": "4.0.420",
6
+ "version": "4.0.421",
7
7
  "description": "Control Remotion features using the `npx remotion` command",
8
8
  "main": "dist/index.js",
9
9
  "sideEffects": false,
@@ -36,17 +36,17 @@
36
36
  "author": "Jonny Burger <jonny@remotion.dev>",
37
37
  "license": "SEE LICENSE IN LICENSE.md",
38
38
  "dependencies": {
39
- "@remotion/bundler": "4.0.420",
40
- "@remotion/media-utils": "4.0.420",
41
- "@remotion/player": "4.0.420",
42
- "@remotion/renderer": "4.0.420",
43
- "@remotion/studio-shared": "4.0.420",
44
- "@remotion/studio-server": "4.0.420",
45
- "@remotion/studio": "4.0.420",
39
+ "@remotion/bundler": "4.0.421",
40
+ "@remotion/media-utils": "4.0.421",
41
+ "@remotion/player": "4.0.421",
42
+ "@remotion/renderer": "4.0.421",
43
+ "@remotion/studio-shared": "4.0.421",
44
+ "@remotion/studio-server": "4.0.421",
45
+ "@remotion/studio": "4.0.421",
46
46
  "dotenv": "9.0.2",
47
47
  "minimist": "1.2.6",
48
48
  "prompts": "2.4.2",
49
- "remotion": "4.0.420"
49
+ "remotion": "4.0.421"
50
50
  },
51
51
  "peerDependencies": {
52
52
  "react": ">=16.8.0",
@@ -57,14 +57,14 @@
57
57
  "@types/prompts": "^2.4.1",
58
58
  "@types/prettier": "^2.7.2",
59
59
  "@types/node": "20.12.14",
60
- "@remotion/zod-types": "4.0.420",
61
- "@remotion/tailwind-v4": "4.0.420",
62
- "@remotion/enable-scss": "4.0.420",
63
- "@remotion/skia": "4.0.420",
60
+ "@remotion/zod-types": "4.0.421",
61
+ "@remotion/tailwind-v4": "4.0.421",
62
+ "@remotion/enable-scss": "4.0.421",
63
+ "@remotion/skia": "4.0.421",
64
64
  "react": "19.2.3",
65
65
  "react-dom": "19.2.3",
66
66
  "zod": "3.22.3",
67
- "@remotion/eslint-config-internal": "4.0.420",
67
+ "@remotion/eslint-config-internal": "4.0.421",
68
68
  "eslint": "9.19.0"
69
69
  },
70
70
  "keywords": [