@remotion/renderer 4.0.50 → 4.0.51
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 +45 -37
- package/dist/client.js +2 -29
- package/dist/get-extension-from-codec.d.ts +2 -2
- package/dist/get-silent-parts.d.ts +1 -1
- package/dist/index.d.ts +24 -22
- package/dist/index.js +7 -7
- package/dist/logger.d.ts +1 -1
- package/dist/open-browser.d.ts +2 -2
- package/dist/open-browser.js +6 -10
- package/dist/options/color-space.d.ts +1 -1
- package/dist/options/gl.d.ts +13 -0
- package/dist/options/gl.js +36 -0
- package/dist/options/index.d.ts +123 -0
- package/dist/options/index.js +35 -0
- package/dist/serve-static.js +6 -2
- package/dist/validate-output-filename.d.ts +1 -1
- package/package.json +9 -9
- package/dist/options/render-expiry-days.d.ts +0 -8
- package/dist/options/render-expiry-days.js +0 -14
- package/dist/presets-profile.d.ts +0 -7
- package/dist/presets-profile.js +0 -27
- package/dist/validate-opengl-renderer.d.ts +0 -4
- package/dist/validate-opengl-renderer.js +0 -21
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 "h264" | "h265" | "vp8" | "vp9" | "
|
|
3
|
+
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;
|
|
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: "h264" | "h265" | "vp8" | "vp9" | "
|
|
7
|
-
getValidCrfRanges: (codec: "h264" | "h265" | "vp8" | "vp9" | "
|
|
8
|
-
isAudioCodec: (codec: "h264" | "h265" | "vp8" | "vp9" | "
|
|
6
|
+
getDefaultCrfForCodec: (codec: "h264" | "h265" | "vp8" | "vp9" | "mp3" | "aac" | "wav" | "prores" | "h264-mkv" | "gif") => number;
|
|
7
|
+
getValidCrfRanges: (codec: "h264" | "h265" | "vp8" | "vp9" | "mp3" | "aac" | "wav" | "prores" | "h264-mkv" | "gif") => [number, number];
|
|
8
|
+
isAudioCodec: (codec: "h264" | "h265" | "vp8" | "vp9" | "mp3" | "aac" | "wav" | "prores" | "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"];
|
|
@@ -26,11 +26,11 @@ export declare const BrowserSafeApis: {
|
|
|
26
26
|
h264: {
|
|
27
27
|
default: import("./file-extensions").FileExtension;
|
|
28
28
|
forAudioCodec: {
|
|
29
|
-
|
|
29
|
+
mp3: {
|
|
30
30
|
possible: import("./file-extensions").FileExtension[];
|
|
31
31
|
default: import("./file-extensions").FileExtension;
|
|
32
32
|
};
|
|
33
|
-
|
|
33
|
+
aac: {
|
|
34
34
|
possible: import("./file-extensions").FileExtension[];
|
|
35
35
|
default: import("./file-extensions").FileExtension;
|
|
36
36
|
};
|
|
@@ -56,11 +56,11 @@ export declare const BrowserSafeApis: {
|
|
|
56
56
|
vp8: {
|
|
57
57
|
default: import("./file-extensions").FileExtension;
|
|
58
58
|
forAudioCodec: {
|
|
59
|
-
|
|
59
|
+
"pcm-16": {
|
|
60
60
|
possible: import("./file-extensions").FileExtension[];
|
|
61
61
|
default: import("./file-extensions").FileExtension;
|
|
62
62
|
};
|
|
63
|
-
|
|
63
|
+
opus: {
|
|
64
64
|
possible: import("./file-extensions").FileExtension[];
|
|
65
65
|
default: import("./file-extensions").FileExtension;
|
|
66
66
|
};
|
|
@@ -69,20 +69,20 @@ export declare const BrowserSafeApis: {
|
|
|
69
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
|
-
|
|
76
|
+
opus: {
|
|
77
77
|
possible: import("./file-extensions").FileExtension[];
|
|
78
78
|
default: import("./file-extensions").FileExtension;
|
|
79
79
|
};
|
|
80
80
|
};
|
|
81
81
|
};
|
|
82
|
-
|
|
82
|
+
mp3: {
|
|
83
83
|
default: import("./file-extensions").FileExtension;
|
|
84
84
|
forAudioCodec: {
|
|
85
|
-
|
|
85
|
+
mp3: {
|
|
86
86
|
possible: import("./file-extensions").FileExtension[];
|
|
87
87
|
default: import("./file-extensions").FileExtension;
|
|
88
88
|
};
|
|
@@ -105,22 +105,22 @@ export declare const BrowserSafeApis: {
|
|
|
105
105
|
};
|
|
106
106
|
};
|
|
107
107
|
};
|
|
108
|
-
|
|
108
|
+
wav: {
|
|
109
109
|
default: import("./file-extensions").FileExtension;
|
|
110
110
|
forAudioCodec: {
|
|
111
|
-
mp3: {
|
|
112
|
-
possible: import("./file-extensions").FileExtension[];
|
|
113
|
-
default: import("./file-extensions").FileExtension;
|
|
114
|
-
};
|
|
115
111
|
"pcm-16": {
|
|
116
112
|
possible: import("./file-extensions").FileExtension[];
|
|
117
113
|
default: import("./file-extensions").FileExtension;
|
|
118
114
|
};
|
|
119
115
|
};
|
|
120
116
|
};
|
|
121
|
-
|
|
117
|
+
prores: {
|
|
122
118
|
default: import("./file-extensions").FileExtension;
|
|
123
119
|
forAudioCodec: {
|
|
120
|
+
aac: {
|
|
121
|
+
possible: import("./file-extensions").FileExtension[];
|
|
122
|
+
default: import("./file-extensions").FileExtension;
|
|
123
|
+
};
|
|
124
124
|
"pcm-16": {
|
|
125
125
|
possible: import("./file-extensions").FileExtension[];
|
|
126
126
|
default: import("./file-extensions").FileExtension;
|
|
@@ -147,37 +147,37 @@ export declare const BrowserSafeApis: {
|
|
|
147
147
|
};
|
|
148
148
|
defaultAudioCodecs: {
|
|
149
149
|
h264: {
|
|
150
|
-
compressed: "
|
|
151
|
-
lossless: "
|
|
150
|
+
compressed: "mp3" | "aac" | "pcm-16" | null;
|
|
151
|
+
lossless: "mp3" | "aac" | "pcm-16" | null;
|
|
152
152
|
};
|
|
153
153
|
h265: {
|
|
154
154
|
compressed: "aac" | "pcm-16" | null;
|
|
155
155
|
lossless: "aac" | "pcm-16" | null;
|
|
156
156
|
};
|
|
157
157
|
vp8: {
|
|
158
|
-
compressed: "
|
|
159
|
-
lossless: "
|
|
158
|
+
compressed: "pcm-16" | "opus" | null;
|
|
159
|
+
lossless: "pcm-16" | "opus" | null;
|
|
160
160
|
};
|
|
161
161
|
vp9: {
|
|
162
|
-
compressed: "
|
|
163
|
-
lossless: "
|
|
162
|
+
compressed: "pcm-16" | "opus" | null;
|
|
163
|
+
lossless: "pcm-16" | "opus" | null;
|
|
164
164
|
};
|
|
165
|
-
|
|
166
|
-
compressed: "
|
|
167
|
-
lossless: "
|
|
165
|
+
mp3: {
|
|
166
|
+
compressed: "mp3" | "pcm-16" | null;
|
|
167
|
+
lossless: "mp3" | "pcm-16" | null;
|
|
168
168
|
};
|
|
169
169
|
aac: {
|
|
170
170
|
compressed: "aac" | "pcm-16" | null;
|
|
171
171
|
lossless: "aac" | "pcm-16" | null;
|
|
172
172
|
};
|
|
173
|
-
mp3: {
|
|
174
|
-
compressed: "mp3" | "pcm-16" | null;
|
|
175
|
-
lossless: "mp3" | "pcm-16" | null;
|
|
176
|
-
};
|
|
177
173
|
wav: {
|
|
178
174
|
compressed: "pcm-16" | null;
|
|
179
175
|
lossless: "pcm-16" | null;
|
|
180
176
|
};
|
|
177
|
+
prores: {
|
|
178
|
+
compressed: "aac" | "pcm-16" | null;
|
|
179
|
+
lossless: "aac" | "pcm-16" | null;
|
|
180
|
+
};
|
|
181
181
|
"h264-mkv": {
|
|
182
182
|
compressed: "mp3" | "pcm-16" | null;
|
|
183
183
|
lossless: "mp3" | "pcm-16" | null;
|
|
@@ -187,10 +187,10 @@ export declare const BrowserSafeApis: {
|
|
|
187
187
|
lossless: null;
|
|
188
188
|
};
|
|
189
189
|
};
|
|
190
|
-
defaultCodecsForFileExtension: Record<import("./file-extensions").FileExtension, "h264" | "h265" | "vp8" | "vp9" | "
|
|
191
|
-
validateOutputFilename: <T_1 extends "h264" | "h265" | "vp8" | "vp9" | "
|
|
190
|
+
defaultCodecsForFileExtension: Record<import("./file-extensions").FileExtension, "h264" | "h265" | "vp8" | "vp9" | "mp3" | "aac" | "wav" | "prores" | "h264-mkv" | "gif">;
|
|
191
|
+
validateOutputFilename: <T_1 extends "h264" | "h265" | "vp8" | "vp9" | "mp3" | "aac" | "wav" | "prores" | "h264-mkv" | "gif">({ codec, audioCodec, extension, preferLossless, }: {
|
|
192
192
|
codec: T_1;
|
|
193
|
-
audioCodec: "
|
|
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: "
|
|
284
|
+
type: "default" | "bt709";
|
|
285
285
|
};
|
|
286
286
|
deleteAfterOption: {
|
|
287
287
|
name: string;
|
|
@@ -307,6 +307,14 @@ export declare const BrowserSafeApis: {
|
|
|
307
307
|
docLink: string;
|
|
308
308
|
type: boolean;
|
|
309
309
|
};
|
|
310
|
+
glOption: {
|
|
311
|
+
cliFlag: string;
|
|
312
|
+
docLink: string;
|
|
313
|
+
name: string;
|
|
314
|
+
type: "angle" | "swangle" | "egl" | "swiftshader" | "vulkan" | "angle-egl";
|
|
315
|
+
ssrName: string;
|
|
316
|
+
description: () => JSX.Element;
|
|
317
|
+
};
|
|
310
318
|
};
|
|
311
319
|
validColorSpaces: readonly ["default", "bt709"];
|
|
312
320
|
optionsMap: {
|
|
@@ -391,6 +399,6 @@ export declare const BrowserSafeApis: {
|
|
|
391
399
|
type: number | null;
|
|
392
400
|
}];
|
|
393
401
|
};
|
|
394
|
-
codecSupportsCrf: (codec: "h264" | "h265" | "vp8" | "vp9" | "
|
|
395
|
-
codecSupportsVideoBitrate: (codec: "h264" | "h265" | "vp8" | "vp9" | "
|
|
402
|
+
codecSupportsCrf: (codec: "h264" | "h265" | "vp8" | "vp9" | "mp3" | "aac" | "wav" | "prores" | "h264-mkv" | "gif") => boolean;
|
|
403
|
+
codecSupportsVideoBitrate: (codec: "h264" | "h265" | "vp8" | "vp9" | "mp3" | "aac" | "wav" | "prores" | "h264-mkv" | "gif") => boolean;
|
|
396
404
|
};
|
package/dist/client.js
CHANGED
|
@@ -8,21 +8,9 @@ const crf_1 = require("./crf");
|
|
|
8
8
|
const file_extensions_1 = require("./file-extensions");
|
|
9
9
|
const get_extension_from_codec_1 = require("./get-extension-from-codec");
|
|
10
10
|
const is_audio_codec_1 = require("./is-audio-codec");
|
|
11
|
-
const
|
|
11
|
+
const options_1 = require("./options");
|
|
12
12
|
const color_space_1 = require("./options/color-space");
|
|
13
|
-
const crf_2 = require("./options/crf");
|
|
14
|
-
const delete_after_1 = require("./options/delete-after");
|
|
15
|
-
const enable_multiprocess_on_linux_1 = require("./options/enable-multiprocess-on-linux");
|
|
16
|
-
const enforce_audio_1 = require("./options/enforce-audio");
|
|
17
|
-
const folder_expiry_1 = require("./options/folder-expiry");
|
|
18
|
-
const jpeg_quality_1 = require("./options/jpeg-quality");
|
|
19
|
-
const mute_1 = require("./options/mute");
|
|
20
|
-
const offthreadvideo_cache_size_1 = require("./options/offthreadvideo-cache-size");
|
|
21
13
|
const options_map_1 = require("./options/options-map");
|
|
22
|
-
const scale_1 = require("./options/scale");
|
|
23
|
-
const video_bitrate_1 = require("./options/video-bitrate");
|
|
24
|
-
const video_codec_1 = require("./options/video-codec");
|
|
25
|
-
const webhook_custom_data_1 = require("./options/webhook-custom-data");
|
|
26
14
|
const pixel_format_1 = require("./pixel-format");
|
|
27
15
|
const prores_profile_1 = require("./prores-profile");
|
|
28
16
|
const validate_output_filename_1 = require("./validate-output-filename");
|
|
@@ -43,22 +31,7 @@ exports.BrowserSafeApis = {
|
|
|
43
31
|
defaultAudioCodecs: audio_codec_1.defaultAudioCodecs,
|
|
44
32
|
defaultCodecsForFileExtension: get_extension_from_codec_1.defaultCodecsForFileExtension,
|
|
45
33
|
validateOutputFilename: validate_output_filename_1.validateOutputFilename,
|
|
46
|
-
options:
|
|
47
|
-
scaleOption: scale_1.scaleOption,
|
|
48
|
-
crfOption: crf_2.crfOption,
|
|
49
|
-
jpegQualityOption: jpeg_quality_1.jpegQualityOption,
|
|
50
|
-
videoBitrate: video_bitrate_1.videoBitrate,
|
|
51
|
-
audioBitrateOption: audio_bitrate_1.audioBitrateOption,
|
|
52
|
-
enforceAudioOption: enforce_audio_1.enforceAudioOption,
|
|
53
|
-
muteOption: mute_1.muteOption,
|
|
54
|
-
videoCodecOption: video_codec_1.videoCodecOption,
|
|
55
|
-
offthreadVideoCacheSizeInBytesOption: offthreadvideo_cache_size_1.offthreadVideoCacheSizeInBytesOption,
|
|
56
|
-
webhookCustomDataOption: webhook_custom_data_1.webhookCustomDataOption,
|
|
57
|
-
colorSpaceOption: color_space_1.colorSpaceOption,
|
|
58
|
-
deleteAfterOption: delete_after_1.deleteAfterOption,
|
|
59
|
-
folderExpiryOption: folder_expiry_1.folderExpiryOption,
|
|
60
|
-
enableMultiprocessOnLinuxOption: enable_multiprocess_on_linux_1.enableMultiprocessOnLinuxOption,
|
|
61
|
-
},
|
|
34
|
+
options: options_1.allOptions,
|
|
62
35
|
validColorSpaces: color_space_1.validColorSpaces,
|
|
63
36
|
optionsMap: options_map_1.optionsMap,
|
|
64
37
|
codecSupportsCrf: codec_supports_media_1.codecSupportsCrf,
|
|
@@ -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 "h264" | "h265" | "vp8" | "vp9" | "
|
|
5
|
-
export declare const makeFileExtensionMap: () => Record<string, ("h264" | "h265" | "vp8" | "vp9" | "
|
|
4
|
+
export declare const getFileExtensionFromCodec: <T extends "h264" | "h265" | "vp8" | "vp9" | "mp3" | "aac" | "wav" | "prores" | "h264-mkv" | "gif">(codec: T, audioCodec: AudioCodec | null) => FileExtension;
|
|
5
|
+
export declare const makeFileExtensionMap: () => Record<string, ("h264" | "h265" | "vp8" | "vp9" | "mp3" | "aac" | "wav" | "prores" | "h264-mkv" | "gif")[]>;
|
|
6
6
|
export declare const defaultCodecsForFileExtension: Record<FileExtension, Codec>;
|
|
@@ -3,6 +3,6 @@ import type { LogLevel } from './log-level';
|
|
|
3
3
|
export declare const getSilentParts: ({ src, noiseThresholdInDecibels: passedNoiseThresholdInDecibels, minDurationInSeconds: passedMinDuration, logLevel, }: {
|
|
4
4
|
src: string;
|
|
5
5
|
minDurationInSeconds?: number | undefined;
|
|
6
|
-
logLevel?: "
|
|
6
|
+
logLevel?: "error" | "verbose" | "info" | "warn" | undefined;
|
|
7
7
|
noiseThresholdInDecibels?: number | undefined;
|
|
8
8
|
}) => Promise<GetSilentPartsResponse>;
|
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';
|
|
@@ -25,6 +27,7 @@ export { CancelSignal, makeCancelSignal } from './make-cancel-signal';
|
|
|
25
27
|
export { openBrowser } from './open-browser';
|
|
26
28
|
export type { ChromiumOptions } from './open-browser';
|
|
27
29
|
export { ColorSpace } from './options/color-space';
|
|
30
|
+
export { OpenGlRenderer } from './options/gl';
|
|
28
31
|
export { AnyRemotionOption, RemotionOption, ToOptions } from './options/option';
|
|
29
32
|
export { PixelFormat } from './pixel-format';
|
|
30
33
|
export { RemotionServer } from './prepare-server';
|
|
@@ -36,7 +39,6 @@ export { selectComposition, SelectCompositionOptions, } from './select-compositi
|
|
|
36
39
|
export { stitchFramesToVideo, StitchFramesToVideoOptions, } from './stitch-frames-to-video';
|
|
37
40
|
export { SymbolicatedStackFrame } from './symbolicate-stacktrace';
|
|
38
41
|
export { OnStartData, RenderFramesOutput } from './types';
|
|
39
|
-
export { OpenGlRenderer } from './validate-opengl-renderer';
|
|
40
42
|
export { validateOutputFilename } from './validate-output-filename';
|
|
41
43
|
export { X264Preset } from './x264-preset';
|
|
42
44
|
export declare const RenderInternals: {
|
|
@@ -47,7 +49,7 @@ export declare const RenderInternals: {
|
|
|
47
49
|
downloadMap: import("./assets/download-map").DownloadMap;
|
|
48
50
|
remotionRoot: string;
|
|
49
51
|
concurrency: number;
|
|
50
|
-
logLevel: "
|
|
52
|
+
logLevel: "error" | "verbose" | "info" | "warn";
|
|
51
53
|
indent: boolean;
|
|
52
54
|
offthreadVideoCacheSizeInBytes: number | null;
|
|
53
55
|
}) => Promise<{
|
|
@@ -128,8 +130,8 @@ export declare const RenderInternals: {
|
|
|
128
130
|
validPixelFormats: readonly ["yuv420p", "yuva420p", "yuv422p", "yuv444p", "yuv420p10le", "yuv422p10le", "yuv444p10le", "yuva444p10le"];
|
|
129
131
|
DEFAULT_BROWSER: "chrome";
|
|
130
132
|
validateFrameRange: (frameRange: import("./frame-range").FrameRange | null) => void;
|
|
131
|
-
DEFAULT_OPENGL_RENDERER: "
|
|
132
|
-
validateOpenGlRenderer: (option: "
|
|
133
|
+
DEFAULT_OPENGL_RENDERER: "angle" | "swangle" | "egl" | "swiftshader" | "vulkan" | "angle-egl" | null;
|
|
134
|
+
validateOpenGlRenderer: (option: "angle" | "swangle" | "egl" | "swiftshader" | "vulkan" | "angle-egl" | null) => "angle" | "swangle" | "egl" | "swiftshader" | "vulkan" | "angle-egl" | null;
|
|
133
135
|
validCodecs: readonly ["h264", "h265", "vp8", "vp9", "mp3", "aac", "wav", "prores", "h264-mkv", "gif"];
|
|
134
136
|
DEFAULT_PIXEL_FORMAT: "yuv420p" | "yuva420p" | "yuv422p" | "yuv444p" | "yuv420p10le" | "yuv422p10le" | "yuv444p10le" | "yuva444p10le";
|
|
135
137
|
validateJpegQuality: (q: number | undefined) => void;
|
|
@@ -137,7 +139,7 @@ export declare const RenderInternals: {
|
|
|
137
139
|
DEFAULT_CODEC: "h264" | "h265" | "vp8" | "vp9" | "mp3" | "aac" | "wav" | "prores" | "h264-mkv" | "gif";
|
|
138
140
|
isAudioCodec: (codec: "h264" | "h265" | "vp8" | "vp9" | "mp3" | "aac" | "wav" | "prores" | "h264-mkv" | "gif" | undefined) => boolean;
|
|
139
141
|
logLevels: readonly ["verbose", "info", "warn", "error"];
|
|
140
|
-
isEqualOrBelowLogLevel: (currentLevel: "
|
|
142
|
+
isEqualOrBelowLogLevel: (currentLevel: "error" | "verbose" | "info" | "warn", level: "error" | "verbose" | "info" | "warn") => boolean;
|
|
141
143
|
isValidLogLevel: (level: string) => boolean;
|
|
142
144
|
perf: typeof perf;
|
|
143
145
|
convertToPositiveFrameIndex: ({ frame, durationInFrames, }: {
|
|
@@ -318,8 +320,8 @@ export declare const RenderInternals: {
|
|
|
318
320
|
};
|
|
319
321
|
validStillImageFormats: readonly ["png", "jpeg", "pdf", "webp"];
|
|
320
322
|
validVideoImageFormats: readonly ["png", "jpeg", "none"];
|
|
321
|
-
DEFAULT_STILL_IMAGE_FORMAT: "
|
|
322
|
-
DEFAULT_VIDEO_IMAGE_FORMAT: "
|
|
323
|
+
DEFAULT_STILL_IMAGE_FORMAT: "jpeg" | "png" | "webp" | "pdf";
|
|
324
|
+
DEFAULT_VIDEO_IMAGE_FORMAT: "jpeg" | "png" | "none";
|
|
323
325
|
DEFAULT_JPEG_QUALITY: number;
|
|
324
326
|
chalk: {
|
|
325
327
|
enabled: () => boolean;
|
|
@@ -375,30 +377,30 @@ export declare const RenderInternals: {
|
|
|
375
377
|
verbose: (message?: any, ...optionalParams: any[]) => void;
|
|
376
378
|
verboseAdvanced: (options: {
|
|
377
379
|
indent: boolean;
|
|
378
|
-
logLevel: "
|
|
380
|
+
logLevel: "error" | "verbose" | "info" | "warn";
|
|
379
381
|
} & {
|
|
380
382
|
tag?: string | undefined;
|
|
381
383
|
}, message?: any, ...optionalParams: any[]) => void;
|
|
382
384
|
info: (message?: any, ...optionalParams: any[]) => void;
|
|
383
385
|
infoAdvanced: (options: {
|
|
384
386
|
indent: boolean;
|
|
385
|
-
logLevel: "
|
|
387
|
+
logLevel: "error" | "verbose" | "info" | "warn";
|
|
386
388
|
}, message?: any, ...optionalParams: any[]) => void;
|
|
387
389
|
warn: (message?: any, ...optionalParams: any[]) => void;
|
|
388
390
|
warnAdvanced: (options: {
|
|
389
391
|
indent: boolean;
|
|
390
|
-
logLevel: "
|
|
392
|
+
logLevel: "error" | "verbose" | "info" | "warn";
|
|
391
393
|
}, message?: any, ...optionalParams: any[]) => void;
|
|
392
394
|
error: (message?: any, ...optionalParams: any[]) => void;
|
|
393
395
|
errorAdvanced: (options: {
|
|
394
396
|
indent: boolean;
|
|
395
|
-
logLevel: "
|
|
397
|
+
logLevel: "error" | "verbose" | "info" | "warn";
|
|
396
398
|
} & {
|
|
397
399
|
tag?: string | undefined;
|
|
398
400
|
}, message?: any, ...optionalParams: any[]) => void;
|
|
399
401
|
};
|
|
400
|
-
getLogLevel: () => "
|
|
401
|
-
setLogLevel: (newLogLevel: "
|
|
402
|
+
getLogLevel: () => "error" | "verbose" | "info" | "warn";
|
|
403
|
+
setLogLevel: (newLogLevel: "error" | "verbose" | "info" | "warn") => void;
|
|
402
404
|
INDENT_TOKEN: string;
|
|
403
405
|
isColorSupported: () => boolean;
|
|
404
406
|
HeadlessBrowser: typeof HeadlessBrowser;
|
|
@@ -407,7 +409,7 @@ export declare const RenderInternals: {
|
|
|
407
409
|
port: number | null;
|
|
408
410
|
remotionRoot: string;
|
|
409
411
|
concurrency: number;
|
|
410
|
-
logLevel: "
|
|
412
|
+
logLevel: "error" | "verbose" | "info" | "warn";
|
|
411
413
|
indent: boolean;
|
|
412
414
|
offthreadVideoCacheSizeInBytes: number | null;
|
|
413
415
|
}) => Promise<import("./prepare-server").RemotionServer>;
|
|
@@ -416,7 +418,7 @@ export declare const RenderInternals: {
|
|
|
416
418
|
port: number | null;
|
|
417
419
|
remotionRoot: string;
|
|
418
420
|
concurrency: number;
|
|
419
|
-
logLevel: "
|
|
421
|
+
logLevel: "error" | "verbose" | "info" | "warn";
|
|
420
422
|
indent: boolean;
|
|
421
423
|
offthreadVideoCacheSizeInBytes: number | null;
|
|
422
424
|
}, { onDownload, onError, }: {
|
|
@@ -432,7 +434,7 @@ export declare const RenderInternals: {
|
|
|
432
434
|
frame: number;
|
|
433
435
|
serializedInputPropsWithCustomSchema: string;
|
|
434
436
|
serializedResolvedPropsWithCustomSchema: string;
|
|
435
|
-
imageFormat: "
|
|
437
|
+
imageFormat: "jpeg" | "png" | "webp" | "pdf";
|
|
436
438
|
jpegQuality: number;
|
|
437
439
|
puppeteerInstance: HeadlessBrowser | null;
|
|
438
440
|
envVariables: Record<string, string>;
|
|
@@ -446,7 +448,7 @@ export declare const RenderInternals: {
|
|
|
446
448
|
cancelSignal: import("./make-cancel-signal").CancelSignal | null;
|
|
447
449
|
indent: boolean;
|
|
448
450
|
server: import("./prepare-server").RemotionServer | undefined;
|
|
449
|
-
logLevel: "
|
|
451
|
+
logLevel: "error" | "verbose" | "info" | "warn";
|
|
450
452
|
serveUrl: string;
|
|
451
453
|
port: number | null;
|
|
452
454
|
offthreadVideoCacheSizeInBytes: number | null;
|
|
@@ -467,7 +469,7 @@ export declare const RenderInternals: {
|
|
|
467
469
|
viewport: import("./browser/PuppeteerViewport").Viewport | null;
|
|
468
470
|
indent: boolean;
|
|
469
471
|
browser: "chrome";
|
|
470
|
-
logLevel: "
|
|
472
|
+
logLevel: "error" | "verbose" | "info" | "warn";
|
|
471
473
|
}) => Promise<HeadlessBrowser>;
|
|
472
474
|
internalSelectComposition: (options: {
|
|
473
475
|
serializedInputPropsWithCustomSchema: string;
|
|
@@ -480,7 +482,7 @@ export declare const RenderInternals: {
|
|
|
480
482
|
port: number | null;
|
|
481
483
|
indent: boolean;
|
|
482
484
|
server: import("./prepare-server").RemotionServer | undefined;
|
|
483
|
-
logLevel: "
|
|
485
|
+
logLevel: "error" | "verbose" | "info" | "warn";
|
|
484
486
|
serveUrl: string;
|
|
485
487
|
id: string;
|
|
486
488
|
} & import("./options/option").ToOptions<readonly [{
|
|
@@ -505,7 +507,7 @@ export declare const RenderInternals: {
|
|
|
505
507
|
port: number | null;
|
|
506
508
|
server: import("./prepare-server").RemotionServer | undefined;
|
|
507
509
|
indent: boolean;
|
|
508
|
-
logLevel: "
|
|
510
|
+
logLevel: "error" | "verbose" | "info" | "warn";
|
|
509
511
|
serveUrlOrWebpackUrl: string;
|
|
510
512
|
} & import("./options/option").ToOptions<readonly [{
|
|
511
513
|
name: string;
|
|
@@ -520,7 +522,7 @@ export declare const RenderInternals: {
|
|
|
520
522
|
buffer: Buffer | null;
|
|
521
523
|
slowestFrames: import("./render-media").SlowFrame[];
|
|
522
524
|
}>;
|
|
523
|
-
validOpenGlRenderers: readonly ["swangle", "angle", "egl", "swiftshader", "vulkan"];
|
|
524
|
-
copyImageToClipboard: (src: string, logLevel: "
|
|
525
|
+
validOpenGlRenderers: readonly ["swangle", "angle", "egl", "swiftshader", "vulkan", "angle-egl"];
|
|
526
|
+
copyImageToClipboard: (src: string, logLevel: "error" | "verbose" | "info" | "warn") => Promise<void>;
|
|
525
527
|
isIpV6Supported: () => boolean;
|
|
526
528
|
};
|
package/dist/index.js
CHANGED
|
@@ -67,6 +67,7 @@ const log_level_1 = require("./log-level");
|
|
|
67
67
|
const logger_1 = require("./logger");
|
|
68
68
|
const mime_types_1 = require("./mime-types");
|
|
69
69
|
const open_browser_1 = require("./open-browser");
|
|
70
|
+
const gl_1 = require("./options/gl");
|
|
70
71
|
const parse_browser_error_stack_1 = require("./parse-browser-error-stack");
|
|
71
72
|
const perf = __importStar(require("./perf"));
|
|
72
73
|
const pixel_format_1 = require("./pixel-format");
|
|
@@ -80,10 +81,6 @@ const serve_static_1 = require("./serve-static");
|
|
|
80
81
|
const tmp_dir_1 = require("./tmp-dir");
|
|
81
82
|
const validate_concurrency_1 = require("./validate-concurrency");
|
|
82
83
|
const validate_even_dimensions_with_codec_1 = require("./validate-even-dimensions-with-codec");
|
|
83
|
-
const validate_opengl_renderer_1 = require("./validate-opengl-renderer");
|
|
84
|
-
const validate_puppeteer_timeout_1 = require("./validate-puppeteer-timeout");
|
|
85
|
-
const validate_videobitrate_1 = require("./validate-videobitrate");
|
|
86
|
-
const wait_for_symbolication_error_to_be_done_1 = require("./wait-for-symbolication-error-to-be-done");
|
|
87
84
|
var handle_javascript_exception_1 = require("./error-handling/handle-javascript-exception");
|
|
88
85
|
Object.defineProperty(exports, "ErrorWithStackFrame", { enumerable: true, get: function () { return handle_javascript_exception_1.ErrorWithStackFrame; } });
|
|
89
86
|
var extract_audio_1 = require("./extract-audio");
|
|
@@ -112,6 +109,9 @@ var stitch_frames_to_video_1 = require("./stitch-frames-to-video");
|
|
|
112
109
|
Object.defineProperty(exports, "stitchFramesToVideo", { enumerable: true, get: function () { return stitch_frames_to_video_1.stitchFramesToVideo; } });
|
|
113
110
|
var validate_output_filename_1 = require("./validate-output-filename");
|
|
114
111
|
Object.defineProperty(exports, "validateOutputFilename", { enumerable: true, get: function () { return validate_output_filename_1.validateOutputFilename; } });
|
|
112
|
+
const validate_puppeteer_timeout_1 = require("./validate-puppeteer-timeout");
|
|
113
|
+
const validate_videobitrate_1 = require("./validate-videobitrate");
|
|
114
|
+
const wait_for_symbolication_error_to_be_done_1 = require("./wait-for-symbolication-error-to-be-done");
|
|
115
115
|
exports.RenderInternals = {
|
|
116
116
|
ensureLocalBrowser: get_local_browser_executable_1.ensureLocalBrowser,
|
|
117
117
|
getActualConcurrency: get_concurrency_1.getActualConcurrency,
|
|
@@ -143,8 +143,8 @@ exports.RenderInternals = {
|
|
|
143
143
|
validPixelFormats: pixel_format_1.validPixelFormats,
|
|
144
144
|
DEFAULT_BROWSER: browser_1.DEFAULT_BROWSER,
|
|
145
145
|
validateFrameRange: frame_range_1.validateFrameRange,
|
|
146
|
-
DEFAULT_OPENGL_RENDERER:
|
|
147
|
-
validateOpenGlRenderer:
|
|
146
|
+
DEFAULT_OPENGL_RENDERER: gl_1.DEFAULT_OPENGL_RENDERER,
|
|
147
|
+
validateOpenGlRenderer: gl_1.validateOpenGlRenderer,
|
|
148
148
|
validCodecs: codec_1.validCodecs,
|
|
149
149
|
DEFAULT_PIXEL_FORMAT: pixel_format_1.DEFAULT_PIXEL_FORMAT,
|
|
150
150
|
validateJpegQuality: jpeg_quality_1.validateJpegQuality,
|
|
@@ -190,7 +190,7 @@ exports.RenderInternals = {
|
|
|
190
190
|
internalGetCompositions: get_compositions_1.internalGetCompositions,
|
|
191
191
|
internalRenderFrames: render_frames_1.internalRenderFrames,
|
|
192
192
|
internalRenderMedia: render_media_1.internalRenderMedia,
|
|
193
|
-
validOpenGlRenderers:
|
|
193
|
+
validOpenGlRenderers: gl_1.validOpenGlRenderers,
|
|
194
194
|
copyImageToClipboard: copy_to_clipboard_1.copyImageToClipboard,
|
|
195
195
|
isIpV6Supported: is_ipv6_supported_1.isIpV6Supported,
|
|
196
196
|
};
|
package/dist/logger.d.ts
CHANGED
|
@@ -19,6 +19,6 @@ export declare const Log: {
|
|
|
19
19
|
error: (message?: any, ...optionalParams: any[]) => void;
|
|
20
20
|
errorAdvanced: (options: VerboseLogOptions, message?: any, ...optionalParams: any[]) => void;
|
|
21
21
|
};
|
|
22
|
-
export declare const getLogLevel: () => "
|
|
22
|
+
export declare const getLogLevel: () => "error" | "verbose" | "info" | "warn";
|
|
23
23
|
export declare const setLogLevel: (newLogLevel: LogLevel) => void;
|
|
24
24
|
export {};
|
package/dist/open-browser.d.ts
CHANGED
|
@@ -2,8 +2,8 @@ import type { Browser } from './browser';
|
|
|
2
2
|
import type { HeadlessBrowser } from './browser/Browser';
|
|
3
3
|
import type { Viewport } from './browser/PuppeteerViewport';
|
|
4
4
|
import { type LogLevel } from './log-level';
|
|
5
|
-
|
|
6
|
-
type OpenGlRenderer = (typeof
|
|
5
|
+
import type { validOpenGlRenderers } from './options/gl';
|
|
6
|
+
type OpenGlRenderer = (typeof validOpenGlRenderers)[number];
|
|
7
7
|
export type ChromiumOptions = {
|
|
8
8
|
ignoreCertificateErrors?: boolean;
|
|
9
9
|
disableWebSecurity?: boolean;
|
package/dist/open-browser.js
CHANGED
|
@@ -5,20 +5,16 @@ const node_1 = require("./browser/node");
|
|
|
5
5
|
const get_local_browser_executable_1 = require("./get-local-browser-executable");
|
|
6
6
|
const get_video_threads_flag_1 = require("./get-video-threads-flag");
|
|
7
7
|
const log_level_1 = require("./log-level");
|
|
8
|
-
const
|
|
9
|
-
const validRenderers = [
|
|
10
|
-
'swangle',
|
|
11
|
-
'angle',
|
|
12
|
-
'egl',
|
|
13
|
-
'swiftshader',
|
|
14
|
-
'vulkan',
|
|
15
|
-
];
|
|
8
|
+
const gl_1 = require("./options/gl");
|
|
16
9
|
const getOpenGlRenderer = (option) => {
|
|
17
|
-
const renderer = option !== null && option !== void 0 ? option :
|
|
18
|
-
(0,
|
|
10
|
+
const renderer = option !== null && option !== void 0 ? option : gl_1.DEFAULT_OPENGL_RENDERER;
|
|
11
|
+
(0, gl_1.validateOpenGlRenderer)(renderer);
|
|
19
12
|
if (renderer === 'swangle') {
|
|
20
13
|
return [`--use-gl=angle`, `--use-angle=swiftshader`];
|
|
21
14
|
}
|
|
15
|
+
if (renderer === 'angle-egl') {
|
|
16
|
+
return [`--use-gl=angle`, `--use-angle=egl`];
|
|
17
|
+
}
|
|
22
18
|
if (renderer === 'vulkan') {
|
|
23
19
|
return [
|
|
24
20
|
'--use-angle=vulkan',
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
export declare const validOpenGlRenderers: readonly ["swangle", "angle", "egl", "swiftshader", "vulkan", "angle-egl"];
|
|
3
|
+
export declare const glOption: {
|
|
4
|
+
cliFlag: string;
|
|
5
|
+
docLink: string;
|
|
6
|
+
name: string;
|
|
7
|
+
type: "angle" | "swangle" | "egl" | "swiftshader" | "vulkan" | "angle-egl";
|
|
8
|
+
ssrName: string;
|
|
9
|
+
description: () => JSX.Element;
|
|
10
|
+
};
|
|
11
|
+
export type OpenGlRenderer = (typeof validOpenGlRenderers)[number];
|
|
12
|
+
export declare const DEFAULT_OPENGL_RENDERER: OpenGlRenderer | null;
|
|
13
|
+
export declare const validateOpenGlRenderer: (option: OpenGlRenderer | null) => OpenGlRenderer | null;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.validateOpenGlRenderer = exports.DEFAULT_OPENGL_RENDERER = exports.glOption = exports.validOpenGlRenderers = void 0;
|
|
4
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
exports.validOpenGlRenderers = [
|
|
6
|
+
'swangle',
|
|
7
|
+
'angle',
|
|
8
|
+
'egl',
|
|
9
|
+
'swiftshader',
|
|
10
|
+
'vulkan',
|
|
11
|
+
'angle-egl',
|
|
12
|
+
];
|
|
13
|
+
const AngleChangelog = () => {
|
|
14
|
+
return ((0, jsx_runtime_1.jsxs)("details", { style: { fontSize: '0.9em', marginBottom: '1em' }, children: [(0, jsx_runtime_1.jsx)("summary", { children: "Changelog" }), (0, jsx_runtime_1.jsxs)("ul", { children: [(0, jsx_runtime_1.jsxs)("li", { children: ["From Remotion v2.6.7 until v3.0.7, the default for Remotion Lambda was", ' ', (0, jsx_runtime_1.jsx)("code", { children: "swiftshader" }), ", but from v3.0.8 the default is", ' ', (0, jsx_runtime_1.jsx)("code", { children: "swangle" }), " (Swiftshader on Angle) since Chrome 101 added support for it."] }), (0, jsx_runtime_1.jsxs)("li", { children: ["From Remotion v2.4.3 until v2.6.6, the default was ", (0, jsx_runtime_1.jsx)("code", { children: "angle" }), ", however it turns out to have a small memory leak that could crash long Remotion renders."] })] })] }));
|
|
15
|
+
};
|
|
16
|
+
exports.glOption = {
|
|
17
|
+
cliFlag: 'gl',
|
|
18
|
+
docLink: 'https://www.remotion.dev/docs/chromium-flags#--gl',
|
|
19
|
+
name: 'OpenGL renderer',
|
|
20
|
+
type: 'angle',
|
|
21
|
+
ssrName: 'gl',
|
|
22
|
+
description: () => {
|
|
23
|
+
return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(AngleChangelog, {}), (0, jsx_runtime_1.jsxs)("p", { children: ["Select the OpenGL renderer backend for Chromium. ", (0, jsx_runtime_1.jsx)("br", {}), "Accepted values:"] }), (0, jsx_runtime_1.jsxs)("ul", { children: [(0, jsx_runtime_1.jsx)("li", { children: (0, jsx_runtime_1.jsx)("code", { children: '"angle"' }) }), (0, jsx_runtime_1.jsx)("li", { children: (0, jsx_runtime_1.jsx)("code", { children: '"egl"' }) }), (0, jsx_runtime_1.jsx)("li", { children: (0, jsx_runtime_1.jsx)("code", { children: '"swiftshader"' }) }), (0, jsx_runtime_1.jsx)("li", { children: (0, jsx_runtime_1.jsx)("code", { children: '"swangle"' }) }), (0, jsx_runtime_1.jsxs)("li", { children: [(0, jsx_runtime_1.jsx)("code", { children: '"vulkan"' }), " (", (0, jsx_runtime_1.jsx)("em", { children: "from Remotion v4.0.41" }), ")"] }), (0, jsx_runtime_1.jsxs)("li", { children: [(0, jsx_runtime_1.jsx)("code", { children: '"angle-egl"' }), " (", (0, jsx_runtime_1.jsx)("em", { children: "from Remotion v4.0.51" }), ")"] })] }), (0, jsx_runtime_1.jsxs)("p", { children: ["The default is ", (0, jsx_runtime_1.jsx)("code", { children: "null" }), ", letting Chrome decide, except on Lambda where the default is ", (0, jsx_runtime_1.jsx)("code", { children: '"swangle"' })] })] }));
|
|
24
|
+
},
|
|
25
|
+
};
|
|
26
|
+
exports.DEFAULT_OPENGL_RENDERER = null;
|
|
27
|
+
const validateOpenGlRenderer = (option) => {
|
|
28
|
+
if (option === null) {
|
|
29
|
+
return null;
|
|
30
|
+
}
|
|
31
|
+
if (!exports.validOpenGlRenderers.includes(option)) {
|
|
32
|
+
throw new TypeError(`${option} is not a valid GL backend. Accepted values: ${exports.validOpenGlRenderers.join(', ')}`);
|
|
33
|
+
}
|
|
34
|
+
return option;
|
|
35
|
+
};
|
|
36
|
+
exports.validateOpenGlRenderer = validateOpenGlRenderer;
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
export declare const allOptions: {
|
|
3
|
+
scaleOption: {
|
|
4
|
+
name: string;
|
|
5
|
+
cliFlag: string;
|
|
6
|
+
description: () => JSX.Element;
|
|
7
|
+
ssrName: string;
|
|
8
|
+
docLink: string;
|
|
9
|
+
type: number;
|
|
10
|
+
};
|
|
11
|
+
crfOption: {
|
|
12
|
+
name: string;
|
|
13
|
+
cliFlag: string;
|
|
14
|
+
description: () => JSX.Element;
|
|
15
|
+
ssrName: string;
|
|
16
|
+
docLink: string;
|
|
17
|
+
type: number;
|
|
18
|
+
};
|
|
19
|
+
jpegQualityOption: {
|
|
20
|
+
name: string;
|
|
21
|
+
cliFlag: string;
|
|
22
|
+
description: () => JSX.Element;
|
|
23
|
+
ssrName: string;
|
|
24
|
+
docLink: string;
|
|
25
|
+
type: number;
|
|
26
|
+
};
|
|
27
|
+
videoBitrate: {
|
|
28
|
+
name: string;
|
|
29
|
+
cliFlag: string;
|
|
30
|
+
description: () => JSX.Element;
|
|
31
|
+
ssrName: string;
|
|
32
|
+
docLink: string;
|
|
33
|
+
type: string;
|
|
34
|
+
};
|
|
35
|
+
audioBitrateOption: {
|
|
36
|
+
name: string;
|
|
37
|
+
cliFlag: string;
|
|
38
|
+
description: () => JSX.Element;
|
|
39
|
+
ssrName: string;
|
|
40
|
+
docLink: string;
|
|
41
|
+
type: string;
|
|
42
|
+
};
|
|
43
|
+
enforceAudioOption: {
|
|
44
|
+
name: string;
|
|
45
|
+
cliFlag: string;
|
|
46
|
+
description: () => JSX.Element;
|
|
47
|
+
ssrName: string;
|
|
48
|
+
docLink: string;
|
|
49
|
+
type: boolean;
|
|
50
|
+
};
|
|
51
|
+
muteOption: {
|
|
52
|
+
name: string;
|
|
53
|
+
cliFlag: string;
|
|
54
|
+
description: () => JSX.Element;
|
|
55
|
+
ssrName: string;
|
|
56
|
+
docLink: string;
|
|
57
|
+
type: boolean;
|
|
58
|
+
};
|
|
59
|
+
videoCodecOption: {
|
|
60
|
+
name: string;
|
|
61
|
+
cliFlag: string;
|
|
62
|
+
description: () => JSX.Element;
|
|
63
|
+
ssrName: string;
|
|
64
|
+
docLink: string;
|
|
65
|
+
type: string;
|
|
66
|
+
};
|
|
67
|
+
offthreadVideoCacheSizeInBytesOption: {
|
|
68
|
+
name: string;
|
|
69
|
+
cliFlag: "offthreadvideo-cache-size-in-bytes";
|
|
70
|
+
description: () => JSX.Element;
|
|
71
|
+
ssrName: "offthreadVideoCacheSizeInBytes";
|
|
72
|
+
docLink: string;
|
|
73
|
+
type: number | null;
|
|
74
|
+
};
|
|
75
|
+
webhookCustomDataOption: {
|
|
76
|
+
name: string;
|
|
77
|
+
cliFlag: "webhook-custom-data";
|
|
78
|
+
description: (type: "ssr" | "cli") => JSX.Element;
|
|
79
|
+
ssrName: "customData";
|
|
80
|
+
docLink: string;
|
|
81
|
+
type: Record<string, unknown> | null;
|
|
82
|
+
};
|
|
83
|
+
colorSpaceOption: {
|
|
84
|
+
name: string;
|
|
85
|
+
cliFlag: "color-space";
|
|
86
|
+
description: () => JSX.Element;
|
|
87
|
+
docLink: string;
|
|
88
|
+
ssrName: string;
|
|
89
|
+
type: "default" | "bt709";
|
|
90
|
+
};
|
|
91
|
+
deleteAfterOption: {
|
|
92
|
+
name: string;
|
|
93
|
+
cliFlag: "delete-after";
|
|
94
|
+
description: () => JSX.Element;
|
|
95
|
+
ssrName: "deleteAfter";
|
|
96
|
+
docLink: string;
|
|
97
|
+
type: string | null;
|
|
98
|
+
};
|
|
99
|
+
folderExpiryOption: {
|
|
100
|
+
name: string;
|
|
101
|
+
cliFlag: "enable-folder-expiry";
|
|
102
|
+
description: () => JSX.Element;
|
|
103
|
+
ssrName: "enableFolderExpiry";
|
|
104
|
+
docLink: string;
|
|
105
|
+
type: boolean | null;
|
|
106
|
+
};
|
|
107
|
+
enableMultiprocessOnLinuxOption: {
|
|
108
|
+
name: string;
|
|
109
|
+
cliFlag: "enable-multiprocess-on-linux";
|
|
110
|
+
description: () => JSX.Element;
|
|
111
|
+
ssrName: string;
|
|
112
|
+
docLink: string;
|
|
113
|
+
type: boolean;
|
|
114
|
+
};
|
|
115
|
+
glOption: {
|
|
116
|
+
cliFlag: string;
|
|
117
|
+
docLink: string;
|
|
118
|
+
name: string;
|
|
119
|
+
type: "angle" | "swangle" | "egl" | "swiftshader" | "vulkan" | "angle-egl";
|
|
120
|
+
ssrName: string;
|
|
121
|
+
description: () => JSX.Element;
|
|
122
|
+
};
|
|
123
|
+
};
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.allOptions = void 0;
|
|
4
|
+
const audio_bitrate_1 = require("./audio-bitrate");
|
|
5
|
+
const color_space_1 = require("./color-space");
|
|
6
|
+
const crf_1 = require("./crf");
|
|
7
|
+
const delete_after_1 = require("./delete-after");
|
|
8
|
+
const enable_multiprocess_on_linux_1 = require("./enable-multiprocess-on-linux");
|
|
9
|
+
const enforce_audio_1 = require("./enforce-audio");
|
|
10
|
+
const folder_expiry_1 = require("./folder-expiry");
|
|
11
|
+
const gl_1 = require("./gl");
|
|
12
|
+
const jpeg_quality_1 = require("./jpeg-quality");
|
|
13
|
+
const mute_1 = require("./mute");
|
|
14
|
+
const offthreadvideo_cache_size_1 = require("./offthreadvideo-cache-size");
|
|
15
|
+
const scale_1 = require("./scale");
|
|
16
|
+
const video_bitrate_1 = require("./video-bitrate");
|
|
17
|
+
const video_codec_1 = require("./video-codec");
|
|
18
|
+
const webhook_custom_data_1 = require("./webhook-custom-data");
|
|
19
|
+
exports.allOptions = {
|
|
20
|
+
scaleOption: scale_1.scaleOption,
|
|
21
|
+
crfOption: crf_1.crfOption,
|
|
22
|
+
jpegQualityOption: jpeg_quality_1.jpegQualityOption,
|
|
23
|
+
videoBitrate: video_bitrate_1.videoBitrate,
|
|
24
|
+
audioBitrateOption: audio_bitrate_1.audioBitrateOption,
|
|
25
|
+
enforceAudioOption: enforce_audio_1.enforceAudioOption,
|
|
26
|
+
muteOption: mute_1.muteOption,
|
|
27
|
+
videoCodecOption: video_codec_1.videoCodecOption,
|
|
28
|
+
offthreadVideoCacheSizeInBytesOption: offthreadvideo_cache_size_1.offthreadVideoCacheSizeInBytesOption,
|
|
29
|
+
webhookCustomDataOption: webhook_custom_data_1.webhookCustomDataOption,
|
|
30
|
+
colorSpaceOption: color_space_1.colorSpaceOption,
|
|
31
|
+
deleteAfterOption: delete_after_1.deleteAfterOption,
|
|
32
|
+
folderExpiryOption: folder_expiry_1.folderExpiryOption,
|
|
33
|
+
enableMultiprocessOnLinuxOption: enable_multiprocess_on_linux_1.enableMultiprocessOnLinuxOption,
|
|
34
|
+
glOption: gl_1.glOption,
|
|
35
|
+
};
|
package/dist/serve-static.js
CHANGED
|
@@ -78,10 +78,14 @@ const serveStatic = async (path, options) => {
|
|
|
78
78
|
};
|
|
79
79
|
const close = async () => {
|
|
80
80
|
await Promise.all([
|
|
81
|
-
new Promise((resolve) => {
|
|
81
|
+
new Promise((resolve, reject) => {
|
|
82
82
|
// compositor may have already quit before,
|
|
83
83
|
// this is okay as we are in cleanup phase
|
|
84
|
-
closeCompositor()
|
|
84
|
+
closeCompositor()
|
|
85
|
+
.catch((err) => {
|
|
86
|
+
reject(err);
|
|
87
|
+
})
|
|
88
|
+
.finally(() => {
|
|
85
89
|
resolve();
|
|
86
90
|
});
|
|
87
91
|
}),
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { AudioCodec } from './audio-codec';
|
|
2
|
-
export declare const validateOutputFilename: <T extends "h264" | "h265" | "vp8" | "vp9" | "
|
|
2
|
+
export declare const validateOutputFilename: <T extends "h264" | "h265" | "vp8" | "vp9" | "mp3" | "aac" | "wav" | "prores" | "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.
|
|
3
|
+
"version": "4.0.51",
|
|
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.
|
|
21
|
+
"remotion": "4.0.51"
|
|
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.
|
|
44
|
-
"@remotion/compositor-darwin-x64": "4.0.
|
|
45
|
-
"@remotion/compositor-linux-
|
|
46
|
-
"@remotion/compositor-linux-
|
|
47
|
-
"@remotion/compositor-linux-
|
|
48
|
-
"@remotion/compositor-linux-
|
|
49
|
-
"@remotion/compositor-win32-x64-msvc": "4.0.
|
|
43
|
+
"@remotion/compositor-darwin-arm64": "4.0.51",
|
|
44
|
+
"@remotion/compositor-darwin-x64": "4.0.51",
|
|
45
|
+
"@remotion/compositor-linux-arm64-gnu": "4.0.51",
|
|
46
|
+
"@remotion/compositor-linux-x64-gnu": "4.0.51",
|
|
47
|
+
"@remotion/compositor-linux-x64-musl": "4.0.51",
|
|
48
|
+
"@remotion/compositor-linux-arm64-musl": "4.0.51",
|
|
49
|
+
"@remotion/compositor-win32-x64-msvc": "4.0.51"
|
|
50
50
|
},
|
|
51
51
|
"keywords": [
|
|
52
52
|
"remotion",
|
|
@@ -1,14 +0,0 @@
|
|
|
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
|
-
};
|
|
@@ -1,7 +0,0 @@
|
|
|
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;
|
package/dist/presets-profile.js
DELETED
|
@@ -1,27 +0,0 @@
|
|
|
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;
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
export declare const validOpenGlRenderers: readonly ["swangle", "angle", "egl", "swiftshader", "vulkan"];
|
|
2
|
-
export type OpenGlRenderer = (typeof validOpenGlRenderers)[number];
|
|
3
|
-
export declare const DEFAULT_OPENGL_RENDERER: OpenGlRenderer | null;
|
|
4
|
-
export declare const validateOpenGlRenderer: (option: OpenGlRenderer | null) => OpenGlRenderer | null;
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.validateOpenGlRenderer = exports.DEFAULT_OPENGL_RENDERER = exports.validOpenGlRenderers = void 0;
|
|
4
|
-
exports.validOpenGlRenderers = [
|
|
5
|
-
'swangle',
|
|
6
|
-
'angle',
|
|
7
|
-
'egl',
|
|
8
|
-
'swiftshader',
|
|
9
|
-
'vulkan',
|
|
10
|
-
];
|
|
11
|
-
exports.DEFAULT_OPENGL_RENDERER = null;
|
|
12
|
-
const validateOpenGlRenderer = (option) => {
|
|
13
|
-
if (option === null) {
|
|
14
|
-
return null;
|
|
15
|
-
}
|
|
16
|
-
if (!exports.validOpenGlRenderers.includes(option)) {
|
|
17
|
-
throw new TypeError(`${option} is not a valid GL backend. Accepted values: ${exports.validOpenGlRenderers.join(', ')}`);
|
|
18
|
-
}
|
|
19
|
-
return option;
|
|
20
|
-
};
|
|
21
|
-
exports.validateOpenGlRenderer = validateOpenGlRenderer;
|