@remotion/renderer 4.0.159 → 4.0.160

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/Cargo.lock CHANGED
@@ -247,6 +247,15 @@ dependencies = [
247
247
  "str-buf",
248
248
  ]
249
249
 
250
+ [[package]]
251
+ name = "fdeflate"
252
+ version = "0.3.4"
253
+ source = "registry+https://github.com/rust-lang/crates.io-index"
254
+ checksum = "4f9bfee30e4dedf0ab8b422f03af778d9612b63f502710fc500a334ebe2de645"
255
+ dependencies = [
256
+ "simd-adler32",
257
+ ]
258
+
250
259
  [[package]]
251
260
  name = "ffmpeg-next"
252
261
  version = "6.0.0"
@@ -374,7 +383,7 @@ dependencies = [
374
383
  "color_quant",
375
384
  "num-rational 0.4.1",
376
385
  "num-traits",
377
- "png 0.17.7",
386
+ "png 0.17.13",
378
387
  "tiff 0.9.0",
379
388
  ]
380
389
 
@@ -519,6 +528,16 @@ dependencies = [
519
528
  "adler",
520
529
  ]
521
530
 
531
+ [[package]]
532
+ name = "miniz_oxide"
533
+ version = "0.7.3"
534
+ source = "registry+https://github.com/rust-lang/crates.io-index"
535
+ checksum = "87dfd01fe195c66b572b37921ad8803d010623c0aca821bea2302239d155cdae"
536
+ dependencies = [
537
+ "adler",
538
+ "simd-adler32",
539
+ ]
540
+
522
541
  [[package]]
523
542
  name = "mp4"
524
543
  version = "0.13.0"
