@remotion/renderer 4.0.0-alpha13 → 4.0.0-alpha16

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 (103) hide show
  1. package/dist/assets/download-and-map-assets-to-file.d.ts +6 -4
  2. package/dist/assets/download-and-map-assets-to-file.js +30 -6
  3. package/dist/assets/download-file.d.ts +2 -2
  4. package/dist/assets/download-map.d.ts +3 -3
  5. package/dist/assets/ffmpeg-volume-expression.d.ts +2 -2
  6. package/dist/assets/get-audio-channels.d.ts +1 -0
  7. package/dist/assets/get-audio-channels.js +10 -5
  8. package/dist/assets/read-file.js +1 -1
  9. package/dist/assets/types.d.ts +4 -4
  10. package/dist/audio-codec.d.ts +2 -2
  11. package/dist/browser/Browser.d.ts +9 -9
  12. package/dist/browser/Browser.js +26 -32
  13. package/dist/browser/BrowserFetcher.d.ts +1 -1
  14. package/dist/browser/BrowserPage.d.ts +11 -2
  15. package/dist/browser/BrowserPage.js +47 -12
  16. package/dist/browser/BrowserRunner.js +19 -2
  17. package/dist/browser/ConsoleMessage.d.ts +1 -1
  18. package/dist/browser/DOMWorld.js +8 -8
  19. package/dist/browser/EvalTypes.d.ts +7 -7
  20. package/dist/browser/FrameManager.js +11 -11
  21. package/dist/browser/JSHandle.js +14 -14
  22. package/dist/browser/LaunchOptions.d.ts +1 -1
  23. package/dist/browser/Launcher.js +0 -1
  24. package/dist/browser/LifecycleWatcher.d.ts +1 -1
  25. package/dist/browser/NetworkEventManager.d.ts +4 -4
  26. package/dist/browser/NodeWebSocketTransport.js +16 -16
  27. package/dist/browser/Product.d.ts +1 -1
  28. package/dist/browser/Target.d.ts +2 -1
  29. package/dist/browser/Target.js +8 -2
  30. package/dist/browser/devtools-types.d.ts +10 -10
  31. package/dist/browser/mitt/index.d.ts +6 -6
  32. package/dist/browser/revisions.d.ts +1 -1
  33. package/dist/browser/should-log-message.d.ts +24 -0
  34. package/dist/browser/should-log-message.js +72 -0
  35. package/dist/browser-executable.d.ts +1 -1
  36. package/dist/browser-log.d.ts +1 -1
  37. package/dist/browser.d.ts +1 -1
  38. package/dist/chalk/index.d.ts +4 -4
  39. package/dist/codec-supports-media.d.ts +1 -1
  40. package/dist/codec.d.ts +2 -2
  41. package/dist/combine-videos.d.ts +1 -1
  42. package/dist/compositor/compose.d.ts +11 -2
  43. package/dist/compositor/compose.js +15 -4
  44. package/dist/compositor/compositor.d.ts +1 -1
  45. package/dist/compositor/compositor.js +19 -7
  46. package/dist/compositor/payloads.d.ts +5 -5
  47. package/dist/crf.d.ts +1 -1
  48. package/dist/error-handling/symbolicate-error.js +4 -2
  49. package/dist/ffmpeg-override.d.ts +1 -1
  50. package/dist/file-extensions.d.ts +1 -1
  51. package/dist/frame-range.d.ts +1 -1
  52. package/dist/get-browser-instance.d.ts +6 -1
  53. package/dist/get-browser-instance.js +9 -4
  54. package/dist/get-compositions.d.ts +18 -11
  55. package/dist/get-compositions.js +66 -49
  56. package/dist/get-frame-padded-index.d.ts +1 -1
  57. package/dist/image-format.d.ts +3 -3
  58. package/dist/index.d.ts +106 -16
  59. package/dist/index.js +25 -13
  60. package/dist/jpeg-quality.d.ts +1 -0
  61. package/dist/jpeg-quality.js +2 -1
  62. package/dist/log-level.d.ts +1 -1
  63. package/dist/logger.d.ts +5 -3
  64. package/dist/logger.js +12 -5
  65. package/dist/make-cancel-signal.d.ts +2 -2
  66. package/dist/merge-audio-track.d.ts +1 -1
  67. package/dist/mime-types.js +1 -1
  68. package/dist/offthread-video-server.d.ts +36 -4
  69. package/dist/offthread-video-server.js +48 -4
  70. package/dist/open-browser.d.ts +19 -10
  71. package/dist/open-browser.js +34 -21
  72. package/dist/options/option.d.ts +1 -1
  73. package/dist/parse-browser-error-stack.d.ts +1 -1
  74. package/dist/perf.d.ts +1 -1
  75. package/dist/pixel-format.d.ts +1 -1
  76. package/dist/prepare-server.d.ts +20 -8
  77. package/dist/prepare-server.js +52 -8
  78. package/dist/preprocess-audio-track.d.ts +2 -2
  79. package/dist/prespawn-ffmpeg.d.ts +1 -1
  80. package/dist/prespawn-ffmpeg.js +7 -7
  81. package/dist/prores-profile.d.ts +1 -1
  82. package/dist/puppeteer-screenshot.js +1 -2
  83. package/dist/render-frames.d.ts +32 -11
  84. package/dist/render-frames.js +112 -77
  85. package/dist/render-media.d.ts +50 -21
  86. package/dist/render-media.js +249 -197
  87. package/dist/render-still.d.ts +33 -18
  88. package/dist/render-still.js +71 -43
  89. package/dist/replace-browser.d.ts +1 -1
  90. package/dist/select-composition.d.ts +19 -11
  91. package/dist/select-composition.js +79 -42
  92. package/dist/serve-static.d.ts +2 -3
  93. package/dist/serve-static.js +2 -4
  94. package/dist/set-props-and-env.d.ts +1 -1
  95. package/dist/stitch-frames-to-video.d.ts +32 -10
  96. package/dist/stitch-frames-to-video.js +121 -99
  97. package/dist/stringify-ffmpeg-filter.d.ts +2 -2
  98. package/dist/symbolicate-stacktrace.d.ts +16 -3
  99. package/dist/symbolicate-stacktrace.js +49 -24
  100. package/dist/truthy.d.ts +1 -1
  101. package/dist/types.d.ts +2 -2
  102. package/dist/validate-opengl-renderer.d.ts +1 -1
  103. package/package.json +11 -11
