@remotion/cli 3.3.26 → 3.3.27

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.
Files changed (123) hide show
  1. package/dist/config/log.d.ts +1 -1
  2. package/dist/editor/helpers/colors.d.ts +1 -1
  3. package/dist/get-cli-options.d.ts +1 -1
  4. package/dist/index.d.ts +1 -1
  5. package/dist/preview-server/dev-middleware/range-parser.d.ts +1 -1
  6. package/dist/preview-server/public-folder.js +15 -0
  7. package/package.json +7 -7
  8. package/dist/convert-entry-point-to-serve-url.d.ts +0 -1
  9. package/dist/convert-entry-point-to-serve-url.js +0 -15
  10. package/dist/editor/components/CollapsableOptions.d.ts +0 -6
  11. package/dist/editor/components/CollapsableOptions.js +0 -35
  12. package/dist/editor/components/InlineAction.d.ts +0 -5
  13. package/dist/editor/components/InlineAction.js +0 -34
  14. package/dist/editor/components/RenderButton.d.ts +0 -6
  15. package/dist/editor/components/RenderButton.js +0 -43
  16. package/dist/editor/components/RenderModal/RenderErrorModal.d.ts +0 -5
  17. package/dist/editor/components/RenderModal/RenderErrorModal.js +0 -64
  18. package/dist/editor/components/RenderModal/RenderModal.d.ts +0 -11
  19. package/dist/editor/components/RenderModal/RenderModal.js +0 -330
  20. package/dist/editor/components/RenderQueue/CircularProgress.d.ts +0 -5
  21. package/dist/editor/components/RenderQueue/CircularProgress.js +0 -18
  22. package/dist/editor/components/RenderQueue/RenderQueueError.d.ts +0 -5
  23. package/dist/editor/components/RenderQueue/RenderQueueError.js +0 -26
  24. package/dist/editor/components/RenderQueue/RenderQueueItem.d.ts +0 -5
  25. package/dist/editor/components/RenderQueue/RenderQueueItem.js +0 -38
  26. package/dist/editor/components/RenderQueue/RenderQueueItemStatus.d.ts +0 -5
  27. package/dist/editor/components/RenderQueue/RenderQueueItemStatus.js +0 -27
  28. package/dist/editor/components/RenderQueue/RenderQueueOutputName.d.ts +0 -5
  29. package/dist/editor/components/RenderQueue/RenderQueueOutputName.js +0 -30
  30. package/dist/editor/components/RenderQueue/RenderQueueProgressMessage.d.ts +0 -5
  31. package/dist/editor/components/RenderQueue/RenderQueueProgressMessage.js +0 -27
  32. package/dist/editor/components/RenderQueue/RenderQueueRemoveItem.d.ts +0 -5
  33. package/dist/editor/components/RenderQueue/RenderQueueRemoveItem.js +0 -22
  34. package/dist/editor/components/RenderQueue/RenderQueueRepeat.d.ts +0 -5
  35. package/dist/editor/components/RenderQueue/RenderQueueRepeat.js +0 -22
  36. package/dist/editor/components/RenderQueue/actions.d.ts +0 -34
  37. package/dist/editor/components/RenderQueue/actions.js +0 -78
  38. package/dist/editor/components/RenderQueue/context.d.ts +0 -19
  39. package/dist/editor/components/RenderQueue/context.js +0 -54
  40. package/dist/editor/components/RenderQueue/index.d.ts +0 -2
  41. package/dist/editor/components/RenderQueue/index.js +0 -18
  42. package/dist/editor/components/RenderQueue/item-style.d.ts +0 -2
  43. package/dist/editor/components/RenderQueue/item-style.js +0 -21
  44. package/dist/editor/components/RenderToolbarIcon.d.ts +0 -2
  45. package/dist/editor/components/RenderToolbarIcon.js +0 -47
  46. package/dist/editor/components/RendersTab.d.ts +0 -6
  47. package/dist/editor/components/RendersTab.js +0 -44
  48. package/dist/editor/components/SegmentedControl.d.ts +0 -15
  49. package/dist/editor/components/SegmentedControl.js +0 -46
  50. package/dist/editor/components/SidebarContent.d.ts +0 -5
  51. package/dist/editor/components/SidebarContent.js +0 -51
  52. package/dist/editor/components/Tabs/index.d.ts +0 -11
  53. package/dist/editor/components/Tabs/index.js +0 -51
  54. package/dist/editor/helpers/client-id.d.ts +0 -17
  55. package/dist/editor/helpers/client-id.js +0 -46
  56. package/dist/editor/helpers/use-file-existence.d.ts +0 -1
  57. package/dist/editor/helpers/use-file-existence.js +0 -66
  58. package/dist/editor/icons/RenderStillIcon.d.ts +0 -3
  59. package/dist/editor/icons/RenderStillIcon.js +0 -8
  60. package/dist/editor/icons/render.d.ts +0 -5
  61. package/dist/editor/icons/render.js +0 -8
  62. package/dist/editor/icons/video.d.ts +0 -5
  63. package/dist/editor/icons/video.js +0 -8
  64. package/dist/file-watcher.d.ts +0 -9
  65. package/dist/file-watcher.js +0 -35
  66. package/dist/find-closest-package-json.d.ts +0 -2
  67. package/dist/find-closest-package-json.js +0 -35
  68. package/dist/get-default-out-name.d.ts +0 -4
  69. package/dist/get-default-out-name.js +0 -8
  70. package/dist/preview-server/actions.d.ts +0 -0
  71. package/dist/preview-server/actions.js +0 -1
  72. package/dist/preview-server/api-routes.d.ts +0 -4
  73. package/dist/preview-server/api-routes.js +0 -15
  74. package/dist/preview-server/api-types.d.ts +0 -26
  75. package/dist/preview-server/api-types.js +0 -2
  76. package/dist/preview-server/file-existence-watchers.d.ts +0 -13
  77. package/dist/preview-server/file-existence-watchers.js +0 -62
  78. package/dist/preview-server/get-file-existence.d.ts +0 -2
  79. package/dist/preview-server/get-file-existence.js +0 -36
  80. package/dist/preview-server/get-files-in-public-folder.d.ts +0 -2
  81. package/dist/preview-server/get-files-in-public-folder.js +0 -7
  82. package/dist/preview-server/handler.d.ts +0 -9
  83. package/dist/preview-server/handler.js +0 -34
  84. package/dist/preview-server/live-event-listener.d.ts +0 -0
  85. package/dist/preview-server/live-event-listener.js +0 -1
  86. package/dist/preview-server/parse-body.d.ts +0 -2
  87. package/dist/preview-server/parse-body.js +0 -16
  88. package/dist/preview-server/render-queue/add-render.d.ts +0 -3
  89. package/dist/preview-server/render-queue/add-render.js +0 -34
  90. package/dist/preview-server/render-queue/index.d.ts +0 -18
  91. package/dist/preview-server/render-queue/index.js +0 -146
  92. package/dist/preview-server/render-queue/job.d.ts +0 -81
  93. package/dist/preview-server/render-queue/job.js +0 -2
  94. package/dist/preview-server/render-queue/make-retry-payload.d.ts +0 -3
  95. package/dist/preview-server/render-queue/make-retry-payload.js +0 -32
  96. package/dist/preview-server/render-queue/open-directory-in-finder.d.ts +0 -1
  97. package/dist/preview-server/render-queue/open-directory-in-finder.js +0 -34
  98. package/dist/preview-server/render-queue/open-in-file-explorer.d.ts +0 -2
  99. package/dist/preview-server/render-queue/open-in-file-explorer.js +0 -31
  100. package/dist/preview-server/render-queue/process-still.d.ts +0 -8
  101. package/dist/preview-server/render-queue/process-still.js +0 -50
  102. package/dist/preview-server/render-queue/process-video.d.ts +0 -8
  103. package/dist/preview-server/render-queue/process-video.js +0 -59
  104. package/dist/preview-server/render-queue/queue.d.ts +0 -20
  105. package/dist/preview-server/render-queue/queue.js +0 -169
  106. package/dist/preview-server/render-queue/remove-render.d.ts +0 -2
  107. package/dist/preview-server/render-queue/remove-render.js +0 -29
  108. package/dist/preview-server/routes/add-render.d.ts +0 -3
  109. package/dist/preview-server/routes/add-render.js +0 -51
  110. package/dist/preview-server/routes/open-in-file-explorer.d.ts +0 -3
  111. package/dist/preview-server/routes/open-in-file-explorer.js +0 -14
  112. package/dist/preview-server/routes/remove-render.d.ts +0 -3
  113. package/dist/preview-server/routes/remove-render.js +0 -9
  114. package/dist/preview-server/routes/subscribe-to-file-existence.d.ts +0 -3
  115. package/dist/preview-server/routes/subscribe-to-file-existence.js +0 -13
  116. package/dist/preview-server/routes/unsubscribe-from-file-existence.d.ts +0 -3
  117. package/dist/preview-server/routes/unsubscribe-from-file-existence.js +0 -13
  118. package/dist/preview-server/write-files-definition-file.d.ts +0 -2
  119. package/dist/preview-server/write-files-definition-file.js +0 -37
  120. package/dist/render-flows/render.d.ts +0 -37
  121. package/dist/render-flows/render.js +0 -254
  122. package/dist/render-flows/still.d.ts +0 -31
  123. package/dist/render-flows/still.js +0 -168
