@remotion/renderer 4.0.199 → 4.0.200

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.
@@ -226,6 +226,7 @@ _NetworkManager_client = new WeakMap(), _NetworkManager_frameManager = new WeakM
226
226
  __classPrivateFieldGet(this, _NetworkManager_instances, "m", _NetworkManager_emitLoadingFailed).call(this, event);
227
227
  }
228
228
  }, _NetworkManager_emitLoadingFailed = function _NetworkManager_emitLoadingFailed(event) {
229
+ var _a;
229
230
  const request = __classPrivateFieldGet(this, _NetworkManager_networkEventManager, "f").getRequest(event.requestId);
230
231
  // For certain requestIds we never receive requestWillBeSent event.
231
232
  // @see https://crbug.com/750469
@@ -234,6 +235,13 @@ _NetworkManager_client = new WeakMap(), _NetworkManager_frameManager = new WeakM
234
235
  }
235
236
  if (!event.canceled) {
236
237
  logger_1.Log.warn({ indent: __classPrivateFieldGet(this, _NetworkManager_indent, "f"), logLevel: __classPrivateFieldGet(this, _NetworkManager_logLevel, "f") }, `Browser failed to load ${request._url} (${event.type}): ${event.errorText}`);
238
+ if (event.errorText === 'net::ERR_FAILED' &&
239
+ event.type === 'Fetch' &&
240
+ ((_a = request._url) === null || _a === void 0 ? void 0 : _a.includes('/proxy'))) {
241
+ logger_1.Log.warn({ indent: __classPrivateFieldGet(this, _NetworkManager_indent, "f"), logLevel: __classPrivateFieldGet(this, _NetworkManager_logLevel, "f") }, 'This could be caused by Chrome rejecting the request because the disk space is low.');
242
+ logger_1.Log.warn({ indent: __classPrivateFieldGet(this, _NetworkManager_indent, "f"), logLevel: __classPrivateFieldGet(this, _NetworkManager_logLevel, "f") }, 'This could be caused by Chrome rejecting the request because the disk space is low.');
243
+ logger_1.Log.warn({ indent: __classPrivateFieldGet(this, _NetworkManager_indent, "f"), logLevel: __classPrivateFieldGet(this, _NetworkManager_logLevel, "f") }, 'Consider increasing the disk size of your Lambda function.');
244
+ }
237
245
  }
238
246
  __classPrivateFieldGet(this, _NetworkManager_instances, "m", _NetworkManager_forgetRequest).call(this, request, true);
239
247
  };
package/dist/client.d.ts CHANGED
@@ -467,19 +467,19 @@ export declare const BrowserSafeApis: {
467
467
  cliFlag: "gl";
468
468
  docLink: string;
469
469
  name: string;
470
- type: "angle" | "swangle" | "egl" | "swiftshader" | "vulkan" | "angle-egl" | null;
470
+ type: "swangle" | "angle" | "egl" | "swiftshader" | "vulkan" | "angle-egl" | null;
471
471
  ssrName: string;
472
472
  description: () => import("react/jsx-runtime").JSX.Element;
473
473
  getValue: ({ commandLine }: {
474
474
  commandLine: Record<string, unknown>;
475
475
  }) => {
476
- value: "angle" | "swangle" | "egl" | "swiftshader" | "vulkan" | "angle-egl";
476
+ value: "swangle" | "angle" | "egl" | "swiftshader" | "vulkan" | "angle-egl";
477
477
  source: string;
478
478
  } | {
479
479
  value: null;
480
480
  source: string;
481
481
  };
482
- setConfig: (value: "angle" | "swangle" | "egl" | "swiftshader" | "vulkan" | "angle-egl" | null) => void;
482
+ setConfig: (value: "swangle" | "angle" | "egl" | "swiftshader" | "vulkan" | "angle-egl" | null) => void;
483
483
  };