@@ -3,15 +3,15 @@ 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.renderFrames = void 0;
6
+ exports.renderFrames = exports.internalRenderFrames = void 0;
7
7
  const node_fs_1 = __importDefault(require("node:fs"));
8
8
  const node_path_1 = __importDefault(require("node:path"));
9
9
  const perf_hooks_1 = require("perf_hooks");
10
10
  const remotion_1 = require("remotion");
11
11
  const download_and_map_assets_to_file_1 = require("./assets/download-and-map-assets-to-file");
12
- const download_map_1 = require("./assets/download-map");
13
12
  const browser_1 = require("./browser");
14
13
  const is_target_closed_err_1 = require("./browser/is-target-closed-err");
14
+ const TimeoutSettings_1 = require("./browser/TimeoutSettings");
15
15
  const compress_assets_1 = require("./compress-assets");
16
16
  const cycle_browser_tabs_1 = require("./cycle-browser-tabs");
17
17
  const handle_javascript_exception_1 = require("./error-handling/handle-javascript-exception");
@@ -20,7 +20,6 @@ const get_concurrency_1 = require("./get-concurrency");
20
20
  const get_duration_from_frame_range_1 = require("./get-duration-from-frame-range");
21
21
  const get_frame_padded_index_1 = require("./get-frame-padded-index");
22
22
  const get_frame_to_render_1 = require("./get-frame-to-render");
23
- const image_format_1 = require("./image-format");
24
23
  const jpeg_quality_1 = require("./jpeg-quality");
25
24
  const make_cancel_signal_1 = require("./make-cancel-signal");
26
25
  const open_browser_1 = require("./open-browser");
@@ -35,7 +34,7 @@ const take_frame_and_compose_1 = require("./take-frame-and-compose");
35
34
  const truthy_1 = require("./truthy");
36
35
  const validate_scale_1 = require("./validate-scale");
37
36
  const MAX_RETRIES_PER_FRAME = 1;
