@remotion/cli 3.3.78 → 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 (175) 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 -6
  11. package/dist/editor/components/Checkbox.js +0 -41
  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 -68
  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 -6
  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/InfoBubble.d.ts +0 -5
  29. package/dist/editor/components/RenderModal/InfoBubble.js +0 -111
  30. package/dist/editor/components/RenderModal/InfoTooltip.d.ts +0 -4
  31. package/dist/editor/components/RenderModal/InfoTooltip.js +0 -30
  32. package/dist/editor/components/RenderModal/MutedSetting.d.ts +0 -6
  33. package/dist/editor/components/RenderModal/MutedSetting.js +0 -14
  34. package/dist/editor/components/RenderModal/NumberOfLoopsSetting.d.ts +0 -5
  35. package/dist/editor/components/RenderModal/NumberOfLoopsSetting.js +0 -26
  36. package/dist/editor/components/RenderModal/NumberSetting.d.ts +0 -12
  37. package/dist/editor/components/RenderModal/NumberSetting.js +0 -29
  38. package/dist/editor/components/RenderModal/OptionExplainer.d.ts +0 -5
  39. package/dist/editor/components/RenderModal/OptionExplainer.js +0 -21
  40. package/dist/editor/components/RenderModal/QualitySetting.d.ts +0 -5
  41. package/dist/editor/components/RenderModal/QualitySetting.js +0 -27
  42. package/dist/editor/components/RenderModal/RenderErrorModal.d.ts +0 -5
  43. package/dist/editor/components/RenderModal/RenderErrorModal.js +0 -64
  44. package/dist/editor/components/RenderModal/RenderModal.d.ts +0 -29
  45. package/dist/editor/components/RenderModal/RenderModal.js +0 -488
  46. package/dist/editor/components/RenderModal/RenderModalAdvanced.d.ts +0 -15
  47. package/dist/editor/components/RenderModal/RenderModalAdvanced.js +0 -22
  48. package/dist/editor/components/RenderModal/RenderModalAudio.d.ts +0 -17
  49. package/dist/editor/components/RenderModal/RenderModalAudio.js +0 -41
  50. package/dist/editor/components/RenderModal/RenderModalBasic.d.ts +0 -22
  51. package/dist/editor/components/RenderModal/RenderModalBasic.js +0 -78
  52. package/dist/editor/components/RenderModal/RenderModalGif.d.ts +0 -9
  53. package/dist/editor/components/RenderModal/RenderModalGif.js +0 -16
  54. package/dist/editor/components/RenderModal/RenderModalHr.d.ts +0 -2
  55. package/dist/editor/components/RenderModal/RenderModalHr.js +0 -18
  56. package/dist/editor/components/RenderModal/RenderModalPicture.d.ts +0 -28
  57. package/dist/editor/components/RenderModal/RenderModalPicture.js +0 -51
  58. package/dist/editor/components/RenderModal/ScaleSetting.d.ts +0 -5
  59. package/dist/editor/components/RenderModal/ScaleSetting.js +0 -14
  60. package/dist/editor/components/RenderModal/human-readable-audio-codecs.d.ts +0 -2
  61. package/dist/editor/components/RenderModal/human-readable-audio-codecs.js +0 -18
  62. package/dist/editor/components/RenderModal/human-readable-codec.d.ts +0 -2
  63. package/dist/editor/components/RenderModal/human-readable-codec.js +0 -36
  64. package/dist/editor/components/RenderModal/layout.d.ts +0 -5
  65. package/dist/editor/components/RenderModal/layout.js +0 -31
  66. package/dist/editor/components/RenderQueue/CircularProgress.d.ts +0 -5
  67. package/dist/editor/components/RenderQueue/CircularProgress.js +0 -18
  68. package/dist/editor/components/RenderQueue/RenderQueueError.d.ts +0 -5
  69. package/dist/editor/components/RenderQueue/RenderQueueError.js +0 -26
  70. package/dist/editor/components/RenderQueue/RenderQueueItem.d.ts +0 -5
  71. package/dist/editor/components/RenderQueue/RenderQueueItem.js +0 -40
  72. package/dist/editor/components/RenderQueue/RenderQueueItemCancelButton.d.ts +0 -5
  73. package/dist/editor/components/RenderQueue/RenderQueueItemCancelButton.js +0 -22
  74. package/dist/editor/components/RenderQueue/RenderQueueItemStatus.d.ts +0 -5
  75. package/dist/editor/components/RenderQueue/RenderQueueItemStatus.js +0 -27
  76. package/dist/editor/components/RenderQueue/RenderQueueOpenInFolder.d.ts +0 -5
  77. package/dist/editor/components/RenderQueue/RenderQueueOpenInFolder.js +0 -22
  78. package/dist/editor/components/RenderQueue/RenderQueueOutputName.d.ts +0 -5
  79. package/dist/editor/components/RenderQueue/RenderQueueOutputName.js +0 -24
  80. package/dist/editor/components/RenderQueue/RenderQueueProgressMessage.d.ts +0 -5
  81. package/dist/editor/components/RenderQueue/RenderQueueProgressMessage.js +0 -27
  82. package/dist/editor/components/RenderQueue/RenderQueueRemoveItem.d.ts +0 -5
  83. package/dist/editor/components/RenderQueue/RenderQueueRemoveItem.js +0 -23
  84. package/dist/editor/components/RenderQueue/RenderQueueRepeat.d.ts +0 -5
  85. package/dist/editor/components/RenderQueue/RenderQueueRepeat.js +0 -22
  86. package/dist/editor/components/RenderQueue/actions.d.ts +0 -50
  87. package/dist/editor/components/RenderQueue/actions.js +0 -99
  88. package/dist/editor/components/RenderQueue/context.d.ts +0 -19
  89. package/dist/editor/components/RenderQueue/context.js +0 -56
  90. package/dist/editor/components/RenderQueue/index.d.ts +0 -2
  91. package/dist/editor/components/RenderQueue/index.js +0 -18
  92. package/dist/editor/components/RenderQueue/item-style.d.ts +0 -2
  93. package/dist/editor/components/RenderQueue/item-style.js +0 -21
  94. package/dist/editor/components/RenderToolbarIcon.d.ts +0 -2
  95. package/dist/editor/components/RenderToolbarIcon.js +0 -79
  96. package/dist/editor/components/RendersTab.d.ts +0 -6
  97. package/dist/editor/components/RendersTab.js +0 -43
  98. package/dist/editor/components/SegmentedControl.d.ts +0 -16
  99. package/dist/editor/components/SegmentedControl.js +0 -63
  100. package/dist/editor/components/SidebarContent.d.ts +0 -5
  101. package/dist/editor/components/SidebarContent.js +0 -52
  102. package/dist/editor/components/Tabs/index.d.ts +0 -11
  103. package/dist/editor/components/Tabs/index.js +0 -51
  104. package/dist/editor/helpers/client-id.d.ts +0 -17
  105. package/dist/editor/helpers/client-id.js +0 -46
  106. package/dist/editor/helpers/prores-labels.d.ts +0 -2
  107. package/dist/editor/helpers/prores-labels.js +0 -25
  108. package/dist/editor/helpers/render-modal-sections.d.ts +0 -10
  109. package/dist/editor/helpers/render-modal-sections.js +0 -32
  110. package/dist/editor/helpers/use-file-existence.d.ts +0 -1
  111. package/dist/editor/helpers/use-file-existence.js +0 -66
  112. package/dist/editor/icons/RenderStillIcon.d.ts +0 -3
  113. package/dist/editor/icons/RenderStillIcon.js +0 -8
  114. package/dist/editor/icons/audio.d.ts +0 -2
  115. package/dist/editor/icons/audio.js +0 -6
  116. package/dist/editor/icons/file.d.ts +0 -2
  117. package/dist/editor/icons/file.js +0 -6
  118. package/dist/editor/icons/frame.d.ts +0 -2
  119. package/dist/editor/icons/frame.js +0 -6
  120. package/dist/editor/icons/gear.d.ts +0 -2
  121. package/dist/editor/icons/gear.js +0 -6
  122. package/dist/editor/icons/gif.d.ts +0 -2
  123. package/dist/editor/icons/gif.js +0 -6
  124. package/dist/editor/icons/render.d.ts +0 -5
  125. package/dist/editor/icons/render.js +0 -8
  126. package/dist/editor/icons/video.d.ts +0 -5
  127. package/dist/editor/icons/video.js +0 -8
  128. package/dist/ffmpeg.d.ts +0 -2
  129. package/dist/ffmpeg.js +0 -21
  130. package/dist/file-watcher.d.ts +0 -9
  131. package/dist/file-watcher.js +0 -35
  132. package/dist/gcp-command.d.ts +0 -1
  133. package/dist/gcp-command.js +0 -27
  134. package/dist/get-default-out-name.d.ts +0 -5
  135. package/dist/get-default-out-name.js +0 -10
  136. package/dist/preview-server/api-routes.d.ts +0 -4
  137. package/dist/preview-server/api-routes.js +0 -17
  138. package/dist/preview-server/api-types.d.ts +0 -27
  139. package/dist/preview-server/api-types.js +0 -2
  140. package/dist/preview-server/file-existence-watchers.d.ts +0 -13
  141. package/dist/preview-server/file-existence-watchers.js +0 -62
  142. package/dist/preview-server/handler.d.ts +0 -9
  143. package/dist/preview-server/handler.js +0 -34
  144. package/dist/preview-server/parse-body.d.ts +0 -2
  145. package/dist/preview-server/parse-body.js +0 -16
  146. package/dist/preview-server/render-queue/get-default-video-contexts.d.ts +0 -10
  147. package/dist/preview-server/render-queue/get-default-video-contexts.js +0 -13
  148. package/dist/preview-server/render-queue/job.d.ts +0 -116
  149. package/dist/preview-server/render-queue/job.js +0 -2
  150. package/dist/preview-server/render-queue/make-retry-payload.d.ts +0 -3
  151. package/dist/preview-server/render-queue/make-retry-payload.js +0 -79
  152. package/dist/preview-server/render-queue/open-directory-in-finder.d.ts +0 -1
  153. package/dist/preview-server/render-queue/open-directory-in-finder.js +0 -34
  154. package/dist/preview-server/render-queue/process-still.d.ts +0 -8
  155. package/dist/preview-server/render-queue/process-still.js +0 -52
  156. package/dist/preview-server/render-queue/process-video.d.ts +0 -8
  157. package/dist/preview-server/render-queue/process-video.js +0 -69
  158. package/dist/preview-server/render-queue/queue.d.ts +0 -21
  159. package/dist/preview-server/render-queue/queue.js +0 -185
  160. package/dist/preview-server/routes/add-render.d.ts +0 -3
  161. package/dist/preview-server/routes/add-render.js +0 -69
  162. package/dist/preview-server/routes/cancel-render.d.ts +0 -3
  163. package/dist/preview-server/routes/cancel-render.js +0 -9
  164. package/dist/preview-server/routes/open-in-file-explorer.d.ts +0 -3
  165. package/dist/preview-server/routes/open-in-file-explorer.js +0 -14
  166. package/dist/preview-server/routes/remove-render.d.ts +0 -3
  167. package/dist/preview-server/routes/remove-render.js +0 -9
  168. package/dist/preview-server/routes/subscribe-to-file-existence.d.ts +0 -3
  169. package/dist/preview-server/routes/subscribe-to-file-existence.js +0 -13
  170. package/dist/preview-server/routes/unsubscribe-from-file-existence.d.ts +0 -3
  171. package/dist/preview-server/routes/unsubscribe-from-file-existence.js +0 -13
  172. package/dist/render-flows/render.d.ts +0 -47
  173. package/dist/render-flows/render.js +0 -280
  174. package/dist/render-flows/still.d.ts +0 -29
  175. package/dist/render-flows/still.js +0 -171
