@remotion/renderer 4.0.262 → 4.0.264

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.
@@ -0,0 +1,20 @@
1
+ export declare const getOffthreadVideoThreads: () => number | null;
2
+ export declare const offthreadVideoThreadsOption: {
3
+ name: string;
4
+ cliFlag: "offthreadvideo-video-threads";
5
+ description: () => import("react/jsx-runtime").JSX.Element;
6
+ ssrName: "offthreadVideoThreads";
7
+ docLink: string;
8
+ type: number | null;
9
+ getValue: ({ commandLine }: {
10
+ commandLine: Record<string, unknown>;
11
+ }) => {
12
+ source: string;
13
+ value: number;
14
+ } | {
15
+ source: string;
16
+ value: null;
17
+ };
18
+ setConfig: (size: number | null) => void;
19
+ };
20
+ export declare const DEFAULT_RENDER_FRAMES_OFFTHREAD_VIDEO_THREADS = 3;
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DEFAULT_RENDER_FRAMES_OFFTHREAD_VIDEO_THREADS = exports.offthreadVideoThreadsOption = exports.getOffthreadVideoThreads = void 0;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ let value = null;
6
+ const getOffthreadVideoThreads = () => {
7
+ return value;
8
+ };
9
+ exports.getOffthreadVideoThreads = getOffthreadVideoThreads;
10
+ const cliFlag = 'offthreadvideo-video-threads';
11
+ exports.offthreadVideoThreadsOption = {
12
+ name: 'OffthreadVideo threads',
13
+ cliFlag,
14
+ description: () => ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: ["The number of threads that", (0, jsx_runtime_1.jsx)("a", { href: "https://remotion.dev/docs/offthreadvideo", children: (0, jsx_runtime_1.jsx)("code", { children: "<OffthreadVideo>" }) }), ' ', "can start to extract frames. frames. The default is", ' ', exports.DEFAULT_RENDER_FRAMES_OFFTHREAD_VIDEO_THREADS, ". Increase carefully, as too much threads may cause instability."] })),
15
+ ssrName: 'offthreadVideoThreads',
16
+ docLink: 'https://www.remotion.dev/docs/offthreadvideo',
17
+ type: 0,
18
+ getValue: ({ commandLine }) => {
19
+ if (commandLine[cliFlag] !== undefined) {
20
+ return {
21
+ source: 'cli',
22
+ value: commandLine[cliFlag],
23
+ };
24
+ }
25
+ if (value !== null) {
26
+ return {
27
+ source: 'config',
28
+ value,
29
+ };
30
+ }
31
+ return {
32
+ source: 'default',
33
+ value: null,
34
+ };
35
+ },
36
+ setConfig: (size) => {
37
+ value = size !== null && size !== void 0 ? size : null;
38
+ },
39
+ };
40
+ exports.DEFAULT_RENDER_FRAMES_OFFTHREAD_VIDEO_THREADS = 3;
@@ -18,6 +18,24 @@ export declare const optionsMap: {
18
18
  };
19
19
  setConfig: (size: number | null) => void;
20
20
  };
21
+ readonly offthreadVideoThreads: {
22
+ name: string;
23
+ cliFlag: "offthreadvideo-video-threads";
24
+ description: () => import("react/jsx-runtime").JSX.Element;
25
+ ssrName: "offthreadVideoThreads";
26
+ docLink: string;
27
+ type: number | null;
28
+ getValue: ({ commandLine }: {
29
+ commandLine: Record<string, unknown>;
30
+ }) => {
31
+ source: string;
32
+ value: number;
33
+ } | {
34
+ source: string;
35
+ value: null;
36
+ };
37
+ setConfig: (size: number | null) => void;
38
+ };
21
39
  readonly videoBitrate: {
22
40
  name: string;
23
41
  cliFlag: "video-bitrate";
@@ -398,6 +416,24 @@ export declare const optionsMap: {
398
416
  };
399
417
  setConfig: (size: number | null) => void;
400
418
  };
419
+ readonly offthreadVideoThreads: {
420
+ name: string;
421
+ cliFlag: "offthreadvideo-video-threads";
422
+ description: () => import("react/jsx-runtime").JSX.Element;
423
+ ssrName: "offthreadVideoThreads";
424
+ docLink: string;
425
+ type: number | null;
426
+ getValue: ({ commandLine }: {
427
+ commandLine: Record<string, unknown>;
428
+ }) => {
429
+ source: string;
430
+ value: number;
431
+ } | {
432
+ source: string;
433
+ value: null;
434
+ };
435
+ setConfig: (size: number | null) => void;
436
+ };
401
437
  readonly jpegQuality: {
402
438
  name: string;
403
439
  cliFlag: "jpeg-quality";
@@ -503,6 +539,24 @@ export declare const optionsMap: {
503
539
  };
504
540
  setConfig: (size: number | null) => void;
505
541
  };
542
+ readonly offthreadVideoThreads: {
543
+ name: string;
544
+ cliFlag: "offthreadvideo-video-threads";
545
+ description: () => import("react/jsx-runtime").JSX.Element;
546
+ ssrName: "offthreadVideoThreads";
547
+ docLink: string;
548
+ type: number | null;
549
+ getValue: ({ commandLine }: {
550
+ commandLine: Record<string, unknown>;
551
+ }) => {
552
+ source: string;
553
+ value: number;
554
+ } | {
555
+ source: string;
556
+ value: null;
557
+ };
558
+ setConfig: (size: number | null) => void;
559
+ };
506
560
  readonly logLevel: {
507
561
  cliFlag: "log";
508
562
  name: string;
@@ -593,6 +647,24 @@ export declare const optionsMap: {
593
647
  };
594
648
  setConfig: (size: number | null) => void;
595
649
  };
