@remotion/cli 3.3.35 → 3.3.37
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/config/log.d.ts +1 -1
- package/dist/editor/components/Checkbox.d.ts +5 -0
- package/dist/editor/components/Checkbox.js +38 -0
- package/dist/editor/components/CurrentCompositionSideEffects.d.ts +3 -0
- package/dist/editor/components/CurrentCompositionSideEffects.js +43 -0
- package/dist/editor/components/Modals.js +1 -1
- package/dist/editor/components/NewComposition/ComboBox.js +8 -2
- package/dist/editor/components/NewComposition/InputDragger.js +1 -0
- package/dist/editor/components/RenderButton.js +29 -8
- package/dist/editor/components/RenderModal/CrfSetting.d.ts +15 -0
- package/dist/editor/components/RenderModal/CrfSetting.js +43 -0
- package/dist/editor/components/RenderModal/EnforceAudioTrackSetting.d.ts +5 -0
- package/dist/editor/components/RenderModal/EnforceAudioTrackSetting.js +14 -0
- package/dist/editor/components/RenderModal/EveryNthFrameSetting.d.ts +5 -0
- package/dist/editor/components/RenderModal/EveryNthFrameSetting.js +9 -0
- package/dist/editor/components/RenderModal/FrameRangeSetting.d.ts +8 -0
- package/dist/editor/components/RenderModal/FrameRangeSetting.js +42 -0
- package/dist/editor/components/RenderModal/MutedSetting.d.ts +5 -0
- package/dist/editor/components/RenderModal/MutedSetting.js +14 -0
- package/dist/editor/components/RenderModal/NumberOfLoopsSetting.d.ts +5 -0
- package/dist/editor/components/RenderModal/NumberOfLoopsSetting.js +26 -0
- package/dist/editor/components/RenderModal/NumberSetting.d.ts +9 -0
- package/dist/editor/components/RenderModal/NumberSetting.js +26 -0
- package/dist/editor/components/RenderModal/QualitySetting.d.ts +5 -0
- package/dist/editor/components/RenderModal/QualitySetting.js +27 -0
- package/dist/editor/components/RenderModal/RenderModal.d.ts +19 -5
- package/dist/editor/components/RenderModal/RenderModal.js +225 -181
- package/dist/editor/components/RenderModal/RenderModalAdvanced.d.ts +11 -0
- package/dist/editor/components/RenderModal/RenderModalAdvanced.js +15 -0
- package/dist/editor/components/RenderModal/RenderModalAudio.d.ts +13 -0
- package/dist/editor/components/RenderModal/RenderModalAudio.js +22 -0
- package/dist/editor/components/RenderModal/RenderModalBasic.d.ts +22 -0
- package/dist/editor/components/RenderModal/RenderModalBasic.js +70 -0
- package/dist/editor/components/RenderModal/RenderModalGeneral.d.ts +0 -0
- package/dist/editor/components/RenderModal/RenderModalGeneral.js +1 -0
- package/dist/editor/components/RenderModal/RenderModalGif.d.ts +9 -0
- package/dist/editor/components/RenderModal/RenderModalGif.js +16 -0
- package/dist/editor/components/RenderModal/RenderModalHr.d.ts +2 -0
- package/dist/editor/components/RenderModal/RenderModalHr.js +18 -0
- package/dist/editor/components/RenderModal/RenderModalPicture.d.ts +28 -0
- package/dist/editor/components/RenderModal/RenderModalPicture.js +51 -0
- package/dist/editor/components/RenderModal/ScaleSetting.d.ts +5 -0
- package/dist/editor/components/RenderModal/ScaleSetting.js +11 -0
- package/dist/editor/components/RenderModal/human-readable-codec.d.ts +2 -0
- package/dist/editor/components/RenderModal/human-readable-codec.js +36 -0
- package/dist/editor/components/RenderModal/layout.d.ts +5 -0
- package/dist/editor/components/RenderModal/layout.js +31 -0
- package/dist/editor/components/RenderQueue/RenderQueueRemoveItem.js +2 -1
- package/dist/editor/components/RenderQueue/actions.d.ts +15 -2
- package/dist/editor/components/RenderQueue/actions.js +14 -1
- package/dist/editor/components/RenderToolbarIcon.js +30 -8
- package/dist/editor/components/SegmentedControl.js +1 -1
- package/dist/editor/components/SidebarContent.js +2 -1
- package/dist/editor/icons/audio.d.ts +2 -0
- package/dist/editor/icons/audio.js +6 -0
- package/dist/editor/icons/file.d.ts +2 -0
- package/dist/editor/icons/file.js +6 -0
- package/dist/editor/icons/frame.d.ts +2 -0
- package/dist/editor/icons/frame.js +6 -0
- package/dist/editor/icons/gear.d.ts +2 -0
- package/dist/editor/icons/gear.js +6 -0
- package/dist/editor/icons/gif.d.ts +2 -0
- package/dist/editor/icons/gif.js +6 -0
- package/dist/get-cli-options.d.ts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/preview-server/render-queue/get-default-video-contexts.d.ts +10 -0
- package/dist/preview-server/render-queue/get-default-video-contexts.js +13 -0
- package/dist/preview-server/render-queue/job.d.ts +27 -1
- package/dist/preview-server/render-queue/make-retry-payload.js +52 -10
- package/dist/preview-server/render-queue/process-video.js +16 -9
- package/dist/preview-server/routes/add-render.js +13 -0
- package/dist/render-flows/render.d.ts +14 -4
- package/dist/render-flows/render.js +40 -13
- package/package.json +7 -7
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { Codec, makeCancelSignal, StillImageFormat } from '@remotion/renderer';
|
|
1
|
+
import type { Codec, makeCancelSignal, PixelFormat, ProResProfile, StillImageFormat } from '@remotion/renderer';
|
|
2
2
|
declare type RenderJobDynamicStatus = {
|
|
3
3
|
status: 'done';
|
|
4
4
|
} | {
|
|
@@ -30,6 +30,19 @@ declare type RenderJobDynamicFields = {
|
|
|
30
30
|
quality: number | null;
|
|
31
31
|
scale: number;
|
|
32
32
|
codec: Codec;
|
|
33
|
+
concurrency: number;
|
|
34
|
+
crf: number | null;
|
|
35
|
+
startFrame: number;
|
|
36
|
+
endFrame: number;
|
|
37
|
+
muted: boolean;
|
|
38
|
+
enforceAudioTrack: boolean;
|
|
39
|
+
proResProfile: ProResProfile | null;
|
|
40
|
+
pixelFormat: PixelFormat;
|
|
41
|
+
audioBitrate: string | null;
|
|
42
|
+
videoBitrate: string | null;
|
|
43
|
+
everyNthFrame: number;
|
|
44
|
+
numberOfGifLoops: number | null;
|
|
45
|
+
delayRenderTimeout: number;
|
|
33
46
|
};
|
|
34
47
|
export declare type RenderJob = {
|
|
35
48
|
startedAt: number;
|
|
@@ -57,6 +70,19 @@ declare type AddRenderRequestDynamicFields = {
|
|
|
57
70
|
quality: number | null;
|
|
58
71
|
scale: number;
|
|
59
72
|
verbose: boolean;
|
|
73
|
+
concurrency: number;
|
|
74
|
+
crf: number | null;
|
|
75
|
+
startFrame: number;
|
|
76
|
+
endFrame: number;
|
|
77
|
+
muted: boolean;
|
|
78
|
+
enforceAudioTrack: boolean;
|
|
79
|
+
proResProfile: ProResProfile | null;
|
|
80
|
+
pixelFormat: PixelFormat;
|
|
81
|
+
audioBitrate: string | null;
|
|
82
|
+
videoBitrate: string | null;
|
|
83
|
+
everyNthFrame: number;
|
|
84
|
+
numberOfGifLoops: number | null;
|
|
85
|
+
delayRenderTimeout: number;
|
|
60
86
|
};
|
|
61
87
|
export declare type CancelRenderRequest = {
|
|
62
88
|
jobId: string;
|
|
@@ -1,35 +1,77 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.makeRetryPayload = void 0;
|
|
4
|
+
const get_default_video_contexts_1 = require("./get-default-video-contexts");
|
|
4
5
|
const makeRetryPayload = (job) => {
|
|
6
|
+
var _a, _b, _c;
|
|
7
|
+
const defaults = window.remotion_renderDefaults;
|
|
8
|
+
if (!defaults) {
|
|
9
|
+
throw new Error('defaults not set');
|
|
10
|
+
}
|
|
5
11
|
if (job.type === 'still') {
|
|
12
|
+
const { initialAudioCodec, initialRenderType, initialVideoCodec } = (0, get_default_video_contexts_1.getDefaultCodecs)({
|
|
13
|
+
defaultCodec: defaults.codec,
|
|
14
|
+
isStill: true,
|
|
15
|
+
});
|
|
6
16
|
return {
|
|
7
17
|
type: 'render',
|
|
8
18
|
compositionId: job.compositionId,
|
|
9
19
|
initialFrame: job.frame,
|
|
10
|
-
|
|
11
|
-
|
|
20
|
+
initialStillImageFormat: job.imageFormat,
|
|
21
|
+
// TODO: Take from config
|
|
22
|
+
initialVideoImageFormat: 'jpeg',
|
|
23
|
+
initialQuality: (_a = job.quality) !== null && _a !== void 0 ? _a : defaults.quality,
|
|
12
24
|
initialOutName: job.outName,
|
|
13
25
|
initialScale: job.scale,
|
|
14
26
|
initialVerbose: job.verbose,
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
27
|
+
initialAudioCodec,
|
|
28
|
+
initialRenderType,
|
|
29
|
+
initialVideoCodec,
|
|
30
|
+
initialConcurrency: defaults.concurrency,
|
|
31
|
+
maxConcurrency: defaults.maxConcurrency,
|
|
32
|
+
minConcurrency: defaults.minConcurrency,
|
|
33
|
+
initialMuted: defaults.muted,
|
|
34
|
+
initialEnforceAudioTrack: defaults.enforceAudioTrack,
|
|
35
|
+
initialProResProfile: defaults.proResProfile,
|
|
36
|
+
initialPixelFormat: defaults.pixelFormat,
|
|
37
|
+
initialAudioBitrate: defaults.audioBitrate,
|
|
38
|
+
initialVideoBitrate: defaults.videoBitrate,
|
|
39
|
+
initialEveryNthFrame: defaults.everyNthFrame,
|
|
40
|
+
initialNumberOfGifLoops: defaults.numberOfGifLoops,
|
|
41
|
+
initialDelayRenderTimeout: defaults.delayRenderTimeout,
|
|
18
42
|
};
|
|
19
43
|
}
|
|
20
44
|
if (job.type === 'video') {
|
|
21
|
-
|
|
45
|
+
const { initialAudioCodec, initialRenderType, initialVideoCodec } = (0, get_default_video_contexts_1.getDefaultCodecs)({
|
|
46
|
+
defaultCodec: defaults.codec,
|
|
47
|
+
isStill: false,
|
|
48
|
+
});
|
|
22
49
|
return {
|
|
23
50
|
type: 'render',
|
|
24
51
|
compositionId: job.compositionId,
|
|
25
|
-
|
|
26
|
-
|
|
52
|
+
// TODO: Take from config
|
|
53
|
+
initialStillImageFormat: 'png',
|
|
54
|
+
initialVideoImageFormat: job.imageFormat,
|
|
55
|
+
initialQuality: (_b = job.quality) !== null && _b !== void 0 ? _b : defaults.quality,
|
|
27
56
|
initialOutName: job.outName,
|
|
28
57
|
initialScale: job.scale,
|
|
29
58
|
initialVerbose: job.verbose,
|
|
30
59
|
initialFrame: 0,
|
|
31
|
-
|
|
32
|
-
|
|
60
|
+
initialConcurrency: job.concurrency,
|
|
61
|
+
maxConcurrency: defaults.maxConcurrency,
|
|
62
|
+
minConcurrency: defaults.minConcurrency,
|
|
63
|
+
initialMuted: job.muted,
|
|
64
|
+
initialAudioCodec,
|
|
65
|
+
initialEnforceAudioTrack: job.enforceAudioTrack,
|
|
66
|
+
initialRenderType,
|
|
67
|
+
initialVideoCodec,
|
|
68
|
+
initialProResProfile: (_c = job.proResProfile) !== null && _c !== void 0 ? _c : defaults.proResProfile,
|
|
69
|
+
initialPixelFormat: job.pixelFormat,
|
|
70
|
+
initialAudioBitrate: job.audioBitrate,
|
|
71
|
+
initialVideoBitrate: job.videoBitrate,
|
|
72
|
+
initialEveryNthFrame: job.everyNthFrame,
|
|
73
|
+
initialNumberOfGifLoops: job.numberOfGifLoops,
|
|
74
|
+
initialDelayRenderTimeout: job.delayRenderTimeout,
|
|
33
75
|
};
|
|
34
76
|
}
|
|
35
77
|
throw new Error(`Job ${JSON.stringify(job)} Not implemented`);
|
|
@@ -5,11 +5,12 @@ const convert_entry_point_to_serve_url_1 = require("../../convert-entry-point-to
|
|
|
5
5
|
const get_cli_options_1 = require("../../get-cli-options");
|
|
6
6
|
const render_1 = require("../../render-flows/render");
|
|
7
7
|
const processVideoJob = async ({ job, remotionRoot, entryPoint, onProgress, addCleanupCallback, }) => {
|
|
8
|
-
var _a;
|
|
8
|
+
var _a, _b;
|
|
9
9
|
if (job.type !== 'video') {
|
|
10
10
|
throw new Error('Expected video job');
|
|
11
11
|
}
|
|
12
|
-
|
|
12
|
+
// TODO: Change until none can be derived from UI
|
|
13
|
+
const { publicDir, browserExecutable, ffmpegExecutable, ffprobeExecutable, chromiumOptions, envVariables, inputProps, port, browser, ffmpegOverride, } = await (0, get_cli_options_1.getCliOptions)({
|
|
13
14
|
isLambda: false,
|
|
14
15
|
type: 'still',
|
|
15
16
|
remotionRoot,
|
|
@@ -30,7 +31,7 @@ const processVideoJob = async ({ job, remotionRoot, entryPoint, onProgress, addC
|
|
|
30
31
|
overwrite: true,
|
|
31
32
|
port,
|
|
32
33
|
publicDir,
|
|
33
|
-
puppeteerTimeout,
|
|
34
|
+
puppeteerTimeout: job.delayRenderTimeout,
|
|
34
35
|
quality: (_a = job.quality) !== null && _a !== void 0 ? _a : undefined,
|
|
35
36
|
remainingArgs: [],
|
|
36
37
|
scale: job.scale,
|
|
@@ -40,12 +41,9 @@ const processVideoJob = async ({ job, remotionRoot, entryPoint, onProgress, addC
|
|
|
40
41
|
logLevel: job.verbose ? 'verbose' : 'info',
|
|
41
42
|
onProgress,
|
|
42
43
|
indent: true,
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
everyNthFrame: 1,
|
|
47
|
-
// TODO: Make configurable
|
|
48
|
-
frameRange: null,
|
|
44
|
+
concurrency: job.concurrency,
|
|
45
|
+
everyNthFrame: job.everyNthFrame,
|
|
46
|
+
frameRange: [job.startFrame, job.endFrame],
|
|
49
47
|
quiet: false,
|
|
50
48
|
shouldOutputImageSequence: false,
|
|
51
49
|
addCleanupCallback,
|
|
@@ -53,6 +51,15 @@ const processVideoJob = async ({ job, remotionRoot, entryPoint, onProgress, addC
|
|
|
53
51
|
uiCodec: job.codec,
|
|
54
52
|
uiImageFormat: job.imageFormat,
|
|
55
53
|
cancelSignal: job.cancelToken.cancelSignal,
|
|
54
|
+
crf: job.crf,
|
|
55
|
+
ffmpegOverride,
|
|
56
|
+
audioBitrate: job.audioBitrate,
|
|
57
|
+
muted: job.muted,
|
|
58
|
+
enforceAudioTrack: job.enforceAudioTrack,
|
|
59
|
+
proResProfile: (_b = job.proResProfile) !== null && _b !== void 0 ? _b : undefined,
|
|
60
|
+
pixelFormat: job.pixelFormat,
|
|
61
|
+
videoBitrate: job.videoBitrate,
|
|
62
|
+
numberOfGifLoops: job.numberOfGifLoops,
|
|
56
63
|
});
|
|
57
64
|
// TODO: Accept CLI options
|
|
58
65
|
};
|
|
@@ -24,6 +24,19 @@ const handleAddRender = ({ input, entryPoint, remotionRoot, }) => {
|
|
|
24
24
|
startedAt: Date.now(),
|
|
25
25
|
verbose: input.verbose,
|
|
26
26
|
cancelToken: (0, renderer_1.makeCancelSignal)(),
|
|
27
|
+
concurrency: input.concurrency,
|
|
28
|
+
crf: input.crf,
|
|
29
|
+
endFrame: input.endFrame,
|
|
30
|
+
startFrame: input.startFrame,
|
|
31
|
+
muted: input.muted,
|
|
32
|
+
enforceAudioTrack: input.enforceAudioTrack,
|
|
33
|
+
proResProfile: input.proResProfile,
|
|
34
|
+
pixelFormat: input.pixelFormat,
|
|
35
|
+
audioBitrate: input.audioBitrate,
|
|
36
|
+
videoBitrate: input.videoBitrate,
|
|
37
|
+
everyNthFrame: input.everyNthFrame,
|
|
38
|
+
numberOfGifLoops: input.numberOfGifLoops,
|
|
39
|
+
delayRenderTimeout: input.delayRenderTimeout,
|
|
27
40
|
},
|
|
28
41
|
});
|
|
29
42
|
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import type { Browser, BrowserExecutable, CancelSignal, ChromiumOptions, Codec, FfmpegExecutable, FrameRange, ImageFormat, LogLevel } from '@remotion/renderer';
|
|
1
|
+
import type { Browser, BrowserExecutable, CancelSignal, ChromiumOptions, Codec, Crf, FfmpegExecutable, FfmpegOverrideFn, FrameRange, ImageFormat, LogLevel, PixelFormat, ProResProfile } from '@remotion/renderer';
|
|
2
|
+
import type { Loop } from '../config/number-of-gif-loops';
|
|
2
3
|
import type { JobProgressCallback } from '../preview-server/render-queue/job';
|
|
3
|
-
export declare const renderCompFlow: ({ remotionRoot, fullEntryPoint, ffmpegExecutable, ffprobeExecutable, indent, logLevel, browserExecutable, browser, chromiumOptions, scale, shouldOutputImageSequence, publicDir, inputProps, envVariables, puppeteerTimeout, port, height, width, remainingArgs, compositionIdFromUi, entryPointReason, overwrite, quiet, concurrency, frameRange, everyNthFrame, configFileImageFormat, outputLocationFromUI, quality, onProgress, addCleanupCallback, uiCodec, uiImageFormat,
|
|
4
|
+
export declare const renderCompFlow: ({ remotionRoot, fullEntryPoint, ffmpegExecutable, ffprobeExecutable, indent, logLevel, browserExecutable, browser, chromiumOptions, scale, shouldOutputImageSequence, publicDir, inputProps, envVariables, puppeteerTimeout, port, height, width, remainingArgs, compositionIdFromUi, entryPointReason, overwrite, quiet, concurrency, frameRange, everyNthFrame, configFileImageFormat, outputLocationFromUI, quality, onProgress, addCleanupCallback, cancelSignal, crf, uiCodec, uiImageFormat, ffmpegOverride, audioBitrate, muted, enforceAudioTrack, proResProfile, pixelFormat, videoBitrate, numberOfGifLoops, }: {
|
|
4
5
|
remotionRoot: string;
|
|
5
6
|
fullEntryPoint: string;
|
|
6
7
|
entryPointReason: string;
|
|
@@ -32,7 +33,16 @@ export declare const renderCompFlow: ({ remotionRoot, fullEntryPoint, ffmpegExec
|
|
|
32
33
|
quality: number | undefined;
|
|
33
34
|
onProgress: JobProgressCallback;
|
|
34
35
|
addCleanupCallback: (cb: () => Promise<void>) => void;
|
|
35
|
-
|
|
36
|
-
uiImageFormat: ImageFormat | null;
|
|
36
|
+
crf: Crf | null;
|
|
37
37
|
cancelSignal: CancelSignal | null;
|
|
38
|
+
uiCodec: Codec | null;
|
|
39
|
+
uiImageFormat: 'png' | 'jpeg' | 'none' | null;
|
|
40
|
+
ffmpegOverride: FfmpegOverrideFn;
|
|
41
|
+
audioBitrate: string | null;
|
|
42
|
+
videoBitrate: string | null;
|
|
43
|
+
muted: boolean;
|
|
44
|
+
enforceAudioTrack: boolean;
|
|
45
|
+
proResProfile: ProResProfile | undefined;
|
|
46
|
+
pixelFormat: PixelFormat;
|
|
47
|
+
numberOfGifLoops: Loop;
|
|
38
48
|
}) => Promise<void>;
|
|
@@ -14,7 +14,6 @@ const get_cli_options_1 = require("../get-cli-options");
|
|
|
14
14
|
const get_composition_with_dimension_override_1 = require("../get-composition-with-dimension-override");
|
|
15
15
|
const get_filename_1 = require("../get-filename");
|
|
16
16
|
const get_final_output_codec_1 = require("../get-final-output-codec");
|
|
17
|
-
const get_render_media_options_1 = require("../get-render-media-options");
|
|
18
17
|
const image_formats_1 = require("../image-formats");
|
|
19
18
|
const log_1 = require("../log");
|
|
20
19
|
const parse_command_line_1 = require("../parse-command-line");
|
|
@@ -22,7 +21,7 @@ const progress_bar_1 = require("../progress-bar");
|
|
|
22
21
|
const setup_cache_1 = require("../setup-cache");
|
|
23
22
|
const truthy_1 = require("../truthy");
|
|
24
23
|
const user_passed_output_location_1 = require("../user-passed-output-location");
|
|
25
|
-
const renderCompFlow = async ({ remotionRoot, fullEntryPoint, ffmpegExecutable, ffprobeExecutable, indent, logLevel, browserExecutable, browser, chromiumOptions, scale, shouldOutputImageSequence, publicDir, inputProps, envVariables, puppeteerTimeout, port, height, width, remainingArgs, compositionIdFromUi, entryPointReason, overwrite, quiet, concurrency, frameRange, everyNthFrame, configFileImageFormat, outputLocationFromUI, quality, onProgress, addCleanupCallback, uiCodec, uiImageFormat,
|
|
24
|
+
const renderCompFlow = async ({ remotionRoot, fullEntryPoint, ffmpegExecutable, ffprobeExecutable, indent, logLevel, browserExecutable, browser, chromiumOptions, scale, shouldOutputImageSequence, publicDir, inputProps, envVariables, puppeteerTimeout, port, height, width, remainingArgs, compositionIdFromUi, entryPointReason, overwrite, quiet, concurrency, frameRange, everyNthFrame, configFileImageFormat, outputLocationFromUI, quality, onProgress, addCleanupCallback, cancelSignal, crf, uiCodec, uiImageFormat, ffmpegOverride, audioBitrate, muted, enforceAudioTrack, proResProfile, pixelFormat, videoBitrate, numberOfGifLoops, }) => {
|
|
26
25
|
var _a;
|
|
27
26
|
const downloads = [];
|
|
28
27
|
const downloadMap = renderer_1.RenderInternals.makeDownloadMap();
|
|
@@ -101,7 +100,7 @@ const renderCompFlow = async ({ remotionRoot, fullEntryPoint, ffmpegExecutable,
|
|
|
101
100
|
outName: (0, user_passed_output_location_1.getUserPassedOutputLocation)(argsAfterComposition),
|
|
102
101
|
uiCodec,
|
|
103
102
|
});
|
|
104
|
-
(0, get_cli_options_1.validateFfmpegCanUseCodec)(codec, remotionRoot);
|
|
103
|
+
await (0, get_cli_options_1.validateFfmpegCanUseCodec)(codec, remotionRoot);
|
|
105
104
|
renderer_1.RenderInternals.validateEvenDimensionsWithCodec({
|
|
106
105
|
width: config.width,
|
|
107
106
|
height: config.height,
|
|
@@ -112,7 +111,7 @@ const renderCompFlow = async ({ remotionRoot, fullEntryPoint, ffmpegExecutable,
|
|
|
112
111
|
codec,
|
|
113
112
|
imageSequence: shouldOutputImageSequence,
|
|
114
113
|
compositionName: compositionId,
|
|
115
|
-
defaultExtension: renderer_1.RenderInternals.getFileExtensionFromCodec(codec
|
|
114
|
+
defaultExtension: renderer_1.RenderInternals.getFileExtensionFromCodec(codec),
|
|
116
115
|
args: argsAfterComposition,
|
|
117
116
|
indent,
|
|
118
117
|
fromUi: outputLocationFromUI,
|
|
@@ -135,6 +134,7 @@ const renderCompFlow = async ({ remotionRoot, fullEntryPoint, ffmpegExecutable,
|
|
|
135
134
|
let encodedDoneIn = null;
|
|
136
135
|
let renderedDoneIn = null;
|
|
137
136
|
let stitchStage = 'encoding';
|
|
137
|
+
const actualConcurrency = renderer_1.RenderInternals.getActualConcurrency(concurrency);
|
|
138
138
|
const updateRenderProgress = () => {
|
|
139
139
|
if (totalFrames.length === 0) {
|
|
140
140
|
throw new Error('totalFrames should not be 0');
|
|
@@ -143,7 +143,7 @@ const renderCompFlow = async ({ remotionRoot, fullEntryPoint, ffmpegExecutable,
|
|
|
143
143
|
rendering: {
|
|
144
144
|
frames: renderedFrames,
|
|
145
145
|
totalFrames: totalFrames.length,
|
|
146
|
-
concurrency:
|
|
146
|
+
concurrency: actualConcurrency,
|
|
147
147
|
doneIn: renderedDoneIn,
|
|
148
148
|
steps,
|
|
149
149
|
},
|
|
@@ -202,7 +202,7 @@ const renderCompFlow = async ({ remotionRoot, fullEntryPoint, ffmpegExecutable,
|
|
|
202
202
|
everyNthFrame,
|
|
203
203
|
envVariables,
|
|
204
204
|
frameRange,
|
|
205
|
-
concurrency,
|
|
205
|
+
concurrency: actualConcurrency,
|
|
206
206
|
puppeteerInstance,
|
|
207
207
|
quality,
|
|
208
208
|
timeoutInMilliseconds: puppeteerTimeout,
|
|
@@ -215,17 +215,43 @@ const renderCompFlow = async ({ remotionRoot, fullEntryPoint, ffmpegExecutable,
|
|
|
215
215
|
downloadMap,
|
|
216
216
|
});
|
|
217
217
|
updateRenderProgress();
|
|
218
|
+
process.stdout.write('\n');
|
|
218
219
|
log_1.Log.infoAdvanced({ indent, logLevel }, chalk_1.chalk.cyan(`▶ ${absoluteOutputFile}`));
|
|
219
220
|
}
|
|
220
|
-
|
|
221
|
-
config,
|
|
221
|
+
await (0, renderer_1.renderMedia)({
|
|
222
222
|
outputLocation: absoluteOutputFile,
|
|
223
|
+
composition: {
|
|
224
|
+
...config,
|
|
225
|
+
width: width !== null && width !== void 0 ? width : config.width,
|
|
226
|
+
height: height !== null && height !== void 0 ? height : config.height,
|
|
227
|
+
},
|
|
228
|
+
crf,
|
|
229
|
+
envVariables,
|
|
230
|
+
ffmpegExecutable,
|
|
231
|
+
ffprobeExecutable,
|
|
232
|
+
frameRange,
|
|
233
|
+
inputProps,
|
|
234
|
+
overwrite,
|
|
235
|
+
pixelFormat,
|
|
236
|
+
proResProfile,
|
|
237
|
+
quality,
|
|
238
|
+
dumpBrowserLogs: renderer_1.RenderInternals.isEqualOrBelowLogLevel(logLevel, 'verbose'),
|
|
239
|
+
chromiumOptions,
|
|
240
|
+
timeoutInMilliseconds: config_1.ConfigInternals.getCurrentPuppeteerTimeout(),
|
|
241
|
+
scale,
|
|
242
|
+
port,
|
|
243
|
+
numberOfGifLoops,
|
|
244
|
+
everyNthFrame,
|
|
245
|
+
verbose: renderer_1.RenderInternals.isEqualOrBelowLogLevel(logLevel, 'verbose'),
|
|
246
|
+
muted,
|
|
247
|
+
enforceAudioTrack,
|
|
248
|
+
browserExecutable,
|
|
249
|
+
ffmpegOverride,
|
|
250
|
+
concurrency,
|
|
223
251
|
serveUrl: urlOrBundle,
|
|
224
252
|
codec,
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
await (0, renderer_1.renderMedia)({
|
|
228
|
-
...options,
|
|
253
|
+
audioBitrate,
|
|
254
|
+
videoBitrate,
|
|
229
255
|
onProgress: (update) => {
|
|
230
256
|
encodedDoneIn = update.encodedDoneIn;
|
|
231
257
|
encodedFrames = update.encodedFrames;
|
|
@@ -247,7 +273,8 @@ const renderCompFlow = async ({ remotionRoot, fullEntryPoint, ffmpegExecutable,
|
|
|
247
273
|
},
|
|
248
274
|
printLog: (...str) => log_1.Log.verboseAdvanced({ indent, logLevel }, ...str),
|
|
249
275
|
});
|
|
250
|
-
|
|
276
|
+
updateRenderProgress();
|
|
277
|
+
process.stdout.write('\n');
|
|
251
278
|
log_1.Log.infoAdvanced({ indent, logLevel }, chalk_1.chalk.cyan(`▶ ${absoluteOutputFile}`));
|
|
252
279
|
for (const line of renderer_1.RenderInternals.perf.getPerf()) {
|
|
253
280
|
log_1.Log.verboseAdvanced({ indent, logLevel }, line);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@remotion/cli",
|
|
3
|
-
"version": "3.3.
|
|
3
|
+
"version": "3.3.37",
|
|
4
4
|
"description": "CLI for Remotion",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"sideEffects": false,
|
|
@@ -22,16 +22,16 @@
|
|
|
22
22
|
"author": "Jonny Burger <jonny@remotion.dev>",
|
|
23
23
|
"license": "SEE LICENSE IN LICENSE.md",
|
|
24
24
|
"dependencies": {
|
|
25
|
-
"@remotion/bundler": "3.3.
|
|
26
|
-
"@remotion/media-utils": "3.3.
|
|
27
|
-
"@remotion/player": "3.3.
|
|
28
|
-
"@remotion/renderer": "3.3.
|
|
25
|
+
"@remotion/bundler": "3.3.37",
|
|
26
|
+
"@remotion/media-utils": "3.3.37",
|
|
27
|
+
"@remotion/player": "3.3.37",
|
|
28
|
+
"@remotion/renderer": "3.3.37",
|
|
29
29
|
"better-opn": "2.1.1",
|
|
30
30
|
"dotenv": "9.0.2",
|
|
31
31
|
"memfs": "3.4.3",
|
|
32
32
|
"minimist": "1.2.6",
|
|
33
33
|
"prompts": "2.4.1",
|
|
34
|
-
"remotion": "3.3.
|
|
34
|
+
"remotion": "3.3.37",
|
|
35
35
|
"semver": "7.3.5",
|
|
36
36
|
"source-map": "0.6.1"
|
|
37
37
|
},
|
|
@@ -71,5 +71,5 @@
|
|
|
71
71
|
"publishConfig": {
|
|
72
72
|
"access": "public"
|
|
73
73
|
},
|
|
74
|
-
"gitHead": "
|
|
74
|
+
"gitHead": "ead6bdacc14a9953cae738159c49bf3daf09e9b0"
|
|
75
75
|
}
|