@remotion/cli 4.0.261 → 4.0.263

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.
package/dist/benchmark.js CHANGED
@@ -22,7 +22,7 @@ const should_use_non_overlaying_logger_1 = require("./should-use-non-overlaying-
22
22
  const show_compositions_picker_1 = require("./show-compositions-picker");
23
23
  const truthy_1 = require("./truthy");
24
24
  const DEFAULT_RUNS = 3;
25
- const { audioBitrateOption, x264Option, offthreadVideoCacheSizeInBytesOption, scaleOption, crfOption, jpegQualityOption, videoBitrateOption, enforceAudioOption, mutedOption, videoCodecOption, colorSpaceOption, enableMultiprocessOnLinuxOption, glOption, numberOfGifLoopsOption, encodingMaxRateOption, encodingBufferSizeOption, delayRenderTimeoutInMillisecondsOption, headlessOption, overwriteOption, binariesDirectoryOption, forSeamlessAacConcatenationOption, publicPathOption, publicDirOption, metadataOption, hardwareAccelerationOption, chromeModeOption, } = client_1.BrowserSafeApis.options;
25
+ const { audioBitrateOption, x264Option, offthreadVideoCacheSizeInBytesOption, scaleOption, crfOption, jpegQualityOption, videoBitrateOption, enforceAudioOption, mutedOption, videoCodecOption, colorSpaceOption, enableMultiprocessOnLinuxOption, glOption, numberOfGifLoopsOption, encodingMaxRateOption, encodingBufferSizeOption, delayRenderTimeoutInMillisecondsOption, headlessOption, overwriteOption, binariesDirectoryOption, forSeamlessAacConcatenationOption, publicPathOption, publicDirOption, metadataOption, hardwareAccelerationOption, chromeModeOption, offthreadVideoThreadsOption, } = client_1.BrowserSafeApis.options;
26
26
  const getValidConcurrency = (cliConcurrency) => {
27
27
  const { concurrencies } = parsed_cli_1.parsedCli;
28
28
  if (!concurrencies) {
@@ -195,6 +195,9 @@ const benchmarkCommand = async (remotionRoot, args, logLevel) => {
195
195
  offthreadVideoCacheSizeInBytes: offthreadVideoCacheSizeInBytesOption.getValue({
196
196
  commandLine: parsed_cli_1.parsedCli,
197
197
  }).value,
198
+ offthreadVideoThreads: offthreadVideoThreadsOption.getValue({
199
+ commandLine: parsed_cli_1.parsedCli,
200
+ }).value,
198
201
  binariesDirectory: binariesDirectoryOption.getValue({
199
202
  commandLine: parsed_cli_1.parsedCli,
200
203
  }).value,
@@ -325,6 +328,9 @@ const benchmarkCommand = async (remotionRoot, args, logLevel) => {
325
328
  indent: undefined,
326
329
  staticBase: null,
327
330
  }).serializedString,
331
+ offthreadVideoThreads: offthreadVideoThreadsOption.getValue({
332
+ commandLine: parsed_cli_1.parsedCli,
333
+ }).value,
328
334
  offthreadVideoCacheSizeInBytes: offthreadVideoCacheSizeInBytesOption.getValue({
329
335
  commandLine: parsed_cli_1.parsedCli,
330
336
  }).value,
@@ -13,7 +13,7 @@ const log_1 = require("./log");
13
13
  const parsed_cli_1 = require("./parsed-cli");
14
14
  const print_compositions_1 = require("./print-compositions");
15
15
  const setup_cache_1 = require("./setup-cache");
16
- const { enableMultiprocessOnLinuxOption, offthreadVideoCacheSizeInBytesOption, glOption, headlessOption, delayRenderTimeoutInMillisecondsOption, binariesDirectoryOption, publicPathOption, publicDirOption, chromeModeOption, } = client_1.BrowserSafeApis.options;
16
+ const { enableMultiprocessOnLinuxOption, offthreadVideoCacheSizeInBytesOption, offthreadVideoThreadsOption, glOption, headlessOption, delayRenderTimeoutInMillisecondsOption, binariesDirectoryOption, publicPathOption, publicDirOption, chromeModeOption, } = client_1.BrowserSafeApis.options;
17
17
  const listCompositionsCommand = async (remotionRoot, args, logLevel) => {
18
18
  const { file, reason } = (0, entry_point_1.findEntryPoint)({
19
19
  args,
@@ -53,6 +53,9 @@ const listCompositionsCommand = async (remotionRoot, args, logLevel) => {
53
53
  const offthreadVideoCacheSizeInBytes = offthreadVideoCacheSizeInBytesOption.getValue({
54
54
  commandLine: parsed_cli_1.parsedCli,
55
55
  }).value;
56
+ const offthreadVideoThreads = offthreadVideoThreadsOption.getValue({
57
+ commandLine: parsed_cli_1.parsedCli,
58
+ }).value;
56
59
  const publicDir = publicDirOption.getValue({ commandLine: parsed_cli_1.parsedCli }).value;
57
60
  const chromeMode = chromeModeOption.getValue({
58
61
  commandLine: parsed_cli_1.parsedCli,
@@ -95,6 +98,7 @@ const listCompositionsCommand = async (remotionRoot, args, logLevel) => {
95
98
  logLevel,
96
99
  server: undefined,
97
100
  offthreadVideoCacheSizeInBytes,
101
+ offthreadVideoThreads,
98
102
  binariesDirectory,
99
103
  onBrowserDownload: (0, browser_download_bar_1.defaultBrowserDownloadProgress)({
100
104
  indent: false,
@@ -1,6 +1,6 @@
1
1
  import type { BrowserExecutable, ChromeMode, ChromiumOptions, HeadlessBrowser, LogLevel, OnBrowserDownload, RemotionServer } from '@remotion/renderer';
2
2
  import type { VideoConfig } from 'remotion';
3
- export declare const getCompositionId: ({ args, compositionIdFromUi, serializedInputPropsWithCustomSchema, puppeteerInstance, envVariables, timeoutInMilliseconds, chromiumOptions, port, browserExecutable, serveUrlOrWebpackUrl, logLevel, indent, server, offthreadVideoCacheSizeInBytes, binariesDirectory, onBrowserDownload, chromeMode, }: {
3
+ export declare const getCompositionId: ({ args, compositionIdFromUi, serializedInputPropsWithCustomSchema, puppeteerInstance, envVariables, timeoutInMilliseconds, chromiumOptions, port, browserExecutable, serveUrlOrWebpackUrl, logLevel, indent, server, offthreadVideoCacheSizeInBytes, offthreadVideoThreads, binariesDirectory, onBrowserDownload, chromeMode, }: {
4
4
  args: (string | number)[];
5
5
  compositionIdFromUi: string | null;
6
6
  serializedInputPropsWithCustomSchema: string;
@@ -15,6 +15,7 @@ export declare const getCompositionId: ({ args, compositionIdFromUi, serializedI
15
15
  indent: boolean;
16
16
  server: RemotionServer;
17
17
  offthreadVideoCacheSizeInBytes: number | null;
18
+ offthreadVideoThreads: number | null;
18
19
  binariesDirectory: string | null;
19
20
  onBrowserDownload: OnBrowserDownload;
20
21
  chromeMode: ChromeMode;
@@ -23,7 +23,7 @@ const getCompName = ({ cliArgs, compositionIdFromUi, }) => {
23
23
  reason: 'Passed as argument',
24
24
  };
25
25
  };
26
- const getCompositionId = async ({ args, compositionIdFromUi, serializedInputPropsWithCustomSchema, puppeteerInstance, envVariables, timeoutInMilliseconds, chromiumOptions, port, browserExecutable, serveUrlOrWebpackUrl, logLevel, indent, server, offthreadVideoCacheSizeInBytes, binariesDirectory, onBrowserDownload, chromeMode, }) => {
26
+ const getCompositionId = async ({ args, compositionIdFromUi, serializedInputPropsWithCustomSchema, puppeteerInstance, envVariables, timeoutInMilliseconds, chromiumOptions, port, browserExecutable, serveUrlOrWebpackUrl, logLevel, indent, server, offthreadVideoCacheSizeInBytes, offthreadVideoThreads, binariesDirectory, onBrowserDownload, chromeMode, }) => {
27
27
  const compNameResult = getCompName({
28
28
  cliArgs: args,
29
29
  compositionIdFromUi,
@@ -44,6 +44,7 @@ const getCompositionId = async ({ args, compositionIdFromUi, serializedInputProp
44
44
  indent,
45
45
  onBrowserLog: null,
46
46
  offthreadVideoCacheSizeInBytes,
47
+ offthreadVideoThreads,
47
48
  binariesDirectory,
48
49
  onBrowserDownload,
49
50
  onServeUrlVisited: () => undefined,
@@ -80,6 +81,7 @@ const getCompositionId = async ({ args, compositionIdFromUi, serializedInputProp
80
81
  onBrowserLog: null,
81
82
  serializedInputPropsWithCustomSchema,
82
83
  offthreadVideoCacheSizeInBytes,
84
+ offthreadVideoThreads,
83
85
  binariesDirectory,
84
86
  onBrowserDownload,
85
87
  chromeMode,
@@ -1,6 +1,6 @@
1
1
  import type { BrowserExecutable, ChromeMode, ChromiumOptions, HeadlessBrowser, LogLevel, OnBrowserDownload, RemotionServer } from '@remotion/renderer';
2
2
  import type { VideoConfig } from 'remotion';
3
- export declare const getCompositionWithDimensionOverride: ({ height, width, args, compositionIdFromUi, chromiumOptions, envVariables, port, puppeteerInstance, timeoutInMilliseconds, browserExecutable, serveUrlOrWebpackUrl, indent, serializedInputPropsWithCustomSchema, logLevel, server, offthreadVideoCacheSizeInBytes, binariesDirectory, onBrowserDownload, chromeMode, }: {
3
+ export declare const getCompositionWithDimensionOverride: ({ height, width, args, compositionIdFromUi, chromiumOptions, envVariables, port, puppeteerInstance, timeoutInMilliseconds, browserExecutable, serveUrlOrWebpackUrl, indent, serializedInputPropsWithCustomSchema, logLevel, server, offthreadVideoCacheSizeInBytes, offthreadVideoThreads, binariesDirectory, onBrowserDownload, chromeMode, }: {
4
4
  height: number | null;
5
5
  width: number | null;
6
6
  args: (string | number)[];
@@ -17,6 +17,7 @@ export declare const getCompositionWithDimensionOverride: ({ height, width, args
17
17
  serializedInputPropsWithCustomSchema: string;
18
18
  server: RemotionServer;
19
19
  offthreadVideoCacheSizeInBytes: number | null;
20
+ offthreadVideoThreads: number | null;
20
21
  binariesDirectory: string | null;
21
22
  onBrowserDownload: OnBrowserDownload;
22
23
  chromeMode: ChromeMode;
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getCompositionWithDimensionOverride = void 0;
4
4
  const get_composition_id_1 = require("./get-composition-id");
5
- const getCompositionWithDimensionOverride = async ({ height, width, args, compositionIdFromUi, chromiumOptions, envVariables, port, puppeteerInstance, timeoutInMilliseconds, browserExecutable, serveUrlOrWebpackUrl, indent, serializedInputPropsWithCustomSchema, logLevel, server, offthreadVideoCacheSizeInBytes, binariesDirectory, onBrowserDownload, chromeMode, }) => {
5
+ const getCompositionWithDimensionOverride = async ({ height, width, args, compositionIdFromUi, chromiumOptions, envVariables, port, puppeteerInstance, timeoutInMilliseconds, browserExecutable, serveUrlOrWebpackUrl, indent, serializedInputPropsWithCustomSchema, logLevel, server, offthreadVideoCacheSizeInBytes, offthreadVideoThreads, binariesDirectory, onBrowserDownload, chromeMode, }) => {
6
6
  const returnValue = await (0, get_composition_id_1.getCompositionId)({
7
7
  args,
8
8
  compositionIdFromUi,
@@ -21,6 +21,7 @@ const getCompositionWithDimensionOverride = async ({ height, width, args, compos
21
21
  binariesDirectory,
22
22
  onBrowserDownload,
23
23
  chromeMode,
24
+ offthreadVideoThreads,
24
25
  });
25
26
  return {
26
27
  ...returnValue,
@@ -5,7 +5,7 @@ const renderer_1 = require("@remotion/renderer");
5
5
  const client_1 = require("@remotion/renderer/client");
6
6
  const config_1 = require("./config");
7
7
  const parsed_cli_1 = require("./parsed-cli");
8
- const { x264Option, audioBitrateOption, offthreadVideoCacheSizeInBytesOption, scaleOption, jpegQualityOption, videoBitrateOption, enforceAudioOption, mutedOption, colorSpaceOption, enableMultiprocessOnLinuxOption, glOption, numberOfGifLoopsOption, beepOnFinishOption, encodingMaxRateOption, encodingBufferSizeOption, reproOption, logLevelOption, delayRenderTimeoutInMillisecondsOption, headlessOption, forSeamlessAacConcatenationOption, audioCodecOption, hardwareAccelerationOption, chromeModeOption, } = client_1.BrowserSafeApis.options;
8
+ const { x264Option, audioBitrateOption, offthreadVideoCacheSizeInBytesOption, offthreadVideoThreadsOption, scaleOption, jpegQualityOption, videoBitrateOption, enforceAudioOption, mutedOption, colorSpaceOption, enableMultiprocessOnLinuxOption, glOption, numberOfGifLoopsOption, beepOnFinishOption, encodingMaxRateOption, encodingBufferSizeOption, reproOption, logLevelOption, delayRenderTimeoutInMillisecondsOption, headlessOption, forSeamlessAacConcatenationOption, audioCodecOption, hardwareAccelerationOption, chromeModeOption, } = client_1.BrowserSafeApis.options;
9
9
  const getRenderDefaults = () => {
10
10
  var _a;
11
11
  const defaultJpegQuality = jpegQualityOption.getValue({
@@ -25,6 +25,9 @@ const getRenderDefaults = () => {
25
25
  const offthreadVideoCacheSizeInBytes = offthreadVideoCacheSizeInBytesOption.getValue({
26
26
  commandLine: parsed_cli_1.parsedCli,
27
27
  }).value;
28
+ const offthreadVideoThreads = offthreadVideoThreadsOption.getValue({
29
+ commandLine: parsed_cli_1.parsedCli,
30
+ }).value;
28
31
  const defaultScale = scaleOption.getValue({
29
32
  commandLine: parsed_cli_1.parsedCli,
30
33
  }).value;
@@ -115,6 +118,7 @@ const getRenderDefaults = () => {
115
118
  ignoreCertificateErrors,
116
119
  openGlRenderer: gl,
117
120
  offthreadVideoCacheSizeInBytes,
121
+ offthreadVideoThreads,
118
122
  colorSpace,
119
123
  multiProcessOnLinux,
120
124
  userAgent,
package/dist/index.d.ts CHANGED
@@ -60,15 +60,15 @@ export declare const CliInternals: {
60
60
  };
61
61
  makeProgressBar: (percentage: number, noColor: boolean) => string;
62
62
  Log: {
63
- trace: (options: import("@remotion/renderer").LogOptions & {
63
+ trace: (options: import("@remotion/renderer/dist/logger").LogOptions & {
64
64
  tag?: string;
65
65
  }, ...args: Parameters<typeof console.log>) => boolean | void;
66
- verbose: (options: import("@remotion/renderer").LogOptions & {
66
+ verbose: (options: import("@remotion/renderer/dist/logger").LogOptions & {
67
67
  tag?: string;
68
68
  }, ...args: Parameters<typeof console.log>) => boolean | void;
69
- info: (options: import("@remotion/renderer").LogOptions, ...args: Parameters<typeof console.log>) => boolean | void;
70
- warn: (options: import("@remotion/renderer").LogOptions, ...args: Parameters<typeof console.log>) => boolean | void;
71
- error: (options: import("@remotion/renderer").LogOptions & {
69
+ info: (options: import("@remotion/renderer/dist/logger").LogOptions, ...args: Parameters<typeof console.log>) => boolean | void;
70
+ warn: (options: import("@remotion/renderer/dist/logger").LogOptions, ...args: Parameters<typeof console.log>) => boolean | void;
71
+ error: (options: import("@remotion/renderer/dist/logger").LogOptions & {
72
72
  tag?: string;
73
73
  }, ...args: Parameters<typeof console.log>) => boolean | void;
74
74
  };
@@ -141,7 +141,7 @@ export declare const CliInternals: {
141
141
  shouldUseNonOverlayingLogger: ({ logLevel, }: {
142
142
  logLevel: import("@remotion/renderer").LogLevel;
143
143
  }) => boolean;
144
- getCompositionWithDimensionOverride: ({ height, width, args, compositionIdFromUi, chromiumOptions, envVariables, port, puppeteerInstance, timeoutInMilliseconds, browserExecutable, serveUrlOrWebpackUrl, indent, serializedInputPropsWithCustomSchema, logLevel, server, offthreadVideoCacheSizeInBytes, binariesDirectory, onBrowserDownload, chromeMode, }: {
144
+ getCompositionWithDimensionOverride: ({ height, width, args, compositionIdFromUi, chromiumOptions, envVariables, port, puppeteerInstance, timeoutInMilliseconds, browserExecutable, serveUrlOrWebpackUrl, indent, serializedInputPropsWithCustomSchema, logLevel, server, offthreadVideoCacheSizeInBytes, offthreadVideoThreads, binariesDirectory, onBrowserDownload, chromeMode, }: {
145
145
  height: number | null;
146
146
  width: number | null;
147
147
  args: (string | number)[];
@@ -158,6 +158,7 @@ export declare const CliInternals: {
158
158
  serializedInputPropsWithCustomSchema: string;
159
159
  server: import("@remotion/renderer").RemotionServer;
160
160
  offthreadVideoCacheSizeInBytes: number | null;
161
+ offthreadVideoThreads: number | null;
161
162
  binariesDirectory: string | null;
162
163
  onBrowserDownload: import("@remotion/renderer").OnBrowserDownload;
163
164
  chromeMode: import("@remotion/renderer").ChromeMode;
package/dist/log.d.ts CHANGED
@@ -1,13 +1,13 @@
1
1
  export declare const Log: {
2
- trace: (options: import("@remotion/renderer").LogOptions & {
2
+ trace: (options: import("@remotion/renderer/dist/logger").LogOptions & {
3
3
  tag?: string;
4
4
  }, ...args: Parameters<typeof console.log>) => boolean | void;
5
- verbose: (options: import("@remotion/renderer").LogOptions & {
5
+ verbose: (options: import("@remotion/renderer/dist/logger").LogOptions & {
6
6
  tag?: string;
7
7
  }, ...args: Parameters<typeof console.log>) => boolean | void;
8
- info: (options: import("@remotion/renderer").LogOptions, ...args: Parameters<typeof console.log>) => boolean | void;
9
- warn: (options: import("@remotion/renderer").LogOptions, ...args: Parameters<typeof console.log>) => boolean | void;
10
- error: (options: import("@remotion/renderer").LogOptions & {
8
+ info: (options: import("@remotion/renderer/dist/logger").LogOptions, ...args: Parameters<typeof console.log>) => boolean | void;
9
+ warn: (options: import("@remotion/renderer/dist/logger").LogOptions, ...args: Parameters<typeof console.log>) => boolean | void;
10
+ error: (options: import("@remotion/renderer/dist/logger").LogOptions & {
11
11
  tag?: string;
12
12
  }, ...args: Parameters<typeof console.log>) => boolean | void;
13
13
  };
@@ -25,7 +25,7 @@ declare const beepOnFinishOption: {
25
25
  commandLine: Record<string, unknown>;
26
26
  }) => {
27
27
  source: string;
28
- value: import("@remotion/renderer").ColorSpace;
28
+ value: import("@remotion/renderer/dist/options/color-space").ColorSpace;
29
29
  };
30
30
  setConfig: (value: "default" | "bt709" | "bt2020-ncl" | null) => void;
31
31
  }, offthreadVideoCacheSizeInBytesOption: {
@@ -151,13 +151,13 @@ declare const beepOnFinishOption: {
151
151
  getValue: ({ commandLine }: {
152
152
  commandLine: Record<string, unknown>;
153
153
  }) => {
154
- value: import("@remotion/renderer").X264Preset;
154
+ value: import("@remotion/renderer/dist/options/x264-preset").X264Preset;
155
155
  source: string;
156
156
  } | {
157
157
  value: null;
158
158
  source: string;
159
159
  };
160
- setConfig: (profile: import("@remotion/renderer").X264Preset | null) => void;
160
+ setConfig: (profile: import("@remotion/renderer/dist/options/x264-preset").X264Preset | null) => void;
161
161
  }, enforceAudioOption: {
162
162
  name: string;
163
163
  cliFlag: "enforce-audio-track";
@@ -1,7 +1,7 @@
1
1
  import type { AudioCodec, Browser, BrowserExecutable, CancelSignal, ChromeMode, ChromiumOptions, Codec, ColorSpace, Crf, FfmpegOverrideFn, FrameRange, LogLevel, NumberOfGifLoops, PixelFormat, ProResProfile, VideoImageFormat, X264Preset } from '@remotion/renderer';
2
2
  import type { HardwareAccelerationOption } from '@remotion/renderer/client';
3
3
  import type { JobProgressCallback } from '@remotion/studio-server';
4
- export declare const renderVideoFlow: ({ remotionRoot, fullEntryPoint, indent, logLevel, browserExecutable, browser, chromiumOptions, scale, shouldOutputImageSequence, publicDir, envVariables, puppeteerTimeout, port, height, width, remainingArgs, compositionIdFromUi, entryPointReason, overwrite, quiet, concurrency, frameRange, everyNthFrame, outputLocationFromUI, jpegQuality, onProgress, addCleanupCallback, cancelSignal, crf, uiCodec, uiImageFormat, ffmpegOverride, audioBitrate, muted, enforceAudioTrack, proResProfile, x264Preset, pixelFormat, videoBitrate, encodingMaxRate, encodingBufferSize, numberOfGifLoops, audioCodec, serializedInputPropsWithCustomSchema, disallowParallelEncoding, offthreadVideoCacheSizeInBytes, colorSpace, repro, binariesDirectory, forSeamlessAacConcatenation, separateAudioTo, publicPath, metadata, hardwareAcceleration, chromeMode, }: {
4
+ export declare const renderVideoFlow: ({ remotionRoot, fullEntryPoint, indent, logLevel, browserExecutable, browser, chromiumOptions, scale, shouldOutputImageSequence, publicDir, envVariables, puppeteerTimeout, port, height, width, remainingArgs, compositionIdFromUi, entryPointReason, overwrite, quiet, concurrency, frameRange, everyNthFrame, outputLocationFromUI, jpegQuality, onProgress, addCleanupCallback, cancelSignal, crf, uiCodec, uiImageFormat, ffmpegOverride, audioBitrate, muted, enforceAudioTrack, proResProfile, x264Preset, pixelFormat, videoBitrate, encodingMaxRate, encodingBufferSize, numberOfGifLoops, audioCodec, serializedInputPropsWithCustomSchema, disallowParallelEncoding, offthreadVideoCacheSizeInBytes, offthreadVideoThreads, colorSpace, repro, binariesDirectory, forSeamlessAacConcatenation, separateAudioTo, publicPath, metadata, hardwareAcceleration, chromeMode, }: {
5
5
  remotionRoot: string;
6
6
  fullEntryPoint: string;
7
7
  entryPointReason: string;
@@ -48,6 +48,7 @@ export declare const renderVideoFlow: ({ remotionRoot, fullEntryPoint, indent, l
48
48
  audioCodec: AudioCodec | null;
49
49
  disallowParallelEncoding: boolean;
50
50
  offthreadVideoCacheSizeInBytes: number | null;
51
+ offthreadVideoThreads: number | null;
51
52
  colorSpace: ColorSpace | null;
52
53
  repro: boolean;
53
54
  binariesDirectory: string | null;
@@ -51,7 +51,7 @@ const setup_cache_1 = require("../setup-cache");
51
51
  const should_use_non_overlaying_logger_1 = require("../should-use-non-overlaying-logger");
52
52
  const truthy_1 = require("../truthy");
53
53
  const user_passed_output_location_1 = require("../user-passed-output-location");
54
- const renderVideoFlow = async ({ remotionRoot, fullEntryPoint, indent, logLevel, browserExecutable, browser, chromiumOptions, scale, shouldOutputImageSequence, publicDir, envVariables, puppeteerTimeout, port, height, width, remainingArgs, compositionIdFromUi, entryPointReason, overwrite, quiet, concurrency, frameRange, everyNthFrame, outputLocationFromUI, jpegQuality, onProgress, addCleanupCallback, cancelSignal, crf, uiCodec, uiImageFormat, ffmpegOverride, audioBitrate, muted, enforceAudioTrack, proResProfile, x264Preset, pixelFormat, videoBitrate, encodingMaxRate, encodingBufferSize, numberOfGifLoops, audioCodec, serializedInputPropsWithCustomSchema, disallowParallelEncoding, offthreadVideoCacheSizeInBytes, colorSpace, repro, binariesDirectory, forSeamlessAacConcatenation, separateAudioTo, publicPath, metadata, hardwareAcceleration, chromeMode, }) => {
54
+ const renderVideoFlow = async ({ remotionRoot, fullEntryPoint, indent, logLevel, browserExecutable, browser, chromiumOptions, scale, shouldOutputImageSequence, publicDir, envVariables, puppeteerTimeout, port, height, width, remainingArgs, compositionIdFromUi, entryPointReason, overwrite, quiet, concurrency, frameRange, everyNthFrame, outputLocationFromUI, jpegQuality, onProgress, addCleanupCallback, cancelSignal, crf, uiCodec, uiImageFormat, ffmpegOverride, audioBitrate, muted, enforceAudioTrack, proResProfile, x264Preset, pixelFormat, videoBitrate, encodingMaxRate, encodingBufferSize, numberOfGifLoops, audioCodec, serializedInputPropsWithCustomSchema, disallowParallelEncoding, offthreadVideoCacheSizeInBytes, offthreadVideoThreads, colorSpace, repro, binariesDirectory, forSeamlessAacConcatenation, separateAudioTo, publicPath, metadata, hardwareAcceleration, chromeMode, }) => {
55
55
  var _a;
56
56
  const isVerbose = renderer_1.RenderInternals.isEqualOrBelowLogLevel(logLevel, 'verbose');
57
57
  (0, progress_bar_1.printFact)('verbose')({
@@ -160,7 +160,7 @@ const renderVideoFlow = async ({ remotionRoot, fullEntryPoint, indent, logLevel,
160
160
  addCleanupCallback(`Closing browser instance`, () => puppeteerInstance.close({ silent: false }));
161
161
  const resolvedConcurrency = renderer_1.RenderInternals.resolveConcurrency(concurrency);
162
162
  const server = await renderer_1.RenderInternals.prepareServer({
163
- concurrency: resolvedConcurrency,
163
+ offthreadVideoThreads: offthreadVideoThreads !== null && offthreadVideoThreads !== void 0 ? offthreadVideoThreads : renderer_1.RenderInternals.DEFAULT_RENDER_FRAMES_OFFTHREAD_VIDEO_THREADS,
164
164
  indent,
165
165
  port,
166
166
  remotionRoot,
@@ -188,6 +188,7 @@ const renderVideoFlow = async ({ remotionRoot, fullEntryPoint, indent, logLevel,
188
188
  logLevel,
189
189
  server,
190
190
  offthreadVideoCacheSizeInBytes,
191
+ offthreadVideoThreads,
191
192
  binariesDirectory,
192
193
  onBrowserDownload,
193
194
  chromeMode,
@@ -329,6 +330,7 @@ const renderVideoFlow = async ({ remotionRoot, fullEntryPoint, indent, logLevel,
329
330
  data: config.props,
330
331
  }).serializedString,
331
332
  offthreadVideoCacheSizeInBytes,
333
+ offthreadVideoThreads,
332
334
  parallelEncodingEnabled: isUsingParallelEncoding,
333
335
  binariesDirectory,
334
336
  compositionStart: 0,
@@ -412,6 +414,7 @@ const renderVideoFlow = async ({ remotionRoot, fullEntryPoint, indent, logLevel,
412
414
  staticBase: null,
413
415
  }).serializedString,
414
416
  offthreadVideoCacheSizeInBytes,
417
+ offthreadVideoThreads,
415
418
  colorSpace,
416
419
  repro: repro !== null && repro !== void 0 ? repro : false,
417
420
  binariesDirectory,
@@ -1,6 +1,6 @@
1
1
  import type { Browser, BrowserExecutable, CancelSignal, ChromeMode, ChromiumOptions, LogLevel, StillImageFormat } from '@remotion/renderer';
2
2
  import type { JobProgressCallback } from '@remotion/studio-server';
3
- export declare const renderStillFlow: ({ remotionRoot, fullEntryPoint, entryPointReason, remainingArgs, browser, browserExecutable, chromiumOptions, envVariables, height, serializedInputPropsWithCustomSchema, overwrite, port, publicDir, puppeteerTimeout, jpegQuality, scale, stillFrame, width, compositionIdFromUi, imageFormatFromUi, logLevel, onProgress, indent, addCleanupCallback, cancelSignal, outputLocationFromUi, offthreadVideoCacheSizeInBytes, binariesDirectory, publicPath, chromeMode, }: {
3
+ export declare const renderStillFlow: ({ remotionRoot, fullEntryPoint, entryPointReason, remainingArgs, browser, browserExecutable, chromiumOptions, envVariables, height, serializedInputPropsWithCustomSchema, overwrite, port, publicDir, puppeteerTimeout, jpegQuality, scale, stillFrame, width, compositionIdFromUi, imageFormatFromUi, logLevel, onProgress, indent, addCleanupCallback, cancelSignal, outputLocationFromUi, offthreadVideoCacheSizeInBytes, binariesDirectory, publicPath, chromeMode, offthreadVideoThreads, }: {
4
4
  remotionRoot: string;
5
5
  fullEntryPoint: string;
6
6
  entryPointReason: string;
@@ -28,6 +28,7 @@ export declare const renderStillFlow: ({ remotionRoot, fullEntryPoint, entryPoin
28
28
  cancelSignal: CancelSignal | null;
29
29
  outputLocationFromUi: string | null;
30
30
  offthreadVideoCacheSizeInBytes: number | null;
31
+ offthreadVideoThreads: number | null;
31
32
  binariesDirectory: string | null;
32
33
  publicPath: string | null;
33
34
  chromeMode: ChromeMode;
@@ -27,7 +27,7 @@ const setup_cache_1 = require("../setup-cache");
27
27
  const should_use_non_overlaying_logger_1 = require("../should-use-non-overlaying-logger");
28
28
  const truthy_1 = require("../truthy");
29
29
  const user_passed_output_location_1 = require("../user-passed-output-location");
30
- const renderStillFlow = async ({ remotionRoot, fullEntryPoint, entryPointReason, remainingArgs, browser, browserExecutable, chromiumOptions, envVariables, height, serializedInputPropsWithCustomSchema, overwrite, port, publicDir, puppeteerTimeout, jpegQuality, scale, stillFrame, width, compositionIdFromUi, imageFormatFromUi, logLevel, onProgress, indent, addCleanupCallback, cancelSignal, outputLocationFromUi, offthreadVideoCacheSizeInBytes, binariesDirectory, publicPath, chromeMode, }) => {
30
+ const renderStillFlow = async ({ remotionRoot, fullEntryPoint, entryPointReason, remainingArgs, browser, browserExecutable, chromiumOptions, envVariables, height, serializedInputPropsWithCustomSchema, overwrite, port, publicDir, puppeteerTimeout, jpegQuality, scale, stillFrame, width, compositionIdFromUi, imageFormatFromUi, logLevel, onProgress, indent, addCleanupCallback, cancelSignal, outputLocationFromUi, offthreadVideoCacheSizeInBytes, binariesDirectory, publicPath, chromeMode, offthreadVideoThreads, }) => {
31
31
  var _a, _b;
32
32
  const isVerbose = renderer_1.RenderInternals.isEqualOrBelowLogLevel(logLevel, 'verbose');
33
33
  log_1.Log.verbose({ indent, logLevel }, chalk_1.chalk.gray(`Entry point = ${fullEntryPoint} (${entryPointReason})`));
@@ -101,7 +101,7 @@ const renderStillFlow = async ({ remotionRoot, fullEntryPoint, entryPointReason,
101
101
  publicPath,
102
102
  });
103
103
  const server = await renderer_1.RenderInternals.prepareServer({
104
- concurrency: 1,
104
+ offthreadVideoThreads: offthreadVideoThreads !== null && offthreadVideoThreads !== void 0 ? offthreadVideoThreads : renderer_1.RenderInternals.DEFAULT_RENDER_FRAMES_OFFTHREAD_VIDEO_THREADS,
105
105
  indent,
106
106
  port,
107
107
  remotionRoot,
@@ -132,6 +132,7 @@ const renderStillFlow = async ({ remotionRoot, fullEntryPoint, entryPointReason,
132
132
  logLevel,
133
133
  server,
134
134
  offthreadVideoCacheSizeInBytes,
135
+ offthreadVideoThreads,
135
136
  binariesDirectory,
136
137
  onBrowserDownload,
137
138
  chromeMode,
@@ -244,6 +245,7 @@ const renderStillFlow = async ({ remotionRoot, fullEntryPoint, entryPointReason,
244
245
  onBrowserDownload,
245
246
  onArtifact,
246
247
  chromeMode,
248
+ offthreadVideoThreads,
247
249
  });
248
250
  aggregate.rendering = {
249
251
  frames: 1,
@@ -49,6 +49,7 @@ const processStill = async ({ job, remotionRoot, entryPoint, onProgress, addClea
49
49
  cancelSignal: job.cancelToken.cancelSignal,
50
50
  outputLocationFromUi: job.outName,
51
51
  offthreadVideoCacheSizeInBytes: job.offthreadVideoCacheSizeInBytes,
52
+ offthreadVideoThreads: job.offthreadVideoThreads,
52
53
  binariesDirectory: job.binariesDirectory,
53
54
  publicPath: null,
54
55
  chromeMode: job.chromeMode,
@@ -78,6 +78,7 @@ const processVideoJob = async ({ job, remotionRoot, entryPoint, onProgress, addC
78
78
  metadata: job.metadata,
79
79
  hardwareAcceleration: job.type === 'video' ? job.hardwareAcceleration : 'disable',
80
80
  chromeMode: job.chromeMode,
81
+ offthreadVideoThreads: job.offthreadVideoThreads,
81
82
  });
82
83
  };
83
84
  exports.processVideoJob = processVideoJob;
package/dist/render.js CHANGED
@@ -11,7 +11,7 @@ const get_cli_options_1 = require("./get-cli-options");
11
11
  const log_1 = require("./log");
12
12
  const parsed_cli_1 = require("./parsed-cli");
13
13
  const render_1 = require("./render-flows/render");
14
- const { x264Option, audioBitrateOption, offthreadVideoCacheSizeInBytesOption, scaleOption, crfOption, jpegQualityOption, videoBitrateOption, enforceAudioOption, mutedOption, colorSpaceOption, enableMultiprocessOnLinuxOption, glOption, numberOfGifLoopsOption, encodingMaxRateOption, encodingBufferSizeOption, reproOption, delayRenderTimeoutInMillisecondsOption, headlessOption, overwriteOption, binariesDirectoryOption, forSeamlessAacConcatenationOption, separateAudioOption, audioCodecOption, publicPathOption, publicDirOption, metadataOption, hardwareAccelerationOption, chromeModeOption, } = client_1.BrowserSafeApis.options;
14
+ const { x264Option, audioBitrateOption, offthreadVideoCacheSizeInBytesOption, scaleOption, crfOption, jpegQualityOption, videoBitrateOption, enforceAudioOption, mutedOption, colorSpaceOption, enableMultiprocessOnLinuxOption, glOption, numberOfGifLoopsOption, encodingMaxRateOption, encodingBufferSizeOption, reproOption, delayRenderTimeoutInMillisecondsOption, headlessOption, overwriteOption, binariesDirectoryOption, forSeamlessAacConcatenationOption, separateAudioOption, audioCodecOption, publicPathOption, publicDirOption, metadataOption, hardwareAccelerationOption, chromeModeOption, offthreadVideoThreadsOption, } = client_1.BrowserSafeApis.options;
15
15
  const render = async (remotionRoot, args, logLevel) => {
16
16
  const { file, remainingArgs, reason: entryPointReason, } = (0, entry_point_1.findEntryPoint)({ args, remotionRoot, logLevel, allowDirectory: true });
17
17
  if (!file) {
@@ -37,6 +37,9 @@ const render = async (remotionRoot, args, logLevel) => {
37
37
  const offthreadVideoCacheSizeInBytes = offthreadVideoCacheSizeInBytesOption.getValue({
38
38
  commandLine: parsed_cli_1.parsedCli,
39
39
  }).value;
40
+ const offthreadVideoThreads = offthreadVideoThreadsOption.getValue({
41
+ commandLine: parsed_cli_1.parsedCli,
42
+ }).value;
40
43
  const scale = scaleOption.getValue({ commandLine: parsed_cli_1.parsedCli }).value;
41
44
  const jpegQuality = jpegQualityOption.getValue({
42
45
  commandLine: parsed_cli_1.parsedCli,
@@ -164,6 +167,7 @@ const render = async (remotionRoot, args, logLevel) => {
164
167
  metadata,
165
168
  hardwareAcceleration,
166
169
  chromeMode,
170
+ offthreadVideoThreads,
167
171
  });
168
172
  };
169
173
  exports.render = render;
package/dist/still.js CHANGED
@@ -11,7 +11,7 @@ const get_cli_options_1 = require("./get-cli-options");
11
11
  const log_1 = require("./log");
12
12
  const parsed_cli_1 = require("./parsed-cli");
13
13
  const still_1 = require("./render-flows/still");
14
- const { offthreadVideoCacheSizeInBytesOption, scaleOption, jpegQualityOption, enableMultiprocessOnLinuxOption, glOption, delayRenderTimeoutInMillisecondsOption, headlessOption, overwriteOption, binariesDirectoryOption, publicPathOption, publicDirOption, chromeModeOption, } = client_1.BrowserSafeApis.options;
14
+ const { offthreadVideoCacheSizeInBytesOption, scaleOption, jpegQualityOption, enableMultiprocessOnLinuxOption, glOption, delayRenderTimeoutInMillisecondsOption, headlessOption, overwriteOption, binariesDirectoryOption, publicPathOption, publicDirOption, chromeModeOption, offthreadVideoThreadsOption, } = client_1.BrowserSafeApis.options;
15
15
  const still = async (remotionRoot, args, logLevel) => {
16
16
  const { file, remainingArgs, reason: entryPointReason, } = (0, entry_point_1.findEntryPoint)({ args, remotionRoot, logLevel, allowDirectory: true });
17
17
  if (!file) {
@@ -41,6 +41,9 @@ const still = async (remotionRoot, args, logLevel) => {
41
41
  const offthreadVideoCacheSizeInBytes = offthreadVideoCacheSizeInBytesOption.getValue({
42
42
  commandLine: parsed_cli_1.parsedCli,
43
43
  }).value;
44
+ const offthreadVideoThreads = offthreadVideoThreadsOption.getValue({
45
+ commandLine: parsed_cli_1.parsedCli,
46
+ }).value;
44
47
  const puppeteerTimeout = delayRenderTimeoutInMillisecondsOption.getValue({
45
48
  commandLine: parsed_cli_1.parsedCli,
46
49
  }).value;
@@ -104,6 +107,7 @@ const still = async (remotionRoot, args, logLevel) => {
104
107
  cancelSignal: null,
105
108
  outputLocationFromUi: null,
106
109
  offthreadVideoCacheSizeInBytes,
110
+ offthreadVideoThreads,
107
111
  binariesDirectory,
108
112
  publicPath,
109
113
  chromeMode,
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "url": "https://github.com/remotion-dev/remotion/tree/main/packages/cli"
4
4
  },
5
5
  "name": "@remotion/cli",
6
- "version": "4.0.261",
6
+ "version": "4.0.263",
7
7
  "description": "Control Remotion features using the `npx remotion` command",
8
8
  "main": "dist/index.js",
9
9
  "sideEffects": false,
@@ -33,14 +33,14 @@
33
33
  "dotenv": "9.0.2",
34
34
  "minimist": "1.2.6",
35
35
  "prompts": "2.4.2",
36
- "@remotion/media-utils": "4.0.261",
37
- "@remotion/bundler": "4.0.261",
38
- "@remotion/studio-shared": "4.0.261",
39
- "@remotion/renderer": "4.0.261",
40
- "@remotion/player": "4.0.261",
41
- "@remotion/studio": "4.0.261",
42
- "@remotion/studio-server": "4.0.261",
43
- "remotion": "4.0.261"
36
+ "@remotion/media-utils": "4.0.263",
37
+ "@remotion/bundler": "4.0.263",
38
+ "@remotion/player": "4.0.263",
39
+ "@remotion/renderer": "4.0.263",
40
+ "@remotion/studio-shared": "4.0.263",
41
+ "@remotion/studio": "4.0.263",
42
+ "@remotion/studio-server": "4.0.263",
43
+ "remotion": "4.0.263"
44
44
  },
45
45
  "peerDependencies": {
46
46
  "react": ">=16.8.0",
@@ -54,11 +54,11 @@
54
54
  "react-dom": "19.0.0",
55
55
  "zod": "3.22.3",
56
56
  "eslint": "9.19.0",
57
- "@remotion/zod-types": "4.0.261",
58
- "@remotion/tailwind-v4": "4.0.261",
59
- "@remotion/skia": "4.0.261",
60
- "@remotion/eslint-config-internal": "4.0.261",
61
- "@remotion/enable-scss": "4.0.261"
57
+ "@remotion/zod-types": "4.0.263",
58
+ "@remotion/tailwind-v4": "4.0.263",
59
+ "@remotion/skia": "4.0.263",
60
+ "@remotion/eslint-config-internal": "4.0.263",
61
+ "@remotion/enable-scss": "4.0.263"
62
62
  },
63
63
  "keywords": [
64
64
  "remotion",