650
+ readonly offthreadVideoThreads: {
651
+ name: string;
652
+ cliFlag: "offthreadvideo-video-threads";
653
+ description: () => import("react/jsx-runtime").JSX.Element;
654
+ ssrName: "offthreadVideoThreads";
655
+ docLink: string;
656
+ type: number | null;
657
+ getValue: ({ commandLine }: {
658
+ commandLine: Record<string, unknown>;
659
+ }) => {
660
+ source: string;
661
+ value: number;
662
+ } | {
663
+ source: string;
664
+ value: null;
665
+ };
666
+ setConfig: (size: number | null) => void;
667
+ };
596
668
  readonly logLevel: {
597
669
  cliFlag: "log";
598
670
  name: string;
@@ -701,6 +773,24 @@ export declare const optionsMap: {
701
773
  };
702
774
  setConfig: (size: number | null) => void;
703
775
  };
776
+ readonly offthreadVideoThreads: {
777
+ name: string;
778
+ cliFlag: "offthreadvideo-video-threads";
779
+ description: () => import("react/jsx-runtime").JSX.Element;
780
+ ssrName: "offthreadVideoThreads";
781
+ docLink: string;
782
+ type: number | null;
783
+ getValue: ({ commandLine }: {
784
+ commandLine: Record<string, unknown>;
785
+ }) => {
786
+ source: string;
787
+ value: number;
788
+ } | {
789
+ source: string;
790
+ value: null;
791
+ };
792
+ setConfig: (size: number | null) => void;
793
+ };
704
794
  readonly jpegQuality: {
705
795
  name: string;
706
796
  cliFlag: "jpeg-quality";
@@ -806,6 +896,24 @@ export declare const optionsMap: {
806
896
  };
807
897
  setConfig: (size: number | null) => void;
808
898
  };
899
+ readonly offthreadVideoThreads: {
900
+ name: string;
901
+ cliFlag: "offthreadvideo-video-threads";
902
+ description: () => import("react/jsx-runtime").JSX.Element;
903
+ ssrName: "offthreadVideoThreads";
904
+ docLink: string;
905
+ type: number | null;
906
+ getValue: ({ commandLine }: {
907
+ commandLine: Record<string, unknown>;
908
+ }) => {
909
+ source: string;
910
+ value: number;
911
+ } | {
912
+ source: string;
913
+ value: null;
914
+ };
915
+ setConfig: (size: number | null) => void;
916
+ };
809
917
  readonly videoBitrate: {
810
918
  name: string;
811
919
  cliFlag: "video-bitrate";
@@ -1042,6 +1150,24 @@ export declare const optionsMap: {
1042
1150
  };
1043
1151
  setConfig: (size: number | null) => void;
1044
1152
  };
1153
+ readonly offthreadVideoThreads: {
1154
+ name: string;
1155
+ cliFlag: "offthreadvideo-video-threads";
1156
+ description: () => import("react/jsx-runtime").JSX.Element;
1157
+ ssrName: "offthreadVideoThreads";
1158
+ docLink: string;
1159
+ type: number | null;
1160
+ getValue: ({ commandLine }: {
1161
+ commandLine: Record<string, unknown>;
1162
+ }) => {
1163
+ source: string;
1164
+ value: number;
1165
+ } | {
1166
+ source: string;
1167
+ value: null;
1168
+ };
1169
+ setConfig: (size: number | null) => void;
1170
+ };
1045
1171
  readonly jpegQuality: {
1046
1172
  name: string;
1047
1173
  cliFlag: "jpeg-quality";
@@ -1155,6 +1281,24 @@ export declare const optionsMap: {
1155
1281
  };
1156
1282
  setConfig: (size: number | null) => void;
1157
1283
  };
1284
+ readonly offthreadVideoThreads: {
1285
+ name: string;
1286
+ cliFlag: "offthreadvideo-video-threads";
1287
+ description: () => import("react/jsx-runtime").JSX.Element;
1288
+ ssrName: "offthreadVideoThreads";
1289
+ docLink: string;
1290
+ type: number | null;
1291
+ getValue: ({ commandLine }: {
1292
+ commandLine: Record<string, unknown>;
1293
+ }) => {
1294
+ source: string;
1295
+ value: number;
1296
+ } | {
1297
+ source: string;
1298
+ value: null;
1299
+ };
1300
+ setConfig: (size: number | null) => void;
1301
+ };
1158
1302
  readonly logLevel: {
1159
1303
  cliFlag: "log";
1160
1304
  name: string;
@@ -1205,6 +1349,24 @@ export declare const optionsMap: {
1205
1349
  };
1206
1350
  setConfig: (size: number | null) => void;
1207
1351
  };
1352
+ readonly offthreadVideoThreads: {
1353
+ name: string;
1354
+ cliFlag: "offthreadvideo-video-threads";
1355
+ description: () => import("react/jsx-runtime").JSX.Element;
1356
+ ssrName: "offthreadVideoThreads";
1357
+ docLink: string;
1358
+ type: number | null;
1359
+ getValue: ({ commandLine }: {
1360
+ commandLine: Record<string, unknown>;
1361
+ }) => {
1362
+ source: string;
1363
+ value: number;
1364
+ } | {
1365
+ source: string;
1366
+ value: null;
1367
+ };
1368
+ setConfig: (size: number | null) => void;
1369
+ };
1208
1370
  readonly numberOfGifLoops: {
1209
1371
  name: string;
1210
1372
  cliFlag: "number-of-gif-loops";
@@ -1471,6 +1633,24 @@ export declare const optionsMap: {
1471
1633
  };
1472
1634
  setConfig: (size: number | null) => void;
1473
1635
  };
