@remotion/renderer 4.0.0-alpha13 → 4.0.0-alpha14

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 (149) 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/get-video-stream-duration.d.ts +9 -0
  9. package/dist/assets/get-video-stream-duration.js +71 -0
  10. package/dist/assets/read-file.js +1 -1
  11. package/dist/assets/types.d.ts +4 -4
  12. package/dist/audio-codec.d.ts +2 -2
  13. package/dist/browser/Browser.d.ts +9 -9
  14. package/dist/browser/Browser.js +26 -32
  15. package/dist/browser/BrowserFetcher.d.ts +1 -1
  16. package/dist/browser/BrowserPage.d.ts +11 -2
  17. package/dist/browser/BrowserPage.js +47 -12
  18. package/dist/browser/BrowserRunner.js +19 -2
  19. package/dist/browser/ConsoleMessage.d.ts +1 -1
  20. package/dist/browser/DOMWorld.js +8 -8
  21. package/dist/browser/EvalTypes.d.ts +7 -7
  22. package/dist/browser/FrameManager.js +11 -11
  23. package/dist/browser/JSHandle.js +14 -14
  24. package/dist/browser/LaunchOptions.d.ts +1 -1
  25. package/dist/browser/Launcher.js +0 -1
  26. package/dist/browser/LifecycleWatcher.d.ts +1 -1
  27. package/dist/browser/NetworkEventManager.d.ts +4 -4
  28. package/dist/browser/NodeWebSocketTransport.js +16 -16
  29. package/dist/browser/Product.d.ts +1 -1
  30. package/dist/browser/Target.d.ts +2 -1
  31. package/dist/browser/Target.js +8 -2
  32. package/dist/browser/devtools-types.d.ts +10 -10
  33. package/dist/browser/mitt/index.d.ts +6 -6
  34. package/dist/browser/revisions.d.ts +1 -1
  35. package/dist/browser/should-log-message.d.ts +24 -0
  36. package/dist/browser/should-log-message.js +72 -0
  37. package/dist/browser-executable.d.ts +1 -1
  38. package/dist/browser-log.d.ts +1 -1
  39. package/dist/browser.d.ts +1 -1
  40. package/dist/calculate-sar-dar-pixels.d.ts +9 -0
  41. package/dist/calculate-sar-dar-pixels.js +19 -0
  42. package/dist/chalk/index.d.ts +4 -4
  43. package/dist/codec-supports-media.d.ts +1 -1
  44. package/dist/codec.d.ts +2 -2
  45. package/dist/combine-videos.d.ts +1 -1
  46. package/dist/compositor/compose.d.ts +11 -2
  47. package/dist/compositor/compose.js +15 -4
  48. package/dist/compositor/compositor.d.ts +1 -1
  49. package/dist/compositor/compositor.js +1 -1
  50. package/dist/compositor/payloads.d.ts +5 -5
  51. package/dist/create-ffmpeg-complex-filter.d.ts +4 -1
  52. package/dist/crf.d.ts +1 -1
  53. package/dist/determine-resize-params.d.ts +1 -0
  54. package/dist/determine-resize-params.js +10 -0
  55. package/dist/determine-vcodec-ffmpeg-flags.d.ts +2 -0
  56. package/dist/determine-vcodec-ffmpeg-flags.js +13 -0
  57. package/dist/ensure-ffmpeg.d.ts +18 -0
  58. package/dist/ensure-ffmpeg.js +58 -0
  59. package/dist/ensure-presentation-timestamp.d.ts +15 -0
  60. package/dist/ensure-presentation-timestamp.js +88 -0
  61. package/dist/error-handling/symbolicate-error.js +4 -2
  62. package/dist/extract-frame-from-video.d.ts +16 -0
  63. package/dist/extract-frame-from-video.js +191 -0
  64. package/dist/ffmpeg-executable.d.ts +1 -0
  65. package/dist/ffmpeg-executable.js +2 -0
  66. package/dist/ffmpeg-flags.d.ts +31 -0
  67. package/dist/ffmpeg-flags.js +245 -0
  68. package/dist/ffmpeg-override.d.ts +1 -1
  69. package/dist/file-extensions.d.ts +1 -1
  70. package/dist/frame-range.d.ts +1 -1
  71. package/dist/frame-to-ffmpeg-timestamp.d.ts +1 -0
  72. package/dist/frame-to-ffmpeg-timestamp.js +8 -0
  73. package/dist/get-browser-instance.d.ts +6 -1
  74. package/dist/get-browser-instance.js +9 -4
  75. package/dist/get-can-extract-frames-fast.d.ts +14 -0
  76. package/dist/get-can-extract-frames-fast.js +71 -0
  77. package/dist/get-compositions.d.ts +18 -11
  78. package/dist/get-compositions.js +66 -49
  79. package/dist/get-frame-of-video-slow.d.ts +17 -0
  80. package/dist/get-frame-of-video-slow.js +72 -0
  81. package/dist/get-frame-padded-index.d.ts +1 -1
  82. package/dist/get-video-info.d.ts +8 -0
  83. package/dist/get-video-info.js +59 -0
  84. package/dist/image-format.d.ts +3 -3
  85. package/dist/index.d.ts +110 -21
  86. package/dist/index.js +25 -13
  87. package/dist/is-beyond-last-frame.d.ts +3 -0
  88. package/dist/is-beyond-last-frame.js +12 -0
  89. package/dist/jpeg-quality.d.ts +1 -0
  90. package/dist/jpeg-quality.js +2 -1
  91. package/dist/last-frame-from-video-cache.d.ts +17 -0
  92. package/dist/last-frame-from-video-cache.js +55 -0
  93. package/dist/legacy-webpack-config.d.ts +9 -0
  94. package/dist/legacy-webpack-config.js +13 -0
  95. package/dist/log-level.d.ts +1 -1
  96. package/dist/logger.d.ts +4 -2
  97. package/dist/logger.js +12 -5
  98. package/dist/make-cancel-signal.d.ts +2 -2
  99. package/dist/merge-audio-track.d.ts +1 -1
  100. package/dist/mime-types.js +1 -1
  101. package/dist/offthread-video-server.d.ts +36 -4
  102. package/dist/offthread-video-server.js +48 -4
  103. package/dist/open-browser.d.ts +19 -10
  104. package/dist/open-browser.js +34 -21
  105. package/dist/options/option.d.ts +1 -1
  106. package/dist/parse-browser-error-stack.d.ts +1 -1
  107. package/dist/perf.d.ts +1 -1
  108. package/dist/pixel-format.d.ts +1 -1
  109. package/dist/prepare-server.d.ts +20 -8
  110. package/dist/prepare-server.js +52 -8
  111. package/dist/preprocess-audio-track.d.ts +2 -2
  112. package/dist/prespawn-ffmpeg.d.ts +1 -1
  113. package/dist/prespawn-ffmpeg.js +7 -7
  114. package/dist/prores-profile.d.ts +1 -1
  115. package/dist/provide-screenshot.d.ts +0 -1
  116. package/dist/puppeteer-screenshot.d.ts +0 -1
  117. package/dist/puppeteer-screenshot.js +1 -2
  118. package/dist/quality.d.ts +1 -0
  119. package/dist/quality.js +21 -0
  120. package/dist/render-frames.d.ts +32 -11
  121. package/dist/render-frames.js +112 -77
  122. package/dist/render-media.d.ts +50 -21
  123. package/dist/render-media.js +249 -197
  124. package/dist/render-still.d.ts +33 -18
  125. package/dist/render-still.js +71 -43
  126. package/dist/replace-browser.d.ts +1 -1
  127. package/dist/screenshot-dom-element.d.ts +0 -1
  128. package/dist/screenshot-task.d.ts +0 -1
  129. package/dist/select-composition.d.ts +19 -11
  130. package/dist/select-composition.js +79 -42
  131. package/dist/serve-static.d.ts +2 -3
  132. package/dist/serve-static.js +2 -4
  133. package/dist/set-props-and-env.d.ts +1 -1
  134. package/dist/stitch-frames-to-video.d.ts +32 -11
  135. package/dist/stitch-frames-to-video.js +121 -99
  136. package/dist/stringify-ffmpeg-filter.d.ts +2 -2
  137. package/dist/symbolicate-stacktrace.d.ts +16 -3
  138. package/dist/symbolicate-stacktrace.js +49 -24
  139. package/dist/take-frame-and-compose.d.ts +0 -1
  140. package/dist/truthy.d.ts +1 -1
  141. package/dist/try-to-extract-frame-of-video-fast.d.ts +12 -0
  142. package/dist/try-to-extract-frame-of-video-fast.js +55 -0
  143. package/dist/types.d.ts +2 -2
  144. package/dist/validate-ffmpeg.d.ts +7 -0
  145. package/dist/validate-ffmpeg.js +77 -0
  146. package/dist/validate-opengl-renderer.d.ts +1 -1
  147. package/dist/warn-about-ffmpeg-version.d.ts +5 -0
  148. package/dist/warn-about-ffmpeg-version.js +37 -0
  149. package/package.json +11 -11
