@remotion/renderer 4.0.497 → 4.0.499

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.
package/dist/client.d.ts CHANGED
@@ -632,10 +632,7 @@ export declare const BrowserSafeApis: {
632
632
  getValue: ({ commandLine }: {
633
633
  commandLine: Record<string, unknown>;
634
634
  }) => {
635
- value: "angle" | "angle-egl" | "egl" | "swangle" | "swiftshader" | "vulkan";
636
- source: string;
637
- } | {
638
- value: null;
635
+ value: "angle" | "angle-egl" | "egl" | "swangle" | "swiftshader" | "vulkan" | null;
639
636
  source: string;
640
637
  };
641
638
  setConfig: (value: "angle" | "angle-egl" | "egl" | "swangle" | "swiftshader" | "vulkan" | null) => void;
@@ -1,5 +1,5 @@
1
1
  // src/client.ts
2
- import { NoReactInternals as NoReactInternals4 } from "remotion/no-react";
2
+ import { NoReactInternals as NoReactInternals5 } from "remotion/no-react";
3
3
 
4
4
  // src/browser/TimeoutSettings.ts
5
5
  var DEFAULT_TIMEOUT = 30000;
@@ -2062,6 +2062,7 @@ var framesOption = {
2062
2062
  };
2063
2063
 
2064
2064
  // src/options/gl.tsx
2065
+ import { NoReactInternals as NoReactInternals2 } from "remotion/no-react";
2065
2066
  import { jsx as jsx31, jsxs as jsxs22, Fragment as Fragment31 } from "react/jsx-runtime";
2066
2067
  var validOpenGlRenderers = [
2067
2068
  "swangle",
@@ -2071,7 +2072,10 @@ var validOpenGlRenderers = [
2071
2072
  "vulkan",
2072
2073
  "angle-egl"
2073
2074
  ];
2074
- var DEFAULT_OPENGL_RENDERER = null;
2075
+ var getDefaultOpenGlRenderer = (enableV5BreakingChanges) => {
2076
+ return enableV5BreakingChanges ? "angle" : null;
2077
+ };
2078
+ var DEFAULT_OPENGL_RENDERER = getDefaultOpenGlRenderer(NoReactInternals2.ENABLE_V5_BREAKING_CHANGES);
2075
2079
  var openGlRenderer = DEFAULT_OPENGL_RENDERER;
2076
2080
  var AngleChangelog = () => {
2077
2081
  return /* @__PURE__ */ jsxs22("details", {
@@ -2105,7 +2109,16 @@ var AngleChangelog = () => {
2105
2109
  }),
2106
2110
  ", however it turns out to have a small memory leak that could crash long Remotion renders."
2107
2111
  ]
2108
- })
2112
+ }),
2113
+ NoReactInternals2.ENABLE_V5_BREAKING_CHANGES ? /* @__PURE__ */ jsxs22("li", {
2114
+ children: [
2115
+ "From Remotion v5.0, the default is ",
2116
+ /* @__PURE__ */ jsx31("code", {
2117
+ children: "angle"
2118
+ }),
2119
+ ". If no compatible GPU is available, Chromium automatically falls back to SwiftShader."
2120
+ ]
2121
+ }) : null
2109
2122
  ]
2110
2123
  })
2111
2124
  ]
@@ -2179,11 +2192,13 @@ var glOption = {
2179
2192
  }),