1636
+ readonly offthreadVideoThreads: {
1637
+ name: string;
1638
+ cliFlag: "offthreadvideo-video-threads";
1639
+ description: () => import("react/jsx-runtime").JSX.Element;
1640
+ ssrName: "offthreadVideoThreads";
1641
+ docLink: string;
1642
+ type: number | null;
1643
+ getValue: ({ commandLine }: {
1644
+ commandLine: Record<string, unknown>;
1645
+ }) => {
1646
+ source: string;
1647
+ value: number;
1648
+ } | {
1649
+ source: string;
1650
+ value: null;
1651
+ };
1652
+ setConfig: (size: number | null) => void;
1653
+ };
1474
1654
  readonly logLevel: {
1475
1655
  cliFlag: "log";
1476
1656
  name: string;
@@ -19,6 +19,7 @@ const log_level_1 = require("./log-level");
19
19
  const mute_1 = require("./mute");
20
20
  const number_of_gif_loops_1 = require("./number-of-gif-loops");
21
21
  const offthreadvideo_cache_size_1 = require("./offthreadvideo-cache-size");
22
+ const offthreadvideo_threads_1 = require("./offthreadvideo-threads");
22
23
  const on_browser_download_1 = require("./on-browser-download");
23
24
  const prefer_lossless_1 = require("./prefer-lossless");
24
25
  const repro_1 = require("./repro");
@@ -32,6 +33,7 @@ const x264_preset_1 = require("./x264-preset");
32
33
  exports.optionsMap = {
33
34
  renderMedia: {
34
35
  offthreadVideoCacheSizeInBytes: offthreadvideo_cache_size_1.offthreadVideoCacheSizeInBytesOption,
36
+ offthreadVideoThreads: offthreadvideo_threads_1.offthreadVideoThreadsOption,
35
37
  videoBitrate: video_bitrate_1.videoBitrateOption,
36
38
  numberOfGifLoops: number_of_gif_loops_1.numberOfGifLoopsOption,
37
39
  repro: repro_1.reproOption,
@@ -59,6 +61,7 @@ exports.optionsMap = {
59
61
  },
60
62
  renderStill: {
61
63
  offthreadVideoCacheSizeInBytes: offthreadvideo_cache_size_1.offthreadVideoCacheSizeInBytesOption,
64
+ offthreadVideoThreads: offthreadvideo_threads_1.offthreadVideoThreadsOption,
62
65
  jpegQuality: jpeg_quality_1.jpegQualityOption,
63
66
  logLevel: log_level_1.logLevelOption,
64
67
  timeoutInMilliseconds: timeout_1.delayRenderTimeoutInMillisecondsOption,
@@ -68,6 +71,7 @@ exports.optionsMap = {
68
71
  },
69
72
  getCompositions: {
70
73
  offthreadVideoCacheSizeInBytes: offthreadvideo_cache_size_1.offthreadVideoCacheSizeInBytesOption,
74
+ offthreadVideoThreads: offthreadvideo_threads_1.offthreadVideoThreadsOption,
71
75
  logLevel: log_level_1.logLevelOption,
72
76
  timeoutInMilliseconds: timeout_1.delayRenderTimeoutInMillisecondsOption,
73
77
  binariesDirectory: binaries_directory_1.binariesDirectoryOption,
@@ -76,6 +80,7 @@ exports.optionsMap = {
76
80
  },
77
81
  selectComposition: {
78
82
  offthreadVideoCacheSizeInBytes: offthreadvideo_cache_size_1.offthreadVideoCacheSizeInBytesOption,
83
+ offthreadVideoThreads: offthreadvideo_threads_1.offthreadVideoThreadsOption,
79
84
  logLevel: log_level_1.logLevelOption,
80
85
  timeoutInMilliseconds: timeout_1.delayRenderTimeoutInMillisecondsOption,
81
86
  binariesDirectory: binaries_directory_1.binariesDirectoryOption,
@@ -85,6 +90,7 @@ exports.optionsMap = {
85
90
  renderFrames: {
86
91
  forSeamlessAacConcatenation: for_seamless_aac_concatenation_1.forSeamlessAacConcatenationOption,
87
92
  offthreadVideoCacheSizeInBytes: offthreadvideo_cache_size_1.offthreadVideoCacheSizeInBytesOption,
93
+ offthreadVideoThreads: offthreadvideo_threads_1.offthreadVideoThreadsOption,
88
94
  jpegQuality: jpeg_quality_1.jpegQualityOption,
89
95
  logLevel: log_level_1.logLevelOption,
90
96
  timeoutInMilliseconds: timeout_1.delayRenderTimeoutInMillisecondsOption,
@@ -94,6 +100,7 @@ exports.optionsMap = {
94
100
  },
95
101
  renderMediaOnLambda: {
96
102
  offthreadVideoCacheSizeInBytes: offthreadvideo_cache_size_1.offthreadVideoCacheSizeInBytesOption,
103
+ offthreadVideoThreads: offthreadvideo_threads_1.offthreadVideoThreadsOption,
97
104
  videoBitrate: video_bitrate_1.videoBitrateOption,
98
105
  numberOfGifLoops: number_of_gif_loops_1.numberOfGifLoopsOption,
99
106
  preferLossless: prefer_lossless_1.preferLosslessAudioOption,
@@ -110,6 +117,7 @@ exports.optionsMap = {
110
117
  },
111
118
  renderStillOnLambda: {
112
119
  offthreadVideoCacheSizeInBytes: offthreadvideo_cache_size_1.offthreadVideoCacheSizeInBytesOption,
120
+ offthreadVideoThreads: offthreadvideo_threads_1.offthreadVideoThreadsOption,
113
121
  jpegQuality: jpeg_quality_1.jpegQualityOption,
114
122
  logLevel: log_level_1.logLevelOption,
115
123
  deleteAfter: delete_after_1.deleteAfterOption,
@@ -119,11 +127,13 @@ exports.optionsMap = {
119
127
  },
120
128
  getCompositionsOnLambda: {
121
129
  offthreadVideoCacheSizeInBytes: offthreadvideo_cache_size_1.offthreadVideoCacheSizeInBytesOption,
130
+ offthreadVideoThreads: offthreadvideo_threads_1.offthreadVideoThreadsOption,
122
131
  logLevel: log_level_1.logLevelOption,
123
132
  timeoutInMilliseconds: timeout_1.delayRenderTimeoutInMillisecondsOption,
124
133
  },
125
134
  renderMediaOnCloudRun: {
126
135
  offthreadVideoCacheSizeInBytes: offthreadvideo_cache_size_1.offthreadVideoCacheSizeInBytesOption,
136
+ offthreadVideoThreads: offthreadvideo_threads_1.offthreadVideoThreadsOption,
127
137
  numberOfGifLoops: number_of_gif_loops_1.numberOfGifLoopsOption,
128
138
  preferLossless: prefer_lossless_1.preferLosslessAudioOption,
129
139
  colorSpace: color_space_1.colorSpaceOption,
@@ -142,6 +152,7 @@ exports.optionsMap = {
142
152
  },
143
153
  renderStillOnCloudRun: {
144
154
  offthreadVideoCacheSizeInBytes: offthreadvideo_cache_size_1.offthreadVideoCacheSizeInBytesOption,
155
+ offthreadVideoThreads: offthreadvideo_threads_1.offthreadVideoThreadsOption,
145
156
  logLevel: log_level_1.logLevelOption,
146
157
  scale: scale_1.scaleOption,
147
158
  jpegQuality: jpeg_quality_1.jpegQualityOption,
@@ -15,14 +15,14 @@ type PrepareServerOptions = {
15
15
  webpackConfigOrServeUrl: string;
16
16
  port: number | null;
17
17
  remotionRoot: string;
18
- concurrency: number;
18
+ offthreadVideoThreads: number;
19
19
  logLevel: LogLevel;
20
20
  indent: boolean;
21
21
  offthreadVideoCacheSizeInBytes: number | null;
22
22
  binariesDirectory: string | null;
23
23
  forceIPv4: boolean;
24
24
  };
25
- export declare const prepareServer: ({ webpackConfigOrServeUrl, port, remotionRoot, concurrency, logLevel, indent, offthreadVideoCacheSizeInBytes, binariesDirectory, forceIPv4, }: PrepareServerOptions) => Promise<RemotionServer>;
25
+ export declare const prepareServer: ({ webpackConfigOrServeUrl, port, remotionRoot, offthreadVideoThreads, logLevel, indent, offthreadVideoCacheSizeInBytes, binariesDirectory, forceIPv4, }: PrepareServerOptions) => Promise<RemotionServer>;
26
26
  export declare const makeOrReuseServer: (server: RemotionServer | undefined, config: PrepareServerOptions, { onDownload, }: {
27
27
  onDownload: RenderMediaOnDownload | null;
28
28
  }) => Promise<{
@@ -16,7 +16,7 @@ const normalize_serve_url_1 = require("./normalize-serve-url");
16
16
  const serve_static_1 = require("./serve-static");
17
17
  const symbolicate_stacktrace_1 = require("./symbolicate-stacktrace");
18
18
  const wait_for_symbolication_error_to_be_done_1 = require("./wait-for-symbolication-error-to-be-done");
19
- const prepareServer = async ({ webpackConfigOrServeUrl, port, remotionRoot, concurrency, logLevel, indent, offthreadVideoCacheSizeInBytes, binariesDirectory, forceIPv4, }) => {
19
+ const prepareServer = async ({ webpackConfigOrServeUrl, port, remotionRoot, offthreadVideoThreads, logLevel, indent, offthreadVideoCacheSizeInBytes, binariesDirectory, forceIPv4, }) => {
20
20
  const downloadMap = (0, download_map_1.makeDownloadMap)();
21
21
  logger_1.Log.verbose({ indent, logLevel }, 'Created directory for temporary files', downloadMap.assetDir);
22
22
  if ((0, is_serve_url_1.isServeUrl)(webpackConfigOrServeUrl)) {
@@ -24,7 +24,7 @@ const prepareServer = async ({ webpackConfigOrServeUrl, port, remotionRoot, conc
24
24
  port,
25
25
  downloadMap,
26
26
  remotionRoot,
27
- concurrency,
27
+ offthreadVideoThreads,
28
28
  logLevel,
29
29
  indent,
30
30
  offthreadVideoCacheSizeInBytes,
@@ -72,7 +72,7 @@ const prepareServer = async ({ webpackConfigOrServeUrl, port, remotionRoot, conc
72
72
  port,
73
73
  downloadMap,
74
74
  remotionRoot,
75
- concurrency,
75
+ offthreadVideoThreads,
76
76
  logLevel,
77
77
  indent,
78
78
  offthreadVideoCacheSizeInBytes,
@@ -25,6 +25,7 @@ const make_cancel_signal_1 = require("./make-cancel-signal");
25
25
  const make_page_1 = require("./make-page");
26
26
  const next_frame_to_render_1 = require("./next-frame-to-render");
27
27
  const open_browser_1 = require("./open-browser");
28
+ const offthreadvideo_threads_1 = require("./options/offthreadvideo-threads");
28
29
  const pool_1 = require("./pool");
29
30
  const prepare_server_1 = require("./prepare-server");
30
31
  const render_frame_and_retry_target_close_1 = require("./render-frame-and-retry-target-close");
@@ -182,7 +183,7 @@ const innerRenderFrames = async ({ onFrameUpdate, outputDir, onStart, serialized
182
183
  frameCount: framesToRender.length,
183
184
  };
184
185
  };
185
- const internalRenderFramesRaw = ({ browserExecutable, cancelSignal, chromiumOptions, composition, concurrency, envVariables, everyNthFrame, frameRange, imageFormat, indent, jpegQuality, muted, onBrowserLog, onDownload, onFrameBuffer, onFrameUpdate, onStart, outputDir, port, puppeteerInstance, scale, server, timeoutInMilliseconds, logLevel, webpackBundleOrServeUrl, serializedInputPropsWithCustomSchema, serializedResolvedPropsWithCustomSchema, offthreadVideoCacheSizeInBytes, parallelEncodingEnabled, binariesDirectory, forSeamlessAacConcatenation, compositionStart, onBrowserDownload, onArtifact, chromeMode, }) => {
186
+ const internalRenderFramesRaw = ({ browserExecutable, cancelSignal, chromiumOptions, composition, concurrency, envVariables, everyNthFrame, frameRange, imageFormat, indent, jpegQuality, muted, onBrowserLog, onDownload, onFrameBuffer, onFrameUpdate, onStart, outputDir, port, puppeteerInstance, scale, server, timeoutInMilliseconds, logLevel, webpackBundleOrServeUrl, serializedInputPropsWithCustomSchema, serializedResolvedPropsWithCustomSchema, offthreadVideoCacheSizeInBytes, parallelEncodingEnabled, binariesDirectory, forSeamlessAacConcatenation, compositionStart, onBrowserDownload, onArtifact, chromeMode, offthreadVideoThreads, }) => {
186
187
  (0, validate_1.validateDimension)(composition.height, 'height', 'in the `config` object passed to `renderFrames()`');
187
188
  (0, validate_1.validateDimension)(composition.width, 'width', 'in the `config` object passed to `renderFrames()`');
188
189
  (0, validate_1.validateFps)(composition.fps, 'in the `config` object of `renderFrames()`', false);
@@ -222,7 +223,7 @@ const internalRenderFramesRaw = ({ browserExecutable, cancelSignal, chromiumOpti
222
223
  webpackConfigOrServeUrl: webpackBundleOrServeUrl,
223
224
  port,
224
225
  remotionRoot: (0, find_closest_package_json_1.findRemotionRoot)(),
225
- concurrency: resolvedConcurrency,
226
+ offthreadVideoThreads: offthreadVideoThreads !== null && offthreadVideoThreads !== void 0 ? offthreadVideoThreads : offthreadvideo_threads_1.DEFAULT_RENDER_FRAMES_OFFTHREAD_VIDEO_THREADS,
226
227
  logLevel,
227
228
  indent,
228
229
  offthreadVideoCacheSizeInBytes,
@@ -283,6 +284,7 @@ const internalRenderFramesRaw = ({ browserExecutable, cancelSignal, chromiumOpti
283
284
  onBrowserDownload,
284
285
  onArtifact,
285
286
  chromeMode,
287
+ offthreadVideoThreads,
286
288
  });
287
289
  }),
288
290
  ])
@@ -331,7 +333,7 @@ exports.internalRenderFrames = (0, wrap_with_error_handling_1.wrapWithErrorHandl
331
333
  * @see [Documentation](https://www.remotion.dev/docs/renderer/render-frames)
332
334
  */
333
335
  const renderFrames = (options) => {
334
- 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, logLevel: passedLogLevel, offthreadVideoCacheSizeInBytes, binariesDirectory, onBrowserDownload, onArtifact, chromeMode, } = options;
336
+ 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, logLevel: passedLogLevel, offthreadVideoCacheSizeInBytes, binariesDirectory, onBrowserDownload, onArtifact, chromeMode, offthreadVideoThreads, } = options;
335
337
  if (!composition) {
336
338
  throw new Error('No `composition` option has been specified for renderFrames()');
337
339
  }
@@ -387,6 +389,7 @@ const renderFrames = (options) => {
387
389
  onBrowserDownload: onBrowserDownload !== null && onBrowserDownload !== void 0 ? onBrowserDownload : (0, browser_download_progress_bar_1.defaultBrowserDownloadProgress)({ indent, logLevel, api: 'renderFrames()' }),
388
390
  onArtifact: onArtifact !== null && onArtifact !== void 0 ? onArtifact : null,
389
391
  chromeMode: chromeMode !== null && chromeMode !== void 0 ? chromeMode : 'headless-shell',
392
+ offthreadVideoThreads: offthreadVideoThreads !== null && offthreadVideoThreads !== void 0 ? offthreadVideoThreads : null,
390
393
  });
391
394
  };
392
395
  exports.renderFrames = renderFrames;
@@ -128,5 +128,5 @@ type RenderMediaResult = {
128
128
  slowestFrames: SlowFrame[];
129
129
  };
130
130
  export declare const internalRenderMedia: (args_0: InternalRenderMediaOptions) => Promise<RenderMediaResult>;
131
- export declare const renderMedia: ({ proResProfile, x264Preset, crf, composition, inputProps, pixelFormat, codec, envVariables, frameRange, puppeteerInstance, outputLocation, onProgress, overwrite, onDownload, onBrowserLog, onStart, timeoutInMilliseconds, chromiumOptions, scale, browserExecutable, port, cancelSignal, muted, enforceAudioTrack, ffmpegOverride, audioBitrate, videoBitrate, encodingMaxRate, encodingBufferSize, audioCodec, jpegQuality, concurrency, serveUrl, disallowParallelEncoding, everyNthFrame, imageFormat, numberOfGifLoops, dumpBrowserLogs, preferLossless, verbose, quality, logLevel: passedLogLevel, offthreadVideoCacheSizeInBytes, colorSpace, repro, binariesDirectory, separateAudioTo, forSeamlessAacConcatenation, onBrowserDownload, onArtifact, metadata, hardwareAcceleration, chromeMode, }: RenderMediaOptions) => Promise<RenderMediaResult>;
131
+ export declare const renderMedia: ({ proResProfile, x264Preset, crf, composition, inputProps, pixelFormat, codec, envVariables, frameRange, puppeteerInstance, outputLocation, onProgress, overwrite, onDownload, onBrowserLog, onStart, timeoutInMilliseconds, chromiumOptions, scale, browserExecutable, port, cancelSignal, muted, enforceAudioTrack, ffmpegOverride, audioBitrate, videoBitrate, encodingMaxRate, encodingBufferSize, audioCodec, jpegQuality, concurrency, serveUrl, disallowParallelEncoding, everyNthFrame, imageFormat, numberOfGifLoops, dumpBrowserLogs, preferLossless, verbose, quality, logLevel: passedLogLevel, offthreadVideoCacheSizeInBytes, colorSpace, repro, binariesDirectory, separateAudioTo, forSeamlessAacConcatenation, onBrowserDownload, onArtifact, metadata, hardwareAcceleration, chromeMode, offthreadVideoThreads, }: RenderMediaOptions) => Promise<RenderMediaResult>;
132
132
  export {};
@@ -28,6 +28,7 @@ const jpeg_quality_1 = require("./jpeg-quality");
28
28
  const logger_1 = require("./logger");
29
29
  const make_cancel_signal_1 = require("./make-cancel-signal");
30
30
  const color_space_1 = require("./options/color-space");
31
+ const offthreadvideo_threads_1 = require("./options/offthreadvideo-threads");
31
32
  const x264_preset_1 = require("./options/x264-preset");
32
33
  const overwrite_1 = require("./overwrite");
33
34
  const perf_1 = require("./perf");
@@ -50,7 +51,7 @@ const validate_scale_1 = require("./validate-scale");
50
51
  const validate_videobitrate_1 = require("./validate-videobitrate");
51
52
  const wrap_with_error_handling_1 = require("./wrap-with-error-handling");
52
53
  const SLOWEST_FRAME_COUNT = 10;
53
- const internalRenderMediaRaw = ({ proResProfile, x264Preset, crf, composition, serializedInputPropsWithCustomSchema, pixelFormat, codec, envVariables, frameRange, puppeteerInstance, outputLocation, onProgress, overwrite, onDownload, onBrowserLog, onStart, timeoutInMilliseconds, chromiumOptions, scale, browserExecutable, port, cancelSignal, muted, enforceAudioTrack, ffmpegOverride, audioBitrate, videoBitrate, encodingMaxRate, encodingBufferSize, audioCodec, concurrency, disallowParallelEncoding, everyNthFrame, imageFormat: provisionalImageFormat, indent, jpegQuality, numberOfGifLoops, onCtrlCExit, preferLossless, serveUrl, server: reusedServer, logLevel, serializedResolvedPropsWithCustomSchema, offthreadVideoCacheSizeInBytes, colorSpace, repro, binariesDirectory, separateAudioTo, forSeamlessAacConcatenation, compositionStart, onBrowserDownload, onArtifact, metadata, hardwareAcceleration, chromeMode, }) => {
54
+ const internalRenderMediaRaw = ({ proResProfile, x264Preset, crf, composition, serializedInputPropsWithCustomSchema, pixelFormat, codec, envVariables, frameRange, puppeteerInstance, outputLocation, onProgress, overwrite, onDownload, onBrowserLog, onStart, timeoutInMilliseconds, chromiumOptions, scale, browserExecutable, port, cancelSignal, muted, enforceAudioTrack, ffmpegOverride, audioBitrate, videoBitrate, encodingMaxRate, encodingBufferSize, audioCodec, concurrency, disallowParallelEncoding, everyNthFrame, imageFormat: provisionalImageFormat, indent, jpegQuality, numberOfGifLoops, onCtrlCExit, preferLossless, serveUrl, server: reusedServer, logLevel, serializedResolvedPropsWithCustomSchema, offthreadVideoCacheSizeInBytes, colorSpace, repro, binariesDirectory, separateAudioTo, forSeamlessAacConcatenation, compositionStart, onBrowserDownload, onArtifact, metadata, hardwareAcceleration, chromeMode, offthreadVideoThreads, }) => {
54
55
  if (repro) {
55
56
  (0, repro_1.enableRepro)({
56
57
  serveUrl,
@@ -281,7 +282,7 @@ const internalRenderMediaRaw = ({ proResProfile, x264Preset, crf, composition, s
281
282
  Promise.resolve(createPrestitcherIfNecessary())
282
283
  .then(() => {
283
284
  return (0, prepare_server_1.makeOrReuseServer)(reusedServer, {
284
- concurrency: resolvedConcurrency,
285
+ offthreadVideoThreads: offthreadVideoThreads !== null && offthreadVideoThreads !== void 0 ? offthreadVideoThreads : offthreadvideo_threads_1.DEFAULT_RENDER_FRAMES_OFFTHREAD_VIDEO_THREADS,
285
286
  indent,
286
287
  port,
287
288
  remotionRoot: (0, find_closest_package_json_1.findRemotionRoot)(),
@@ -357,6 +358,7 @@ const internalRenderMediaRaw = ({ proResProfile, x264Preset, crf, composition, s
357
358
  server,
358
359
  serializedResolvedPropsWithCustomSchema,
359
360
  offthreadVideoCacheSizeInBytes,
361
+ offthreadVideoThreads,
360
362
  parallelEncodingEnabled: parallelEncoding,
361
363
  binariesDirectory,
362
364
  compositionStart,
@@ -508,7 +510,7 @@ exports.internalRenderMedia = (0, wrap_with_error_handling_1.wrapWithErrorHandli
508
510
  * @description Render a video or an audio programmatically.
509
511
  * @see [Documentation](https://www.remotion.dev/docs/renderer/render-media)
510
512
  */
511
- const renderMedia = ({ proResProfile, x264Preset, crf, composition, inputProps, pixelFormat, codec, envVariables, frameRange, puppeteerInstance, outputLocation, onProgress, overwrite, onDownload, onBrowserLog, onStart, timeoutInMilliseconds, chromiumOptions, scale, browserExecutable, port, cancelSignal, muted, enforceAudioTrack, ffmpegOverride, audioBitrate, videoBitrate, encodingMaxRate, encodingBufferSize, audioCodec, jpegQuality, concurrency, serveUrl, disallowParallelEncoding, everyNthFrame, imageFormat, numberOfGifLoops, dumpBrowserLogs, preferLossless, verbose, quality, logLevel: passedLogLevel, offthreadVideoCacheSizeInBytes, colorSpace, repro, binariesDirectory, separateAudioTo, forSeamlessAacConcatenation, onBrowserDownload, onArtifact, metadata, hardwareAcceleration, chromeMode, }) => {
513
+ const renderMedia = ({ proResProfile, x264Preset, crf, composition, inputProps, pixelFormat, codec, envVariables, frameRange, puppeteerInstance, outputLocation, onProgress, overwrite, onDownload, onBrowserLog, onStart, timeoutInMilliseconds, chromiumOptions, scale, browserExecutable, port, cancelSignal, muted, enforceAudioTrack, ffmpegOverride, audioBitrate, videoBitrate, encodingMaxRate, encodingBufferSize, audioCodec, jpegQuality, concurrency, serveUrl, disallowParallelEncoding, everyNthFrame, imageFormat, numberOfGifLoops, dumpBrowserLogs, preferLossless, verbose, quality, logLevel: passedLogLevel, offthreadVideoCacheSizeInBytes, colorSpace, repro, binariesDirectory, separateAudioTo, forSeamlessAacConcatenation, onBrowserDownload, onArtifact, metadata, hardwareAcceleration, chromeMode, offthreadVideoThreads, }) => {
512
514
  var _a, _b;
513
515
  const indent = false;
514
516
  const logLevel = verbose || dumpBrowserLogs ? 'verbose' : (passedLogLevel !== null && passedLogLevel !== void 0 ? passedLogLevel : 'info');
@@ -568,6 +570,7 @@ const renderMedia = ({ proResProfile, x264Preset, crf, composition, inputProps,
568
570
  data: (_b = composition.props) !== null && _b !== void 0 ? _b : {},
569
571
  }).serializedString,
570
572
  offthreadVideoCacheSizeInBytes: offthreadVideoCacheSizeInBytes !== null && offthreadVideoCacheSizeInBytes !== void 0 ? offthreadVideoCacheSizeInBytes : null,
573
+ offthreadVideoThreads: offthreadVideoThreads !== null && offthreadVideoThreads !== void 0 ? offthreadVideoThreads : null,
571
574
  colorSpace: colorSpace !== null && colorSpace !== void 0 ? colorSpace : color_space_1.DEFAULT_COLOR_SPACE,
572
575
  repro: repro !== null && repro !== void 0 ? repro : false,
573
576
  binariesDirectory: binariesDirectory !== null && binariesDirectory !== void 0 ? binariesDirectory : null,
@@ -31,7 +31,6 @@ type InternalRenderStillOptions = {
31
31
  server: RemotionServer | undefined;
32
32
  serveUrl: string;
33
33
  port: number | null;
34
- offthreadVideoCacheSizeInBytes: number | null;
35
34
  onArtifact: OnArtifact | null;
36
35
  } & ToOptions<typeof optionsMap.renderStill>;
37
36
  export type RenderStillOptions = {
@@ -224,12 +224,13 @@ const innerRenderStill = async ({ composition, imageFormat = image_format_1.DEFA
224
224
  const internalRenderStillRaw = (options) => {
225
225
  const cleanup = [];
226
226
  const happyPath = new Promise((resolve, reject) => {
227
+ var _a;
227
228
  const onError = (err) => reject(err);
228
229
  (0, prepare_server_1.makeOrReuseServer)(options.server, {
229
230
  webpackConfigOrServeUrl: options.serveUrl,
230
231
  port: options.port,
231
232
  remotionRoot: (0, find_closest_package_json_1.findRemotionRoot)(),
232
- concurrency: 1,
233
+ offthreadVideoThreads: (_a = options.offthreadVideoThreads) !== null && _a !== void 0 ? _a : 2,
233
234
  logLevel: options.logLevel,
234
235
  indent: options.indent,
235
236
  offthreadVideoCacheSizeInBytes: options.offthreadVideoCacheSizeInBytes,
@@ -276,7 +277,7 @@ exports.internalRenderStill = (0, wrap_with_error_handling_1.wrapWithErrorHandli
276
277
  */
277
278
  const renderStill = (options) => {
278
279
  var _a, _b;
279
- const { composition, serveUrl, browserExecutable, cancelSignal, chromiumOptions, dumpBrowserLogs, envVariables, frame, imageFormat, inputProps, jpegQuality, onBrowserLog, onDownload, output, overwrite, port, puppeteerInstance, scale, timeoutInMilliseconds, verbose, quality, offthreadVideoCacheSizeInBytes, logLevel: passedLogLevel, binariesDirectory, onBrowserDownload, onArtifact, chromeMode, } = options;
280
+ const { composition, serveUrl, browserExecutable, cancelSignal, chromiumOptions, dumpBrowserLogs, envVariables, frame, imageFormat, inputProps, jpegQuality, onBrowserLog, onDownload, output, overwrite, port, puppeteerInstance, scale, timeoutInMilliseconds, verbose, quality, offthreadVideoCacheSizeInBytes, logLevel: passedLogLevel, binariesDirectory, onBrowserDownload, onArtifact, chromeMode, offthreadVideoThreads, } = options;
280
281
  if (typeof jpegQuality !== 'undefined' && imageFormat !== 'jpeg') {
281
282
  throw new Error("You can only pass the `quality` option if `imageFormat` is 'jpeg'.");
282
283
  }
@@ -325,6 +326,7 @@ const renderStill = (options) => {
325
326
  }),
326
327
  onArtifact: onArtifact !== null && onArtifact !== void 0 ? onArtifact : null,
327
328
  chromeMode: chromeMode !== null && chromeMode !== void 0 ? chromeMode : 'headless-shell',
329
+ offthreadVideoThreads: offthreadVideoThreads !== null && offthreadVideoThreads !== void 0 ? offthreadVideoThreads : null,
328
330
  });
329
331
  };
330
332
  exports.renderStill = renderStill;
@@ -113,7 +113,7 @@ const internalSelectCompositionRaw = async (options) => {
113
113
  webpackConfigOrServeUrl: serveUrlOrWebpackUrl,
114
114
  port,
115
115
  remotionRoot: (0, find_closest_package_json_1.findRemotionRoot)(),
116
- concurrency: 1,
116
+ offthreadVideoThreads: 0,
117
117
  logLevel,
118
118
  indent,
119
119
  offthreadVideoCacheSizeInBytes,
@@ -180,7 +180,7 @@ exports.internalSelectComposition = (0, wrap_with_error_handling_1.wrapWithError
180
180
  * @see [Documentation](https://www.remotion.dev/docs/renderer/select-composition)
181
181
  */
182
182
  const selectComposition = async (options) => {
183
- const { id, serveUrl, browserExecutable, chromiumOptions, envVariables, inputProps, onBrowserLog, port, puppeteerInstance, timeoutInMilliseconds, verbose, logLevel: passedLogLevel, offthreadVideoCacheSizeInBytes, binariesDirectory, onBrowserDownload, chromeMode, } = options;
183
+ const { id, serveUrl, browserExecutable, chromiumOptions, envVariables, inputProps, onBrowserLog, port, puppeteerInstance, timeoutInMilliseconds, verbose, logLevel: passedLogLevel, offthreadVideoCacheSizeInBytes, binariesDirectory, onBrowserDownload, chromeMode, offthreadVideoThreads, } = options;
184
184
  const indent = false;
185
185
  const logLevel = (passedLogLevel !== null && passedLogLevel !== void 0 ? passedLogLevel : verbose) ? 'verbose' : 'info';
186
186
  const data = await (0, exports.internalSelectComposition)({
@@ -210,6 +210,7 @@ const selectComposition = async (options) => {
210
210
  }),
211
211
  onServeUrlVisited: () => undefined,
212
212
  chromeMode: chromeMode !== null && chromeMode !== void 0 ? chromeMode : 'headless-shell',
213
+ offthreadVideoThreads: offthreadVideoThreads !== null && offthreadVideoThreads !== void 0 ? offthreadVideoThreads : null,
213
214
  });
214
215
  return data.metadata;
215
216
  };
@@ -5,7 +5,7 @@ export declare const serveStatic: (path: string | null, options: {
5
5
  port: number | null;
6
6
  downloadMap: DownloadMap;
7
7
  remotionRoot: string;
8
- concurrency: number;
8
+ offthreadVideoThreads: number;
9
9
  logLevel: LogLevel;
10
10
  indent: boolean;
11
11
  offthreadVideoCacheSizeInBytes: number | null;
@@ -12,7 +12,7 @@ const serve_handler_1 = require("./serve-handler");
12
12
  const serveStatic = async (path, options) => {
13
13
  const { listener: offthreadRequest, close: closeCompositor, compositor, } = (0, offthread_video_server_1.startOffthreadVideoServer)({
14
14
  downloadMap: options.downloadMap,
15
- concurrency: options.concurrency,
15
+ offthreadVideoThreads: options.offthreadVideoThreads,
16
16
  logLevel: options.logLevel,
17
17
  indent: options.indent,
18
18
  offthreadVideoCacheSizeInBytes: options.offthreadVideoCacheSizeInBytes,