@remotion/cli 4.0.77 → 4.0.81
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/benchmark.js +3 -1
- package/dist/cloudrun-command.js +3 -4
- package/dist/config/bitrate.d.ts +4 -0
- package/dist/config/bitrate.js +22 -1
- package/dist/config/image-format.d.ts +1 -1
- package/dist/config/index.d.ts +12 -2
- package/dist/config/index.js +7 -4
- package/dist/download-progress.d.ts +1 -1
- package/dist/download-progress.js +2 -2
- package/dist/editor/components/Modals.js +1 -1
- package/dist/editor/components/RenderButton.js +3 -0
- package/dist/editor/components/RenderModal/CrfSetting.d.ts +3 -2
- package/dist/editor/components/RenderModal/EnforceAudioTrackSetting.d.ts +0 -2
- package/dist/editor/components/RenderModal/EnforceAudioTrackSetting.js +3 -4
- package/dist/editor/components/RenderModal/JpegQualitySetting.js +1 -2
- package/dist/editor/components/RenderModal/MutedSetting.d.ts +0 -2
- package/dist/editor/components/RenderModal/MutedSetting.js +3 -4
- package/dist/editor/components/RenderModal/NumberSetting.d.ts +2 -2
- package/dist/editor/components/RenderModal/NumberSetting.js +2 -3
- package/dist/editor/components/RenderModal/OptionExplainerBubble.d.ts +5 -0
- package/dist/editor/components/RenderModal/OptionExplainerBubble.js +12 -0
- package/dist/editor/components/RenderModal/RenderModal.d.ts +3 -0
- package/dist/editor/components/RenderModal/RenderModal.js +15 -4
- package/dist/editor/components/RenderModal/RenderModalAdvanced.d.ts +2 -0
- package/dist/editor/components/RenderModal/RenderModalAdvanced.js +19 -5
- package/dist/editor/components/RenderModal/RenderModalAudio.js +4 -4
- package/dist/editor/components/RenderModal/RenderModalBasic.js +2 -3
- package/dist/editor/components/RenderModal/RenderModalPicture.d.ts +4 -0
- package/dist/editor/components/RenderModal/RenderModalPicture.js +19 -5
- package/dist/editor/components/RenderModal/ScaleSetting.js +1 -2
- package/dist/editor/components/RenderModal/SchemaEditor/SchemaLabel.d.ts +1 -0
- package/dist/editor/components/RenderModal/SchemaEditor/SchemaLabel.js +19 -4
- package/dist/editor/components/RenderModal/SchemaEditor/SchemaSeparationLine.d.ts +8 -0
- package/dist/editor/components/RenderModal/SchemaEditor/SchemaSeparationLine.js +70 -2
- package/dist/editor/components/RenderModal/SchemaEditor/SchemaVerticalGuide.d.ts +1 -1
- package/dist/editor/components/RenderModal/SchemaEditor/SchemaVerticalGuide.js +23 -5
- package/dist/editor/components/RenderModal/SchemaEditor/ZodArrayEditor.js +12 -22
- package/dist/editor/components/RenderModal/SchemaEditor/ZodArrayItemEditor.js +6 -1
- package/dist/editor/components/RenderModal/SchemaEditor/ZodBooleanEditor.js +1 -1
- package/dist/editor/components/RenderModal/SchemaEditor/ZodColorEditor.js +1 -1
- package/dist/editor/components/RenderModal/SchemaEditor/ZodDateEditor.js +1 -1
- package/dist/editor/components/RenderModal/SchemaEditor/ZodDiscriminatedUnionEditor.js +1 -1
- package/dist/editor/components/RenderModal/SchemaEditor/ZodEnumEditor.js +1 -1
- package/dist/editor/components/RenderModal/SchemaEditor/ZodNonEditableValue.js +1 -1
- package/dist/editor/components/RenderModal/SchemaEditor/ZodNumberEditor.js +1 -1
- package/dist/editor/components/RenderModal/SchemaEditor/ZodObjectEditor.js +13 -5
- package/dist/editor/components/RenderModal/SchemaEditor/ZodOrNullishEditor.js +1 -1
- package/dist/editor/components/RenderModal/SchemaEditor/ZodStaticFileEditor.js +1 -1
- package/dist/editor/components/RenderModal/SchemaEditor/ZodStringEditor.js +1 -1
- package/dist/editor/components/RenderModal/SchemaEditor/ZodTextareaEditor.js +1 -1
- package/dist/editor/components/RenderModal/layout.d.ts +1 -0
- package/dist/editor/components/RenderModal/layout.js +6 -3
- package/dist/editor/components/RenderQueue/actions.d.ts +3 -1
- package/dist/editor/components/RenderQueue/actions.js +3 -1
- package/dist/editor/components/SidebarRenderButton.js +3 -0
- package/dist/editor/helpers/colors.d.ts +1 -0
- package/dist/editor/helpers/colors.js +2 -1
- package/dist/editor/helpers/render-modal-sections.d.ts +0 -1
- package/dist/editor/state/modals.d.ts +3 -0
- package/dist/get-cli-options.d.ts +4 -2
- package/dist/get-cli-options.js +4 -0
- package/dist/get-composition-id.js +2 -2
- package/dist/get-env.js +2 -2
- package/dist/get-render-defaults.d.ts +2 -0
- package/dist/get-render-defaults.js +71 -0
- package/dist/index.d.ts +13 -9
- package/dist/index.js +4 -4
- package/dist/lambda-command.js +3 -4
- package/dist/list-of-remotion-packages.js +1 -0
- package/dist/make-on-download.d.ts +1 -1
- package/dist/make-on-download.js +4 -2
- package/dist/parse-command-line.d.ts +6 -2
- package/dist/parse-command-line.js +6 -0
- package/dist/preview-server/render-queue/job.d.ts +4 -0
- package/dist/preview-server/render-queue/make-retry-payload.js +9 -0
- package/dist/preview-server/render-queue/process-video.js +2 -0
- package/dist/preview-server/routes/add-render.js +2 -0
- package/dist/preview-server/routes.d.ts +0 -1
- package/dist/preview-server/routes.js +6 -0
- package/dist/progress-bar.d.ts +1 -9
- package/dist/progress-bar.js +3 -4
- package/dist/progress-types.d.ts +1 -31
- package/dist/render-flows/render.d.ts +4 -2
- package/dist/render-flows/render.js +3 -1
- package/dist/render-flows/still.d.ts +1 -1
- package/dist/render-queue/process-still.d.ts +8 -0
- package/dist/render-queue/process-still.js +49 -0
- package/dist/render-queue/process-video.d.ts +10 -0
- package/dist/render-queue/process-video.js +70 -0
- package/dist/render-queue/queue.d.ts +11 -0
- package/dist/render-queue/queue.js +220 -0
- package/dist/render.js +3 -1
- package/dist/setup-cache.d.ts +1 -1
- package/dist/studio.js +30 -102
- package/dist/upgrade.js +4 -5
- package/dist/user-passed-output-location.js +2 -2
- package/package.json +10 -14
- package/styles/styles.css +0 -123
- package/types/global.d.ts +0 -4
- package/web/favicon.png +0 -0
|
@@ -29,6 +29,6 @@ const ZodStringEditor = ({ jsonPath, value, setValue, showSaveButton, defaultVal
|
|
|
29
29
|
const save = (0, react_1.useCallback)(() => {
|
|
30
30
|
onSave(() => value, false, false);
|
|
31
31
|
}, [onSave, value]);
|
|
32
|
-
return ((0, jsx_runtime_1.jsxs)(Fieldset_1.Fieldset, { shouldPad: mayPad, success: false, children: [(0, jsx_runtime_1.jsx)(SchemaLabel_1.SchemaLabel, { isDefaultValue: localValue.value === defaultValue, jsonPath: jsonPath, onReset: reset, onSave: save, showSaveButton: showSaveButton, onRemove: onRemove, saving: saving, valid: localValue.zodValidation.success, saveDisabledByParent: saveDisabledByParent, suffix: null }), (0, jsx_runtime_1.jsxs)("div", { style: fullWidth, children: [(0, jsx_runtime_1.jsx)(RemInput_1.RemotionInput, { value: localValue.value, status: localValue.zodValidation ? 'ok' : 'error', placeholder: jsonPath.join('.'), onChange: onChange, rightAlign: false, name: jsonPath.join('.') }), (0, jsx_runtime_1.jsx)(ZodFieldValidation_1.ZodFieldValidation, { path: jsonPath, localValue: localValue })] })] }));
|
|
32
|
+
return ((0, jsx_runtime_1.jsxs)(Fieldset_1.Fieldset, { shouldPad: mayPad, success: false, children: [(0, jsx_runtime_1.jsx)(SchemaLabel_1.SchemaLabel, { handleClick: null, isDefaultValue: localValue.value === defaultValue, jsonPath: jsonPath, onReset: reset, onSave: save, showSaveButton: showSaveButton, onRemove: onRemove, saving: saving, valid: localValue.zodValidation.success, saveDisabledByParent: saveDisabledByParent, suffix: null }), (0, jsx_runtime_1.jsxs)("div", { style: fullWidth, children: [(0, jsx_runtime_1.jsx)(RemInput_1.RemotionInput, { value: localValue.value, status: localValue.zodValidation ? 'ok' : 'error', placeholder: jsonPath.join('.'), onChange: onChange, rightAlign: false, name: jsonPath.join('.') }), (0, jsx_runtime_1.jsx)(ZodFieldValidation_1.ZodFieldValidation, { path: jsonPath, localValue: localValue })] })] }));
|
|
33
33
|
};
|
|
34
34
|
exports.ZodStringEditor = ZodStringEditor;
|
|
@@ -37,6 +37,6 @@ const ZodTextareaEditor = ({ jsonPath, value, setValue, showSaveButton, defaultV
|
|
|
37
37
|
const save = (0, react_1.useCallback)(() => {
|
|
38
38
|
onSave(() => value, false, false);
|
|
39
39
|
}, [onSave, value]);
|
|
40
|
-
return ((0, jsx_runtime_1.jsxs)(Fieldset_1.Fieldset, { shouldPad: mayPad, success: localValue.zodValidation.success, children: [(0, jsx_runtime_1.jsx)(SchemaLabel_1.SchemaLabel, { isDefaultValue: localValue.value === defaultValue, jsonPath: jsonPath, onReset: reset, onSave: save, showSaveButton: showSaveButton, onRemove: onRemove, saving: saving, valid: localValue.zodValidation.success, saveDisabledByParent: saveDisabledByParent, suffix: null }), (0, jsx_runtime_1.jsxs)("div", { style: fullWidth, children: [(0, jsx_runtime_1.jsx)(RemTextarea_1.RemTextarea, { onChange: onChange, value: localValue.value, status: localValue.zodValidation ? 'ok' : 'error', placeholder: jsonPath.join('.'), name: jsonPath.join('.'), style: textareaStyle }), (0, jsx_runtime_1.jsx)(ZodFieldValidation_1.ZodFieldValidation, { path: jsonPath, localValue: localValue })] })] }));
|
|
40
|
+
return ((0, jsx_runtime_1.jsxs)(Fieldset_1.Fieldset, { shouldPad: mayPad, success: localValue.zodValidation.success, children: [(0, jsx_runtime_1.jsx)(SchemaLabel_1.SchemaLabel, { handleClick: null, isDefaultValue: localValue.value === defaultValue, jsonPath: jsonPath, onReset: reset, onSave: save, showSaveButton: showSaveButton, onRemove: onRemove, saving: saving, valid: localValue.zodValidation.success, saveDisabledByParent: saveDisabledByParent, suffix: null }), (0, jsx_runtime_1.jsxs)("div", { style: fullWidth, children: [(0, jsx_runtime_1.jsx)(RemTextarea_1.RemTextarea, { onChange: onChange, value: localValue.value, status: localValue.zodValidation ? 'ok' : 'error', placeholder: jsonPath.join('.'), name: jsonPath.join('.'), style: textareaStyle }), (0, jsx_runtime_1.jsx)(ZodFieldValidation_1.ZodFieldValidation, { path: jsonPath, localValue: localValue })] })] }));
|
|
41
41
|
};
|
|
42
42
|
exports.ZodTextareaEditor = ZodTextareaEditor;
|
|
@@ -3,4 +3,5 @@ export declare const optionRow: React.CSSProperties;
|
|
|
3
3
|
export declare const label: React.CSSProperties;
|
|
4
4
|
export declare const rightRow: React.CSSProperties;
|
|
5
5
|
export declare const input: React.CSSProperties;
|
|
6
|
+
export declare const fieldSetText: React.CSSProperties;
|
|
6
7
|
export declare const fieldsetLabel: React.CSSProperties;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.fieldsetLabel = exports.input = exports.rightRow = exports.label = exports.optionRow = void 0;
|
|
3
|
+
exports.fieldsetLabel = exports.fieldSetText = exports.input = exports.rightRow = exports.label = exports.optionRow = void 0;
|
|
4
4
|
const colors_1 = require("../../helpers/colors");
|
|
5
5
|
exports.optionRow = {
|
|
6
6
|
display: 'flex',
|
|
@@ -31,12 +31,15 @@ exports.rightRow = {
|
|
|
31
31
|
exports.input = {
|
|
32
32
|
minWidth: 250,
|
|
33
33
|
};
|
|
34
|
-
exports.
|
|
34
|
+
exports.fieldSetText = {
|
|
35
35
|
color: colors_1.LIGHT_TEXT,
|
|
36
36
|
fontSize: 14,
|
|
37
|
+
fontFamily: 'monospace',
|
|
38
|
+
};
|
|
39
|
+
exports.fieldsetLabel = {
|
|
40
|
+
...exports.fieldSetText,
|
|
37
41
|
display: 'flex',
|
|
38
42
|
flexDirection: 'row',
|
|
39
|
-
fontFamily: 'monospace',
|
|
40
43
|
alignItems: 'center',
|
|
41
44
|
width: '100%',
|
|
42
45
|
};
|
|
@@ -35,7 +35,7 @@ export declare const addSequenceRenderJob: ({ compositionId, outName, imageForma
|
|
|
35
35
|
disallowParallelEncoding: boolean;
|
|
36
36
|
multiProcessOnLinux: boolean;
|
|
37
37
|
}) => Promise<undefined>;
|
|
38
|
-
export declare const addVideoRenderJob: ({ compositionId, outName, imageFormat, jpegQuality, scale, logLevel, codec, concurrency, crf, startFrame, endFrame, muted, enforceAudioTrack, proResProfile, x264Preset, pixelFormat, audioBitrate, videoBitrate, everyNthFrame, numberOfGifLoops, delayRenderTimeout, audioCodec, disallowParallelEncoding, chromiumOptions, envVariables, inputProps, offthreadVideoCacheSizeInBytes, colorSpace, multiProcessOnLinux, }: {
|
|
38
|
+
export declare const addVideoRenderJob: ({ compositionId, outName, imageFormat, jpegQuality, scale, logLevel, codec, concurrency, crf, startFrame, endFrame, muted, enforceAudioTrack, proResProfile, x264Preset, pixelFormat, audioBitrate, videoBitrate, everyNthFrame, numberOfGifLoops, delayRenderTimeout, audioCodec, disallowParallelEncoding, chromiumOptions, envVariables, inputProps, offthreadVideoCacheSizeInBytes, colorSpace, multiProcessOnLinux, encodingMaxRate, encodingBufferSize, }: {
|
|
39
39
|
compositionId: string;
|
|
40
40
|
outName: string;
|
|
41
41
|
imageFormat: VideoImageFormat;
|
|
@@ -65,6 +65,8 @@ export declare const addVideoRenderJob: ({ compositionId, outName, imageFormat,
|
|
|
65
65
|
offthreadVideoCacheSizeInBytes: number | null;
|
|
66
66
|
colorSpace: ColorSpace;
|
|
67
67
|
multiProcessOnLinux: boolean;
|
|
68
|
+
encodingMaxRate: string | null;
|
|
69
|
+
encodingBufferSize: string | null;
|
|
68
70
|
}) => Promise<undefined>;
|
|
69
71
|
export declare const unsubscribeFromFileExistenceWatcher: ({ file, clientId, }: {
|
|
70
72
|
file: string;
|
|
@@ -75,7 +75,7 @@ const addSequenceRenderJob = ({ compositionId, outName, imageFormat, startFrame,
|
|
|
75
75
|
});
|
|
76
76
|
};
|
|
77
77
|
exports.addSequenceRenderJob = addSequenceRenderJob;
|
|
78
|
-
const addVideoRenderJob = ({ compositionId, outName, imageFormat, jpegQuality, scale, logLevel, codec, concurrency, crf, startFrame, endFrame, muted, enforceAudioTrack, proResProfile, x264Preset, pixelFormat, audioBitrate, videoBitrate, everyNthFrame, numberOfGifLoops, delayRenderTimeout, audioCodec, disallowParallelEncoding, chromiumOptions, envVariables, inputProps, offthreadVideoCacheSizeInBytes, colorSpace, multiProcessOnLinux, }) => {
|
|
78
|
+
const addVideoRenderJob = ({ compositionId, outName, imageFormat, jpegQuality, scale, logLevel, codec, concurrency, crf, startFrame, endFrame, muted, enforceAudioTrack, proResProfile, x264Preset, pixelFormat, audioBitrate, videoBitrate, everyNthFrame, numberOfGifLoops, delayRenderTimeout, audioCodec, disallowParallelEncoding, chromiumOptions, envVariables, inputProps, offthreadVideoCacheSizeInBytes, colorSpace, multiProcessOnLinux, encodingMaxRate, encodingBufferSize, }) => {
|
|
79
79
|
return callApi('/api/render', {
|
|
80
80
|
compositionId,
|
|
81
81
|
type: 'video',
|
|
@@ -111,6 +111,8 @@ const addVideoRenderJob = ({ compositionId, outName, imageFormat, jpegQuality, s
|
|
|
111
111
|
offthreadVideoCacheSizeInBytes,
|
|
112
112
|
colorSpace,
|
|
113
113
|
multiProcessOnLinux,
|
|
114
|
+
encodingBufferSize,
|
|
115
|
+
encodingMaxRate,
|
|
114
116
|
});
|
|
115
117
|
};
|
|
116
118
|
exports.addVideoRenderJob = addVideoRenderJob;
|
|
@@ -61,6 +61,9 @@ const SidebarRenderButton = ({ composition, visible }) => {
|
|
|
61
61
|
initialColorSpace: defaults.colorSpace,
|
|
62
62
|
initialMultiProcessOnLinux: defaults.multiProcessOnLinux,
|
|
63
63
|
defaultConfigurationVideoCodec: defaults.codec,
|
|
64
|
+
initialEncodingBufferSize: defaults.encodingBufferSize,
|
|
65
|
+
initialEncodingMaxRate: defaults.encodingMaxRate,
|
|
66
|
+
initialUserAgent: defaults.userAgent,
|
|
64
67
|
});
|
|
65
68
|
}, [composition.defaultProps, composition.id, props, setSelectedModal]);
|
|
66
69
|
const renderAction = (0, react_1.useCallback)((color) => {
|
|
@@ -18,6 +18,7 @@ export declare const BLUE_DISABLED = "#284f73";
|
|
|
18
18
|
export declare const LIGHT_TRANSPARENT = "rgba(255, 255, 255, 0.7)";
|
|
19
19
|
export declare const UNSELECTED_GUIDE = "#7e1219";
|
|
20
20
|
export declare const SELECTED_GUIDE = "#d22d3a";
|
|
21
|
+
export declare const LINE_COLOR = "#363A3E";
|
|
21
22
|
export declare const getBackgroundFromHoverState: ({ selected, hovered, }: {
|
|
22
23
|
selected: boolean;
|
|
23
24
|
hovered: boolean;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getBackgroundFromHoverState = exports.SELECTED_GUIDE = exports.UNSELECTED_GUIDE = exports.LIGHT_TRANSPARENT = exports.BLUE_DISABLED = exports.BLUE = exports.WARNING_COLOR = exports.FAIL_COLOR = exports.TIMELINE_BACKGROUND = exports.INPUT_BORDER_COLOR_HOVERED = exports.INPUT_BORDER_COLOR_UNHOVERED = exports.CLEAR_HOVER = exports.VERY_LIGHT_TEXT = exports.RULER_COLOR = exports.LIGHT_TEXT = exports.SELECTED_BACKGROUND = exports.LIGHT_COLOR = exports.BORDER_COLOR = exports.INPUT_BACKGROUND = exports.BACKGROUND__TRANSPARENT = exports.BACKGROUND = void 0;
|
|
3
|
+
exports.getBackgroundFromHoverState = exports.LINE_COLOR = exports.SELECTED_GUIDE = exports.UNSELECTED_GUIDE = exports.LIGHT_TRANSPARENT = exports.BLUE_DISABLED = exports.BLUE = exports.WARNING_COLOR = exports.FAIL_COLOR = exports.TIMELINE_BACKGROUND = exports.INPUT_BORDER_COLOR_HOVERED = exports.INPUT_BORDER_COLOR_UNHOVERED = exports.CLEAR_HOVER = exports.VERY_LIGHT_TEXT = exports.RULER_COLOR = exports.LIGHT_TEXT = exports.SELECTED_BACKGROUND = exports.LIGHT_COLOR = exports.BORDER_COLOR = exports.INPUT_BACKGROUND = exports.BACKGROUND__TRANSPARENT = exports.BACKGROUND = void 0;
|
|
4
4
|
exports.BACKGROUND = 'rgb(31,36,40)';
|
|
5
5
|
exports.BACKGROUND__TRANSPARENT = 'rgba(31,36,40, 0)';
|
|
6
6
|
exports.INPUT_BACKGROUND = '#2f363d';
|
|
@@ -22,6 +22,7 @@ exports.BLUE_DISABLED = '#284f73';
|
|
|
22
22
|
exports.LIGHT_TRANSPARENT = 'rgba(255, 255, 255, 0.7)';
|
|
23
23
|
exports.UNSELECTED_GUIDE = '#7e1219';
|
|
24
24
|
exports.SELECTED_GUIDE = '#d22d3a';
|
|
25
|
+
exports.LINE_COLOR = '#363A3E';
|
|
25
26
|
const getBackgroundFromHoverState = ({ selected, hovered, }) => {
|
|
26
27
|
if (selected) {
|
|
27
28
|
if (hovered) {
|
|
@@ -31,6 +31,9 @@ export type RenderModalState = {
|
|
|
31
31
|
initialOffthreadVideoCacheSizeInBytes: number | null;
|
|
32
32
|
initialColorSpace: ColorSpace;
|
|
33
33
|
initialMultiProcessOnLinux: boolean;
|
|
34
|
+
initialUserAgent: string | null;
|
|
35
|
+
initialEncodingMaxRate: string | null;
|
|
36
|
+
initialEncodingBufferSize: string | null;
|
|
34
37
|
minConcurrency: number;
|
|
35
38
|
maxConcurrency: number;
|
|
36
39
|
defaultProps: Record<string, unknown>;
|
|
@@ -17,7 +17,7 @@ export declare const getCliOptions: (options: {
|
|
|
17
17
|
crf: import("@remotion/renderer").Crf | null;
|
|
18
18
|
pixelFormat: "yuv420p" | "yuva420p" | "yuv422p" | "yuv444p" | "yuv420p10le" | "yuv422p10le" | "yuv444p10le" | "yuva444p10le";
|
|
19
19
|
proResProfile: "4444-xq" | "4444" | "hq" | "standard" | "light" | "proxy" | undefined;
|
|
20
|
-
x264Preset: "
|
|
20
|
+
x264Preset: "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "medium" | "slow" | "slower" | "veryslow" | "placebo" | undefined;
|
|
21
21
|
everyNthFrame: number;
|
|
22
22
|
numberOfGifLoops: import("./config/number-of-gif-loops").Loop;
|
|
23
23
|
stillFrame: number;
|
|
@@ -32,9 +32,11 @@ export declare const getCliOptions: (options: {
|
|
|
32
32
|
ffmpegOverride: import("@remotion/renderer").FfmpegOverrideFn;
|
|
33
33
|
audioBitrate: string | null;
|
|
34
34
|
videoBitrate: string | null;
|
|
35
|
+
encodingBufferSize: string | null;
|
|
36
|
+
encodingMaxRate: string | null;
|
|
35
37
|
height: number | null;
|
|
36
38
|
width: number | null;
|
|
37
|
-
configFileImageFormat: "
|
|
39
|
+
configFileImageFormat: "png" | "jpeg" | "none" | undefined;
|
|
38
40
|
offthreadVideoCacheSizeInBytes: number | null;
|
|
39
41
|
deleteAfter: ("1-day" | "3-days" | "7-days" | "30-days") | null;
|
|
40
42
|
colorSpace: "default" | "bt709";
|
package/dist/get-cli-options.js
CHANGED
|
@@ -77,6 +77,8 @@ const getCliOptions = async (options) => {
|
|
|
77
77
|
});
|
|
78
78
|
const crf = getCrf(shouldOutputImageSequence);
|
|
79
79
|
const videoBitrate = config_1.ConfigInternals.getVideoBitrate();
|
|
80
|
+
const encodingBufferSize = config_1.ConfigInternals.getEncodingBufferSize();
|
|
81
|
+
const encodingMaxRate = config_1.ConfigInternals.getEncodingMaxRate();
|
|
80
82
|
const pixelFormat = config_1.ConfigInternals.getPixelFormat();
|
|
81
83
|
const proResProfile = getProResProfile();
|
|
82
84
|
const x264Preset = getx264Preset();
|
|
@@ -131,6 +133,8 @@ const getCliOptions = async (options) => {
|
|
|
131
133
|
ffmpegOverride: config_1.ConfigInternals.getFfmpegOverrideFunction(),
|
|
132
134
|
audioBitrate: config_1.ConfigInternals.getAudioBitrate(),
|
|
133
135
|
videoBitrate,
|
|
136
|
+
encodingBufferSize,
|
|
137
|
+
encodingMaxRate,
|
|
134
138
|
height,
|
|
135
139
|
width,
|
|
136
140
|
configFileImageFormat: config_1.ConfigInternals.getUserPreferredVideoImageFormat(),
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getCompositionId = void 0;
|
|
4
4
|
const renderer_1 = require("@remotion/renderer");
|
|
5
|
-
const
|
|
5
|
+
const studio_1 = require("@remotion/studio");
|
|
6
6
|
const log_1 = require("./log");
|
|
7
7
|
const show_compositions_picker_1 = require("./show-compositions-picker");
|
|
8
8
|
const getCompName = ({ cliArgs, compositionIdFromUi, }) => {
|
|
@@ -42,7 +42,7 @@ const getCompositionId = async ({ args, compositionIdFromUi, serializedInputProp
|
|
|
42
42
|
log_1.Log.warn({
|
|
43
43
|
indent,
|
|
44
44
|
logLevel,
|
|
45
|
-
}, `The props of your composition are large (${
|
|
45
|
+
}, `The props of your composition are large (${studio_1.StudioInternals.formatBytes(propsSize)}). This may cause slowdown.`);
|
|
46
46
|
}
|
|
47
47
|
if (!config) {
|
|
48
48
|
throw new Error(`Cannot find composition with ID "${compName}"`);
|
package/dist/get-env.js
CHANGED
|
@@ -28,12 +28,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
28
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
29
|
exports.getEnvironmentVariables = void 0;
|
|
30
30
|
const renderer_1 = require("@remotion/renderer");
|
|
31
|
+
const studio_1 = require("@remotion/studio");
|
|
31
32
|
const dotenv_1 = __importDefault(require("dotenv"));
|
|
32
33
|
const node_fs_1 = __importStar(require("node:fs"));
|
|
33
34
|
const node_path_1 = __importDefault(require("node:path"));
|
|
34
35
|
const chalk_1 = require("./chalk");
|
|
35
36
|
const config_1 = require("./config");
|
|
36
|
-
const file_watcher_1 = require("./file-watcher");
|
|
37
37
|
const log_1 = require("./log");
|
|
38
38
|
const parse_command_line_1 = require("./parse-command-line");
|
|
39
39
|
function getProcessEnv() {
|
|
@@ -52,7 +52,7 @@ const watchEnvFile = ({ processEnv, envFile, onUpdate, logLevel, }) => {
|
|
|
52
52
|
...dotenv_1.default.parse(file),
|
|
53
53
|
});
|
|
54
54
|
};
|
|
55
|
-
const { unwatch } =
|
|
55
|
+
const { unwatch } = studio_1.StudioInternals.installFileWatcher({
|
|
56
56
|
file: envFile,
|
|
57
57
|
onChange: async (type) => {
|
|
58
58
|
try {
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getRenderDefaults = void 0;
|
|
4
|
+
const renderer_1 = require("@remotion/renderer");
|
|
5
|
+
const config_1 = require("./config");
|
|
6
|
+
const getRenderDefaults = () => {
|
|
7
|
+
var _a, _b;
|
|
8
|
+
const defaultJpegQuality = config_1.ConfigInternals.getJpegQuality();
|
|
9
|
+
const defaultScale = config_1.ConfigInternals.getScale();
|
|
10
|
+
const logLevel = config_1.ConfigInternals.Logging.getLogLevel();
|
|
11
|
+
const defaultCodec = config_1.ConfigInternals.getOutputCodecOrUndefined();
|
|
12
|
+
const concurrency = renderer_1.RenderInternals.getActualConcurrency(config_1.ConfigInternals.getConcurrency());
|
|
13
|
+
const muted = config_1.ConfigInternals.getMuted();
|
|
14
|
+
const enforceAudioTrack = config_1.ConfigInternals.getEnforceAudioTrack();
|
|
15
|
+
const pixelFormat = config_1.ConfigInternals.getPixelFormat();
|
|
16
|
+
const proResProfile = (_a = config_1.ConfigInternals.getProResProfile()) !== null && _a !== void 0 ? _a : 'hq';
|
|
17
|
+
const x264Preset = (_b = config_1.ConfigInternals.getPresetProfile()) !== null && _b !== void 0 ? _b : 'medium';
|
|
18
|
+
const audioBitrate = config_1.ConfigInternals.getAudioBitrate();
|
|
19
|
+
const videoBitrate = config_1.ConfigInternals.getVideoBitrate();
|
|
20
|
+
const encodingBufferSize = config_1.ConfigInternals.getEncodingBufferSize();
|
|
21
|
+
const encodingMaxRate = config_1.ConfigInternals.getEncodingMaxRate();
|
|
22
|
+
const everyNthFrame = config_1.ConfigInternals.getEveryNthFrame();
|
|
23
|
+
const numberOfGifLoops = config_1.ConfigInternals.getNumberOfGifLoops();
|
|
24
|
+
const delayRenderTimeout = config_1.ConfigInternals.getCurrentPuppeteerTimeout();
|
|
25
|
+
const audioCodec = config_1.ConfigInternals.getAudioCodec();
|
|
26
|
+
const stillImageFormat = config_1.ConfigInternals.getUserPreferredStillImageFormat();
|
|
27
|
+
const videoImageFormat = config_1.ConfigInternals.getUserPreferredVideoImageFormat();
|
|
28
|
+
const disableWebSecurity = config_1.ConfigInternals.getChromiumDisableWebSecurity();
|
|
29
|
+
const headless = config_1.ConfigInternals.getChromiumHeadlessMode();
|
|
30
|
+
const ignoreCertificateErrors = config_1.ConfigInternals.getIgnoreCertificateErrors();
|
|
31
|
+
const openGlRenderer = config_1.ConfigInternals.getChromiumOpenGlRenderer();
|
|
32
|
+
const offthreadVideoCacheSizeInBytes = config_1.ConfigInternals.getOffthreadVideoCacheSizeInBytes();
|
|
33
|
+
const colorSpace = config_1.ConfigInternals.getColorSpace();
|
|
34
|
+
const userAgent = config_1.ConfigInternals.getChromiumUserAgent();
|
|
35
|
+
const maxConcurrency = renderer_1.RenderInternals.getMaxConcurrency();
|
|
36
|
+
const minConcurrency = renderer_1.RenderInternals.getMinConcurrency();
|
|
37
|
+
const multiProcessOnLinux = config_1.ConfigInternals.getChromiumMultiProcessOnLinux();
|
|
38
|
+
return {
|
|
39
|
+
jpegQuality: defaultJpegQuality !== null && defaultJpegQuality !== void 0 ? defaultJpegQuality : renderer_1.RenderInternals.DEFAULT_JPEG_QUALITY,
|
|
40
|
+
scale: defaultScale !== null && defaultScale !== void 0 ? defaultScale : 1,
|
|
41
|
+
logLevel,
|
|
42
|
+
codec: defaultCodec !== null && defaultCodec !== void 0 ? defaultCodec : 'h264',
|
|
43
|
+
concurrency,
|
|
44
|
+
maxConcurrency,
|
|
45
|
+
minConcurrency,
|
|
46
|
+
stillImageFormat: stillImageFormat !== null && stillImageFormat !== void 0 ? stillImageFormat : renderer_1.RenderInternals.DEFAULT_STILL_IMAGE_FORMAT,
|
|
47
|
+
videoImageFormat: videoImageFormat !== null && videoImageFormat !== void 0 ? videoImageFormat : renderer_1.RenderInternals.DEFAULT_VIDEO_IMAGE_FORMAT,
|
|
48
|
+
muted,
|
|
49
|
+
enforceAudioTrack,
|
|
50
|
+
proResProfile,
|
|
51
|
+
x264Preset,
|
|
52
|
+
pixelFormat,
|
|
53
|
+
audioBitrate,
|
|
54
|
+
videoBitrate,
|
|
55
|
+
encodingBufferSize,
|
|
56
|
+
encodingMaxRate,
|
|
57
|
+
everyNthFrame,
|
|
58
|
+
numberOfGifLoops,
|
|
59
|
+
delayRenderTimeout,
|
|
60
|
+
audioCodec,
|
|
61
|
+
disableWebSecurity,
|
|
62
|
+
headless,
|
|
63
|
+
ignoreCertificateErrors,
|
|
64
|
+
openGlRenderer,
|
|
65
|
+
offthreadVideoCacheSizeInBytes,
|
|
66
|
+
colorSpace,
|
|
67
|
+
multiProcessOnLinux,
|
|
68
|
+
userAgent,
|
|
69
|
+
};
|
|
70
|
+
};
|
|
71
|
+
exports.getRenderDefaults = getRenderDefaults;
|
package/dist/index.d.ts
CHANGED
|
@@ -87,7 +87,7 @@ export declare const CliInternals: {
|
|
|
87
87
|
crf: import("@remotion/renderer").Crf | null;
|
|
88
88
|
pixelFormat: "yuv420p" | "yuva420p" | "yuv422p" | "yuv444p" | "yuv420p10le" | "yuv422p10le" | "yuv444p10le" | "yuva444p10le";
|
|
89
89
|
proResProfile: "4444-xq" | "4444" | "hq" | "standard" | "light" | "proxy" | undefined;
|
|
90
|
-
x264Preset: "
|
|
90
|
+
x264Preset: "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "medium" | "slow" | "slower" | "veryslow" | "placebo" | undefined;
|
|
91
91
|
everyNthFrame: number;
|
|
92
92
|
numberOfGifLoops: import("./config/number-of-gif-loops").Loop;
|
|
93
93
|
stillFrame: number;
|
|
@@ -102,9 +102,11 @@ export declare const CliInternals: {
|
|
|
102
102
|
ffmpegOverride: import("@remotion/renderer").FfmpegOverrideFn;
|
|
103
103
|
audioBitrate: string | null;
|
|
104
104
|
videoBitrate: string | null;
|
|
105
|
+
encodingBufferSize: string | null;
|
|
106
|
+
encodingMaxRate: string | null;
|
|
105
107
|
height: number | null;
|
|
106
108
|
width: number | null;
|
|
107
|
-
configFileImageFormat: "
|
|
109
|
+
configFileImageFormat: "png" | "jpeg" | "none" | undefined;
|
|
108
110
|
offthreadVideoCacheSizeInBytes: number | null;
|
|
109
111
|
deleteAfter: ("1-day" | "3-days" | "7-days" | "30-days") | null;
|
|
110
112
|
colorSpace: "default" | "bt709";
|
|
@@ -116,9 +118,9 @@ export declare const CliInternals: {
|
|
|
116
118
|
parsedCli: {
|
|
117
119
|
"browser-executable": import("@remotion/renderer").BrowserExecutable;
|
|
118
120
|
"pixel-format": "yuv420p" | "yuva420p" | "yuv422p" | "yuv444p" | "yuv420p10le" | "yuv422p10le" | "yuv444p10le" | "yuva444p10le";
|
|
119
|
-
"image-format": "
|
|
121
|
+
"image-format": "png" | "jpeg" | "pdf" | "webp" | "none";
|
|
120
122
|
"prores-profile": "4444-xq" | "4444" | "hq" | "standard" | "light" | "proxy";
|
|
121
|
-
"x264-preset": "
|
|
123
|
+
"x264-preset": "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "medium" | "slow" | "slower" | "veryslow" | "placebo";
|
|
122
124
|
"bundle-cache": string;
|
|
123
125
|
"env-file": string;
|
|
124
126
|
"ignore-certificate-errors": string;
|
|
@@ -169,6 +171,8 @@ export declare const CliInternals: {
|
|
|
169
171
|
"user-agent": string;
|
|
170
172
|
"offthreadvideo-cache-size-in-bytes": number | null;
|
|
171
173
|
"color-space": "default" | "bt709";
|
|
174
|
+
"buffer-size": string | null;
|
|
175
|
+
"max-rate": string | null;
|
|
172
176
|
"delete-after": string | undefined;
|
|
173
177
|
"enable-folder-expiry": boolean | undefined;
|
|
174
178
|
"enable-multiprocess-on-linux": boolean;
|
|
@@ -176,18 +180,18 @@ export declare const CliInternals: {
|
|
|
176
180
|
_: string[];
|
|
177
181
|
};
|
|
178
182
|
printError: (err: Error, logLevel: "verbose" | "info" | "warn" | "error") => Promise<void>;
|
|
179
|
-
formatBytes: (number: number, options?: Intl.NumberFormatOptions & {
|
|
183
|
+
formatBytes: (number: number, options?: (Intl.NumberFormatOptions & {
|
|
180
184
|
locale: string;
|
|
181
185
|
bits?: boolean | undefined;
|
|
182
186
|
binary?: boolean | undefined;
|
|
183
187
|
signed: boolean;
|
|
184
|
-
}) => string;
|
|
188
|
+
}) | undefined) => string;
|
|
185
189
|
getFileSizeDownloadBar: (downloaded: number) => string;
|
|
186
190
|
determineFinalStillImageFormat: ({ downloadName, outName, configImageFormat, cliFlag, isLambda, fromUi, }: {
|
|
187
191
|
downloadName: string | null;
|
|
188
192
|
outName: string | null;
|
|
189
193
|
configImageFormat: "png" | "jpeg" | "pdf" | "webp" | null;
|
|
190
|
-
cliFlag: "
|
|
194
|
+
cliFlag: "png" | "jpeg" | "pdf" | "webp" | "none" | null;
|
|
191
195
|
isLambda: boolean;
|
|
192
196
|
fromUi: "png" | "jpeg" | "pdf" | "webp" | null;
|
|
193
197
|
}) => {
|
|
@@ -202,8 +206,8 @@ export declare const CliInternals: {
|
|
|
202
206
|
};
|
|
203
207
|
getVideoImageFormat: ({ codec, uiImageFormat, }: {
|
|
204
208
|
codec: import("@remotion/renderer").CodecOrUndefined;
|
|
205
|
-
uiImageFormat: "
|
|
206
|
-
}) => "
|
|
209
|
+
uiImageFormat: "png" | "jpeg" | "none" | null;
|
|
210
|
+
}) => "png" | "jpeg" | "none";
|
|
207
211
|
printCompositions: (compositions: import("remotion").VideoConfig[]) => void;
|
|
208
212
|
getFinalOutputCodec: ({ cliFlag, configFile, downloadName, outName, uiCodec, compositionCodec, }: {
|
|
209
213
|
cliFlag: import("@remotion/renderer").CodecOrUndefined;
|
package/dist/index.js
CHANGED
|
@@ -5,6 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.CliInternals = exports.cli = void 0;
|
|
7
7
|
const renderer_1 = require("@remotion/renderer");
|
|
8
|
+
const studio_1 = require("@remotion/studio");
|
|
8
9
|
const minimist_1 = __importDefault(require("minimist"));
|
|
9
10
|
const benchmark_1 = require("./benchmark");
|
|
10
11
|
const chalk_1 = require("./chalk");
|
|
@@ -16,7 +17,6 @@ const determine_image_format_1 = require("./determine-image-format");
|
|
|
16
17
|
const download_progress_1 = require("./download-progress");
|
|
17
18
|
const entry_point_1 = require("./entry-point");
|
|
18
19
|
const ffmpeg_1 = require("./ffmpeg");
|
|
19
|
-
const format_bytes_1 = require("./format-bytes");
|
|
20
20
|
const get_cli_options_1 = require("./get-cli-options");
|
|
21
21
|
const get_composition_with_dimension_override_1 = require("./get-composition-with-dimension-override");
|
|
22
22
|
const get_config_file_name_1 = require("./get-config-file-name");
|
|
@@ -36,7 +36,7 @@ const progress_bar_1 = require("./progress-bar");
|
|
|
36
36
|
const render_1 = require("./render");
|
|
37
37
|
const should_use_non_overlaying_logger_1 = require("./should-use-non-overlaying-logger");
|
|
38
38
|
const still_1 = require("./still");
|
|
39
|
-
const
|
|
39
|
+
const studio_2 = require("./studio");
|
|
40
40
|
const upgrade_1 = require("./upgrade");
|
|
41
41
|
const versions_1 = require("./versions");
|
|
42
42
|
const cli = async () => {
|
|
@@ -73,7 +73,7 @@ const cli = async () => {
|
|
|
73
73
|
await (0, compositions_1.listCompositionsCommand)(remotionRoot, args, logLevel);
|
|
74
74
|
}
|
|
75
75
|
else if (isStudio) {
|
|
76
|
-
await (0,
|
|
76
|
+
await (0, studio_2.studioCommand)(remotionRoot, args, logLevel);
|
|
77
77
|
}
|
|
78
78
|
else if (command === 'lambda') {
|
|
79
79
|
await (0, lambda_command_1.lambdaCommand)(remotionRoot, args, logLevel);
|
|
@@ -141,7 +141,7 @@ exports.CliInternals = {
|
|
|
141
141
|
quietFlagProvided: parse_command_line_1.quietFlagProvided,
|
|
142
142
|
parsedCli: parse_command_line_1.parsedCli,
|
|
143
143
|
printError: print_error_1.printError,
|
|
144
|
-
formatBytes:
|
|
144
|
+
formatBytes: studio_1.StudioInternals.formatBytes,
|
|
145
145
|
getFileSizeDownloadBar: download_progress_1.getFileSizeDownloadBar,
|
|
146
146
|
determineFinalStillImageFormat: determine_image_format_1.determineFinalStillImageFormat,
|
|
147
147
|
minimist: minimist_1.default,
|
package/dist/lambda-command.js
CHANGED
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.lambdaCommand = void 0;
|
|
4
|
+
const studio_1 = require("@remotion/studio");
|
|
4
5
|
const log_1 = require("./log");
|
|
5
|
-
const get_package_manager_1 = require("./preview-server/get-package-manager");
|
|
6
|
-
const update_available_1 = require("./preview-server/update-available");
|
|
7
6
|
const lambdaCommand = async (remotionRoot, args, logLevel) => {
|
|
8
7
|
try {
|
|
9
8
|
const path = require.resolve('@remotion/lambda', {
|
|
@@ -14,13 +13,13 @@ const lambdaCommand = async (remotionRoot, args, logLevel) => {
|
|
|
14
13
|
process.exit(0);
|
|
15
14
|
}
|
|
16
15
|
catch (err) {
|
|
17
|
-
const manager =
|
|
16
|
+
const manager = studio_1.StudioInternals.getPackageManager(remotionRoot, undefined);
|
|
18
17
|
const installCommand = manager === 'unknown' ? 'npm i' : manager.installCommand;
|
|
19
18
|
log_1.Log.error(err);
|
|
20
19
|
log_1.Log.error('Remotion Lambda is not installed.');
|
|
21
20
|
log_1.Log.info('');
|
|
22
21
|
log_1.Log.info('You can install it using:');
|
|
23
|
-
log_1.Log.info(`${installCommand} @remotion/lambda@${
|
|
22
|
+
log_1.Log.info(`${installCommand} @remotion/lambda@${studio_1.StudioInternals.getRemotionVersion()}`);
|
|
24
23
|
process.exit(1);
|
|
25
24
|
}
|
|
26
25
|
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { LogLevel, RenderMediaOnDownload } from '@remotion/renderer';
|
|
2
|
-
import type { DownloadProgress } from '
|
|
2
|
+
import type { DownloadProgress } from '@remotion/studio';
|
|
3
3
|
export declare const makeOnDownload: ({ indent, logLevel, updatesDontOverwrite, downloads, updateRenderProgress, isUsingParallelEncoding, }: {
|
|
4
4
|
indent: boolean;
|
|
5
5
|
logLevel: LogLevel;
|
package/dist/make-on-download.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.makeOnDownload = void 0;
|
|
4
|
-
const
|
|
4
|
+
const studio_1 = require("@remotion/studio");
|
|
5
5
|
const log_1 = require("./log");
|
|
6
6
|
const makeOnDownload = ({ indent, logLevel, updatesDontOverwrite, downloads, updateRenderProgress, isUsingParallelEncoding, }) => {
|
|
7
7
|
return (src) => {
|
|
@@ -30,7 +30,9 @@ const makeOnDownload = ({ indent, logLevel, updatesDontOverwrite, downloads, upd
|
|
|
30
30
|
return;
|
|
31
31
|
}
|
|
32
32
|
lastUpdate = Date.now();
|
|
33
|
-
log_1.Log.verbose({ indent, logLevel }, `Download [${nextDownloadIndex}]:`, percent
|
|
33
|
+
log_1.Log.verbose({ indent, logLevel }, `Download [${nextDownloadIndex}]:`, percent
|
|
34
|
+
? `${(percent * 100).toFixed(1)}%`
|
|
35
|
+
: studio_1.StudioInternals.formatBytes(downloaded));
|
|
34
36
|
updateRenderProgress({
|
|
35
37
|
newline: false,
|
|
36
38
|
printToConsole: !updatesDontOverwrite,
|
|
@@ -13,8 +13,8 @@ type CommandLineOptions = {
|
|
|
13
13
|
['every-nth-frame']: number;
|
|
14
14
|
['number-of-gif-loops']: number;
|
|
15
15
|
['number-of-shared-audio-tags']: number;
|
|
16
|
-
[BrowserSafeApis.options.
|
|
17
|
-
.cliFlag]: typeof BrowserSafeApis.options.
|
|
16
|
+
[BrowserSafeApis.options.offthreadVideoCacheSizeInBytes
|
|
17
|
+
.cliFlag]: typeof BrowserSafeApis.options.offthreadVideoCacheSizeInBytes.type;
|
|
18
18
|
[BrowserSafeApis.options.colorSpaceOption
|
|
19
19
|
.cliFlag]: typeof BrowserSafeApis.options.colorSpaceOption.type;
|
|
20
20
|
version: string;
|
|
@@ -25,6 +25,10 @@ type CommandLineOptions = {
|
|
|
25
25
|
['public-dir']: string;
|
|
26
26
|
['audio-bitrate']: string;
|
|
27
27
|
['video-bitrate']: string;
|
|
28
|
+
[BrowserSafeApis.options.encodingBufferSizeOption
|
|
29
|
+
.cliFlag]: typeof BrowserSafeApis.options.encodingBufferSizeOption.type;
|
|
30
|
+
[BrowserSafeApis.options.encodingMaxRateOption
|
|
31
|
+
.cliFlag]: typeof BrowserSafeApis.options.encodingMaxRateOption.type;
|
|
28
32
|
['audio-codec']: AudioCodec;
|
|
29
33
|
crf: number;
|
|
30
34
|
force: boolean;
|
|
@@ -144,6 +144,12 @@ const parseCommandLine = () => {
|
|
|
144
144
|
if (typeof exports.parsedCli['video-bitrate'] !== 'undefined') {
|
|
145
145
|
config_1.Config.setVideoBitrate(exports.parsedCli['video-bitrate']);
|
|
146
146
|
}
|
|
147
|
+
if (typeof exports.parsedCli['buffer-size'] !== 'undefined') {
|
|
148
|
+
config_1.Config.setEncodingBufferSize(exports.parsedCli['buffer-size']);
|
|
149
|
+
}
|
|
150
|
+
if (typeof exports.parsedCli['max-rate'] !== 'undefined') {
|
|
151
|
+
config_1.Config.setEncodingMaxRate(exports.parsedCli['max-rate']);
|
|
152
|
+
}
|
|
147
153
|
if (typeof exports.parsedCli['offthreadvideo-cache-size-in-bytes'] !== 'undefined') {
|
|
148
154
|
config_1.Config.setOffthreadVideoCacheSizeInBytes(exports.parsedCli['offthreadvideo-cache-size-in-bytes']);
|
|
149
155
|
}
|
|
@@ -57,6 +57,8 @@ type RenderJobDynamicFields = ({
|
|
|
57
57
|
pixelFormat: PixelFormat;
|
|
58
58
|
audioBitrate: string | null;
|
|
59
59
|
videoBitrate: string | null;
|
|
60
|
+
encodingBufferSize: string | null;
|
|
61
|
+
encodingMaxRate: string | null;
|
|
60
62
|
everyNthFrame: number;
|
|
61
63
|
numberOfGifLoops: number | null;
|
|
62
64
|
disallowParallelEncoding: boolean;
|
|
@@ -116,6 +118,8 @@ type AddRenderRequestDynamicFields = {
|
|
|
116
118
|
pixelFormat: PixelFormat;
|
|
117
119
|
audioBitrate: string | null;
|
|
118
120
|
videoBitrate: string | null;
|
|
121
|
+
encodingBufferSize: string | null;
|
|
122
|
+
encodingMaxRate: string | null;
|
|
119
123
|
everyNthFrame: number;
|
|
120
124
|
numberOfGifLoops: number | null;
|
|
121
125
|
disallowParallelEncoding: boolean;
|
|
@@ -44,6 +44,9 @@ const makeRetryPayload = (job) => {
|
|
|
44
44
|
initialColorSpace: defaults.colorSpace,
|
|
45
45
|
initialMultiProcessOnLinux: job.multiProcessOnLinux,
|
|
46
46
|
defaultConfigurationVideoCodec: defaults.codec,
|
|
47
|
+
initialEncodingBufferSize: defaults.encodingBufferSize,
|
|
48
|
+
initialEncodingMaxRate: defaults.encodingMaxRate,
|
|
49
|
+
initialUserAgent: job.chromiumOptions.userAgent,
|
|
47
50
|
};
|
|
48
51
|
}
|
|
49
52
|
if (job.type === 'sequence') {
|
|
@@ -82,6 +85,9 @@ const makeRetryPayload = (job) => {
|
|
|
82
85
|
initialMultiProcessOnLinux: job.multiProcessOnLinux,
|
|
83
86
|
defaultConfigurationVideoCodec: defaults.codec,
|
|
84
87
|
defaultConfigurationAudioCodec: defaults.audioCodec,
|
|
88
|
+
initialEncodingBufferSize: defaults.encodingBufferSize,
|
|
89
|
+
initialEncodingMaxRate: defaults.encodingMaxRate,
|
|
90
|
+
initialUserAgent: job.chromiumOptions.userAgent,
|
|
85
91
|
};
|
|
86
92
|
}
|
|
87
93
|
if (job.type === 'video') {
|
|
@@ -120,6 +126,9 @@ const makeRetryPayload = (job) => {
|
|
|
120
126
|
initialMultiProcessOnLinux: job.multiProcessOnLinux,
|
|
121
127
|
defaultConfigurationVideoCodec: job.codec,
|
|
122
128
|
defaultConfigurationAudioCodec: job.audioCodec,
|
|
129
|
+
initialEncodingBufferSize: job.encodingBufferSize,
|
|
130
|
+
initialEncodingMaxRate: job.encodingMaxRate,
|
|
131
|
+
initialUserAgent: job.chromiumOptions.userAgent,
|
|
123
132
|
};
|
|
124
133
|
}
|
|
125
134
|
throw new Error(`Job ${JSON.stringify(job)} Not implemented`);
|
|
@@ -58,6 +58,8 @@ const processVideoJob = async ({ job, remotionRoot, entryPoint, onProgress, addC
|
|
|
58
58
|
x264Preset: job.type === 'video' ? (_c = job.x264Preset) !== null && _c !== void 0 ? _c : undefined : undefined,
|
|
59
59
|
pixelFormat: job.type === 'video' ? job.pixelFormat : 'yuv420p',
|
|
60
60
|
videoBitrate: job.type === 'video' ? job.videoBitrate : null,
|
|
61
|
+
encodingBufferSize: job.type === 'video' ? job.encodingBufferSize : null,
|
|
62
|
+
encodingMaxRate: job.type === 'video' ? job.encodingMaxRate : null,
|
|
61
63
|
numberOfGifLoops: job.type === 'video' ? job.numberOfGifLoops : null,
|
|
62
64
|
audioCodec: job.type === 'video' ? job.audioCodec : null,
|
|
63
65
|
disallowParallelEncoding: job.type === 'video' ? job.disallowParallelEncoding : false,
|
|
@@ -36,6 +36,8 @@ const handleAddRender = ({ input, entryPoint, remotionRoot, logLevel, }) => {
|
|
|
36
36
|
pixelFormat: input.pixelFormat,
|
|
37
37
|
audioBitrate: input.audioBitrate,
|
|
38
38
|
videoBitrate: input.videoBitrate,
|
|
39
|
+
encodingMaxRate: input.encodingMaxRate,
|
|
40
|
+
encodingBufferSize: input.encodingBufferSize,
|
|
39
41
|
everyNthFrame: input.everyNthFrame,
|
|
40
42
|
numberOfGifLoops: input.numberOfGifLoops,
|
|
41
43
|
delayRenderTimeout: input.delayRenderTimeout,
|