@remotion/cli 4.0.20 → 4.0.22

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 (62) hide show
  1. package/dist/benchmark.js +2 -1
  2. package/dist/config/index.d.ts +2 -0
  3. package/dist/config/index.js +4 -0
  4. package/dist/config/log.d.ts +1 -1
  5. package/dist/config/presets-profile.d.ts +3 -0
  6. package/dist/config/presets-profile.js +12 -0
  7. package/dist/config/x264-preset.d.ts +3 -0
  8. package/dist/config/x264-preset.js +12 -0
  9. package/dist/editor/components/AssetSelectorItem.js +1 -1
  10. package/dist/editor/components/CompositionSelector.d.ts +3 -0
  11. package/dist/editor/components/CompositionSelector.js +39 -1
  12. package/dist/editor/components/CompositionSelectorItem.js +1 -1
  13. package/dist/editor/components/Editor.js +14 -1
  14. package/dist/editor/components/Modals.js +1 -1
  15. package/dist/editor/components/NewComposition/RemInput.d.ts +2 -2
  16. package/dist/editor/components/NewComposition/RemInputTypeColor.d.ts +1 -1
  17. package/dist/editor/components/QuickSwitcher/QuickSwitcherContent.js +27 -0
  18. package/dist/editor/components/RenderButton.js +1 -0
  19. package/dist/editor/components/RenderModal/RenderModal.d.ts +2 -1
  20. package/dist/editor/components/RenderModal/RenderModal.js +11 -2
  21. package/dist/editor/components/RenderModal/RenderModalAdvanced.d.ts +4 -0
  22. package/dist/editor/components/RenderModal/RenderModalAdvanced.js +21 -2
  23. package/dist/editor/components/RenderModal/RenderModalBasic.js +1 -1
  24. package/dist/editor/components/RenderModal/SchemaEditor/ZodDiscriminatedUnionEditor.js +1 -1
  25. package/dist/editor/components/RenderQueue/RenderQueueCopyToClipboard.d.ts +6 -0
  26. package/dist/editor/components/RenderQueue/RenderQueueCopyToClipboard.js +51 -0
  27. package/dist/editor/components/RenderQueue/RenderQueueItem.js +2 -1
  28. package/dist/editor/components/RenderQueue/actions.d.ts +6 -2
  29. package/dist/editor/components/RenderQueue/actions.js +10 -2
  30. package/dist/editor/components/RightPanel.d.ts +8 -0
  31. package/dist/editor/components/RightPanel.js +112 -0
  32. package/dist/editor/components/SidebarRenderButton.js +1 -0
  33. package/dist/editor/helpers/colors.d.ts +1 -1
  34. package/dist/editor/helpers/document-title.js +1 -0
  35. package/dist/editor/helpers/presets-labels.d.ts +2 -0
  36. package/dist/editor/helpers/presets-labels.js +37 -0
  37. package/dist/editor/state/modals.d.ts +2 -1
  38. package/dist/get-cli-options.d.ts +2 -1
  39. package/dist/get-cli-options.js +6 -0
  40. package/dist/index.d.ts +10 -8
  41. package/dist/log.d.ts +4 -4
  42. package/dist/parse-command-line.d.ts +2 -1
  43. package/dist/parse-command-line.js +3 -0
  44. package/dist/preview-server/api-routes.js +2 -0
  45. package/dist/preview-server/api-types.d.ts +2 -1
  46. package/dist/preview-server/error-overlay/react-overlay/listen-to-runtime-errors.js +1 -0
  47. package/dist/preview-server/error-overlay/react-overlay/utils/get-file-source.js +3 -2
  48. package/dist/preview-server/hot-middleware/process-update.d.ts +0 -5
  49. package/dist/preview-server/hot-middleware/process-update.js +21 -2
  50. package/dist/preview-server/render-queue/copy-still-to-clipboard.d.ts +1 -0
  51. package/dist/preview-server/render-queue/copy-still-to-clipboard.js +8 -0
  52. package/dist/preview-server/render-queue/job.d.ts +6 -1
  53. package/dist/preview-server/render-queue/make-retry-payload.js +3 -1
  54. package/dist/preview-server/render-queue/process-video.js +2 -1
  55. package/dist/preview-server/routes/add-render.js +1 -0
  56. package/dist/preview-server/routes/copy-still-to-clipboard-handler.d.ts +3 -0
  57. package/dist/preview-server/routes/copy-still-to-clipboard-handler.js +17 -0
  58. package/dist/preview-server/routes.js +4 -2
  59. package/dist/render-flows/render.d.ts +3 -2
  60. package/dist/render-flows/render.js +2 -1
  61. package/dist/render.js +2 -1
  62. package/package.json +8 -8
