@remotion/cli 3.3.36 → 3.3.37

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 (60) hide show
  1. package/dist/config/log.d.ts +1 -1
  2. package/dist/editor/components/Modals.js +1 -1
  3. package/dist/editor/components/NewComposition/ComboBox.js +8 -2
  4. package/dist/editor/components/NewComposition/InputDragger.js +1 -0
  5. package/dist/editor/components/RenderButton.js +29 -8
  6. package/dist/editor/components/RenderModal/CrfSetting.d.ts +2 -2
  7. package/dist/editor/components/RenderModal/CrfSetting.js +11 -24
  8. package/dist/editor/components/RenderModal/EveryNthFrameSetting.d.ts +5 -0
  9. package/dist/editor/components/RenderModal/EveryNthFrameSetting.js +9 -0
  10. package/dist/editor/components/RenderModal/NumberOfLoopsSetting.d.ts +5 -0
  11. package/dist/editor/components/RenderModal/NumberOfLoopsSetting.js +26 -0
  12. package/dist/editor/components/RenderModal/NumberSetting.d.ts +9 -0
  13. package/dist/editor/components/RenderModal/NumberSetting.js +26 -0
  14. package/dist/editor/components/RenderModal/RenderModal.d.ts +19 -5
  15. package/dist/editor/components/RenderModal/RenderModal.js +225 -181
  16. package/dist/editor/components/RenderModal/RenderModalAdvanced.d.ts +11 -0
  17. package/dist/editor/components/RenderModal/RenderModalAdvanced.js +15 -0
  18. package/dist/editor/components/RenderModal/RenderModalAudio.d.ts +13 -0
  19. package/dist/editor/components/RenderModal/RenderModalAudio.js +22 -0
  20. package/dist/editor/components/RenderModal/RenderModalBasic.d.ts +22 -0
  21. package/dist/editor/components/RenderModal/RenderModalBasic.js +70 -0
  22. package/dist/editor/components/RenderModal/RenderModalGeneral.d.ts +0 -0
  23. package/dist/editor/components/RenderModal/RenderModalGeneral.js +1 -0
  24. package/dist/editor/components/RenderModal/RenderModalGif.d.ts +9 -0
  25. package/dist/editor/components/RenderModal/RenderModalGif.js +16 -0
  26. package/dist/editor/components/RenderModal/RenderModalHr.d.ts +2 -0
  27. package/dist/editor/components/RenderModal/RenderModalHr.js +18 -0
  28. package/dist/editor/components/RenderModal/RenderModalPicture.d.ts +28 -0
  29. package/dist/editor/components/RenderModal/RenderModalPicture.js +51 -0
  30. package/dist/editor/components/RenderModal/ScaleSetting.js +2 -18
  31. package/dist/editor/components/RenderModal/human-readable-codec.d.ts +2 -0
  32. package/dist/editor/components/RenderModal/human-readable-codec.js +36 -0
  33. package/dist/editor/components/RenderModal/layout.d.ts +1 -0
  34. package/dist/editor/components/RenderModal/layout.js +8 -2
  35. package/dist/editor/components/RenderQueue/RenderQueueRemoveItem.js +2 -1
  36. package/dist/editor/components/RenderQueue/actions.d.ts +15 -2
  37. package/dist/editor/components/RenderQueue/actions.js +14 -1
  38. package/dist/editor/components/RenderToolbarIcon.js +30 -8
  39. package/dist/editor/components/SegmentedControl.js +1 -1
  40. package/dist/editor/components/SidebarContent.js +2 -1
  41. package/dist/editor/icons/audio.d.ts +2 -0
  42. package/dist/editor/icons/audio.js +6 -0
  43. package/dist/editor/icons/file.d.ts +2 -0
  44. package/dist/editor/icons/file.js +6 -0
  45. package/dist/editor/icons/frame.d.ts +2 -0
  46. package/dist/editor/icons/frame.js +6 -0
  47. package/dist/editor/icons/gear.d.ts +2 -0
  48. package/dist/editor/icons/gear.js +6 -0
  49. package/dist/editor/icons/gif.d.ts +2 -0
  50. package/dist/editor/icons/gif.js +6 -0
  51. package/dist/get-cli-options.d.ts +1 -1
  52. package/dist/index.d.ts +1 -1
  53. package/dist/preview-server/render-queue/get-default-video-contexts.d.ts +1 -1
  54. package/dist/preview-server/render-queue/job.d.ts +27 -1
  55. package/dist/preview-server/render-queue/make-retry-payload.js +52 -10
  56. package/dist/preview-server/render-queue/process-video.js +16 -9
  57. package/dist/preview-server/routes/add-render.js +13 -0
  58. package/dist/render-flows/render.d.ts +14 -4
  59. package/dist/render-flows/render.js +40 -13
  60. package/package.json +7 -7
