@remotion/renderer 4.0.159 → 4.0.161
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 +31 -5
- package/Cargo.toml +1 -1
- package/dist/browser/Browser.js +2 -0
- package/dist/browser-instances.d.ts +4 -0
- package/dist/browser-instances.js +21 -0
- package/dist/call-ffmpeg.js +7 -2
- package/dist/client.d.ts +12 -12
- package/dist/compositor/compositor.js +9 -0
- package/dist/compositor/get-explicit-env.d.ts +3 -0
- package/dist/compositor/get-explicit-env.js +13 -0
- package/dist/crf.js +2 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.js +2 -1
- package/dist/is-serve-url.js +3 -0
- package/dist/open-browser.d.ts +0 -1
- package/dist/open-browser.js +3 -12
- package/dist/options/index.d.ts +3 -3
- package/dist/options/options-map.d.ts +9 -9
- package/dist/options/x264-preset.d.ts +2 -2
- package/dist/options/x264-preset.js +4 -1
- package/dist/seek-to-frame.js +20 -10
- package/dist/validate-even-dimensions-with-codec.js +4 -1
- package/package.json +9 -9
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.
|
|
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.
|
|
744
|
+
version = "0.17.13"
|
|
726
745
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
727
|
-
checksum = "
|
|
746
|
+
checksum = "06e4b0d3d1312775e782c86c91a111aa1f910cbb65e1337f9975b5f9a554b5e1"
|
|
728
747
|
dependencies = [
|
|
729
748
|
"bitflags",
|
|
730
749
|
"crc32fast",
|
|
750
|
+
"fdeflate",
|
|
731
751
|
"flate2",
|
|
732
|
-
"miniz_oxide 0.
|
|
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.
|
|
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
package/dist/browser/Browser.js
CHANGED
|
@@ -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;
|
package/dist/call-ffmpeg.js
CHANGED
|
@@ -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
|
|
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
|
|
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
|
@@ -604,17 +604,17 @@ export declare const BrowserSafeApis: {
|
|
|
604
604
|
description: () => import("react/jsx-runtime").JSX.Element;
|
|
605
605
|
ssrName: "x264Preset";
|
|
606
606
|
docLink: string;
|
|
607
|
-
type: "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "
|
|
607
|
+
type: "medium" | "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "slow" | "slower" | "veryslow" | "placebo" | null;
|
|
608
608
|
getValue: ({ commandLine }: {
|
|
609
609
|
commandLine: Record<string, unknown>;
|
|
610
610
|
}) => {
|
|
611
|
-
value: "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "
|
|
611
|
+
value: "medium" | "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "slow" | "slower" | "veryslow" | "placebo";
|
|
612
612
|
source: string;
|
|
613
613
|
} | {
|
|
614
614
|
value: null;
|
|
615
615
|
source: string;
|
|
616
616
|
};
|
|
617
|
-
setConfig: (profile: "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "
|
|
617
|
+
setConfig: (profile: "medium" | "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "slow" | "slower" | "veryslow" | "placebo" | null) => void;
|
|
618
618
|
};
|
|
619
619
|
logLevelOption: {
|
|
620
620
|
cliFlag: "log";
|
|
@@ -864,17 +864,17 @@ export declare const BrowserSafeApis: {
|
|
|
864
864
|
description: () => import("react/jsx-runtime").JSX.Element;
|
|
865
865
|
ssrName: "x264Preset";
|
|
866
866
|
docLink: string;
|
|
867
|
-
type: "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "
|
|
867
|
+
type: "medium" | "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "slow" | "slower" | "veryslow" | "placebo" | null;
|
|
868
868
|
getValue: ({ commandLine }: {
|
|
869
869
|
commandLine: Record<string, unknown>;
|
|
870
870
|
}) => {
|
|
871
|
-
value: "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "
|
|
871
|
+
value: "medium" | "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "slow" | "slower" | "veryslow" | "placebo";
|
|
872
872
|
source: string;
|
|
873
873
|
} | {
|
|
874
874
|
value: null;
|
|
875
875
|
source: string;
|
|
876
876
|
};
|
|
877
|
-
setConfig: (profile: "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "
|
|
877
|
+
setConfig: (profile: "medium" | "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "slow" | "slower" | "veryslow" | "placebo" | null) => void;
|
|
878
878
|
};
|
|
879
879
|
readonly audioBitrate: {
|
|
880
880
|
name: string;
|
|
@@ -1586,17 +1586,17 @@ export declare const BrowserSafeApis: {
|
|
|
1586
1586
|
description: () => import("react/jsx-runtime").JSX.Element;
|
|
1587
1587
|
ssrName: "x264Preset";
|
|
1588
1588
|
docLink: string;
|
|
1589
|
-
type: "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "
|
|
1589
|
+
type: "medium" | "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "slow" | "slower" | "veryslow" | "placebo" | null;
|
|
1590
1590
|
getValue: ({ commandLine }: {
|
|
1591
1591
|
commandLine: Record<string, unknown>;
|
|
1592
1592
|
}) => {
|
|
1593
|
-
value: "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "
|
|
1593
|
+
value: "medium" | "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "slow" | "slower" | "veryslow" | "placebo";
|
|
1594
1594
|
source: string;
|
|
1595
1595
|
} | {
|
|
1596
1596
|
value: null;
|
|
1597
1597
|
source: string;
|
|
1598
1598
|
};
|
|
1599
|
-
setConfig: (profile: "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "
|
|
1599
|
+
setConfig: (profile: "medium" | "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "slow" | "slower" | "veryslow" | "placebo" | null) => void;
|
|
1600
1600
|
};
|
|
1601
1601
|
readonly encodingMaxRate: {
|
|
1602
1602
|
name: string;
|
|
@@ -1952,17 +1952,17 @@ export declare const BrowserSafeApis: {
|
|
|
1952
1952
|
description: () => import("react/jsx-runtime").JSX.Element;
|
|
1953
1953
|
ssrName: "x264Preset";
|
|
1954
1954
|
docLink: string;
|
|
1955
|
-
type: "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "
|
|
1955
|
+
type: "medium" | "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "slow" | "slower" | "veryslow" | "placebo" | null;
|
|
1956
1956
|
getValue: ({ commandLine }: {
|
|
1957
1957
|
commandLine: Record<string, unknown>;
|
|
1958
1958
|
}) => {
|
|
1959
|
-
value: "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "
|
|
1959
|
+
value: "medium" | "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "slow" | "slower" | "veryslow" | "placebo";
|
|
1960
1960
|
source: string;
|
|
1961
1961
|
} | {
|
|
1962
1962
|
value: null;
|
|
1963
1963
|
source: string;
|
|
1964
1964
|
};
|
|
1965
|
-
setConfig: (profile: "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "
|
|
1965
|
+
setConfig: (profile: "medium" | "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "slow" | "slower" | "veryslow" | "placebo" | null) => void;
|
|
1966
1966
|
};
|
|
1967
1967
|
readonly encodingMaxRate: {
|
|
1968
1968
|
name: string;
|
|
@@ -95,6 +95,9 @@ const startCompositor = ({ type, payload, logLevel, indent, binariesDirectory =
|
|
|
95
95
|
break;
|
|
96
96
|
}
|
|
97
97
|
separatorIndex++;
|
|
98
|
+
if (separatorIndex > outputBuffer.length) {
|
|
99
|
+
throw new Error('separatorIndex out of bounds: ' + JSON.stringify(outputBuffer));
|
|
100
|
+
}
|
|
98
101
|
nonceString += String.fromCharCode(nextDigit);
|
|
99
102
|
}
|
|
100
103
|
// eslint-disable-next-line no-constant-condition
|
|
@@ -105,6 +108,9 @@ const startCompositor = ({ type, payload, logLevel, indent, binariesDirectory =
|
|
|
105
108
|
break;
|
|
106
109
|
}
|
|
107
110
|
separatorIndex++;
|
|
111
|
+
if (separatorIndex > outputBuffer.length) {
|
|
112
|
+
throw new Error('separatorIndex out of bounds ' + JSON.stringify(outputBuffer));
|
|
113
|
+
}
|
|
108
114
|
lengthString += String.fromCharCode(nextDigit);
|
|
109
115
|
}
|
|
110
116
|
// eslint-disable-next-line no-constant-condition
|
|
@@ -114,6 +120,9 @@ const startCompositor = ({ type, payload, logLevel, indent, binariesDirectory =
|
|
|
114
120
|
break;
|
|
115
121
|
}
|
|
116
122
|
separatorIndex++;
|
|
123
|
+
if (separatorIndex > outputBuffer.length) {
|
|
124
|
+
throw new Error('separatorIndex out of bounds ' + JSON.stringify(outputBuffer));
|
|
125
|
+
}
|
|
117
126
|
statusString += String.fromCharCode(nextDigit);
|
|
118
127
|
}
|
|
119
128
|
const length = Number(lengthString);
|
|
@@ -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 &&
|
|
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]) {
|
package/dist/index.d.ts
CHANGED
|
@@ -337,7 +337,7 @@ export declare const RenderInternals: {
|
|
|
337
337
|
makeFileExtensionMap: () => Record<string, ("h264" | "h265" | "vp8" | "vp9" | "mp3" | "aac" | "wav" | "prores" | "h264-mkv" | "h264-ts" | "gif")[]>;
|
|
338
338
|
defaultCodecsForFileExtension: Record<import("./file-extensions").FileExtension, "h264" | "h265" | "vp8" | "vp9" | "mp3" | "aac" | "wav" | "prores" | "h264-mkv" | "h264-ts" | "gif">;
|
|
339
339
|
getExecutablePath: ({ indent, logLevel, type, binariesDirectory, }: {
|
|
340
|
-
type: "
|
|
340
|
+
type: "compositor" | "ffmpeg" | "ffprobe";
|
|
341
341
|
indent: boolean;
|
|
342
342
|
logLevel: "verbose" | "info" | "warn" | "error";
|
|
343
343
|
binariesDirectory: string | null;
|
|
@@ -784,7 +784,7 @@ export declare const RenderInternals: {
|
|
|
784
784
|
assetsInfo: import("./assets/download-map").RenderAssetInfo | null;
|
|
785
785
|
enforceAudioTrack: boolean;
|
|
786
786
|
muted: boolean;
|
|
787
|
-
}) => "
|
|
787
|
+
}) => "no" | "yes" | "maybe";
|
|
788
788
|
codecSupportsMedia: (codec: "h264" | "h265" | "vp8" | "vp9" | "mp3" | "aac" | "wav" | "prores" | "h264-mkv" | "h264-ts" | "gif") => {
|
|
789
789
|
video: boolean;
|
|
790
790
|
audio: boolean;
|
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:
|
|
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,
|
package/dist/is-serve-url.js
CHANGED
|
@@ -2,6 +2,9 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.isServeUrl = void 0;
|
|
4
4
|
const isServeUrl = (potentialUrl) => {
|
|
5
|
+
if (typeof potentialUrl === 'undefined') {
|
|
6
|
+
throw new Error('serveUrl is undefined');
|
|
7
|
+
}
|
|
5
8
|
// Theoretically not a valid URL but handle the most basic cases of forgetting protocol in front
|
|
6
9
|
if (potentialUrl.startsWith('www.') ||
|
|
7
10
|
potentialUrl.includes('amazonaws.com')) {
|
package/dist/open-browser.d.ts
CHANGED
|
@@ -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;
|
package/dist/open-browser.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.openBrowser = exports.internalOpenBrowser =
|
|
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
|
-
|
|
138
|
+
(0, browser_instances_1.addHeadlessBrowser)(browserInstance);
|
|
148
139
|
return browserInstance;
|
|
149
140
|
};
|
|
150
141
|
exports.internalOpenBrowser = internalOpenBrowser;
|
package/dist/options/index.d.ts
CHANGED
|
@@ -382,17 +382,17 @@ export declare const allOptions: {
|
|
|
382
382
|
description: () => import("react/jsx-runtime").JSX.Element;
|
|
383
383
|
ssrName: "x264Preset";
|
|
384
384
|
docLink: string;
|
|
385
|
-
type: "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "
|
|
385
|
+
type: "medium" | "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "slow" | "slower" | "veryslow" | "placebo" | null;
|
|
386
386
|
getValue: ({ commandLine }: {
|
|
387
387
|
commandLine: Record<string, unknown>;
|
|
388
388
|
}) => {
|
|
389
|
-
value: "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "
|
|
389
|
+
value: "medium" | "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "slow" | "slower" | "veryslow" | "placebo";
|
|
390
390
|
source: string;
|
|
391
391
|
} | {
|
|
392
392
|
value: null;
|
|
393
393
|
source: string;
|
|
394
394
|
};
|
|
395
|
-
setConfig: (profile: "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "
|
|
395
|
+
setConfig: (profile: "medium" | "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "slow" | "slower" | "veryslow" | "placebo" | null) => void;
|
|
396
396
|
};
|
|
397
397
|
logLevelOption: {
|
|
398
398
|
cliFlag: "log";
|
|
@@ -72,17 +72,17 @@ export declare const optionsMap: {
|
|
|
72
72
|
description: () => import("react/jsx-runtime").JSX.Element;
|
|
73
73
|
ssrName: "x264Preset";
|
|
74
74
|
docLink: string;
|
|
75
|
-
type: "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "
|
|
75
|
+
type: "medium" | "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "slow" | "slower" | "veryslow" | "placebo" | null;
|
|
76
76
|
getValue: ({ commandLine }: {
|
|
77
77
|
commandLine: Record<string, unknown>;
|
|
78
78
|
}) => {
|
|
79
|
-
value: "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "
|
|
79
|
+
value: "medium" | "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "slow" | "slower" | "veryslow" | "placebo";
|
|
80
80
|
source: string;
|
|
81
81
|
} | {
|
|
82
82
|
value: null;
|
|
83
83
|
source: string;
|
|
84
84
|
};
|
|
85
|
-
setConfig: (profile: "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "
|
|
85
|
+
setConfig: (profile: "medium" | "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "slow" | "slower" | "veryslow" | "placebo" | null) => void;
|
|
86
86
|
};
|
|
87
87
|
readonly audioBitrate: {
|
|
88
88
|
name: string;
|
|
@@ -794,17 +794,17 @@ export declare const optionsMap: {
|
|
|
794
794
|
description: () => import("react/jsx-runtime").JSX.Element;
|
|
795
795
|
ssrName: "x264Preset";
|
|
796
796
|
docLink: string;
|
|
797
|
-
type: "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "
|
|
797
|
+
type: "medium" | "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "slow" | "slower" | "veryslow" | "placebo" | null;
|
|
798
798
|
getValue: ({ commandLine }: {
|
|
799
799
|
commandLine: Record<string, unknown>;
|
|
800
800
|
}) => {
|
|
801
|
-
value: "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "
|
|
801
|
+
value: "medium" | "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "slow" | "slower" | "veryslow" | "placebo";
|
|
802
802
|
source: string;
|
|
803
803
|
} | {
|
|
804
804
|
value: null;
|
|
805
805
|
source: string;
|
|
806
806
|
};
|
|
807
|
-
setConfig: (profile: "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "
|
|
807
|
+
setConfig: (profile: "medium" | "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "slow" | "slower" | "veryslow" | "placebo" | null) => void;
|
|
808
808
|
};
|
|
809
809
|
readonly encodingMaxRate: {
|
|
810
810
|
name: string;
|
|
@@ -1160,17 +1160,17 @@ export declare const optionsMap: {
|
|
|
1160
1160
|
description: () => import("react/jsx-runtime").JSX.Element;
|
|
1161
1161
|
ssrName: "x264Preset";
|
|
1162
1162
|
docLink: string;
|
|
1163
|
-
type: "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "
|
|
1163
|
+
type: "medium" | "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "slow" | "slower" | "veryslow" | "placebo" | null;
|
|
1164
1164
|
getValue: ({ commandLine }: {
|
|
1165
1165
|
commandLine: Record<string, unknown>;
|
|
1166
1166
|
}) => {
|
|
1167
|
-
value: "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "
|
|
1167
|
+
value: "medium" | "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "slow" | "slower" | "veryslow" | "placebo";
|
|
1168
1168
|
source: string;
|
|
1169
1169
|
} | {
|
|
1170
1170
|
value: null;
|
|
1171
1171
|
source: string;
|
|
1172
1172
|
};
|
|
1173
|
-
setConfig: (profile: "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "
|
|
1173
|
+
setConfig: (profile: "medium" | "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "slow" | "slower" | "veryslow" | "placebo" | null) => void;
|
|
1174
1174
|
};
|
|
1175
1175
|
readonly encodingMaxRate: {
|
|
1176
1176
|
name: string;
|
|
@@ -11,11 +11,11 @@ export declare const x264Option: {
|
|
|
11
11
|
description: () => import("react/jsx-runtime").JSX.Element;
|
|
12
12
|
ssrName: "x264Preset";
|
|
13
13
|
docLink: string;
|
|
14
|
-
type: "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "
|
|
14
|
+
type: "medium" | "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "slow" | "slower" | "veryslow" | "placebo" | null;
|
|
15
15
|
getValue: ({ commandLine }: {
|
|
16
16
|
commandLine: Record<string, unknown>;
|
|
17
17
|
}) => {
|
|
18
|
-
value: "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "
|
|
18
|
+
value: "medium" | "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "slow" | "slower" | "veryslow" | "placebo";
|
|
19
19
|
source: string;
|
|
20
20
|
} | {
|
|
21
21
|
value: null;
|
|
@@ -16,7 +16,10 @@ exports.x264PresetOptions = [
|
|
|
16
16
|
];
|
|
17
17
|
let preset = null;
|
|
18
18
|
const validateSelectedCodecAndPresetCombination = ({ codec, x264Preset, }) => {
|
|
19
|
-
if (x264Preset !== null &&
|
|
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 &&
|
package/dist/seek-to-frame.js
CHANGED
|
@@ -95,17 +95,27 @@ const waitForReady = ({ page, timeoutInMilliseconds, frame, indent, logLevel, })
|
|
|
95
95
|
}
|
|
96
96
|
});
|
|
97
97
|
});
|
|
98
|
+
const onDisposedPromise = new Promise((_, reject) => {
|
|
99
|
+
const onDispose = () => {
|
|
100
|
+
reject(new Error('Target closed (page disposed)'));
|
|
101
|
+
};
|
|
102
|
+
page.on("disposed" /* PageEmittedEvents.Disposed */, onDispose);
|
|
103
|
+
cleanups.push(() => {
|
|
104
|
+
page.off("disposed" /* PageEmittedEvents.Disposed */, onDispose);
|
|
105
|
+
});
|
|
106
|
+
});
|
|
107
|
+
const onClosedSilentPromise = new Promise((_, reject) => {
|
|
108
|
+
const onClosedSilent = () => {
|
|
109
|
+
reject(new Error('Target closed'));
|
|
110
|
+
};
|
|
111
|
+
page.browser.on("closed-silent" /* BrowserEmittedEvents.ClosedSilent */, onClosedSilent);
|
|
112
|
+
cleanups.push(() => {
|
|
113
|
+
page.browser.off("closed-silent" /* BrowserEmittedEvents.ClosedSilent */, onClosedSilent);
|
|
114
|
+
});
|
|
115
|
+
});
|
|
98
116
|
return Promise.race([
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
reject(new Error('Target closed (page disposed)'));
|
|
102
|
-
});
|
|
103
|
-
}),
|
|
104
|
-
new Promise((_, reject) => {
|
|
105
|
-
page.browser.on("closed-silent" /* BrowserEmittedEvents.ClosedSilent */, () => {
|
|
106
|
-
reject(new Error('Target closed'));
|
|
107
|
-
});
|
|
108
|
-
}),
|
|
117
|
+
onDisposedPromise,
|
|
118
|
+
onClosedSilentPromise,
|
|
109
119
|
waitForReadyProm,
|
|
110
120
|
]).finally(() => {
|
|
111
121
|
cleanups.forEach((cleanup) => {
|
|
@@ -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' &&
|
|
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;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@remotion/renderer",
|
|
3
|
-
"version": "4.0.
|
|
3
|
+
"version": "4.0.161",
|
|
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.161"
|
|
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.
|
|
47
|
-
"@remotion/compositor-
|
|
48
|
-
"@remotion/compositor-
|
|
49
|
-
"@remotion/compositor-linux-
|
|
50
|
-
"@remotion/compositor-linux-
|
|
51
|
-
"@remotion/compositor-linux-x64-musl": "4.0.
|
|
52
|
-
"@remotion/compositor-win32-x64-msvc": "4.0.
|
|
46
|
+
"@remotion/compositor-darwin-arm64": "4.0.161",
|
|
47
|
+
"@remotion/compositor-darwin-x64": "4.0.161",
|
|
48
|
+
"@remotion/compositor-linux-arm64-musl": "4.0.161",
|
|
49
|
+
"@remotion/compositor-linux-arm64-gnu": "4.0.161",
|
|
50
|
+
"@remotion/compositor-linux-x64-gnu": "4.0.161",
|
|
51
|
+
"@remotion/compositor-linux-x64-musl": "4.0.161",
|
|
52
|
+
"@remotion/compositor-win32-x64-msvc": "4.0.161"
|
|
53
53
|
},
|
|
54
54
|
"keywords": [
|
|
55
55
|
"remotion",
|