@remotion/renderer 4.0.179 → 4.0.180

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.
@@ -41,7 +41,7 @@ const validate_1 = require("./validate");
41
41
  const validate_scale_1 = require("./validate-scale");
42
42
  const wrap_with_error_handling_1 = require("./wrap-with-error-handling");
43
43
  const MAX_RETRIES_PER_FRAME = 1;
44
- const innerRenderFrames = async ({ onFrameUpdate, outputDir, onStart, serializedInputPropsWithCustomSchema, serializedResolvedPropsWithCustomSchema, jpegQuality, imageFormat, frameRange, onError, envVariables, onBrowserLog, onFrameBuffer, onDownload, pagesArray, serveUrl, composition, timeoutInMilliseconds, scale, actualConcurrency: concurrency, everyNthFrame, proxyPort, cancelSignal, downloadMap, muted, makeBrowser, browserReplacer, compositor, sourceMapGetter, logLevel, indent, parallelEncodingEnabled, compositionStart, forSeamlessAacConcatenation, onArtifact, }) => {
44
+ const innerRenderFrames = async ({ onFrameUpdate, outputDir, onStart, serializedInputPropsWithCustomSchema, serializedResolvedPropsWithCustomSchema, jpegQuality, imageFormat, frameRange, onError, envVariables, onBrowserLog, onFrameBuffer, onDownload, pagesArray, serveUrl, composition, timeoutInMilliseconds, scale, resolvedConcurrency, everyNthFrame, proxyPort, cancelSignal, downloadMap, muted, makeBrowser, browserReplacer, compositor, sourceMapGetter, logLevel, indent, parallelEncodingEnabled, compositionStart, forSeamlessAacConcatenation, onArtifact, binariesDirectory, }) => {
45
45
  if (outputDir) {
46
46
  if (!node_fs_1.default.existsSync(outputDir)) {
47
47
  node_fs_1.default.mkdirSync(outputDir, {
@@ -124,11 +124,11 @@ const innerRenderFrames = async ({ onFrameUpdate, outputDir, onStart, serialized
124
124
  page.off('console', logCallback);
125
125
  return page;
126
126
  };
127
- const concurrencyOrFramesToRender = Math.min(framesToRender.length, concurrency);
127
+ const concurrencyOrFramesToRender = Math.min(framesToRender.length, resolvedConcurrency);
128
128
  const getPool = async (context) => {
129
129
  const pages = new Array(concurrencyOrFramesToRender)
130
130
  .fill(true)
131
- .map((_, i) => makePage(context, realFrameRange[i]));
131
+ .map((_, i) => makePage(context, framesToRender[i]));
132
132
  const puppeteerPages = await Promise.all(pages);
133
133
  const pool = new pool_1.Pool(puppeteerPages);
134
134
  return pool;
@@ -146,6 +146,7 @@ const innerRenderFrames = async ({ onFrameUpdate, outputDir, onStart, serialized
146
146
  onStart === null || onStart === void 0 ? void 0 : onStart({
147
147
  frameCount: framesToRender.length,
148
148
  parallelEncoding: parallelEncodingEnabled,
149
+ resolvedConcurrency,
149
150
  });
150
151
  const assets = [];
151
152
  let stopped = false;
@@ -259,6 +260,9 @@ const innerRenderFrames = async ({ onFrameUpdate, outputDir, onStart, serialized
259
260
  downloadMap,
260
261
  indent,
261
262
  logLevel,
263
+ binariesDirectory,
264
+ cancelSignalForAudioAnalysis: cancelSignal,
265
+ shouldAnalyzeAudioImmediately: true,
262
266
  }).catch((err) => {
263
267
  const truncateWithEllipsis = renderAsset.src.substring(0, 1000) +
264
268
  (renderAsset.src.length > 1000 ? '...' : '');
@@ -431,7 +435,7 @@ const internalRenderFramesRaw = ({ browserExecutable, cancelSignal, chromiumOpti
431
435
  onBrowserDownload,
432
436
  });
433
437
  const browserInstance = puppeteerInstance !== null && puppeteerInstance !== void 0 ? puppeteerInstance : makeBrowser();
434
- const actualConcurrency = (0, get_concurrency_1.getActualConcurrency)(concurrency);
438
+ const resolvedConcurrency = (0, get_concurrency_1.resolveConcurrency)(concurrency);
435
439
  const openedPages = [];
436
440
  return new Promise((resolve, reject) => {
437
441
  const cleanup = [];
@@ -449,7 +453,7 @@ const internalRenderFramesRaw = ({ browserExecutable, cancelSignal, chromiumOpti
449
453
  webpackConfigOrServeUrl: webpackBundleOrServeUrl,
450
454
  port,
451
455
  remotionRoot: (0, find_closest_package_json_1.findRemotionRoot)(),
452
- concurrency: actualConcurrency,
456
+ concurrency: resolvedConcurrency,
453
457
  logLevel,
454
458
  indent,
455
459
  offthreadVideoCacheSizeInBytes,
@@ -463,7 +467,7 @@ const internalRenderFramesRaw = ({ browserExecutable, cancelSignal, chromiumOpti
463
467
  ]).then(([{ server: openedServer, cleanupServer }, pInstance]) => {
464
468
  const { serveUrl, offthreadPort, compositor, sourceMap, downloadMap } = openedServer;
465
469
  const browserReplacer = (0, replace_browser_1.handleBrowserCrash)(pInstance, logLevel, indent);
466
- const cycle = (0, cycle_browser_tabs_1.cycleBrowserTabs)(browserReplacer, actualConcurrency, logLevel, indent);
470
+ const cycle = (0, cycle_browser_tabs_1.cycleBrowserTabs)(browserReplacer, resolvedConcurrency, logLevel, indent);
467
471
  cleanup.push(() => {
468
472
  cycle.stopCycling();
469
473
  return Promise.resolve();
@@ -474,7 +478,7 @@ const internalRenderFramesRaw = ({ browserExecutable, cancelSignal, chromiumOpti
474
478
  pagesArray: openedPages,
475
479
  serveUrl,
476
480
  composition,
477
- actualConcurrency,
481
+ resolvedConcurrency,
478
482
  onDownload,
479
483
  proxyPort: offthreadPort,
480
484
  makeBrowser,
@@ -122,12 +122,12 @@ const internalRenderMediaRaw = ({ proResProfile, x264Preset, crf, composition, s
122
122
  logLevel,
123
123
  tag: 'renderMedia()',
124
124
  }, 'Free memory:', freeMemory, 'Estimated usage parallel encoding', estimatedUsage);
125
- const actualConcurrency = (0, get_concurrency_1.getActualConcurrency)(concurrency);
125
+ const resolvedConcurrency = (0, get_concurrency_1.resolveConcurrency)(concurrency);
126
126
  logger_1.Log.verbose({
127
127
  indent,
128
128
  logLevel,
129
129
  tag: 'renderMedia()',
130
- }, 'Using concurrency:', actualConcurrency);
130
+ }, 'Using concurrency:', resolvedConcurrency);
131
131
  logger_1.Log.verbose({
132
132
  indent,
133
133
  logLevel,
@@ -272,7 +272,7 @@ const internalRenderMediaRaw = ({ proResProfile, x264Preset, crf, composition, s
272
272
  Promise.resolve(createPrestitcherIfNecessary())
273
273
  .then(() => {
274
274
  return (0, prepare_server_1.makeOrReuseServer)(reusedServer, {
275
- concurrency: actualConcurrency,
275
+ concurrency: resolvedConcurrency,
276
276
  indent,
277
277
  port,
278
278
  remotionRoot: (0, find_closest_package_json_1.findRemotionRoot)(),
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.setPropsAndEnv = void 0;
4
4
  const version_1 = require("remotion/version");
5
5
  const TimeoutSettings_1 = require("./browser/TimeoutSettings");
6
+ const goto_page_or_throw_1 = require("./goto-page-or-throw");
6
7
  const logger_1 = require("./logger");
7
8
  const normalize_serve_url_1 = require("./normalize-serve-url");
8
9
  const puppeteer_evaluate_1 = require("./puppeteer-evaluate");
@@ -68,11 +69,6 @@ const innerSetPropsAndEnv = async ({ serializedInputPropsWithCustomSchema, envVa
68
69
  return false;
69
70
  };
70
71
  });
71
- const pageRes = await page.goto({ url: urlToVisit, timeout: actualTimeout });
72
- if (pageRes === null) {
73
- throw new Error(`Visited "${urlToVisit}" but got no response.`);
74
- }
75
- const status = pageRes.status();
76
72
  const retry = async () => {
77
73
  await new Promise((resolve) => {
78
74
  setTimeout(() => {
@@ -95,6 +91,15 @@ const innerSetPropsAndEnv = async ({ serializedInputPropsWithCustomSchema, envVa
95
91
  onServeUrlVisited,
96
92
  });
97
93
  };
94
+ const [pageRes, error] = await (0, goto_page_or_throw_1.gotoPageOrThrow)(page, urlToVisit, actualTimeout);
95
+ if (error !== null) {
96
+ if (error.message.includes('ECONNRESET') ||
97
+ error.message.includes('ERR_CONNECTION_TIMED_OUT')) {
98
+ return retry();
99
+ }
100
+ throw error;
101
+ }
102
+ const status = pageRes.status();
98
103
  // S3 in rare occasions returns a 500 or 503 error code for GET operations.
99
104
  // Usually it is fixed by retrying.
100
105
  if (status >= 500 && status <= 504 && retriesRemaining > 0) {
package/dist/types.d.ts CHANGED
@@ -6,4 +6,5 @@ export type RenderFramesOutput = {
6
6
  export type OnStartData = {
7
7
  frameCount: number;
8
8
  parallelEncoding: boolean;
9
+ resolvedConcurrency: number;
9
10
  };
@@ -1,5 +1,5 @@
1
1
  import type { AudioCodec } from './options/audio-codec';
2
- export declare const validateOutputFilename: <T extends "h264" | "h265" | "vp8" | "vp9" | "prores" | "aac" | "mp3" | "wav" | "h264-mkv" | "h264-ts" | "gif">({ codec, audioCodecSetting, extension, preferLossless, separateAudioTo, }: {
2
+ export declare const validateOutputFilename: <T extends "h264" | "h265" | "vp8" | "vp9" | "mp3" | "aac" | "wav" | "prores" | "h264-mkv" | "h264-ts" | "gif">({ codec, audioCodecSetting, extension, preferLossless, separateAudioTo, }: {
3
3
  codec: T;
4
4
  audioCodecSetting: AudioCodec | null;
5
5
  extension: string;
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.179",
6
+ "version": "4.0.180",
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,7 +18,7 @@
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.179"
21
+ "remotion": "4.0.180"
22
22
  },
23
23
  "peerDependencies": {
24
24
  "react": ">=16.8.0",
@@ -31,16 +31,16 @@
31
31
  "react": "18.3.1",
32
32
  "react-dom": "18.3.1",
33
33
  "@types/ws": "8.5.10",
34
- "@remotion/streaming": "4.0.179"
34
+ "@remotion/streaming": "4.0.180"
35
35
  },
36
36
  "optionalDependencies": {
37
- "@remotion/compositor-darwin-x64": "4.0.179",
38
- "@remotion/compositor-darwin-arm64": "4.0.179",
39
- "@remotion/compositor-linux-arm64-gnu": "4.0.179",
40
- "@remotion/compositor-linux-arm64-musl": "4.0.179",
41
- "@remotion/compositor-linux-x64-gnu": "4.0.179",
42
- "@remotion/compositor-linux-x64-musl": "4.0.179",
43
- "@remotion/compositor-win32-x64-msvc": "4.0.179"
37
+ "@remotion/compositor-darwin-arm64": "4.0.180",
38
+ "@remotion/compositor-linux-arm64-gnu": "4.0.180",
39
+ "@remotion/compositor-darwin-x64": "4.0.180",
40
+ "@remotion/compositor-linux-x64-gnu": "4.0.180",
41
+ "@remotion/compositor-win32-x64-msvc": "4.0.180",
42
+ "@remotion/compositor-linux-arm64-musl": "4.0.180",
43
+ "@remotion/compositor-linux-x64-musl": "4.0.180"
44
44
  },
45
45
  "keywords": [
46
46
  "remotion",