@@ -1,13 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.unsubscribeFromFileExistence = void 0;
4
- const file_existence_watchers_1 = require("../file-existence-watchers");
5
- const unsubscribeFromFileExistence = ({ input, remotionRoot }) => {
6
- (0, file_existence_watchers_1.unsubscribeFromFileExistenceWatchers)({
7
- file: input.file,
8
- clientId: input.clientId,
9
- remotionRoot,
10
- });
11
- return Promise.resolve(undefined);
12
- };
13
- exports.unsubscribeFromFileExistence = unsubscribeFromFileExistence;
@@ -1,2 +0,0 @@
1
- import type { StaticFile } from './get-files-in-public-folder';
2
- export declare const writeFilesDefinitionFile: (files: StaticFile[], remotionRoot: string) => void;
@@ -1,37 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.writeFilesDefinitionFile = void 0;
7
- const fs_1 = require("fs");
8
- const path_1 = __importDefault(require("path"));
9
- const writeFilesDefinitionFile = (files, remotionRoot) => {
10
- const content = `
11
- /*
12
- This file will give you autocompletions for staticFile().
13
- Enable autocompletion by adding "autocomplete.d.ts" to the "include" array in "tsconfig.json".
14
- This file is auto-generated - do not edit this file!
15
- You may add it to your \`.gitignore\`.
16
- */
17
-
18
- declare global {
19
- interface RemotionStaticPaths {
20
- ${files
21
- .map((f) => {
22
- // TODO: What if file contains '"'?
23
- return ` ["${f.path}"]: unknown;`;
24
- })
25
- .join('\n')}
26
- }
27
- }
28
- export {}
29
- `.trimStart();
30
- const folder = path_1.default.join(remotionRoot);
31
- if (!(0, fs_1.existsSync)(folder)) {
32
- (0, fs_1.mkdirSync)(folder);
33
- }
34
- // TODO: Create folder if exists
35
- (0, fs_1.writeFileSync)(path_1.default.join(folder, 'autocomplete.d.ts'), content);
36
- };
37
- exports.writeFilesDefinitionFile = writeFilesDefinitionFile;
@@ -1,37 +0,0 @@
1
- import type { Browser, BrowserExecutable, ChromiumOptions, Codec, FfmpegExecutable, FrameRange, ImageFormat, LogLevel } from '@remotion/renderer';
2
- 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
- remotionRoot: string;
5
- fullEntryPoint: string;
6
- entryPointReason: string;
7
- browserExecutable: BrowserExecutable;
8
- chromiumOptions: ChromiumOptions;
9
- ffmpegExecutable: FfmpegExecutable;
10
- ffprobeExecutable: FfmpegExecutable;
11
- logLevel: LogLevel;
12
- browser: Browser;
13
- scale: number;
14
- indent: boolean;
15
- shouldOutputImageSequence: boolean;
16
- publicDir: string | null;
17
- inputProps: object;
18
- envVariables: Record<string, string>;
19
- puppeteerTimeout: number;
20
- port: number | null;
21
- height: number | null;
22
- width: number | null;
23
- remainingArgs: string[];
24
- compositionIdFromUi: string | null;
25
- outputLocationFromUI: string | null;
26
- overwrite: boolean;
27
- quiet: boolean;
28
- concurrency: number | null;
29
- frameRange: FrameRange | null;
30
- everyNthFrame: number;
31
- configFileImageFormat: ImageFormat | undefined;
32
- quality: number | undefined;
33
- onProgress: JobProgressCallback;
34
- addCleanupCallback: (cb: () => Promise<void>) => void;
35
- uiCodec: Codec | null;
36
- uiImageFormat: ImageFormat | null;
37
- }) => Promise<void>;
@@ -1,254 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.renderCompFlow = void 0;
7
- const renderer_1 = require("@remotion/renderer");
8
- const fs_1 = __importDefault(require("fs"));
9
- const os_1 = __importDefault(require("os"));
10
- const path_1 = __importDefault(require("path"));
11
- const chalk_1 = require("../chalk");
12
- const config_1 = require("../config");
13
- const get_cli_options_1 = require("../get-cli-options");
14
- const get_composition_with_dimension_override_1 = require("../get-composition-with-dimension-override");
15
- const get_filename_1 = require("../get-filename");
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
- const image_formats_1 = require("../image-formats");
19
- const log_1 = require("../log");
20
- const parse_command_line_1 = require("../parse-command-line");
21
- const progress_bar_1 = require("../progress-bar");
22
- const setup_cache_1 = require("../setup-cache");
23
- const truthy_1 = require("../truthy");
24
- 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, }) => {
26
- var _a;
27
- const downloads = [];
28
- const downloadMap = renderer_1.RenderInternals.makeDownloadMap();
29
- addCleanupCallback(() => renderer_1.RenderInternals.cleanDownloadMap(downloadMap));
30
- const ffmpegVersion = await renderer_1.RenderInternals.getFfmpegVersion({
31
- ffmpegExecutable,
32
- remotionRoot,
33
- });
34
- log_1.Log.verboseAdvanced({ indent, logLevel }, 'FFMPEG Version:', ffmpegVersion ? ffmpegVersion.join('.') : 'Built from source');
35
- log_1.Log.verboseAdvanced({ indent, logLevel }, 'Browser executable: ', browserExecutable);
36
- log_1.Log.verboseAdvanced({ indent, logLevel }, 'Asset dirs', downloadMap.assetDir);
37
- const browserInstance = (0, renderer_1.openBrowser)(browser, {
38
- browserExecutable,
39
- shouldDumpIo: renderer_1.RenderInternals.isEqualOrBelowLogLevel(logLevel, 'verbose'),
40
- chromiumOptions,
41
- forceDeviceScaleFactor: scale,
42
- indentationString: indent ? log_1.INDENT_TOKEN + ' ' : '',
43
- });
44
- const steps = [
45
- renderer_1.RenderInternals.isServeUrl(fullEntryPoint) ? null : 'bundling',
46
- 'rendering',
47
- shouldOutputImageSequence ? null : 'stitching',
48
- ].filter(truthy_1.truthy);
49
- const { urlOrBundle, cleanup: cleanupBundle } = await (0, setup_cache_1.bundleOnCliOrTakeServeUrl)({
50
- fullPath: fullEntryPoint,
51
- remotionRoot,
52
- steps,
53
- publicDir,
54
- // TODO: Implement onProgress
55
- onProgress: () => undefined,
56
- indentOutput: indent,
57
- logLevel,
58
- });
59
- addCleanupCallback(cleanupBundle);
60
- const onDownload = (src) => {
61
- const id = Math.random();
62
- const download = {
63
- id,
64
- name: src,
65
- progress: 0,
66
- downloaded: 0,
67
- totalBytes: null,
68
- };
69
- downloads.push(download);
70
- updateRenderProgress();
71
- return ({ percent, downloaded, totalSize }) => {
72
- download.progress = percent;
73
- download.totalBytes = totalSize;
74
- download.downloaded = downloaded;
75
- updateRenderProgress();
76
- };
77
- };
78
- const puppeteerInstance = await browserInstance;
79
- addCleanupCallback(() => puppeteerInstance.close(false));
80
- const comps = await (0, renderer_1.getCompositions)(urlOrBundle, {
81
- inputProps,
82
- puppeteerInstance,
83
- envVariables,
84
- timeoutInMilliseconds: puppeteerTimeout,
85
- chromiumOptions,
86
- browserExecutable,
87
- downloadMap,
88
- port,
89
- });
90
- const { compositionId, config, reason, argsAfterComposition } = await (0, get_composition_with_dimension_override_1.getCompositionWithDimensionOverride)({
91
- validCompositions: comps,
92
- height,
93
- width,
94
- args: remainingArgs,
95
- compositionIdFromUi,
96
- });
97
- const { codec, reason: codecReason } = (0, get_final_output_codec_1.getFinalOutputCodec)({
98
- cliFlag: parse_command_line_1.parsedCli.codec,
99
- configFile: (_a = config_1.ConfigInternals.getOutputCodecOrUndefined()) !== null && _a !== void 0 ? _a : null,
100
- downloadName: null,
101
- outName: (0, user_passed_output_location_1.getUserPassedOutputLocation)(argsAfterComposition),
102
- uiCodec,
103
- });
104
- (0, get_cli_options_1.validateFfmepgCanUseCodec)(codec, remotionRoot);
105
- renderer_1.RenderInternals.validateEvenDimensionsWithCodec({
106
- width: config.width,
107
- height: config.height,
108
- codec,
109
- scale,
110
- });
111
- const relativeOutputLocation = (0, get_filename_1.getOutputFilename)({
112
- codec,
113
- imageSequence: shouldOutputImageSequence,
114
- compositionName: compositionId,
115
- defaultExtension: renderer_1.RenderInternals.getFileExtensionFromCodec(codec, 'final'),
116
- args: argsAfterComposition,
117
- indent,
118
- fromUi: outputLocationFromUI,
119
- logLevel,
120
- });
121
- log_1.Log.infoAdvanced({ indent, logLevel }, chalk_1.chalk.gray(`Entry point = ${fullEntryPoint} (${entryPointReason}), Composition = ${compositionId} (${reason}), Codec = ${codec} (${codecReason}), Output = ${relativeOutputLocation}`));
122
- const absoluteOutputFile = (0, get_cli_options_1.getAndValidateAbsoluteOutputFile)(relativeOutputLocation, overwrite);
123
- const outputDir = shouldOutputImageSequence
124
- ? absoluteOutputFile
125
- : await fs_1.default.promises.mkdtemp(path_1.default.join(os_1.default.tmpdir(), 'react-motion-render'));
126
- log_1.Log.verboseAdvanced({ indent, logLevel }, 'Output dir', outputDir);
127
- const renderProgress = (0, progress_bar_1.createOverwriteableCliOutput)({
128
- quiet,
129
- });
130
- const realFrameRange = renderer_1.RenderInternals.getRealFrameRange(config.durationInFrames, frameRange);
131
- const totalFrames = renderer_1.RenderInternals.getFramesToRender(realFrameRange, everyNthFrame);
132
- let encodedFrames = 0;
133
- let renderedFrames = 0;
134
- let encodedDoneIn = null;
135
- let renderedDoneIn = null;
136
- let stitchStage = 'encoding';
137
- const updateRenderProgress = () => {
138
- if (totalFrames.length === 0) {
139
- throw new Error('totalFrames should not be 0');
140
- }
141
- const { output, message, progress } = (0, progress_bar_1.makeRenderingAndStitchingProgress)({
142
- rendering: {
143
- frames: renderedFrames,
144
- totalFrames: totalFrames.length,
145
- concurrency: renderer_1.RenderInternals.getActualConcurrency(concurrency),
146
- doneIn: renderedDoneIn,
147
- steps,
148
- },
149
- stitching: shouldOutputImageSequence
150
- ? null
151
- : {
152
- doneIn: encodedDoneIn,
153
- frames: encodedFrames,
154
- stage: stitchStage,
155
- steps,
156
- totalFrames: totalFrames.length,
157
- codec,
158
- },
159
- downloads,
160
- bundling: {
161
- message: 'Bundled',
162
- progress: 1,
163
- },
164
- }, indent);
165
- onProgress({ progress, message });
166
- return renderProgress.update(output);
167
- };
168
- const imageFormat = (0, image_formats_1.getImageFormat)({
169
- codec: shouldOutputImageSequence ? undefined : codec,
170
- configFileImageFormat,
171
- uiImageFormat,
172
- });
173
- if (shouldOutputImageSequence) {
174
- fs_1.default.mkdirSync(absoluteOutputFile, {
175
- recursive: true,
176
- });
177
- if (imageFormat === 'none') {
178
- throw new Error(`Cannot render an image sequence with a codec that renders no images. codec = ${codec}, imageFormat = ${imageFormat}`);
179
- }
180
- await (0, renderer_1.renderFrames)({
181
- config,
182
- imageFormat,
183
- inputProps,
184
- onFrameUpdate: (rendered) => {
185
- renderedFrames = rendered;
186
- updateRenderProgress();
187
- },
188
- onStart: () => undefined,
189
- onDownload: (src) => {
190
- if (src.startsWith('data:')) {
191
- log_1.Log.infoAdvanced({ indent, logLevel }, '\nWriting Data URL to file: ', src.substring(0, 30) + '...');
192
- }
193
- else {
194
- log_1.Log.infoAdvanced({ indent, logLevel }, '\nDownloading asset... ', src);
195
- }
196
- },
197
- outputDir,
198
- serveUrl: urlOrBundle,
199
- dumpBrowserLogs: renderer_1.RenderInternals.isEqualOrBelowLogLevel(logLevel, 'verbose'),
200
- everyNthFrame,
201
- envVariables,
202
- frameRange,
203
- concurrency,
204
- puppeteerInstance,
205
- quality,
206
- timeoutInMilliseconds: puppeteerTimeout,
207
- chromiumOptions,
208
- scale,
209
- ffmpegExecutable,
210
- ffprobeExecutable,
211
- browserExecutable,
212
- port,
213
- downloadMap,
214
- });
215
- updateRenderProgress();
216
- log_1.Log.infoAdvanced({ indent, logLevel });
217
- log_1.Log.infoAdvanced({ indent, logLevel }, chalk_1.chalk.cyan(`▶ ${absoluteOutputFile}`));
218
- }
219
- const options = await (0, get_render_media_options_1.getRenderMediaOptions)({
220
- config,
221
- outputLocation: absoluteOutputFile,
222
- serveUrl: urlOrBundle,
223
- codec,
224
- remotionRoot,
225
- });
226
- await (0, renderer_1.renderMedia)({
227
- ...options,
228
- onProgress: (update) => {
229
- encodedDoneIn = update.encodedDoneIn;
230
- encodedFrames = update.encodedFrames;
231
- renderedDoneIn = update.renderedDoneIn;
232
- stitchStage = update.stitchStage;
233
- renderedFrames = update.renderedFrames;
234
- updateRenderProgress();
235
- },
236
- puppeteerInstance,
237
- onDownload,
238
- downloadMap,
239
- onSlowestFrames: (slowestFrames) => {
240
- log_1.Log.verboseAdvanced({ indent, logLevel });
241
- log_1.Log.verboseAdvanced({ indent, logLevel }, `Slowest frames:`);
242
- slowestFrames.forEach(({ frame, time }) => {
243
- log_1.Log.verboseAdvanced({ indent, logLevel }, `Frame ${frame} (${time.toFixed(3)}ms)`);
244
- });
245
- },
246
- printLog: (...str) => log_1.Log.verboseAdvanced({ indent, logLevel }, ...str),
247
- });
248
- log_1.Log.infoAdvanced({ indent, logLevel });
249
- log_1.Log.infoAdvanced({ indent, logLevel }, chalk_1.chalk.cyan(`▶ ${absoluteOutputFile}`));
250
- for (const line of renderer_1.RenderInternals.perf.getPerf()) {
251
- log_1.Log.verboseAdvanced({ indent, logLevel }, line);
252
- }
253
- };
254
- exports.renderCompFlow = renderCompFlow;
@@ -1,31 +0,0 @@
1
- import type { Browser, BrowserExecutable, ChromiumOptions, FfmpegExecutable, ImageFormat, LogLevel, StillImageFormat } from '@remotion/renderer';
2
- import type { JobProgressCallback } from '../preview-server/render-queue/job';
3
- export declare const renderStillFlow: ({ remotionRoot, fullEntryPoint, entryPointReason, remainingArgs, browser, browserExecutable, chromiumOptions, envVariables, ffmpegExecutable, ffprobeExecutable, height, inputProps, overwrite, port, publicDir, puppeteerTimeout, quality, scale, stillFrame, width, compositionIdFromUi, imageFormatFromUi, logLevel, configFileImageFormat, onProgress, indentOutput, addCleanupCallback, }: {
4
- remotionRoot: string;
5
- fullEntryPoint: string;
6
- entryPointReason: string;
7
- remainingArgs: string[];
8
- inputProps: object;
9
- envVariables: Record<string, string>;
10
- quality: number | undefined;
11
- browser: Browser;
12
- stillFrame: number;
13
- browserExecutable: BrowserExecutable;
14
- chromiumOptions: ChromiumOptions;
15
- scale: number;
16
- ffmpegExecutable: FfmpegExecutable;
17
- ffprobeExecutable: FfmpegExecutable;
18
- overwrite: boolean;
19
- puppeteerTimeout: number;
20
- port: number | null;
21
- publicDir: string | null;
22
- height: number | null;
23
- width: number | null;
24
- compositionIdFromUi: string | null;
25
- imageFormatFromUi: StillImageFormat | null;
26
- logLevel: LogLevel;
27
- configFileImageFormat: ImageFormat | undefined;
28
- onProgress: JobProgressCallback;
29
- indentOutput: boolean;
30
- addCleanupCallback: (cb: () => Promise<void>) => void;
31
- }) => Promise<void>;
@@ -1,168 +0,0 @@
1
- "use strict";
2
- // Prints to CLI and also reports back to browser
3
- var __importDefault = (this && this.__importDefault) || function (mod) {
4
- return (mod && mod.__esModule) ? mod : { "default": mod };
5
- };
6
- Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.renderStillFlow = void 0;
8
- const renderer_1 = require("@remotion/renderer");
9
- const fs_1 = require("fs");
10
- const path_1 = __importDefault(require("path"));
11
- const chalk_1 = require("../chalk");
12
- const determine_image_format_1 = require("../determine-image-format");
13
- const get_cli_options_1 = require("../get-cli-options");
14
- const get_composition_with_dimension_override_1 = require("../get-composition-with-dimension-override");
15
- const log_1 = require("../log");
16
- const parse_command_line_1 = require("../parse-command-line");
17
- const progress_bar_1 = require("../progress-bar");
18
- const setup_cache_1 = require("../setup-cache");
19
- const truthy_1 = require("../truthy");
20
- const user_passed_output_location_1 = require("../user-passed-output-location");
21
- const renderStillFlow = async ({ remotionRoot, fullEntryPoint, entryPointReason, remainingArgs, browser, browserExecutable, chromiumOptions, envVariables, ffmpegExecutable, ffprobeExecutable, height, inputProps, overwrite, port, publicDir, puppeteerTimeout, quality, scale, stillFrame, width, compositionIdFromUi, imageFormatFromUi, logLevel, configFileImageFormat, onProgress, indentOutput, addCleanupCallback, }) => {
22
- var _a;
23
- const downloads = [];
24
- const aggregate = {
25
- rendering: null,
26
- downloads,
27
- stitching: null,
28
- bundling: {
29
- message: null,
30
- progress: 0,
31
- },
32
- };
33
- let renderProgress = null;
34
- const updateProgress = () => {
35
- const { output, progress, message } = (0, progress_bar_1.makeRenderingAndStitchingProgress)(aggregate, indentOutput);
36
- if (renderProgress) {
37
- renderProgress.update(output);
38
- }
39
- onProgress({ progress, message });
40
- };
41
- log_1.Log.verboseAdvanced({ indent: indentOutput, logLevel }, 'Browser executable: ', browserExecutable);
42
- const shouldDumpIo = renderer_1.RenderInternals.isEqualOrBelowLogLevel(logLevel, 'verbose');
43
- const browserInstance = (0, renderer_1.openBrowser)(browser, {
44
- browserExecutable,
45
- chromiumOptions,
46
- shouldDumpIo,
47
- forceDeviceScaleFactor: scale,
48
- indentationString: indentOutput ? log_1.INDENT_TOKEN + ' ' : '',
49
- });
50
- const steps = [
51
- renderer_1.RenderInternals.isServeUrl(fullEntryPoint) ? null : 'bundling',
52
- 'rendering',
53
- ].filter(truthy_1.truthy);
54
- const { cleanup: cleanupBundle, urlOrBundle } = await (0, setup_cache_1.bundleOnCliOrTakeServeUrl)({
55
- fullPath: fullEntryPoint,
56
- remotionRoot,
57
- steps,
58
- publicDir,
59
- onProgress: (progress) => {
60
- aggregate.bundling = progress;
61
- updateProgress();
62
- },
63
- indentOutput,
64
- logLevel,
65
- });
66
- addCleanupCallback(cleanupBundle);
67
- const puppeteerInstance = await browserInstance;
68
- addCleanupCallback(() => puppeteerInstance.close(false));
69
- const downloadMap = renderer_1.RenderInternals.makeDownloadMap();
70
- addCleanupCallback(() => renderer_1.RenderInternals.cleanDownloadMap(downloadMap));
71
- const comps = await (0, renderer_1.getCompositions)(urlOrBundle, {
72
- inputProps,
73
- puppeteerInstance,
74
- envVariables,
75
- timeoutInMilliseconds: puppeteerTimeout,
76
- chromiumOptions,
77
- port,
78
- browserExecutable,
79
- ffmpegExecutable,
80
- ffprobeExecutable,
81
- downloadMap,
82
- });
83
- const { compositionId, config, reason, argsAfterComposition } = await (0, get_composition_with_dimension_override_1.getCompositionWithDimensionOverride)({
84
- validCompositions: comps,
85
- height,
86
- width,
87
- args: remainingArgs,
88
- compositionIdFromUi,
89
- });
90
- const { format: imageFormat, source } = (0, determine_image_format_1.determineFinalImageFormat)({
91
- cliFlag: (_a = parse_command_line_1.parsedCli['image-format']) !== null && _a !== void 0 ? _a : null,
92
- configImageFormat: configFileImageFormat !== null && configFileImageFormat !== void 0 ? configFileImageFormat : null,
93
- downloadName: null,
94
- outName: (0, user_passed_output_location_1.getUserPassedOutputLocation)(argsAfterComposition),
95
- isLambda: false,
96
- fromUi: imageFormatFromUi,
97
- });
98
- const relativeOutputLocation = (0, user_passed_output_location_1.getOutputLocation)({
99
- compositionId,
100
- defaultExtension: imageFormat,
101
- args: argsAfterComposition,
102
- });
103
- const absoluteOutputLocation = (0, get_cli_options_1.getAndValidateAbsoluteOutputFile)(relativeOutputLocation, overwrite);
104
- (0, fs_1.mkdirSync)(path_1.default.join(absoluteOutputLocation, '..'), {
105
- recursive: true,
106
- });
107
- log_1.Log.infoAdvanced({ indent: indentOutput, logLevel }, chalk_1.chalk.gray(`Entry point = ${fullEntryPoint} (${entryPointReason}), Output = ${relativeOutputLocation}, Format = ${imageFormat} (${source}), Composition = ${compositionId} (${reason})`));
108
- renderProgress = (0, progress_bar_1.createOverwriteableCliOutput)({
109
- quiet: (0, parse_command_line_1.quietFlagProvided)(),
110
- });
111
- const renderStart = Date.now();
112
- aggregate.rendering = {
113
- frames: 0,
114
- concurrency: 1,
115
- doneIn: null,
116
- steps,
117
- totalFrames: 1,
118
- };
119
- updateProgress();
120
- const onDownload = (src) => {
121
- const id = Math.random();
122
- const download = {
123
- id,
124
- name: src,
125
- progress: 0,
126
- downloaded: 0,
127
- totalBytes: null,
128
- };
129
- downloads.push(download);
130
- updateProgress();
131
- return ({ percent }) => {
132
- download.progress = percent;
133
- updateProgress();
134
- };
135
- };
136
- await (0, renderer_1.renderStill)({
137
- composition: config,
138
- frame: stillFrame,
139
- output: absoluteOutputLocation,
140
- serveUrl: urlOrBundle,
141
- quality,
142
- dumpBrowserLogs: shouldDumpIo,
143
- envVariables,
144
- imageFormat,
145
- inputProps,
146
- chromiumOptions,
147
- timeoutInMilliseconds: puppeteerTimeout,
148
- scale,
149
- ffmpegExecutable,
150
- browserExecutable,
151
- overwrite,
152
- onDownload,
153
- port,
154
- downloadMap,
155
- puppeteerInstance,
156
- });
157
- aggregate.rendering = {
158
- frames: 1,
159
- concurrency: 1,
160
- doneIn: Date.now() - renderStart,
161
- steps,
162
- totalFrames: 1,
163
- };
164
- updateProgress();
165
- log_1.Log.infoAdvanced({ indent: indentOutput, logLevel });
166
- log_1.Log.infoAdvanced({ indent: indentOutput, logLevel }, chalk_1.chalk.cyan(`▶️ ${absoluteOutputLocation}`));
167
- };
168
- exports.renderStillFlow = renderStillFlow;