@@ -1,19 +1,31 @@
1
1
  import type { RenderMediaOnDownload } from './assets/download-and-map-assets-to-file';
2
2
  import type { DownloadMap } from './assets/download-map';
3
3
  import type { Compositor } from './compositor/compositor';
4
- export declare const prepareServer: ({ onDownload, onError, webpackConfigOrServeUrl, port, downloadMap, remotionRoot, concurrency, verbose, indent, }: {
4
+ import type { OffthreadVideoServerEmitter } from './offthread-video-server';
5
+ import type { AnySourceMapConsumer } from './symbolicate-stacktrace';
6
+ export type RemotionServer = {
7
+ serveUrl: string;
8
+ closeServer: (force: boolean) => Promise<unknown>;
9
+ offthreadPort: number;
10
+ compositor: Compositor;
11
+ sourceMap: AnySourceMapConsumer | null;
12
+ events: OffthreadVideoServerEmitter;
13
+ downloadMap: DownloadMap;
14
+ };
15
+ type PrepareServerOptions = {
5
16
  webpackConfigOrServeUrl: string;
6
- onDownload: RenderMediaOnDownload;
7
- onError: (err: Error) => void;
8
17
  port: number | null;
9
- downloadMap: DownloadMap;
10
18
  remotionRoot: string;
11
19
  concurrency: number;
12
20
  verbose: boolean;
13
21
  indent: boolean;
22
+ };
23
+ export declare const prepareServer: ({ webpackConfigOrServeUrl, port, remotionRoot, concurrency, verbose, indent, }: PrepareServerOptions) => Promise<RemotionServer>;
24
+ export declare const makeOrReuseServer: (server: RemotionServer | undefined, config: PrepareServerOptions, { onDownload, onError, }: {
25
+ onError: (err: Error) => void;
26
+ onDownload: RenderMediaOnDownload | null;
14
27
  }) => Promise<{
15
- serveUrl: string;
16
- closeServer: (force: boolean) => Promise<unknown>;
17
- offthreadPort: number;
18
- compositor: Compositor;
28
+ server: RemotionServer;
29
+ cleanupServer: (force: boolean) => Promise<unknown>;
19
30
  }>;
31
+ export {};
@@ -3,17 +3,22 @@ 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.prepareServer = void 0;
6
+ exports.makeOrReuseServer = exports.prepareServer = void 0;
7
7
  const node_fs_1 = require("node:fs");
8
8
  const node_path_1 = __importDefault(require("node:path"));
9
+ const remotion_1 = require("remotion");
10
+ const download_and_map_assets_to_file_1 = require("./assets/download-and-map-assets-to-file");
11
+ const download_map_1 = require("./assets/download-map");
9
12
  const is_serve_url_1 = require("./is-serve-url");
13
+ const logger_1 = require("./logger");
10
14
  const serve_static_1 = require("./serve-static");
15
+ const symbolicate_stacktrace_1 = require("./symbolicate-stacktrace");
11
16
  const wait_for_symbolication_error_to_be_done_1 = require("./wait-for-symbolication-error-to-be-done");
12
- const prepareServer = async ({ onDownload, onError, webpackConfigOrServeUrl, port, downloadMap, remotionRoot, concurrency, verbose, indent, }) => {
17
+ const prepareServer = async ({ webpackConfigOrServeUrl, port, remotionRoot, concurrency, verbose, indent, }) => {
18
+ const downloadMap = (0, download_map_1.makeDownloadMap)();
19
+ logger_1.Log.verboseAdvanced({ indent, logLevel: verbose ? 'verbose' : 'info' }, 'Created directory for temporary files', downloadMap.assetDir);
13
20
  if ((0, is_serve_url_1.isServeUrl)(webpackConfigOrServeUrl)) {
14
- const { port: offthreadPort, close: closeProxy, compositor: comp, } = await (0, serve_static_1.serveStatic)(null, {
15
- onDownload,
16
- onError,
21
+ const { port: offthreadPort, close: closeProxy, compositor: comp, events, } = await (0, serve_static_1.serveStatic)(null, {
17
22
  port,
18
23
  downloadMap,
19
24
  remotionRoot,
@@ -24,10 +29,14 @@ const prepareServer = async ({ onDownload, onError, webpackConfigOrServeUrl, por
24
29
  return Promise.resolve({
25
30
  serveUrl: webpackConfigOrServeUrl,
26
31
  closeServer: () => {
32
+ (0, download_map_1.cleanDownloadMap)(downloadMap);
27
33
  return closeProxy();
28
34
  },
29
35
  offthreadPort,
30
36
  compositor: comp,
37
+ sourceMap: null,
38
+ events,
39
+ downloadMap,
31
40
  });
32
41
  }
33
42
  // Check if the path has a `index.html` file
@@ -36,9 +45,8 @@ const prepareServer = async ({ onDownload, onError, webpackConfigOrServeUrl, por
36
45
  if (!exists) {
37
46
  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?`);
38
47
  }
39
- const { port: serverPort, close, compositor, } = await (0, serve_static_1.serveStatic)(webpackConfigOrServeUrl, {
40
- onDownload,
41
- onError,
48
+ const sourceMap = (0, symbolicate_stacktrace_1.getSourceMapFromLocalFile)(node_path_1.default.join(webpackConfigOrServeUrl, remotion_1.Internals.bundleName));
49
+ const { port: serverPort, close, compositor, events: newEvents, } = await (0, serve_static_1.serveStatic)(webpackConfigOrServeUrl, {
42
50
  port,
43
51
  downloadMap,
44
52
  remotionRoot,
@@ -48,6 +56,8 @@ const prepareServer = async ({ onDownload, onError, webpackConfigOrServeUrl, por
48
56
  });
49
57
  return Promise.resolve({
50
58
  closeServer: async (force) => {
59
+ sourceMap.then((s) => s === null || s === void 0 ? void 0 : s.destroy());
60
+ (0, download_map_1.cleanDownloadMap)(downloadMap);
51
61
  if (!force) {
52
62
  await (0, wait_for_symbolication_error_to_be_done_1.waitForSymbolicationToBeDone)();
53
63
  }
@@ -56,6 +66,40 @@ const prepareServer = async ({ onDownload, onError, webpackConfigOrServeUrl, por
56
66
  serveUrl: `http://localhost:${serverPort}`,
57
67
  offthreadPort: serverPort,
58
68
  compositor,
69
+ sourceMap: await sourceMap,
70
+ events: newEvents,
71
+ downloadMap,
59
72
  });
60
73
  };
61
74
  exports.prepareServer = prepareServer;
75
+ const makeOrReuseServer = async (server, config, { onDownload, onError, }) => {
76
+ if (server) {
77
+ const cleanupOnDownload = (0, download_and_map_assets_to_file_1.attachDownloadListenerToEmitter)(server.events, onDownload);
78
+ const cleanupError = server.events.addEventListener('error', ({ detail: { error } }) => {
79
+ onError(error);
80
+ });
81
+ return {
82
+ server,
83
+ cleanupServer: () => {
84
+ cleanupOnDownload();
85
+ cleanupError();
86
+ return Promise.resolve();
87
+ },
88
+ };
89
+ }
90
+ const newServer = await (0, exports.prepareServer)(config);
91
+ const cleanupOnDownloadNew = (0, download_and_map_assets_to_file_1.attachDownloadListenerToEmitter)(newServer.events, onDownload);
92
+ const cleanupErrorNew = newServer.events.addEventListener('error', ({ detail: { error } }) => {
93
+ onError(error);
94
+ });
95
+ return {
96
+ server: newServer,
97
+ cleanupServer: (force) => {
98
+ newServer.closeServer(force);
99
+ cleanupOnDownloadNew();
100
+ cleanupErrorNew();
101
+ return Promise.resolve();
102
+ },
103
+ };
104
+ };
105
+ exports.makeOrReuseServer = makeOrReuseServer;
@@ -1,14 +1,14 @@
1
1
  import type { DownloadMap } from './assets/download-map';
2
2
  import type { MediaAsset } from './assets/types';
3
3
  import type { ProcessedTrack } from './stringify-ffmpeg-filter';
4
- declare type Options = {
4
+ type Options = {
5
5
  outName: string;
6
6
  asset: MediaAsset;
7
7
  expectedFrames: number;
8
8
  fps: number;
9
9
  downloadMap: DownloadMap;
10
10
  };
11
- export declare type PreprocessedAudioTrack = {
11
+ export type PreprocessedAudioTrack = {
12
12
  outName: string;
13
13
  filter: ProcessedTrack;
14
14
  };
@@ -4,7 +4,7 @@ import type { VideoImageFormat } from './image-format';
4
4
  import type { CancelSignal } from './make-cancel-signal';
5
5
  import type { PixelFormat } from './pixel-format';
6
6
  import type { ProResProfile } from './prores-profile';
7
- declare type PreStitcherOptions = {
7
+ type PreStitcherOptions = {
8
8
  fps: number;
9
9
  width: number;
10
10
  height: number;
@@ -33,29 +33,29 @@ const prespawnFfmpeg = (options) => {
33
33
  logger_1.Log.verboseAdvanced({
34
34
  indent: options.indent,
35
35
  logLevel: options.verbose ? 'verbose' : 'info',
36
- tag: 'encoder',
36
+ tag: 'prespawnFfmpeg()',
37
37
  }, 'encoder', encoderName);
38
38
  logger_1.Log.verboseAdvanced({
39
39
  indent: options.indent,
40
40
  logLevel: options.verbose ? 'verbose' : 'info',
41
- tag: 'encoder',
41
+ tag: 'prespawnFfmpeg()',
42
42
  }, 'pixelFormat', pixelFormat);
43
43
  if (supportsCrf) {
44
44
  logger_1.Log.verboseAdvanced({
45
45
  indent: options.indent,
46
46
  logLevel: options.verbose ? 'verbose' : 'info',
47
- tag: 'encoder',
47
+ tag: 'prespawnFfmpeg()',
48
48
  }, 'pixelFormat', options.crf);
49
49
  }
50
50
  logger_1.Log.verboseAdvanced({
51
51
  indent: options.indent,
52
52
  logLevel: options.verbose ? 'verbose' : 'info',
53
- tag: 'encoder',
53
+ tag: 'prespawnFfmpeg()',
54
54
  }, 'codec', codec);
55
55
  logger_1.Log.verboseAdvanced({
56
56
  indent: options.indent,
57
57
  logLevel: options.verbose ? 'verbose' : 'info',
58
- tag: 'encoder',
58
+ tag: 'prespawnFfmpeg()',
59
59
  }, 'proResProfileName', proResProfileName);
60
60
  (0, pixel_format_1.validateSelectedPixelFormatAndCodecCombination)(pixelFormat, codec);
61
61
  const ffmpegArgs = [
@@ -87,12 +87,12 @@ const prespawnFfmpeg = (options) => {
87
87
  logger_1.Log.verboseAdvanced({
88
88
  indent: options.indent,
89
89
  logLevel: options.verbose ? 'verbose' : 'info',
90
- tag: 'encoder',
90
+ tag: 'prespawnFfmpeg()',
91
91
  }, 'Generated FFMPEG command:');
92
92
  logger_1.Log.verboseAdvanced({
93
93
  indent: options.indent,
94
94
  logLevel: options.verbose ? 'verbose' : 'info',
95
- tag: 'encoder',
95
+ tag: 'prespawnFfmpeg()',
96
96
  }, ffmpegArgs.join(' '));
97
97
  const ffmpegString = ffmpegArgs.flat(2).filter(Boolean);
98
98
  const finalFfmpegString = options.ffmpegOverride
@@ -1,6 +1,6 @@
1
1
  import type { Codec } from './codec';
2
2
  export declare const proResProfileOptions: readonly ["4444-xq", "4444", "hq", "standard", "light", "proxy"];
3
- export declare type ProResProfile = typeof proResProfileOptions[number];
3
+ export type ProResProfile = typeof proResProfileOptions[number];
4
4
  export declare const validateSelectedCodecAndProResCombination: ({ codec, proResProfile, }: {
5
5
  codec: Codec;
6
6
  proResProfile: ProResProfile | undefined;
@@ -1,4 +1,3 @@
1
- /// <reference types="node" />
2
1
  import type { ClipRegion } from 'remotion';
3
2
  import type { Page } from './browser/BrowserPage';
4
3
  import type { StillImageFormat } from './image-format';
@@ -1,4 +1,3 @@
1
- /// <reference types="node" />
2
1
  import type { ClipRegion } from 'remotion';
3
2
  import type { Page } from './browser/BrowserPage';
4
3
  import type { StillImageFormat } from './image-format';
@@ -28,7 +28,6 @@ const assert = __importStar(require("node:assert"));
28
28
  const screenshot_task_1 = require("./screenshot-task");
29
29
  const screenshot = (options) => {
30
30
  if (options.jpegQuality) {
31
- assert.ok(options.type === 'jpeg', `options.quality is unsupported for the ${options.type} screenshots`);
32
31
  assert.ok(typeof options.jpegQuality === 'number', 'Expected options.quality to be a number but found ' +
33
32
  typeof options.jpegQuality);
34
33
  assert.ok(Number.isInteger(options.jpegQuality), 'Expected options.quality to be an integer');
@@ -42,7 +41,7 @@ const screenshot = (options) => {
42
41
  width: options.width,
43
42
  omitBackground: options.omitBackground,
44
43
  path: options.path,
45
- jpegQuality: options.jpegQuality,
44
+ jpegQuality: options.type === 'jpeg' ? options.jpegQuality : undefined,
46
45
  clipRegion: options.clipRegion,
47
46
  }));
48
47
  };
@@ -0,0 +1 @@
1
+ export declare const validateQuality: (q: number | undefined) => void;
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.validateQuality = void 0;
4
+ const validateQuality = (q) => {
5
+ if (typeof q !== 'undefined' && typeof q !== 'number') {
6
+ throw new Error(`Quality option must be a number or undefined. Got ${typeof q} (${JSON.stringify(q)})`);
7
+ }
8
+ if (typeof q === 'undefined') {
9
+ return;
10
+ }
11
+ if (!Number.isFinite(q)) {
12
+ throw new RangeError(`Quality must be a finite number, but is ${q}`);
13
+ }
14
+ if (Number.isNaN(q)) {
15
+ throw new RangeError(`Quality is NaN, but must be a real number`);
16
+ }
17
+ if (q > 100 || q < 0) {
18
+ throw new RangeError('Quality option must be between 0 and 100.');
19
+ }
20
+ };
21
+ exports.validateQuality = validateQuality;
@@ -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 { BrowserExecutable } from './browser-executable';
6
5
  import type { BrowserLog } from './browser-log';
7
6
  import type { HeadlessBrowser } from './browser/Browser';
@@ -9,8 +8,38 @@ import type { FrameRange } from './frame-range';
9
8
  import type { VideoImageFormat } from './image-format';
10
9
  import type { CancelSignal } from './make-cancel-signal';
11
10
  import type { ChromiumOptions } from './open-browser';
11
+ import type { RemotionServer } from './prepare-server';
12
12
  import type { OnStartData, RenderFramesOutput } from './types';
13
- declare type RenderFramesOptions = {
13
+ export type InternalRenderFramesOptions = {
14
+ onStart: null | ((data: OnStartData) => void);
15
+ onFrameUpdate: null | ((framesRendered: number, frameIndex: number, timeToRenderInMilliseconds: number) => void);
16
+ outputDir: string | null;
17
+ inputProps: Record<string, unknown>;
18
+ envVariables: Record<string, string>;
19
+ imageFormat: VideoImageFormat;
20
+ jpegQuality: number;
21
+ frameRange: FrameRange | null;
22
+ everyNthFrame: number;
23
+ dumpBrowserLogs: boolean;
24
+ puppeteerInstance: HeadlessBrowser | undefined;
25
+ browserExecutable: BrowserExecutable | null;
26
+ onBrowserLog: null | ((log: BrowserLog) => void);
27
+ onFrameBuffer: null | ((buffer: Buffer, frame: number) => void);
28
+ onDownload: RenderMediaOnDownload | null;
29
+ timeoutInMilliseconds: number;
30
+ chromiumOptions: ChromiumOptions;
31
+ scale: number;
32
+ port: number | null;
33
+ cancelSignal: CancelSignal | undefined;
34
+ composition: AnySmallCompMetadata;
35
+ indent: boolean;
36
+ server: RemotionServer | undefined;
37
+ muted: boolean;
38
+ concurrency: number | string | null;
39
+ webpackBundleOrServeUrl: string;
40
+ verbose: boolean;
41
+ };
42
+ export type RenderFramesOptions = {
14
43
  onStart: (data: OnStartData) => void;
15
44
  onFrameUpdate: (framesRendered: number, frameIndex: number, timeToRenderInMilliseconds: number) => void;
16
45
  outputDir: string | null;
@@ -36,22 +65,14 @@ declare type RenderFramesOptions = {
36
65
  port?: number | null;
37
66
  cancelSignal?: CancelSignal;
38
67
  composition: AnySmallCompMetadata;
39
- /**
40
- * @deprecated Only for Remotion internal usage
41
- */
42
- downloadMap?: DownloadMap;
43
- /**
44
- * @deprecated Only for Remotion internal usage
45
- */
46
- indent?: boolean;
47
68
  muted?: boolean;
48
69
  concurrency?: number | string | null;
49
70
  serveUrl: string;
50
71
  verbose?: boolean;
51
72
  };
73
+ export declare 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, }: InternalRenderFramesOptions) => Promise<RenderFramesOutput>;
52
74
  /**
53
75
  * @description Renders a series of images using Puppeteer and computes information for mixing audio.
54
76
  * @see [Documentation](https://www.remotion.dev/docs/renderer/render-frames)
55
77
  */
56
78
  export declare const renderFrames: (options: RenderFramesOptions) => Promise<RenderFramesOutput>;
57
- export {};