@@ -722,14 +741,15 @@ dependencies = [
722
741
 
723
742
  [[package]]
724
743
  name = "png"
725
- version = "0.17.7"
744
+ version = "0.17.13"
726
745
  source = "registry+https://github.com/rust-lang/crates.io-index"
727
- checksum = "5d708eaf860a19b19ce538740d2b4bdeeb8337fa53f7738455e706623ad5c638"
746
+ checksum = "06e4b0d3d1312775e782c86c91a111aa1f910cbb65e1337f9975b5f9a554b5e1"
728
747
  dependencies = [
729
748
  "bitflags",
730
749
  "crc32fast",
750
+ "fdeflate",
731
751
  "flate2",
732
- "miniz_oxide 0.6.2",
752
+ "miniz_oxide 0.7.3",
733
753
  ]
734
754
 
735
755
  [[package]]
@@ -814,7 +834,7 @@ dependencies = [
814
834
  "jpeg-encoder",
815
835
  "lazy_static",
816
836
  "mp4",
817
- "png 0.17.7",
837
+ "png 0.17.13",
818
838
  "rayon",
819
839
  "serde",
820
840
  "serde_json",
@@ -882,6 +902,12 @@ version = "1.3.0"
882
902
  source = "registry+https://github.com/rust-lang/crates.io-index"
883
903
  checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64"
884
904
 
905
+ [[package]]
906
+ name = "simd-adler32"
907
+ version = "0.3.7"
908
+ source = "registry+https://github.com/rust-lang/crates.io-index"
909
+ checksum = "d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe"
910
+
885
911
  [[package]]
886
912
  name = "smallvec"
887
913
  version = "1.11.0"
package/Cargo.toml CHANGED
@@ -8,7 +8,7 @@ authors = ["Jonny Burger <jonny@remotion.dev>"]
8
8
  edition = "2021"
9
9
 
10
10
  [dependencies]
11
- png = "0.17.7"
11
+ png = "0.17.13"
12
12
  serde = {version = "1.0.151", features = ["derive"]}
13
13
  serde_json = "1.0.89"
14
14
  jpeg-decoder = "0.3"
@@ -28,6 +28,7 @@ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (
28
28
  var _HeadlessBrowser_instances, _HeadlessBrowser_defaultViewport, _HeadlessBrowser_closeCallback, _HeadlessBrowser_defaultContext, _HeadlessBrowser_contexts, _HeadlessBrowser_targets, _HeadlessBrowser_targetCreated, _HeadlessBrowser_targetDestroyed, _HeadlessBrowser_targetInfoChanged, _BrowserContext_browser;
29
29
  Object.defineProperty(exports, "__esModule", { value: true });
30
30
  exports.BrowserContext = exports.HeadlessBrowser = void 0;
31
+ const browser_instances_1 = require("../browser-instances");
31
32
  const assert_1 = require("./assert");
32
33
  const EventEmitter_1 = require("./EventEmitter");
33
34
  const Target_1 = require("./Target");
@@ -141,6 +142,7 @@ class HeadlessBrowser extends EventEmitter_1.EventEmitter {
141
142
  });
142
143
  this.disconnect();
143
144
  this.emit(silent ? "closed-silent" /* BrowserEmittedEvents.ClosedSilent */ : "closed" /* BrowserEmittedEvents.Closed */);
145
+ (0, browser_instances_1.removeHeadlessBrowser)(this);
144
146
  }
145
147
  disconnect() {
146
148
  this.connection.dispose();
@@ -0,0 +1,4 @@
1
+ import type { HeadlessBrowser } from './browser/Browser';
2
+ export declare const killAllBrowsers: () => Promise<void>;
3
+ export declare const addHeadlessBrowser: (browser: HeadlessBrowser) => void;
4
+ export declare const removeHeadlessBrowser: (browser: HeadlessBrowser) => void;
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.removeHeadlessBrowser = exports.addHeadlessBrowser = exports.killAllBrowsers = void 0;
4
+ const browserInstances = [];
5
+ const killAllBrowsers = async () => {
6
+ for (const browser of browserInstances) {
7
+ try {
8
+ await browser.close(true, 'info', false);
9
+ }
10
+ catch (err) { }
11
+ }
12
+ };
13
+ exports.killAllBrowsers = killAllBrowsers;
14
+ const addHeadlessBrowser = (browser) => {
15
+ browserInstances.push(browser);
16
+ };
17
+ exports.addHeadlessBrowser = addHeadlessBrowser;
18
+ const removeHeadlessBrowser = (browser) => {
19
+ browserInstances.splice(browserInstances.indexOf(browser), 1);
20
+ };
21
+ exports.removeHeadlessBrowser = removeHeadlessBrowser;
@@ -8,6 +8,7 @@ const execa_1 = __importDefault(require("execa"));
8
8
  const node_child_process_1 = require("node:child_process");
9
9
  const path_1 = __importDefault(require("path"));
10
10
  const get_executable_path_1 = require("./compositor/get-executable-path");
11
+ const get_explicit_env_1 = require("./compositor/get-explicit-env");
11
12
  const make_file_executable_1 = require("./compositor/make-file-executable");
12
13
  const truthy_1 = require("./truthy");
13
14
  const callFf = ({ args, bin, indent, logLevel, options, binariesDirectory, cancelSignal, }) => {
@@ -18,8 +19,10 @@ const callFf = ({ args, bin, indent, logLevel, options, binariesDirectory, cance
18
19
  binariesDirectory,
19
20
  });
20
21
  (0, make_file_executable_1.makeFileExecutableIfItIsNot)(executablePath);
22
+ const cwd = path_1.default.dirname(executablePath);
21
23
  const task = (0, execa_1.default)(executablePath, args.filter(truthy_1.truthy), {
22
- cwd: path_1.default.dirname(executablePath),
24
+ cwd,
25
+ env: (0, get_explicit_env_1.getExplicitEnv)(cwd),
23
26
  ...options,
24
27
  });
25
28
  cancelSignal === null || cancelSignal === void 0 ? void 0 : cancelSignal(() => {
@@ -36,8 +39,10 @@ const callFfNative = ({ args, bin, indent, logLevel, options, binariesDirectory,
36
39
  binariesDirectory,
37
40
  });
38
41
  (0, make_file_executable_1.makeFileExecutableIfItIsNot)(executablePath);
42
+ const cwd = path_1.default.dirname(executablePath);
39
43
  const task = (0, node_child_process_1.spawn)(executablePath, args.filter(truthy_1.truthy), {
40
- cwd: path_1.default.dirname(executablePath),
44
+ cwd,
45
+ env: (0, get_explicit_env_1.getExplicitEnv)(cwd),
41
46
  ...options,
42
47
  });
43
48
  cancelSignal === null || cancelSignal === void 0 ? void 0 : cancelSignal(() => {
package/dist/client.d.ts CHANGED
@@ -1,19 +1,19 @@
1
1
  export { AvailableOptions, TypeOfOption } from './options';
2
2
  export declare const BrowserSafeApis: {
3
- getFileExtensionFromCodec: <T extends "h264" | "h265" | "vp8" | "vp9" | "mp3" | "aac" | "wav" | "prores" | "h264-mkv" | "h264-ts" | "gif">(codec: T, audioCodec: "mp3" | "aac" | "pcm-16" | "opus" | null) => import("./file-extensions").FileExtension;
3
+ getFileExtensionFromCodec: <T extends "h264" | "h265" | "vp8" | "vp9" | "prores" | "aac" | "mp3" | "wav" | "h264-mkv" | "h264-ts" | "gif">(codec: T, audioCodec: "opus" | "aac" | "mp3" | "pcm-16" | null) => import("./file-extensions").FileExtension;
4
4
  validCodecs: readonly ["h264", "h265", "vp8", "vp9", "mp3", "aac", "wav", "prores", "h264-mkv", "h264-ts", "gif"];
5
5
  validAudioCodecs: readonly ["pcm-16", "aac", "mp3", "opus"];
6
- getDefaultCrfForCodec: (codec: "h264" | "h265" | "vp8" | "vp9" | "mp3" | "aac" | "wav" | "prores" | "h264-mkv" | "h264-ts" | "gif") => number;
7
- getValidCrfRanges: (codec: "h264" | "h265" | "vp8" | "vp9" | "mp3" | "aac" | "wav" | "prores" | "h264-mkv" | "h264-ts" | "gif") => [number, number];
8
- isAudioCodec: (codec: "h264" | "h265" | "vp8" | "vp9" | "mp3" | "aac" | "wav" | "prores" | "h264-mkv" | "h264-ts" | "gif" | null | undefined) => boolean;
6
+ getDefaultCrfForCodec: (codec: "h264" | "h265" | "vp8" | "vp9" | "prores" | "aac" | "mp3" | "wav" | "h264-mkv" | "h264-ts" | "gif") => number;
7
+ getValidCrfRanges: (codec: "h264" | "h265" | "vp8" | "vp9" | "prores" | "aac" | "mp3" | "wav" | "h264-mkv" | "h264-ts" | "gif") => [number, number];
8
+ isAudioCodec: (codec: "h264" | "h265" | "vp8" | "vp9" | "prores" | "aac" | "mp3" | "wav" | "h264-mkv" | "h264-ts" | "gif" | null | 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"];
12
12
  validOpenGlRenderers: readonly ["swangle", "angle", "egl", "swiftshader", "vulkan", "angle-egl"];
13
- validPixelFormatsForCodec: (codec: "h264" | "h265" | "vp8" | "vp9" | "mp3" | "aac" | "wav" | "prores" | "h264-mkv" | "h264-ts" | "gif") => readonly ["yuv420p", "yuva420p", "yuv422p", "yuv444p", "yuv420p10le", "yuv422p10le", "yuv444p10le", "yuva444p10le"] | ("yuv420p" | "yuva420p" | "yuv422p" | "yuv444p" | "yuv420p10le" | "yuv422p10le" | "yuv444p10le" | "yuva444p10le")[];
13
+ validPixelFormatsForCodec: (codec: "h264" | "h265" | "vp8" | "vp9" | "prores" | "aac" | "mp3" | "wav" | "h264-mkv" | "h264-ts" | "gif") => readonly ["yuv420p", "yuva420p", "yuv422p", "yuv444p", "yuv420p10le", "yuv422p10le", "yuv444p10le", "yuva444p10le"] | ("yuv420p" | "yuv422p" | "yuv444p" | "yuva420p" | "yuv420p10le" | "yuv422p10le" | "yuv444p10le" | "yuva444p10le")[];
14
14
  validVideoImageFormats: readonly ["png", "jpeg", "none"];
15
15
  validStillImageFormats: readonly ["png", "jpeg", "pdf", "webp"];
16
- DEFAULT_PIXEL_FORMAT: "yuv420p" | "yuva420p" | "yuv422p" | "yuv444p" | "yuv420p10le" | "yuv422p10le" | "yuv444p10le" | "yuva444p10le";
16
+ DEFAULT_PIXEL_FORMAT: "yuv420p" | "yuv422p" | "yuv444p" | "yuva420p" | "yuv420p10le" | "yuv422p10le" | "yuv444p10le" | "yuva444p10le";
17
17
  DEFAULT_TIMEOUT: number;
18
18
  DEFAULT_JPEG_QUALITY: number;
19
19
  DEFAULT_COLOR_SPACE: "default";
@@ -35,11 +35,11 @@ export declare const BrowserSafeApis: {
35
35
  h264: {
36
36
  default: import("./file-extensions").FileExtension;
37
37
  forAudioCodec: {
38
- mp3: {
38
+ aac: {
39
39
  possible: import("./file-extensions").FileExtension[];
40
40
  default: import("./file-extensions").FileExtension;
41
41
  };
42
- aac: {
42
+ mp3: {
43
43
  possible: import("./file-extensions").FileExtension[];
44
44
  default: import("./file-extensions").FileExtension;
45
45
  };
@@ -65,11 +65,11 @@ export declare const BrowserSafeApis: {
65
65
  vp8: {
66
66
  default: import("./file-extensions").FileExtension;
67
67
  forAudioCodec: {
68
- "pcm-16": {
68
+ opus: {
69
69
  possible: import("./file-extensions").FileExtension[];
70
70
  default: import("./file-extensions").FileExtension;
71
71
  };
72
- opus: {
72
+ "pcm-16": {
73
73
  possible: import("./file-extensions").FileExtension[];
74
74
  default: import("./file-extensions").FileExtension;
75
75
  };
@@ -78,20 +78,20 @@ export declare const BrowserSafeApis: {
78
78
  vp9: {
79
79
  default: import("./file-extensions").FileExtension;
80
80
  forAudioCodec: {
81
- "pcm-16": {
81
+ opus: {
82
82
  possible: import("./file-extensions").FileExtension[];
83
83
  default: import("./file-extensions").FileExtension;
84
84
  };
85
- opus: {
85
+ "pcm-16": {
86
86
  possible: import("./file-extensions").FileExtension[];
87
87
  default: import("./file-extensions").FileExtension;
88
88
  };
89
89
  };
90
90
  };
91
- mp3: {
91
+ prores: {
92
92
  default: import("./file-extensions").FileExtension;
93
93
  forAudioCodec: {
94
- mp3: {
94
+ aac: {
95
95
  possible: import("./file-extensions").FileExtension[];
96
96
  default: import("./file-extensions").FileExtension;
97
97
  };
@@ -114,22 +114,22 @@ export declare const BrowserSafeApis: {
114
114
  };
115
115
  };
116
116
  };
117
- wav: {
117
+ mp3: {
118
118
  default: import("./file-extensions").FileExtension;
119
119
  forAudioCodec: {
120
+ mp3: {
121
+ possible: import("./file-extensions").FileExtension[];
122
+ default: import("./file-extensions").FileExtension;
123
+ };
120
124
  "pcm-16": {
121
125
  possible: import("./file-extensions").FileExtension[];
122
126
  default: import("./file-extensions").FileExtension;
123
127
  };
124
128
  };
125
129
  };
126
- prores: {
130
+ wav: {
127
131
  default: import("./file-extensions").FileExtension;
128
132
  forAudioCodec: {
129
- aac: {
130
- possible: import("./file-extensions").FileExtension[];
131
- default: import("./file-extensions").FileExtension;
132
- };
133
133
  "pcm-16": {
134
134
  possible: import("./file-extensions").FileExtension[];
135
135
  default: import("./file-extensions").FileExtension;
@@ -169,37 +169,37 @@ export declare const BrowserSafeApis: {
169
169
  };
170
170
  defaultAudioCodecs: {
171
171
  h264: {
172
- compressed: "mp3" | "aac" | "pcm-16" | null;
173
- lossless: "mp3" | "aac" | "pcm-16" | null;
172
+ compressed: "aac" | "mp3" | "pcm-16" | null;
173
+ lossless: "aac" | "mp3" | "pcm-16" | null;
174
174
  };
175
175
  h265: {
176
176
  compressed: "aac" | "pcm-16" | null;
177
177
  lossless: "aac" | "pcm-16" | null;
178
178
  };
179
179
  vp8: {
180
- compressed: "pcm-16" | "opus" | null;
181
- lossless: "pcm-16" | "opus" | null;
180
+ compressed: "opus" | "pcm-16" | null;
181
+ lossless: "opus" | "pcm-16" | null;
182
182
  };
183
183
  vp9: {
184
- compressed: "pcm-16" | "opus" | null;
185
- lossless: "pcm-16" | "opus" | null;
184
+ compressed: "opus" | "pcm-16" | null;
185
+ lossless: "opus" | "pcm-16" | null;
186
186
  };
187
- mp3: {
188
- compressed: "mp3" | "pcm-16" | null;
189
- lossless: "mp3" | "pcm-16" | null;
187
+ prores: {
188
+ compressed: "aac" | "pcm-16" | null;
189
+ lossless: "aac" | "pcm-16" | null;
190
190
  };
191
191
  aac: {
192
192
  compressed: "aac" | "pcm-16" | null;
193
193
  lossless: "aac" | "pcm-16" | null;
194
194
  };
195
+ mp3: {
196
+ compressed: "mp3" | "pcm-16" | null;
197
+ lossless: "mp3" | "pcm-16" | null;
198
+ };
195
199
  wav: {
196
200
  compressed: "pcm-16" | null;
197
201
  lossless: "pcm-16" | null;
198
202
  };
199
- prores: {
200
- compressed: "aac" | "pcm-16" | null;
201
- lossless: "aac" | "pcm-16" | null;
202
- };
203
203
  "h264-mkv": {
204
204
  compressed: "mp3" | "pcm-16" | null;
205
205
  lossless: "mp3" | "pcm-16" | null;
@@ -213,10 +213,10 @@ export declare const BrowserSafeApis: {
213
213
  lossless: null;
214
214
  };
215
215
  };
216
- defaultCodecsForFileExtension: Record<import("./file-extensions").FileExtension, "h264" | "h265" | "vp8" | "vp9" | "mp3" | "aac" | "wav" | "prores" | "h264-mkv" | "h264-ts" | "gif">;
217
- validateOutputFilename: <T_1 extends "h264" | "h265" | "vp8" | "vp9" | "mp3" | "aac" | "wav" | "prores" | "h264-mkv" | "h264-ts" | "gif">({ codec, audioCodecSetting, extension, preferLossless, separateAudioTo, }: {
216
+ defaultCodecsForFileExtension: Record<import("./file-extensions").FileExtension, "h264" | "h265" | "vp8" | "vp9" | "prores" | "aac" | "mp3" | "wav" | "h264-mkv" | "h264-ts" | "gif">;
217
+ validateOutputFilename: <T_1 extends "h264" | "h265" | "vp8" | "vp9" | "prores" | "aac" | "mp3" | "wav" | "h264-mkv" | "h264-ts" | "gif">({ codec, audioCodecSetting, extension, preferLossless, separateAudioTo, }: {
218
218
  codec: T_1;
219
- audioCodecSetting: "mp3" | "aac" | "pcm-16" | "opus" | null;
219
+ audioCodecSetting: "opus" | "aac" | "mp3" | "pcm-16" | null;
220
220
  extension: string;
221
221
  preferLossless: boolean;
222
222
  separateAudioTo: string | null;
@@ -224,12 +224,12 @@ export declare const BrowserSafeApis: {
224
224
  options: {
225
225
  audioCodecOption: {
226
226
  cliFlag: "audio-codec";
227
- setConfig: (audioCodec: "mp3" | "aac" | "pcm-16" | "opus" | null) => void;
227
+ setConfig: (audioCodec: "opus" | "aac" | "mp3" | "pcm-16" | null) => void;
228
228
  getValue: ({ commandLine }: {
229
229
  commandLine: Record<string, unknown>;
230
230
  }) => {
231
231
  source: string;
232
- value: "mp3" | "aac" | "pcm-16" | "opus";
232
+ value: "opus" | "aac" | "mp3" | "pcm-16";
233
233
  } | {
234
234
  source: string;
235
235
  value: null;
@@ -238,7 +238,7 @@ export declare const BrowserSafeApis: {
238
238
  docLink: string;
239
239
  name: string;
240
240
  ssrName: "audioCodec";
241
- type: "mp3" | "aac" | "pcm-16" | "opus";
241
+ type: "opus" | "aac" | "mp3" | "pcm-16";
242
242
  };
243
243
  scaleOption: {
244
244
  name: string;
@@ -357,17 +357,17 @@ export declare const BrowserSafeApis: {
357
357
  description: () => import("react/jsx-runtime").JSX.Element;
358
358
  ssrName: string;
359
359
  docLink: string;
360
- type: "h264" | "h265" | "vp8" | "vp9" | "mp3" | "aac" | "wav" | "prores" | "h264-mkv" | "h264-ts" | "gif";
360
+ type: "h264" | "h265" | "vp8" | "vp9" | "prores" | "aac" | "mp3" | "wav" | "h264-mkv" | "h264-ts" | "gif";
361
361
  getValue: ({ commandLine }: {
362
362
  commandLine: Record<string, unknown>;
363
363
  }, { compositionCodec, configFile, downloadName, outName, uiCodec, }: {
364
364
  outName: string | null;
365
365
  downloadName: string | null;
366
- configFile: "h264" | "h265" | "vp8" | "vp9" | "mp3" | "aac" | "wav" | "prores" | "h264-mkv" | "h264-ts" | "gif" | null;
367
- uiCodec: "h264" | "h265" | "vp8" | "vp9" | "mp3" | "aac" | "wav" | "prores" | "h264-mkv" | "h264-ts" | "gif" | null;
368
- compositionCodec: "h264" | "h265" | "vp8" | "vp9" | "mp3" | "aac" | "wav" | "prores" | "h264-mkv" | "h264-ts" | "gif" | null;
366
+ configFile: "h264" | "h265" | "vp8" | "vp9" | "prores" | "aac" | "mp3" | "wav" | "h264-mkv" | "h264-ts" | "gif" | null;
367
+ uiCodec: "h264" | "h265" | "vp8" | "vp9" | "prores" | "aac" | "mp3" | "wav" | "h264-mkv" | "h264-ts" | "gif" | null;
368
+ compositionCodec: "h264" | "h265" | "vp8" | "vp9" | "prores" | "aac" | "mp3" | "wav" | "h264-mkv" | "h264-ts" | "gif" | null;
369
369
  }) => {
370
- value: "h264" | "h265" | "vp8" | "vp9" | "mp3" | "aac" | "wav" | "prores" | "h264-mkv" | "h264-ts" | "gif";
370
+ value: "h264" | "h265" | "vp8" | "vp9" | "prores" | "aac" | "mp3" | "wav" | "h264-mkv" | "h264-ts" | "gif";
371
371
  source: string;
372
372
  };
373
373
  setConfig: (newCodec: import("./codec").CodecOrUndefined) => void;
@@ -406,14 +406,14 @@ export declare const BrowserSafeApis: {
406
406
  description: () => import("react/jsx-runtime").JSX.Element;
407
407
  docLink: string;
408
408
  ssrName: string;
409
- type: "default" | "bt709" | "bt2020-ncl" | null;
409
+ type: "bt709" | "bt2020-ncl" | "default" | null;
410
410
  getValue: ({ commandLine }: {
411
411
  commandLine: Record<string, unknown>;
412
412
  }) => {
413
413
  source: string;
414
- value: "default" | "bt709" | "bt2020-ncl";
414
+ value: "bt709" | "bt2020-ncl" | "default";
415
415
  };
416
- setConfig: (value: "default" | "bt709" | "bt2020-ncl" | null) => void;
416
+ setConfig: (value: "bt709" | "bt2020-ncl" | "default" | null) => void;
417
417
  };
418
418
  deleteAfterOption: {
419
419
  name: string;
@@ -467,19 +467,19 @@ export declare const BrowserSafeApis: {
467
467
  cliFlag: "gl";
468
468
  docLink: string;
469
469
  name: string;
470
- type: "angle" | "swangle" | "egl" | "swiftshader" | "vulkan" | "angle-egl" | null;
470
+ type: "swangle" | "angle" | "egl" | "swiftshader" | "vulkan" | "angle-egl" | null;
471
471
  ssrName: string;
472
472
  description: () => import("react/jsx-runtime").JSX.Element;
473
473
  getValue: ({ commandLine }: {
474
474
  commandLine: Record<string, unknown>;
475
475
  }) => {
476
- value: "angle" | "swangle" | "egl" | "swiftshader" | "vulkan" | "angle-egl";
476
+ value: "swangle" | "angle" | "egl" | "swiftshader" | "vulkan" | "angle-egl";
477
477
  source: string;
478
478
  } | {
479
479
  value: null;
480
480
  source: string;
481
481
  };
482
- setConfig: (value: "angle" | "swangle" | "egl" | "swiftshader" | "vulkan" | "angle-egl" | null) => void;
482
+ setConfig: (value: "swangle" | "angle" | "egl" | "swiftshader" | "vulkan" | "angle-egl" | null) => void;
483
483
  };
484
484
  enableLambdaInsights: {
485
485
  name: string;
@@ -900,14 +900,14 @@ export declare const BrowserSafeApis: {
900
900
  description: () => import("react/jsx-runtime").JSX.Element;
901
901
  docLink: string;
902
902
  ssrName: string;
903
- type: "default" | "bt709" | "bt2020-ncl" | null;
903
+ type: "bt709" | "bt2020-ncl" | "default" | null;
904
904
  getValue: ({ commandLine }: {
905
905
  commandLine: Record<string, unknown>;
906
906
  }) => {
907
907
  source: string;
908
- value: "default" | "bt709" | "bt2020-ncl";
908
+ value: "bt709" | "bt2020-ncl" | "default";
909
909
  };
910
- setConfig: (value: "default" | "bt709" | "bt2020-ncl" | null) => void;
910
+ setConfig: (value: "bt709" | "bt2020-ncl" | "default" | null) => void;
911
911
  };
912
912
  readonly codec: {
913
913
  name: string;
@@ -915,17 +915,17 @@ export declare const BrowserSafeApis: {
915
915
  description: () => import("react/jsx-runtime").JSX.Element;
916
916
  ssrName: string;
917
917
  docLink: string;
918
- type: "h264" | "h265" | "vp8" | "vp9" | "mp3" | "aac" | "wav" | "prores" | "h264-mkv" | "h264-ts" | "gif";
918
+ type: "h264" | "h265" | "vp8" | "vp9" | "prores" | "aac" | "mp3" | "wav" | "h264-mkv" | "h264-ts" | "gif";
919
919
  getValue: ({ commandLine }: {
920
920
  commandLine: Record<string, unknown>;
921
921
  }, { compositionCodec, configFile, downloadName, outName, uiCodec, }: {
922
922
  outName: string | null;
923
923
  downloadName: string | null;
924
- configFile: "h264" | "h265" | "vp8" | "vp9" | "mp3" | "aac" | "wav" | "prores" | "h264-mkv" | "h264-ts" | "gif" | null;
925
- uiCodec: "h264" | "h265" | "vp8" | "vp9" | "mp3" | "aac" | "wav" | "prores" | "h264-mkv" | "h264-ts" | "gif" | null;
926
- compositionCodec: "h264" | "h265" | "vp8" | "vp9" | "mp3" | "aac" | "wav" | "prores" | "h264-mkv" | "h264-ts" | "gif" | null;
924
+ configFile: "h264" | "h265" | "vp8" | "vp9" | "prores" | "aac" | "mp3" | "wav" | "h264-mkv" | "h264-ts" | "gif" | null;
925
+ uiCodec: "h264" | "h265" | "vp8" | "vp9" | "prores" | "aac" | "mp3" | "wav" | "h264-mkv" | "h264-ts" | "gif" | null;
926
+ compositionCodec: "h264" | "h265" | "vp8" | "vp9" | "prores" | "aac" | "mp3" | "wav" | "h264-mkv" | "h264-ts" | "gif" | null;
927
927
  }) => {
928
- value: "h264" | "h265" | "vp8" | "vp9" | "mp3" | "aac" | "wav" | "prores" | "h264-mkv" | "h264-ts" | "gif";
928
+ value: "h264" | "h265" | "vp8" | "vp9" | "prores" | "aac" | "mp3" | "wav" | "h264-mkv" | "h264-ts" | "gif";
929
929
  source: string;
930
930
  };
931
931
  setConfig: (newCodec: import("./codec").CodecOrUndefined) => void;
@@ -1079,12 +1079,12 @@ export declare const BrowserSafeApis: {
1079
1079
  };
1080
1080
  readonly audioCodec: {
1081
1081
  cliFlag: "audio-codec";
1082
- setConfig: (audioCodec: "mp3" | "aac" | "pcm-16" | "opus" | null) => void;
1082
+ setConfig: (audioCodec: "opus" | "aac" | "mp3" | "pcm-16" | null) => void;
1083
1083
  getValue: ({ commandLine }: {
1084
1084
  commandLine: Record<string, unknown>;
1085
1085
  }) => {
1086
1086
  source: string;
1087
- value: "mp3" | "aac" | "pcm-16" | "opus";
1087
+ value: "opus" | "aac" | "mp3" | "pcm-16";
1088
1088
  } | {
1089
1089
  source: string;
1090
1090
  value: null;
@@ -1093,7 +1093,7 @@ export declare const BrowserSafeApis: {
1093
1093
  docLink: string;
1094
1094
  name: string;
1095
1095
  ssrName: "audioCodec";
1096
- type: "mp3" | "aac" | "pcm-16" | "opus";
1096
+ type: "opus" | "aac" | "mp3" | "pcm-16";
1097
1097
  };
1098
1098
  readonly onBrowserDownload: {
1099
1099
  name: string;
@@ -1640,14 +1640,14 @@ export declare const BrowserSafeApis: {
1640
1640
  description: () => import("react/jsx-runtime").JSX.Element;
1641
1641
  docLink: string;
1642
1642
  ssrName: string;
1643
- type: "default" | "bt709" | "bt2020-ncl" | null;
1643
+ type: "bt709" | "bt2020-ncl" | "default" | null;
1644
1644
  getValue: ({ commandLine }: {
1645
1645
  commandLine: Record<string, unknown>;
1646
1646
  }) => {
1647
1647
  source: string;
1648
- value: "default" | "bt709" | "bt2020-ncl";
1648
+ value: "bt709" | "bt2020-ncl" | "default";
1649
1649
  };
1650
- setConfig: (value: "default" | "bt709" | "bt2020-ncl" | null) => void;
1650
+ setConfig: (value: "bt709" | "bt2020-ncl" | "default" | null) => void;
1651
1651
  };
1652
1652
  readonly muted: {
1653
1653
  name: string;
@@ -1904,14 +1904,14 @@ export declare const BrowserSafeApis: {
1904
1904
  description: () => import("react/jsx-runtime").JSX.Element;
1905
1905
  docLink: string;
1906
1906
  ssrName: string;
1907
- type: "default" | "bt709" | "bt2020-ncl" | null;
1907
+ type: "bt709" | "bt2020-ncl" | "default" | null;
1908
1908
  getValue: ({ commandLine }: {
1909
1909
  commandLine: Record<string, unknown>;
1910
1910
  }) => {
1911
1911
  source: string;
1912
- value: "default" | "bt709" | "bt2020-ncl";
1912
+ value: "bt709" | "bt2020-ncl" | "default";
1913
1913
  };
1914
- setConfig: (value: "default" | "bt709" | "bt2020-ncl" | null) => void;
1914
+ setConfig: (value: "bt709" | "bt2020-ncl" | "default" | null) => void;
1915
1915
  };
1916
1916
  readonly audioBitrate: {
1917
1917
  name: string;
@@ -2249,9 +2249,9 @@ export declare const BrowserSafeApis: {
2249
2249
  };
2250
2250
  };
2251
2251
  };
2252
- codecSupportsCrf: (codec: "h264" | "h265" | "vp8" | "vp9" | "mp3" | "aac" | "wav" | "prores" | "h264-mkv" | "h264-ts" | "gif") => boolean;
2253
- codecSupportsVideoBitrate: (codec: "h264" | "h265" | "vp8" | "vp9" | "mp3" | "aac" | "wav" | "prores" | "h264-mkv" | "h264-ts" | "gif") => boolean;
2252
+ codecSupportsCrf: (codec: "h264" | "h265" | "vp8" | "vp9" | "prores" | "aac" | "mp3" | "wav" | "h264-mkv" | "h264-ts" | "gif") => boolean;
2253
+ codecSupportsVideoBitrate: (codec: "h264" | "h265" | "vp8" | "vp9" | "prores" | "aac" | "mp3" | "wav" | "h264-mkv" | "h264-ts" | "gif") => boolean;
2254
2254
  logLevels: readonly ["verbose", "info", "warn", "error"];
2255
2255
  getOutputCodecOrUndefined: () => import("./codec").CodecOrUndefined;
2256
- getExtensionFromAudioCodec: (audioCodec: "mp3" | "aac" | "pcm-16" | "opus") => "mp3" | "aac" | "wav" | "opus";
2256
+ getExtensionFromAudioCodec: (audioCodec: "opus" | "aac" | "mp3" | "pcm-16") => "opus" | "aac" | "mp3" | "wav";
2257
2257
  };
@@ -0,0 +1,3 @@
1
+ export declare const getExplicitEnv: (cwd: string) => {
2
+ DYLD_LIBRARY_PATH: string;
3
+ } | undefined;
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getExplicitEnv = void 0;
4
+ const getExplicitEnv = (cwd) => {
5
+ return process.platform === 'darwin'
6
+ ? {
7
+ // Should work out of the box, but sometimes it doesn't
8
+ // https://github.com/remotion-dev/remotion/issues/3862
9
+ DYLD_LIBRARY_PATH: cwd,
10
+ }
11
+ : undefined;
12
+ };
13
+ exports.getExplicitEnv = getExplicitEnv;
package/dist/crf.js CHANGED
@@ -74,7 +74,8 @@ const validateQualitySettings = ({ codec, crf, videoBitrate, encodingMaxRate, en
74
74
  throw new TypeError('Expected CRF to be a number, but is ' + JSON.stringify(crf));
75
75
  }
76
76
  const range = (0, exports.getValidCrfRanges)(codec);
77
- if (crf === 0 && (codec === 'h264' || codec === 'h264-mkv')) {
77
+ if (crf === 0 &&
78
+ (codec === 'h264' || codec === 'h264-mkv' || codec === 'h264-ts')) {
78
79
  throw new TypeError("Setting the CRF to 0 with a H264 codec is not supported anymore because of it's inconsistencies between platforms. Videos with CRF 0 cannot be played on iOS/macOS. 0 is a extreme value with inefficient settings which you probably do not want. Set CRF to a higher value to fix this error.");
79
80
  }
80
81
  if (crf < range[0] || crf > range[1]) {
@@ -1,6 +1,6 @@
1
1
  import type { Codec } from './codec';
2
2
  import type { FileExtension } from './file-extensions';
3
3
  import type { AudioCodec } from './options/audio-codec';
4
- export declare const getFileExtensionFromCodec: <T extends "h264" | "h265" | "vp8" | "vp9" | "mp3" | "aac" | "wav" | "prores" | "h264-mkv" | "h264-ts" | "gif">(codec: T, audioCodec: AudioCodec | null) => FileExtension;
5
- export declare const makeFileExtensionMap: () => Record<string, ("h264" | "h265" | "vp8" | "vp9" | "mp3" | "aac" | "wav" | "prores" | "h264-mkv" | "h264-ts" | "gif")[]>;
4
+ export declare const getFileExtensionFromCodec: <T extends "h264" | "h265" | "vp8" | "vp9" | "prores" | "aac" | "mp3" | "wav" | "h264-mkv" | "h264-ts" | "gif">(codec: T, audioCodec: AudioCodec | null) => FileExtension;
5
+ export declare const makeFileExtensionMap: () => Record<string, ("h264" | "h265" | "vp8" | "vp9" | "prores" | "aac" | "mp3" | "wav" | "h264-mkv" | "h264-ts" | "gif")[]>;
6
6
  export declare const defaultCodecsForFileExtension: Record<FileExtension, Codec>;
package/dist/index.d.ts CHANGED
@@ -140,8 +140,8 @@ export declare const RenderInternals: {
140
140
  validPixelFormats: readonly ["yuv420p", "yuva420p", "yuv422p", "yuv444p", "yuv420p10le", "yuv422p10le", "yuv444p10le", "yuva444p10le"];
141
141
  DEFAULT_BROWSER: "chrome";
142
142
  validateFrameRange: (frameRange: import("./frame-range").FrameRange | null) => void;
143
- DEFAULT_OPENGL_RENDERER: "angle" | "swangle" | "egl" | "swiftshader" | "vulkan" | "angle-egl" | null;
144
- validateOpenGlRenderer: (option: unknown) => "angle" | "swangle" | "egl" | "swiftshader" | "vulkan" | "angle-egl" | null;
143
+ DEFAULT_OPENGL_RENDERER: "swangle" | "angle" | "egl" | "swiftshader" | "vulkan" | "angle-egl" | null;
144
+ validateOpenGlRenderer: (option: unknown) => "swangle" | "angle" | "egl" | "swiftshader" | "vulkan" | "angle-egl" | null;
145
145
  validCodecs: readonly ["h264", "h265", "vp8", "vp9", "mp3", "aac", "wav", "prores", "h264-mkv", "h264-ts", "gif"];
146
146
  DEFAULT_PIXEL_FORMAT: "yuv420p" | "yuva420p" | "yuv422p" | "yuv444p" | "yuv420p10le" | "yuv422p10le" | "yuv444p10le" | "yuva444p10le";
147
147
  validateJpegQuality: (q: unknown) => void;
@@ -353,8 +353,8 @@ export declare const RenderInternals: {
353
353
  }) => execa.ExecaChildProcess<string>;
354
354
  validStillImageFormats: readonly ["png", "jpeg", "pdf", "webp"];
355
355
  validVideoImageFormats: readonly ["png", "jpeg", "none"];
356
- DEFAULT_STILL_IMAGE_FORMAT: "jpeg" | "png" | "webp" | "pdf";
357
- DEFAULT_VIDEO_IMAGE_FORMAT: "jpeg" | "png" | "none";
356
+ DEFAULT_STILL_IMAGE_FORMAT: "png" | "jpeg" | "pdf" | "webp";
357
+ DEFAULT_VIDEO_IMAGE_FORMAT: "png" | "jpeg" | "none";
358
358
  DEFAULT_JPEG_QUALITY: number;
359
359
  chalk: {
360
360
  enabled: () => boolean;
@@ -453,7 +453,7 @@ export declare const RenderInternals: {
453
453
  frame: number;
454
454
  serializedInputPropsWithCustomSchema: string;
455
455
  serializedResolvedPropsWithCustomSchema: string;
456
- imageFormat: "jpeg" | "png" | "webp" | "pdf";
456
+ imageFormat: "png" | "jpeg" | "pdf" | "webp";
457
457
  jpegQuality: number;
458
458
  puppeteerInstance: HeadlessBrowser | null;
459
459
  envVariables: Record<string, string>;
package/dist/index.js CHANGED
@@ -110,6 +110,7 @@ Object.defineProperty(exports, "stitchFramesToVideo", { enumerable: true, get: f
110
110
  var validate_output_filename_1 = require("./validate-output-filename");
111
111
  Object.defineProperty(exports, "validateOutputFilename", { enumerable: true, get: function () { return validate_output_filename_1.validateOutputFilename; } });
112
112
  const download_map_1 = require("./assets/download-map");
113
+ const browser_instances_1 = require("./browser-instances");
113
114
  const codec_supports_media_1 = require("./codec-supports-media");
114
115
  const make_file_executable_1 = require("./compositor/make-file-executable");
115
116
  const ensure_browser_2 = require("./ensure-browser");
@@ -131,7 +132,7 @@ exports.RenderInternals = {
131
132
  getRealFrameRange: get_frame_to_render_1.getRealFrameRange,
132
133
  validatePuppeteerTimeout: validate_puppeteer_timeout_1.validatePuppeteerTimeout,
133
134
  downloadFile: download_file_1.downloadFile,
134
- killAllBrowsers: open_browser_1.killAllBrowsers,
135
+ killAllBrowsers: browser_instances_1.killAllBrowsers,
135
136
  parseStack: parse_browser_error_stack_1.parseStack,
136
137
  symbolicateError: symbolicate_error_1.symbolicateError,
137
138
  SymbolicateableError: symbolicateable_error_1.SymbolicateableError,
@@ -13,7 +13,6 @@ export type ChromiumOptions = {
13
13
  userAgent?: string | null;
14
14
  enableMultiProcessOnLinux?: boolean;
15
15
  };
16
- export declare const killAllBrowsers: () => Promise<void>;
17
16
  type InternalOpenBrowserOptions = {
18
17
  browserExecutable: string | null;
19
18
  chromiumOptions: ChromiumOptions;
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.openBrowser = exports.internalOpenBrowser = exports.killAllBrowsers = void 0;
3
+ exports.openBrowser = exports.internalOpenBrowser = void 0;
4
+ const browser_instances_1 = require("./browser-instances");
4
5
  const browser_download_progress_bar_1 = require("./browser/browser-download-progress-bar");
5
6
  const node_1 = require("./browser/node");
6
7
  const ensure_browser_1 = require("./ensure-browser");
@@ -32,16 +33,6 @@ const getOpenGlRenderer = (option) => {
32
33
  }
33
34
  return [`--use-gl=${renderer}`];
34
35
  };
35
- const browserInstances = [];
36
- const killAllBrowsers = async () => {
37
- for (const browser of browserInstances) {
38
- try {
39
- await browser.close(true, 'info', false);
40
- }
41
- catch (err) { }
42
- }
43
- };
44
- exports.killAllBrowsers = killAllBrowsers;
45
36
  const internalOpenBrowser = async ({ browser, browserExecutable, chromiumOptions, forceDeviceScaleFactor, indent, viewport, logLevel, onBrowserDownload, }) => {
46
37
  var _a, _b, _c;
47
38
  // @ts-expect-error Firefox
@@ -144,7 +135,7 @@ const internalOpenBrowser = async ({ browser, browserExecutable, chromiumOptions
144
135
  });
145
136
  const pages = await browserInstance.pages(logLevel, indent);
146
137
  await pages[0].close();
147
- browserInstances.push(browserInstance);
138
+ (0, browser_instances_1.addHeadlessBrowser)(browserInstance);
148
139
  return browserInstance;
149
140
  };
150
141
  exports.internalOpenBrowser = internalOpenBrowser;
@@ -24,25 +24,25 @@ export declare const defaultAudioCodecs: {
24
24
  [k in 'compressed' | 'lossless']: (typeof supportedAudioCodecs)[key][number] | null;
25
25
  };
26
26
  };
27
- export declare const getExtensionFromAudioCodec: (audioCodec: AudioCodec) => "mp3" | "aac" | "wav" | "opus";
27
+ export declare const getExtensionFromAudioCodec: (audioCodec: AudioCodec) => "opus" | "aac" | "mp3" | "wav";
28
28
  export declare const resolveAudioCodec: ({ codec, setting, preferLossless, separateAudioTo, }: {
29
29
  setting: AudioCodec | null;
30
30
  codec: Codec;
31
31
  preferLossless: boolean;
32
32
  separateAudioTo: string | null;
33
- }) => "mp3" | "aac" | "pcm-16" | "opus" | null;
33
+ }) => "opus" | "aac" | "mp3" | "pcm-16" | null;
34
34
  export declare const getDefaultAudioCodec: ({ codec, preferLossless, }: {
35
35
  codec: Codec;
36
36
  preferLossless: boolean;
37
37
  }) => AudioCodec | null;
38
38
  export declare const audioCodecOption: {
39
39
  cliFlag: "audio-codec";
40
- setConfig: (audioCodec: "mp3" | "aac" | "pcm-16" | "opus" | null) => void;
40
+ setConfig: (audioCodec: "opus" | "aac" | "mp3" | "pcm-16" | null) => void;
41
41
  getValue: ({ commandLine }: {
42
42
  commandLine: Record<string, unknown>;
43
43
  }) => {
44
44
  source: string;
45
- value: "mp3" | "aac" | "pcm-16" | "opus";
45
+ value: "opus" | "aac" | "mp3" | "pcm-16";
46
46
  } | {
47
47
  source: string;
48
48
  value: null;
@@ -51,6 +51,6 @@ export declare const audioCodecOption: {
51
51
  docLink: string;
52
52
  name: string;
53
53
  ssrName: "audioCodec";
54
- type: "mp3" | "aac" | "pcm-16" | "opus";
54
+ type: "opus" | "aac" | "mp3" | "pcm-16";
55
55
  };
56
56
  export {};
@@ -7,13 +7,13 @@ export declare const colorSpaceOption: {
7
7
  description: () => import("react/jsx-runtime").JSX.Element;
8
8
  docLink: string;
9
9
  ssrName: string;
10
- type: "default" | "bt709" | "bt2020-ncl" | null;
10
+ type: "bt709" | "bt2020-ncl" | "default" | null;
11
11
  getValue: ({ commandLine }: {
12
12
  commandLine: Record<string, unknown>;
13
13
  }) => {
14
14
  source: string;
15
- value: "default" | "bt709" | "bt2020-ncl";
15
+ value: "bt709" | "bt2020-ncl" | "default";
16
16
  };
17
- setConfig: (value: "default" | "bt709" | "bt2020-ncl" | null) => void;
17
+ setConfig: (value: "bt709" | "bt2020-ncl" | "default" | null) => void;
18
18
  };
19
19
  export declare const validateColorSpace: (option: unknown) => void;
@@ -1,19 +1,19 @@
1
1
  export declare const validOpenGlRenderers: readonly ["swangle", "angle", "egl", "swiftshader", "vulkan", "angle-egl"];
2
2
  export type OpenGlRenderer = (typeof validOpenGlRenderers)[number];
3
3
  export declare const DEFAULT_OPENGL_RENDERER: OpenGlRenderer | null;
4
- export declare const getChromiumOpenGlRenderer: () => "angle" | "swangle" | "egl" | "swiftshader" | "vulkan" | "angle-egl" | null;
4
+ export declare const getChromiumOpenGlRenderer: () => "swangle" | "angle" | "egl" | "swiftshader" | "vulkan" | "angle-egl" | null;
5
5
  export declare const setChromiumOpenGlRenderer: (renderer: OpenGlRenderer) => void;
6
6
  export declare const glOption: {
7
7
  cliFlag: "gl";
8
8
  docLink: string;
9
9
  name: string;
10
- type: "angle" | "swangle" | "egl" | "swiftshader" | "vulkan" | "angle-egl" | null;
10
+ type: "swangle" | "angle" | "egl" | "swiftshader" | "vulkan" | "angle-egl" | null;
11
11
  ssrName: string;
12
12
  description: () => import("react/jsx-runtime").JSX.Element;
13
13
  getValue: ({ commandLine }: {
14
14
  commandLine: Record<string, unknown>;
15
15
  }) => {
16
- value: "angle" | "swangle" | "egl" | "swiftshader" | "vulkan" | "angle-egl";
16
+ value: "swangle" | "angle" | "egl" | "swiftshader" | "vulkan" | "angle-egl";
17
17
  source: string;
18
18
  } | {
19
19
  value: null;
@@ -2,12 +2,12 @@ import type { AnyRemotionOption } from './option';
2
2
  export declare const allOptions: {
3
3
  audioCodecOption: {
4
4
  cliFlag: "audio-codec";
5
- setConfig: (audioCodec: "mp3" | "aac" | "pcm-16" | "opus" | null) => void;
5
+ setConfig: (audioCodec: "opus" | "aac" | "mp3" | "pcm-16" | null) => void;
6
6
  getValue: ({ commandLine }: {
7
7
  commandLine: Record<string, unknown>;
8
8
  }) => {
9
9
  source: string;
10
- value: "mp3" | "aac" | "pcm-16" | "opus";
10
+ value: "opus" | "aac" | "mp3" | "pcm-16";
11
11
  } | {
12
12
  source: string;
13
13
  value: null;
@@ -16,7 +16,7 @@ export declare const allOptions: {
16
16
  docLink: string;
17
17
  name: string;
18
18
  ssrName: "audioCodec";
19
- type: "mp3" | "aac" | "pcm-16" | "opus";
19
+ type: "opus" | "aac" | "mp3" | "pcm-16";
20
20
  };
21
21
  scaleOption: {
22
22
  name: string;
@@ -135,17 +135,17 @@ export declare const allOptions: {
135
135
  description: () => import("react/jsx-runtime").JSX.Element;
136
136
  ssrName: string;
137
137
  docLink: string;
138
- type: "h264" | "h265" | "vp8" | "vp9" | "mp3" | "aac" | "wav" | "prores" | "h264-mkv" | "h264-ts" | "gif";
138
+ type: "h264" | "h265" | "vp8" | "vp9" | "prores" | "aac" | "mp3" | "wav" | "h264-mkv" | "h264-ts" | "gif";
139
139
  getValue: ({ commandLine }: {
140
140
  commandLine: Record<string, unknown>;
141
141
  }, { compositionCodec, configFile, downloadName, outName, uiCodec, }: {
142
142
  outName: string | null;
143
143
  downloadName: string | null;
144
- configFile: "h264" | "h265" | "vp8" | "vp9" | "mp3" | "aac" | "wav" | "prores" | "h264-mkv" | "h264-ts" | "gif" | null;
145
- uiCodec: "h264" | "h265" | "vp8" | "vp9" | "mp3" | "aac" | "wav" | "prores" | "h264-mkv" | "h264-ts" | "gif" | null;
146
- compositionCodec: "h264" | "h265" | "vp8" | "vp9" | "mp3" | "aac" | "wav" | "prores" | "h264-mkv" | "h264-ts" | "gif" | null;
144
+ configFile: "h264" | "h265" | "vp8" | "vp9" | "prores" | "aac" | "mp3" | "wav" | "h264-mkv" | "h264-ts" | "gif" | null;
145
+ uiCodec: "h264" | "h265" | "vp8" | "vp9" | "prores" | "aac" | "mp3" | "wav" | "h264-mkv" | "h264-ts" | "gif" | null;
146
+ compositionCodec: "h264" | "h265" | "vp8" | "vp9" | "prores" | "aac" | "mp3" | "wav" | "h264-mkv" | "h264-ts" | "gif" | null;
147
147
  }) => {
148
- value: "h264" | "h265" | "vp8" | "vp9" | "mp3" | "aac" | "wav" | "prores" | "h264-mkv" | "h264-ts" | "gif";
148
+ value: "h264" | "h265" | "vp8" | "vp9" | "prores" | "aac" | "mp3" | "wav" | "h264-mkv" | "h264-ts" | "gif";
149
149
  source: string;
150
150
  };
151
151
  setConfig: (newCodec: import("..").CodecOrUndefined) => void;
@@ -184,14 +184,14 @@ export declare const allOptions: {
184
184
  description: () => import("react/jsx-runtime").JSX.Element;
185
185
  docLink: string;
186
186
  ssrName: string;
187
- type: "default" | "bt709" | "bt2020-ncl" | null;
187
+ type: "bt709" | "bt2020-ncl" | "default" | null;
188
188
  getValue: ({ commandLine }: {
189
189
  commandLine: Record<string, unknown>;
190
190
  }) => {
191
191
  source: string;
192
- value: "default" | "bt709" | "bt2020-ncl";
192
+ value: "bt709" | "bt2020-ncl" | "default";
193
193
  };
194
- setConfig: (value: "default" | "bt709" | "bt2020-ncl" | null) => void;
194
+ setConfig: (value: "bt709" | "bt2020-ncl" | "default" | null) => void;
195
195
  };
196
196
  deleteAfterOption: {
197
197
  name: string;
@@ -245,19 +245,19 @@ export declare const allOptions: {
245
245
  cliFlag: "gl";
246
246
  docLink: string;
247
247
  name: string;
248
- type: "angle" | "swangle" | "egl" | "swiftshader" | "vulkan" | "angle-egl" | null;
248
+ type: "swangle" | "angle" | "egl" | "swiftshader" | "vulkan" | "angle-egl" | null;
249
249
  ssrName: string;
250
250
  description: () => import("react/jsx-runtime").JSX.Element;
251
251
  getValue: ({ commandLine }: {
252
252
  commandLine: Record<string, unknown>;
253
253
  }) => {
254
- value: "angle" | "swangle" | "egl" | "swiftshader" | "vulkan" | "angle-egl";
254
+ value: "swangle" | "angle" | "egl" | "swiftshader" | "vulkan" | "angle-egl";
255
255
  source: string;
256
256
  } | {
257
257
  value: null;
258
258
  source: string;
259
259
  };
260
- setConfig: (value: "angle" | "swangle" | "egl" | "swiftshader" | "vulkan" | "angle-egl" | null) => void;
260
+ setConfig: (value: "swangle" | "angle" | "egl" | "swiftshader" | "vulkan" | "angle-egl" | null) => void;
261
261
  };
262
262
  enableLambdaInsights: {
263
263
  name: string;
@@ -108,14 +108,14 @@ export declare const optionsMap: {
108
108
  description: () => import("react/jsx-runtime").JSX.Element;
109
109
  docLink: string;
110
110
  ssrName: string;
111
- type: "default" | "bt709" | "bt2020-ncl" | null;
111
+ type: "bt709" | "bt2020-ncl" | "default" | null;
112
112
  getValue: ({ commandLine }: {
113
113
  commandLine: Record<string, unknown>;
114
114
  }) => {
115
115
  source: string;
116
- value: "default" | "bt709" | "bt2020-ncl";
116
+ value: "bt709" | "bt2020-ncl" | "default";
117
117
  };
118
- setConfig: (value: "default" | "bt709" | "bt2020-ncl" | null) => void;
118
+ setConfig: (value: "bt709" | "bt2020-ncl" | "default" | null) => void;
119
119
  };
120
120
  readonly codec: {
121
121
  name: string;
@@ -123,17 +123,17 @@ export declare const optionsMap: {
123
123
  description: () => import("react/jsx-runtime").JSX.Element;
124
124
  ssrName: string;
125
125
  docLink: string;
126
- type: "h264" | "h265" | "vp8" | "vp9" | "mp3" | "aac" | "wav" | "prores" | "h264-mkv" | "h264-ts" | "gif";
126
+ type: "h264" | "h265" | "vp8" | "vp9" | "prores" | "aac" | "mp3" | "wav" | "h264-mkv" | "h264-ts" | "gif";
127
127
  getValue: ({ commandLine }: {
128
128
  commandLine: Record<string, unknown>;
129
129
  }, { compositionCodec, configFile, downloadName, outName, uiCodec, }: {
130
130
  outName: string | null;
131
131
  downloadName: string | null;
132
- configFile: "h264" | "h265" | "vp8" | "vp9" | "mp3" | "aac" | "wav" | "prores" | "h264-mkv" | "h264-ts" | "gif" | null;
133
- uiCodec: "h264" | "h265" | "vp8" | "vp9" | "mp3" | "aac" | "wav" | "prores" | "h264-mkv" | "h264-ts" | "gif" | null;
134
- compositionCodec: "h264" | "h265" | "vp8" | "vp9" | "mp3" | "aac" | "wav" | "prores" | "h264-mkv" | "h264-ts" | "gif" | null;
132
+ configFile: "h264" | "h265" | "vp8" | "vp9" | "prores" | "aac" | "mp3" | "wav" | "h264-mkv" | "h264-ts" | "gif" | null;
133
+ uiCodec: "h264" | "h265" | "vp8" | "vp9" | "prores" | "aac" | "mp3" | "wav" | "h264-mkv" | "h264-ts" | "gif" | null;
134
+ compositionCodec: "h264" | "h265" | "vp8" | "vp9" | "prores" | "aac" | "mp3" | "wav" | "h264-mkv" | "h264-ts" | "gif" | null;
135
135
  }) => {
136
- value: "h264" | "h265" | "vp8" | "vp9" | "mp3" | "aac" | "wav" | "prores" | "h264-mkv" | "h264-ts" | "gif";
136
+ value: "h264" | "h265" | "vp8" | "vp9" | "prores" | "aac" | "mp3" | "wav" | "h264-mkv" | "h264-ts" | "gif";
137
137
  source: string;
138
138
  };
139
139
  setConfig: (newCodec: import("..").CodecOrUndefined) => void;
@@ -287,12 +287,12 @@ export declare const optionsMap: {
287
287
  };
288
288
  readonly audioCodec: {
289
289
  cliFlag: "audio-codec";
290
- setConfig: (audioCodec: "mp3" | "aac" | "pcm-16" | "opus" | null) => void;
290
+ setConfig: (audioCodec: "opus" | "aac" | "mp3" | "pcm-16" | null) => void;
291
291
  getValue: ({ commandLine }: {
292
292
  commandLine: Record<string, unknown>;
293
293
  }) => {
294
294
  source: string;
295
- value: "mp3" | "aac" | "pcm-16" | "opus";
295
+ value: "opus" | "aac" | "mp3" | "pcm-16";
296
296
  } | {
297
297
  source: string;
298
298
  value: null;
@@ -301,7 +301,7 @@ export declare const optionsMap: {
301
301
  docLink: string;
302
302
  name: string;
303
303
  ssrName: "audioCodec";
304
- type: "mp3" | "aac" | "pcm-16" | "opus";
304
+ type: "opus" | "aac" | "mp3" | "pcm-16";
305
305
  };
306
306
  readonly onBrowserDownload: {
307
307
  name: string;
@@ -848,14 +848,14 @@ export declare const optionsMap: {
848
848
  description: () => import("react/jsx-runtime").JSX.Element;
849
849
  docLink: string;
850
850
  ssrName: string;
851
- type: "default" | "bt709" | "bt2020-ncl" | null;
851
+ type: "bt709" | "bt2020-ncl" | "default" | null;
852
852
  getValue: ({ commandLine }: {
853
853
  commandLine: Record<string, unknown>;
854
854
  }) => {
855
855
  source: string;
856
- value: "default" | "bt709" | "bt2020-ncl";
856
+ value: "bt709" | "bt2020-ncl" | "default";
857
857
  };
858
- setConfig: (value: "default" | "bt709" | "bt2020-ncl" | null) => void;
858
+ setConfig: (value: "bt709" | "bt2020-ncl" | "default" | null) => void;
859
859
  };
860
860
  readonly muted: {
861
861
  name: string;
@@ -1112,14 +1112,14 @@ export declare const optionsMap: {
1112
1112
  description: () => import("react/jsx-runtime").JSX.Element;
1113
1113
  docLink: string;
1114
1114
  ssrName: string;
1115
- type: "default" | "bt709" | "bt2020-ncl" | null;
1115
+ type: "bt709" | "bt2020-ncl" | "default" | null;
1116
1116
  getValue: ({ commandLine }: {
1117
1117
  commandLine: Record<string, unknown>;
1118
1118
  }) => {
1119
1119
  source: string;
1120
- value: "default" | "bt709" | "bt2020-ncl";
1120
+ value: "bt709" | "bt2020-ncl" | "default";
1121
1121
  };
1122
- setConfig: (value: "default" | "bt709" | "bt2020-ncl" | null) => void;
1122
+ setConfig: (value: "bt709" | "bt2020-ncl" | "default" | null) => void;
1123
1123
  };
1124
1124
  readonly audioBitrate: {
1125
1125
  name: string;
@@ -6,7 +6,7 @@ export declare const videoCodecOption: {
6
6
  description: () => import("react/jsx-runtime").JSX.Element;
7
7
  ssrName: string;
8
8
  docLink: string;
9
- type: "h264" | "h265" | "vp8" | "vp9" | "mp3" | "aac" | "wav" | "prores" | "h264-mkv" | "h264-ts" | "gif";
9
+ type: "h264" | "h265" | "vp8" | "vp9" | "prores" | "aac" | "mp3" | "wav" | "h264-mkv" | "h264-ts" | "gif";
10
10
  getValue: ({ commandLine }: {
11
11
  commandLine: Record<string, unknown>;
12
12
  }, { compositionCodec, configFile, downloadName, outName, uiCodec, }: {
@@ -16,7 +16,10 @@ exports.x264PresetOptions = [
16
16
  ];
17
17
  let preset = null;
18
18
  const validateSelectedCodecAndPresetCombination = ({ codec, x264Preset, }) => {
19
- if (x264Preset !== null && codec !== 'h264' && codec !== 'h264-mkv') {
19
+ if (x264Preset !== null &&
20
+ codec !== 'h264' &&
21
+ codec !== 'h264-mkv' &&
22
+ codec !== 'h264-ts') {
20
23
  throw new TypeError(`You have set a x264 preset but the codec is "${codec}". Set the codec to "h264" or remove the Preset profile.`);
21
24
  }
22
25
  if (x264Preset !== null &&
@@ -2,5 +2,5 @@ import type { Codec } from './codec';
2
2
  export declare const validPixelFormats: readonly ["yuv420p", "yuva420p", "yuv422p", "yuv444p", "yuv420p10le", "yuv422p10le", "yuv444p10le", "yuva444p10le"];
3
3
  export type PixelFormat = (typeof validPixelFormats)[number];
4
4
  export declare const DEFAULT_PIXEL_FORMAT: PixelFormat;
5
- export declare const validPixelFormatsForCodec: (codec: Codec) => readonly ["yuv420p", "yuva420p", "yuv422p", "yuv444p", "yuv420p10le", "yuv422p10le", "yuv444p10le", "yuva444p10le"] | ("yuv420p" | "yuva420p" | "yuv422p" | "yuv444p" | "yuv420p10le" | "yuv422p10le" | "yuv444p10le" | "yuva444p10le")[];
5
+ export declare const validPixelFormatsForCodec: (codec: Codec) => readonly ["yuv420p", "yuva420p", "yuv422p", "yuv444p", "yuv420p10le", "yuv422p10le", "yuv444p10le", "yuva444p10le"] | ("yuv420p" | "yuv422p" | "yuv444p" | "yuva420p" | "yuv420p10le" | "yuv422p10le" | "yuv444p10le" | "yuva444p10le")[];
6
6
  export declare const validateSelectedPixelFormatAndCodecCombination: (pixelFormat: PixelFormat | undefined, codec: Codec) => undefined;
package/dist/pure.d.ts CHANGED
@@ -4,10 +4,10 @@ export declare const NoReactAPIs: {
4
4
  indent: boolean;
5
5
  }, ...unknown[]], R>(fn: (...args: A) => Promise<R>) => (...args: A) => Promise<R>;
6
6
  getExtensionOfFilename: (filename: string | null) => string | null;
7
- getFileExtensionFromCodec: <T extends "h264" | "h265" | "vp8" | "vp9" | "mp3" | "aac" | "wav" | "prores" | "h264-mkv" | "h264-ts" | "gif">(codec: T, audioCodec: "mp3" | "aac" | "pcm-16" | "opus" | null) => import("./file-extensions").FileExtension;
8
- validateOutputFilename: <T_1 extends "h264" | "h265" | "vp8" | "vp9" | "mp3" | "aac" | "wav" | "prores" | "h264-mkv" | "h264-ts" | "gif">({ codec, audioCodecSetting, extension, preferLossless, separateAudioTo, }: {
7
+ getFileExtensionFromCodec: <T extends "h264" | "h265" | "vp8" | "vp9" | "prores" | "aac" | "mp3" | "wav" | "h264-mkv" | "h264-ts" | "gif">(codec: T, audioCodec: "opus" | "aac" | "mp3" | "pcm-16" | null) => import("./file-extensions").FileExtension;
8
+ validateOutputFilename: <T_1 extends "h264" | "h265" | "vp8" | "vp9" | "prores" | "aac" | "mp3" | "wav" | "h264-mkv" | "h264-ts" | "gif">({ codec, audioCodecSetting, extension, preferLossless, separateAudioTo, }: {
9
9
  codec: T_1;
10
- audioCodecSetting: "mp3" | "aac" | "pcm-16" | "opus" | null;
10
+ audioCodecSetting: "opus" | "aac" | "mp3" | "pcm-16" | null;
11
11
  extension: string;
12
12
  preferLossless: boolean;
13
13
  separateAudioTo: string | null;
@@ -6,7 +6,10 @@ const validateEvenDimensionsWithCodec = ({ width, height, codec, scale, wantsIma
6
6
  if (wantsImageSequence) {
7
7
  return;
8
8
  }
9
- if (codec !== 'h264-mkv' && codec !== 'h264' && codec !== 'h265') {
9
+ if (codec !== 'h264-mkv' &&
10
+ codec !== 'h264' &&
11
+ codec !== 'h265' &&
12
+ codec !== 'h264-ts') {
10
13
  return;
11
14
  }
12
15
  const actualWidth = width * scale;
@@ -1,5 +1,5 @@
1
1
  import type { AudioCodec } from './options/audio-codec';
2
- export declare const validateOutputFilename: <T extends "h264" | "h265" | "vp8" | "vp9" | "mp3" | "aac" | "wav" | "prores" | "h264-mkv" | "h264-ts" | "gif">({ codec, audioCodecSetting, extension, preferLossless, separateAudioTo, }: {
2
+ export declare const validateOutputFilename: <T extends "h264" | "h265" | "vp8" | "vp9" | "prores" | "aac" | "mp3" | "wav" | "h264-mkv" | "h264-ts" | "gif">({ codec, audioCodecSetting, extension, preferLossless, separateAudioTo, }: {
3
3
  codec: T;
4
4
  audioCodecSetting: 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.159",
3
+ "version": "4.0.160",
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.159"
21
+ "remotion": "4.0.160"
22
22
  },
23
23
  "peerDependencies": {
24
24
  "react": ">=16.8.0",
@@ -43,13 +43,13 @@
43
43
  "@types/ws": "8.5.10"
44
44
  },
45
45
  "optionalDependencies": {
46
- "@remotion/compositor-darwin-arm64": "4.0.159",
47
- "@remotion/compositor-linux-arm64-gnu": "4.0.159",
48
- "@remotion/compositor-darwin-x64": "4.0.159",
49
- "@remotion/compositor-linux-x64-gnu": "4.0.159",
50
- "@remotion/compositor-linux-arm64-musl": "4.0.159",
51
- "@remotion/compositor-linux-x64-musl": "4.0.159",
52
- "@remotion/compositor-win32-x64-msvc": "4.0.159"
46
+ "@remotion/compositor-linux-arm64-gnu": "4.0.160",
47
+ "@remotion/compositor-darwin-arm64": "4.0.160",
48
+ "@remotion/compositor-darwin-x64": "4.0.160",
49
+ "@remotion/compositor-linux-x64-gnu": "4.0.160",
50
+ "@remotion/compositor-linux-arm64-musl": "4.0.160",
51
+ "@remotion/compositor-linux-x64-musl": "4.0.160",
52
+ "@remotion/compositor-win32-x64-msvc": "4.0.160"
53
53
  },
54
54
  "keywords": [
55
55
  "remotion",