@remotion/renderer 4.0.41 → 4.0.43

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/client.d.ts CHANGED
@@ -1,11 +1,11 @@
1
1
  /// <reference types="react" />
2
2
  export declare const BrowserSafeApis: {
3
- getFileExtensionFromCodec: <T extends "aac" | "mp3" | "h264" | "h265" | "vp8" | "vp9" | "wav" | "prores" | "h264-mkv" | "gif">(codec: T, audioCodec: "pcm-16" | "aac" | "mp3" | "opus" | null) => import("./file-extensions").FileExtension;
3
+ getFileExtensionFromCodec: <T extends "h264" | "h265" | "vp8" | "vp9" | "prores" | "mp3" | "aac" | "wav" | "h264-mkv" | "gif">(codec: T, audioCodec: "mp3" | "aac" | "pcm-16" | "opus" | null) => import("./file-extensions").FileExtension;
4
4
  validCodecs: readonly ["h264", "h265", "vp8", "vp9", "mp3", "aac", "wav", "prores", "h264-mkv", "gif"];
5
5
  validAudioCodecs: readonly ["pcm-16", "aac", "mp3", "opus"];
6
- getDefaultCrfForCodec: (codec: "aac" | "mp3" | "h264" | "h265" | "vp8" | "vp9" | "wav" | "prores" | "h264-mkv" | "gif") => number;
7
- getValidCrfRanges: (codec: "aac" | "mp3" | "h264" | "h265" | "vp8" | "vp9" | "wav" | "prores" | "h264-mkv" | "gif") => [number, number];
8
- isAudioCodec: (codec: "aac" | "mp3" | "h264" | "h265" | "vp8" | "vp9" | "wav" | "prores" | "h264-mkv" | "gif" | undefined) => boolean;
6
+ getDefaultCrfForCodec: (codec: "h264" | "h265" | "vp8" | "vp9" | "prores" | "mp3" | "aac" | "wav" | "h264-mkv" | "gif") => number;
7
+ getValidCrfRanges: (codec: "h264" | "h265" | "vp8" | "vp9" | "prores" | "mp3" | "aac" | "wav" | "h264-mkv" | "gif") => [number, number];
8
+ isAudioCodec: (codec: "h264" | "h265" | "vp8" | "vp9" | "prores" | "mp3" | "aac" | "wav" | "h264-mkv" | "gif" | undefined) => boolean;
9
9
  proResProfileOptions: readonly ["4444-xq", "4444", "hq", "standard", "light", "proxy"];
10
10
  x264PresetOptions: readonly ["ultrafast", "superfast", "veryfast", "faster", "fast", "medium", "slow", "slower", "veryslow", "placebo"];
11
11
  validPixelFormats: readonly ["yuv420p", "yuva420p", "yuv422p", "yuv444p", "yuv420p10le", "yuv422p10le", "yuv444p10le", "yuva444p10le"];
@@ -23,10 +23,10 @@ export declare const BrowserSafeApis: {
23
23
  readonly wav: readonly ["pcm-16"];
24
24
  };
25
25
  defaultFileExtensionMap: {
26
- aac: {
26
+ h264: {
27
27
  default: import("./file-extensions").FileExtension;
28
28
  forAudioCodec: {
29
- "pcm-16": {
29
+ mp3: {
30
30
  possible: import("./file-extensions").FileExtension[];
31
31
  default: import("./file-extensions").FileExtension;
32
32
  };
@@ -34,107 +34,107 @@ export declare const BrowserSafeApis: {
34
34
  possible: import("./file-extensions").FileExtension[];
35
35
  default: import("./file-extensions").FileExtension;
36
36
  };
37
+ "pcm-16": {
38
+ possible: import("./file-extensions").FileExtension[];
39
+ default: import("./file-extensions").FileExtension;
40
+ };
37
41
  };
38
42
  };
39
- mp3: {
43
+ h265: {
40
44
  default: import("./file-extensions").FileExtension;
41
45
  forAudioCodec: {
42
- "pcm-16": {
46
+ aac: {
43
47
  possible: import("./file-extensions").FileExtension[];
44
48
  default: import("./file-extensions").FileExtension;
45
49
  };
46
- mp3: {
50
+ "pcm-16": {
47
51
  possible: import("./file-extensions").FileExtension[];
48
52
  default: import("./file-extensions").FileExtension;
49
53
  };
50
54
  };
51
55
  };
52
- h264: {
56
+ vp8: {
53
57
  default: import("./file-extensions").FileExtension;
54
58
  forAudioCodec: {
55
59
  "pcm-16": {
56
60
  possible: import("./file-extensions").FileExtension[];
57
61
  default: import("./file-extensions").FileExtension;
58
62
  };
59
- aac: {
60
- possible: import("./file-extensions").FileExtension[];
61
- default: import("./file-extensions").FileExtension;
62
- };
63
- mp3: {
63
+ opus: {
64
64
  possible: import("./file-extensions").FileExtension[];
65
65
  default: import("./file-extensions").FileExtension;
66
66
  };
67
67
  };
68
68
  };
69
- h265: {
69
+ vp9: {
70
70
  default: import("./file-extensions").FileExtension;
71
71
  forAudioCodec: {
72
72
  "pcm-16": {
73
73
  possible: import("./file-extensions").FileExtension[];
74
74
  default: import("./file-extensions").FileExtension;
75
75
  };
76
- aac: {
76
+ opus: {
77
77
  possible: import("./file-extensions").FileExtension[];
78
78
  default: import("./file-extensions").FileExtension;
79
79
  };
80
80
  };
81
81
  };
82
- vp8: {
82
+ prores: {
83
83
  default: import("./file-extensions").FileExtension;
84
84
  forAudioCodec: {
85
- "pcm-16": {
85
+ aac: {
86
86
  possible: import("./file-extensions").FileExtension[];
87
87
  default: import("./file-extensions").FileExtension;
88
88
  };
89
- opus: {
89
+ "pcm-16": {
90
90
  possible: import("./file-extensions").FileExtension[];
91
91
  default: import("./file-extensions").FileExtension;
92
92
  };
93
93
  };
94
94
  };
95
- vp9: {
95
+ mp3: {
96
96
  default: import("./file-extensions").FileExtension;
97
97
  forAudioCodec: {
98
- "pcm-16": {
98
+ mp3: {
99
99
  possible: import("./file-extensions").FileExtension[];
100
100
  default: import("./file-extensions").FileExtension;
101
101
  };
102
- opus: {
102
+ "pcm-16": {
103
103
  possible: import("./file-extensions").FileExtension[];
104
104
  default: import("./file-extensions").FileExtension;
105
105
  };
106
106
  };
107
107
  };
108
- wav: {
108
+ aac: {
109
109
  default: import("./file-extensions").FileExtension;
110
110
  forAudioCodec: {
111
+ aac: {
112
+ possible: import("./file-extensions").FileExtension[];
113
+ default: import("./file-extensions").FileExtension;
114
+ };
111
115
  "pcm-16": {
112
116
  possible: import("./file-extensions").FileExtension[];
113
117
  default: import("./file-extensions").FileExtension;
114
118
  };
115
119
  };
116
120
  };
117
- prores: {
121
+ wav: {
118
122
  default: import("./file-extensions").FileExtension;
119
123
  forAudioCodec: {
120
124
  "pcm-16": {
121
125
  possible: import("./file-extensions").FileExtension[];
122
126
  default: import("./file-extensions").FileExtension;
123
127
  };
124
- aac: {
125
- possible: import("./file-extensions").FileExtension[];
126
- default: import("./file-extensions").FileExtension;
127
- };
128
128
  };
129
129
  };
130
130
  "h264-mkv": {
131
131
  default: import("./file-extensions").FileExtension;
132
132
  forAudioCodec: {
133
- "pcm-16": {
133
+ mp3: {
134
134
  possible: import("./file-extensions").FileExtension[];
135
135
  default: import("./file-extensions").FileExtension;
136
136
  };
137
- mp3: {
137
+ "pcm-16": {
138
138
  possible: import("./file-extensions").FileExtension[];
139
139
  default: import("./file-extensions").FileExtension;
140
140
  };
@@ -146,21 +146,13 @@ export declare const BrowserSafeApis: {
146
146
  };
147
147
  };
148
148
  defaultAudioCodecs: {
149
- aac: {
150
- compressed: "pcm-16" | "aac" | null;
151
- lossless: "pcm-16" | "aac" | null;
152
- };
153
- mp3: {
154
- compressed: "pcm-16" | "mp3" | null;
155
- lossless: "pcm-16" | "mp3" | null;
156
- };
157
149
  h264: {
158
- compressed: "pcm-16" | "aac" | "mp3" | null;
159
- lossless: "pcm-16" | "aac" | "mp3" | null;
150
+ compressed: "mp3" | "aac" | "pcm-16" | null;
151
+ lossless: "mp3" | "aac" | "pcm-16" | null;
160
152
  };
161
153
  h265: {
162
- compressed: "pcm-16" | "aac" | null;
163
- lossless: "pcm-16" | "aac" | null;
154
+ compressed: "aac" | "pcm-16" | null;
155
+ lossless: "aac" | "pcm-16" | null;
164
156
  };
165
157
  vp8: {
166
158
  compressed: "pcm-16" | "opus" | null;
@@ -170,27 +162,35 @@ export declare const BrowserSafeApis: {
170
162
  compressed: "pcm-16" | "opus" | null;
171
163
  lossless: "pcm-16" | "opus" | null;
172
164
  };
165
+ prores: {
166
+ compressed: "aac" | "pcm-16" | null;
167
+ lossless: "aac" | "pcm-16" | null;
168
+ };
169
+ mp3: {
170
+ compressed: "mp3" | "pcm-16" | null;
171
+ lossless: "mp3" | "pcm-16" | null;
172
+ };
173
+ aac: {
174
+ compressed: "aac" | "pcm-16" | null;
175
+ lossless: "aac" | "pcm-16" | null;
176
+ };
173
177
  wav: {
174
178
  compressed: "pcm-16" | null;
175
179
  lossless: "pcm-16" | null;
176
180
  };
177
- prores: {
178
- compressed: "pcm-16" | "aac" | null;
179
- lossless: "pcm-16" | "aac" | null;
180
- };
181
181
  "h264-mkv": {
182
- compressed: "pcm-16" | "mp3" | null;
183
- lossless: "pcm-16" | "mp3" | null;
182
+ compressed: "mp3" | "pcm-16" | null;
183
+ lossless: "mp3" | "pcm-16" | null;
184
184
  };
185
185
  gif: {
186
186
  compressed: null;
187
187
  lossless: null;
188
188
  };
189
189
  };
190
- defaultCodecsForFileExtension: Record<import("./file-extensions").FileExtension, "aac" | "mp3" | "h264" | "h265" | "vp8" | "vp9" | "wav" | "prores" | "h264-mkv" | "gif">;
191
- validateOutputFilename: <T_1 extends "aac" | "mp3" | "h264" | "h265" | "vp8" | "vp9" | "wav" | "prores" | "h264-mkv" | "gif">({ codec, audioCodec, extension, preferLossless, }: {
190
+ defaultCodecsForFileExtension: Record<import("./file-extensions").FileExtension, "h264" | "h265" | "vp8" | "vp9" | "prores" | "mp3" | "aac" | "wav" | "h264-mkv" | "gif">;
191
+ validateOutputFilename: <T_1 extends "h264" | "h265" | "vp8" | "vp9" | "prores" | "mp3" | "aac" | "wav" | "h264-mkv" | "gif">({ codec, audioCodec, extension, preferLossless, }: {
192
192
  codec: T_1;
193
- audioCodec: "pcm-16" | "aac" | "mp3" | "opus" | null;
193
+ audioCodec: "mp3" | "aac" | "pcm-16" | "opus" | null;
194
194
  extension: string;
195
195
  preferLossless: boolean;
196
196
  }) => void;
@@ -281,7 +281,7 @@ export declare const BrowserSafeApis: {
281
281
  description: () => JSX.Element;
282
282
  docLink: string;
283
283
  ssrName: string;
284
- type: "default" | "bt709";
284
+ type: "bt709" | "default";
285
285
  };
286
286
  deleteAfterOption: {
287
287
  name: string;
@@ -299,6 +299,14 @@ export declare const BrowserSafeApis: {
299
299
  docLink: string;
300
300
  type: boolean | null;
301
301
  };
302
+ enableMultiprocessOnLinuxOption: {
303
+ name: string;
304
+ cliFlag: "enable-multiprocess-on-linux";
305
+ description: () => JSX.Element;
306
+ ssrName: string;
307
+ docLink: string;
308
+ type: boolean;
309
+ };
302
310
  };
303
311
  validColorSpaces: readonly ["default", "bt709"];
304
312
  optionsMap: {
@@ -383,6 +391,6 @@ export declare const BrowserSafeApis: {
383
391
  type: number | null;
384
392
  }];
385
393
  };
386
- codecSupportsCrf: (codec: "aac" | "mp3" | "h264" | "h265" | "vp8" | "vp9" | "wav" | "prores" | "h264-mkv" | "gif") => boolean;
387
- codecSupportsVideoBitrate: (codec: "aac" | "mp3" | "h264" | "h265" | "vp8" | "vp9" | "wav" | "prores" | "h264-mkv" | "gif") => boolean;
394
+ codecSupportsCrf: (codec: "h264" | "h265" | "vp8" | "vp9" | "prores" | "mp3" | "aac" | "wav" | "h264-mkv" | "gif") => boolean;
395
+ codecSupportsVideoBitrate: (codec: "h264" | "h265" | "vp8" | "vp9" | "prores" | "mp3" | "aac" | "wav" | "h264-mkv" | "gif") => boolean;
388
396
  };
package/dist/client.js CHANGED
@@ -12,6 +12,7 @@ const audio_bitrate_1 = require("./options/audio-bitrate");
12
12
  const color_space_1 = require("./options/color-space");
13
13
  const crf_2 = require("./options/crf");
14
14
  const delete_after_1 = require("./options/delete-after");
15
+ const enable_multiprocess_on_linux_1 = require("./options/enable-multiprocess-on-linux");
15
16
  const enforce_audio_1 = require("./options/enforce-audio");
16
17
  const folder_expiry_1 = require("./options/folder-expiry");
17
18
  const jpeg_quality_1 = require("./options/jpeg-quality");
@@ -56,6 +57,7 @@ exports.BrowserSafeApis = {
56
57
  colorSpaceOption: color_space_1.colorSpaceOption,
57
58
  deleteAfterOption: delete_after_1.deleteAfterOption,
58
59
  folderExpiryOption: folder_expiry_1.folderExpiryOption,
60
+ enableMultiprocessOnLinuxOption: enable_multiprocess_on_linux_1.enableMultiprocessOnLinuxOption,
59
61
  },
60
62
  validColorSpaces: color_space_1.validColorSpaces,
61
63
  optionsMap: options_map_1.optionsMap,
@@ -1,6 +1,6 @@
1
1
  import type { AudioCodec } from './audio-codec';
2
2
  import type { Codec } from './codec';
3
3
  import type { FileExtension } from './file-extensions';
4
- export declare const getFileExtensionFromCodec: <T extends "aac" | "mp3" | "h264" | "h265" | "vp8" | "vp9" | "wav" | "prores" | "h264-mkv" | "gif">(codec: T, audioCodec: AudioCodec | null) => FileExtension;
5
- export declare const makeFileExtensionMap: () => Record<string, ("aac" | "mp3" | "h264" | "h265" | "vp8" | "vp9" | "wav" | "prores" | "h264-mkv" | "gif")[]>;
4
+ export declare const getFileExtensionFromCodec: <T extends "h264" | "h265" | "vp8" | "vp9" | "prores" | "mp3" | "aac" | "wav" | "h264-mkv" | "gif">(codec: T, audioCodec: AudioCodec | null) => FileExtension;
5
+ export declare const makeFileExtensionMap: () => Record<string, ("h264" | "h265" | "vp8" | "vp9" | "prores" | "mp3" | "aac" | "wav" | "h264-mkv" | "gif")[]>;
6
6
  export declare const defaultCodecsForFileExtension: Record<FileExtension, Codec>;
package/dist/index.d.ts CHANGED
@@ -1,3 +1,5 @@
1
+ /// <reference types="node" />
2
+ /// <reference types="react" />
1
3
  import execa from 'execa';
2
4
  import { HeadlessBrowser } from './browser/Browser';
3
5
  import { SymbolicateableError } from './error-handling/symbolicateable-error';
@@ -54,13 +56,14 @@ export declare const RenderInternals: {
54
56
  close: () => Promise<void>;
55
57
  compositor: import("./compositor/compositor").Compositor;
56
58
  }>;
57
- validateEvenDimensionsWithCodec: ({ width, height, codec, scale, }: {
59
+ validateEvenDimensionsWithCodec: ({ width, height, codec, scale, wantsImageSequence, }: {
58
60
  width: number;
59
61
  height: number;
60
62
  scale: number;
61
- codec: "h264" | "h265" | "vp8" | "vp9" | "mp3" | "aac" | "wav" | "prores" | "h264-mkv" | "gif";
63
+ codec: "h264" | "h265" | "vp8" | "vp9" | "prores" | "mp3" | "aac" | "wav" | "h264-mkv" | "gif";
64
+ wantsImageSequence: boolean;
62
65
  }) => void;
63
- getFileExtensionFromCodec: <T extends "h264" | "h265" | "vp8" | "vp9" | "mp3" | "aac" | "wav" | "prores" | "h264-mkv" | "gif">(codec: T, audioCodec: "mp3" | "aac" | "pcm-16" | "opus" | null) => import("./file-extensions").FileExtension;
66
+ getFileExtensionFromCodec: <T extends "h264" | "h265" | "vp8" | "vp9" | "prores" | "mp3" | "aac" | "wav" | "h264-mkv" | "gif">(codec: T, audioCodec: "mp3" | "aac" | "pcm-16" | "opus" | null) => import("./file-extensions").FileExtension;
64
67
  tmpDir: (str: string) => string;
65
68
  deleteDirectory: (directory: string) => void;
66
69
  isServeUrl: (potentialUrl: string) => boolean;
@@ -110,7 +113,7 @@ export declare const RenderInternals: {
110
113
  };
111
114
  registerErrorSymbolicationLock: () => number;
112
115
  unlockErrorSymbolicationLock: (id: number) => void;
113
- canUseParallelEncoding: (codec: "h264" | "h265" | "vp8" | "vp9" | "mp3" | "aac" | "wav" | "prores" | "h264-mkv" | "gif") => boolean;
116
+ canUseParallelEncoding: (codec: "h264" | "h265" | "vp8" | "vp9" | "prores" | "mp3" | "aac" | "wav" | "h264-mkv" | "gif") => boolean;
114
117
  mimeContentType: typeof mimeContentType;
115
118
  mimeLookup: typeof mimeLookup;
116
119
  validateConcurrency: ({ setting, value, checkIfValidForCurrentMachine, }: {
@@ -127,8 +130,8 @@ export declare const RenderInternals: {
127
130
  DEFAULT_PIXEL_FORMAT: "yuv420p" | "yuva420p" | "yuv422p" | "yuv444p" | "yuv420p10le" | "yuv422p10le" | "yuv444p10le" | "yuva444p10le";
128
131
  validateJpegQuality: (q: number | undefined) => void;
129
132
  DEFAULT_TIMEOUT: number;
130
- DEFAULT_CODEC: "h264" | "h265" | "vp8" | "vp9" | "mp3" | "aac" | "wav" | "prores" | "h264-mkv" | "gif";
131
- isAudioCodec: (codec: "h264" | "h265" | "vp8" | "vp9" | "mp3" | "aac" | "wav" | "prores" | "h264-mkv" | "gif" | undefined) => boolean;
133
+ DEFAULT_CODEC: "h264" | "h265" | "vp8" | "vp9" | "prores" | "mp3" | "aac" | "wav" | "h264-mkv" | "gif";
134
+ isAudioCodec: (codec: "h264" | "h265" | "vp8" | "vp9" | "prores" | "mp3" | "aac" | "wav" | "h264-mkv" | "gif" | undefined) => boolean;
132
135
  logLevels: readonly ["verbose", "info", "warn", "error"];
133
136
  isEqualOrBelowLogLevel: (currentLevel: "verbose" | "info" | "warn" | "error", level: "verbose" | "info" | "warn" | "error") => boolean;
134
137
  isValidLogLevel: (level: string) => boolean;
@@ -145,7 +148,7 @@ export declare const RenderInternals: {
145
148
  output: string;
146
149
  onProgress: (p: number) => void;
147
150
  numberOfFrames: number;
148
- codec: "h264" | "h265" | "vp8" | "vp9" | "mp3" | "aac" | "wav" | "prores" | "h264-mkv" | "gif";
151
+ codec: "h264" | "h265" | "vp8" | "vp9" | "prores" | "mp3" | "aac" | "wav" | "h264-mkv" | "gif";
149
152
  fps: number;
150
153
  numberOfGifLoops: number | null;
151
154
  audioCodec: "mp3" | "aac" | "pcm-16" | "opus" | null;
@@ -153,7 +156,7 @@ export declare const RenderInternals: {
153
156
  getMinConcurrency: () => number;
154
157
  getMaxConcurrency: () => number;
155
158
  getDefaultAudioCodec: ({ codec, preferLossless, }: {
156
- codec: "h264" | "h265" | "vp8" | "vp9" | "mp3" | "aac" | "wav" | "prores" | "h264-mkv" | "gif";
159
+ codec: "h264" | "h265" | "vp8" | "vp9" | "prores" | "mp3" | "aac" | "wav" | "h264-mkv" | "gif";
157
160
  preferLossless: boolean;
158
161
  }) => "mp3" | "aac" | "pcm-16" | "opus" | null;
159
162
  validAudioCodecs: readonly ["pcm-16", "aac", "mp3", "opus"];
@@ -214,10 +217,10 @@ export declare const RenderInternals: {
214
217
  };
215
218
  };
216
219
  };
217
- mp3: {
220
+ prores: {
218
221
  default: import("./file-extensions").FileExtension;
219
222
  forAudioCodec: {
220
- mp3: {
223
+ aac: {
221
224
  possible: import("./file-extensions").FileExtension[];
222
225
  default: import("./file-extensions").FileExtension;
223
226
  };
@@ -227,10 +230,10 @@ export declare const RenderInternals: {
227
230
  };
228
231
  };
229
232
  };
230
- aac: {
233
+ mp3: {
231
234
  default: import("./file-extensions").FileExtension;
232
235
  forAudioCodec: {
233
- aac: {
236
+ mp3: {
234
237
  possible: import("./file-extensions").FileExtension[];
235
238
  default: import("./file-extensions").FileExtension;
236
239
  };
@@ -240,22 +243,22 @@ export declare const RenderInternals: {
240
243
  };
241
244
  };
242
245
  };
243
- wav: {
246
+ aac: {
244
247
  default: import("./file-extensions").FileExtension;
245
248
  forAudioCodec: {
249
+ aac: {
250
+ possible: import("./file-extensions").FileExtension[];
251
+ default: import("./file-extensions").FileExtension;
252
+ };
246
253
  "pcm-16": {
247
254
  possible: import("./file-extensions").FileExtension[];
248
255
  default: import("./file-extensions").FileExtension;
249
256
  };
250
257
  };
251
258
  };
252
- prores: {
259
+ wav: {
253
260
  default: import("./file-extensions").FileExtension;
254
261
  forAudioCodec: {
255
- aac: {
256
- possible: import("./file-extensions").FileExtension[];
257
- default: import("./file-extensions").FileExtension;
258
- };
259
262
  "pcm-16": {
260
263
  possible: import("./file-extensions").FileExtension[];
261
264
  default: import("./file-extensions").FileExtension;
@@ -292,8 +295,8 @@ export declare const RenderInternals: {
292
295
  readonly vp9: readonly ["opus", "pcm-16"];
293
296
  readonly wav: readonly ["pcm-16"];
294
297
  };
295
- makeFileExtensionMap: () => Record<string, ("h264" | "h265" | "vp8" | "vp9" | "mp3" | "aac" | "wav" | "prores" | "h264-mkv" | "gif")[]>;
296
- defaultCodecsForFileExtension: Record<import("./file-extensions").FileExtension, "h264" | "h265" | "vp8" | "vp9" | "mp3" | "aac" | "wav" | "prores" | "h264-mkv" | "gif">;
298
+ makeFileExtensionMap: () => Record<string, ("h264" | "h265" | "vp8" | "vp9" | "prores" | "mp3" | "aac" | "wav" | "h264-mkv" | "gif")[]>;
299
+ defaultCodecsForFileExtension: Record<import("./file-extensions").FileExtension, "h264" | "h265" | "vp8" | "vp9" | "prores" | "mp3" | "aac" | "wav" | "h264-mkv" | "gif">;
297
300
  getExecutablePath: (type: "compositor" | "ffmpeg" | "ffprobe" | "ffmpeg-cwd") => string;
298
301
  callFf: (bin: "ffmpeg" | "ffprobe", args: (string | null)[], options?: execa.Options<string> | undefined) => execa.ExecaChildProcess<string>;
299
302
  dynamicLibraryPathOptions: () => {
@@ -311,7 +314,7 @@ export declare const RenderInternals: {
311
314
  validStillImageFormats: readonly ["png", "jpeg", "pdf", "webp"];
312
315
  validVideoImageFormats: readonly ["png", "jpeg", "none"];
313
316
  DEFAULT_STILL_IMAGE_FORMAT: "png" | "jpeg" | "pdf" | "webp";
314
- DEFAULT_VIDEO_IMAGE_FORMAT: "png" | "jpeg" | "none";
317
+ DEFAULT_VIDEO_IMAGE_FORMAT: "none" | "png" | "jpeg";
315
318
  DEFAULT_JPEG_QUALITY: number;
316
319
  chalk: {
317
320
  enabled: () => boolean;
@@ -10,6 +10,7 @@ export type ChromiumOptions = {
10
10
  gl?: OpenGlRenderer | null;
11
11
  headless?: boolean;
12
12
  userAgent?: string | null;
13
+ enableMultiProcessOnLinux?: boolean;
13
14
  };
14
15
  export declare const killAllBrowsers: () => Promise<void>;
15
16
  type InternalOpenBrowserOptions = {
@@ -94,7 +94,9 @@ const internalOpenBrowser = async ({ browser, browserExecutable, chromiumOptions
94
94
  '--disable-setuid-sandbox',
95
95
  ...customGlRenderer,
96
96
  '--disable-background-media-suspend',
97
- process.platform === 'linux' && chromiumOptions.gl !== 'vulkan'
97
+ process.platform === 'linux' &&
98
+ chromiumOptions.gl !== 'vulkan' &&
99
+ !chromiumOptions.enableMultiProcessOnLinux
98
100
  ? '--single-process'
99
101
  : null,
100
102
  '--allow-running-insecure-content',
@@ -7,6 +7,6 @@ export declare const colorSpaceOption: {
7
7
  description: () => JSX.Element;
8
8
  docLink: string;
9
9
  ssrName: string;
10
- type: "default" | "bt709";
10
+ type: "bt709" | "default";
11
11
  };
12
12
  export declare const validateColorSpace: (option: unknown) => void;
@@ -0,0 +1,9 @@
1
+ /// <reference types="react" />
2
+ export declare const enableMultiprocessOnLinuxOption: {
3
+ name: string;
4
+ cliFlag: "enable-multiprocess-on-linux";
5
+ description: () => JSX.Element;
6
+ ssrName: string;
7
+ docLink: string;
8
+ type: boolean;
9
+ };
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.enableMultiprocessOnLinuxOption = void 0;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ exports.enableMultiprocessOnLinuxOption = {
6
+ name: 'Enable Multiprocess on Linux',
7
+ cliFlag: 'enable-multiprocess-on-linux',
8
+ description: () => ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: ["Removes the ", (0, jsx_runtime_1.jsx)("code", { children: '--single-process' }), " flag that gets passed to Chromium on Linux by default. This will make the render faster because multiple processes can be used, but may cause issues with some Linux distributions or if window server libraries are missing."] })),
9
+ ssrName: 'chromiumOptions.enableMultiprocessOnLinux',
10
+ docLink: 'https://www.remotion.dev/docs/chromium-flags',
11
+ type: false,
12
+ };
@@ -0,0 +1,8 @@
1
+ export declare const deleteAfterOption: {
2
+ name: string;
3
+ cliFlag: "delete-after";
4
+ description: () => JSX.Element;
5
+ ssrName: "deleteAfter";
6
+ docLink: string;
7
+ type: number | null;
8
+ };
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.deleteAfterOption = void 0;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ exports.deleteAfterOption = {
6
+ name: 'Render expiry days',
7
+ cliFlag: 'delete-after',
8
+ description: () => {
9
+ return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: ["Automatically delete the render after a certain period. Accepted values are ", (0, jsx_runtime_1.jsx)("code", { children: "1-day" }), ", ", (0, jsx_runtime_1.jsx)("code", { children: "3-days" }), ", ", (0, jsx_runtime_1.jsx)("code", { children: "7-days" }), " and", ' ', (0, jsx_runtime_1.jsx)("code", { children: "30-days" }), ".", (0, jsx_runtime_1.jsx)("br", {}), " For this to work, your bucket needs to have", ' ', (0, jsx_runtime_1.jsx)("a", { href: "/docs/lambda/autodelete", children: "lifecycles enabled" }), "."] }));
10
+ },
11
+ ssrName: 'deleteAfter',
12
+ docLink: 'https://www.remotion.dev/docs/autodelete',
13
+ type: 0,
14
+ };
@@ -0,0 +1,7 @@
1
+ import type { Codec } from './codec';
2
+ export declare const x264PresetOptions: readonly ["ultrafast", "superfast", "veryfast", "faster", "fast", "medium", "slow", "slower", "veryslow", "placebo"];
3
+ export type x264Preset = typeof x264PresetOptions[number];
4
+ export declare const validateSelectedCodecAndPresetCombination: ({ codec, x264Preset, }: {
5
+ codec: Codec;
6
+ x264Preset: "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "medium" | "slow" | "slower" | "veryslow" | "placebo" | undefined;
7
+ }) => void;
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.validateSelectedCodecAndPresetCombination = exports.x264PresetOptions = void 0;
4
+ exports.x264PresetOptions = [
5
+ 'ultrafast',
6
+ 'superfast',
7
+ 'veryfast',
8
+ 'faster',
9
+ 'fast',
10
+ 'medium',
11
+ 'slow',
12
+ 'slower',
13
+ 'veryslow',
14
+ 'placebo',
15
+ ];
16
+ const validateSelectedCodecAndPresetCombination = ({ codec, x264Preset, }) => {
17
+ if (typeof x264Preset !== 'undefined' && codec !== 'h264') {
18
+ throw new TypeError(`You have set a Preset profile but the codec is "${codec}". Set the codec to "h264" or remove the Preset profile.`);
19
+ }
20
+ if (x264Preset !== undefined &&
21
+ !exports.x264PresetOptions.includes(x264Preset)) {
22
+ throw new TypeError(`The Preset profile "${x264Preset}" is not valid. Valid options are ${exports.x264PresetOptions
23
+ .map((p) => `"${p}"`)
24
+ .join(', ')}`);
25
+ }
26
+ };
27
+ exports.validateSelectedCodecAndPresetCombination = validateSelectedCodecAndPresetCombination;
@@ -21,6 +21,7 @@ const prespawnFfmpeg = (options) => {
21
21
  height: options.height,
22
22
  codec,
23
23
  scale: 1,
24
+ wantsImageSequence: false,
24
25
  });
25
26
  const pixelFormat = (_b = options.pixelFormat) !== null && _b !== void 0 ? _b : pixel_format_1.DEFAULT_PIXEL_FORMAT;
26
27
  const proResProfileName = (0, get_prores_profile_name_1.getProResProfileName)(codec, options.proResProfile);
@@ -146,6 +146,7 @@ const internalRenderMediaRaw = ({ proResProfile, x264Preset, crf, composition, s
146
146
  height: composition.height,
147
147
  scale,
148
148
  width: composition.width,
149
+ wantsImageSequence: false,
149
150
  });
150
151
  const realFrameRange = (0, get_frame_to_render_1.getRealFrameRange)(composition.durationInFrames, frameRange);
151
152
  const callUpdate = () => {
@@ -110,6 +110,7 @@ const innerStitchFramesToVideo = async ({ assetsInfo, audioBitrate, audioCodec,
110
110
  height,
111
111
  codec,
112
112
  scale: 1,
113
+ wantsImageSequence: false,
113
114
  });
114
115
  (0, prores_profile_1.validateSelectedCodecAndProResCombination)({
115
116
  codec,
@@ -1,7 +1,8 @@
1
1
  import type { Codec } from './codec';
2
- export declare const validateEvenDimensionsWithCodec: ({ width, height, codec, scale, }: {
2
+ export declare const validateEvenDimensionsWithCodec: ({ width, height, codec, scale, wantsImageSequence, }: {
3
3
  width: number;
4
4
  height: number;
5
5
  scale: number;
6
6
  codec: Codec;
7
+ wantsImageSequence: boolean;
7
8
  }) => void;
@@ -2,7 +2,10 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.validateEvenDimensionsWithCodec = void 0;
4
4
  const truthy_1 = require("./truthy");
5
- const validateEvenDimensionsWithCodec = ({ width, height, codec, scale, }) => {
5
+ const validateEvenDimensionsWithCodec = ({ width, height, codec, scale, wantsImageSequence, }) => {
6
+ if (wantsImageSequence) {
7
+ return;
8
+ }
6
9
  if (codec !== 'h264-mkv' && codec !== 'h264' && codec !== 'h265') {
7
10
  return;
8
11
  }
@@ -1,5 +1,5 @@
1
1
  import type { AudioCodec } from './audio-codec';
2
- export declare const validateOutputFilename: <T extends "aac" | "mp3" | "h264" | "h265" | "vp8" | "vp9" | "wav" | "prores" | "h264-mkv" | "gif">({ codec, audioCodec, extension, preferLossless, }: {
2
+ export declare const validateOutputFilename: <T extends "h264" | "h265" | "vp8" | "vp9" | "prores" | "mp3" | "aac" | "wav" | "h264-mkv" | "gif">({ codec, audioCodec, extension, preferLossless, }: {
3
3
  codec: T;
4
4
  audioCodec: AudioCodec | null;
5
5
  extension: string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@remotion/renderer",
3
- "version": "4.0.41",
3
+ "version": "4.0.43",
4
4
  "description": "Renderer for Remotion",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -18,7 +18,7 @@
18
18
  "extract-zip": "2.0.1",
19
19
  "source-map": "^0.8.0-beta.0",
20
20
  "ws": "8.7.0",
21
- "remotion": "4.0.41"
21
+ "remotion": "4.0.43"
22
22
  },
23
23
  "peerDependencies": {
24
24
  "react": ">=16.8.0",
@@ -40,13 +40,13 @@
40
40
  "vitest": "0.31.1"
41
41
  },
42
42
  "optionalDependencies": {
43
- "@remotion/compositor-darwin-arm64": "4.0.41",
44
- "@remotion/compositor-linux-arm64-musl": "4.0.41",
45
- "@remotion/compositor-linux-arm64-gnu": "4.0.41",
46
- "@remotion/compositor-linux-x64-gnu": "4.0.41",
47
- "@remotion/compositor-win32-x64-msvc": "4.0.41",
48
- "@remotion/compositor-linux-x64-musl": "4.0.41",
49
- "@remotion/compositor-darwin-x64": "4.0.41"
43
+ "@remotion/compositor-darwin-arm64": "4.0.43",
44
+ "@remotion/compositor-darwin-x64": "4.0.43",
45
+ "@remotion/compositor-linux-arm64-gnu": "4.0.43",
46
+ "@remotion/compositor-linux-arm64-musl": "4.0.43",
47
+ "@remotion/compositor-linux-x64-gnu": "4.0.43",
48
+ "@remotion/compositor-linux-x64-musl": "4.0.43",
49
+ "@remotion/compositor-win32-x64-msvc": "4.0.43"
50
50
  },
51
51
  "keywords": [
52
52
  "remotion",