38
- const innerRenderFrames = ({ onFrameUpdate, outputDir, onStart, inputProps, jpegQuality, quality, imageFormat = image_format_1.DEFAULT_VIDEO_IMAGE_FORMAT, frameRange, onError, envVariables, onBrowserLog, onFrameBuffer, onDownload, pagesArray, serveUrl, composition, timeoutInMilliseconds, scale = 1, actualConcurrency, everyNthFrame = 1, proxyPort, cancelSignal, downloadMap, muted, makeBrowser, browserReplacer, compositor, }) => {
37
+ const innerRenderFrames = async ({ onFrameUpdate, outputDir, onStart, inputProps, jpegQuality, imageFormat, frameRange, onError, envVariables, onBrowserLog, onFrameBuffer, onDownload, pagesArray, serveUrl, composition, timeoutInMilliseconds, scale, actualConcurrency, everyNthFrame, proxyPort, cancelSignal, downloadMap, muted, makeBrowser, browserReplacer, compositor, sourcemapContext, }) => {
39
38
  if (outputDir) {
40
39
  if (!node_fs_1.default.existsSync(outputDir)) {
41
40
  node_fs_1.default.mkdirSync(outputDir, {
@@ -43,20 +42,17 @@ const innerRenderFrames = ({ onFrameUpdate, outputDir, onStart, inputProps, jpeg
43
42
  });
44
43
  }
45
44
  }
46
- if (quality) {
47
- throw new Error(`The "quality" option has been renamed. Use "jpegQuality" instead.`);
48
- }
49
45
  const downloadPromises = [];
50
- const realFrameRange = (0, get_frame_to_render_1.getRealFrameRange)(composition.durationInFrames, frameRange !== null && frameRange !== void 0 ? frameRange : null);
46
+ const realFrameRange = (0, get_frame_to_render_1.getRealFrameRange)(composition.durationInFrames, frameRange);
51
47
  const framesToRender = (0, get_duration_from_frame_range_1.getFramesToRender)(realFrameRange, everyNthFrame);
52
48
  const lastFrame = framesToRender[framesToRender.length - 1];
53
- const makePage = async () => {
54
- const page = await browserReplacer.getBrowser().newPage();
49
+ const makePage = async (context) => {
50
+ const page = await browserReplacer.getBrowser().newPage(context);
55
51
  pagesArray.push(page);
56
52
  await page.setViewport({
57
53
  width: composition.width,
58
54
  height: composition.height,
59
- deviceScaleFactor: scale !== null && scale !== void 0 ? scale : 1,
55
+ deviceScaleFactor: scale,
60
56
  });
61
57
  const logCallback = (log) => {
62
58
  onBrowserLog === null || onBrowserLog === void 0 ? void 0 : onBrowserLog({
@@ -84,7 +80,7 @@ const innerRenderFrames = ({ onFrameUpdate, outputDir, onStart, inputProps, jpeg
84
80
  await (0, puppeteer_evaluate_1.puppeteerEvaluateWithCatch)({
85
81
  // eslint-disable-next-line max-params
86
82
  pageFunction: (id, defaultProps, durationInFrames, fps, height, width) => {
87
- window.setBundleMode({
83
+ window.remotion_setBundleMode({
88
84
  type: 'composition',
89
85
  compositionName: id,
90
86
  compositionDefaultProps: defaultProps,
@@ -108,8 +104,10 @@ const innerRenderFrames = ({ onFrameUpdate, outputDir, onStart, inputProps, jpeg
108
104
  page.off('console', logCallback);
109
105
  return page;
110
106
  };
111
- const getPool = async () => {
112
- const pages = new Array(actualConcurrency).fill(true).map(() => makePage());
107
+ const getPool = async (context) => {
108
+ const pages = new Array(actualConcurrency)
109
+ .fill(true)
110
+ .map(() => makePage(context));
113
111
  const puppeteerPages = await Promise.all(pages);
114
112
  const pool = new pool_1.Pool(puppeteerPages);
115
113
  return pool;
@@ -123,8 +121,8 @@ const innerRenderFrames = ({ onFrameUpdate, outputDir, onStart, inputProps, jpeg
123
121
  countType,
124
122
  });
125
123
  let framesRendered = 0;
126
- const poolPromise = getPool();
127
- onStart({
124
+ const poolPromise = getPool(sourcemapContext);
125
+ onStart === null || onStart === void 0 ? void 0 : onStart({
128
126
  frameCount: framesToRender.length,
129
127
  });
130
128
  const assets = new Array(framesToRender.length).fill(undefined);
@@ -196,7 +194,7 @@ const innerRenderFrames = ({ onFrameUpdate, outputDir, onStart, inputProps, jpeg
196
194
  });
197
195
  });
198
196
  framesRendered++;
199
- onFrameUpdate(framesRendered, frame, perf_hooks_1.performance.now() - startTime);
197
+ onFrameUpdate === null || onFrameUpdate === void 0 ? void 0 : onFrameUpdate(framesRendered, frame, perf_hooks_1.performance.now() - startTime);
200
198
  cleanupPageError();
201
199
  freePage.off('error', errorCallbackOnFrame);
202
200
  pool.release(freePage);
@@ -247,7 +245,7 @@ const innerRenderFrames = ({ onFrameUpdate, outputDir, onStart, inputProps, jpeg
247
245
  await browserReplacer.replaceBrowser(makeBrowser, async () => {
248
246
  const pages = new Array(actualConcurrency)
249
247
  .fill(true)
250
- .map(() => makePage());
248
+ .map(() => makePage(sourcemapContext));
251
249
  const puppeteerPages = await Promise.all(pages);
252
250
  const pool = await poolPromise;
253
251
  for (const newPage of puppeteerPages) {
@@ -281,22 +279,11 @@ const innerRenderFrames = ({ onFrameUpdate, outputDir, onStart, inputProps, jpeg
281
279
  };
282
280
  return returnValue;
283
281
  });
284
- return happyPath
285
- .then(() => {
286
- return Promise.all(downloadPromises);
287
- })
288
- .then(() => happyPath);
282
+ const result = await happyPath;
283
+ await Promise.all(downloadPromises);
284
+ return result;
289
285
  };
290
- /**
291
- * @description Renders a series of images using Puppeteer and computes information for mixing audio.
292
- * @see [Documentation](https://www.remotion.dev/docs/renderer/render-frames)
293
- */
294
- const renderFrames = (options) => {
295
- var _a, _b, _c;
296
- const { composition, concurrency } = options;
297
- if (!composition) {
298
- throw new Error('No `composition` option has been specified for renderFrames()');
299
- }
286
+ const internalRenderFrames = ({ browserExecutable, cancelSignal, chromiumOptions, composition, concurrency, dumpBrowserLogs, envVariables, everyNthFrame, frameRange, imageFormat, indent, inputProps, jpegQuality, muted, onBrowserLog, onDownload, onFrameBuffer, onFrameUpdate, onStart, outputDir, port, puppeteerInstance, scale, server, timeoutInMilliseconds, verbose, webpackBundleOrServeUrl, }) => {
300
287
  remotion_1.Internals.validateDimension(composition.height, 'height', 'in the `config` object passed to `renderFrames()`');
301
288
  remotion_1.Internals.validateDimension(composition.width, 'width', 'in the `config` object passed to `renderFrames()`');
302
289
  remotion_1.Internals.validateFps(composition.fps, 'in the `config` object of `renderFrames()`', false);
@@ -305,63 +292,49 @@ const renderFrames = (options) => {
305
292
  component: 'in the `config` object passed to `renderFrames()`',
306
293
  allowFloats: false,
307
294
  });
308
- if (options.jpegQuality !== undefined && options.imageFormat !== 'jpeg') {
309
- throw new Error("You can only pass the `jpegQuality` option if `imageFormat` is 'jpeg'.");
310
- }
311
- (0, jpeg_quality_1.validateJpegQuality)(options.jpegQuality);
312
- (0, validate_scale_1.validateScale)(options.scale);
313
- const makeBrowser = () => {
314
- var _a, _b;
315
- return (0, open_browser_1.openBrowser)(browser_1.DEFAULT_BROWSER, {
316
- shouldDumpIo: options.dumpBrowserLogs,
317
- browserExecutable: options.browserExecutable,
318
- chromiumOptions: options.chromiumOptions,
319
- forceDeviceScaleFactor: (_a = options.scale) !== null && _a !== void 0 ? _a : 1,
320
- indent: (_b = options.indent) !== null && _b !== void 0 ? _b : false,
321
- });
322
- };
323
- const browserInstance = (_a = options.puppeteerInstance) !== null && _a !== void 0 ? _a : makeBrowser();
324
- const downloadMap = (_b = options.downloadMap) !== null && _b !== void 0 ? _b : (0, download_map_1.makeDownloadMap)();
325
- const onDownload = (_c = options.onDownload) !== null && _c !== void 0 ? _c : (() => () => undefined);
326
- const actualConcurrency = (0, get_concurrency_1.getActualConcurrency)(concurrency !== null && concurrency !== void 0 ? concurrency : null);
295
+ (0, jpeg_quality_1.validateJpegQuality)(jpegQuality);
296
+ (0, validate_scale_1.validateScale)(scale);
297
+ const makeBrowser = () => (0, open_browser_1.internalOpenBrowser)({
298
+ browser: browser_1.DEFAULT_BROWSER,
299
+ shouldDumpIo: dumpBrowserLogs,
300
+ browserExecutable,
301
+ chromiumOptions,
302
+ forceDeviceScaleFactor: scale,
303
+ indent,
304
+ viewport: null,
305
+ });
306
+ const browserInstance = puppeteerInstance !== null && puppeteerInstance !== void 0 ? puppeteerInstance : makeBrowser();
307
+ const actualConcurrency = (0, get_concurrency_1.getActualConcurrency)(concurrency);
327
308
  const openedPages = [];
328
309
  return new Promise((resolve, reject) => {
329
- var _a, _b, _c;
330
310
  const cleanup = [];
331
- if (!options.downloadMap) {
332
- cleanup.push(() => (0, download_map_1.cleanDownloadMap)(downloadMap));
333
- }
334
311
  const onError = (err) => {
335
312
  reject(err);
336
313
  };
337
314
  Promise.race([
338
315
  new Promise((_, rej) => {
339
- var _a;
340
- (_a = options.cancelSignal) === null || _a === void 0 ? void 0 : _a.call(options, () => {
316
+ cancelSignal === null || cancelSignal === void 0 ? void 0 : cancelSignal(() => {
341
317
  rej(new Error(make_cancel_signal_1.cancelErrorMessages.renderFrames));
342
318
  });
343
319
  }),
344
320
  Promise.all([
345
- (0, prepare_server_1.prepareServer)({
346
- webpackConfigOrServeUrl: options.serveUrl,
347
- onDownload,
348
- onError,
349
- port: (_a = options.port) !== null && _a !== void 0 ? _a : null,
350
- downloadMap,
321
+ (0, prepare_server_1.makeOrReuseServer)(server, {
322
+ webpackConfigOrServeUrl: webpackBundleOrServeUrl,
323
+ port,
351
324
  remotionRoot: (0, find_closest_package_json_1.findRemotionRoot)(),
352
325
  concurrency: actualConcurrency,
353
- verbose: (_b = options.verbose) !== null && _b !== void 0 ? _b : false,
354
- indent: (_c = options.indent) !== null && _c !== void 0 ? _c : false,
326
+ verbose,
327
+ indent,
328
+ }, {
329
+ onDownload,
330
+ onError,
355
331
  }),
356
332
  browserInstance,
357
- ]).then(([{ serveUrl, closeServer, offthreadPort, compositor }, puppeteerInstance,]) => {
358
- const browserReplacer = (0, replace_browser_1.handleBrowserCrash)(puppeteerInstance);
359
- const { stopCycling } = (0, cycle_browser_tabs_1.cycleBrowserTabs)(browserReplacer, actualConcurrency);
360
- cleanup.push(stopCycling);
361
- cleanup.push(() => closeServer(false));
333
+ ]).then(([{ server: { serveUrl, offthreadPort, compositor, sourceMap, downloadMap, }, cleanupServer, }, pInstance,]) => {
334
+ const browserReplacer = (0, replace_browser_1.handleBrowserCrash)(pInstance);
335
+ cleanup.push((0, cycle_browser_tabs_1.cycleBrowserTabs)(browserReplacer, actualConcurrency).stopCycling);
336
+ cleanup.push(() => cleanupServer(false));
362
337
  return innerRenderFrames({
363
- ...options,
364
- puppeteerInstance,
365
338
  onError,
366
339
  pagesArray: openedPages,
367
340
  serveUrl,
@@ -369,10 +342,26 @@ const renderFrames = (options) => {
369
342
  actualConcurrency,
370
343
  onDownload,
371
344
  proxyPort: offthreadPort,
372
- downloadMap,
373
345
  makeBrowser,
374
346
  browserReplacer,
375
347
  compositor,
348
+ sourcemapContext: sourceMap,
349
+ downloadMap,
350
+ cancelSignal,
351
+ envVariables,
352
+ everyNthFrame,
353
+ frameRange,
354
+ imageFormat,
355
+ inputProps,
356
+ jpegQuality,
357
+ muted,
358
+ onBrowserLog,
359
+ onFrameBuffer,
360
+ onFrameUpdate,
361
+ onStart,
362
+ outputDir,
363
+ scale,
364
+ timeoutInMilliseconds,
376
365
  });
377
366
  }),
378
367
  ])
@@ -384,7 +373,7 @@ const renderFrames = (options) => {
384
373
  // If browser instance was passed in, we close all the pages
385
374
  // we opened.
386
375
  // If new browser was opened, then closing the browser as a cleanup.
387
- if (options.puppeteerInstance) {
376
+ if (puppeteerInstance) {
388
377
  Promise.all(openedPages.map((p) => p.close())).catch((err) => {
389
378
  if ((0, is_target_closed_err_1.isTargetClosedErr)(err)) {
390
379
  return;
@@ -394,8 +383,8 @@ const renderFrames = (options) => {
394
383
  }
395
384
  else {
396
385
  Promise.resolve(browserInstance)
397
- .then((puppeteerInstance) => {
398
- return puppeteerInstance.close(true);
386
+ .then((instance) => {
387
+ return instance.close(true);
399
388
  })
400
389
  .catch((err) => {
401
390
  if (!(err === null || err === void 0 ? void 0 : err.message.includes('Target closed'))) {
@@ -410,4 +399,50 @@ const renderFrames = (options) => {
410
399
  });
411
400
  });
412
401
  };
402
+ exports.internalRenderFrames = internalRenderFrames;
403
+ /**
404
+ * @description Renders a series of images using Puppeteer and computes information for mixing audio.
405
+ * @see [Documentation](https://www.remotion.dev/docs/renderer/render-frames)
406
+ */
407
+ const renderFrames = (options) => {
408
+ const { composition, inputProps, onFrameUpdate, onStart, outputDir, serveUrl, browserExecutable, cancelSignal, chromiumOptions, concurrency, dumpBrowserLogs, envVariables, everyNthFrame, frameRange, imageFormat, jpegQuality, muted, onBrowserLog, onDownload, onFrameBuffer, port, puppeteerInstance, scale, timeoutInMilliseconds, verbose, quality, } = options;
409
+ if (!composition) {
410
+ throw new Error('No `composition` option has been specified for renderFrames()');
411
+ }
412
+ if (typeof jpegQuality !== 'undefined' && imageFormat !== 'jpeg') {
413
+ throw new Error("You can only pass the `quality` option if `imageFormat` is 'jpeg'.");
414
+ }
415
+ if (quality) {
416
+ console.warn('Passing `quality()` to `renderStill` is deprecated. Use `jpegQuality` instead.');
417
+ }
418
+ return (0, exports.internalRenderFrames)({
419
+ browserExecutable: browserExecutable !== null && browserExecutable !== void 0 ? browserExecutable : null,
420
+ cancelSignal,
421
+ chromiumOptions: chromiumOptions !== null && chromiumOptions !== void 0 ? chromiumOptions : {},
422
+ composition,
423
+ concurrency: concurrency !== null && concurrency !== void 0 ? concurrency : null,
424
+ dumpBrowserLogs: dumpBrowserLogs !== null && dumpBrowserLogs !== void 0 ? dumpBrowserLogs : false,
425
+ envVariables: envVariables !== null && envVariables !== void 0 ? envVariables : {},
426
+ everyNthFrame: everyNthFrame !== null && everyNthFrame !== void 0 ? everyNthFrame : 1,
427
+ frameRange: frameRange !== null && frameRange !== void 0 ? frameRange : null,
428
+ imageFormat: imageFormat !== null && imageFormat !== void 0 ? imageFormat : 'jpeg',
429
+ indent: false,
430
+ jpegQuality: jpegQuality !== null && jpegQuality !== void 0 ? jpegQuality : jpeg_quality_1.DEFAULT_JPEG_QUALITY,
431
+ onDownload: onDownload !== null && onDownload !== void 0 ? onDownload : null,
432
+ inputProps,
433
+ puppeteerInstance,
434
+ muted: muted !== null && muted !== void 0 ? muted : false,
435
+ onBrowserLog: onBrowserLog !== null && onBrowserLog !== void 0 ? onBrowserLog : null,
436
+ onFrameBuffer: onFrameBuffer !== null && onFrameBuffer !== void 0 ? onFrameBuffer : null,
437
+ onFrameUpdate,
438
+ onStart,
439
+ outputDir,
440
+ port: port !== null && port !== void 0 ? port : null,
441
+ scale: scale !== null && scale !== void 0 ? scale : 1,
442
+ verbose: verbose !== null && verbose !== void 0 ? verbose : false,
443
+ timeoutInMilliseconds: timeoutInMilliseconds !== null && timeoutInMilliseconds !== void 0 ? timeoutInMilliseconds : TimeoutSettings_1.DEFAULT_TIMEOUT,
444
+ webpackBundleOrServeUrl: serveUrl,
445
+ server: undefined,
446
+ });
447
+ };
413
448
  exports.renderFrames = renderFrames;
@@ -1,7 +1,6 @@
1
1
  /// <reference types="node" />
2
2
  import type { AnySmallCompMetadata } from 'remotion';
3
3
  import type { RenderMediaOnDownload } from './assets/download-and-map-assets-to-file';
4
- import type { DownloadMap } from './assets/download-map';
5
4
  import type { AudioCodec } from './audio-codec';
6
5
  import type { BrowserExecutable } from './browser-executable';
7
6
  import type { BrowserLog } from './browser-log';
@@ -13,14 +12,15 @@ import type { VideoImageFormat } from './image-format';
13
12
  import type { CancelSignal } from './make-cancel-signal';
14
13
  import type { ChromiumOptions } from './open-browser';
15
14
  import type { PixelFormat } from './pixel-format';
15
+ import type { RemotionServer } from './prepare-server';
16
16
  import type { ProResProfile } from './prores-profile';
17
17
  import type { OnStartData } from './types';
18
- export declare type StitchingState = 'encoding' | 'muxing';
19
- export declare type SlowFrame = {
18
+ export type StitchingState = 'encoding' | 'muxing';
19
+ export type SlowFrame = {
20
20
  frame: number;
21
21
  time: number;
22
22
  };
23
- export declare type RenderMediaOnProgress = (progress: {
23
+ export type RenderMediaOnProgress = (progress: {
24
24
  renderedFrames: number;
25
25
  encodedFrames: number;
26
26
  encodedDoneIn: number | null;
@@ -28,7 +28,49 @@ export declare type RenderMediaOnProgress = (progress: {
28
28
  progress: number;
29
29
  stitchStage: StitchingState;
30
30
  }) => void;
31
- export declare type RenderMediaOptions = {
31
+ export type InternalRenderMediaOptions = {
32
+ outputLocation: string | null;
33
+ codec: Codec;
34
+ composition: AnySmallCompMetadata;
35
+ inputProps: Record<string, unknown>;
36
+ crf: number | null;
37
+ imageFormat: VideoImageFormat;
38
+ pixelFormat: PixelFormat;
39
+ envVariables: Record<string, string>;
40
+ jpegQuality: number;
41
+ frameRange: FrameRange | null;
42
+ everyNthFrame: number;
43
+ numberOfGifLoops: number | null;
44
+ puppeteerInstance: HeadlessBrowser | undefined;
45
+ overwrite: boolean;
46
+ onProgress: RenderMediaOnProgress;
47
+ onDownload: RenderMediaOnDownload;
48
+ proResProfile: ProResProfile | undefined;
49
+ dumpBrowserLogs: boolean;
50
+ onBrowserLog: ((log: BrowserLog) => void) | null;
51
+ onStart: (data: OnStartData) => void;
52
+ timeoutInMilliseconds: number;
53
+ chromiumOptions: ChromiumOptions;
54
+ scale: number;
55
+ port: number | null;
56
+ cancelSignal: CancelSignal | undefined;
57
+ browserExecutable: BrowserExecutable | null;
58
+ verbose: boolean;
59
+ onCtrlCExit: (fn: () => void) => void;
60
+ indent: boolean;
61
+ server: RemotionServer | undefined;
62
+ preferLossless: boolean;
63
+ muted: boolean;
64
+ enforceAudioTrack: boolean;
65
+ ffmpegOverride: FfmpegOverrideFn | undefined;
66
+ audioBitrate: string | null;
67
+ videoBitrate: string | null;
68
+ disallowParallelEncoding: boolean;
69
+ audioCodec: AudioCodec | null;
70
+ serveUrl: string;
71
+ concurrency: number | string | null;
72
+ };
73
+ export type RenderMediaOptions = {
32
74
  outputLocation?: string | null;
33
75
  codec: Codec;
34
76
  composition: AnySmallCompMetadata;
@@ -60,20 +102,6 @@ export declare type RenderMediaOptions = {
60
102
  cancelSignal?: CancelSignal;
61
103
  browserExecutable?: BrowserExecutable;
62
104
  verbose?: boolean;
63
- internal?: {
64
- /**
65
- * @deprecated Only for Remotion internal usage
66
- */
67
- downloadMap?: DownloadMap;
68
- /**
69
- * @deprecated Only for Remotion internal usage
70
- */
71
- onCtrlCExit?: (fn: () => void) => void;
72
- /**
73
- * @deprecated Only for Remotion internal usage
74
- */
75
- indent?: boolean;
76
- };
77
105
  preferLossless?: boolean;
78
106
  muted?: boolean;
79
107
  enforceAudioTrack?: boolean;
@@ -85,14 +113,15 @@ export declare type RenderMediaOptions = {
85
113
  serveUrl: string;
86
114
  concurrency?: number | string | null;
87
115
  };
88
- declare type RenderMediaResult = {
116
+ type RenderMediaResult = {
89
117
  buffer: Buffer | null;
90
118
  slowestFrames: SlowFrame[];
91
119
  };
120
+ export declare const internalRenderMedia: ({ proResProfile, crf, composition, inputProps, pixelFormat, codec, envVariables, frameRange, puppeteerInstance, outputLocation, onProgress, overwrite, onDownload, dumpBrowserLogs, onBrowserLog, onStart, timeoutInMilliseconds, chromiumOptions, scale, browserExecutable, port, cancelSignal, muted, enforceAudioTrack, ffmpegOverride, audioBitrate, videoBitrate, audioCodec, concurrency, disallowParallelEncoding, everyNthFrame, imageFormat: provisionalImageFormat, indent, jpegQuality, numberOfGifLoops, onCtrlCExit, preferLossless, serveUrl, server: reusedServer, verbose, }: InternalRenderMediaOptions) => Promise<RenderMediaResult>;
92
121
  /**
93
122
  *
94
123
  * @description Render a video from a composition
95
124
  * @see [Documentation](https://www.remotion.dev/docs/renderer/render-media)
96
125
  */
97
- export declare const renderMedia: ({ proResProfile, crf, composition, inputProps, pixelFormat, codec, envVariables, frameRange, puppeteerInstance, outputLocation, onProgress, overwrite, onDownload, dumpBrowserLogs, onBrowserLog, onStart, timeoutInMilliseconds, chromiumOptions, scale, browserExecutable, port, cancelSignal, muted, enforceAudioTrack, ffmpegOverride, audioBitrate, videoBitrate, audioCodec, ...options }: RenderMediaOptions) => Promise<RenderMediaResult>;
126
+ export declare const renderMedia: ({ proResProfile, crf, composition, inputProps, pixelFormat, codec, envVariables, frameRange, puppeteerInstance, outputLocation, onProgress, overwrite, onDownload, dumpBrowserLogs, onBrowserLog, onStart, timeoutInMilliseconds, chromiumOptions, scale, browserExecutable, port, cancelSignal, muted, enforceAudioTrack, ffmpegOverride, audioBitrate, videoBitrate, audioCodec, jpegQuality, concurrency, serveUrl, disallowParallelEncoding, everyNthFrame, imageFormat, numberOfGifLoops, preferLossless, verbose, quality, }: RenderMediaOptions) => Promise<RenderMediaResult>;
98
127
  export {};