@remotion/renderer 4.0.40 → 4.0.42

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.
package/dist/client.d.ts CHANGED
@@ -299,6 +299,14 @@ export declare const BrowserSafeApis: {
299
299
  docLink: string;
300
300
  type: boolean | null;
301
301
  };
302
+ enableMultiprocessOnLinuxOption: {
303
+ name: string;
304
+ cliFlag: "enable-multiprocess-on-linux";
305
+ description: () => JSX.Element;
306
+ ssrName: string;
307
+ docLink: string;
308
+ type: boolean;
309
+ };
302
310
  };
303
311
  validColorSpaces: readonly ["default", "bt709"];
304
312
  optionsMap: {
package/dist/client.js CHANGED
@@ -12,6 +12,7 @@ const audio_bitrate_1 = require("./options/audio-bitrate");
12
12
  const color_space_1 = require("./options/color-space");
13
13
  const crf_2 = require("./options/crf");
14
14
  const delete_after_1 = require("./options/delete-after");
15
+ const enable_multiprocess_on_linux_1 = require("./options/enable-multiprocess-on-linux");
15
16
  const enforce_audio_1 = require("./options/enforce-audio");
16
17
  const folder_expiry_1 = require("./options/folder-expiry");
17
18
  const jpeg_quality_1 = require("./options/jpeg-quality");
@@ -56,6 +57,7 @@ exports.BrowserSafeApis = {
56
57
  colorSpaceOption: color_space_1.colorSpaceOption,
57
58
  deleteAfterOption: delete_after_1.deleteAfterOption,
58
59
  folderExpiryOption: folder_expiry_1.folderExpiryOption,
60
+ enableMultiprocessOnLinuxOption: enable_multiprocess_on_linux_1.enableMultiprocessOnLinuxOption,
59
61
  },
60
62
  validColorSpaces: color_space_1.validColorSpaces,
61
63
  optionsMap: options_map_1.optionsMap,
@@ -3,6 +3,6 @@ import type { LogLevel } from './log-level';
3
3
  export declare const getSilentParts: ({ src, noiseThresholdInDecibels: passedNoiseThresholdInDecibels, minDurationInSeconds: passedMinDuration, logLevel, }: {
4
4
  src: string;
5
5
  minDurationInSeconds?: number | undefined;
6
- logLevel?: "error" | "verbose" | "info" | "warn" | undefined;
6
+ logLevel?: "verbose" | "info" | "warn" | "error" | undefined;
7
7
  noiseThresholdInDecibels?: number | undefined;
8
8
  }) => Promise<GetSilentPartsResponse>;
package/dist/index.d.ts CHANGED
@@ -48,7 +48,7 @@ export declare const RenderInternals: {
48
48
  downloadMap: import("./assets/download-map").DownloadMap;
49
49
  remotionRoot: string;
50
50
  concurrency: number;
51
- logLevel: "error" | "verbose" | "info" | "warn";
51
+ logLevel: "verbose" | "info" | "warn" | "error";
52
52
  indent: boolean;
53
53
  offthreadVideoCacheSizeInBytes: number | null;
54
54
  }) => Promise<{
@@ -56,11 +56,12 @@ export declare const RenderInternals: {
56
56
  close: () => Promise<void>;
57
57
  compositor: import("./compositor/compositor").Compositor;
58
58
  }>;
59
- validateEvenDimensionsWithCodec: ({ width, height, codec, scale, }: {
59
+ validateEvenDimensionsWithCodec: ({ width, height, codec, scale, wantsImageSequence, }: {
60
60
  width: number;
61
61
  height: number;
62
62
  scale: number;
63
63
  codec: "h264" | "h265" | "vp8" | "vp9" | "mp3" | "aac" | "wav" | "prores" | "h264-mkv" | "gif";
64
+ wantsImageSequence: boolean;
64
65
  }) => void;
65
66
  getFileExtensionFromCodec: <T extends "h264" | "h265" | "vp8" | "vp9" | "mp3" | "aac" | "wav" | "prores" | "h264-mkv" | "gif">(codec: T, audioCodec: "mp3" | "aac" | "pcm-16" | "opus" | null) => import("./file-extensions").FileExtension;
66
67
  tmpDir: (str: string) => string;
@@ -123,8 +124,8 @@ export declare const RenderInternals: {
123
124
  validPixelFormats: readonly ["yuv420p", "yuva420p", "yuv422p", "yuv444p", "yuv420p10le", "yuv422p10le", "yuv444p10le", "yuva444p10le"];
124
125
  DEFAULT_BROWSER: "chrome";
125
126
  validateFrameRange: (frameRange: import("./frame-range").FrameRange | null) => void;
126
- DEFAULT_OPENGL_RENDERER: "angle" | "swangle" | "egl" | "swiftshader" | null;
127
- validateOpenGlRenderer: (option: "angle" | "swangle" | "egl" | "swiftshader" | null) => "angle" | "swangle" | "egl" | "swiftshader" | null;
127
+ DEFAULT_OPENGL_RENDERER: "angle" | "swangle" | "egl" | "swiftshader" | "vulkan" | null;
128
+ validateOpenGlRenderer: (option: "angle" | "swangle" | "egl" | "swiftshader" | "vulkan" | null) => "angle" | "swangle" | "egl" | "swiftshader" | "vulkan" | null;
128
129
  validCodecs: readonly ["h264", "h265", "vp8", "vp9", "mp3", "aac", "wav", "prores", "h264-mkv", "gif"];
129
130
  DEFAULT_PIXEL_FORMAT: "yuv420p" | "yuva420p" | "yuv422p" | "yuv444p" | "yuv420p10le" | "yuv422p10le" | "yuv444p10le" | "yuva444p10le";
130
131
  validateJpegQuality: (q: number | undefined) => void;
@@ -132,7 +133,7 @@ export declare const RenderInternals: {
132
133
  DEFAULT_CODEC: "h264" | "h265" | "vp8" | "vp9" | "mp3" | "aac" | "wav" | "prores" | "h264-mkv" | "gif";
133
134
  isAudioCodec: (codec: "h264" | "h265" | "vp8" | "vp9" | "mp3" | "aac" | "wav" | "prores" | "h264-mkv" | "gif" | undefined) => boolean;
134
135
  logLevels: readonly ["verbose", "info", "warn", "error"];
135
- isEqualOrBelowLogLevel: (currentLevel: "error" | "verbose" | "info" | "warn", level: "error" | "verbose" | "info" | "warn") => boolean;
136
+ isEqualOrBelowLogLevel: (currentLevel: "verbose" | "info" | "warn" | "error", level: "verbose" | "info" | "warn" | "error") => boolean;
136
137
  isValidLogLevel: (level: string) => boolean;
137
138
  perf: typeof perf;
138
139
  convertToPositiveFrameIndex: ({ frame, durationInFrames, }: {
@@ -369,30 +370,30 @@ export declare const RenderInternals: {
369
370
  verbose: (message?: any, ...optionalParams: any[]) => void;
370
371
  verboseAdvanced: (options: {
371
372
  indent: boolean;
372
- logLevel: "error" | "verbose" | "info" | "warn";
373
+ logLevel: "verbose" | "info" | "warn" | "error";
373
374
  } & {
374
375
  tag?: string | undefined;
375
376
  }, message?: any, ...optionalParams: any[]) => void;
376
377
  info: (message?: any, ...optionalParams: any[]) => void;
377
378
  infoAdvanced: (options: {
378
379
  indent: boolean;
379
- logLevel: "error" | "verbose" | "info" | "warn";
380
+ logLevel: "verbose" | "info" | "warn" | "error";
380
381
  }, message?: any, ...optionalParams: any[]) => void;
381
382
  warn: (message?: any, ...optionalParams: any[]) => void;
382
383
  warnAdvanced: (options: {
383
384
  indent: boolean;
384
- logLevel: "error" | "verbose" | "info" | "warn";
385
+ logLevel: "verbose" | "info" | "warn" | "error";
385
386
  }, message?: any, ...optionalParams: any[]) => void;
386
387
  error: (message?: any, ...optionalParams: any[]) => void;
387
388
  errorAdvanced: (options: {
388
389
  indent: boolean;
389
- logLevel: "error" | "verbose" | "info" | "warn";
390
+ logLevel: "verbose" | "info" | "warn" | "error";
390
391
  } & {
391
392
  tag?: string | undefined;
392
393
  }, message?: any, ...optionalParams: any[]) => void;
393
394
  };
394
- getLogLevel: () => "error" | "verbose" | "info" | "warn";
395
- setLogLevel: (newLogLevel: "error" | "verbose" | "info" | "warn") => void;
395
+ getLogLevel: () => "verbose" | "info" | "warn" | "error";
396
+ setLogLevel: (newLogLevel: "verbose" | "info" | "warn" | "error") => void;
396
397
  INDENT_TOKEN: string;
397
398
  isColorSupported: () => boolean;
398
399
  HeadlessBrowser: typeof HeadlessBrowser;
@@ -401,7 +402,7 @@ export declare const RenderInternals: {
401
402
  port: number | null;
402
403
  remotionRoot: string;
403
404
  concurrency: number;
404
- logLevel: "error" | "verbose" | "info" | "warn";
405
+ logLevel: "verbose" | "info" | "warn" | "error";
405
406
  indent: boolean;
406
407
  offthreadVideoCacheSizeInBytes: number | null;
407
408
  }) => Promise<import("./prepare-server").RemotionServer>;
@@ -410,7 +411,7 @@ export declare const RenderInternals: {
410
411
  port: number | null;
411
412
  remotionRoot: string;
412
413
  concurrency: number;
413
- logLevel: "error" | "verbose" | "info" | "warn";
414
+ logLevel: "verbose" | "info" | "warn" | "error";
414
415
  indent: boolean;
415
416
  offthreadVideoCacheSizeInBytes: number | null;
416
417
  }, { onDownload, onError, }: {
@@ -440,7 +441,7 @@ export declare const RenderInternals: {
440
441
  cancelSignal: import("./make-cancel-signal").CancelSignal | null;
441
442
  indent: boolean;
442
443
  server: import("./prepare-server").RemotionServer | undefined;
443
- logLevel: "error" | "verbose" | "info" | "warn";
444
+ logLevel: "verbose" | "info" | "warn" | "error";
444
445
  serveUrl: string;
445
446
  port: number | null;
446
447
  offthreadVideoCacheSizeInBytes: number | null;
@@ -461,7 +462,7 @@ export declare const RenderInternals: {
461
462
  viewport: import("./browser/PuppeteerViewport").Viewport | null;
462
463
  indent: boolean;
463
464
  browser: "chrome";
464
- logLevel: "error" | "verbose" | "info" | "warn";
465
+ logLevel: "verbose" | "info" | "warn" | "error";
465
466
  }) => Promise<HeadlessBrowser>;
466
467
  internalSelectComposition: (options: {
467
468
  serializedInputPropsWithCustomSchema: string;
@@ -474,7 +475,7 @@ export declare const RenderInternals: {
474
475
  port: number | null;
475
476
  indent: boolean;
476
477
  server: import("./prepare-server").RemotionServer | undefined;
477
- logLevel: "error" | "verbose" | "info" | "warn";
478
+ logLevel: "verbose" | "info" | "warn" | "error";
478
479
  serveUrl: string;
479
480
  id: string;
480
481
  } & import("./options/option").ToOptions<readonly [{
@@ -499,7 +500,7 @@ export declare const RenderInternals: {
499
500
  port: number | null;
500
501
  server: import("./prepare-server").RemotionServer | undefined;
501
502
  indent: boolean;
502
- logLevel: "error" | "verbose" | "info" | "warn";
503
+ logLevel: "verbose" | "info" | "warn" | "error";
503
504
  serveUrlOrWebpackUrl: string;
504
505
  } & import("./options/option").ToOptions<readonly [{
505
506
  name: string;
@@ -514,6 +515,6 @@ export declare const RenderInternals: {
514
515
  buffer: Buffer | null;
515
516
  slowestFrames: import("./render-media").SlowFrame[];
516
517
  }>;
517
- validOpenGlRenderers: readonly ["swangle", "angle", "egl", "swiftshader"];
518
- copyImageToClipboard: (src: string, logLevel: "error" | "verbose" | "info" | "warn") => Promise<void>;
518
+ validOpenGlRenderers: readonly ["swangle", "angle", "egl", "swiftshader", "vulkan"];
519
+ copyImageToClipboard: (src: string, logLevel: "verbose" | "info" | "warn" | "error") => Promise<void>;
519
520
  };
package/dist/logger.d.ts CHANGED
@@ -19,6 +19,6 @@ export declare const Log: {
19
19
  error: (message?: any, ...optionalParams: any[]) => void;
20
20
  errorAdvanced: (options: VerboseLogOptions, message?: any, ...optionalParams: any[]) => void;
21
21
  };
22
- export declare const getLogLevel: () => "error" | "verbose" | "info" | "warn";
22
+ export declare const getLogLevel: () => "verbose" | "info" | "warn" | "error";
23
23
  export declare const setLogLevel: (newLogLevel: LogLevel) => void;
24
24
  export {};
@@ -2,7 +2,7 @@ import type { Browser } from './browser';
2
2
  import type { HeadlessBrowser } from './browser/Browser';
3
3
  import type { Viewport } from './browser/PuppeteerViewport';
4
4
  import { type LogLevel } from './log-level';
5
- declare const validRenderers: readonly ["swangle", "angle", "egl", "swiftshader"];
5
+ declare const validRenderers: readonly ["swangle", "angle", "egl", "swiftshader", "vulkan"];
6
6
  type OpenGlRenderer = (typeof validRenderers)[number];
7
7
  export type ChromiumOptions = {
8
8
  ignoreCertificateErrors?: boolean;
@@ -10,6 +10,7 @@ export type ChromiumOptions = {
10
10
  gl?: OpenGlRenderer | null;
11
11
  headless?: boolean;
12
12
  userAgent?: string | null;
13
+ enableMultiProcessOnLinux?: boolean;
13
14
  };
14
15
  export declare const killAllBrowsers: () => Promise<void>;
15
16
  type InternalOpenBrowserOptions = {
@@ -6,13 +6,28 @@ const get_local_browser_executable_1 = require("./get-local-browser-executable")
6
6
  const get_video_threads_flag_1 = require("./get-video-threads-flag");
7
7
  const log_level_1 = require("./log-level");
8
8
  const validate_opengl_renderer_1 = require("./validate-opengl-renderer");
9
- const validRenderers = ['swangle', 'angle', 'egl', 'swiftshader'];
9
+ const validRenderers = [
10
+ 'swangle',
11
+ 'angle',
12
+ 'egl',
13
+ 'swiftshader',
14
+ 'vulkan',
15
+ ];
10
16
  const getOpenGlRenderer = (option) => {
11
17
  const renderer = option !== null && option !== void 0 ? option : validate_opengl_renderer_1.DEFAULT_OPENGL_RENDERER;
12
18
  (0, validate_opengl_renderer_1.validateOpenGlRenderer)(renderer);
13
19
  if (renderer === 'swangle') {
14
20
  return [`--use-gl=angle`, `--use-angle=swiftshader`];
15
21
  }
22
+ if (renderer === 'vulkan') {
23
+ return [
24
+ '--use-angle=vulkan',
25
+ `--use-vulkan=swiftshader`,
26
+ '--disable-vulkan-fallback-to-gl-for-testing',
27
+ '--dignore-gpu-blocklist',
28
+ '--enable-features=Vulkan,UseSkiaRenderer',
29
+ ];
30
+ }
16
31
  if (renderer === null) {
17
32
  return [];
18
33
  }
@@ -79,7 +94,11 @@ const internalOpenBrowser = async ({ browser, browserExecutable, chromiumOptions
79
94
  '--disable-setuid-sandbox',
80
95
  ...customGlRenderer,
81
96
  '--disable-background-media-suspend',
82
- process.platform === 'linux' ? '--single-process' : null,
97
+ process.platform === 'linux' &&
98
+ chromiumOptions.gl !== 'vulkan' &&
99
+ !chromiumOptions.enableMultiProcessOnLinux
100
+ ? '--single-process'
101
+ : null,
83
102
  '--allow-running-insecure-content',
84
103
  '--disable-component-update',
85
104
  '--disable-domain-reliability',
@@ -0,0 +1,9 @@
1
+ /// <reference types="react" />
2
+ export declare const enableMultiprocessOnLinuxOption: {
3
+ name: string;
4
+ cliFlag: "enable-multiprocess-on-linux";
5
+ description: () => JSX.Element;
6
+ ssrName: string;
7
+ docLink: string;
8
+ type: boolean;
9
+ };
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.enableMultiprocessOnLinuxOption = void 0;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ exports.enableMultiprocessOnLinuxOption = {
6
+ name: 'Enable Multiprocess on Linux',
7
+ cliFlag: 'enable-multiprocess-on-linux',
8
+ description: () => ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: ["Removes the ", (0, jsx_runtime_1.jsx)("code", { children: '--single-process' }), " flag that gets passed to Chromium on Linux by default. This will make the render faster because multiple processes can be used, but may cause issues with some Linux distributions or if window server libraries are missing."] })),
9
+ ssrName: 'chromiumOptions.enableMultiprocessOnLinux',
10
+ docLink: 'https://www.remotion.dev/docs/chromium-flags',
11
+ type: false,
12
+ };
@@ -21,6 +21,7 @@ const prespawnFfmpeg = (options) => {
21
21
  height: options.height,
22
22
  codec,
23
23
  scale: 1,
24
+ wantsImageSequence: false,
24
25
  });
25
26
  const pixelFormat = (_b = options.pixelFormat) !== null && _b !== void 0 ? _b : pixel_format_1.DEFAULT_PIXEL_FORMAT;
26
27
  const proResProfileName = (0, get_prores_profile_name_1.getProResProfileName)(codec, options.proResProfile);
@@ -146,6 +146,7 @@ const internalRenderMediaRaw = ({ proResProfile, x264Preset, crf, composition, s
146
146
  height: composition.height,
147
147
  scale,
148
148
  width: composition.width,
149
+ wantsImageSequence: false,
149
150
  });
150
151
  const realFrameRange = (0, get_frame_to_render_1.getRealFrameRange)(composition.durationInFrames, frameRange);
151
152
  const callUpdate = () => {
@@ -110,6 +110,7 @@ const innerStitchFramesToVideo = async ({ assetsInfo, audioBitrate, audioCodec,
110
110
  height,
111
111
  codec,
112
112
  scale: 1,
113
+ wantsImageSequence: false,
113
114
  });
114
115
  (0, prores_profile_1.validateSelectedCodecAndProResCombination)({
115
116
  codec,
@@ -1,7 +1,8 @@
1
1
  import type { Codec } from './codec';
2
- export declare const validateEvenDimensionsWithCodec: ({ width, height, codec, scale, }: {
2
+ export declare const validateEvenDimensionsWithCodec: ({ width, height, codec, scale, wantsImageSequence, }: {
3
3
  width: number;
4
4
  height: number;
5
5
  scale: number;
6
6
  codec: Codec;
7
+ wantsImageSequence: boolean;
7
8
  }) => void;
@@ -2,7 +2,10 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.validateEvenDimensionsWithCodec = void 0;
4
4
  const truthy_1 = require("./truthy");
5
- const validateEvenDimensionsWithCodec = ({ width, height, codec, scale, }) => {
5
+ const validateEvenDimensionsWithCodec = ({ width, height, codec, scale, wantsImageSequence, }) => {
6
+ if (wantsImageSequence) {
7
+ return;
8
+ }
6
9
  if (codec !== 'h264-mkv' && codec !== 'h264' && codec !== 'h265') {
7
10
  return;
8
11
  }
@@ -1,4 +1,4 @@
1
- export declare const validOpenGlRenderers: readonly ["swangle", "angle", "egl", "swiftshader"];
1
+ export declare const validOpenGlRenderers: readonly ["swangle", "angle", "egl", "swiftshader", "vulkan"];
2
2
  export type OpenGlRenderer = (typeof validOpenGlRenderers)[number];
3
3
  export declare const DEFAULT_OPENGL_RENDERER: OpenGlRenderer | null;
4
4
  export declare const validateOpenGlRenderer: (option: OpenGlRenderer | null) => OpenGlRenderer | null;
@@ -6,6 +6,7 @@ exports.validOpenGlRenderers = [
6
6
  'angle',
7
7
  'egl',
8
8
  'swiftshader',
9
+ 'vulkan',
9
10
  ];
10
11
  exports.DEFAULT_OPENGL_RENDERER = null;
11
12
  const validateOpenGlRenderer = (option) => {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@remotion/renderer",
3
- "version": "4.0.40",
3
+ "version": "4.0.42",
4
4
  "description": "Renderer for Remotion",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -18,7 +18,7 @@
18
18
  "extract-zip": "2.0.1",
19
19
  "source-map": "^0.8.0-beta.0",
20
20
  "ws": "8.7.0",
21
- "remotion": "4.0.40"
21
+ "remotion": "4.0.42"
22
22
  },
23
23
  "peerDependencies": {
24
24
  "react": ">=16.8.0",
@@ -40,13 +40,13 @@
40
40
  "vitest": "0.31.1"
41
41
  },
42
42
  "optionalDependencies": {
43
- "@remotion/compositor-darwin-arm64": "4.0.40",
44
- "@remotion/compositor-darwin-x64": "4.0.40",
45
- "@remotion/compositor-linux-x64-gnu": "4.0.40",
46
- "@remotion/compositor-linux-arm64-musl": "4.0.40",
47
- "@remotion/compositor-linux-arm64-gnu": "4.0.40",
48
- "@remotion/compositor-win32-x64-msvc": "4.0.40",
49
- "@remotion/compositor-linux-x64-musl": "4.0.40"
43
+ "@remotion/compositor-darwin-arm64": "4.0.42",
44
+ "@remotion/compositor-darwin-x64": "4.0.42",
45
+ "@remotion/compositor-linux-arm64-gnu": "4.0.42",
46
+ "@remotion/compositor-linux-arm64-musl": "4.0.42",
47
+ "@remotion/compositor-linux-x64-gnu": "4.0.42",
48
+ "@remotion/compositor-linux-x64-musl": "4.0.42",
49
+ "@remotion/compositor-win32-x64-msvc": "4.0.42"
50
50
  },
51
51
  "keywords": [
52
52
  "remotion",
@@ -1,8 +0,0 @@
1
- export declare const deleteAfterOption: {
2
- name: string;
3
- cliFlag: "delete-after";
4
- description: () => JSX.Element;
5
- ssrName: "deleteAfter";
6
- docLink: string;
7
- type: number | null;
8
- };
@@ -1,14 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.deleteAfterOption = void 0;
4
- const jsx_runtime_1 = require("react/jsx-runtime");
5
- exports.deleteAfterOption = {
6
- name: 'Render expiry days',
7
- cliFlag: 'delete-after',
8
- description: () => {
9
- return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: ["Automatically delete the render after a certain period. Accepted values are ", (0, jsx_runtime_1.jsx)("code", { children: "1-day" }), ", ", (0, jsx_runtime_1.jsx)("code", { children: "3-days" }), ", ", (0, jsx_runtime_1.jsx)("code", { children: "7-days" }), " and", ' ', (0, jsx_runtime_1.jsx)("code", { children: "30-days" }), ".", (0, jsx_runtime_1.jsx)("br", {}), " For this to work, your bucket needs to have", ' ', (0, jsx_runtime_1.jsx)("a", { href: "/docs/lambda/autodelete", children: "lifecycles enabled" }), "."] }));
10
- },
11
- ssrName: 'deleteAfter',
12
- docLink: 'https://www.remotion.dev/docs/autodelete',
13
- type: 0,
14
- };
@@ -1,7 +0,0 @@
1
- import type { Codec } from './codec';
2
- export declare const x264PresetOptions: readonly ["ultrafast", "superfast", "veryfast", "faster", "fast", "medium", "slow", "slower", "veryslow", "placebo"];
3
- export type x264Preset = typeof x264PresetOptions[number];
4
- export declare const validateSelectedCodecAndPresetCombination: ({ codec, x264Preset, }: {
5
- codec: Codec;
6
- x264Preset: "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "medium" | "slow" | "slower" | "veryslow" | "placebo" | undefined;
7
- }) => void;
@@ -1,27 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.validateSelectedCodecAndPresetCombination = exports.x264PresetOptions = void 0;
4
- exports.x264PresetOptions = [
5
- 'ultrafast',
6
- 'superfast',
7
- 'veryfast',
8
- 'faster',
9
- 'fast',
10
- 'medium',
11
- 'slow',
12
- 'slower',
13
- 'veryslow',
14
- 'placebo',
15
- ];
16
- const validateSelectedCodecAndPresetCombination = ({ codec, x264Preset, }) => {
17
- if (typeof x264Preset !== 'undefined' && codec !== 'h264') {
18
- throw new TypeError(`You have set a Preset profile but the codec is "${codec}". Set the codec to "h264" or remove the Preset profile.`);
19
- }
20
- if (x264Preset !== undefined &&
21
- !exports.x264PresetOptions.includes(x264Preset)) {
22
- throw new TypeError(`The Preset profile "${x264Preset}" is not valid. Valid options are ${exports.x264PresetOptions
23
- .map((p) => `"${p}"`)
24
- .join(', ')}`);
25
- }
26
- };
27
- exports.validateSelectedCodecAndPresetCombination = validateSelectedCodecAndPresetCombination;