@remotion/cli 3.3.31 → 3.3.33

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 (133) hide show
  1. package/dist/config/log.d.ts +1 -1
  2. package/dist/editor/components/NewComposition/InputDragger.d.ts +1 -0
  3. package/dist/editor/components/NewComposition/InputDragger.js +22 -4
  4. package/dist/editor/components/NewComposition/NewCompDuration.js +5 -3
  5. package/dist/editor/components/NewComposition/NewComposition.js +5 -5
  6. package/dist/editor/components/PlayPause.js +1 -1
  7. package/dist/editor/state/z-index.js +24 -11
  8. package/dist/get-cli-options.d.ts +1 -1
  9. package/dist/index.d.ts +1 -1
  10. package/dist/list-of-remotion-packages.js +1 -0
  11. package/dist/preview-server/error-overlay/react-overlay/utils/get-stack-frames.js +1 -3
  12. package/dist/preview-server/error-overlay/remotion-overlay/get-help-link.js +6 -0
  13. package/dist/preview-server/start-server.js +2 -1
  14. package/dist/preview.js +11 -1
  15. package/package.json +7 -7
  16. package/.prettierrc.js +0 -14
  17. package/dist/convert-entry-point-to-serve-url.d.ts +0 -1
  18. package/dist/convert-entry-point-to-serve-url.js +0 -15
  19. package/dist/editor/components/CollapsableOptions.d.ts +0 -6
  20. package/dist/editor/components/CollapsableOptions.js +0 -35
  21. package/dist/editor/components/InlineAction.d.ts +0 -5
  22. package/dist/editor/components/InlineAction.js +0 -34
  23. package/dist/editor/components/RenderButton.d.ts +0 -6
  24. package/dist/editor/components/RenderButton.js +0 -43
  25. package/dist/editor/components/RenderModal/RenderErrorModal.d.ts +0 -5
  26. package/dist/editor/components/RenderModal/RenderErrorModal.js +0 -64
  27. package/dist/editor/components/RenderModal/RenderModal.d.ts +0 -11
  28. package/dist/editor/components/RenderModal/RenderModal.js +0 -330
  29. package/dist/editor/components/RenderQueue/CircularProgress.d.ts +0 -5
  30. package/dist/editor/components/RenderQueue/CircularProgress.js +0 -18
  31. package/dist/editor/components/RenderQueue/RenderQueueError.d.ts +0 -5
  32. package/dist/editor/components/RenderQueue/RenderQueueError.js +0 -26
  33. package/dist/editor/components/RenderQueue/RenderQueueItem.d.ts +0 -5
  34. package/dist/editor/components/RenderQueue/RenderQueueItem.js +0 -38
  35. package/dist/editor/components/RenderQueue/RenderQueueItemStatus.d.ts +0 -5
  36. package/dist/editor/components/RenderQueue/RenderQueueItemStatus.js +0 -27
  37. package/dist/editor/components/RenderQueue/RenderQueueOutputName.d.ts +0 -5
  38. package/dist/editor/components/RenderQueue/RenderQueueOutputName.js +0 -30
  39. package/dist/editor/components/RenderQueue/RenderQueueProgressMessage.d.ts +0 -5
  40. package/dist/editor/components/RenderQueue/RenderQueueProgressMessage.js +0 -27
  41. package/dist/editor/components/RenderQueue/RenderQueueRemoveItem.d.ts +0 -5
  42. package/dist/editor/components/RenderQueue/RenderQueueRemoveItem.js +0 -22
  43. package/dist/editor/components/RenderQueue/RenderQueueRepeat.d.ts +0 -5
  44. package/dist/editor/components/RenderQueue/RenderQueueRepeat.js +0 -22
  45. package/dist/editor/components/RenderQueue/actions.d.ts +0 -34
  46. package/dist/editor/components/RenderQueue/actions.js +0 -78
  47. package/dist/editor/components/RenderQueue/context.d.ts +0 -19
  48. package/dist/editor/components/RenderQueue/context.js +0 -54
  49. package/dist/editor/components/RenderQueue/index.d.ts +0 -2
  50. package/dist/editor/components/RenderQueue/index.js +0 -18
  51. package/dist/editor/components/RenderQueue/item-style.d.ts +0 -2
  52. package/dist/editor/components/RenderQueue/item-style.js +0 -21
  53. package/dist/editor/components/RenderToolbarIcon.d.ts +0 -2
  54. package/dist/editor/components/RenderToolbarIcon.js +0 -47
  55. package/dist/editor/components/RendersTab.d.ts +0 -6
  56. package/dist/editor/components/RendersTab.js +0 -44
  57. package/dist/editor/components/SegmentedControl.d.ts +0 -15
  58. package/dist/editor/components/SegmentedControl.js +0 -46
  59. package/dist/editor/components/SidebarContent.d.ts +0 -5
  60. package/dist/editor/components/SidebarContent.js +0 -51
  61. package/dist/editor/components/Tabs/index.d.ts +0 -11
  62. package/dist/editor/components/Tabs/index.js +0 -51
  63. package/dist/editor/helpers/client-id.d.ts +0 -17
  64. package/dist/editor/helpers/client-id.js +0 -46
  65. package/dist/editor/helpers/use-file-existence.d.ts +0 -1
  66. package/dist/editor/helpers/use-file-existence.js +0 -66
  67. package/dist/editor/icons/RenderStillIcon.d.ts +0 -3
  68. package/dist/editor/icons/RenderStillIcon.js +0 -8
  69. package/dist/editor/icons/render.d.ts +0 -5
  70. package/dist/editor/icons/render.js +0 -8
  71. package/dist/editor/icons/video.d.ts +0 -5
  72. package/dist/editor/icons/video.js +0 -8
  73. package/dist/file-watcher.d.ts +0 -9
  74. package/dist/file-watcher.js +0 -35
  75. package/dist/find-closest-package-json.d.ts +0 -2
  76. package/dist/find-closest-package-json.js +0 -35
  77. package/dist/get-default-out-name.d.ts +0 -4
  78. package/dist/get-default-out-name.js +0 -8
  79. package/dist/preview-server/actions.d.ts +0 -0
  80. package/dist/preview-server/actions.js +0 -1
  81. package/dist/preview-server/api-routes.d.ts +0 -4
  82. package/dist/preview-server/api-routes.js +0 -15
  83. package/dist/preview-server/api-types.d.ts +0 -26
  84. package/dist/preview-server/api-types.js +0 -2
  85. package/dist/preview-server/file-existence-watchers.d.ts +0 -13
  86. package/dist/preview-server/file-existence-watchers.js +0 -62
  87. package/dist/preview-server/get-file-existence.d.ts +0 -2
  88. package/dist/preview-server/get-file-existence.js +0 -36
  89. package/dist/preview-server/get-files-in-public-folder.d.ts +0 -2
  90. package/dist/preview-server/get-files-in-public-folder.js +0 -7
  91. package/dist/preview-server/handler.d.ts +0 -9
  92. package/dist/preview-server/handler.js +0 -34
  93. package/dist/preview-server/live-event-listener.d.ts +0 -0
  94. package/dist/preview-server/live-event-listener.js +0 -1
  95. package/dist/preview-server/parse-body.d.ts +0 -2
  96. package/dist/preview-server/parse-body.js +0 -16
  97. package/dist/preview-server/render-queue/add-render.d.ts +0 -3
  98. package/dist/preview-server/render-queue/add-render.js +0 -34
  99. package/dist/preview-server/render-queue/index.d.ts +0 -18
  100. package/dist/preview-server/render-queue/index.js +0 -146
  101. package/dist/preview-server/render-queue/job.d.ts +0 -81
  102. package/dist/preview-server/render-queue/job.js +0 -2
  103. package/dist/preview-server/render-queue/make-retry-payload.d.ts +0 -3
  104. package/dist/preview-server/render-queue/make-retry-payload.js +0 -32
  105. package/dist/preview-server/render-queue/open-directory-in-finder.d.ts +0 -1
  106. package/dist/preview-server/render-queue/open-directory-in-finder.js +0 -34
  107. package/dist/preview-server/render-queue/open-in-file-explorer.d.ts +0 -2
  108. package/dist/preview-server/render-queue/open-in-file-explorer.js +0 -31
  109. package/dist/preview-server/render-queue/process-still.d.ts +0 -8
  110. package/dist/preview-server/render-queue/process-still.js +0 -50
  111. package/dist/preview-server/render-queue/process-video.d.ts +0 -8
  112. package/dist/preview-server/render-queue/process-video.js +0 -59
  113. package/dist/preview-server/render-queue/queue.d.ts +0 -20
  114. package/dist/preview-server/render-queue/queue.js +0 -169
  115. package/dist/preview-server/render-queue/remove-render.d.ts +0 -2
  116. package/dist/preview-server/render-queue/remove-render.js +0 -29
  117. package/dist/preview-server/routes/add-render.d.ts +0 -3
  118. package/dist/preview-server/routes/add-render.js +0 -51
  119. package/dist/preview-server/routes/open-in-file-explorer.d.ts +0 -3
  120. package/dist/preview-server/routes/open-in-file-explorer.js +0 -14
  121. package/dist/preview-server/routes/remove-render.d.ts +0 -3
  122. package/dist/preview-server/routes/remove-render.js +0 -9
  123. package/dist/preview-server/routes/subscribe-to-file-existence.d.ts +0 -3
  124. package/dist/preview-server/routes/subscribe-to-file-existence.js +0 -13
  125. package/dist/preview-server/routes/unsubscribe-from-file-existence.d.ts +0 -3
  126. package/dist/preview-server/routes/unsubscribe-from-file-existence.js +0 -13
  127. package/dist/preview-server/write-files-definition-file.d.ts +0 -2
  128. package/dist/preview-server/write-files-definition-file.js +0 -37
  129. package/dist/render-flows/render.d.ts +0 -37
  130. package/dist/render-flows/render.js +0 -254
  131. package/dist/render-flows/still.d.ts +0 -31
  132. package/dist/render-flows/still.js +0 -168
  133. package/tsconfig.json +0 -17
@@ -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;
package/tsconfig.json DELETED
@@ -1,17 +0,0 @@
1
- {
2
- "extends": "../tsconfig.settings.json",
3
- "compilerOptions": {
4
- "rootDir": "src",
5
- "outDir": "dist",
6
- "jsx": "react-jsx",
7
- "skipLibCheck": true
8
- },
9
- "references": [
10
- {"path": "../core"},
11
- {"path": "../bundler"},
12
- {"path": "../renderer"},
13
- {"path": "../player"},
14
- {"path": "../media-utils"}
15
- ],
16
- "exclude": ["vitest.config.ts", "dist"]
17
- }