@remotion/renderer 4.0.141 → 4.0.143
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/browser/NetworkManager.js +1 -1
- package/dist/check-version-requirements.d.ts +1 -1
- package/dist/check-version-requirements.js +19 -6
- 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 +5 -5
- package/dist/index.js +1 -1
- package/dist/logger.d.ts +4 -4
- package/dist/open-browser.js +2 -0
- package/dist/port-config.d.ts +3 -0
- 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 +11 -9
|
@@ -233,7 +233,7 @@ _NetworkManager_client = new WeakMap(), _NetworkManager_frameManager = new WeakM
|
|
|
233
233
|
return;
|
|
234
234
|
}
|
|
235
235
|
if (!event.canceled) {
|
|
236
|
-
logger_1.Log.warn({ indent: __classPrivateFieldGet(this, _NetworkManager_indent, "f"), logLevel: __classPrivateFieldGet(this, _NetworkManager_logLevel, "f") }, `Browser failed to load ${request._url}: ${event.errorText}`);
|
|
236
|
+
logger_1.Log.warn({ indent: __classPrivateFieldGet(this, _NetworkManager_indent, "f"), logLevel: __classPrivateFieldGet(this, _NetworkManager_logLevel, "f") }, `Browser failed to load ${request._url} (${event.type}): ${event.errorText}`);
|
|
237
237
|
}
|
|
238
238
|
__classPrivateFieldGet(this, _NetworkManager_instances, "m", _NetworkManager_forgetRequest).call(this, request, true);
|
|
239
239
|
};
|
|
@@ -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;
|
|
@@ -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';
|
|
@@ -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/port-config.d.ts
CHANGED
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
/// <reference types="node" />
|
|
3
|
+
/// <reference types="bun-types" />
|
|
3
4
|
/// <reference types="node" />
|
|
4
5
|
/// <reference types="node" />
|
|
5
6
|
/// <reference types="node" />
|
|
7
|
+
/// <reference types="bun-types" />
|
|
8
|
+
/// <reference types="bun-types" />
|
|
6
9
|
import type { NetworkInterfaceInfo } from 'os';
|
|
7
10
|
import os from 'os';
|
|
8
11
|
type PortConfig = {
|
|
@@ -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.143",
|
|
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.143"
|
|
22
22
|
},
|
|
23
23
|
"peerDependencies": {
|
|
24
24
|
"react": ">=16.8.0",
|
|
@@ -30,8 +30,10 @@
|
|
|
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",
|
|
36
|
+
"jsdom": "^24.0.0",
|
|
35
37
|
"eslint": "8.56.0",
|
|
36
38
|
"prettier": "3.2.5",
|
|
37
39
|
"prettier-plugin-organize-imports": "3.2.4",
|
|
@@ -41,13 +43,13 @@
|
|
|
41
43
|
"@types/ws": "8.5.10"
|
|
42
44
|
},
|
|
43
45
|
"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-
|
|
46
|
+
"@remotion/compositor-darwin-arm64": "4.0.143",
|
|
47
|
+
"@remotion/compositor-darwin-x64": "4.0.143",
|
|
48
|
+
"@remotion/compositor-linux-arm64-gnu": "4.0.143",
|
|
49
|
+
"@remotion/compositor-linux-arm64-musl": "4.0.143",
|
|
50
|
+
"@remotion/compositor-linux-x64-gnu": "4.0.143",
|
|
51
|
+
"@remotion/compositor-linux-x64-musl": "4.0.143",
|
|
52
|
+
"@remotion/compositor-win32-x64-msvc": "4.0.143"
|
|
51
53
|
},
|
|
52
54
|
"keywords": [
|
|
53
55
|
"remotion",
|