2180
2193
  /* @__PURE__ */ jsxs22("p", {
2181
2194
  children: [
2182
- "The default is ",
2195
+ "The default is",
2196
+ " ",
2183
2197
  /* @__PURE__ */ jsx31("code", {
2184
- children: "null"
2198
+ children: DEFAULT_OPENGL_RENDERER === null ? "null" : `"${DEFAULT_OPENGL_RENDERER}"`
2185
2199
  }),
2186
- ", letting Chrome decide, except on Lambda where the default is ",
2200
+ DEFAULT_OPENGL_RENDERER === null ? ", letting Chrome decide" : ", with automatic fallback to SwiftShader if no compatible GPU is available",
2201
+ ", except on Lambda where the default is ",
2187
2202
  /* @__PURE__ */ jsx31("code", {
2188
2203
  children: '"swangle"'
2189
2204
  })
@@ -2331,16 +2346,14 @@ var headlessOption = {
2331
2346
  cliFlag: cliFlag37,
2332
2347
  description: () => /* @__PURE__ */ jsxs24(Fragment33, {
2333
2348
  children: [
2334
- "Deprecated - will be removed in 5.0.0. With the migration to",
2349
+ "If disabled, the render will open an actual Chrome window where you can see the render happen. This requires",
2335
2350
  " ",
2336
2351
  /* @__PURE__ */ jsx33("a", {
2337
2352
  href: "/docs/miscellaneous/chrome-headless-shell",
2338
- children: "Chrome Headless Shell"
2353
+ children: "Chrome for Testing"
2339
2354
  }),
2340
- ", this option is not functional anymore.",
2341
- /* @__PURE__ */ jsx33("br", {}),
2342
- /* @__PURE__ */ jsx33("br", {}),
2343
- " If disabled, the render will open an actual Chrome window where you can see the render happen. The default is headless mode."
2355
+ " ",
2356
+ "or a custom Chrome or Chromium executable. Chrome Headless Shell always runs headlessly. The default is headless mode."
2344
2357
  ]
2345
2358
  }),
2346
2359
  ssrName: "headless",
@@ -3301,10 +3314,10 @@ var outDirOption = {
3301
3314
  };
3302
3315
 
3303
3316
  // src/validate.ts
3304
- import { NoReactInternals as NoReactInternals2 } from "remotion/no-react";
3305
- var validateFps = NoReactInternals2.validateFps;
3306
- var validateDimension = NoReactInternals2.validateDimension;
3307
- var validateDurationInFrames = NoReactInternals2.validateDurationInFrames;
3317
+ import { NoReactInternals as NoReactInternals3 } from "remotion/no-react";
3318
+ var validateFps = NoReactInternals3.validateFps;
3319
+ var validateDimension = NoReactInternals3.validateDimension;
3320
+ var validateDurationInFrames = NoReactInternals3.validateDurationInFrames;
3308
3321
 
3309
3322
  // src/options/override-duration.tsx
3310
3323
  import { jsx as jsx54, Fragment as Fragment54 } from "react/jsx-runtime";
@@ -4268,12 +4281,12 @@ var scaleOption = {
4268
4281
  };
4269
4282
 
4270
4283
  // src/options/still-frame.tsx
4271
- import { NoReactInternals as NoReactInternals3 } from "remotion/no-react";
4284
+ import { NoReactInternals as NoReactInternals4 } from "remotion/no-react";
4272
4285
  import { jsx as jsx74, jsxs as jsxs51, Fragment as Fragment74 } from "react/jsx-runtime";
4273
4286
  var cliFlag78 = "frame";
4274
4287
  var currentFrame = null;
4275
4288
  var validate3 = (frame) => {
4276
- NoReactInternals3.validateFrame({
4289
+ NoReactInternals4.validateFrame({
4277
4290
  frame,
4278
4291
  durationInFrames: Infinity,
4279
4292
  allowFloats: false
@@ -5439,7 +5452,7 @@ var BrowserSafeApis = {
5439
5452
  validAudioCodecs,
5440
5453
  getDefaultCrfForCodec,
5441
5454
  getValidCrfRanges,
5442
- proResProfileOptions: NoReactInternals4.proResProfileOptions,
5455
+ proResProfileOptions: NoReactInternals5.proResProfileOptions,
5443
5456
  x264PresetOptions,
5444
5457
  hardwareAccelerationOptions,
5445
5458
  validPixelFormats,
@@ -5429,7 +5429,7 @@ var validateFrameRange = (frameRange) => {
5429
5429
  };
5430
5430
 
5431
5431
  // src/get-compositions.ts
5432
- import { NoReactInternals as NoReactInternals8 } from "remotion/no-react";
5432
+ import { NoReactInternals as NoReactInternals10 } from "remotion/no-react";
5433
5433
 
5434
5434
  // src/to-megabytes.ts
5435
5435
  function toMegabytes(bytes) {
@@ -5474,6 +5474,7 @@ var defaultOnLog = ({ logLevel, tag, previewString }) => {
5474
5474
  import fs11 from "node:fs";
5475
5475
  import os6 from "node:os";
5476
5476
  import path10 from "node:path";
5477
+ import { NoReactInternals as NoReactInternals7 } from "remotion/no-react";
5477
5478
 
5478
5479
  // src/browser/Launcher.ts
5479
5480
  var launchChrome = async ({
@@ -6995,6 +6996,7 @@ var getIdealVideoThreadsFlag = (logLevel) => {
6995
6996
  };
6996
6997
 
6997
6998
  // src/options/gl.tsx
6999
+ import { NoReactInternals as NoReactInternals6 } from "remotion/no-react";
6998
7000
  import { jsx, jsxs, Fragment } from "react/jsx-runtime";
6999
7001
  var validOpenGlRenderers = [
7000
7002
  "swangle",
@@ -7004,7 +7006,10 @@ var validOpenGlRenderers = [
7004
7006
  "vulkan",
7005
7007
  "angle-egl"
7006
7008
  ];
7007
- var DEFAULT_OPENGL_RENDERER = null;
7009
+ var getDefaultOpenGlRenderer = (enableV5BreakingChanges) => {
7010
+ return enableV5BreakingChanges ? "angle" : null;
7011
+ };
7012
+ var DEFAULT_OPENGL_RENDERER = getDefaultOpenGlRenderer(NoReactInternals6.ENABLE_V5_BREAKING_CHANGES);
7008
7013
  var validateOpenGlRenderer = (option) => {
7009
7014
  if (option === null) {
7010
7015
  return null;
@@ -7017,7 +7022,7 @@ var validateOpenGlRenderer = (option) => {
7017
7022
 
7018
7023
  // src/open-browser.ts
7019
7024
  var featuresToEnable = (option) => {
7020
- const renderer = option ?? DEFAULT_OPENGL_RENDERER;
7025
+ const renderer = option === undefined ? getDefaultOpenGlRenderer(NoReactInternals7.ENABLE_V5_BREAKING_CHANGES) : option;
7021
7026
  const enableAlways = [
7022
7027
  "NetworkService",
7023
7028
  "NetworkServiceInProcess",
@@ -7031,8 +7036,8 @@ var featuresToEnable = (option) => {
7031
7036
  }
7032
7037
  return enableAlways;
7033
7038
  };
7034
- var getOpenGlRenderer = (option) => {
7035
- const renderer = option ?? DEFAULT_OPENGL_RENDERER;
7039
+ var getOpenGlRenderer = (option, enableV5BreakingChanges = NoReactInternals7.ENABLE_V5_BREAKING_CHANGES) => {
7040
+ const renderer = option === undefined ? getDefaultOpenGlRenderer(enableV5BreakingChanges) : option;
7036
7041
  validateOpenGlRenderer(renderer);
7037
7042
  if (renderer === "swangle") {
7038
7043
  return ["--use-gl=angle", "--use-angle=swiftshader"];
@@ -7053,6 +7058,12 @@ var getOpenGlRenderer = (option) => {
7053
7058
  if (renderer === null) {
7054
7059
  return [];
7055
7060
  }
7061
+ if (renderer === "angle" && enableV5BreakingChanges) {
7062
+ return [
7063
+ "--use-gl=angle",
7064
+ "--enable-unsafe-swiftshader"
7065
+ ];
7066
+ }
7056
7067
  return [`--use-gl=${renderer}`];
7057
7068
  };
7058
7069
  var internalOpenBrowser = async ({
@@ -7084,7 +7095,7 @@ var internalOpenBrowser = async ({
7084
7095
  indent,
7085
7096
  chromeMode
7086
7097
  });
7087
- const customGlRenderer = getOpenGlRenderer(chromiumOptions.gl ?? null);
7098
+ const customGlRenderer = getOpenGlRenderer(chromiumOptions.gl);
7088
7099
  const enableMultiProcessOnLinux = chromiumOptions.enableMultiProcessOnLinux ?? true;
7089
7100
  Log.verbose({ indent, logLevel, tag: "openBrowser()" }, `Opening browser: gl = ${chromiumOptions.gl}, executable = ${executablePath}, enableMultiProcessOnLinux = ${enableMultiProcessOnLinux}`);
7090
7101
  if (chromiumOptions.userAgent) {
@@ -7264,7 +7275,7 @@ var DEFAULT_RENDER_FRAMES_OFFTHREAD_VIDEO_THREADS = 2;
7264
7275
  // src/prepare-server.ts
7265
7276
  import { existsSync as existsSync4 } from "node:fs";
7266
7277
  import path20 from "node:path";
7267
- import { NoReactInternals as NoReactInternals7 } from "remotion/no-react";
7278
+ import { NoReactInternals as NoReactInternals9 } from "remotion/no-react";
7268
7279
 
7269
7280
  // src/assets/download-and-map-assets-to-file.ts
7270
7281
  import fs12 from "node:fs";
@@ -17190,7 +17201,7 @@ var cleanDownloadMap = (downloadMap) => {
17190
17201
 
17191
17202
  // src/get-bundle-url-from-serve-url.ts
17192
17203
  import path17 from "path";
17193
- import { NoReactInternals as NoReactInternals6 } from "remotion/no-react";
17204
+ import { NoReactInternals as NoReactInternals8 } from "remotion/no-react";
17194
17205
  var map = (webpackBundleOrServeUrl, suffix) => {
17195
17206
  if (isServeUrl(webpackBundleOrServeUrl)) {
17196
17207
  const parsed = new URL(webpackBundleOrServeUrl);
@@ -17205,7 +17216,7 @@ var map = (webpackBundleOrServeUrl, suffix) => {
17205
17216
  return url;
17206
17217
  };
17207
17218
  var getBundleMapUrlFromServeUrl = (serveUrl) => {
17208
- return map(serveUrl, NoReactInternals6.bundleMapName);
17219
+ return map(serveUrl, NoReactInternals8.bundleMapName);
17209
17220
  };
17210
17221
 
17211
17222
  // src/normalize-serve-url.ts
@@ -17861,7 +17872,7 @@ var prepareServer = async ({
17861
17872
  throw new Error(`Tried to serve the Webpack bundle on a HTTP server, but the file ${indexFile} does not exist. Is this a valid path to a Webpack bundle?`);
17862
17873
  }
17863
17874
  let localSourceMap = null;
17864
- getSourceMapFromLocalFile(path20.join(webpackConfigOrServeUrl, NoReactInternals7.bundleName)).then((s) => {
17875
+ getSourceMapFromLocalFile(path20.join(webpackConfigOrServeUrl, NoReactInternals9.bundleName)).then((s) => {
17865
17876
  localSourceMap = s;
17866
17877
  }).catch((err) => {
17867
17878
  Log.verbose({ indent, logLevel }, "Could not fetch sourcemap for ", webpackConfigOrServeUrl, err);
@@ -18701,8 +18712,8 @@ var innerGetCompositions = async ({
18701
18712
  height,
18702
18713
  fps,
18703
18714
  durationInFrames,
18704
- props: NoReactInternals8.deserializeJSONWithSpecialTypes(r.serializedResolvedPropsWithCustomSchema),
18705
- defaultProps: NoReactInternals8.deserializeJSONWithSpecialTypes(r.serializedDefaultPropsWithCustomSchema),
18715
+ props: NoReactInternals10.deserializeJSONWithSpecialTypes(r.serializedResolvedPropsWithCustomSchema),
18716
+ defaultProps: NoReactInternals10.deserializeJSONWithSpecialTypes(r.serializedDefaultPropsWithCustomSchema),
18706
18717
  defaultCodec,
18707
18718
  defaultOutName,
18708
18719
  defaultVideoImageFormat,
@@ -18832,7 +18843,7 @@ var getCompositions = (...args) => {
18832
18843
  browserExecutable: browserExecutable ?? null,
18833
18844
  chromiumOptions: chromiumOptions ?? {},
18834
18845
  envVariables: envVariables ?? {},
18835
- serializedInputPropsWithCustomSchema: NoReactInternals8.serializeJSONWithSpecialTypes({
18846
+ serializedInputPropsWithCustomSchema: NoReactInternals10.serializeJSONWithSpecialTypes({
18836
18847
  data: inputProps ?? {},
18837
18848
  indent: undefined,
18838
18849
  staticBase: null
@@ -19209,7 +19220,7 @@ var validateSelectedPixelFormatAndCodecCombination = (pixelFormat, codec) => {
19209
19220
  // src/render-frames.ts
19210
19221
  import fs16 from "node:fs";
19211
19222
  import path22 from "node:path";
19212
- import { NoReactInternals as NoReactInternals12 } from "remotion/no-react";
19223
+ import { NoReactInternals as NoReactInternals14 } from "remotion/no-react";
19213
19224
 
19214
19225
  // src/cycle-browser-tabs.ts
19215
19226
  var cycleBrowserTabs = ({
@@ -20032,10 +20043,10 @@ class Pool {
20032
20043
  }
20033
20044
 
20034
20045
  // src/render-frame-and-retry-target-close.ts
20035
- import { NoReactInternals as NoReactInternals10 } from "remotion/no-react";
20046
+ import { NoReactInternals as NoReactInternals12 } from "remotion/no-react";
20036
20047
 
20037
20048
  // src/is-delay-render-error-with-retry.ts
20038
- import { NoReactInternals as NoReactInternals9 } from "remotion/no-react";
20049
+ import { NoReactInternals as NoReactInternals11 } from "remotion/no-react";
20039
20050
  var getRetriesLeftFromError = (error) => {
20040
20051
  if (!error) {
20041
20052
  throw new Error("Expected stack");
@@ -20044,15 +20055,15 @@ var getRetriesLeftFromError = (error) => {
20044
20055
  if (!stack) {
20045
20056
  throw new Error("Expected stack: " + JSON.stringify(error));
20046
20057
  }
20047
- const beforeIndex = stack.indexOf(NoReactInternals9.DELAY_RENDER_ATTEMPT_TOKEN);
20058
+ const beforeIndex = stack.indexOf(NoReactInternals11.DELAY_RENDER_ATTEMPT_TOKEN);
20048
20059
  if (beforeIndex === -1) {
20049
20060
  throw new Error("Expected to find attempt token in stack");
20050
20061
  }
20051
- const afterIndex = stack.indexOf(NoReactInternals9.DELAY_RENDER_RETRY_TOKEN);
20062
+ const afterIndex = stack.indexOf(NoReactInternals11.DELAY_RENDER_RETRY_TOKEN);
20052
20063
  if (afterIndex === -1) {
20053
20064
  throw new Error("Expected to find retry token in stack");
20054
20065
  }
20055
- const inbetween = stack.substring(beforeIndex + NoReactInternals9.DELAY_RENDER_ATTEMPT_TOKEN.length, afterIndex);
20066
+ const inbetween = stack.substring(beforeIndex + NoReactInternals11.DELAY_RENDER_ATTEMPT_TOKEN.length, afterIndex);
20056
20067
  const parsed = Number(inbetween);
20057
20068
  if (Number.isNaN(parsed)) {
20058
20069
  throw new Error(`Expected to find a number in the stack ${stack}`);
@@ -20617,7 +20628,7 @@ var renderFrameAndRetryTargetClose = async ({
20617
20628
  currentPool.release(freePage);
20618
20629
  } catch (err) {
20619
20630
  const isTargetClosedError = isTargetClosedErr(err);
20620
- const shouldRetryError = err.stack?.includes(NoReactInternals10.DELAY_RENDER_RETRY_TOKEN);
20631
+ const shouldRetryError = err.stack?.includes(NoReactInternals12.DELAY_RENDER_RETRY_TOKEN);
20621
20632
  const flakyNetworkError = isFlakyNetworkError(err);
20622
20633
  if (isUserCancelledRender(err) && !shouldRetryError) {
20623
20634
  throw err;
@@ -20769,10 +20780,10 @@ var handleBrowserCrash = (instance, logLevel, indent) => {
20769
20780
  };
20770
20781
 
20771
20782
  // src/validate.ts
20772
- import { NoReactInternals as NoReactInternals11 } from "remotion/no-react";
20773
- var validateFps = NoReactInternals11.validateFps;
20774
- var validateDimension = NoReactInternals11.validateDimension;
20775
- var validateDurationInFrames = NoReactInternals11.validateDurationInFrames;
20783
+ import { NoReactInternals as NoReactInternals13 } from "remotion/no-react";
20784
+ var validateFps = NoReactInternals13.validateFps;
20785
+ var validateDimension = NoReactInternals13.validateDimension;
20786
+ var validateDurationInFrames = NoReactInternals13.validateDurationInFrames;
20776
20787
 
20777
20788
  // src/validate-scale.ts
20778
20789
  var validateScale = (scale) => {
@@ -21238,12 +21249,12 @@ var renderFrames = (options2) => {
21238
21249
  indent,
21239
21250
  jpegQuality: jpegQuality ?? DEFAULT_JPEG_QUALITY,
21240
21251
  onDownload: onDownload ?? null,
21241
- serializedInputPropsWithCustomSchema: NoReactInternals12.serializeJSONWithSpecialTypes({
21252
+ serializedInputPropsWithCustomSchema: NoReactInternals14.serializeJSONWithSpecialTypes({
21242
21253
  indent: undefined,
21243
21254
  staticBase: null,
21244
21255
  data: inputProps ?? {}
21245
21256
  }).serializedString,
21246
- serializedResolvedPropsWithCustomSchema: NoReactInternals12.serializeJSONWithSpecialTypes({
21257
+ serializedResolvedPropsWithCustomSchema: NoReactInternals14.serializeJSONWithSpecialTypes({
21247
21258
  indent: undefined,
21248
21259
  staticBase: null,
21249
21260
  data: composition.props
@@ -21282,7 +21293,7 @@ import fs18 from "node:fs";
21282
21293
  import os9 from "node:os";
21283
21294
  import path28 from "node:path";
21284
21295
  import { LicensingInternals } from "@remotion/licensing";
21285
- import { NoReactInternals as NoReactInternals15 } from "remotion/no-react";
21296
+ import { NoReactInternals as NoReactInternals17 } from "remotion/no-react";
21286
21297
 
21287
21298
  // src/crf.ts
21288
21299
  var defaultCrfMap = {
@@ -21489,12 +21500,12 @@ var ensureFramesInOrder = (framesToRender) => {
21489
21500
  };
21490
21501
 
21491
21502
  // src/options/color-space.tsx
21492
- import { NoReactInternals as NoReactInternals13 } from "remotion/no-react";
21503
+ import { NoReactInternals as NoReactInternals15 } from "remotion/no-react";
21493
21504
  import { jsx as jsx4, jsxs as jsxs4, Fragment as Fragment4 } from "react/jsx-runtime";
21494
21505
  var validV4ColorSpaces = ["default", "bt601", "bt709", "bt2020-ncl"];
21495
21506
  var validV5ColorSpaces = ["bt601", "bt709", "bt2020-ncl"];
21496
- var validColorSpaces = NoReactInternals13.ENABLE_V5_BREAKING_CHANGES ? validV5ColorSpaces : validV4ColorSpaces;
21497
- var DEFAULT_COLOR_SPACE = NoReactInternals13.ENABLE_V5_BREAKING_CHANGES ? "bt709" : "default";
21507
+ var validColorSpaces = NoReactInternals15.ENABLE_V5_BREAKING_CHANGES ? validV5ColorSpaces : validV4ColorSpaces;
21508
+ var DEFAULT_COLOR_SPACE = NoReactInternals15.ENABLE_V5_BREAKING_CHANGES ? "bt709" : "default";
21498
21509
 
21499
21510
  // src/options/gop-size.tsx
21500
21511
  import { jsx as jsx5, jsxs as jsxs5, Fragment as Fragment5 } from "react/jsx-runtime";
@@ -22034,7 +22045,7 @@ var shouldUseParallelEncoding = ({
22034
22045
  };
22035
22046
 
22036
22047
  // src/prores-profile.ts
22037
- import { NoReactInternals as NoReactInternals14 } from "remotion/no-react";
22048
+ import { NoReactInternals as NoReactInternals16 } from "remotion/no-react";
22038
22049
  var validateSelectedCodecAndProResCombination = ({
22039
22050
  codec,
22040
22051
  proResProfile
@@ -22042,8 +22053,8 @@ var validateSelectedCodecAndProResCombination = ({
22042
22053
  if (typeof proResProfile !== "undefined" && codec !== "prores") {
22043
22054
  throw new TypeError(`You have set a ProRes profile but the codec is "${codec}". Set the codec to "prores" or remove the ProRes profile.`);
22044
22055
  }
22045
- if (proResProfile !== undefined && !NoReactInternals14.proResProfileOptions.includes(proResProfile)) {
22046
- throw new TypeError(`The ProRes profile "${proResProfile}" is not valid. Valid options are ${NoReactInternals14.proResProfileOptions.map((p) => `"${p}"`).join(", ")}`);
22056
+ if (proResProfile !== undefined && !NoReactInternals16.proResProfileOptions.includes(proResProfile)) {
22057
+ throw new TypeError(`The ProRes profile "${proResProfile}" is not valid. Valid options are ${NoReactInternals16.proResProfileOptions.map((p) => `"${p}"`).join(", ")}`);
22047
22058
  }
22048
22059
  };
22049
22060
 
@@ -24145,7 +24156,7 @@ var renderMedia = ({
24145
24156
  ffmpegOverride: ffmpegOverride ?? undefined,
24146
24157
  frameRange: frameRange ?? null,
24147
24158
  imageFormat: imageFormat ?? null,
24148
- serializedInputPropsWithCustomSchema: NoReactInternals15.serializeJSONWithSpecialTypes({
24159
+ serializedInputPropsWithCustomSchema: NoReactInternals17.serializeJSONWithSpecialTypes({
24149
24160
  indent: undefined,
24150
24161
  staticBase: null,
24151
24162
  data: inputProps ?? {}
@@ -24180,7 +24191,7 @@ var renderMedia = ({
24180
24191
  return;
24181
24192
  },
24182
24193
  server: undefined,
24183
- serializedResolvedPropsWithCustomSchema: NoReactInternals15.serializeJSONWithSpecialTypes({
24194
+ serializedResolvedPropsWithCustomSchema: NoReactInternals17.serializeJSONWithSpecialTypes({
24184
24195
  indent: undefined,
24185
24196
  staticBase: null,
24186
24197
  data: composition.props ?? {}
@@ -24214,7 +24225,7 @@ var renderMedia = ({
24214
24225
  import fs19, { statSync as statSync2 } from "node:fs";
24215
24226
  import path29 from "node:path";
24216
24227
  import { LicensingInternals as LicensingInternals2 } from "@remotion/licensing";
24217
- import { NoReactInternals as NoReactInternals16 } from "remotion/no-react";
24228
+ import { NoReactInternals as NoReactInternals18 } from "remotion/no-react";
24218
24229
  var innerRenderStill = async ({
24219
24230
  composition,
24220
24231
  imageFormat = DEFAULT_STILL_IMAGE_FORMAT,
@@ -24252,7 +24263,7 @@ var innerRenderStill = async ({
24252
24263
  allowFloats: false
24253
24264
  });
24254
24265
  validateStillImageFormat(imageFormat);
24255
- NoReactInternals16.validateFrame({
24266
+ NoReactInternals18.validateFrame({
24256
24267
  frame,
24257
24268
  durationInFrames: composition.durationInFrames,
24258
24269
  allowFloats: false
@@ -24545,7 +24556,7 @@ var renderStill = (options2) => {
24545
24556
  frame: frame ?? 0,
24546
24557
  imageFormat: imageFormat ?? DEFAULT_STILL_IMAGE_FORMAT,
24547
24558
  indent,
24548
- serializedInputPropsWithCustomSchema: NoReactInternals16.serializeJSONWithSpecialTypes({
24559
+ serializedInputPropsWithCustomSchema: NoReactInternals18.serializeJSONWithSpecialTypes({
24549
24560
  staticBase: null,
24550
24561
  indent: undefined,
24551
24562
  data: inputProps ?? {}
@@ -24562,7 +24573,7 @@ var renderStill = (options2) => {
24562
24573
  serveUrl,
24563
24574
  timeoutInMilliseconds: timeoutInMilliseconds ?? DEFAULT_TIMEOUT,
24564
24575
  logLevel,
24565
- serializedResolvedPropsWithCustomSchema: NoReactInternals16.serializeJSONWithSpecialTypes({
24576
+ serializedResolvedPropsWithCustomSchema: NoReactInternals18.serializeJSONWithSpecialTypes({
24566
24577
  indent: undefined,
24567
24578
  staticBase: null,
24568
24579
  data: composition.props ?? {}
@@ -24585,7 +24596,7 @@ var renderStill = (options2) => {
24585
24596
  };
24586
24597
 
24587
24598
  // src/select-composition.ts
24588
- import { NoReactInternals as NoReactInternals17 } from "remotion/no-react";
24599
+ import { NoReactInternals as NoReactInternals19 } from "remotion/no-react";
24589
24600
  var innerSelectComposition = async ({
24590
24601
  page,
24591
24602
  serializedInputPropsWithCustomSchema,
@@ -24679,8 +24690,8 @@ var innerSelectComposition = async ({
24679
24690
  height,
24680
24691
  fps,
24681
24692
  durationInFrames,
24682
- props: NoReactInternals17.deserializeJSONWithSpecialTypes(res.serializedResolvedPropsWithCustomSchema),
24683
- defaultProps: NoReactInternals17.deserializeJSONWithSpecialTypes(res.serializedDefaultPropsWithCustomSchema),
24693
+ props: NoReactInternals19.deserializeJSONWithSpecialTypes(res.serializedResolvedPropsWithCustomSchema),
24694
+ defaultProps: NoReactInternals19.deserializeJSONWithSpecialTypes(res.serializedDefaultPropsWithCustomSchema),
24684
24695
  defaultCodec,
24685
24696
  defaultOutName,
24686
24697
  defaultVideoImageFormat,
@@ -24820,7 +24831,7 @@ var selectComposition = async (options2) => {
24820
24831
  browserExecutable: browserExecutable ?? null,
24821
24832
  chromiumOptions: chromiumOptions ?? {},
24822
24833
  envVariables: envVariables ?? {},
24823
- serializedInputPropsWithCustomSchema: NoReactInternals17.serializeJSONWithSpecialTypes({
24834
+ serializedInputPropsWithCustomSchema: NoReactInternals19.serializeJSONWithSpecialTypes({
24824
24835
  indent: undefined,
24825
24836
  staticBase: null,
24826
24837
  data: inputProps ?? {}
@@ -25344,7 +25355,11 @@ var getAudibleParts = ({
25344
25355
  };
25345
25356
  // src/get-video-metadata.ts
25346
25357
  import { resolve as resolve2 } from "node:path";
25358
+ import { NoReactInternals as NoReactInternals20 } from "remotion/no-react";
25347
25359
  var getVideoMetadata = async (videoSource, options2) => {
25360
+ if (NoReactInternals20.ENABLE_V5_BREAKING_CHANGES) {
25361
+ throw new Error("getVideoMetadata() has been removed in Remotion 5. Use Mediabunny instead: https://www.remotion.dev/docs/mediabunny/metadata");
25362
+ }
25348
25363
  const compositor = startLongRunningCompositor({
25349
25364
  maximumFrameCacheItemsInBytes: null,
25350
25365
  logLevel: options2?.logLevel ?? "info",
@@ -1,7 +1,7 @@
1
1
  import type { VideoMetadata } from './compositor/payloads';
2
2
  export { VideoMetadata } from './compositor/payloads';
3
3
  /**
4
- * @deprecated Use `parseMedia()` instead: https://www.remotion.dev/docs/media-parser/parse-media
4
+ * @deprecated Use Mediabunny instead: https://www.remotion.dev/docs/mediabunny/metadata
5
5
  */
6
6
  export declare const getVideoMetadata: (videoSource: string, options?: {
7
7
  logLevel?: "error" | "info" | "trace" | "verbose" | "warn" | undefined;
@@ -2,12 +2,16 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getVideoMetadata = void 0;
4
4
  const node_path_1 = require("node:path");
5
+ const no_react_1 = require("remotion/no-react");
5
6
  const compositor_1 = require("./compositor/compositor");
6
7
  /**
7
- * @deprecated Use `parseMedia()` instead: https://www.remotion.dev/docs/media-parser/parse-media
8
+ * @deprecated Use Mediabunny instead: https://www.remotion.dev/docs/mediabunny/metadata
8
9
  */
9
10
  const getVideoMetadata = async (videoSource, options) => {
10
11
  var _a, _b;
12
+ if (no_react_1.NoReactInternals.ENABLE_V5_BREAKING_CHANGES) {
13
+ throw new Error('getVideoMetadata() has been removed in Remotion 5. Use Mediabunny instead: https://www.remotion.dev/docs/mediabunny/metadata');
14
+ }
11
15
  const compositor = (0, compositor_1.startLongRunningCompositor)({
12
16
  maximumFrameCacheItemsInBytes: null,
13
17
  logLevel: (_a = options === null || options === void 0 ? void 0 : options.logLevel) !== null && _a !== void 0 ? _a : 'info',
@@ -1,4 +1,4 @@
1
- import type { NoReactInternals } from 'remotion/no-react';
1
+ import { NoReactInternals } from 'remotion/no-react';
2
2
  import type { Browser } from './browser';
3
3
  import type { HeadlessBrowser } from './browser/Browser';
4
4
  import type { Viewport } from './browser/PuppeteerViewport';
@@ -8,13 +8,6 @@ import type { validOpenGlRenderers } from './options/gl';
8
8
  import type { ToOptions } from './options/option';
9
9
  import type { optionsMap } from './options/options-map';
10
10
  type OpenGlRenderer = (typeof validOpenGlRenderers)[number];
11
- type OnlyV4Options = typeof NoReactInternals.ENABLE_V5_BREAKING_CHANGES extends true ? {} : {
12
- /**
13
- * @deprecated - Will be removed in v5.
14
- * Chrome Headless shell does not allow disabling headless mode anymore.
15
- */
16
- headless?: boolean;
17
- };
18
11
  export type ChromiumOptions = {
19
12
  ignoreCertificateErrors?: boolean;
20
13
  disableWebSecurity?: boolean;
@@ -22,7 +15,13 @@ export type ChromiumOptions = {
22
15
  userAgent?: string | null;
23
16
  enableMultiProcessOnLinux?: boolean;
24
17
  darkMode?: boolean;
25
- } & OnlyV4Options;
18
+ /**
19
+ * Opens a browser window if Chrome for Testing or a custom Chrome/Chromium
20
+ * executable is used. Chrome Headless Shell always runs headlessly.
21
+ */
22
+ headless?: boolean;
23
+ };
24
+ export declare const getOpenGlRenderer: (option: "angle" | "angle-egl" | "egl" | "swangle" | "swiftshader" | "vulkan" | null | undefined, enableV5BreakingChanges?: boolean) => string[];
26
25
  type InternalOpenBrowserOptions = {
27
26
  browserExecutable: string | null;
28
27
  chromiumOptions: ChromiumOptions;
@@ -3,10 +3,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.openBrowser = exports.internalOpenBrowser = void 0;
6
+ exports.openBrowser = exports.internalOpenBrowser = exports.getOpenGlRenderer = void 0;
7
7
  const node_fs_1 = __importDefault(require("node:fs"));
8
8
  const node_os_1 = __importDefault(require("node:os"));
9
9
  const node_path_1 = __importDefault(require("node:path"));
10
+ const no_react_1 = require("remotion/no-react");
10
11
  const browser_download_progress_bar_1 = require("./browser/browser-download-progress-bar");
11
12
  const Launcher_1 = require("./browser/Launcher");
12
13
  const ensure_browser_1 = require("./ensure-browser");
@@ -15,7 +16,9 @@ const get_video_threads_flag_1 = require("./get-video-threads-flag");
15
16
  const logger_1 = require("./logger");
16
17
  const gl_1 = require("./options/gl");
17
18
  const featuresToEnable = (option) => {
18
- const renderer = option !== null && option !== void 0 ? option : gl_1.DEFAULT_OPENGL_RENDERER;
19
+ const renderer = option === undefined
20
+ ? (0, gl_1.getDefaultOpenGlRenderer)(no_react_1.NoReactInternals.ENABLE_V5_BREAKING_CHANGES)
21
+ : option;
19
22
  const enableAlways = [
20
23
  'NetworkService',
21
24
  'NetworkServiceInProcess',
@@ -29,8 +32,10 @@ const featuresToEnable = (option) => {
29
32
  }
30
33
  return enableAlways;
31
34
  };
32
- const getOpenGlRenderer = (option) => {
33
- const renderer = option !== null && option !== void 0 ? option : gl_1.DEFAULT_OPENGL_RENDERER;
35
+ const getOpenGlRenderer = (option, enableV5BreakingChanges = no_react_1.NoReactInternals.ENABLE_V5_BREAKING_CHANGES) => {
36
+ const renderer = option === undefined
37
+ ? (0, gl_1.getDefaultOpenGlRenderer)(enableV5BreakingChanges)
38
+ : option;
34
39
  (0, gl_1.validateOpenGlRenderer)(renderer);
35
40
  if (renderer === 'swangle') {
36
41
  return ['--use-gl=angle', '--use-angle=swiftshader'];
@@ -51,11 +56,20 @@ const getOpenGlRenderer = (option) => {
51
56
  if (renderer === null) {
52
57
  return [];
53
58
  }
59
+ if (renderer === 'angle' && enableV5BreakingChanges) {
60
+ return [
61
+ '--use-gl=angle',
62
+ // Opt into Chromium's software WebGL fallback for GPU-less machines:
63
+ // https://chromium.googlesource.com/chromium/src/+/main/docs/gpu/swiftshader.md
64
+ '--enable-unsafe-swiftshader',
65
+ ];
66
+ }
54
67
  return [`--use-gl=${renderer}`];
55
68
  };
69
+ exports.getOpenGlRenderer = getOpenGlRenderer;
56
70
  const internalOpenBrowser = async ({ browser, browserExecutable, chromiumOptions, forceDeviceScaleFactor, indent, viewport, logLevel, onBrowserDownload, chromeMode, }) => {
57
71
  var _a;
58
- var _b, _c, _d;
72
+ var _b, _c;
59
73
  // @ts-expect-error Firefox
60
74
  if (browser === 'firefox') {
61
75
  throw new TypeError('Firefox supported is not yet turned on. Stay tuned for the future.');
@@ -75,8 +89,8 @@ const internalOpenBrowser = async ({ browser, browserExecutable, chromiumOptions
75
89
  indent,
76
90
  chromeMode,
77
91
  });
78
- const customGlRenderer = getOpenGlRenderer((_b = chromiumOptions.gl) !== null && _b !== void 0 ? _b : null);
79
- const enableMultiProcessOnLinux = (_c = chromiumOptions.enableMultiProcessOnLinux) !== null && _c !== void 0 ? _c : true;
92
+ const customGlRenderer = (0, exports.getOpenGlRenderer)(chromiumOptions.gl);
93
+ const enableMultiProcessOnLinux = (_b = chromiumOptions.enableMultiProcessOnLinux) !== null && _b !== void 0 ? _b : true;
80
94
  logger_1.Log.verbose({ indent, logLevel, tag: 'openBrowser()' }, `Opening browser: gl = ${chromiumOptions.gl}, executable = ${executablePath}, enableMultiProcessOnLinux = ${enableMultiProcessOnLinux}`);
81
95
  if (chromiumOptions.userAgent) {
82
96
  logger_1.Log.verbose({ indent, logLevel, tag: 'openBrowser()' }, `Using custom user agent: ${chromiumOptions.userAgent}`);
@@ -123,7 +137,7 @@ const internalOpenBrowser = async ({ browser, browserExecutable, chromiumOptions
123
137
  '--enable-blink-features=IdleDetection',
124
138
  '--export-tagged-pdf',
125
139
  '--intensive-wake-up-throttling-policy=0',
126
- ((_d = chromiumOptions.headless) !== null && _d !== void 0 ? _d : true)
140
+ ((_c = chromiumOptions.headless) !== null && _c !== void 0 ? _c : true)
127
141
  ? chromeMode === 'chrome-for-testing'
128
142
  ? '--headless=new'
129
143
  : '--headless=old'
@@ -1,6 +1,7 @@
1
1
  export declare const validOpenGlRenderers: readonly ["swangle", "angle", "egl", "swiftshader", "vulkan", "angle-egl"];
2
2
  export type OpenGlRenderer = (typeof validOpenGlRenderers)[number];
3
- export declare const DEFAULT_OPENGL_RENDERER: OpenGlRenderer | null;
3
+ export declare const getDefaultOpenGlRenderer: (enableV5BreakingChanges: boolean) => "angle" | "angle-egl" | "egl" | "swangle" | "swiftshader" | "vulkan" | null;
4
+ export declare const DEFAULT_OPENGL_RENDERER: "angle" | "angle-egl" | "egl" | "swangle" | "swiftshader" | "vulkan" | null;
4
5
  export declare const getChromiumOpenGlRenderer: () => "angle" | "angle-egl" | "egl" | "swangle" | "swiftshader" | "vulkan" | null;
5
6
  export declare const setChromiumOpenGlRenderer: (renderer: "angle" | "angle-egl" | "egl" | "swangle" | "swiftshader" | "vulkan") => void;
6
7
  export declare const glOption: {
@@ -13,10 +14,7 @@ export declare const glOption: {
13
14
  getValue: ({ commandLine }: {
14
15
  commandLine: Record<string, unknown>;
15
16
  }) => {
16
- value: "angle" | "angle-egl" | "egl" | "swangle" | "swiftshader" | "vulkan";
17
- source: string;
18
- } | {
19
- value: null;
17
+ value: "angle" | "angle-egl" | "egl" | "swangle" | "swiftshader" | "vulkan" | null;
20
18
  source: string;
21
19
  };
22
20
  setConfig: (value: "angle" | "angle-egl" | "egl" | "swangle" | "swiftshader" | "vulkan" | null) => void;
@@ -1,7 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.validateOpenGlRenderer = exports.glOption = exports.setChromiumOpenGlRenderer = exports.getChromiumOpenGlRenderer = exports.DEFAULT_OPENGL_RENDERER = exports.validOpenGlRenderers = void 0;
3
+ exports.validateOpenGlRenderer = exports.glOption = exports.setChromiumOpenGlRenderer = exports.getChromiumOpenGlRenderer = exports.DEFAULT_OPENGL_RENDERER = exports.getDefaultOpenGlRenderer = exports.validOpenGlRenderers = void 0;
4
4
  const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const no_react_1 = require("remotion/no-react");
5
6
  exports.validOpenGlRenderers = [
6
7
  'swangle',
7
8
  'angle',
@@ -10,7 +11,11 @@ exports.validOpenGlRenderers = [
10
11
  'vulkan',
11
12
  'angle-egl',
12
13
  ];
13
- exports.DEFAULT_OPENGL_RENDERER = null;
14
+ const getDefaultOpenGlRenderer = (enableV5BreakingChanges) => {
15
+ return enableV5BreakingChanges ? 'angle' : null;
16
+ };
17
+ exports.getDefaultOpenGlRenderer = getDefaultOpenGlRenderer;
18
+ exports.DEFAULT_OPENGL_RENDERER = (0, exports.getDefaultOpenGlRenderer)(no_react_1.NoReactInternals.ENABLE_V5_BREAKING_CHANGES);
14
19
  let openGlRenderer = exports.DEFAULT_OPENGL_RENDERER;
15
20
  const getChromiumOpenGlRenderer = () => openGlRenderer;
16
21
  exports.getChromiumOpenGlRenderer = getChromiumOpenGlRenderer;
@@ -26,8 +31,9 @@ const AngleChangelog = () => {
26
31
  ", but from v3.0.8 the default is", ' ', jsx_runtime_1.jsx("code", { children: "swangle" }),
27
32
  " (Swiftshader on Angle) since Chrome 101 added support for it."] }), jsx_runtime_1.jsxs("li", { children: ["From Remotion v2.4.3 until v2.6.6, the default was ",
28
33
  jsx_runtime_1.jsx("code", { children: "angle" }),
29
- ", however it turns out to have a small memory leak that could crash long Remotion renders."] })
30
- ] })
34
+ ", however it turns out to have a small memory leak that could crash long Remotion renders."] }), no_react_1.NoReactInternals.ENABLE_V5_BREAKING_CHANGES ? (jsx_runtime_1.jsxs("li", { children: ["From Remotion v5.0, the default is ",
35
+ jsx_runtime_1.jsx("code", { children: "angle" }),
36
+ ". If no compatible GPU is available, Chromium automatically falls back to SwiftShader."] })) : null] })
31
37
  ] }));
32
38
  };
33
39
  const cliFlag = 'gl';
@@ -51,9 +57,11 @@ exports.glOption = {
51
57
  " (",
52
58
  jsx_runtime_1.jsx("em", { children: "from Remotion v4.0.51" }),
53
59
  ")"] })
54
- ] }), jsx_runtime_1.jsxs("p", { children: ["The default is ",
55
- jsx_runtime_1.jsx("code", { children: "null" }),
56
- ", letting Chrome decide, except on Lambda where the default is ",
60
+ ] }), jsx_runtime_1.jsxs("p", { children: ["The default is", ' ', jsx_runtime_1.jsx("code", { children: exports.DEFAULT_OPENGL_RENDERER === null
61
+ ? 'null'
62
+ : `"${exports.DEFAULT_OPENGL_RENDERER}"` }), exports.DEFAULT_OPENGL_RENDERER === null
63
+ ? ', letting Chrome decide'
64
+ : ', with automatic fallback to SwiftShader if no compatible GPU is available', ", except on Lambda where the default is ",
57
65
  jsx_runtime_1.jsx("code", { children: '"swangle"' })
58
66
  ] })
59
67
  ] }));
@@ -8,10 +8,7 @@ const cliFlag = 'disable-headless';
8
8
  exports.headlessOption = {
9
9
  name: 'Disable Headless Mode',
10
10
  cliFlag,
11
- description: () => (jsx_runtime_1.jsxs(jsx_runtime_1.Fragment, { children: ["Deprecated - will be removed in 5.0.0. With the migration to", ' ', jsx_runtime_1.jsx("a", { href: "/docs/miscellaneous/chrome-headless-shell", children: "Chrome Headless Shell" }),
12
- ", this option is not functional anymore.",
13
- jsx_runtime_1.jsx("br", {}), jsx_runtime_1.jsx("br", {}),
14
- " If disabled, the render will open an actual Chrome window where you can see the render happen. The default is headless mode."] })),
11
+ description: () => (jsx_runtime_1.jsxs(jsx_runtime_1.Fragment, { children: ["If disabled, the render will open an actual Chrome window where you can see the render happen. This requires", ' ', jsx_runtime_1.jsx("a", { href: "/docs/miscellaneous/chrome-headless-shell", children: "Chrome for Testing" }), ' ', "or a custom Chrome or Chromium executable. Chrome Headless Shell always runs headlessly. The default is headless mode."] })),
15
12
  ssrName: 'headless',
16
13
  docLink: 'https://www.remotion.dev/docs/chromium-flags#--disable-headless',
17
14
  type: false,
@@ -386,10 +386,7 @@ export declare const allOptions: {
386
386
  getValue: ({ commandLine }: {
387
387
  commandLine: Record<string, unknown>;
388
388
  }) => {
389
- value: "angle" | "angle-egl" | "egl" | "swangle" | "swiftshader" | "vulkan";
390
- source: string;
391
- } | {
392
- value: null;
389
+ value: "angle" | "angle-egl" | "egl" | "swangle" | "swiftshader" | "vulkan" | null;
393
390
  source: string;
394
391
  };
395
392
  setConfig: (value: "angle" | "angle-egl" | "egl" | "swangle" | "swiftshader" | "vulkan" | null) => void;
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "url": "https://github.com/remotion-dev/remotion/tree/main/packages/renderer"
4
4
  },
5
5
  "name": "@remotion/renderer",
6
- "version": "4.0.497",
6
+ "version": "4.0.499",
7
7
  "description": "Render Remotion videos using Node.js or Bun",
8
8
  "main": "dist/index.js",
9
9
  "types": "dist/index.d.ts",
@@ -22,11 +22,11 @@
22
22
  },
23
23
  "dependencies": {
24
24
  "execa": "5.1.1",
25
- "remotion": "4.0.497",
26
- "@remotion/streaming": "4.0.497",
25
+ "remotion": "4.0.499",
26
+ "@remotion/streaming": "4.0.499",
27
27
  "source-map": "0.8.0-beta.0",
28
28
  "ws": "8.21.0",
29
- "@remotion/licensing": "4.0.497"
29
+ "@remotion/licensing": "4.0.499"
30
30
  },
31
31
  "peerDependencies": {
32
32
  "react": ">=16.8.0",
@@ -40,19 +40,19 @@
40
40
  "react-dom": "19.2.3",
41
41
  "@typescript/native-preview": "7.0.0-dev.20260217.1",
42
42
  "@types/ws": "8.5.10",
43
- "@remotion/example-videos": "4.0.497",
44
- "@remotion/eslint-config-internal": "4.0.497",
43
+ "@remotion/example-videos": "4.0.499",
44
+ "@remotion/eslint-config-internal": "4.0.499",
45
45
  "eslint": "9.19.0",
46
46
  "@types/node": "20.12.14"
47
47
  },
48
48
  "optionalDependencies": {
49
- "@remotion/compositor-darwin-arm64": "4.0.497",
50
- "@remotion/compositor-darwin-x64": "4.0.497",
51
- "@remotion/compositor-linux-arm64-gnu": "4.0.497",
52
- "@remotion/compositor-linux-arm64-musl": "4.0.497",
53
- "@remotion/compositor-linux-x64-gnu": "4.0.497",
54
- "@remotion/compositor-linux-x64-musl": "4.0.497",
55
- "@remotion/compositor-win32-x64-msvc": "4.0.497"
49
+ "@remotion/compositor-darwin-arm64": "4.0.499",
50
+ "@remotion/compositor-darwin-x64": "4.0.499",
51
+ "@remotion/compositor-linux-arm64-gnu": "4.0.499",
52
+ "@remotion/compositor-linux-arm64-musl": "4.0.499",
53
+ "@remotion/compositor-linux-x64-gnu": "4.0.499",
54
+ "@remotion/compositor-linux-x64-musl": "4.0.499",
55
+ "@remotion/compositor-win32-x64-msvc": "4.0.499"
56
56
  },
57
57
  "keywords": [
58
58
  "remotion",