@@ -1,4 +1,4 @@
1
- import type { Codec, makeCancelSignal, StillImageFormat } from '@remotion/renderer';
1
+ import type { Codec, makeCancelSignal, PixelFormat, ProResProfile, StillImageFormat } from '@remotion/renderer';
2
2
  declare type RenderJobDynamicStatus = {
3
3
  status: 'done';
4
4
  } | {
@@ -30,6 +30,19 @@ declare type RenderJobDynamicFields = {
30
30
  quality: number | null;
31
31
  scale: number;
32
32
  codec: Codec;
33
+ concurrency: number;
34
+ crf: number | null;
35
+ startFrame: number;
36
+ endFrame: number;
37
+ muted: boolean;
38
+ enforceAudioTrack: boolean;
39
+ proResProfile: ProResProfile | null;
40
+ pixelFormat: PixelFormat;
41
+ audioBitrate: string | null;
42
+ videoBitrate: string | null;
43
+ everyNthFrame: number;
44
+ numberOfGifLoops: number | null;
45
+ delayRenderTimeout: number;
33
46
  };
34
47
  export declare type RenderJob = {
35
48
  startedAt: number;
@@ -57,6 +70,19 @@ declare type AddRenderRequestDynamicFields = {
57
70
  quality: number | null;
58
71
  scale: number;
59
72
  verbose: boolean;
73
+ concurrency: number;
74
+ crf: number | null;
75
+ startFrame: number;
76
+ endFrame: number;
77
+ muted: boolean;
78
+ enforceAudioTrack: boolean;
79
+ proResProfile: ProResProfile | null;
80
+ pixelFormat: PixelFormat;
81
+ audioBitrate: string | null;
82
+ videoBitrate: string | null;
83
+ everyNthFrame: number;
84
+ numberOfGifLoops: number | null;
85
+ delayRenderTimeout: number;
60
86
  };
61
87
  export declare type CancelRenderRequest = {
62
88
  jobId: string;
@@ -1,35 +1,77 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.makeRetryPayload = void 0;
4
+ const get_default_video_contexts_1 = require("./get-default-video-contexts");
4
5
  const makeRetryPayload = (job) => {
6
+ var _a, _b, _c;
7
+ const defaults = window.remotion_renderDefaults;
8
+ if (!defaults) {
9
+ throw new Error('defaults not set');
10
+ }
5
11
  if (job.type === 'still') {
12
+ const { initialAudioCodec, initialRenderType, initialVideoCodec } = (0, get_default_video_contexts_1.getDefaultCodecs)({
13
+ defaultCodec: defaults.codec,
14
+ isStill: true,
15
+ });
6
16
  return {
7
17
  type: 'render',
8
18
  compositionId: job.compositionId,
9
19
  initialFrame: job.frame,
10
- initialImageFormat: job.imageFormat,
11
- initialQuality: job.quality,
20
+ initialStillImageFormat: job.imageFormat,
21
+ // TODO: Take from config
22
+ initialVideoImageFormat: 'jpeg',
23
+ initialQuality: (_a = job.quality) !== null && _a !== void 0 ? _a : defaults.quality,
12
24
  initialOutName: job.outName,
13
25
  initialScale: job.scale,
14
26
  initialVerbose: job.verbose,
15
- initialRenderType: 'still',
16
- // TODO: take initial codec from config file
17
- initialCodec: 'h264',
27
+ initialAudioCodec,
28
+ initialRenderType,
29
+ initialVideoCodec,
30
+ initialConcurrency: defaults.concurrency,
31
+ maxConcurrency: defaults.maxConcurrency,
32
+ minConcurrency: defaults.minConcurrency,
33
+ initialMuted: defaults.muted,
34
+ initialEnforceAudioTrack: defaults.enforceAudioTrack,
35
+ initialProResProfile: defaults.proResProfile,
36
+ initialPixelFormat: defaults.pixelFormat,
37
+ initialAudioBitrate: defaults.audioBitrate,
38
+ initialVideoBitrate: defaults.videoBitrate,
39
+ initialEveryNthFrame: defaults.everyNthFrame,
40
+ initialNumberOfGifLoops: defaults.numberOfGifLoops,
41
+ initialDelayRenderTimeout: defaults.delayRenderTimeout,
18
42
  };
19
43
  }
20
44
  if (job.type === 'video') {
21
- // TODO: Implement correct retry mechanism for video
45
+ const { initialAudioCodec, initialRenderType, initialVideoCodec } = (0, get_default_video_contexts_1.getDefaultCodecs)({
46
+ defaultCodec: defaults.codec,
47
+ isStill: false,
48
+ });
22
49
  return {
23
50
  type: 'render',
24
51
  compositionId: job.compositionId,
25
- initialImageFormat: job.imageFormat,
26
- initialQuality: job.quality,
52
+ // TODO: Take from config
53
+ initialStillImageFormat: 'png',
54
+ initialVideoImageFormat: job.imageFormat,
55
+ initialQuality: (_b = job.quality) !== null && _b !== void 0 ? _b : defaults.quality,
27
56
  initialOutName: job.outName,
28
57
  initialScale: job.scale,
29
58
  initialVerbose: job.verbose,
30
59
  initialFrame: 0,
31
- initialRenderType: 'video',
32
- initialCodec: job.codec,
60
+ initialConcurrency: job.concurrency,
61
+ maxConcurrency: defaults.maxConcurrency,
62
+ minConcurrency: defaults.minConcurrency,
63
+ initialMuted: job.muted,
64
+ initialAudioCodec,
65
+ initialEnforceAudioTrack: job.enforceAudioTrack,
66
+ initialRenderType,
67
+ initialVideoCodec,
68
+ initialProResProfile: (_c = job.proResProfile) !== null && _c !== void 0 ? _c : defaults.proResProfile,
69
+ initialPixelFormat: job.pixelFormat,
70
+ initialAudioBitrate: job.audioBitrate,
71
+ initialVideoBitrate: job.videoBitrate,
72
+ initialEveryNthFrame: job.everyNthFrame,
73
+ initialNumberOfGifLoops: job.numberOfGifLoops,
74
+ initialDelayRenderTimeout: job.delayRenderTimeout,
33
75
  };
34
76
  }
35
77
  throw new Error(`Job ${JSON.stringify(job)} Not implemented`);
@@ -5,11 +5,12 @@ const convert_entry_point_to_serve_url_1 = require("../../convert-entry-point-to
5
5
  const get_cli_options_1 = require("../../get-cli-options");
6
6
  const render_1 = require("../../render-flows/render");
7
7
  const processVideoJob = async ({ job, remotionRoot, entryPoint, onProgress, addCleanupCallback, }) => {
8
- var _a;
8
+ var _a, _b;
9
9
  if (job.type !== 'video') {
10
10
  throw new Error('Expected video job');
11
11
  }
12
- const { publicDir, browserExecutable, ffmpegExecutable, ffprobeExecutable, chromiumOptions, envVariables, inputProps, port, browser, puppeteerTimeout, } = await (0, get_cli_options_1.getCliOptions)({
12
+ // TODO: Change until none can be derived from UI
13
+ const { publicDir, browserExecutable, ffmpegExecutable, ffprobeExecutable, chromiumOptions, envVariables, inputProps, port, browser, ffmpegOverride, } = await (0, get_cli_options_1.getCliOptions)({
13
14
  isLambda: false,
14
15
  type: 'still',
15
16
  remotionRoot,
@@ -30,7 +31,7 @@ const processVideoJob = async ({ job, remotionRoot, entryPoint, onProgress, addC
30
31
  overwrite: true,
31
32
  port,
32
33
  publicDir,
33
- puppeteerTimeout,
34
+ puppeteerTimeout: job.delayRenderTimeout,
34
35
  quality: (_a = job.quality) !== null && _a !== void 0 ? _a : undefined,
35
36
  remainingArgs: [],
36
37
  scale: job.scale,
@@ -40,12 +41,9 @@ const processVideoJob = async ({ job, remotionRoot, entryPoint, onProgress, addC
40
41
  logLevel: job.verbose ? 'verbose' : 'info',
41
42
  onProgress,
42
43
  indent: true,
43
- // TODO: Make configurable
44
- concurrency: null,
45
- // TODO: Make configurable
46
- everyNthFrame: 1,
47
- // TODO: Make configurable
48
- frameRange: null,
44
+ concurrency: job.concurrency,
45
+ everyNthFrame: job.everyNthFrame,
46
+ frameRange: [job.startFrame, job.endFrame],
49
47
  quiet: false,
50
48
  shouldOutputImageSequence: false,
51
49
  addCleanupCallback,
@@ -53,6 +51,15 @@ const processVideoJob = async ({ job, remotionRoot, entryPoint, onProgress, addC
53
51
  uiCodec: job.codec,
54
52
  uiImageFormat: job.imageFormat,
55
53
  cancelSignal: job.cancelToken.cancelSignal,
54
+ crf: job.crf,
55
+ ffmpegOverride,
56
+ audioBitrate: job.audioBitrate,
57
+ muted: job.muted,
58
+ enforceAudioTrack: job.enforceAudioTrack,
59
+ proResProfile: (_b = job.proResProfile) !== null && _b !== void 0 ? _b : undefined,
60
+ pixelFormat: job.pixelFormat,
61
+ videoBitrate: job.videoBitrate,
62
+ numberOfGifLoops: job.numberOfGifLoops,
56
63
  });
57
64
  // TODO: Accept CLI options
58
65
  };
@@ -24,6 +24,19 @@ const handleAddRender = ({ input, entryPoint, remotionRoot, }) => {
24
24
  startedAt: Date.now(),
25
25
  verbose: input.verbose,
26
26
  cancelToken: (0, renderer_1.makeCancelSignal)(),
27
+ concurrency: input.concurrency,
28
+ crf: input.crf,
29
+ endFrame: input.endFrame,
30
+ startFrame: input.startFrame,
31
+ muted: input.muted,
32
+ enforceAudioTrack: input.enforceAudioTrack,
33
+ proResProfile: input.proResProfile,
34
+ pixelFormat: input.pixelFormat,
35
+ audioBitrate: input.audioBitrate,
36
+ videoBitrate: input.videoBitrate,
37
+ everyNthFrame: input.everyNthFrame,
38
+ numberOfGifLoops: input.numberOfGifLoops,
39
+ delayRenderTimeout: input.delayRenderTimeout,
27
40
  },
28
41
  });
29
42
  }
@@ -1,6 +1,7 @@
1
- import type { Browser, BrowserExecutable, CancelSignal, ChromiumOptions, Codec, FfmpegExecutable, FrameRange, ImageFormat, LogLevel } from '@remotion/renderer';
1
+ import type { Browser, BrowserExecutable, CancelSignal, ChromiumOptions, Codec, Crf, FfmpegExecutable, FfmpegOverrideFn, FrameRange, ImageFormat, LogLevel, PixelFormat, ProResProfile } from '@remotion/renderer';
2
+ import type { Loop } from '../config/number-of-gif-loops';
2
3
  import type { JobProgressCallback } from '../preview-server/render-queue/job';
3
- export declare const renderCompFlow: ({ remotionRoot, fullEntryPoint, ffmpegExecutable, ffprobeExecutable, indent, logLevel, browserExecutable, browser, chromiumOptions, scale, shouldOutputImageSequence, publicDir, inputProps, envVariables, puppeteerTimeout, port, height, width, remainingArgs, compositionIdFromUi, entryPointReason, overwrite, quiet, concurrency, frameRange, everyNthFrame, configFileImageFormat, outputLocationFromUI, quality, onProgress, addCleanupCallback, uiCodec, uiImageFormat, cancelSignal, }: {
4
+ export declare const renderCompFlow: ({ remotionRoot, fullEntryPoint, ffmpegExecutable, ffprobeExecutable, indent, logLevel, browserExecutable, browser, chromiumOptions, scale, shouldOutputImageSequence, publicDir, inputProps, envVariables, puppeteerTimeout, port, height, width, remainingArgs, compositionIdFromUi, entryPointReason, overwrite, quiet, concurrency, frameRange, everyNthFrame, configFileImageFormat, outputLocationFromUI, quality, onProgress, addCleanupCallback, cancelSignal, crf, uiCodec, uiImageFormat, ffmpegOverride, audioBitrate, muted, enforceAudioTrack, proResProfile, pixelFormat, videoBitrate, numberOfGifLoops, }: {
4
5
  remotionRoot: string;
5
6
  fullEntryPoint: string;
6
7
  entryPointReason: string;
@@ -32,7 +33,16 @@ export declare const renderCompFlow: ({ remotionRoot, fullEntryPoint, ffmpegExec
32
33
  quality: number | undefined;
33
34
  onProgress: JobProgressCallback;
34
35
  addCleanupCallback: (cb: () => Promise<void>) => void;
35
- uiCodec: Codec | null;
36
- uiImageFormat: ImageFormat | null;
36
+ crf: Crf | null;
37
37
  cancelSignal: CancelSignal | null;
38
+ uiCodec: Codec | null;
39
+ uiImageFormat: 'png' | 'jpeg' | 'none' | null;
40
+ ffmpegOverride: FfmpegOverrideFn;
41
+ audioBitrate: string | null;
42
+ videoBitrate: string | null;
43
+ muted: boolean;
44
+ enforceAudioTrack: boolean;
45
+ proResProfile: ProResProfile | undefined;
46
+ pixelFormat: PixelFormat;
47
+ numberOfGifLoops: Loop;
38
48
  }) => Promise<void>;
@@ -14,7 +14,6 @@ const get_cli_options_1 = require("../get-cli-options");
14
14
  const get_composition_with_dimension_override_1 = require("../get-composition-with-dimension-override");
15
15
  const get_filename_1 = require("../get-filename");
16
16
  const get_final_output_codec_1 = require("../get-final-output-codec");
17
- const get_render_media_options_1 = require("../get-render-media-options");
18
17
  const image_formats_1 = require("../image-formats");
19
18
  const log_1 = require("../log");
20
19
  const parse_command_line_1 = require("../parse-command-line");
@@ -22,7 +21,7 @@ const progress_bar_1 = require("../progress-bar");
22
21
  const setup_cache_1 = require("../setup-cache");
23
22
  const truthy_1 = require("../truthy");
24
23
  const user_passed_output_location_1 = require("../user-passed-output-location");
25
- const renderCompFlow = async ({ remotionRoot, fullEntryPoint, ffmpegExecutable, ffprobeExecutable, indent, logLevel, browserExecutable, browser, chromiumOptions, scale, shouldOutputImageSequence, publicDir, inputProps, envVariables, puppeteerTimeout, port, height, width, remainingArgs, compositionIdFromUi, entryPointReason, overwrite, quiet, concurrency, frameRange, everyNthFrame, configFileImageFormat, outputLocationFromUI, quality, onProgress, addCleanupCallback, uiCodec, uiImageFormat, cancelSignal, }) => {
24
+ const renderCompFlow = async ({ remotionRoot, fullEntryPoint, ffmpegExecutable, ffprobeExecutable, indent, logLevel, browserExecutable, browser, chromiumOptions, scale, shouldOutputImageSequence, publicDir, inputProps, envVariables, puppeteerTimeout, port, height, width, remainingArgs, compositionIdFromUi, entryPointReason, overwrite, quiet, concurrency, frameRange, everyNthFrame, configFileImageFormat, outputLocationFromUI, quality, onProgress, addCleanupCallback, cancelSignal, crf, uiCodec, uiImageFormat, ffmpegOverride, audioBitrate, muted, enforceAudioTrack, proResProfile, pixelFormat, videoBitrate, numberOfGifLoops, }) => {
26
25
  var _a;
27
26
  const downloads = [];
28
27
  const downloadMap = renderer_1.RenderInternals.makeDownloadMap();
@@ -101,7 +100,7 @@ const renderCompFlow = async ({ remotionRoot, fullEntryPoint, ffmpegExecutable,
101
100
  outName: (0, user_passed_output_location_1.getUserPassedOutputLocation)(argsAfterComposition),
102
101
  uiCodec,
103
102
  });
104
- (0, get_cli_options_1.validateFfmpegCanUseCodec)(codec, remotionRoot);
103
+ await (0, get_cli_options_1.validateFfmpegCanUseCodec)(codec, remotionRoot);
105
104
  renderer_1.RenderInternals.validateEvenDimensionsWithCodec({
106
105
  width: config.width,
107
106
  height: config.height,
@@ -112,7 +111,7 @@ const renderCompFlow = async ({ remotionRoot, fullEntryPoint, ffmpegExecutable,
112
111
  codec,
113
112
  imageSequence: shouldOutputImageSequence,
114
113
  compositionName: compositionId,
115
- defaultExtension: renderer_1.RenderInternals.getFileExtensionFromCodec(codec, 'final'),
114
+ defaultExtension: renderer_1.RenderInternals.getFileExtensionFromCodec(codec),
116
115
  args: argsAfterComposition,
117
116
  indent,
118
117
  fromUi: outputLocationFromUI,
@@ -135,6 +134,7 @@ const renderCompFlow = async ({ remotionRoot, fullEntryPoint, ffmpegExecutable,
135
134
  let encodedDoneIn = null;
136
135
  let renderedDoneIn = null;
137
136
  let stitchStage = 'encoding';
137
+ const actualConcurrency = renderer_1.RenderInternals.getActualConcurrency(concurrency);
138
138
  const updateRenderProgress = () => {
139
139
  if (totalFrames.length === 0) {
140
140
  throw new Error('totalFrames should not be 0');
@@ -143,7 +143,7 @@ const renderCompFlow = async ({ remotionRoot, fullEntryPoint, ffmpegExecutable,
143
143
  rendering: {
144
144
  frames: renderedFrames,
145
145
  totalFrames: totalFrames.length,
146
- concurrency: renderer_1.RenderInternals.getActualConcurrency(concurrency),
146
+ concurrency: actualConcurrency,
147
147
  doneIn: renderedDoneIn,
148
148
  steps,
149
149
  },
@@ -202,7 +202,7 @@ const renderCompFlow = async ({ remotionRoot, fullEntryPoint, ffmpegExecutable,
202
202
  everyNthFrame,
203
203
  envVariables,
204
204
  frameRange,
205
- concurrency,
205
+ concurrency: actualConcurrency,
206
206
  puppeteerInstance,
207
207
  quality,
208
208
  timeoutInMilliseconds: puppeteerTimeout,
@@ -215,17 +215,43 @@ const renderCompFlow = async ({ remotionRoot, fullEntryPoint, ffmpegExecutable,
215
215
  downloadMap,
216
216
  });
217
217
  updateRenderProgress();
218
+ process.stdout.write('\n');
218
219
  log_1.Log.infoAdvanced({ indent, logLevel }, chalk_1.chalk.cyan(`▶ ${absoluteOutputFile}`));
219
220
  }
220
- const options = await (0, get_render_media_options_1.getRenderMediaOptions)({
221
- config,
221
+ await (0, renderer_1.renderMedia)({
222
222
  outputLocation: absoluteOutputFile,
223
+ composition: {
224
+ ...config,
225
+ width: width !== null && width !== void 0 ? width : config.width,
226
+ height: height !== null && height !== void 0 ? height : config.height,
227
+ },
228
+ crf,
229
+ envVariables,
230
+ ffmpegExecutable,
231
+ ffprobeExecutable,
232
+ frameRange,
233
+ inputProps,
234
+ overwrite,
235
+ pixelFormat,
236
+ proResProfile,
237
+ quality,
238
+ dumpBrowserLogs: renderer_1.RenderInternals.isEqualOrBelowLogLevel(logLevel, 'verbose'),
239
+ chromiumOptions,
240
+ timeoutInMilliseconds: config_1.ConfigInternals.getCurrentPuppeteerTimeout(),
241
+ scale,
242
+ port,
243
+ numberOfGifLoops,
244
+ everyNthFrame,
245
+ verbose: renderer_1.RenderInternals.isEqualOrBelowLogLevel(logLevel, 'verbose'),
246
+ muted,
247
+ enforceAudioTrack,
248
+ browserExecutable,
249
+ ffmpegOverride,
250
+ concurrency,
223
251
  serveUrl: urlOrBundle,
224
252
  codec,
225
- remotionRoot,
226
- });
227
- await (0, renderer_1.renderMedia)({
228
- ...options,
253
+ audioBitrate,
254
+ videoBitrate,
229
255
  onProgress: (update) => {
230
256
  encodedDoneIn = update.encodedDoneIn;
231
257
  encodedFrames = update.encodedFrames;
@@ -247,7 +273,8 @@ const renderCompFlow = async ({ remotionRoot, fullEntryPoint, ffmpegExecutable,
247
273
  },
248
274
  printLog: (...str) => log_1.Log.verboseAdvanced({ indent, logLevel }, ...str),
249
275
  });
250
- log_1.Log.infoAdvanced({ indent, logLevel });
276
+ updateRenderProgress();
277
+ process.stdout.write('\n');
251
278
  log_1.Log.infoAdvanced({ indent, logLevel }, chalk_1.chalk.cyan(`▶ ${absoluteOutputFile}`));
252
279
  for (const line of renderer_1.RenderInternals.perf.getPerf()) {
253
280
  log_1.Log.verboseAdvanced({ indent, logLevel }, line);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@remotion/cli",
3
- "version": "3.3.36",
3
+ "version": "3.3.37",
4
4
  "description": "CLI for Remotion",
5
5
  "main": "dist/index.js",
6
6
  "sideEffects": false,
@@ -22,16 +22,16 @@
22
22
  "author": "Jonny Burger <jonny@remotion.dev>",
23
23
  "license": "SEE LICENSE IN LICENSE.md",
24
24
  "dependencies": {
25
- "@remotion/bundler": "3.3.36",
26
- "@remotion/media-utils": "3.3.36",
27
- "@remotion/player": "3.3.36",
28
- "@remotion/renderer": "3.3.36",
25
+ "@remotion/bundler": "3.3.37",
26
+ "@remotion/media-utils": "3.3.37",
27
+ "@remotion/player": "3.3.37",
28
+ "@remotion/renderer": "3.3.37",
29
29
  "better-opn": "2.1.1",
30
30
  "dotenv": "9.0.2",
31
31
  "memfs": "3.4.3",
32
32
  "minimist": "1.2.6",
33
33
  "prompts": "2.4.1",
34
- "remotion": "3.3.36",
34
+ "remotion": "3.3.37",
35
35
  "semver": "7.3.5",
36
36
  "source-map": "0.6.1"
37
37
  },
@@ -71,5 +71,5 @@
71
71
  "publishConfig": {
72
72
  "access": "public"
73
73
  },
74
- "gitHead": "623bf1e883e7b26b9d02458037c930ccbe8857e4"
74
+ "gitHead": "ead6bdacc14a9953cae738159c49bf3daf09e9b0"
75
75
  }