484
484
  enableLambdaInsights: {
485
485
  name: string;
@@ -66,7 +66,6 @@ const handleJavascriptException = ({ page, onError, frame, }) => {
66
66
  return;
67
67
  }
68
68
  const errorType = (_b = exception.exceptionDetails.exception) === null || _b === void 0 ? void 0 : _b.className;
69
- page.close();
70
69
  const symbolicatedErr = new symbolicateable_error_1.SymbolicateableError({
71
70
  message: removeDelayRenderStack(cleanErrorMessage),
72
71
  stackFrame: exception.exceptionDetails.stackTrace.callFrames.map((f) => callFrameToStackFrame(f)),
package/dist/index.d.ts CHANGED
@@ -141,8 +141,8 @@ export declare const RenderInternals: {
141
141
  validPixelFormats: readonly ["yuv420p", "yuva420p", "yuv422p", "yuv444p", "yuv420p10le", "yuv422p10le", "yuv444p10le", "yuva444p10le"];
142
142
  DEFAULT_BROWSER: "chrome";
143
143
  validateFrameRange: (frameRange: import("./frame-range").FrameRange | null) => void;
144
- DEFAULT_OPENGL_RENDERER: "angle" | "swangle" | "egl" | "swiftshader" | "vulkan" | "angle-egl" | null;
145
- validateOpenGlRenderer: (option: unknown) => "angle" | "swangle" | "egl" | "swiftshader" | "vulkan" | "angle-egl" | null;
144
+ DEFAULT_OPENGL_RENDERER: "swangle" | "angle" | "egl" | "swiftshader" | "vulkan" | "angle-egl" | null;
145
+ validateOpenGlRenderer: (option: unknown) => "swangle" | "angle" | "egl" | "swiftshader" | "vulkan" | "angle-egl" | null;
146
146
  validCodecs: readonly ["h264", "h265", "vp8", "vp9", "mp3", "aac", "wav", "prores", "h264-mkv", "h264-ts", "gif"];
147
147
  DEFAULT_PIXEL_FORMAT: "yuv420p" | "yuva420p" | "yuv422p" | "yuv444p" | "yuv420p10le" | "yuv422p10le" | "yuv444p10le" | "yuva444p10le";
148
148
  validateJpegQuality: (q: unknown) => void;
@@ -338,7 +338,7 @@ export declare const RenderInternals: {
338
338
  makeFileExtensionMap: () => Record<string, ("h264" | "h265" | "vp8" | "vp9" | "mp3" | "aac" | "wav" | "prores" | "h264-mkv" | "h264-ts" | "gif")[]>;
339
339
  defaultCodecsForFileExtension: Record<import("./file-extensions").FileExtension, "h264" | "h265" | "vp8" | "vp9" | "mp3" | "aac" | "wav" | "prores" | "h264-mkv" | "h264-ts" | "gif">;
340
340
  getExecutablePath: ({ indent, logLevel, type, binariesDirectory, }: {
341
- type: "ffmpeg" | "ffprobe" | "compositor";
341
+ type: "compositor" | "ffmpeg" | "ffprobe";
342
342
  indent: boolean;
343
343
  logLevel: "verbose" | "info" | "warn" | "error";
344
344
  binariesDirectory: string | null;
@@ -354,8 +354,8 @@ export declare const RenderInternals: {
354
354
  }) => execa.ExecaChildProcess<string>;
355
355
  validStillImageFormats: readonly ["png", "jpeg", "pdf", "webp"];
356
356
  validVideoImageFormats: readonly ["png", "jpeg", "none"];
357
- DEFAULT_STILL_IMAGE_FORMAT: "jpeg" | "png" | "webp" | "pdf";
358
- DEFAULT_VIDEO_IMAGE_FORMAT: "jpeg" | "png" | "none";
357
+ DEFAULT_STILL_IMAGE_FORMAT: "png" | "jpeg" | "pdf" | "webp";
358
+ DEFAULT_VIDEO_IMAGE_FORMAT: "png" | "jpeg" | "none";
359
359
  DEFAULT_JPEG_QUALITY: number;
360
360
  chalk: {
361
361
  enabled: () => boolean;
@@ -453,7 +453,7 @@ export declare const RenderInternals: {
453
453
  frame: number;
454
454
  serializedInputPropsWithCustomSchema: string;
455
455
  serializedResolvedPropsWithCustomSchema: string;
456
- imageFormat: "jpeg" | "png" | "webp" | "pdf";
456
+ imageFormat: "png" | "jpeg" | "pdf" | "webp";
457
457
  jpegQuality: number;
458
458
  puppeteerInstance: HeadlessBrowser | null;
459
459
  envVariables: Record<string, string>;
@@ -754,7 +754,7 @@ export declare const RenderInternals: {
754
754
  onFrameUpdate: ((framesRendered: number, frameIndex: number, timeToRenderInMilliseconds: number) => void) | null;
755
755
  outputDir: string | null;
756
756
  envVariables: Record<string, string>;
757
- imageFormat: "jpeg" | "png" | "none";
757
+ imageFormat: "png" | "jpeg" | "none";
758
758
  jpegQuality: number;
759
759
  frameRange: import("./frame-range").FrameRange | null;
760
760
  everyNthFrame: number;
@@ -767,7 +767,7 @@ export declare const RenderInternals: {
767
767
  scale: number;
768
768
  port: number | null;
769
769
  cancelSignal: import("./make-cancel-signal").CancelSignal | undefined;
770
- composition: Omit<import("remotion").VideoConfig, "defaultProps" | "props">;
770
+ composition: Omit<import("remotion").VideoConfig, "props" | "defaultProps">;
771
771
  indent: boolean;
772
772
  server: import("./prepare-server").RemotionServer | undefined;
773
773
  muted: boolean;
@@ -990,4 +990,5 @@ export declare const RenderInternals: {
990
990
  matroskaH265Aac: string;
991
991
  opusWebm: string;
992
992
  };
993
+ printUsefulErrorMessage: (err: Error, logLevel: "verbose" | "info" | "warn" | "error", indent: boolean) => void;
993
994
  };
package/dist/index.js CHANGED
@@ -116,6 +116,7 @@ const make_file_executable_1 = require("./compositor/make-file-executable");
116
116
  const ensure_browser_2 = require("./ensure-browser");
117
117
  const example_videos_1 = require("./example-videos");
118
118
  const audio_codec_1 = require("./options/audio-codec");
119
+ const print_useful_error_message_1 = require("./print-useful-error-message");
119
120
  const render_has_audio_1 = require("./render-has-audio");
120
121
  const to_megabytes_1 = require("./to-megabytes");
121
122
  const validate_puppeteer_timeout_1 = require("./validate-puppeteer-timeout");
@@ -208,6 +209,7 @@ exports.RenderInternals = {
208
209
  toMegabytes: to_megabytes_1.toMegabytes,
209
210
  internalEnsureBrowser: ensure_browser_2.internalEnsureBrowser,
210
211
  exampleVideos: example_videos_1.exampleVideos,
212
+ printUsefulErrorMessage: print_useful_error_message_1.printUsefulErrorMessage,
211
213
  };
212
214
  // Warn of potential performance issues with Apple Silicon (M1 chip under Rosetta)
213
215
  (0, check_version_requirements_1.checkRuntimeVersion)('info', false);
@@ -1,19 +1,19 @@
1
1
  export declare const validOpenGlRenderers: readonly ["swangle", "angle", "egl", "swiftshader", "vulkan", "angle-egl"];
2
2
  export type OpenGlRenderer = (typeof validOpenGlRenderers)[number];
3
3
  export declare const DEFAULT_OPENGL_RENDERER: OpenGlRenderer | null;
4
- export declare const getChromiumOpenGlRenderer: () => "angle" | "swangle" | "egl" | "swiftshader" | "vulkan" | "angle-egl" | null;
4
+ export declare const getChromiumOpenGlRenderer: () => "swangle" | "angle" | "egl" | "swiftshader" | "vulkan" | "angle-egl" | null;
5
5
  export declare const setChromiumOpenGlRenderer: (renderer: OpenGlRenderer) => void;
6
6
  export declare const glOption: {
7
7
  cliFlag: "gl";
8
8
  docLink: string;
9
9
  name: string;
10
- type: "angle" | "swangle" | "egl" | "swiftshader" | "vulkan" | "angle-egl" | null;
10
+ type: "swangle" | "angle" | "egl" | "swiftshader" | "vulkan" | "angle-egl" | null;
11
11
  ssrName: string;
12
12
  description: () => import("react/jsx-runtime").JSX.Element;
13
13
  getValue: ({ commandLine }: {
14
14
  commandLine: Record<string, unknown>;
15
15
  }) => {
16
- value: "angle" | "swangle" | "egl" | "swiftshader" | "vulkan" | "angle-egl";
16
+ value: "swangle" | "angle" | "egl" | "swiftshader" | "vulkan" | "angle-egl";
17
17
  source: string;
18
18
  } | {
19
19
  value: null;
@@ -245,19 +245,19 @@ export declare const allOptions: {
245
245
  cliFlag: "gl";
246
246
  docLink: string;
247
247
  name: string;
248
- type: "angle" | "swangle" | "egl" | "swiftshader" | "vulkan" | "angle-egl" | null;
248
+ type: "swangle" | "angle" | "egl" | "swiftshader" | "vulkan" | "angle-egl" | null;
249
249
  ssrName: string;
250
250
  description: () => import("react/jsx-runtime").JSX.Element;
251
251
  getValue: ({ commandLine }: {
252
252
  commandLine: Record<string, unknown>;
253
253
  }) => {
254
- value: "angle" | "swangle" | "egl" | "swiftshader" | "vulkan" | "angle-egl";
254
+ value: "swangle" | "angle" | "egl" | "swiftshader" | "vulkan" | "angle-egl";
255
255
  source: string;
256
256
  } | {
257
257
  value: null;
258
258
  source: string;
259
259
  };
260
- setConfig: (value: "angle" | "swangle" | "egl" | "swiftshader" | "vulkan" | "angle-egl" | null) => void;
260
+ setConfig: (value: "swangle" | "angle" | "egl" | "swiftshader" | "vulkan" | "angle-egl" | null) => void;
261
261
  };
262
262
  enableLambdaInsights: {
263
263
  name: string;
@@ -12,6 +12,7 @@ const download_map_1 = require("./assets/download-map");
12
12
  const get_bundle_url_from_serve_url_1 = require("./get-bundle-url-from-serve-url");
13
13
  const is_serve_url_1 = require("./is-serve-url");
14
14
  const logger_1 = require("./logger");
15
+ const normalize_serve_url_1 = require("./normalize-serve-url");
15
16
  const serve_static_1 = require("./serve-static");
16
17
  const symbolicate_stacktrace_1 = require("./symbolicate-stacktrace");
17
18
  const wait_for_symbolication_error_to_be_done_1 = require("./wait-for-symbolication-error-to-be-done");
@@ -30,16 +31,17 @@ const prepareServer = async ({ webpackConfigOrServeUrl, port, remotionRoot, conc
30
31
  binariesDirectory,
31
32
  forceIPv4,
32
33
  });
34
+ const normalized = (0, normalize_serve_url_1.normalizeServeUrl)(webpackConfigOrServeUrl);
33
35
  let remoteSourceMap = null;
34
- (0, symbolicate_stacktrace_1.getSourceMapFromRemoteUrl)((0, get_bundle_url_from_serve_url_1.getBundleMapUrlFromServeUrl)(webpackConfigOrServeUrl))
36
+ (0, symbolicate_stacktrace_1.getSourceMapFromRemoteUrl)((0, get_bundle_url_from_serve_url_1.getBundleMapUrlFromServeUrl)(normalized))
35
37
  .then((s) => {
36
38
  remoteSourceMap = s;
37
39
  })
38
40
  .catch((err) => {
39
- logger_1.Log.verbose({ indent, logLevel }, 'Could not fetch sourcemap for ', webpackConfigOrServeUrl, err);
41
+ logger_1.Log.verbose({ indent, logLevel }, 'Could not fetch sourcemap for ', normalized, err);
40
42
  });
41
43
  return Promise.resolve({
42
- serveUrl: webpackConfigOrServeUrl,
44
+ serveUrl: normalized,
43
45
  closeServer: () => {
44
46
  (0, download_map_1.cleanDownloadMap)(downloadMap);
45
47
  remoteSourceMap === null || remoteSourceMap === void 0 ? void 0 : remoteSourceMap.destroy();
@@ -77,5 +77,9 @@ const printUsefulErrorMessage = (err, logLevel, indent) => {
77
77
  logger_1.Log.info({ indent, logLevel }, '💡 This error might happen if using Cloud Run with credentials that have a newline at the end or are otherwise badly encoded.');
78
78
  logger_1.Log.info({ indent, logLevel }, ' https://github.com/remotion-dev/remotion/issues/3864');
79
79
  }
80
+ if (err.message.includes('Failed to fetch')) {
81
+ logger_1.Log.info({ indent, logLevel }, '💡 On Lambda, one reason this could happen is that Chrome is rejecting an asset to be loaded when it is running low on disk space.');
82
+ logger_1.Log.info({ indent, logLevel }, 'Try increasing the disk size of your Lambda function.');
83
+ }
80
84
  };
81
85
  exports.printUsefulErrorMessage = printUsefulErrorMessage;
@@ -455,7 +455,14 @@ const internalRenderMediaRaw = ({ proResProfile, x264Preset, crf, composition, s
455
455
  }, 2000);
456
456
  stitcherFfmpeg.on('close', res);
457
457
  });
458
- stitcherFfmpeg.kill();
458
+ // An exception can happen here:
459
+ // https://discord.com/channels/809501355504959528/817306238811111454/1273184655348072468
460
+ try {
461
+ stitcherFfmpeg.kill();
462
+ }
463
+ catch (e) {
464
+ // Ignore
465
+ }
459
466
  return promise.then(() => {
460
467
  reject(err);
461
468
  });
@@ -83,7 +83,7 @@ const waitForReady = ({ page, timeoutInMilliseconds, frame, indent, logLevel, })
83
83
  timeoutInMilliseconds: 5000,
84
84
  })
85
85
  .then((res) => {
86
- reject(new Error(`Timeout exceeded rendering the component${frame ? ' at frame ' + frame : ''}. ${res.value ? `Open delayRender() handles: ${res.value}` : ''}`));
86
+ reject(new Error(`Timeout (${timeoutInMilliseconds}ms) exceeded rendering the component${frame ? ' at frame ' + frame : ' initially'}. ${res.value ? `Open delayRender() handles: ${res.value}` : ''}`));
87
87
  })
88
88
  .catch((newErr) => {
89
89
  logger_1.Log.warn({ indent, logLevel }, 'Tried to get delayRender() handles for timeout, but could not do so because of', newErr);
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.199",
6
+ "version": "4.0.200",
7
7
  "description": "Render Remotion videos using Node.js or Bun",
8
8
  "main": "dist/index.js",
9
9
  "types": "dist/index.d.ts",
@@ -18,8 +18,8 @@
18
18
  "extract-zip": "2.0.1",
19
19
  "source-map": "^0.8.0-beta.0",
20
20
  "ws": "8.17.1",
21
- "remotion": "4.0.199",
22
- "@remotion/streaming": "4.0.199"
21
+ "@remotion/streaming": "4.0.200",
22
+ "remotion": "4.0.200"
23
23
  },
24
24
  "peerDependencies": {
25
25
  "react": ">=16.8.0",
@@ -34,13 +34,13 @@
34
34
  "@types/ws": "8.5.10"
35
35
  },
36
36
  "optionalDependencies": {
37
- "@remotion/compositor-linux-arm64-gnu": "4.0.199",
38
- "@remotion/compositor-darwin-arm64": "4.0.199",
39
- "@remotion/compositor-darwin-x64": "4.0.199",
40
- "@remotion/compositor-linux-x64-gnu": "4.0.199",
41
- "@remotion/compositor-linux-x64-musl": "4.0.199",
42
- "@remotion/compositor-win32-x64-msvc": "4.0.199",
43
- "@remotion/compositor-linux-arm64-musl": "4.0.199"
37
+ "@remotion/compositor-linux-arm64-gnu": "4.0.200",
38
+ "@remotion/compositor-darwin-arm64": "4.0.200",
39
+ "@remotion/compositor-linux-x64-gnu": "4.0.200",
40
+ "@remotion/compositor-darwin-x64": "4.0.200",
41
+ "@remotion/compositor-linux-x64-musl": "4.0.200",
42
+ "@remotion/compositor-linux-arm64-musl": "4.0.200",
43
+ "@remotion/compositor-win32-x64-msvc": "4.0.200"
44
44
  },
45
45
  "keywords": [
46
46
  "remotion",