@remotion/renderer 3.3.80 → 3.3.82
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 +37 -37
- package/dist/determine-resize-params.d.ts +4 -1
- package/dist/ffmpeg-filter-file.js +31 -11
- package/dist/get-extension-from-codec.d.ts +2 -2
- package/dist/get-frame-to-render.js +1 -1
- package/dist/get-local-browser-executable.js +1 -0
- package/dist/index.d.ts +32 -32
- package/dist/jpeg-quality.d.ts +1 -0
- package/dist/jpeg-quality.js +21 -0
- package/dist/options/jpeg-quality.js +3 -3
- package/dist/validate-output-filename.d.ts +1 -1
- package/package.json +9 -9
package/dist/client.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
export declare const BrowserSafeApis: {
|
|
2
|
-
getFileExtensionFromCodec: <T extends "
|
|
2
|
+
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;
|
|
3
3
|
validCodecs: readonly ["h264", "h265", "vp8", "vp9", "mp3", "aac", "wav", "prores", "h264-mkv", "gif"];
|
|
4
|
-
getDefaultCrfForCodec: (codec: "
|
|
5
|
-
getValidCrfRanges: (codec: "
|
|
6
|
-
isAudioCodec: (codec: "
|
|
4
|
+
getDefaultCrfForCodec: (codec: "h264" | "h265" | "vp8" | "vp9" | "mp3" | "aac" | "wav" | "prores" | "h264-mkv" | "gif") => number;
|
|
5
|
+
getValidCrfRanges: (codec: "h264" | "h265" | "vp8" | "vp9" | "mp3" | "aac" | "wav" | "prores" | "h264-mkv" | "gif") => [number, number];
|
|
6
|
+
isAudioCodec: (codec: "h264" | "h265" | "vp8" | "vp9" | "mp3" | "aac" | "wav" | "prores" | "h264-mkv" | "gif" | undefined) => boolean;
|
|
7
7
|
validPixelFormats: readonly ["yuv420p", "yuva420p", "yuv422p", "yuv444p", "yuv420p10le", "yuv422p10le", "yuv444p10le", "yuva444p10le"];
|
|
8
8
|
DEFAULT_PIXEL_FORMAT: "yuv420p" | "yuva420p" | "yuv422p" | "yuv444p" | "yuv420p10le" | "yuv422p10le" | "yuv444p10le" | "yuva444p10le";
|
|
9
9
|
supportedAudioCodecs: {
|
|
@@ -19,79 +19,79 @@ export declare const BrowserSafeApis: {
|
|
|
19
19
|
readonly wav: readonly ["pcm-16"];
|
|
20
20
|
};
|
|
21
21
|
defaultFileExtensionMap: {
|
|
22
|
-
|
|
22
|
+
h264: {
|
|
23
23
|
default: import("./file-extensions").FileExtension;
|
|
24
24
|
forAudioCodec: {
|
|
25
|
-
|
|
25
|
+
aac: {
|
|
26
26
|
possible: import("./file-extensions").FileExtension[];
|
|
27
27
|
default: import("./file-extensions").FileExtension;
|
|
28
28
|
};
|
|
29
|
-
|
|
29
|
+
"pcm-16": {
|
|
30
30
|
possible: import("./file-extensions").FileExtension[];
|
|
31
31
|
default: import("./file-extensions").FileExtension;
|
|
32
32
|
};
|
|
33
33
|
};
|
|
34
34
|
};
|
|
35
|
-
|
|
35
|
+
h265: {
|
|
36
36
|
default: import("./file-extensions").FileExtension;
|
|
37
37
|
forAudioCodec: {
|
|
38
|
-
|
|
38
|
+
aac: {
|
|
39
39
|
possible: import("./file-extensions").FileExtension[];
|
|
40
40
|
default: import("./file-extensions").FileExtension;
|
|
41
41
|
};
|
|
42
|
-
|
|
42
|
+
"pcm-16": {
|
|
43
43
|
possible: import("./file-extensions").FileExtension[];
|
|
44
44
|
default: import("./file-extensions").FileExtension;
|
|
45
45
|
};
|
|
46
46
|
};
|
|
47
47
|
};
|
|
48
|
-
|
|
48
|
+
vp8: {
|
|
49
49
|
default: import("./file-extensions").FileExtension;
|
|
50
50
|
forAudioCodec: {
|
|
51
51
|
"pcm-16": {
|
|
52
52
|
possible: import("./file-extensions").FileExtension[];
|
|
53
53
|
default: import("./file-extensions").FileExtension;
|
|
54
54
|
};
|
|
55
|
-
|
|
55
|
+
opus: {
|
|
56
56
|
possible: import("./file-extensions").FileExtension[];
|
|
57
57
|
default: import("./file-extensions").FileExtension;
|
|
58
58
|
};
|
|
59
59
|
};
|
|
60
60
|
};
|
|
61
|
-
|
|
61
|
+
vp9: {
|
|
62
62
|
default: import("./file-extensions").FileExtension;
|
|
63
63
|
forAudioCodec: {
|
|
64
64
|
"pcm-16": {
|
|
65
65
|
possible: import("./file-extensions").FileExtension[];
|
|
66
66
|
default: import("./file-extensions").FileExtension;
|
|
67
67
|
};
|
|
68
|
-
|
|
68
|
+
opus: {
|
|
69
69
|
possible: import("./file-extensions").FileExtension[];
|
|
70
70
|
default: import("./file-extensions").FileExtension;
|
|
71
71
|
};
|
|
72
72
|
};
|
|
73
73
|
};
|
|
74
|
-
|
|
74
|
+
mp3: {
|
|
75
75
|
default: import("./file-extensions").FileExtension;
|
|
76
76
|
forAudioCodec: {
|
|
77
|
-
|
|
77
|
+
mp3: {
|
|
78
78
|
possible: import("./file-extensions").FileExtension[];
|
|
79
79
|
default: import("./file-extensions").FileExtension;
|
|
80
80
|
};
|
|
81
|
-
|
|
81
|
+
"pcm-16": {
|
|
82
82
|
possible: import("./file-extensions").FileExtension[];
|
|
83
83
|
default: import("./file-extensions").FileExtension;
|
|
84
84
|
};
|
|
85
85
|
};
|
|
86
86
|
};
|
|
87
|
-
|
|
87
|
+
aac: {
|
|
88
88
|
default: import("./file-extensions").FileExtension;
|
|
89
89
|
forAudioCodec: {
|
|
90
|
-
|
|
90
|
+
aac: {
|
|
91
91
|
possible: import("./file-extensions").FileExtension[];
|
|
92
92
|
default: import("./file-extensions").FileExtension;
|
|
93
93
|
};
|
|
94
|
-
|
|
94
|
+
"pcm-16": {
|
|
95
95
|
possible: import("./file-extensions").FileExtension[];
|
|
96
96
|
default: import("./file-extensions").FileExtension;
|
|
97
97
|
};
|
|
@@ -109,11 +109,11 @@ export declare const BrowserSafeApis: {
|
|
|
109
109
|
prores: {
|
|
110
110
|
default: import("./file-extensions").FileExtension;
|
|
111
111
|
forAudioCodec: {
|
|
112
|
-
|
|
112
|
+
aac: {
|
|
113
113
|
possible: import("./file-extensions").FileExtension[];
|
|
114
114
|
default: import("./file-extensions").FileExtension;
|
|
115
115
|
};
|
|
116
|
-
|
|
116
|
+
"pcm-16": {
|
|
117
117
|
possible: import("./file-extensions").FileExtension[];
|
|
118
118
|
default: import("./file-extensions").FileExtension;
|
|
119
119
|
};
|
|
@@ -134,21 +134,13 @@ export declare const BrowserSafeApis: {
|
|
|
134
134
|
};
|
|
135
135
|
};
|
|
136
136
|
defaultAudioCodecs: {
|
|
137
|
-
aac: {
|
|
138
|
-
compressed: "pcm-16" | "aac" | null;
|
|
139
|
-
lossless: "pcm-16" | "aac" | null;
|
|
140
|
-
};
|
|
141
|
-
mp3: {
|
|
142
|
-
compressed: "pcm-16" | "mp3" | null;
|
|
143
|
-
lossless: "pcm-16" | "mp3" | null;
|
|
144
|
-
};
|
|
145
137
|
h264: {
|
|
146
|
-
compressed: "
|
|
147
|
-
lossless: "
|
|
138
|
+
compressed: "aac" | "pcm-16" | null;
|
|
139
|
+
lossless: "aac" | "pcm-16" | null;
|
|
148
140
|
};
|
|
149
141
|
h265: {
|
|
150
|
-
compressed: "
|
|
151
|
-
lossless: "
|
|
142
|
+
compressed: "aac" | "pcm-16" | null;
|
|
143
|
+
lossless: "aac" | "pcm-16" | null;
|
|
152
144
|
};
|
|
153
145
|
vp8: {
|
|
154
146
|
compressed: "pcm-16" | "opus" | null;
|
|
@@ -158,13 +150,21 @@ export declare const BrowserSafeApis: {
|
|
|
158
150
|
compressed: "pcm-16" | "opus" | null;
|
|
159
151
|
lossless: "pcm-16" | "opus" | null;
|
|
160
152
|
};
|
|
153
|
+
mp3: {
|
|
154
|
+
compressed: "mp3" | "pcm-16" | null;
|
|
155
|
+
lossless: "mp3" | "pcm-16" | null;
|
|
156
|
+
};
|
|
157
|
+
aac: {
|
|
158
|
+
compressed: "aac" | "pcm-16" | null;
|
|
159
|
+
lossless: "aac" | "pcm-16" | null;
|
|
160
|
+
};
|
|
161
161
|
wav: {
|
|
162
162
|
compressed: "pcm-16" | null;
|
|
163
163
|
lossless: "pcm-16" | null;
|
|
164
164
|
};
|
|
165
165
|
prores: {
|
|
166
|
-
compressed: "
|
|
167
|
-
lossless: "
|
|
166
|
+
compressed: "aac" | "pcm-16" | null;
|
|
167
|
+
lossless: "aac" | "pcm-16" | null;
|
|
168
168
|
};
|
|
169
169
|
"h264-mkv": {
|
|
170
170
|
compressed: "pcm-16" | null;
|
|
@@ -175,5 +175,5 @@ export declare const BrowserSafeApis: {
|
|
|
175
175
|
lossless: null;
|
|
176
176
|
};
|
|
177
177
|
};
|
|
178
|
-
defaultCodecsForFileExtension: Record<import("./file-extensions").FileExtension, "
|
|
178
|
+
defaultCodecsForFileExtension: Record<import("./file-extensions").FileExtension, "h264" | "h265" | "vp8" | "vp9" | "mp3" | "aac" | "wav" | "prores" | "h264-mkv" | "gif">;
|
|
179
179
|
};
|
|
@@ -1,28 +1,48 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
// While an FFMPEG filter can be passed directly, if it's too long
|
|
3
3
|
// we run into Windows command length limits.
|
|
4
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
5
|
+
if (k2 === undefined) k2 = k;
|
|
6
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
7
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
8
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
9
|
+
}
|
|
10
|
+
Object.defineProperty(o, k2, desc);
|
|
11
|
+
}) : (function(o, m, k, k2) {
|
|
12
|
+
if (k2 === undefined) k2 = k;
|
|
13
|
+
o[k2] = m[k];
|
|
14
|
+
}));
|
|
15
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
16
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
17
|
+
}) : function(o, v) {
|
|
18
|
+
o["default"] = v;
|
|
19
|
+
});
|
|
20
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
21
|
+
if (mod && mod.__esModule) return mod;
|
|
22
|
+
var result = {};
|
|
23
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
24
|
+
__setModuleDefault(result, mod);
|
|
25
|
+
return result;
|
|
26
|
+
};
|
|
4
27
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
5
28
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
6
29
|
};
|
|
7
30
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
31
|
exports.makeFfmpegFilterFileStr = exports.makeFfmpegFilterFile = void 0;
|
|
9
|
-
const fs_1 =
|
|
32
|
+
const fs_1 = __importStar(require("fs"));
|
|
10
33
|
const path_1 = __importDefault(require("path"));
|
|
11
|
-
const makeFfmpegFilterFile =
|
|
12
|
-
|
|
13
|
-
const filterFile = path_1.default.join(downloadMap.complexFilter, 'complex-filter-' + random + '.txt');
|
|
14
|
-
await fs_1.default.promises.writeFile(filterFile, complexFilter.filter);
|
|
15
|
-
return {
|
|
16
|
-
file: filterFile,
|
|
17
|
-
cleanup: () => {
|
|
18
|
-
fs_1.default.unlinkSync(filterFile);
|
|
19
|
-
},
|
|
20
|
-
};
|
|
34
|
+
const makeFfmpegFilterFile = (complexFilter, downloadMap) => {
|
|
35
|
+
return (0, exports.makeFfmpegFilterFileStr)(complexFilter.filter, downloadMap);
|
|
21
36
|
};
|
|
22
37
|
exports.makeFfmpegFilterFile = makeFfmpegFilterFile;
|
|
23
38
|
const makeFfmpegFilterFileStr = async (complexFilter, downloadMap) => {
|
|
24
39
|
const random = Math.random().toString().replace('.', '');
|
|
25
40
|
const filterFile = path_1.default.join(downloadMap.complexFilter, 'complex-filter-' + random + '.txt');
|
|
41
|
+
// Race condition: Sometimes the download map is deleted before the file is written.
|
|
42
|
+
// Can remove this once the original bug has been fixed
|
|
43
|
+
if (!(0, fs_1.existsSync)(downloadMap.complexFilter)) {
|
|
44
|
+
fs_1.default.mkdirSync(downloadMap.complexFilter, { recursive: true });
|
|
45
|
+
}
|
|
26
46
|
await fs_1.default.promises.writeFile(filterFile, complexFilter);
|
|
27
47
|
return {
|
|
28
48
|
file: filterFile,
|
|
@@ -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 "
|
|
5
|
-
export declare const makeFileExtensionMap: () => Record<string, ("
|
|
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>;
|
|
@@ -12,7 +12,7 @@ const getRealFrameRange = (durationInFrames, frameRange) => {
|
|
|
12
12
|
return [frameRange, frameRange];
|
|
13
13
|
}
|
|
14
14
|
if (frameRange[1] >= durationInFrames || frameRange[0] < 0) {
|
|
15
|
-
throw new Error(`Frame range ${frameRange.join('-')} is not
|
|
15
|
+
throw new Error(`Frame range ${frameRange.join('-')} is not inbetween 0-${durationInFrames - 1}`);
|
|
16
16
|
}
|
|
17
17
|
return frameRange;
|
|
18
18
|
};
|
|
@@ -18,6 +18,7 @@ const getSearchPathsForProduct = (product) => {
|
|
|
18
18
|
: null,
|
|
19
19
|
process.platform === 'linux' ? '/usr/bin/google-chrome' : null,
|
|
20
20
|
process.platform === 'linux' ? '/usr/bin/chromium-browser' : null,
|
|
21
|
+
process.platform === 'linux' ? '/usr/bin/chromium' : null,
|
|
21
22
|
process.platform === 'linux'
|
|
22
23
|
? '/app/.apt/usr/bin/google-chrome-stable'
|
|
23
24
|
: null,
|
package/dist/index.d.ts
CHANGED
|
@@ -59,9 +59,9 @@ export declare const RenderInternals: {
|
|
|
59
59
|
width: number;
|
|
60
60
|
height: number;
|
|
61
61
|
scale: number;
|
|
62
|
-
codec: "
|
|
62
|
+
codec: "h264" | "h265" | "vp8" | "vp9" | "mp3" | "aac" | "wav" | "prores" | "h264-mkv" | "gif";
|
|
63
63
|
}) => void;
|
|
64
|
-
getFileExtensionFromCodec: <T extends "
|
|
64
|
+
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;
|
|
65
65
|
tmpDir: (str: string) => string;
|
|
66
66
|
deleteDirectory: (directory: string) => void;
|
|
67
67
|
isServeUrl: (potentialUrl: string) => boolean;
|
|
@@ -111,24 +111,24 @@ export declare const RenderInternals: {
|
|
|
111
111
|
};
|
|
112
112
|
registerErrorSymbolicationLock: () => number;
|
|
113
113
|
unlockErrorSymbolicationLock: (id: number) => void;
|
|
114
|
-
canUseParallelEncoding: (codec: "
|
|
114
|
+
canUseParallelEncoding: (codec: "h264" | "h265" | "vp8" | "vp9" | "mp3" | "aac" | "wav" | "prores" | "h264-mkv" | "gif") => boolean;
|
|
115
115
|
mimeContentType: typeof mimeContentType;
|
|
116
116
|
mimeLookup: typeof mimeLookup;
|
|
117
117
|
validateConcurrency: (value: unknown, setting: string) => void;
|
|
118
118
|
validPixelFormats: readonly ["yuv420p", "yuva420p", "yuv422p", "yuv444p", "yuv420p10le", "yuv422p10le", "yuv444p10le", "yuva444p10le"];
|
|
119
119
|
DEFAULT_BROWSER: import("./browser").Browser;
|
|
120
120
|
validateFrameRange: (frameRange: import("./frame-range").FrameRange | null) => void;
|
|
121
|
-
DEFAULT_OPENGL_RENDERER: "
|
|
122
|
-
validateOpenGlRenderer: (option: "
|
|
121
|
+
DEFAULT_OPENGL_RENDERER: "angle" | "swangle" | "egl" | "swiftshader" | null;
|
|
122
|
+
validateOpenGlRenderer: (option: "angle" | "swangle" | "egl" | "swiftshader" | null) => "angle" | "swangle" | "egl" | "swiftshader" | null;
|
|
123
123
|
validImageFormats: readonly ["png", "jpeg", "none"];
|
|
124
124
|
validCodecs: readonly ["h264", "h265", "vp8", "vp9", "mp3", "aac", "wav", "prores", "h264-mkv", "gif"];
|
|
125
125
|
DEFAULT_PIXEL_FORMAT: "yuv420p" | "yuva420p" | "yuv422p" | "yuv444p" | "yuv420p10le" | "yuv422p10le" | "yuv444p10le" | "yuva444p10le";
|
|
126
126
|
validateQuality: (q: number | undefined) => void;
|
|
127
127
|
DEFAULT_TIMEOUT: number;
|
|
128
|
-
DEFAULT_CODEC: "
|
|
129
|
-
isAudioCodec: (codec: "
|
|
128
|
+
DEFAULT_CODEC: "h264" | "h265" | "vp8" | "vp9" | "mp3" | "aac" | "wav" | "prores" | "h264-mkv" | "gif";
|
|
129
|
+
isAudioCodec: (codec: "h264" | "h265" | "vp8" | "vp9" | "mp3" | "aac" | "wav" | "prores" | "h264-mkv" | "gif" | undefined) => boolean;
|
|
130
130
|
logLevels: readonly ["verbose", "info", "warn", "error"];
|
|
131
|
-
isEqualOrBelowLogLevel: (currentLevel: "
|
|
131
|
+
isEqualOrBelowLogLevel: (currentLevel: "error" | "verbose" | "info" | "warn", level: "error" | "verbose" | "info" | "warn") => boolean;
|
|
132
132
|
isValidLogLevel: (level: string) => boolean;
|
|
133
133
|
perf: typeof perf;
|
|
134
134
|
makeDownloadMap: () => import("./assets/download-map").DownloadMap;
|
|
@@ -150,92 +150,92 @@ export declare const RenderInternals: {
|
|
|
150
150
|
output: string;
|
|
151
151
|
onProgress: (p: number) => void;
|
|
152
152
|
numberOfFrames: number;
|
|
153
|
-
codec: "
|
|
153
|
+
codec: "h264" | "h265" | "vp8" | "vp9" | "mp3" | "aac" | "wav" | "prores" | "h264-mkv" | "gif";
|
|
154
154
|
fps: number;
|
|
155
155
|
numberOfGifLoops: number | null;
|
|
156
156
|
remotionRoot: string;
|
|
157
157
|
ffmpegExecutable: import("./ffmpeg-executable").FfmpegExecutable;
|
|
158
|
-
audioCodec: "
|
|
158
|
+
audioCodec: "mp3" | "aac" | "pcm-16" | "opus" | null;
|
|
159
159
|
}) => Promise<void>;
|
|
160
160
|
getDefaultAudioCodec: ({ codec, preferLossless, }: {
|
|
161
|
-
codec: "
|
|
161
|
+
codec: "h264" | "h265" | "vp8" | "vp9" | "mp3" | "aac" | "wav" | "prores" | "h264-mkv" | "gif";
|
|
162
162
|
preferLossless: boolean;
|
|
163
|
-
}) => "
|
|
163
|
+
}) => "mp3" | "aac" | "pcm-16" | "opus" | null;
|
|
164
164
|
validAudioCodecs: readonly ["pcm-16", "aac", "mp3", "opus"];
|
|
165
165
|
defaultFileExtensionMap: {
|
|
166
|
-
|
|
166
|
+
h264: {
|
|
167
167
|
default: import("./file-extensions").FileExtension;
|
|
168
168
|
forAudioCodec: {
|
|
169
|
-
|
|
169
|
+
aac: {
|
|
170
170
|
possible: import("./file-extensions").FileExtension[];
|
|
171
171
|
default: import("./file-extensions").FileExtension;
|
|
172
172
|
};
|
|
173
|
-
|
|
173
|
+
"pcm-16": {
|
|
174
174
|
possible: import("./file-extensions").FileExtension[];
|
|
175
175
|
default: import("./file-extensions").FileExtension;
|
|
176
176
|
};
|
|
177
177
|
};
|
|
178
178
|
};
|
|
179
|
-
|
|
179
|
+
h265: {
|
|
180
180
|
default: import("./file-extensions").FileExtension;
|
|
181
181
|
forAudioCodec: {
|
|
182
|
-
|
|
182
|
+
aac: {
|
|
183
183
|
possible: import("./file-extensions").FileExtension[];
|
|
184
184
|
default: import("./file-extensions").FileExtension;
|
|
185
185
|
};
|
|
186
|
-
|
|
186
|
+
"pcm-16": {
|
|
187
187
|
possible: import("./file-extensions").FileExtension[];
|
|
188
188
|
default: import("./file-extensions").FileExtension;
|
|
189
189
|
};
|
|
190
190
|
};
|
|
191
191
|
};
|
|
192
|
-
|
|
192
|
+
vp8: {
|
|
193
193
|
default: import("./file-extensions").FileExtension;
|
|
194
194
|
forAudioCodec: {
|
|
195
195
|
"pcm-16": {
|
|
196
196
|
possible: import("./file-extensions").FileExtension[];
|
|
197
197
|
default: import("./file-extensions").FileExtension;
|
|
198
198
|
};
|
|
199
|
-
|
|
199
|
+
opus: {
|
|
200
200
|
possible: import("./file-extensions").FileExtension[];
|
|
201
201
|
default: import("./file-extensions").FileExtension;
|
|
202
202
|
};
|
|
203
203
|
};
|
|
204
204
|
};
|
|
205
|
-
|
|
205
|
+
vp9: {
|
|
206
206
|
default: import("./file-extensions").FileExtension;
|
|
207
207
|
forAudioCodec: {
|
|
208
208
|
"pcm-16": {
|
|
209
209
|
possible: import("./file-extensions").FileExtension[];
|
|
210
210
|
default: import("./file-extensions").FileExtension;
|
|
211
211
|
};
|
|
212
|
-
|
|
212
|
+
opus: {
|
|
213
213
|
possible: import("./file-extensions").FileExtension[];
|
|
214
214
|
default: import("./file-extensions").FileExtension;
|
|
215
215
|
};
|
|
216
216
|
};
|
|
217
217
|
};
|
|
218
|
-
|
|
218
|
+
mp3: {
|
|
219
219
|
default: import("./file-extensions").FileExtension;
|
|
220
220
|
forAudioCodec: {
|
|
221
|
-
|
|
221
|
+
mp3: {
|
|
222
222
|
possible: import("./file-extensions").FileExtension[];
|
|
223
223
|
default: import("./file-extensions").FileExtension;
|
|
224
224
|
};
|
|
225
|
-
|
|
225
|
+
"pcm-16": {
|
|
226
226
|
possible: import("./file-extensions").FileExtension[];
|
|
227
227
|
default: import("./file-extensions").FileExtension;
|
|
228
228
|
};
|
|
229
229
|
};
|
|
230
230
|
};
|
|
231
|
-
|
|
231
|
+
aac: {
|
|
232
232
|
default: import("./file-extensions").FileExtension;
|
|
233
233
|
forAudioCodec: {
|
|
234
|
-
|
|
234
|
+
aac: {
|
|
235
235
|
possible: import("./file-extensions").FileExtension[];
|
|
236
236
|
default: import("./file-extensions").FileExtension;
|
|
237
237
|
};
|
|
238
|
-
|
|
238
|
+
"pcm-16": {
|
|
239
239
|
possible: import("./file-extensions").FileExtension[];
|
|
240
240
|
default: import("./file-extensions").FileExtension;
|
|
241
241
|
};
|
|
@@ -253,11 +253,11 @@ export declare const RenderInternals: {
|
|
|
253
253
|
prores: {
|
|
254
254
|
default: import("./file-extensions").FileExtension;
|
|
255
255
|
forAudioCodec: {
|
|
256
|
-
|
|
256
|
+
aac: {
|
|
257
257
|
possible: import("./file-extensions").FileExtension[];
|
|
258
258
|
default: import("./file-extensions").FileExtension;
|
|
259
259
|
};
|
|
260
|
-
|
|
260
|
+
"pcm-16": {
|
|
261
261
|
possible: import("./file-extensions").FileExtension[];
|
|
262
262
|
default: import("./file-extensions").FileExtension;
|
|
263
263
|
};
|
|
@@ -289,6 +289,6 @@ export declare const RenderInternals: {
|
|
|
289
289
|
readonly vp9: readonly ["opus", "pcm-16"];
|
|
290
290
|
readonly wav: readonly ["pcm-16"];
|
|
291
291
|
};
|
|
292
|
-
makeFileExtensionMap: () => Record<string, ("
|
|
293
|
-
defaultCodecsForFileExtension: Record<import("./file-extensions").FileExtension, "
|
|
292
|
+
makeFileExtensionMap: () => Record<string, ("h264" | "h265" | "vp8" | "vp9" | "mp3" | "aac" | "wav" | "prores" | "h264-mkv" | "gif")[]>;
|
|
293
|
+
defaultCodecsForFileExtension: Record<import("./file-extensions").FileExtension, "h264" | "h265" | "vp8" | "vp9" | "mp3" | "aac" | "wav" | "prores" | "h264-mkv" | "gif">;
|
|
294
294
|
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const validateJpegQuality: (q: number | undefined) => void;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.validateJpegQuality = void 0;
|
|
4
|
+
const validateJpegQuality = (q) => {
|
|
5
|
+
if (typeof q !== 'undefined' && typeof q !== 'number') {
|
|
6
|
+
throw new Error(`JPEG Quality option must be a number or undefined. Got ${typeof q} (${JSON.stringify(q)})`);
|
|
7
|
+
}
|
|
8
|
+
if (typeof q === 'undefined') {
|
|
9
|
+
return;
|
|
10
|
+
}
|
|
11
|
+
if (!Number.isFinite(q)) {
|
|
12
|
+
throw new RangeError(`JPEG Quality must be a finite number, but is ${q}`);
|
|
13
|
+
}
|
|
14
|
+
if (Number.isNaN(q)) {
|
|
15
|
+
throw new RangeError(`JPEG Quality is NaN, but must be a real number`);
|
|
16
|
+
}
|
|
17
|
+
if (q > 100 || q < 0) {
|
|
18
|
+
throw new RangeError('JPEG Quality option must be between 0 and 100.');
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
exports.validateJpegQuality = validateJpegQuality;
|
|
@@ -4,8 +4,8 @@ exports.jpegQualityOption = void 0;
|
|
|
4
4
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
5
|
exports.jpegQualityOption = {
|
|
6
6
|
name: 'JPEG Quality',
|
|
7
|
-
cliFlag: '--quality',
|
|
7
|
+
cliFlag: '--jpeg-quality',
|
|
8
8
|
description: ((0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: "Sets the quality of the generated JPEG images. Must be an integer between 0 and 100. Default is to leave it up to the browser, current default is 80." })),
|
|
9
|
-
ssrName: '
|
|
10
|
-
docLink: 'https://www.remotion.dev/docs/renderer/render-media#quality',
|
|
9
|
+
ssrName: 'jpegQuality',
|
|
10
|
+
docLink: 'https://www.remotion.dev/docs/renderer/render-media#jpeg-quality',
|
|
11
11
|
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { AudioCodec } from './audio-codec';
|
|
2
|
-
export declare const validateOutputFilename: <T extends "
|
|
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": "3.3.
|
|
3
|
+
"version": "3.3.82",
|
|
4
4
|
"description": "Renderer for Remotion",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
"dependencies": {
|
|
17
17
|
"execa": "5.1.1",
|
|
18
18
|
"extract-zip": "2.0.1",
|
|
19
|
-
"remotion": "3.3.
|
|
19
|
+
"remotion": "3.3.82",
|
|
20
20
|
"source-map": "^0.8.0-beta.0",
|
|
21
21
|
"ws": "8.7.0"
|
|
22
22
|
},
|
|
@@ -41,13 +41,13 @@
|
|
|
41
41
|
"vitest": "0.24.3"
|
|
42
42
|
},
|
|
43
43
|
"optionalDependencies": {
|
|
44
|
-
"@remotion/compositor-darwin-arm64": "3.3.
|
|
45
|
-
"@remotion/compositor-darwin-x64": "3.3.
|
|
46
|
-
"@remotion/compositor-linux-arm64-gnu": "3.3.
|
|
47
|
-
"@remotion/compositor-linux-arm64-musl": "3.3.
|
|
48
|
-
"@remotion/compositor-linux-x64-gnu": "3.3.
|
|
49
|
-
"@remotion/compositor-linux-x64-musl": "3.3.
|
|
50
|
-
"@remotion/compositor-win32-x64-msvc": "3.3.
|
|
44
|
+
"@remotion/compositor-darwin-arm64": "3.3.82",
|
|
45
|
+
"@remotion/compositor-darwin-x64": "3.3.82",
|
|
46
|
+
"@remotion/compositor-linux-arm64-gnu": "3.3.82",
|
|
47
|
+
"@remotion/compositor-linux-arm64-musl": "3.3.82",
|
|
48
|
+
"@remotion/compositor-linux-x64-gnu": "3.3.82",
|
|
49
|
+
"@remotion/compositor-linux-x64-musl": "3.3.82",
|
|
50
|
+
"@remotion/compositor-win32-x64-msvc": "3.3.82"
|
|
51
51
|
},
|
|
52
52
|
"keywords": [
|
|
53
53
|
"remotion",
|