@@ -1,185 +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.processJobIfPossible = exports.cancelJob = exports.removeJob = exports.addJob = exports.processJob = exports.notifyClientsOfJobUpdate = exports.getRenderQueue = void 0;
7
- const path_1 = __importDefault(require("path"));
8
- const chalk_1 = require("../../chalk");
9
- const file_watcher_1 = require("../../file-watcher");
10
- const log_1 = require("../../log");
11
- const live_events_1 = require("../live-events");
12
- const process_still_1 = require("./process-still");
13
- const process_video_1 = require("./process-video");
14
- let jobQueue = [];
15
- const updateJob = (id, updater) => {
16
- jobQueue = jobQueue.map((j) => {
17
- if (id === j.id) {
18
- return updater(j);
19
- }
20
- return j;
21
- });
22
- (0, exports.notifyClientsOfJobUpdate)();
23
- };
24
- const getRenderQueue = () => {
25
- return jobQueue.map((j) => {
26
- const { cleanup, ...rest } = j;
27
- return rest;
28
- });
29
- };
30
- exports.getRenderQueue = getRenderQueue;
31
- const notifyClientsOfJobUpdate = () => {
32
- (0, live_events_1.waitForLiveEventsListener)().then((listener) => {
33
- listener.sendEventToClient({
34
- type: 'render-queue-updated',
35
- queue: (0, exports.getRenderQueue)(),
36
- });
37
- });
38
- };
39
- exports.notifyClientsOfJobUpdate = notifyClientsOfJobUpdate;
40
- const processJob = async ({ job, remotionRoot, entryPoint, onProgress, addCleanupCallback, }) => {
41
- if (job.type === 'still') {
42
- await (0, process_still_1.processStill)({
43
- job,
44
- remotionRoot,
45
- entryPoint,
46
- onProgress,
47
- addCleanupCallback,
48
- });
49
- return;
50
- }
51
- if (job.type === 'video') {
52
- await (0, process_video_1.processVideoJob)({
53
- job,
54
- remotionRoot,
55
- entryPoint,
56
- onProgress,
57
- addCleanupCallback,
58
- });
59
- return;
60
- }
61
- throw new Error(`Unknown job ${JSON.stringify(job)}`);
62
- };
63
- exports.processJob = processJob;
64
- const addJob = ({ job, entryPoint, remotionRoot, }) => {
65
- jobQueue.push(job);
66
- (0, exports.processJobIfPossible)({ entryPoint, remotionRoot });
67
- (0, exports.notifyClientsOfJobUpdate)();
68
- };
69
- exports.addJob = addJob;
70
- const removeJob = (jobId) => {
71
- jobQueue = jobQueue.filter((job) => {
72
- if (job.id === jobId) {
73
- job.cleanup.forEach((c) => {
74
- c();
75
- });
76
- return false;
77
- }
78
- return true;
79
- });
80
- (0, exports.notifyClientsOfJobUpdate)();
81
- };
82
- exports.removeJob = removeJob;
83
- const cancelJob = (jobId) => {
84
- for (const job of jobQueue) {
85
- if (job.id === jobId) {
86
- if (job.status !== 'running') {
87
- throw new Error('Job is not running');
88
- }
89
- job.cancelToken.cancel();
90
- break;
91
- }
92
- }
93
- };
94
- exports.cancelJob = cancelJob;
95
- const processJobIfPossible = async ({ remotionRoot, entryPoint, }) => {
96
- const nextJob = jobQueue.find((q) => {
97
- return q.status === 'idle';
98
- });
99
- if (!nextJob) {
100
- return;
101
- }
102
- const jobCleanups = [];
103
- try {
104
- updateJob(nextJob.id, (job) => {
105
- return {
106
- ...job,
107
- status: 'running',
108
- progress: 0,
109
- message: 'Starting job...',
110
- };
111
- });
112
- const startTime = Date.now();
113
- log_1.Log.info(chalk_1.chalk.gray('╭─ Starting render '));
114
- await (0, exports.processJob)({
115
- job: nextJob,
116
- entryPoint,
117
- remotionRoot,
118
- onProgress: ({ message, progress }) => {
119
- updateJob(nextJob.id, (job) => {
120
- // Ignore late callbacks of progress updates after cancelling
121
- if (job.status === 'failed' || job.status === 'done') {
122
- return job;
123
- }
124
- return {
125
- ...job,
126
- status: 'running',
127
- progress,
128
- message,
129
- };
130
- });
131
- },
132
- addCleanupCallback: (cleanup) => {
133
- jobCleanups.push(cleanup);
134
- },
135
- });
136
- log_1.Log.info(chalk_1.chalk.gray('╰─ Done in ' + (Date.now() - startTime) + 'ms.'));
137
- const { unwatch } = (0, file_watcher_1.installFileWatcher)({
138
- file: path_1.default.resolve(remotionRoot, nextJob.outName),
139
- onChange: (type) => {
140
- if (type === 'created') {
141
- updateJob(nextJob.id, (job) => ({
142
- ...job,
143
- deletedOutputLocation: false,
144
- }));
145
- }
146
- if (type === 'deleted') {
147
- updateJob(nextJob.id, (job) => ({
148
- ...job,
149
- deletedOutputLocation: true,
150
- }));
151
- }
152
- },
153
- });
154
- updateJob(nextJob.id, (job) => ({
155
- ...job,
156
- status: 'done',
157
- cleanup: [...job.cleanup, unwatch],
158
- }));
159
- }
160
- catch (err) {
161
- // TODO: Tell to look in preview to find the error
162
- log_1.Log.error(chalk_1.chalk.gray('╰─ Render failed:'), err);
163
- updateJob(nextJob.id, (job) => {
164
- return {
165
- ...job,
166
- status: 'failed',
167
- error: {
168
- message: err.message,
169
- stack: err.stack,
170
- },
171
- };
172
- });
173
- (0, live_events_1.waitForLiveEventsListener)().then((listener) => {
174
- listener.sendEventToClient({
175
- type: 'render-job-failed',
176
- compositionId: nextJob.compositionId,
177
- error: err,
178
- });
179
- });
180
- }
181
- finally {
182
- await Promise.all(jobCleanups.map((c) => c()));
183
- }
184
- };
185
- exports.processJobIfPossible = processJobIfPossible;
@@ -1,3 +0,0 @@
1
- import type { ApiHandler } from '../api-types';
2
- import type { AddRenderRequest } from '../render-queue/job';
3
- export declare const handleAddRender: ApiHandler<AddRenderRequest, undefined>;
@@ -1,69 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.handleAddRender = void 0;
4
- const renderer_1 = require("@remotion/renderer");
5
- const queue_1 = require("../render-queue/queue");
6
- const handleAddRender = ({ input, entryPoint, remotionRoot, }) => {
7
- const id = String(Math.random()).replace('0.', '');
8
- if (input.type === 'video') {
9
- (0, queue_1.addJob)({
10
- entryPoint,
11
- remotionRoot,
12
- job: {
13
- cleanup: [],
14
- codec: input.codec,
15
- audioCodec: input.audioCodec,
16
- compositionId: input.compositionId,
17
- deletedOutputLocation: false,
18
- type: 'video',
19
- status: 'idle',
20
- id,
21
- imageFormat: input.imageFormat,
22
- outName: input.outName,
23
- quality: input.quality,
24
- scale: input.scale,
25
- startedAt: Date.now(),
26
- verbose: input.verbose,
27
- cancelToken: (0, renderer_1.makeCancelSignal)(),
28
- concurrency: input.concurrency,
29
- crf: input.crf,
30
- endFrame: input.endFrame,
31
- startFrame: input.startFrame,
32
- muted: input.muted,
33
- enforceAudioTrack: input.enforceAudioTrack,
34
- proResProfile: input.proResProfile,
35
- pixelFormat: input.pixelFormat,
36
- audioBitrate: input.audioBitrate,
37
- videoBitrate: input.videoBitrate,
38
- everyNthFrame: input.everyNthFrame,
39
- numberOfGifLoops: input.numberOfGifLoops,
40
- delayRenderTimeout: input.delayRenderTimeout,
41
- disallowParallelEncoding: input.disallowParallelEncoding,
42
- },
43
- });
44
- }
45
- if (input.type === 'still') {
46
- (0, queue_1.addJob)({
47
- job: {
48
- compositionId: input.compositionId,
49
- id: String(Math.random()).replace('0.', ''),
50
- startedAt: Date.now(),
51
- type: 'still',
52
- outName: input.outName,
53
- status: 'idle',
54
- imageFormat: input.imageFormat,
55
- quality: input.quality,
56
- frame: input.frame,
57
- scale: input.scale,
58
- cleanup: [],
59
- deletedOutputLocation: false,
60
- verbose: input.verbose,
61
- cancelToken: (0, renderer_1.makeCancelSignal)(),
62
- },
63
- entryPoint,
64
- remotionRoot,
65
- });
66
- }
67
- return Promise.resolve(undefined);
68
- };
69
- exports.handleAddRender = handleAddRender;
@@ -1,3 +0,0 @@
1
- import type { ApiHandler } from '../api-types';
2
- import type { CancelRenderRequest, CancelRenderResponse } from '../render-queue/job';
3
- export declare const handleCancelRender: ApiHandler<CancelRenderRequest, CancelRenderResponse>;
@@ -1,9 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.handleCancelRender = void 0;
4
- const queue_1 = require("../render-queue/queue");
5
- const handleCancelRender = ({ input: { jobId } }) => {
6
- (0, queue_1.cancelJob)(jobId);
7
- return Promise.resolve({});
8
- };
9
- exports.handleCancelRender = handleCancelRender;
@@ -1,3 +0,0 @@
1
- import type { ApiHandler } from '../api-types';
2
- import type { OpenInFileExplorerRequest } from '../render-queue/job';
3
- export declare const handleOpenInFileExplorer: ApiHandler<OpenInFileExplorerRequest, void>;
@@ -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,47 +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 renderVideoFlow: ({ 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, disallowParallelEncoding, }: {
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 | null;
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
- disallowParallelEncoding: boolean;
47
- }) => Promise<void>;
@@ -1,280 +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.renderVideoFlow = 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
- const renderVideoFlow = 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, disallowParallelEncoding, }) => {
26
- var _a;
27
- const downloads = [];
28
- const downloadMap = renderer_1.RenderInternals.makeDownloadMap();
29
- addCleanupCallback(() => renderer_1.RenderInternals.cleanDownloadMap(downloadMap));
30
- (0, cleanup_before_quit_1.registerCleanupJob)(() => renderer_1.RenderInternals.cleanDownloadMap(downloadMap));
31
- log_1.Log.verboseAdvanced({ indent, logLevel }, 'Browser executable: ', browserExecutable);
32
- log_1.Log.verboseAdvanced({ indent, logLevel }, 'Asset dirs', downloadMap.assetDir);
33
- const browserInstance = (0, renderer_1.openBrowser)(browser, {
34
- browserExecutable,
35
- shouldDumpIo: renderer_1.RenderInternals.isEqualOrBelowLogLevel(logLevel, 'verbose'),
36
- chromiumOptions,
37
- forceDeviceScaleFactor: scale,
38
- indentationString: indent ? log_1.INDENT_TOKEN + ' ' : '',
39
- });
40
- const steps = [
41
- renderer_1.RenderInternals.isServeUrl(fullEntryPoint) ? null : 'bundling',
42
- 'rendering',
43
- shouldOutputImageSequence ? null : 'stitching',
44
- ].filter(truthy_1.truthy);
45
- const { urlOrBundle, cleanup: cleanupBundle } = await (0, setup_cache_1.bundleOnCliOrTakeServeUrl)({
46
- fullPath: fullEntryPoint,
47
- remotionRoot,
48
- steps,
49
- publicDir,
50
- // TODO: Implement onProgress
51
- onProgress: () => undefined,
52
- indentOutput: indent,
53
- logLevel,
54
- });
55
- (0, cleanup_before_quit_1.registerCleanupJob)(() => cleanupBundle());
56
- addCleanupCallback(() => cleanupBundle());
57
- const onDownload = (src) => {
58
- const id = Math.random();
59
- const download = {
60
- id,
61
- name: src,
62
- progress: 0,
63
- downloaded: 0,
64
- totalBytes: null,
65
- };
66
- downloads.push(download);
67
- updateRenderProgress();
68
- return ({ percent, downloaded, totalSize }) => {
69
- download.progress = percent;
70
- download.totalBytes = totalSize;
71
- download.downloaded = downloaded;
72
- updateRenderProgress();
73
- };
74
- };
75
- const puppeteerInstance = await browserInstance;
76
- (0, cleanup_before_quit_1.registerCleanupJob)(() => puppeteerInstance.close(false));
77
- addCleanupCallback(() => puppeteerInstance.close(false));
78
- const comps = await (0, renderer_1.getCompositions)(urlOrBundle, {
79
- inputProps,
80
- puppeteerInstance,
81
- envVariables,
82
- timeoutInMilliseconds: puppeteerTimeout,
83
- chromiumOptions,
84
- browserExecutable,
85
- downloadMap,
86
- port,
87
- });
88
- const { compositionId, config, reason, argsAfterComposition } = await (0, get_composition_with_dimension_override_1.getCompositionWithDimensionOverride)({
89
- validCompositions: comps,
90
- height,
91
- width,
92
- args: remainingArgs,
93
- compositionIdFromUi,
94
- });
95
- const { codec, reason: codecReason } = (0, get_final_output_codec_1.getFinalOutputCodec)({
96
- cliFlag: parse_command_line_1.parsedCli.codec,
97
- configFile: (_a = config_1.ConfigInternals.getOutputCodecOrUndefined()) !== null && _a !== void 0 ? _a : null,
98
- downloadName: null,
99
- outName: (0, user_passed_output_location_1.getUserPassedOutputLocation)(argsAfterComposition),
100
- uiCodec,
101
- });
102
- renderer_1.RenderInternals.validateEvenDimensionsWithCodec({
103
- width: config.width,
104
- height: config.height,
105
- codec,
106
- scale,
107
- });
108
- const relativeOutputLocation = (0, get_filename_1.getOutputFilename)({
109
- imageSequence: shouldOutputImageSequence,
110
- compositionName: compositionId,
111
- defaultExtension: renderer_1.RenderInternals.getFileExtensionFromCodec(codec, audioCodec),
112
- args: argsAfterComposition,
113
- indent,
114
- fromUi: outputLocationFromUI,
115
- logLevel,
116
- });
117
- log_1.Log.infoAdvanced({ indent, logLevel }, chalk_1.chalk.gray(`Entry point = ${fullEntryPoint} (${entryPointReason}), Composition = ${compositionId} (${reason}), Codec = ${codec} (${codecReason}), Output = ${relativeOutputLocation}`));
118
- const absoluteOutputFile = (0, get_cli_options_1.getAndValidateAbsoluteOutputFile)(relativeOutputLocation, overwrite);
119
- const outputDir = shouldOutputImageSequence
120
- ? absoluteOutputFile
121
- : await fs_1.default.promises.mkdtemp(path_1.default.join(os_1.default.tmpdir(), 'react-motion-render'));
122
- log_1.Log.verboseAdvanced({ indent, logLevel }, 'Output dir', outputDir);
123
- const renderProgress = (0, progress_bar_1.createOverwriteableCliOutput)({
124
- quiet,
125
- cancelSignal,
126
- });
127
- const realFrameRange = renderer_1.RenderInternals.getRealFrameRange(config.durationInFrames, frameRange);
128
- const totalFrames = renderer_1.RenderInternals.getFramesToRender(realFrameRange, everyNthFrame);
129
- let encodedFrames = 0;
130
- let renderedFrames = 0;
131
- let encodedDoneIn = null;
132
- let renderedDoneIn = null;
133
- let stitchStage = 'encoding';
134
- const actualConcurrency = renderer_1.RenderInternals.getActualConcurrency(concurrency);
135
- const updateRenderProgress = () => {
136
- if (totalFrames.length === 0) {
137
- throw new Error('totalFrames should not be 0');
138
- }
139
- const { output, message, progress } = (0, progress_bar_1.makeRenderingAndStitchingProgress)({
140
- rendering: {
141
- frames: renderedFrames,
142
- totalFrames: totalFrames.length,
143
- concurrency: actualConcurrency,
144
- doneIn: renderedDoneIn,
145
- steps,
146
- },
147
- stitching: shouldOutputImageSequence
148
- ? null
149
- : {
150
- doneIn: encodedDoneIn,
151
- frames: encodedFrames,
152
- stage: stitchStage,
153
- steps,
154
- totalFrames: totalFrames.length,
155
- codec,
156
- },
157
- downloads,
158
- bundling: {
159
- message: 'Bundled',
160
- progress: 1,
161
- },
162
- }, indent);
163
- onProgress({ progress, message });
164
- return renderProgress.update(output);
165
- };
166
- const imageFormat = (0, image_formats_1.getVideoImageFormat)({
167
- codec: shouldOutputImageSequence ? undefined : codec,
168
- uiImageFormat,
169
- });
170
- if (shouldOutputImageSequence) {
171
- fs_1.default.mkdirSync(absoluteOutputFile, {
172
- recursive: true,
173
- });
174
- if (imageFormat === 'none') {
175
- throw new Error(`Cannot render an image sequence with a codec that renders no images. codec = ${codec}, imageFormat = ${imageFormat}`);
176
- }
177
- await (0, renderer_1.renderFrames)({
178
- imageFormat,
179
- inputProps,
180
- onFrameUpdate: (rendered) => {
181
- renderedFrames = rendered;
182
- updateRenderProgress();
183
- },
184
- onStart: () => undefined,
185
- onDownload: (src) => {
186
- if (src.startsWith('data:')) {
187
- log_1.Log.infoAdvanced({ indent, logLevel }, '\nWriting Data URL to file: ', src.substring(0, 30) + '...');
188
- }
189
- else {
190
- log_1.Log.infoAdvanced({ indent, logLevel }, '\nDownloading asset... ', src);
191
- }
192
- },
193
- cancelSignal: cancelSignal !== null && cancelSignal !== void 0 ? cancelSignal : undefined,
194
- outputDir,
195
- serveUrl: urlOrBundle,
196
- dumpBrowserLogs: renderer_1.RenderInternals.isEqualOrBelowLogLevel(logLevel, 'verbose'),
197
- everyNthFrame,
198
- envVariables,
199
- frameRange,
200
- concurrency: actualConcurrency,
201
- puppeteerInstance,
202
- quality,
203
- timeoutInMilliseconds: puppeteerTimeout,
204
- chromiumOptions,
205
- scale,
206
- browserExecutable,
207
- port,
208
- downloadMap,
209
- composition: config,
210
- });
211
- updateRenderProgress();
212
- process.stdout.write('\n');
213
- log_1.Log.infoAdvanced({ indent, logLevel }, chalk_1.chalk.cyan(`▶ ${absoluteOutputFile}`));
214
- }
215
- const { slowestFrames } = await (0, renderer_1.renderMedia)({
216
- outputLocation: absoluteOutputFile,
217
- composition: {
218
- ...config,
219
- width: width !== null && width !== void 0 ? width : config.width,
220
- height: height !== null && height !== void 0 ? height : config.height,
221
- },
222
- crf,
223
- envVariables,
224
- frameRange,
225
- inputProps,
226
- overwrite,
227
- pixelFormat,
228
- proResProfile,
229
- quality,
230
- dumpBrowserLogs: renderer_1.RenderInternals.isEqualOrBelowLogLevel(logLevel, 'verbose'),
231
- chromiumOptions,
232
- timeoutInMilliseconds: config_1.ConfigInternals.getCurrentPuppeteerTimeout(),
233
- scale,
234
- port,
235
- numberOfGifLoops,
236
- everyNthFrame,
237
- verbose: renderer_1.RenderInternals.isEqualOrBelowLogLevel(logLevel, 'verbose'),
238
- muted,
239
- enforceAudioTrack,
240
- browserExecutable,
241
- ffmpegOverride,
242
- concurrency,
243
- serveUrl: urlOrBundle,
244
- codec,
245
- audioBitrate,
246
- videoBitrate,
247
- onProgress: (update) => {
248
- encodedDoneIn = update.encodedDoneIn;
249
- encodedFrames = update.encodedFrames;
250
- renderedDoneIn = update.renderedDoneIn;
251
- stitchStage = update.stitchStage;
252
- renderedFrames = update.renderedFrames;
253
- updateRenderProgress();
254
- },
255
- puppeteerInstance,
256
- onDownload,
257
- internal: {
258
- onCtrlCExit: cleanup_before_quit_1.registerCleanupJob,
259
- downloadMap,
260
- },
261
- cancelSignal: cancelSignal !== null && cancelSignal !== void 0 ? cancelSignal : undefined,
262
- printLog: (...str) => log_1.Log.verboseAdvanced({ indent, logLevel }, ...str),
263
- audioCodec,
264
- preferLossless: false,
265
- imageFormat,
266
- disallowParallelEncoding,
267
- });
268
- log_1.Log.verboseAdvanced({ indent, logLevel });
269
- log_1.Log.verboseAdvanced({ indent, logLevel }, `Slowest frames:`);
270
- slowestFrames.forEach(({ frame, time }) => {
271
- log_1.Log.verboseAdvanced({ indent, logLevel }, `Frame ${frame} (${time.toFixed(3)}ms)`);
272
- });
273
- updateRenderProgress();
274
- process.stdout.write('\n');
275
- log_1.Log.infoAdvanced({ indent, logLevel }, chalk_1.chalk.cyan(`▶ ${absoluteOutputFile}`));
276
- for (const line of renderer_1.RenderInternals.perf.getPerf()) {
277
- log_1.Log.verboseAdvanced({ indent, logLevel }, line);
278
- }
279
- };
280
- exports.renderVideoFlow = renderVideoFlow;