@remotion/renderer 4.0.141 → 4.0.142
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/check-version-requirements.d.ts +1 -1
- package/dist/check-version-requirements.js +19 -6
- package/dist/client.d.ts +15 -15
- package/dist/compositor/get-executable-path.js +0 -1
- package/dist/compositor/payloads.d.ts +1 -2
- package/dist/create-ffmpeg-complex-filter.d.ts +4 -1
- package/dist/get-compositions.d.ts +2 -2
- package/dist/get-silent-parts.d.ts +2 -1
- package/dist/index.d.ts +7 -7
- package/dist/index.js +1 -1
- package/dist/logger.d.ts +4 -4
- package/dist/open-browser.js +2 -0
- package/dist/options/gl.d.ts +3 -3
- package/dist/options/index.d.ts +6 -6
- package/dist/options/options-map.d.ts +9 -9
- package/dist/options/x264-preset.d.ts +2 -2
- package/dist/port-config.d.ts +0 -4
- package/dist/preprocess-audio-track.js +2 -0
- package/dist/repro.d.ts +1 -1
- package/dist/select-composition.d.ts +2 -2
- package/dist/stringify-ffmpeg-filter.d.ts +4 -1
- package/dist/stringify-ffmpeg-filter.js +10 -6
- package/dist/v5-required-input-props.d.ts +6 -0
- package/dist/v5-required-input-props.js +2 -0
- package/package.json +10 -9
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import type { LogLevel } from './log-level';
|
|
2
2
|
export declare const gLibCErrorMessage: (libCString: string) => string | null;
|
|
3
|
-
export declare const
|
|
3
|
+
export declare const checkRuntimeVersion: (logLevel: LogLevel, indent: boolean) => void;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.checkRuntimeVersion = exports.gLibCErrorMessage = void 0;
|
|
4
|
+
const no_react_1 = require("remotion/no-react");
|
|
4
5
|
const get_executable_path_1 = require("./compositor/get-executable-path");
|
|
5
6
|
const logger_1 = require("./logger");
|
|
6
7
|
const getRequiredLibCVersion = () => {
|
|
@@ -54,13 +55,25 @@ const checkLibCRequirement = (logLevel, indent) => {
|
|
|
54
55
|
}
|
|
55
56
|
}
|
|
56
57
|
};
|
|
57
|
-
const
|
|
58
|
+
const checkNodeVersion = () => {
|
|
58
59
|
const version = process.version.replace('v', '').split('.');
|
|
59
60
|
const majorVersion = Number(version[0]);
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
61
|
+
if (majorVersion < no_react_1.NoReactInternals.MIN_NODE_VERSION) {
|
|
62
|
+
throw new Error(`Remotion requires at least Node ${no_react_1.NoReactInternals.MIN_NODE_VERSION}. You currently have ${process.version}. Update your node version to ${no_react_1.NoReactInternals.MIN_NODE_VERSION} to use Remotion.`);
|
|
63
|
+
}
|
|
64
|
+
};
|
|
65
|
+
const checkBunVersion = () => {
|
|
66
|
+
if (!Bun.semver.satisfies(Bun.version, `>=${no_react_1.NoReactInternals.MIN_BUN_VERSION}`)) {
|
|
67
|
+
throw new Error(`Remotion requires at least Bun ${no_react_1.NoReactInternals.MIN_BUN_VERSION}. You currently have ${Bun.version}. Update your Bun version to ${no_react_1.NoReactInternals.MIN_BUN_VERSION} to use Remotion.`);
|
|
68
|
+
}
|
|
69
|
+
};
|
|
70
|
+
const checkRuntimeVersion = (logLevel, indent) => {
|
|
71
|
+
if (typeof Bun === 'undefined') {
|
|
72
|
+
checkNodeVersion();
|
|
73
|
+
}
|
|
74
|
+
else {
|
|
75
|
+
checkBunVersion();
|
|
63
76
|
}
|
|
64
77
|
checkLibCRequirement(logLevel, indent);
|
|
65
78
|
};
|
|
66
|
-
exports.
|
|
79
|
+
exports.checkRuntimeVersion = checkRuntimeVersion;
|
package/dist/client.d.ts
CHANGED
|
@@ -465,19 +465,19 @@ export declare const BrowserSafeApis: {
|
|
|
465
465
|
cliFlag: "gl";
|
|
466
466
|
docLink: string;
|
|
467
467
|
name: string;
|
|
468
|
-
type: "
|
|
468
|
+
type: "swangle" | "angle" | "egl" | "swiftshader" | "vulkan" | "angle-egl" | null;
|
|
469
469
|
ssrName: string;
|
|
470
470
|
description: () => import("react/jsx-runtime").JSX.Element;
|
|
471
471
|
getValue: ({ commandLine }: {
|
|
472
472
|
commandLine: Record<string, unknown>;
|
|
473
473
|
}) => {
|
|
474
|
-
value: "
|
|
474
|
+
value: "swangle" | "angle" | "egl" | "swiftshader" | "vulkan" | "angle-egl";
|
|
475
475
|
source: string;
|
|
476
476
|
} | {
|
|
477
477
|
value: null;
|
|
478
478
|
source: string;
|
|
479
479
|
};
|
|
480
|
-
setConfig: (value: "
|
|
480
|
+
setConfig: (value: "swangle" | "angle" | "egl" | "swiftshader" | "vulkan" | "angle-egl" | null) => void;
|
|
481
481
|
};
|
|
482
482
|
enableLambdaInsights: {
|
|
483
483
|
name: string;
|
|
@@ -602,17 +602,17 @@ export declare const BrowserSafeApis: {
|
|
|
602
602
|
description: () => import("react/jsx-runtime").JSX.Element;
|
|
603
603
|
ssrName: "x264Preset";
|
|
604
604
|
docLink: string;
|
|
605
|
-
type: "
|
|
605
|
+
type: "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "medium" | "slow" | "slower" | "veryslow" | "placebo" | null;
|
|
606
606
|
getValue: ({ commandLine }: {
|
|
607
607
|
commandLine: Record<string, unknown>;
|
|
608
608
|
}) => {
|
|
609
|
-
value: "
|
|
609
|
+
value: "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "medium" | "slow" | "slower" | "veryslow" | "placebo";
|
|
610
610
|
source: string;
|
|
611
611
|
} | {
|
|
612
612
|
value: null;
|
|
613
613
|
source: string;
|
|
614
614
|
};
|
|
615
|
-
setConfig: (profile: "
|
|
615
|
+
setConfig: (profile: "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "medium" | "slow" | "slower" | "veryslow" | "placebo" | null) => void;
|
|
616
616
|
};
|
|
617
617
|
logLevelOption: {
|
|
618
618
|
cliFlag: "log";
|
|
@@ -862,17 +862,17 @@ export declare const BrowserSafeApis: {
|
|
|
862
862
|
description: () => import("react/jsx-runtime").JSX.Element;
|
|
863
863
|
ssrName: "x264Preset";
|
|
864
864
|
docLink: string;
|
|
865
|
-
type: "
|
|
865
|
+
type: "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "medium" | "slow" | "slower" | "veryslow" | "placebo" | null;
|
|
866
866
|
getValue: ({ commandLine }: {
|
|
867
867
|
commandLine: Record<string, unknown>;
|
|
868
868
|
}) => {
|
|
869
|
-
value: "
|
|
869
|
+
value: "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "medium" | "slow" | "slower" | "veryslow" | "placebo";
|
|
870
870
|
source: string;
|
|
871
871
|
} | {
|
|
872
872
|
value: null;
|
|
873
873
|
source: string;
|
|
874
874
|
};
|
|
875
|
-
setConfig: (profile: "
|
|
875
|
+
setConfig: (profile: "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "medium" | "slow" | "slower" | "veryslow" | "placebo" | null) => void;
|
|
876
876
|
};
|
|
877
877
|
readonly audioBitrate: {
|
|
878
878
|
name: string;
|
|
@@ -1584,17 +1584,17 @@ export declare const BrowserSafeApis: {
|
|
|
1584
1584
|
description: () => import("react/jsx-runtime").JSX.Element;
|
|
1585
1585
|
ssrName: "x264Preset";
|
|
1586
1586
|
docLink: string;
|
|
1587
|
-
type: "
|
|
1587
|
+
type: "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "medium" | "slow" | "slower" | "veryslow" | "placebo" | null;
|
|
1588
1588
|
getValue: ({ commandLine }: {
|
|
1589
1589
|
commandLine: Record<string, unknown>;
|
|
1590
1590
|
}) => {
|
|
1591
|
-
value: "
|
|
1591
|
+
value: "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "medium" | "slow" | "slower" | "veryslow" | "placebo";
|
|
1592
1592
|
source: string;
|
|
1593
1593
|
} | {
|
|
1594
1594
|
value: null;
|
|
1595
1595
|
source: string;
|
|
1596
1596
|
};
|
|
1597
|
-
setConfig: (profile: "
|
|
1597
|
+
setConfig: (profile: "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "medium" | "slow" | "slower" | "veryslow" | "placebo" | null) => void;
|
|
1598
1598
|
};
|
|
1599
1599
|
readonly encodingMaxRate: {
|
|
1600
1600
|
name: string;
|
|
@@ -1950,17 +1950,17 @@ export declare const BrowserSafeApis: {
|
|
|
1950
1950
|
description: () => import("react/jsx-runtime").JSX.Element;
|
|
1951
1951
|
ssrName: "x264Preset";
|
|
1952
1952
|
docLink: string;
|
|
1953
|
-
type: "
|
|
1953
|
+
type: "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "medium" | "slow" | "slower" | "veryslow" | "placebo" | null;
|
|
1954
1954
|
getValue: ({ commandLine }: {
|
|
1955
1955
|
commandLine: Record<string, unknown>;
|
|
1956
1956
|
}) => {
|
|
1957
|
-
value: "
|
|
1957
|
+
value: "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "medium" | "slow" | "slower" | "veryslow" | "placebo";
|
|
1958
1958
|
source: string;
|
|
1959
1959
|
} | {
|
|
1960
1960
|
value: null;
|
|
1961
1961
|
source: string;
|
|
1962
1962
|
};
|
|
1963
|
-
setConfig: (profile: "
|
|
1963
|
+
setConfig: (profile: "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "medium" | "slow" | "slower" | "veryslow" | "placebo" | null) => void;
|
|
1964
1964
|
};
|
|
1965
1965
|
readonly encodingMaxRate: {
|
|
1966
1966
|
name: string;
|
|
@@ -10,7 +10,6 @@ const logger_1 = require("../logger");
|
|
|
10
10
|
let warned = false;
|
|
11
11
|
function isMusl({ indent, logLevel, }) {
|
|
12
12
|
var _a;
|
|
13
|
-
// @ts-expect-error bun no types
|
|
14
13
|
if (!process.report && typeof Bun !== 'undefined') {
|
|
15
14
|
if (!warned) {
|
|
16
15
|
logger_1.Log.warn({ indent, logLevel }, 'Bun limitation: Could not determine if your Linux is using musl or glibc. Assuming glibc.');
|
|
@@ -40,7 +40,7 @@ export type VideoMetadata = {
|
|
|
40
40
|
audioFileExtension: string | null;
|
|
41
41
|
pixelFormat: null | 'yuv420p' | 'yuyv422' | 'rgb24' | 'bgr24' | 'yuv422p' | 'yuv444p' | 'yuv410p' | 'yuv411p' | 'yuvj420p' | 'yuvj422p' | 'yuvj444p' | 'argb' | 'rgba' | 'abgr' | 'bgra' | 'yuv440p' | 'yuvj440p' | 'yuva420p' | 'yuv420p16le' | 'yuv420p16be' | 'yuv422p16le' | 'yuv422p16be' | 'yuv444p16le' | 'yuv444p16be' | 'yuv420p9be' | 'yuv420p9le' | 'yuv420p10be' | 'yuv420p10le' | 'yuv422p10be' | 'yuv422p10le' | 'yuv444p9be' | 'yuv444p9le' | 'yuv444p10be' | 'yuv444p10le' | 'yuv422p9be' | 'yuv422p9le' | 'yuva420p9be' | 'yuva420p9le' | 'yuva422p9be' | 'yuva422p9le' | 'yuva444p9be' | 'yuva444p9le' | 'yuva420p10be' | 'yuva420p10le' | 'yuva422p10be' | 'yuva422p10le' | 'yuva444p10be' | 'yuva444p10le' | 'yuva420p16be' | 'yuva420p16le' | 'yuva422p16be' | 'yuva422p16le' | 'yuva444p16be' | 'yuva444p16le' | 'yuva444p' | 'yuva422p' | 'yuv420p12be' | 'yuv420p12le' | 'yuv420p14be' | 'yuv420p14le' | 'yuv422p12be' | 'yuv422p12le' | 'yuv422p14be' | 'yuv422p14le' | 'yuv444p12be' | 'yuv444p12le' | 'yuv444p14be' | 'yuv444p14le' | 'yuvj411p' | 'yuv440p10le' | 'yuv440p10be' | 'yuv440p12le' | 'yuv440p12be' | 'yuv420p9' | 'yuv422p9' | 'yuv444p9' | 'yuv420p10' | 'yuv422p10' | 'yuv440p10' | 'yuv444p10' | 'yuv420p12' | 'yuv422p12' | 'yuv440p12' | 'yuv444p12' | 'yuv420p14' | 'yuv422p14' | 'yuv444p14' | 'yuv420p16' | 'yuv422p16' | 'yuv444p16' | 'yuva420p9' | 'yuva422p9' | 'yuva444p9' | 'yuva420p10' | 'yuva422p10' | 'yuva444p10' | 'yuva420p16' | 'yuva422p16' | 'yuva444p16' | 'yuva422p12be' | 'yuva422p12le' | 'yuva444p12be' | 'yuva444p12le' | 'unknown';
|
|
42
42
|
};
|
|
43
|
-
type SilentPart = {
|
|
43
|
+
export type SilentPart = {
|
|
44
44
|
startInSeconds: number;
|
|
45
45
|
endInSeconds: number;
|
|
46
46
|
};
|
|
@@ -109,4 +109,3 @@ export type ErrorPayload = {
|
|
|
109
109
|
error: string;
|
|
110
110
|
backtrace: string;
|
|
111
111
|
};
|
|
112
|
-
export {};
|
|
@@ -4,6 +4,9 @@ export declare const createFfmpegComplexFilter: ({ filters, downloadMap, }: {
|
|
|
4
4
|
filters: PreprocessedAudioTrack[];
|
|
5
5
|
downloadMap: DownloadMap;
|
|
6
6
|
}) => Promise<{
|
|
7
|
-
complexFilterFlag: [
|
|
7
|
+
complexFilterFlag: [
|
|
8
|
+
string,
|
|
9
|
+
string
|
|
10
|
+
] | null;
|
|
8
11
|
cleanup: () => void;
|
|
9
12
|
}>;
|
|
@@ -6,6 +6,7 @@ import type { ChromiumOptions } from './open-browser';
|
|
|
6
6
|
import type { ToOptions } from './options/option';
|
|
7
7
|
import type { optionsMap } from './options/options-map';
|
|
8
8
|
import type { RemotionServer } from './prepare-server';
|
|
9
|
+
import type { RequiredInputPropsInV5 } from './v5-required-input-props';
|
|
9
10
|
type InternalGetCompositionsOptions = {
|
|
10
11
|
serializedInputPropsWithCustomSchema: string;
|
|
11
12
|
envVariables: Record<string, string>;
|
|
@@ -18,8 +19,7 @@ type InternalGetCompositionsOptions = {
|
|
|
18
19
|
indent: boolean;
|
|
19
20
|
serveUrlOrWebpackUrl: string;
|
|
20
21
|
} & ToOptions<typeof optionsMap.getCompositions>;
|
|
21
|
-
export type GetCompositionsOptions = {
|
|
22
|
-
inputProps?: Record<string, unknown> | null;
|
|
22
|
+
export type GetCompositionsOptions = RequiredInputPropsInV5 & {
|
|
23
23
|
envVariables?: Record<string, string>;
|
|
24
24
|
puppeteerInstance?: HeadlessBrowser;
|
|
25
25
|
onBrowserLog?: (log: BrowserLog) => void;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import type { GetSilentPartsResponse } from './compositor/payloads';
|
|
1
|
+
import type { GetSilentPartsResponse, SilentPart } from './compositor/payloads';
|
|
2
2
|
import type { LogLevel } from './log-level';
|
|
3
|
+
export type { SilentPart };
|
|
3
4
|
export declare const getSilentParts: ({ src, noiseThresholdInDecibels: passedNoiseThresholdInDecibels, minDurationInSeconds: passedMinDuration, logLevel, binariesDirectory, }: {
|
|
4
5
|
src: string;
|
|
5
6
|
minDurationInSeconds?: number | undefined;
|
package/dist/index.d.ts
CHANGED
|
@@ -19,7 +19,7 @@ export type { FfmpegOverrideFn } from './ffmpeg-override';
|
|
|
19
19
|
export { FileExtension } from './file-extensions';
|
|
20
20
|
export { FrameRange } from './frame-range';
|
|
21
21
|
export { GetCompositionsOptions, getCompositions } from './get-compositions';
|
|
22
|
-
export { getSilentParts } from './get-silent-parts';
|
|
22
|
+
export { SilentPart, getSilentParts } from './get-silent-parts';
|
|
23
23
|
export { VideoMetadata, getVideoMetadata } from './get-video-metadata';
|
|
24
24
|
export { ImageFormat, StillImageFormat, VideoImageFormat, validateSelectedPixelFormatAndImageFormatCombination, } from './image-format';
|
|
25
25
|
export type { LogLevel } from './log-level';
|
|
@@ -140,8 +140,8 @@ export declare const RenderInternals: {
|
|
|
140
140
|
validPixelFormats: readonly ["yuv420p", "yuva420p", "yuv422p", "yuv444p", "yuv420p10le", "yuv422p10le", "yuv444p10le", "yuva444p10le"];
|
|
141
141
|
DEFAULT_BROWSER: "chrome";
|
|
142
142
|
validateFrameRange: (frameRange: import("./frame-range").FrameRange | null) => void;
|
|
143
|
-
DEFAULT_OPENGL_RENDERER: "
|
|
144
|
-
validateOpenGlRenderer: (option: unknown) => "
|
|
143
|
+
DEFAULT_OPENGL_RENDERER: "swangle" | "angle" | "egl" | "swiftshader" | "vulkan" | "angle-egl" | null;
|
|
144
|
+
validateOpenGlRenderer: (option: unknown) => "swangle" | "angle" | "egl" | "swiftshader" | "vulkan" | "angle-egl" | null;
|
|
145
145
|
validCodecs: readonly ["h264", "h265", "vp8", "vp9", "mp3", "aac", "wav", "prores", "h264-mkv", "h264-ts", "gif"];
|
|
146
146
|
DEFAULT_PIXEL_FORMAT: "yuv420p" | "yuva420p" | "yuv422p" | "yuv444p" | "yuv420p10le" | "yuv422p10le" | "yuv444p10le" | "yuva444p10le";
|
|
147
147
|
validateJpegQuality: (q: unknown) => void;
|
|
@@ -408,12 +408,12 @@ export declare const RenderInternals: {
|
|
|
408
408
|
Log: {
|
|
409
409
|
verbose: (options: import("./logger").LogOptions & {
|
|
410
410
|
tag?: string | undefined;
|
|
411
|
-
},
|
|
412
|
-
info: (options: import("./logger").LogOptions,
|
|
413
|
-
warn: (options: import("./logger").LogOptions,
|
|
411
|
+
}, ...args: any[]) => void;
|
|
412
|
+
info: (options: import("./logger").LogOptions, ...args: any[]) => void;
|
|
413
|
+
warn: (options: import("./logger").LogOptions, ...args: any[]) => void;
|
|
414
414
|
error: (options: import("./logger").LogOptions & {
|
|
415
415
|
tag?: string | undefined;
|
|
416
|
-
},
|
|
416
|
+
}, ...args: any[]) => void;
|
|
417
417
|
};
|
|
418
418
|
INDENT_TOKEN: string;
|
|
419
419
|
isColorSupported: () => boolean;
|
package/dist/index.js
CHANGED
|
@@ -207,4 +207,4 @@ exports.RenderInternals = {
|
|
|
207
207
|
internalEnsureBrowser: ensure_browser_2.internalEnsureBrowser,
|
|
208
208
|
};
|
|
209
209
|
// Warn of potential performance issues with Apple Silicon (M1 chip under Rosetta)
|
|
210
|
-
(0, check_version_requirements_1.
|
|
210
|
+
(0, check_version_requirements_1.checkRuntimeVersion)('info', false);
|
package/dist/logger.d.ts
CHANGED
|
@@ -10,9 +10,9 @@ type VerboseLogOptions = LogOptions & {
|
|
|
10
10
|
export declare const verboseTag: (str: string) => string;
|
|
11
11
|
export declare const secondverboseTag: (str: string) => string;
|
|
12
12
|
export declare const Log: {
|
|
13
|
-
verbose: (options: VerboseLogOptions,
|
|
14
|
-
info: (options: LogOptions,
|
|
15
|
-
warn: (options: LogOptions,
|
|
16
|
-
error: (options: VerboseLogOptions,
|
|
13
|
+
verbose: (options: VerboseLogOptions, ...args: Parameters<typeof console.log>) => void;
|
|
14
|
+
info: (options: LogOptions, ...args: Parameters<typeof console.log>) => void;
|
|
15
|
+
warn: (options: LogOptions, ...args: Parameters<typeof console.log>) => void;
|
|
16
|
+
error: (options: VerboseLogOptions, ...args: Parameters<typeof console.log>) => void;
|
|
17
17
|
};
|
|
18
18
|
export {};
|
package/dist/open-browser.js
CHANGED
|
@@ -120,6 +120,8 @@ const internalOpenBrowser = async ({ browser, browserExecutable, chromiumOptions
|
|
|
120
120
|
'--no-pings', // https://source.chromium.org/search?q=lang:cpp+symbol:kNoPings&ss=chromium
|
|
121
121
|
'--font-render-hinting=none',
|
|
122
122
|
'--no-zygote', // https://source.chromium.org/search?q=lang:cpp+symbol:kNoZygote&ss=chromium,
|
|
123
|
+
'--ignore-gpu-blocklist',
|
|
124
|
+
'--enable-unsafe-webgpu',
|
|
123
125
|
typeof forceDeviceScaleFactor === 'undefined'
|
|
124
126
|
? null
|
|
125
127
|
: `--force-device-scale-factor=${forceDeviceScaleFactor}`,
|
package/dist/options/gl.d.ts
CHANGED
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
export declare const validOpenGlRenderers: readonly ["swangle", "angle", "egl", "swiftshader", "vulkan", "angle-egl"];
|
|
2
2
|
export type OpenGlRenderer = (typeof validOpenGlRenderers)[number];
|
|
3
3
|
export declare const DEFAULT_OPENGL_RENDERER: OpenGlRenderer | null;
|
|
4
|
-
export declare const getChromiumOpenGlRenderer: () => "
|
|
4
|
+
export declare const getChromiumOpenGlRenderer: () => "swangle" | "angle" | "egl" | "swiftshader" | "vulkan" | "angle-egl" | null;
|
|
5
5
|
export declare const setChromiumOpenGlRenderer: (renderer: OpenGlRenderer) => void;
|
|
6
6
|
export declare const glOption: {
|
|
7
7
|
cliFlag: "gl";
|
|
8
8
|
docLink: string;
|
|
9
9
|
name: string;
|
|
10
|
-
type: "
|
|
10
|
+
type: "swangle" | "angle" | "egl" | "swiftshader" | "vulkan" | "angle-egl" | null;
|
|
11
11
|
ssrName: string;
|
|
12
12
|
description: () => import("react/jsx-runtime").JSX.Element;
|
|
13
13
|
getValue: ({ commandLine }: {
|
|
14
14
|
commandLine: Record<string, unknown>;
|
|
15
15
|
}) => {
|
|
16
|
-
value: "
|
|
16
|
+
value: "swangle" | "angle" | "egl" | "swiftshader" | "vulkan" | "angle-egl";
|
|
17
17
|
source: string;
|
|
18
18
|
} | {
|
|
19
19
|
value: null;
|
package/dist/options/index.d.ts
CHANGED
|
@@ -245,19 +245,19 @@ export declare const allOptions: {
|
|
|
245
245
|
cliFlag: "gl";
|
|
246
246
|
docLink: string;
|
|
247
247
|
name: string;
|
|
248
|
-
type: "
|
|
248
|
+
type: "swangle" | "angle" | "egl" | "swiftshader" | "vulkan" | "angle-egl" | null;
|
|
249
249
|
ssrName: string;
|
|
250
250
|
description: () => import("react/jsx-runtime").JSX.Element;
|
|
251
251
|
getValue: ({ commandLine }: {
|
|
252
252
|
commandLine: Record<string, unknown>;
|
|
253
253
|
}) => {
|
|
254
|
-
value: "
|
|
254
|
+
value: "swangle" | "angle" | "egl" | "swiftshader" | "vulkan" | "angle-egl";
|
|
255
255
|
source: string;
|
|
256
256
|
} | {
|
|
257
257
|
value: null;
|
|
258
258
|
source: string;
|
|
259
259
|
};
|
|
260
|
-
setConfig: (value: "
|
|
260
|
+
setConfig: (value: "swangle" | "angle" | "egl" | "swiftshader" | "vulkan" | "angle-egl" | null) => void;
|
|
261
261
|
};
|
|
262
262
|
enableLambdaInsights: {
|
|
263
263
|
name: string;
|
|
@@ -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: "
|
|
385
|
+
type: "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "medium" | "slow" | "slower" | "veryslow" | "placebo" | null;
|
|
386
386
|
getValue: ({ commandLine }: {
|
|
387
387
|
commandLine: Record<string, unknown>;
|
|
388
388
|
}) => {
|
|
389
|
-
value: "
|
|
389
|
+
value: "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "medium" | "slow" | "slower" | "veryslow" | "placebo";
|
|
390
390
|
source: string;
|
|
391
391
|
} | {
|
|
392
392
|
value: null;
|
|
393
393
|
source: string;
|
|
394
394
|
};
|
|
395
|
-
setConfig: (profile: "
|
|
395
|
+
setConfig: (profile: "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "medium" | "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: "
|
|
75
|
+
type: "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "medium" | "slow" | "slower" | "veryslow" | "placebo" | null;
|
|
76
76
|
getValue: ({ commandLine }: {
|
|
77
77
|
commandLine: Record<string, unknown>;
|
|
78
78
|
}) => {
|
|
79
|
-
value: "
|
|
79
|
+
value: "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "medium" | "slow" | "slower" | "veryslow" | "placebo";
|
|
80
80
|
source: string;
|
|
81
81
|
} | {
|
|
82
82
|
value: null;
|
|
83
83
|
source: string;
|
|
84
84
|
};
|
|
85
|
-
setConfig: (profile: "
|
|
85
|
+
setConfig: (profile: "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "medium" | "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: "
|
|
797
|
+
type: "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "medium" | "slow" | "slower" | "veryslow" | "placebo" | null;
|
|
798
798
|
getValue: ({ commandLine }: {
|
|
799
799
|
commandLine: Record<string, unknown>;
|
|
800
800
|
}) => {
|
|
801
|
-
value: "
|
|
801
|
+
value: "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "medium" | "slow" | "slower" | "veryslow" | "placebo";
|
|
802
802
|
source: string;
|
|
803
803
|
} | {
|
|
804
804
|
value: null;
|
|
805
805
|
source: string;
|
|
806
806
|
};
|
|
807
|
-
setConfig: (profile: "
|
|
807
|
+
setConfig: (profile: "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "medium" | "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: "
|
|
1163
|
+
type: "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "medium" | "slow" | "slower" | "veryslow" | "placebo" | null;
|
|
1164
1164
|
getValue: ({ commandLine }: {
|
|
1165
1165
|
commandLine: Record<string, unknown>;
|
|
1166
1166
|
}) => {
|
|
1167
|
-
value: "
|
|
1167
|
+
value: "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "medium" | "slow" | "slower" | "veryslow" | "placebo";
|
|
1168
1168
|
source: string;
|
|
1169
1169
|
} | {
|
|
1170
1170
|
value: null;
|
|
1171
1171
|
source: string;
|
|
1172
1172
|
};
|
|
1173
|
-
setConfig: (profile: "
|
|
1173
|
+
setConfig: (profile: "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "medium" | "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: "
|
|
14
|
+
type: "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "medium" | "slow" | "slower" | "veryslow" | "placebo" | null;
|
|
15
15
|
getValue: ({ commandLine }: {
|
|
16
16
|
commandLine: Record<string, unknown>;
|
|
17
17
|
}) => {
|
|
18
|
-
value: "
|
|
18
|
+
value: "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "medium" | "slow" | "slower" | "veryslow" | "placebo";
|
|
19
19
|
source: string;
|
|
20
20
|
} | {
|
|
21
21
|
value: null;
|
package/dist/port-config.d.ts
CHANGED
|
@@ -31,6 +31,8 @@ const preprocessAudioTrackUnlimited = async ({ outName, asset, fps, downloadMap,
|
|
|
31
31
|
trimRightOffset,
|
|
32
32
|
forSeamlessAacConcatenation,
|
|
33
33
|
volume: (0, flatten_volume_array_1.flattenVolumeArray)(asset.volume),
|
|
34
|
+
indent,
|
|
35
|
+
logLevel,
|
|
34
36
|
});
|
|
35
37
|
if (filter === null) {
|
|
36
38
|
return null;
|
package/dist/repro.d.ts
CHANGED
|
@@ -13,7 +13,7 @@ type ReproWriter = {
|
|
|
13
13
|
}) => Promise<void>;
|
|
14
14
|
};
|
|
15
15
|
export declare const getReproWriter: () => ReproWriter;
|
|
16
|
-
export declare const writeInRepro: (level: string,
|
|
16
|
+
export declare const writeInRepro: (level: string, ...args: Parameters<typeof console.log>) => void;
|
|
17
17
|
export declare const enableRepro: ({ serveUrl, compositionName, serializedInputPropsWithCustomSchema, serializedResolvedPropsWithCustomSchema, }: {
|
|
18
18
|
serveUrl: string;
|
|
19
19
|
compositionName: string;
|
|
@@ -6,6 +6,7 @@ import type { ChromiumOptions } from './open-browser';
|
|
|
6
6
|
import type { ToOptions } from './options/option';
|
|
7
7
|
import type { optionsMap } from './options/options-map';
|
|
8
8
|
import type { RemotionServer } from './prepare-server';
|
|
9
|
+
import type { RequiredInputPropsInV5 } from './v5-required-input-props';
|
|
9
10
|
type InternalSelectCompositionsConfig = {
|
|
10
11
|
serializedInputPropsWithCustomSchema: string;
|
|
11
12
|
envVariables: Record<string, string>;
|
|
@@ -19,8 +20,7 @@ type InternalSelectCompositionsConfig = {
|
|
|
19
20
|
serveUrl: string;
|
|
20
21
|
id: string;
|
|
21
22
|
} & ToOptions<typeof optionsMap.selectComposition>;
|
|
22
|
-
export type SelectCompositionOptions = {
|
|
23
|
-
inputProps?: Record<string, unknown> | null;
|
|
23
|
+
export type SelectCompositionOptions = RequiredInputPropsInV5 & {
|
|
24
24
|
envVariables?: Record<string, string>;
|
|
25
25
|
puppeteerInstance?: HeadlessBrowser;
|
|
26
26
|
onBrowserLog?: (log: BrowserLog) => void;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { AssetVolume, MediaAsset } from './assets/types';
|
|
2
|
+
import type { LogLevel } from './log-level';
|
|
2
3
|
export type FilterWithoutPaddingApplied = ProcessedTrack & {
|
|
3
4
|
filter: string;
|
|
4
5
|
};
|
|
@@ -12,7 +13,7 @@ export declare const getActualTrimLeft: ({ asset, fps, trimLeftOffset, seamless,
|
|
|
12
13
|
trimLeftOffset: number;
|
|
13
14
|
seamless: boolean;
|
|
14
15
|
}) => number;
|
|
15
|
-
export declare const stringifyFfmpegFilter: ({ channels, volume, fps, assetDuration, chunkLengthInSeconds, forSeamlessAacConcatenation, trimLeftOffset, trimRightOffset, asset, }: {
|
|
16
|
+
export declare const stringifyFfmpegFilter: ({ channels, volume, fps, assetDuration, chunkLengthInSeconds, forSeamlessAacConcatenation, trimLeftOffset, trimRightOffset, asset, indent, logLevel, }: {
|
|
16
17
|
channels: number;
|
|
17
18
|
volume: AssetVolume;
|
|
18
19
|
fps: number;
|
|
@@ -22,4 +23,6 @@ export declare const stringifyFfmpegFilter: ({ channels, volume, fps, assetDurat
|
|
|
22
23
|
trimLeftOffset: number;
|
|
23
24
|
trimRightOffset: number;
|
|
24
25
|
asset: MediaAsset;
|
|
26
|
+
indent: boolean;
|
|
27
|
+
logLevel: LogLevel;
|
|
25
28
|
}) => FilterWithoutPaddingApplied | null;
|
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.stringifyFfmpegFilter = exports.getActualTrimLeft = void 0;
|
|
4
4
|
const calculate_atempo_1 = require("./assets/calculate-atempo");
|
|
5
5
|
const ffmpeg_volume_expression_1 = require("./assets/ffmpeg-volume-expression");
|
|
6
|
+
const logger_1 = require("./logger");
|
|
6
7
|
const sample_rate_1 = require("./sample-rate");
|
|
7
8
|
const truthy_1 = require("./truthy");
|
|
8
9
|
const stringifyTrim = (trim) => {
|
|
@@ -29,7 +30,7 @@ const getActualTrimLeft = ({ asset, fps, trimLeftOffset, seamless, }) => {
|
|
|
29
30
|
throw new Error('This should never happen');
|
|
30
31
|
};
|
|
31
32
|
exports.getActualTrimLeft = getActualTrimLeft;
|
|
32
|
-
const trimAndSetTempo = ({ forSeamlessAacConcatenation, assetDuration, asset, trimLeftOffset, trimRightOffset, fps, }) => {
|
|
33
|
+
const trimAndSetTempo = ({ forSeamlessAacConcatenation, assetDuration, asset, trimLeftOffset, trimRightOffset, fps, indent, logLevel, }) => {
|
|
33
34
|
// If we need seamless AAC stitching, we need to apply the tempo filter first
|
|
34
35
|
// because the atempo filter is not frame-perfect. It creates a small offset
|
|
35
36
|
// and the offset needs to be the same for all audio tracks, before processing it further.
|
|
@@ -42,25 +43,26 @@ const trimAndSetTempo = ({ forSeamlessAacConcatenation, assetDuration, asset, tr
|
|
|
42
43
|
seamless: true,
|
|
43
44
|
});
|
|
44
45
|
const trimRight = trimLeft + asset.duration / fps - trimLeftOffset + trimRightOffset;
|
|
45
|
-
|
|
46
|
+
let trimRightOrAssetDuration = assetDuration
|
|
46
47
|
? Math.min(trimRight, assetDuration / asset.playbackRate)
|
|
47
48
|
: trimRight;
|
|
48
49
|
if (trimRightOrAssetDuration < trimLeft) {
|
|
49
|
-
|
|
50
|
+
logger_1.Log.warn({ indent, logLevel }, 'trimRightOrAssetDuration < trimLeft: ' +
|
|
50
51
|
JSON.stringify({
|
|
51
52
|
trimRight,
|
|
52
53
|
trimLeft,
|
|
53
54
|
assetDuration,
|
|
54
55
|
assetTrimLeft: asset.trimLeft,
|
|
55
56
|
}));
|
|
57
|
+
trimRightOrAssetDuration = trimLeft;
|
|
56
58
|
}
|
|
57
59
|
return {
|
|
58
60
|
filter: [
|
|
59
61
|
(0, calculate_atempo_1.calculateATempo)(asset.playbackRate),
|
|
60
|
-
`atrim=${stringifyTrim(trimLeft)}:${stringifyTrim(
|
|
62
|
+
`atrim=${stringifyTrim(trimLeft)}:${stringifyTrim(trimRightOrAssetDuration)}`,
|
|
61
63
|
],
|
|
62
64
|
actualTrimLeft: trimLeft,
|
|
63
|
-
audibleDuration:
|
|
65
|
+
audibleDuration: trimRightOrAssetDuration - trimLeft,
|
|
64
66
|
};
|
|
65
67
|
}
|
|
66
68
|
// Otherwise, we first trim and then apply playback rate, as then the atempo
|
|
@@ -87,7 +89,7 @@ const trimAndSetTempo = ({ forSeamlessAacConcatenation, assetDuration, asset, tr
|
|
|
87
89
|
}
|
|
88
90
|
throw new Error('This should never happen');
|
|
89
91
|
};
|
|
90
|
-
const stringifyFfmpegFilter = ({ channels, volume, fps, assetDuration, chunkLengthInSeconds, forSeamlessAacConcatenation, trimLeftOffset, trimRightOffset, asset, }) => {
|
|
92
|
+
const stringifyFfmpegFilter = ({ channels, volume, fps, assetDuration, chunkLengthInSeconds, forSeamlessAacConcatenation, trimLeftOffset, trimRightOffset, asset, indent, logLevel, }) => {
|
|
91
93
|
if (channels === 0) {
|
|
92
94
|
return null;
|
|
93
95
|
}
|
|
@@ -113,6 +115,8 @@ const stringifyFfmpegFilter = ({ channels, volume, fps, assetDuration, chunkLeng
|
|
|
113
115
|
trimRightOffset,
|
|
114
116
|
asset,
|
|
115
117
|
fps,
|
|
118
|
+
indent,
|
|
119
|
+
logLevel,
|
|
116
120
|
});
|
|
117
121
|
const volumeFilter = (0, ffmpeg_volume_expression_1.ffmpegVolumeExpression)({
|
|
118
122
|
volume,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@remotion/renderer",
|
|
3
|
-
"version": "4.0.
|
|
3
|
+
"version": "4.0.142",
|
|
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.142"
|
|
22
22
|
},
|
|
23
23
|
"peerDependencies": {
|
|
24
24
|
"react": ">=16.8.0",
|
|
@@ -30,6 +30,7 @@
|
|
|
30
30
|
"@testing-library/react": "13.3.0",
|
|
31
31
|
"@types/node": "18.14.6",
|
|
32
32
|
"@types/progress": "2.0.5",
|
|
33
|
+
"@types/bun": "1.0.12",
|
|
33
34
|
"@types/react": "18.2.48",
|
|
34
35
|
"@types/react-dom": "18.2.18",
|
|
35
36
|
"eslint": "8.56.0",
|
|
@@ -41,13 +42,13 @@
|
|
|
41
42
|
"@types/ws": "8.5.10"
|
|
42
43
|
},
|
|
43
44
|
"optionalDependencies": {
|
|
44
|
-
"@remotion/compositor-darwin-arm64": "4.0.
|
|
45
|
-
"@remotion/compositor-darwin-x64": "4.0.
|
|
46
|
-
"@remotion/compositor-linux-arm64-
|
|
47
|
-
"@remotion/compositor-
|
|
48
|
-
"@remotion/compositor-linux-x64-
|
|
49
|
-
"@remotion/compositor-linux-x64-
|
|
50
|
-
"@remotion/compositor-
|
|
45
|
+
"@remotion/compositor-darwin-arm64": "4.0.142",
|
|
46
|
+
"@remotion/compositor-darwin-x64": "4.0.142",
|
|
47
|
+
"@remotion/compositor-linux-arm64-gnu": "4.0.142",
|
|
48
|
+
"@remotion/compositor-linux-arm64-musl": "4.0.142",
|
|
49
|
+
"@remotion/compositor-linux-x64-gnu": "4.0.142",
|
|
50
|
+
"@remotion/compositor-linux-x64-musl": "4.0.142",
|
|
51
|
+
"@remotion/compositor-win32-x64-msvc": "4.0.142"
|
|
51
52
|
},
|
|
52
53
|
"keywords": [
|
|
53
54
|
"remotion",
|