@remotion/cli 3.3.77 → 3.3.79

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 (163) hide show
  1. package/dist/better-opn/index.d.ts +6 -0
  2. package/dist/better-opn/index.js +202 -0
  3. package/dist/editor/helpers/get-timeline-sequence-layout.js +1 -1
  4. package/dist/handle-common-errors.js +16 -0
  5. package/dist/parse-command-line.d.ts +2 -0
  6. package/dist/preview.js +8 -3
  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/Checkbox.d.ts +0 -5
  11. package/dist/editor/components/Checkbox.js +0 -38
  12. package/dist/editor/components/CollapsableOptions.d.ts +0 -6
  13. package/dist/editor/components/CollapsableOptions.js +0 -35
  14. package/dist/editor/components/CurrentCompositionSideEffects.d.ts +0 -3
  15. package/dist/editor/components/CurrentCompositionSideEffects.js +0 -43
  16. package/dist/editor/components/InlineAction.d.ts +0 -5
  17. package/dist/editor/components/InlineAction.js +0 -34
  18. package/dist/editor/components/Modals.d.ts +0 -2
  19. package/dist/editor/components/Modals.js +0 -23
  20. package/dist/editor/components/RenderButton.d.ts +0 -6
  21. package/dist/editor/components/RenderButton.js +0 -67
  22. package/dist/editor/components/RenderModal/CrfSetting.d.ts +0 -15
  23. package/dist/editor/components/RenderModal/CrfSetting.js +0 -43
  24. package/dist/editor/components/RenderModal/EnforceAudioTrackSetting.d.ts +0 -5
  25. package/dist/editor/components/RenderModal/EnforceAudioTrackSetting.js +0 -14
  26. package/dist/editor/components/RenderModal/FrameRangeSetting.d.ts +0 -8
  27. package/dist/editor/components/RenderModal/FrameRangeSetting.js +0 -42
  28. package/dist/editor/components/RenderModal/MutedSetting.d.ts +0 -5
  29. package/dist/editor/components/RenderModal/MutedSetting.js +0 -14
  30. package/dist/editor/components/RenderModal/NumberOfLoopsSetting.d.ts +0 -5
  31. package/dist/editor/components/RenderModal/NumberOfLoopsSetting.js +0 -26
  32. package/dist/editor/components/RenderModal/NumberSetting.d.ts +0 -9
  33. package/dist/editor/components/RenderModal/NumberSetting.js +0 -26
  34. package/dist/editor/components/RenderModal/QualitySetting.d.ts +0 -5
  35. package/dist/editor/components/RenderModal/QualitySetting.js +0 -27
  36. package/dist/editor/components/RenderModal/RenderErrorModal.d.ts +0 -5
  37. package/dist/editor/components/RenderModal/RenderErrorModal.js +0 -64
  38. package/dist/editor/components/RenderModal/RenderModal.d.ts +0 -28
  39. package/dist/editor/components/RenderModal/RenderModal.js +0 -484
  40. package/dist/editor/components/RenderModal/RenderModalAdvanced.d.ts +0 -11
  41. package/dist/editor/components/RenderModal/RenderModalAdvanced.js +0 -15
  42. package/dist/editor/components/RenderModal/RenderModalAudio.d.ts +0 -13
  43. package/dist/editor/components/RenderModal/RenderModalAudio.js +0 -22
  44. package/dist/editor/components/RenderModal/RenderModalBasic.d.ts +0 -24
  45. package/dist/editor/components/RenderModal/RenderModalBasic.js +0 -87
  46. package/dist/editor/components/RenderModal/RenderModalGif.d.ts +0 -9
  47. package/dist/editor/components/RenderModal/RenderModalGif.js +0 -16
  48. package/dist/editor/components/RenderModal/RenderModalHr.d.ts +0 -2
  49. package/dist/editor/components/RenderModal/RenderModalHr.js +0 -18
  50. package/dist/editor/components/RenderModal/RenderModalPicture.d.ts +0 -28
  51. package/dist/editor/components/RenderModal/RenderModalPicture.js +0 -51
  52. package/dist/editor/components/RenderModal/ScaleSetting.d.ts +0 -5
  53. package/dist/editor/components/RenderModal/ScaleSetting.js +0 -11
  54. package/dist/editor/components/RenderModal/human-readable-audio-codecs.d.ts +0 -2
  55. package/dist/editor/components/RenderModal/human-readable-audio-codecs.js +0 -18
  56. package/dist/editor/components/RenderModal/human-readable-codec.d.ts +0 -2
  57. package/dist/editor/components/RenderModal/human-readable-codec.js +0 -36
  58. package/dist/editor/components/RenderModal/layout.d.ts +0 -5
  59. package/dist/editor/components/RenderModal/layout.js +0 -31
  60. package/dist/editor/components/RenderQueue/CircularProgress.d.ts +0 -5
  61. package/dist/editor/components/RenderQueue/CircularProgress.js +0 -18
  62. package/dist/editor/components/RenderQueue/RenderQueueError.d.ts +0 -5
  63. package/dist/editor/components/RenderQueue/RenderQueueError.js +0 -26
  64. package/dist/editor/components/RenderQueue/RenderQueueItem.d.ts +0 -5
  65. package/dist/editor/components/RenderQueue/RenderQueueItem.js +0 -39
  66. package/dist/editor/components/RenderQueue/RenderQueueItemCancelButton.d.ts +0 -5
  67. package/dist/editor/components/RenderQueue/RenderQueueItemCancelButton.js +0 -22
  68. package/dist/editor/components/RenderQueue/RenderQueueItemStatus.d.ts +0 -5
  69. package/dist/editor/components/RenderQueue/RenderQueueItemStatus.js +0 -27
  70. package/dist/editor/components/RenderQueue/RenderQueueOutputName.d.ts +0 -5
  71. package/dist/editor/components/RenderQueue/RenderQueueOutputName.js +0 -24
  72. package/dist/editor/components/RenderQueue/RenderQueueProgressMessage.d.ts +0 -5
  73. package/dist/editor/components/RenderQueue/RenderQueueProgressMessage.js +0 -27
  74. package/dist/editor/components/RenderQueue/RenderQueueRemoveItem.d.ts +0 -5
  75. package/dist/editor/components/RenderQueue/RenderQueueRemoveItem.js +0 -23
  76. package/dist/editor/components/RenderQueue/RenderQueueRepeat.d.ts +0 -5
  77. package/dist/editor/components/RenderQueue/RenderQueueRepeat.js +0 -22
  78. package/dist/editor/components/RenderQueue/actions.d.ts +0 -49
  79. package/dist/editor/components/RenderQueue/actions.js +0 -98
  80. package/dist/editor/components/RenderQueue/context.d.ts +0 -19
  81. package/dist/editor/components/RenderQueue/context.js +0 -56
  82. package/dist/editor/components/RenderQueue/index.d.ts +0 -2
  83. package/dist/editor/components/RenderQueue/index.js +0 -18
  84. package/dist/editor/components/RenderQueue/item-style.d.ts +0 -2
  85. package/dist/editor/components/RenderQueue/item-style.js +0 -21
  86. package/dist/editor/components/RenderToolbarIcon.d.ts +0 -2
  87. package/dist/editor/components/RenderToolbarIcon.js +0 -78
  88. package/dist/editor/components/RendersTab.d.ts +0 -6
  89. package/dist/editor/components/RendersTab.js +0 -43
  90. package/dist/editor/components/SegmentedControl.d.ts +0 -16
  91. package/dist/editor/components/SegmentedControl.js +0 -63
  92. package/dist/editor/components/SidebarContent.d.ts +0 -5
  93. package/dist/editor/components/SidebarContent.js +0 -52
  94. package/dist/editor/components/Tabs/index.d.ts +0 -11
  95. package/dist/editor/components/Tabs/index.js +0 -51
  96. package/dist/editor/helpers/client-id.d.ts +0 -17
  97. package/dist/editor/helpers/client-id.js +0 -46
  98. package/dist/editor/helpers/use-file-existence.d.ts +0 -1
  99. package/dist/editor/helpers/use-file-existence.js +0 -66
  100. package/dist/editor/icons/RenderStillIcon.d.ts +0 -3
  101. package/dist/editor/icons/RenderStillIcon.js +0 -8
  102. package/dist/editor/icons/audio.d.ts +0 -2
  103. package/dist/editor/icons/audio.js +0 -6
  104. package/dist/editor/icons/file.d.ts +0 -2
  105. package/dist/editor/icons/file.js +0 -6
  106. package/dist/editor/icons/frame.d.ts +0 -2
  107. package/dist/editor/icons/frame.js +0 -6
  108. package/dist/editor/icons/gear.d.ts +0 -2
  109. package/dist/editor/icons/gear.js +0 -6
  110. package/dist/editor/icons/gif.d.ts +0 -2
  111. package/dist/editor/icons/gif.js +0 -6
  112. package/dist/editor/icons/render.d.ts +0 -5
  113. package/dist/editor/icons/render.js +0 -8
  114. package/dist/editor/icons/video.d.ts +0 -5
  115. package/dist/editor/icons/video.js +0 -8
  116. package/dist/ffmpeg.d.ts +0 -2
  117. package/dist/ffmpeg.js +0 -21
  118. package/dist/file-watcher.d.ts +0 -9
  119. package/dist/file-watcher.js +0 -35
  120. package/dist/gcp-command.d.ts +0 -1
  121. package/dist/gcp-command.js +0 -27
  122. package/dist/get-default-out-name.d.ts +0 -5
  123. package/dist/get-default-out-name.js +0 -10
  124. package/dist/preview-server/api-routes.d.ts +0 -4
  125. package/dist/preview-server/api-routes.js +0 -17
  126. package/dist/preview-server/api-types.d.ts +0 -27
  127. package/dist/preview-server/api-types.js +0 -2
  128. package/dist/preview-server/file-existence-watchers.d.ts +0 -13
  129. package/dist/preview-server/file-existence-watchers.js +0 -62
  130. package/dist/preview-server/handler.d.ts +0 -9
  131. package/dist/preview-server/handler.js +0 -34
  132. package/dist/preview-server/parse-body.d.ts +0 -2
  133. package/dist/preview-server/parse-body.js +0 -16
  134. package/dist/preview-server/render-queue/get-default-video-contexts.d.ts +0 -10
  135. package/dist/preview-server/render-queue/get-default-video-contexts.js +0 -13
  136. package/dist/preview-server/render-queue/job.d.ts +0 -114
  137. package/dist/preview-server/render-queue/job.js +0 -2
  138. package/dist/preview-server/render-queue/make-retry-payload.d.ts +0 -3
  139. package/dist/preview-server/render-queue/make-retry-payload.js +0 -79
  140. package/dist/preview-server/render-queue/open-directory-in-finder.d.ts +0 -1
  141. package/dist/preview-server/render-queue/open-directory-in-finder.js +0 -34
  142. package/dist/preview-server/render-queue/process-still.d.ts +0 -8
  143. package/dist/preview-server/render-queue/process-still.js +0 -47
  144. package/dist/preview-server/render-queue/process-video.d.ts +0 -8
  145. package/dist/preview-server/render-queue/process-video.js +0 -64
  146. package/dist/preview-server/render-queue/queue.d.ts +0 -21
  147. package/dist/preview-server/render-queue/queue.js +0 -185
  148. package/dist/preview-server/routes/add-render.d.ts +0 -3
  149. package/dist/preview-server/routes/add-render.js +0 -68
  150. package/dist/preview-server/routes/cancel-render.d.ts +0 -3
  151. package/dist/preview-server/routes/cancel-render.js +0 -9
  152. package/dist/preview-server/routes/open-in-file-explorer.d.ts +0 -3
  153. package/dist/preview-server/routes/open-in-file-explorer.js +0 -14
  154. package/dist/preview-server/routes/remove-render.d.ts +0 -3
  155. package/dist/preview-server/routes/remove-render.js +0 -9
  156. package/dist/preview-server/routes/subscribe-to-file-existence.d.ts +0 -3
  157. package/dist/preview-server/routes/subscribe-to-file-existence.js +0 -13
  158. package/dist/preview-server/routes/unsubscribe-from-file-existence.d.ts +0 -3
  159. package/dist/preview-server/routes/unsubscribe-from-file-existence.js +0 -13
  160. package/dist/render-flows/render.d.ts +0 -46
  161. package/dist/render-flows/render.js +0 -279
  162. package/dist/render-flows/still.d.ts +0 -29
  163. package/dist/render-flows/still.js +0 -171