@@ -4,7 +4,7 @@ exports.makeRetryPayload = void 0;
4
4
  const remotion_1 = require("remotion");
5
5
  const get_default_video_contexts_1 = require("./get-default-video-contexts");
6
6
  const makeRetryPayload = (job) => {
7
- var _a, _b, _c;
7
+ var _a, _b, _c, _d;
8
8
  const defaults = window.remotion_renderDefaults;
9
9
  if (!defaults) {
10
10
  throw new Error('defaults not set');
@@ -33,6 +33,7 @@ const makeRetryPayload = (job) => {
33
33
  initialMuted: defaults.muted,
34
34
  initialEnforceAudioTrack: defaults.enforceAudioTrack,
35
35
  initialProResProfile: defaults.proResProfile,
36
+ initialx264Preset: defaults.x264Preset,
36
37
  initialPixelFormat: defaults.pixelFormat,
37
38
  initialAudioBitrate: defaults.audioBitrate,
38
39
  initialVideoBitrate: defaults.videoBitrate,
@@ -74,6 +75,7 @@ const makeRetryPayload = (job) => {
74
75
  initialRenderType,
75
76
  initialVideoCodecForVideoTab: initialVideoCodec,
76
77
  initialProResProfile: (_c = job.proResProfile) !== null && _c !== void 0 ? _c : defaults.proResProfile,
78
+ initialx264Preset: (_d = job.x264Preset) !== null && _d !== void 0 ? _d : defaults.x264Preset,
77
79
  initialPixelFormat: job.pixelFormat,
78
80
  initialAudioBitrate: job.audioBitrate,
79
81
  initialVideoBitrate: job.videoBitrate,
@@ -5,7 +5,7 @@ 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, _b;
8
+ var _a, _b, _c;
9
9
  if (job.type !== 'video') {
10
10
  throw new Error('Expected video job');
11
11
  }
@@ -53,6 +53,7 @@ const processVideoJob = async ({ job, remotionRoot, entryPoint, onProgress, addC
53
53
  muted: job.muted,
54
54
  enforceAudioTrack: job.enforceAudioTrack,
55
55
  proResProfile: (_b = job.proResProfile) !== null && _b !== void 0 ? _b : undefined,
56
+ x264Preset: (_c = job.x264Preset) !== null && _c !== void 0 ? _c : undefined,
56
57
  pixelFormat: job.pixelFormat,
57
58
  videoBitrate: job.videoBitrate,
58
59
  numberOfGifLoops: job.numberOfGifLoops,
@@ -32,6 +32,7 @@ const handleAddRender = ({ input, entryPoint, remotionRoot, }) => {
32
32
  muted: input.muted,
33
33
  enforceAudioTrack: input.enforceAudioTrack,
34
34
  proResProfile: input.proResProfile,
35
+ x264Preset: input.x264Preset,
35
36
  pixelFormat: input.pixelFormat,
36
37
  audioBitrate: input.audioBitrate,
37
38
  videoBitrate: input.videoBitrate,
@@ -0,0 +1,3 @@
1
+ import type { ApiHandler } from '../api-types';
2
+ import type { CopyStillToClipboardRequest } from '../render-queue/job';
3
+ export declare const handleCopyStillToClipboard: ApiHandler<CopyStillToClipboardRequest, void>;
@@ -0,0 +1,17 @@
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.handleCopyStillToClipboard = void 0;
7
+ const renderer_1 = require("@remotion/renderer");
8
+ const path_1 = __importDefault(require("path"));
9
+ const handleCopyStillToClipboard = ({ input: { outName }, remotionRoot }) => {
10
+ const resolved = path_1.default.resolve(remotionRoot, outName);
11
+ const relativeToProcessCwd = path_1.default.relative(remotionRoot, resolved);
12
+ if (relativeToProcessCwd.startsWith('..')) {
13
+ throw new Error(`Not allowed to open ${relativeToProcessCwd}`);
14
+ }
15
+ return renderer_1.RenderInternals.copyImageToClipboard(resolved, 'info');
16
+ };
17
+ exports.handleCopyStillToClipboard = handleCopyStillToClipboard;
@@ -28,7 +28,7 @@ const static404 = (response) => {
28
28
  response.end('The static/ prefix has been changed, this URL is no longer valid.');
29
29
  };
30
30
  const handleFallback = async ({ remotionRoot, hash, response, getCurrentInputProps, getEnvVariables, publicDir, }) => {
31
- var _a, _b;
31
+ var _a, _b, _c;
32
32
  const [edit] = await editorGuess;
33
33
  const displayName = (0, open_in_editor_1.getDisplayNameForEditor)(edit ? edit.command : null);
34
34
  const defaultJpegQuality = config_1.ConfigInternals.getJpegQuality();
@@ -40,6 +40,7 @@ const handleFallback = async ({ remotionRoot, hash, response, getCurrentInputPro
40
40
  const enforceAudioTrack = config_1.ConfigInternals.getEnforceAudioTrack();
41
41
  const pixelFormat = config_1.ConfigInternals.getPixelFormat();
42
42
  const proResProfile = (_a = config_1.ConfigInternals.getProResProfile()) !== null && _a !== void 0 ? _a : 'hq';
43
+ const x264Preset = (_b = config_1.ConfigInternals.getPresetProfile()) !== null && _b !== void 0 ? _b : 'medium';
43
44
  const audioBitrate = config_1.ConfigInternals.getAudioBitrate();
44
45
  const videoBitrate = config_1.ConfigInternals.getVideoBitrate();
45
46
  const everyNthFrame = config_1.ConfigInternals.getEveryNthFrame();
@@ -67,7 +68,7 @@ const handleFallback = async ({ remotionRoot, hash, response, getCurrentInputPro
67
68
  remotionRoot,
68
69
  studioServerCommand: packageManager === 'unknown' ? null : packageManager.startCommand,
69
70
  renderQueue: (0, queue_1.getRenderQueue)(),
70
- numberOfAudioTags: (_b = parse_command_line_1.parsedCli['number-of-shared-audio-tags']) !== null && _b !== void 0 ? _b : (0, number_of_shared_audio_tags_1.getNumberOfSharedAudioTags)(),
71
+ numberOfAudioTags: (_c = parse_command_line_1.parsedCli['number-of-shared-audio-tags']) !== null && _c !== void 0 ? _c : (0, number_of_shared_audio_tags_1.getNumberOfSharedAudioTags)(),
71
72
  publicFiles: (0, public_folder_1.getFiles)(),
72
73
  includeFavicon: true,
73
74
  title: 'Remotion Studio',
@@ -84,6 +85,7 @@ const handleFallback = async ({ remotionRoot, hash, response, getCurrentInputPro
84
85
  muted,
85
86
  enforceAudioTrack,
86
87
  proResProfile,
88
+ x264Preset,
87
89
  pixelFormat,
88
90
  audioBitrate,
89
91
  videoBitrate,
@@ -1,7 +1,7 @@
1
- import type { AudioCodec, Browser, BrowserExecutable, CancelSignal, ChromiumOptions, Codec, Crf, FfmpegOverrideFn, FrameRange, LogLevel, PixelFormat, ProResProfile, VideoImageFormat } from '@remotion/renderer';
1
+ import type { AudioCodec, Browser, BrowserExecutable, CancelSignal, ChromiumOptions, Codec, Crf, FfmpegOverrideFn, FrameRange, LogLevel, PixelFormat, ProResProfile, VideoImageFormat, X264Preset } from '@remotion/renderer';
2
2
  import type { Loop } from '../config/number-of-gif-loops';
3
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, envVariables, puppeteerTimeout, port, height, width, remainingArgs, compositionIdFromUi, entryPointReason, overwrite, quiet, concurrency, frameRange, everyNthFrame, outputLocationFromUI, jpegQuality, onProgress, addCleanupCallback, cancelSignal, crf, uiCodec, uiImageFormat, ffmpegOverride, audioBitrate, muted, enforceAudioTrack, proResProfile, pixelFormat, videoBitrate, numberOfGifLoops, audioCodec, serializedInputPropsWithCustomSchema, disallowParallelEncoding, }: {
4
+ export declare const renderVideoFlow: ({ remotionRoot, fullEntryPoint, indent, logLevel, browserExecutable, browser, chromiumOptions, scale, shouldOutputImageSequence, publicDir, envVariables, puppeteerTimeout, port, height, width, remainingArgs, compositionIdFromUi, entryPointReason, overwrite, quiet, concurrency, frameRange, everyNthFrame, outputLocationFromUI, jpegQuality, onProgress, addCleanupCallback, cancelSignal, crf, uiCodec, uiImageFormat, ffmpegOverride, audioBitrate, muted, enforceAudioTrack, proResProfile, x264Preset, pixelFormat, videoBitrate, numberOfGifLoops, audioCodec, serializedInputPropsWithCustomSchema, disallowParallelEncoding, }: {
5
5
  remotionRoot: string;
6
6
  fullEntryPoint: string;
7
7
  entryPointReason: string;
@@ -40,6 +40,7 @@ export declare const renderVideoFlow: ({ remotionRoot, fullEntryPoint, indent, l
40
40
  muted: boolean;
41
41
  enforceAudioTrack: boolean;
42
42
  proResProfile: ProResProfile | undefined;
43
+ x264Preset: X264Preset | undefined;
43
44
  pixelFormat: PixelFormat;
44
45
  numberOfGifLoops: Loop;
45
46
  audioCodec: AudioCodec | null;
@@ -47,7 +47,7 @@ const setup_cache_1 = require("../setup-cache");
47
47
  const should_use_non_overlaying_logger_1 = require("../should-use-non-overlaying-logger");
48
48
  const truthy_1 = require("../truthy");
49
49
  const user_passed_output_location_1 = require("../user-passed-output-location");
50
- const renderVideoFlow = async ({ remotionRoot, fullEntryPoint, indent, logLevel, browserExecutable, browser, chromiumOptions, scale, shouldOutputImageSequence, publicDir, envVariables, puppeteerTimeout, port, height, width, remainingArgs, compositionIdFromUi, entryPointReason, overwrite, quiet, concurrency, frameRange, everyNthFrame, outputLocationFromUI, jpegQuality, onProgress, addCleanupCallback, cancelSignal, crf, uiCodec, uiImageFormat, ffmpegOverride, audioBitrate, muted, enforceAudioTrack, proResProfile, pixelFormat, videoBitrate, numberOfGifLoops, audioCodec, serializedInputPropsWithCustomSchema, disallowParallelEncoding, }) => {
50
+ const renderVideoFlow = async ({ remotionRoot, fullEntryPoint, indent, logLevel, browserExecutable, browser, chromiumOptions, scale, shouldOutputImageSequence, publicDir, envVariables, puppeteerTimeout, port, height, width, remainingArgs, compositionIdFromUi, entryPointReason, overwrite, quiet, concurrency, frameRange, everyNthFrame, outputLocationFromUI, jpegQuality, onProgress, addCleanupCallback, cancelSignal, crf, uiCodec, uiImageFormat, ffmpegOverride, audioBitrate, muted, enforceAudioTrack, proResProfile, x264Preset, pixelFormat, videoBitrate, numberOfGifLoops, audioCodec, serializedInputPropsWithCustomSchema, disallowParallelEncoding, }) => {
51
51
  var _a;
52
52
  const downloads = [];
53
53
  if (browserExecutable) {
@@ -268,6 +268,7 @@ const renderVideoFlow = async ({ remotionRoot, fullEntryPoint, indent, logLevel,
268
268
  overwrite,
269
269
  pixelFormat,
270
270
  proResProfile,
271
+ x264Preset,
271
272
  jpegQuality: jpegQuality !== null && jpegQuality !== void 0 ? jpegQuality : renderer_1.RenderInternals.DEFAULT_JPEG_QUALITY,
272
273
  chromiumOptions,
273
274
  timeoutInMilliseconds: puppeteerTimeout,
package/dist/render.js CHANGED
@@ -25,7 +25,7 @@ const render = async (remotionRoot, args) => {
25
25
  log_1.Log.error('--frame flag was passed to the `render` command. This flag only works with the `still` command. Did you mean `--frames`? See reference: https://www.remotion.dev/docs/cli/');
26
26
  process.exit(1);
27
27
  }
28
- const { concurrency, frameRange, shouldOutputImageSequence, overwrite, inputProps, envVariables, jpegQuality, browser, browserExecutable, scale, chromiumOptions, port, everyNthFrame, puppeteerTimeout, publicDir, height, width, crf, ffmpegOverride, audioBitrate, muted, enforceAudioTrack, proResProfile, pixelFormat, videoBitrate, numberOfGifLoops, } = await (0, get_cli_options_1.getCliOptions)({
28
+ const { concurrency, frameRange, shouldOutputImageSequence, overwrite, inputProps, envVariables, jpegQuality, browser, browserExecutable, scale, chromiumOptions, port, everyNthFrame, puppeteerTimeout, publicDir, height, width, crf, ffmpegOverride, audioBitrate, muted, enforceAudioTrack, proResProfile, x264Preset, pixelFormat, videoBitrate, numberOfGifLoops, } = await (0, get_cli_options_1.getCliOptions)({
29
29
  isLambda: false,
30
30
  type: 'series',
31
31
  remotionRoot,
@@ -75,6 +75,7 @@ const render = async (remotionRoot, args) => {
75
75
  muted,
76
76
  enforceAudioTrack,
77
77
  proResProfile,
78
+ x264Preset,
78
79
  pixelFormat,
79
80
  videoBitrate,
80
81
  numberOfGifLoops,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@remotion/cli",
3
- "version": "4.0.20",
3
+ "version": "4.0.22",
4
4
  "description": "CLI for Remotion",
5
5
  "main": "dist/index.js",
6
6
  "sideEffects": false,
@@ -35,11 +35,11 @@
35
35
  "prompts": "2.4.1",
36
36
  "semver": "7.5.3",
37
37
  "source-map": "0.6.1",
38
- "@remotion/bundler": "4.0.20",
39
- "remotion": "4.0.20",
40
- "@remotion/player": "4.0.20",
41
- "@remotion/renderer": "4.0.20",
42
- "@remotion/media-utils": "4.0.20"
38
+ "@remotion/bundler": "4.0.22",
39
+ "@remotion/media-utils": "4.0.22",
40
+ "@remotion/renderer": "4.0.22",
41
+ "@remotion/player": "4.0.22",
42
+ "remotion": "4.0.22"
43
43
  },
44
44
  "peerDependencies": {
45
45
  "react": ">=16.8.0",
@@ -64,8 +64,8 @@
64
64
  "react-dom": "^18.0.0",
65
65
  "vitest": "0.31.1",
66
66
  "zod": "^3.21.4",
67
- "@remotion/tailwind": "4.0.20",
68
- "@remotion/zod-types": "4.0.20"
67
+ "@remotion/zod-types": "4.0.22",
68
+ "@remotion/tailwind": "4.0.22"
69
69
  },
70
70
  "keywords": [
71
71
  "remotion",