@remotion/cli 3.3.43 → 3.3.44
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/code-frame.js +18 -7
- package/dist/config/log.d.ts +1 -1
- package/dist/derive-codec-from-file-extension.d.ts +1 -0
- package/dist/derive-codec-from-file-extension.js +27 -0
- package/dist/editor/components/Modals.js +1 -1
- package/dist/editor/components/RenderButton.js +29 -8
- package/dist/editor/components/RenderModal/CrfSetting.d.ts +2 -2
- package/dist/editor/components/RenderModal/CrfSetting.js +11 -24
- package/dist/editor/components/RenderModal/EveryNthFrameSetting.d.ts +5 -0
- package/dist/editor/components/RenderModal/EveryNthFrameSetting.js +9 -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/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.js +2 -18
- 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 +1 -0
- package/dist/editor/components/RenderModal/layout.js +8 -2
- 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/make-progress-bar.js +14 -1
- package/dist/preview-server/render-queue/get-default-video-contexts.d.ts +1 -1
- 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,9 +1,22 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.makeProgressBar = void 0;
|
|
4
|
+
const full = '─';
|
|
5
|
+
const half = '╴';
|
|
4
6
|
const makeProgressBar = (percentage) => {
|
|
5
7
|
const totalBars = 20;
|
|
6
8
|
const barsToShow = Math.floor(percentage * totalBars);
|
|
7
|
-
|
|
9
|
+
const extraBar = (percentage * totalBars) % barsToShow;
|
|
10
|
+
const base = full.repeat(barsToShow) + (extraBar > 0.5 ? half : '');
|
|
11
|
+
if (percentage === 0) {
|
|
12
|
+
return `${' '.repeat(totalBars + 1)}`;
|
|
13
|
+
}
|
|
14
|
+
if (percentage > 0 && barsToShow < 1) {
|
|
15
|
+
return `╷${' '.repeat(totalBars)}`;
|
|
16
|
+
}
|
|
17
|
+
if (percentage >= 1) {
|
|
18
|
+
return `╭${base.substring(0, base.length - 1)}╮`;
|
|
19
|
+
}
|
|
20
|
+
return `╭${base.padEnd(totalBars, ' ')}`;
|
|
8
21
|
};
|
|
9
22
|
exports.makeProgressBar = makeProgressBar;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Codec } from '@remotion/renderer';
|
|
2
|
-
import type { RenderType } from '../../editor/components/RenderModal/
|
|
2
|
+
import type { RenderType } from '../../editor/components/RenderModal/RenderModalAdvanced';
|
|
3
3
|
export declare const getDefaultCodecs: ({ defaultCodec, isStill, }: {
|
|
4
4
|
defaultCodec: Codec;
|
|
5
5
|
isStill: boolean;
|
|
@@ -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.44",
|
|
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.44",
|
|
26
|
+
"@remotion/media-utils": "3.3.44",
|
|
27
|
+
"@remotion/player": "3.3.44",
|
|
28
|
+
"@remotion/renderer": "3.3.44",
|
|
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.44",
|
|
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": "7ba7bbdacbda1499ecdb92f1d9581d5db458edf8"
|
|
75
75
|
}
|