@@ -1,14 +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.handleOpenInFileExplorer = void 0;
7
- const path_1 = __importDefault(require("path"));
8
- const open_directory_in_finder_1 = require("../render-queue/open-directory-in-finder");
9
- const handleOpenInFileExplorer = ({ input: { directory }, remotionRoot }) => {
10
- const actualDirectory = path_1.default.resolve(remotionRoot, directory);
11
- // TODO: Disallow opening file that is not in Remotion CWD
12
- return (0, open_directory_in_finder_1.openDirectoryInFinder)(actualDirectory);
13
- };
14
- exports.handleOpenInFileExplorer = handleOpenInFileExplorer;
@@ -1,3 +0,0 @@
1
- import type { ApiHandler } from '../api-types';
2
- import type { RemoveRenderRequest } from '../render-queue/job';
3
- export declare const handleRemoveRender: ApiHandler<RemoveRenderRequest, undefined>;
@@ -1,9 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.handleRemoveRender = void 0;
4
- const queue_1 = require("../render-queue/queue");
5
- const handleRemoveRender = ({ input: { jobId }, }) => {
6
- (0, queue_1.removeJob)(jobId);
7
- return Promise.resolve(undefined);
8
- };
9
- exports.handleRemoveRender = handleRemoveRender;
@@ -1,3 +0,0 @@
1
- import type { ApiHandler } from '../api-types';
2
- import type { SubscribeToFileExistenceRequest, SubscribeToFileExistenceResponse } from '../render-queue/job';
3
- export declare const subscribeToFileExistence: ApiHandler<SubscribeToFileExistenceRequest, SubscribeToFileExistenceResponse>;
@@ -1,13 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.subscribeToFileExistence = void 0;
4
- const file_existence_watchers_1 = require("../file-existence-watchers");
5
- const subscribeToFileExistence = ({ input: { file, clientId }, remotionRoot }) => {
6
- const { exists } = (0, file_existence_watchers_1.subscribeToFileExistenceWatchers)({
7
- file,
8
- remotionRoot,
9
- clientId,
10
- });
11
- return Promise.resolve({ exists });
12
- };
13
- exports.subscribeToFileExistence = subscribeToFileExistence;
@@ -1,3 +0,0 @@
1
- import type { ApiHandler } from '../api-types';
2
- import type { UnsubscribeFromFileExistenceRequest } from '../render-queue/job';
3
- export declare const unsubscribeFromFileExistence: ApiHandler<UnsubscribeFromFileExistenceRequest, undefined>;
@@ -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,46 +0,0 @@
1
- import type { AudioCodec, Browser, BrowserExecutable, CancelSignal, ChromiumOptions, Codec, Crf, FfmpegOverrideFn, FrameRange, LogLevel, PixelFormat, ProResProfile, VideoImageFormat } from '@remotion/renderer';
2
- import type { Loop } from '../config/number-of-gif-loops';
3
- import type { JobProgressCallback } from '../preview-server/render-queue/job';
4
- export declare const renderCompFlow: ({ remotionRoot, fullEntryPoint, indent, logLevel, browserExecutable, browser, chromiumOptions, scale, shouldOutputImageSequence, publicDir, inputProps, envVariables, puppeteerTimeout, port, height, width, remainingArgs, compositionIdFromUi, entryPointReason, overwrite, quiet, concurrency, frameRange, everyNthFrame, outputLocationFromUI, quality, onProgress, addCleanupCallback, cancelSignal, crf, uiCodec, uiImageFormat, ffmpegOverride, audioBitrate, muted, enforceAudioTrack, proResProfile, pixelFormat, videoBitrate, numberOfGifLoops, audioCodec, }: {
5
- remotionRoot: string;
6
- fullEntryPoint: string;
7
- entryPointReason: string;
8
- browserExecutable: BrowserExecutable;
9
- chromiumOptions: ChromiumOptions;
10
- logLevel: LogLevel;
11
- browser: Browser;
12
- scale: number;
13
- indent: boolean;
14
- shouldOutputImageSequence: boolean;
15
- publicDir: string | null;
16
- inputProps: object;
17
- envVariables: Record<string, string>;
18
- puppeteerTimeout: number;
19
- port: number | null;
20
- height: number | null;
21
- width: number | null;
22
- remainingArgs: string[];
23
- compositionIdFromUi: string | null;
24
- outputLocationFromUI: string | null;
25
- overwrite: boolean;
26
- quiet: boolean;
27
- concurrency: number | string | null;
28
- frameRange: FrameRange | null;
29
- everyNthFrame: number;
30
- quality: number | undefined;
31
- onProgress: JobProgressCallback;
32
- addCleanupCallback: (cb: () => void) => void;
33
- crf: Crf | null;
34
- cancelSignal: CancelSignal | null;
35
- uiCodec: Codec | null;
36
- uiImageFormat: VideoImageFormat;
37
- ffmpegOverride: FfmpegOverrideFn;
38
- audioBitrate: string | null;
39
- videoBitrate: string | null;
40
- muted: boolean;
41
- enforceAudioTrack: boolean;
42
- proResProfile: ProResProfile | undefined;
43
- pixelFormat: PixelFormat;
44
- numberOfGifLoops: Loop;
45
- audioCodec: AudioCodec | null;
46
- }) => Promise<void>;
@@ -1,279 +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 cleanup_before_quit_1 = require("../cleanup-before-quit");
13
- const config_1 = require("../config");
14
- const get_cli_options_1 = require("../get-cli-options");
15
- const get_composition_with_dimension_override_1 = require("../get-composition-with-dimension-override");
16
- const get_filename_1 = require("../get-filename");
17
- const get_final_output_codec_1 = require("../get-final-output-codec");
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
- // TODO: rename to renderVideoFlow
26
- const renderCompFlow = async ({ remotionRoot, fullEntryPoint, indent, logLevel, browserExecutable, browser, chromiumOptions, scale, shouldOutputImageSequence, publicDir, inputProps, envVariables, puppeteerTimeout, port, height, width, remainingArgs, compositionIdFromUi, entryPointReason, overwrite, quiet, concurrency, frameRange, everyNthFrame, outputLocationFromUI, quality, onProgress, addCleanupCallback, cancelSignal, crf, uiCodec, uiImageFormat, ffmpegOverride, audioBitrate, muted, enforceAudioTrack, proResProfile, pixelFormat, videoBitrate, numberOfGifLoops, audioCodec, }) => {
27
- var _a;
28
- const downloads = [];
29
- const downloadMap = renderer_1.RenderInternals.makeDownloadMap();
30
- addCleanupCallback(() => renderer_1.RenderInternals.cleanDownloadMap(downloadMap));
31
- (0, cleanup_before_quit_1.registerCleanupJob)(() => renderer_1.RenderInternals.cleanDownloadMap(downloadMap));
32
- log_1.Log.verboseAdvanced({ indent, logLevel }, 'Browser executable: ', browserExecutable);
33
- log_1.Log.verboseAdvanced({ indent, logLevel }, 'Asset dirs', downloadMap.assetDir);
34
- const browserInstance = (0, renderer_1.openBrowser)(browser, {
35
- browserExecutable,
36
- shouldDumpIo: renderer_1.RenderInternals.isEqualOrBelowLogLevel(logLevel, 'verbose'),
37
- chromiumOptions,
38
- forceDeviceScaleFactor: scale,
39
- indentationString: indent ? log_1.INDENT_TOKEN + ' ' : '',
40
- });
41
- const steps = [
42
- renderer_1.RenderInternals.isServeUrl(fullEntryPoint) ? null : 'bundling',
43
- 'rendering',
44
- shouldOutputImageSequence ? null : 'stitching',
45
- ].filter(truthy_1.truthy);
46
- const { urlOrBundle, cleanup: cleanupBundle } = await (0, setup_cache_1.bundleOnCliOrTakeServeUrl)({
47
- fullPath: fullEntryPoint,
48
- remotionRoot,
49
- steps,
50
- publicDir,
51
- // TODO: Implement onProgress
52
- onProgress: () => undefined,
53
- indentOutput: indent,
54
- logLevel,
55
- });
56
- (0, cleanup_before_quit_1.registerCleanupJob)(() => cleanupBundle());
57
- addCleanupCallback(() => cleanupBundle());
58
- const onDownload = (src) => {
59
- const id = Math.random();
60
- const download = {
61
- id,
62
- name: src,
63
- progress: 0,
64
- downloaded: 0,
65
- totalBytes: null,
66
- };
67
- downloads.push(download);
68
- updateRenderProgress();
69
- return ({ percent, downloaded, totalSize }) => {
70
- download.progress = percent;
71
- download.totalBytes = totalSize;
72
- download.downloaded = downloaded;
73
- updateRenderProgress();
74
- };
75
- };
76
- const puppeteerInstance = await browserInstance;
77
- (0, cleanup_before_quit_1.registerCleanupJob)(() => puppeteerInstance.close(false));
78
- addCleanupCallback(() => puppeteerInstance.close(false));
79
- const comps = await (0, renderer_1.getCompositions)(urlOrBundle, {
80
- inputProps,
81
- puppeteerInstance,
82
- envVariables,
83
- timeoutInMilliseconds: puppeteerTimeout,
84
- chromiumOptions,
85
- browserExecutable,
86
- downloadMap,
87
- port,
88
- });
89
- const { compositionId, config, reason, argsAfterComposition } = await (0, get_composition_with_dimension_override_1.getCompositionWithDimensionOverride)({
90
- validCompositions: comps,
91
- height,
92
- width,
93
- args: remainingArgs,
94
- compositionIdFromUi,
95
- });
96
- const { codec, reason: codecReason } = (0, get_final_output_codec_1.getFinalOutputCodec)({
97
- cliFlag: parse_command_line_1.parsedCli.codec,
98
- configFile: (_a = config_1.ConfigInternals.getOutputCodecOrUndefined()) !== null && _a !== void 0 ? _a : null,
99
- downloadName: null,
100
- outName: (0, user_passed_output_location_1.getUserPassedOutputLocation)(argsAfterComposition),
101
- uiCodec,
102
- });
103
- renderer_1.RenderInternals.validateEvenDimensionsWithCodec({
104
- width: config.width,
105
- height: config.height,
106
- codec,
107
- scale,
108
- });
109
- const relativeOutputLocation = (0, get_filename_1.getOutputFilename)({
110
- imageSequence: shouldOutputImageSequence,
111
- compositionName: compositionId,
112
- defaultExtension: renderer_1.RenderInternals.getFileExtensionFromCodec(codec, audioCodec),
113
- args: argsAfterComposition,
114
- indent,
115
- fromUi: outputLocationFromUI,
116
- logLevel,
117
- });
118
- log_1.Log.infoAdvanced({ indent, logLevel }, chalk_1.chalk.gray(`Entry point = ${fullEntryPoint} (${entryPointReason}), Composition = ${compositionId} (${reason}), Codec = ${codec} (${codecReason}), Output = ${relativeOutputLocation}`));
119
- const absoluteOutputFile = (0, get_cli_options_1.getAndValidateAbsoluteOutputFile)(relativeOutputLocation, overwrite);
120
- const outputDir = shouldOutputImageSequence
121
- ? absoluteOutputFile
122
- : await fs_1.default.promises.mkdtemp(path_1.default.join(os_1.default.tmpdir(), 'react-motion-render'));
123
- log_1.Log.verboseAdvanced({ indent, logLevel }, 'Output dir', outputDir);
124
- const renderProgress = (0, progress_bar_1.createOverwriteableCliOutput)({
125
- quiet,
126
- cancelSignal,
127
- });
128
- const realFrameRange = renderer_1.RenderInternals.getRealFrameRange(config.durationInFrames, frameRange);
129
- const totalFrames = renderer_1.RenderInternals.getFramesToRender(realFrameRange, everyNthFrame);
130
- let encodedFrames = 0;
131
- let renderedFrames = 0;
132
- let encodedDoneIn = null;
133
- let renderedDoneIn = null;
134
- let stitchStage = 'encoding';
135
- const actualConcurrency = renderer_1.RenderInternals.getActualConcurrency(concurrency);
136
- const updateRenderProgress = () => {
137
- if (totalFrames.length === 0) {
138
- throw new Error('totalFrames should not be 0');
139
- }
140
- const { output, message, progress } = (0, progress_bar_1.makeRenderingAndStitchingProgress)({
141
- rendering: {
142
- frames: renderedFrames,
143
- totalFrames: totalFrames.length,
144
- concurrency: actualConcurrency,
145
- doneIn: renderedDoneIn,
146
- steps,
147
- },
148
- stitching: shouldOutputImageSequence
149
- ? null
150
- : {
151
- doneIn: encodedDoneIn,
152
- frames: encodedFrames,
153
- stage: stitchStage,
154
- steps,
155
- totalFrames: totalFrames.length,
156
- codec,
157
- },
158
- downloads,
159
- bundling: {
160
- message: 'Bundled',
161
- progress: 1,
162
- },
163
- }, indent);
164
- onProgress({ progress, message });
165
- return renderProgress.update(output);
166
- };
167
- const imageFormat = (0, image_formats_1.getVideoImageFormat)({
168
- codec: shouldOutputImageSequence ? undefined : codec,
169
- uiImageFormat,
170
- });
171
- if (shouldOutputImageSequence) {
172
- fs_1.default.mkdirSync(absoluteOutputFile, {
173
- recursive: true,
174
- });
175
- if (imageFormat === 'none') {
176
- throw new Error(`Cannot render an image sequence with a codec that renders no images. codec = ${codec}, imageFormat = ${imageFormat}`);
177
- }
178
- await (0, renderer_1.renderFrames)({
179
- imageFormat,
180
- inputProps,
181
- onFrameUpdate: (rendered) => {
182
- renderedFrames = rendered;
183
- updateRenderProgress();
184
- },
185
- onStart: () => undefined,
186
- onDownload: (src) => {
187
- if (src.startsWith('data:')) {
188
- log_1.Log.infoAdvanced({ indent, logLevel }, '\nWriting Data URL to file: ', src.substring(0, 30) + '...');
189
- }
190
- else {
191
- log_1.Log.infoAdvanced({ indent, logLevel }, '\nDownloading asset... ', src);
192
- }
193
- },
194
- cancelSignal: cancelSignal !== null && cancelSignal !== void 0 ? cancelSignal : undefined,
195
- outputDir,
196
- serveUrl: urlOrBundle,
197
- dumpBrowserLogs: renderer_1.RenderInternals.isEqualOrBelowLogLevel(logLevel, 'verbose'),
198
- everyNthFrame,
199
- envVariables,
200
- frameRange,
201
- concurrency: actualConcurrency,
202
- puppeteerInstance,
203
- quality,
204
- timeoutInMilliseconds: puppeteerTimeout,
205
- chromiumOptions,
206
- scale,
207
- browserExecutable,
208
- port,
209
- downloadMap,
210
- composition: config,
211
- });
212
- updateRenderProgress();
213
- process.stdout.write('\n');
214
- log_1.Log.infoAdvanced({ indent, logLevel }, chalk_1.chalk.cyan(`▶ ${absoluteOutputFile}`));
215
- }
216
- const { slowestFrames } = await (0, renderer_1.renderMedia)({
217
- outputLocation: absoluteOutputFile,
218
- composition: {
219
- ...config,
220
- width: width !== null && width !== void 0 ? width : config.width,
221
- height: height !== null && height !== void 0 ? height : config.height,
222
- },
223
- crf,
224
- envVariables,
225
- frameRange,
226
- inputProps,
227
- overwrite,
228
- pixelFormat,
229
- proResProfile,
230
- quality,
231
- dumpBrowserLogs: renderer_1.RenderInternals.isEqualOrBelowLogLevel(logLevel, 'verbose'),
232
- chromiumOptions,
233
- timeoutInMilliseconds: config_1.ConfigInternals.getCurrentPuppeteerTimeout(),
234
- scale,
235
- port,
236
- numberOfGifLoops,
237
- everyNthFrame,
238
- verbose: renderer_1.RenderInternals.isEqualOrBelowLogLevel(logLevel, 'verbose'),
239
- muted,
240
- enforceAudioTrack,
241
- browserExecutable,
242
- ffmpegOverride,
243
- concurrency,
244
- serveUrl: urlOrBundle,
245
- codec,
246
- audioBitrate,
247
- videoBitrate,
248
- onProgress: (update) => {
249
- encodedDoneIn = update.encodedDoneIn;
250
- encodedFrames = update.encodedFrames;
251
- renderedDoneIn = update.renderedDoneIn;
252
- stitchStage = update.stitchStage;
253
- renderedFrames = update.renderedFrames;
254
- updateRenderProgress();
255
- },
256
- puppeteerInstance,
257
- onDownload,
258
- internal: {
259
- onCtrlCExit: cleanup_before_quit_1.registerCleanupJob,
260
- downloadMap,
261
- },
262
- cancelSignal: cancelSignal !== null && cancelSignal !== void 0 ? cancelSignal : undefined,
263
- printLog: (...str) => log_1.Log.verboseAdvanced({ indent, logLevel }, ...str),
264
- audioCodec,
265
- // TODO: Add missing elements
266
- });
267
- log_1.Log.verboseAdvanced({ indent, logLevel });
268
- log_1.Log.verboseAdvanced({ indent, logLevel }, `Slowest frames:`);
269
- slowestFrames.forEach(({ frame, time }) => {
270
- log_1.Log.verboseAdvanced({ indent, logLevel }, `Frame ${frame} (${time.toFixed(3)}ms)`);
271
- });
272
- updateRenderProgress();
273
- process.stdout.write('\n');
274
- log_1.Log.infoAdvanced({ indent, logLevel }, chalk_1.chalk.cyan(`▶ ${absoluteOutputFile}`));
275
- for (const line of renderer_1.RenderInternals.perf.getPerf()) {
276
- log_1.Log.verboseAdvanced({ indent, logLevel }, line);
277
- }
278
- };
279
- exports.renderCompFlow = renderCompFlow;
@@ -1,29 +0,0 @@
1
- import type { Browser, BrowserExecutable, CancelSignal, ChromiumOptions, 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, height, inputProps, overwrite, port, publicDir, puppeteerTimeout, quality, scale, stillFrame, width, compositionIdFromUi, imageFormatFromUi, logLevel, onProgress, indentOutput, addCleanupCallback, cancelSignal, }: {
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
- overwrite: boolean;
17
- puppeteerTimeout: number;
18
- port: number | null;
19
- publicDir: string | null;
20
- height: number | null;
21
- width: number | null;
22
- compositionIdFromUi: string | null;
23
- imageFormatFromUi: StillImageFormat | null;
24
- logLevel: LogLevel;
25
- onProgress: JobProgressCallback;
26
- indentOutput: boolean;
27
- addCleanupCallback: (cb: () => void) => void;
28
- cancelSignal: CancelSignal | null;
29
- }) => Promise<void>;
@@ -1,171 +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 cleanup_before_quit_1 = require("../cleanup-before-quit");
13
- const config_1 = require("../config");
14
- const determine_image_format_1 = require("../determine-image-format");
15
- const get_cli_options_1 = require("../get-cli-options");
16
- const get_composition_with_dimension_override_1 = require("../get-composition-with-dimension-override");
17
- const log_1 = require("../log");
18
- const parse_command_line_1 = require("../parse-command-line");
19
- const progress_bar_1 = require("../progress-bar");
20
- const setup_cache_1 = require("../setup-cache");
21
- const truthy_1 = require("../truthy");
22
- const user_passed_output_location_1 = require("../user-passed-output-location");
23
- const renderStillFlow = async ({ remotionRoot, fullEntryPoint, entryPointReason, remainingArgs, browser, browserExecutable, chromiumOptions, envVariables, height, inputProps, overwrite, port, publicDir, puppeteerTimeout, quality, scale, stillFrame, width, compositionIdFromUi, imageFormatFromUi, logLevel, onProgress, indentOutput, addCleanupCallback, cancelSignal, }) => {
24
- var _a, _b;
25
- const downloads = [];
26
- const aggregate = {
27
- rendering: null,
28
- downloads,
29
- stitching: null,
30
- bundling: {
31
- message: null,
32
- progress: 0,
33
- },
34
- };
35
- let renderProgress = null;
36
- const updateProgress = () => {
37
- const { output, progress, message } = (0, progress_bar_1.makeRenderingAndStitchingProgress)(aggregate, indentOutput);
38
- if (renderProgress) {
39
- renderProgress.update(output);
40
- }
41
- onProgress({ progress, message });
42
- };
43
- log_1.Log.verboseAdvanced({ indent: indentOutput, logLevel }, 'Browser executable: ', browserExecutable);
44
- const shouldDumpIo = renderer_1.RenderInternals.isEqualOrBelowLogLevel(logLevel, 'verbose');
45
- const browserInstance = (0, renderer_1.openBrowser)(browser, {
46
- browserExecutable,
47
- chromiumOptions,
48
- shouldDumpIo,
49
- forceDeviceScaleFactor: scale,
50
- indentationString: indentOutput ? log_1.INDENT_TOKEN + ' ' : '',
51
- });
52
- const steps = [
53
- renderer_1.RenderInternals.isServeUrl(fullEntryPoint) ? null : 'bundling',
54
- 'rendering',
55
- ].filter(truthy_1.truthy);
56
- const { cleanup: cleanupBundle, urlOrBundle } = await (0, setup_cache_1.bundleOnCliOrTakeServeUrl)({
57
- fullPath: fullEntryPoint,
58
- remotionRoot,
59
- steps,
60
- publicDir,
61
- onProgress: (progress) => {
62
- aggregate.bundling = progress;
63
- updateProgress();
64
- },
65
- indentOutput,
66
- logLevel,
67
- });
68
- (0, cleanup_before_quit_1.registerCleanupJob)(() => cleanupBundle());
69
- addCleanupCallback(() => cleanupBundle());
70
- const puppeteerInstance = await browserInstance;
71
- addCleanupCallback(() => puppeteerInstance.close(false));
72
- const downloadMap = renderer_1.RenderInternals.makeDownloadMap();
73
- (0, cleanup_before_quit_1.registerCleanupJob)(() => renderer_1.RenderInternals.cleanDownloadMap(downloadMap));
74
- addCleanupCallback(() => renderer_1.RenderInternals.cleanDownloadMap(downloadMap));
75
- const comps = await (0, renderer_1.getCompositions)(urlOrBundle, {
76
- inputProps,
77
- puppeteerInstance,
78
- envVariables,
79
- timeoutInMilliseconds: puppeteerTimeout,
80
- chromiumOptions,
81
- port,
82
- browserExecutable,
83
- downloadMap,
84
- });
85
- const { compositionId, config, reason, argsAfterComposition } = await (0, get_composition_with_dimension_override_1.getCompositionWithDimensionOverride)({
86
- validCompositions: comps,
87
- height,
88
- width,
89
- args: remainingArgs,
90
- compositionIdFromUi,
91
- });
92
- const { format: imageFormat, source } = (0, determine_image_format_1.determineFinalStillImageFormat)({
93
- cliFlag: (_a = parse_command_line_1.parsedCli['image-format']) !== null && _a !== void 0 ? _a : null,
94
- configImageFormat: (_b = config_1.ConfigInternals.getUserPreferredStillImageFormat()) !== null && _b !== void 0 ? _b : null,
95
- downloadName: null,
96
- outName: (0, user_passed_output_location_1.getUserPassedOutputLocation)(argsAfterComposition),
97
- isLambda: false,
98
- fromUi: imageFormatFromUi,
99
- });
100
- const relativeOutputLocation = (0, user_passed_output_location_1.getOutputLocation)({
101
- compositionId,
102
- defaultExtension: imageFormat,
103
- args: argsAfterComposition,
104
- type: 'asset',
105
- });
106
- const absoluteOutputLocation = (0, get_cli_options_1.getAndValidateAbsoluteOutputFile)(relativeOutputLocation, overwrite);
107
- (0, fs_1.mkdirSync)(path_1.default.join(absoluteOutputLocation, '..'), {
108
- recursive: true,
109
- });
110
- log_1.Log.infoAdvanced({ indent: indentOutput, logLevel }, chalk_1.chalk.gray(`Entry point = ${fullEntryPoint} (${entryPointReason}), Output = ${relativeOutputLocation}, Format = ${imageFormat} (${source}), Composition = ${compositionId} (${reason})`));
111
- renderProgress = (0, progress_bar_1.createOverwriteableCliOutput)({
112
- quiet: (0, parse_command_line_1.quietFlagProvided)(),
113
- cancelSignal,
114
- });
115
- const renderStart = Date.now();
116
- aggregate.rendering = {
117
- frames: 0,
118
- concurrency: 1,
119
- doneIn: null,
120
- steps,
121
- totalFrames: 1,
122
- };
123
- updateProgress();
124
- const onDownload = (src) => {
125
- const id = Math.random();
126
- const download = {
127
- id,
128
- name: src,
129
- progress: 0,
130
- downloaded: 0,
131
- totalBytes: null,
132
- };
133
- downloads.push(download);
134
- updateProgress();
135
- return ({ percent }) => {
136
- download.progress = percent;
137
- updateProgress();
138
- };
139
- };
140
- await (0, renderer_1.renderStill)({
141
- composition: config,
142
- frame: stillFrame,
143
- output: absoluteOutputLocation,
144
- serveUrl: urlOrBundle,
145
- quality,
146
- dumpBrowserLogs: shouldDumpIo,
147
- envVariables,
148
- imageFormat,
149
- inputProps,
150
- chromiumOptions,
151
- timeoutInMilliseconds: puppeteerTimeout,
152
- scale,
153
- browserExecutable,
154
- overwrite,
155
- onDownload,
156
- port,
157
- downloadMap,
158
- puppeteerInstance,
159
- });
160
- aggregate.rendering = {
161
- frames: 1,
162
- concurrency: 1,
163
- doneIn: Date.now() - renderStart,
164
- steps,
165
- totalFrames: 1,
166
- };
167
- updateProgress();
168
- log_1.Log.infoAdvanced({ indent: indentOutput, logLevel });
169
- log_1.Log.infoAdvanced({ indent: indentOutput, logLevel }, chalk_1.chalk.cyan(`▶️ ${absoluteOutputLocation}`));
170
- };
171
- exports.renderStillFlow = renderStillFlow;