@remotion/renderer 4.0.137 → 4.0.138

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 (47) hide show
  1. package/dist/assets/read-file.d.ts +1 -0
  2. package/dist/browser/BrowserPage.d.ts +1 -1
  3. package/dist/browser/BrowserPage.js +1 -1
  4. package/dist/browser/BrowserRunner.js +2 -2
  5. package/dist/browser/NodeWebSocketTransport.js +1 -1
  6. package/dist/browser/should-log-message.js +6 -0
  7. package/dist/client.d.ts +15 -15
  8. package/dist/combine-video-streams.js +6 -2
  9. package/dist/ensure-browser.js +1 -1
  10. package/dist/get-compositions.js +1 -1
  11. package/dist/get-local-browser.js +1 -1
  12. package/dist/index.d.ts +18 -16
  13. package/dist/offthread-video-server.d.ts +1 -0
  14. package/dist/open-browser.js +11 -11
  15. package/dist/options/gl.d.ts +3 -3
  16. package/dist/options/index.d.ts +6 -6
  17. package/dist/options/options-map.d.ts +9 -9
  18. package/dist/options/x264-preset.d.ts +2 -2
  19. package/dist/port-config.d.ts +1 -0
  20. package/dist/render-frames.js +1 -1
  21. package/dist/render-media.js +1 -1
  22. package/dist/render-still.js +1 -1
  23. package/dist/screenshot-task.js +2 -2
  24. package/dist/select-composition.js +1 -1
  25. package/dist/serve-handler/index.d.ts +1 -0
  26. package/dist/stitch-frames-to-video.d.ts +1 -0
  27. package/dist/ws/ws-types.d.ts +2 -0
  28. package/dist/ws/ws-types.js +0 -3
  29. package/package.json +14 -13
  30. package/dist/audio-codec.d.ts +0 -28
  31. package/dist/audio-codec.js +0 -88
  32. package/dist/calculate-ffmpeg-filters.d.ts +0 -12
  33. package/dist/calculate-ffmpeg-filters.js +0 -24
  34. package/dist/check-apple-silicon.d.ts +0 -1
  35. package/dist/check-apple-silicon.js +0 -12
  36. package/dist/create-combined-video.d.ts +0 -18
  37. package/dist/create-combined-video.js +0 -27
  38. package/dist/does-have-m2-bug.d.ts +0 -3
  39. package/dist/does-have-m2-bug.js +0 -12
  40. package/dist/get-extension-from-audio-codec.d.ts +0 -2
  41. package/dist/get-extension-from-audio-codec.js +0 -19
  42. package/dist/is-audio-codec.d.ts +0 -2
  43. package/dist/is-audio-codec.js +0 -7
  44. package/dist/options/prores-profile.d.ts +0 -0
  45. package/dist/options/prores-profile.js +0 -1
  46. package/dist/x264-preset.d.ts +0 -22
  47. package/dist/x264-preset.js +0 -54
@@ -1,2 +1,3 @@
1
+ /// <reference types="node" />
1
2
  import http from 'node:http';
2
3
  export declare const readFile: (url: string, redirectsSoFar?: number) => Promise<http.IncomingMessage>;
@@ -8,9 +8,9 @@ import type { Frame } from './FrameManager';
8
8
  import type { HTTPResponse } from './HTTPResponse';
9
9
  import type { JSHandle } from './JSHandle';
10
10
  import type { Viewport } from './PuppeteerViewport';
11
- import type { SourceMapGetter } from './source-map-getter';
12
11
  import type { Target } from './Target';
13
12
  import { TaskQueue } from './TaskQueue';
13
+ import type { SourceMapGetter } from './source-map-getter';
14
14
  interface WaitForOptions {
15
15
  timeout?: number;
16
16
  }
@@ -32,13 +32,13 @@ const no_react_1 = require("remotion/no-react");
32
32
  const format_logs_1 = require("../format-logs");
33
33
  const logger_1 = require("../logger");
34
34
  const truthy_1 = require("../truthy");
35
- const assert_1 = require("./assert");
36
35
  const ConsoleMessage_1 = require("./ConsoleMessage");
37
36
  const EventEmitter_1 = require("./EventEmitter");
38
37
  const FrameManager_1 = require("./FrameManager");
39
38
  const JSHandle_1 = require("./JSHandle");
40
39
  const TaskQueue_1 = require("./TaskQueue");
41
40
  const TimeoutSettings_1 = require("./TimeoutSettings");
41
+ const assert_1 = require("./assert");
42
42
  const util_1 = require("./util");
43
43
  const shouldHideWarning = (log) => {
44
44
  // Mixed Content warnings caused by localhost should not be displayed
@@ -57,10 +57,10 @@ const readline = __importStar(require("readline"));
57
57
  const delete_directory_1 = require("../delete-directory");
58
58
  const logger_1 = require("../logger");
59
59
  const truthy_1 = require("../truthy");
60
- const assert_1 = require("./assert");
61
60
  const Connection_1 = require("./Connection");
62
61
  const Errors_1 = require("./Errors");
63
62
  const NodeWebSocketTransport_1 = require("./NodeWebSocketTransport");
63
+ const assert_1 = require("./assert");
64
64
  const should_log_message_1 = require("./should-log-message");
65
65
  const util_1 = require("./util");
66
66
  const PROCESS_ERROR_EXPLANATION = `Puppeteer was unable to kill the process which ran the browser binary.
@@ -115,7 +115,7 @@ class BrowserRunner {
115
115
  return;
116
116
  }
117
117
  const { output, tag } = formatted;
118
- logger_1.Log.verbose({ indent: options.indent, logLevel: options.logLevel, tag }, output);
118
+ logger_1.Log.error({ indent: options.indent, logLevel: options.logLevel, tag }, output);
119
119
  }
120
120
  });
121
121
  }
@@ -37,7 +37,7 @@ class NodeWebSocketTransport {
37
37
  const ws = new ws_types_1.ws(url, [], {
38
38
  followRedirects: true,
39
39
  perMessageDeflate: false,
40
- maxPayload: 1024 * 1024 * 1024,
40
+ maxPayload: 1024 * 1024 * 1024, // 1024Mb
41
41
  headers: {
42
42
  'User-Agent': `Remotion CLI`,
43
43
  },
@@ -24,6 +24,12 @@ const shouldLogBrowserMessage = (message) => {
24
24
  if (message.includes('Fontconfig error: No writable cache directories')) {
25
25
  return false;
26
26
  }
27
+ if (message.includes('AttributionReportingCrossAppWeb cannot be enabled in this configuration')) {
28
+ return false;
29
+ }
30
+ if (message.includes('Received HEADERS for invalid stream')) {
31
+ return false;
32
+ }
27
33
  return true;
28
34
  };
29
35
  exports.shouldLogBrowserMessage = shouldLogBrowserMessage;
package/dist/client.d.ts CHANGED
@@ -464,19 +464,19 @@ export declare const BrowserSafeApis: {
464
464
  cliFlag: "gl";
465
465
  docLink: string;
466
466
  name: string;
467
- type: "swangle" | "angle" | "egl" | "swiftshader" | "vulkan" | "angle-egl" | null;
467
+ type: "angle" | "swangle" | "egl" | "swiftshader" | "vulkan" | "angle-egl" | null;
468
468
  ssrName: string;
469
469
  description: () => import("react/jsx-runtime").JSX.Element;
470
470
  getValue: ({ commandLine }: {
471
471
  commandLine: Record<string, unknown>;
472
472
  }) => {
473
- value: "swangle" | "angle" | "egl" | "swiftshader" | "vulkan" | "angle-egl";
473
+ value: "angle" | "swangle" | "egl" | "swiftshader" | "vulkan" | "angle-egl";
474
474
  source: string;
475
475
  } | {
476
476
  value: null;
477
477
  source: string;
478
478
  };
479
- setConfig: (value: "swangle" | "angle" | "egl" | "swiftshader" | "vulkan" | "angle-egl" | null) => void;
479
+ setConfig: (value: "angle" | "swangle" | "egl" | "swiftshader" | "vulkan" | "angle-egl" | null) => void;
480
480
  };
481
481
  enableLambdaInsights: {
482
482
  name: string;
@@ -601,17 +601,17 @@ export declare const BrowserSafeApis: {
601
601
  description: () => import("react/jsx-runtime").JSX.Element;
602
602
  ssrName: "x264Preset";
603
603
  docLink: string;
604
- type: "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "medium" | "slow" | "slower" | "veryslow" | "placebo" | null;
604
+ type: "medium" | "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "slow" | "slower" | "veryslow" | "placebo" | null;
605
605
  getValue: ({ commandLine }: {
606
606
  commandLine: Record<string, unknown>;
607
607
  }) => {
608
- value: "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "medium" | "slow" | "slower" | "veryslow" | "placebo";
608
+ value: "medium" | "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "slow" | "slower" | "veryslow" | "placebo";
609
609
  source: string;
610
610
  } | {
611
611
  value: null;
612
612
  source: string;
613
613
  };
614
- setConfig: (profile: "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "medium" | "slow" | "slower" | "veryslow" | "placebo" | null) => void;
614
+ setConfig: (profile: "medium" | "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "slow" | "slower" | "veryslow" | "placebo" | null) => void;
615
615
  };
616
616
  logLevelOption: {
617
617
  cliFlag: "log";
@@ -846,17 +846,17 @@ export declare const BrowserSafeApis: {
846
846
  description: () => import("react/jsx-runtime").JSX.Element;
847
847
  ssrName: "x264Preset";
848
848
  docLink: string;
849
- type: "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "medium" | "slow" | "slower" | "veryslow" | "placebo" | null;
849
+ type: "medium" | "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "slow" | "slower" | "veryslow" | "placebo" | null;
850
850
  getValue: ({ commandLine }: {
851
851
  commandLine: Record<string, unknown>;
852
852
  }) => {
853
- value: "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "medium" | "slow" | "slower" | "veryslow" | "placebo";
853
+ value: "medium" | "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "slow" | "slower" | "veryslow" | "placebo";
854
854
  source: string;
855
855
  } | {
856
856
  value: null;
857
857
  source: string;
858
858
  };
859
- setConfig: (profile: "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "medium" | "slow" | "slower" | "veryslow" | "placebo" | null) => void;
859
+ setConfig: (profile: "medium" | "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "slow" | "slower" | "veryslow" | "placebo" | null) => void;
860
860
  };
861
861
  readonly audioBitrate: {
862
862
  name: string;
@@ -1568,17 +1568,17 @@ export declare const BrowserSafeApis: {
1568
1568
  description: () => import("react/jsx-runtime").JSX.Element;
1569
1569
  ssrName: "x264Preset";
1570
1570
  docLink: string;
1571
- type: "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "medium" | "slow" | "slower" | "veryslow" | "placebo" | null;
1571
+ type: "medium" | "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "slow" | "slower" | "veryslow" | "placebo" | null;
1572
1572
  getValue: ({ commandLine }: {
1573
1573
  commandLine: Record<string, unknown>;
1574
1574
  }) => {
1575
- value: "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "medium" | "slow" | "slower" | "veryslow" | "placebo";
1575
+ value: "medium" | "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "slow" | "slower" | "veryslow" | "placebo";
1576
1576
  source: string;
1577
1577
  } | {
1578
1578
  value: null;
1579
1579
  source: string;
1580
1580
  };
1581
- setConfig: (profile: "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "medium" | "slow" | "slower" | "veryslow" | "placebo" | null) => void;
1581
+ setConfig: (profile: "medium" | "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "slow" | "slower" | "veryslow" | "placebo" | null) => void;
1582
1582
  };
1583
1583
  readonly encodingMaxRate: {
1584
1584
  name: string;
@@ -1934,17 +1934,17 @@ export declare const BrowserSafeApis: {
1934
1934
  description: () => import("react/jsx-runtime").JSX.Element;
1935
1935
  ssrName: "x264Preset";
1936
1936
  docLink: string;
1937
- type: "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "medium" | "slow" | "slower" | "veryslow" | "placebo" | null;
1937
+ type: "medium" | "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "slow" | "slower" | "veryslow" | "placebo" | null;
1938
1938
  getValue: ({ commandLine }: {
1939
1939
  commandLine: Record<string, unknown>;
1940
1940
  }) => {
1941
- value: "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "medium" | "slow" | "slower" | "veryslow" | "placebo";
1941
+ value: "medium" | "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "slow" | "slower" | "veryslow" | "placebo";
1942
1942
  source: string;
1943
1943
  } | {
1944
1944
  value: null;
1945
1945
  source: string;
1946
1946
  };
1947
- setConfig: (profile: "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "medium" | "slow" | "slower" | "veryslow" | "placebo" | null) => void;
1947
+ setConfig: (profile: "medium" | "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "slow" | "slower" | "veryslow" | "placebo" | null) => void;
1948
1948
  };
1949
1949
  readonly encodingMaxRate: {
1950
1950
  name: string;
@@ -14,6 +14,7 @@ const combineVideoStreams = async ({ fps, codec, filelistDir, numberOfGifLoops,
14
14
  const fileList = files.map((p) => `file '${p}'`).join('\n');
15
15
  const fileListTxt = (0, path_1.join)(filelistDir, 'video-files.txt');
16
16
  (0, fs_1.writeFileSync)(fileListTxt, fileList);
17
+ const encoder = codec === 'gif' ? 'gif' : 'copy';
17
18
  const command = [
18
19
  '-hide_banner',
19
20
  '-r',
@@ -30,7 +31,9 @@ const combineVideoStreams = async ({ fps, codec, filelistDir, numberOfGifLoops,
30
31
  : (0, convert_number_of_gif_loops_to_ffmpeg_1.convertNumberOfGifLoopsToFfmpegSyntax)(numberOfGifLoops),
31
32
  '-an',
32
33
  '-c:v',
33
- codec === 'gif' ? 'gif' : 'copy',
34
+ encoder,
35
+ encoder === 'gif' ? '-filter_complex' : null,
36
+ encoder === 'gif' ? 'split[v],palettegen,[v]paletteuse' : null,
34
37
  codec === 'h264' ? '-movflags' : null,
35
38
  codec === 'h264' ? 'faststart' : null,
36
39
  addRemotionMetadata ? `-metadata` : null,
@@ -38,8 +41,9 @@ const combineVideoStreams = async ({ fps, codec, filelistDir, numberOfGifLoops,
38
41
  '-y',
39
42
  output,
40
43
  ].filter(truthy_1.truthy);
44
+ const doesReencode = encoder !== 'copy';
41
45
  const startTime = Date.now();
42
- logger_1.Log.verbose({ indent, logLevel }, `Combining video without re-encoding, command: ${command.join(' ')}`);
46
+ logger_1.Log.verbose({ indent, logLevel }, `Combining video ${doesReencode ? 'with reencoding' : 'without reencoding'}, command: ${command.join(' ')}`);
43
47
  try {
44
48
  const task = (0, call_ffmpeg_1.callFf)({
45
49
  args: command,
@@ -5,8 +5,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.ensureBrowser = exports.internalEnsureBrowser = void 0;
7
7
  const fs_1 = __importDefault(require("fs"));
8
- const browser_download_progress_bar_1 = require("./browser/browser-download-progress-bar");
9
8
  const BrowserFetcher_1 = require("./browser/BrowserFetcher");
9
+ const browser_download_progress_bar_1 = require("./browser/browser-download-progress-bar");
10
10
  const get_local_browser_1 = require("./get-local-browser");
11
11
  const internalEnsureBrowser = async ({ indent, logLevel, browserExecutable, onBrowserDownload, }) => {
12
12
  const status = getBrowserStatus(browserExecutable);
@@ -2,8 +2,8 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getCompositions = exports.internalGetCompositions = void 0;
4
4
  const no_react_1 = require("remotion/no-react");
5
- const browser_download_progress_bar_1 = require("./browser/browser-download-progress-bar");
6
5
  const TimeoutSettings_1 = require("./browser/TimeoutSettings");
6
+ const browser_download_progress_bar_1 = require("./browser/browser-download-progress-bar");
7
7
  const handle_javascript_exception_1 = require("./error-handling/handle-javascript-exception");
8
8
  const find_closest_package_json_1 = require("./find-closest-package-json");
9
9
  const get_browser_instance_1 = require("./get-browser-instance");
@@ -15,7 +15,7 @@ const getSearchPathsForProduct = () => {
15
15
  : null,
16
16
  process.platform === 'linux' ? '/usr/bin/google-chrome' : null,
17
17
  process.platform === 'linux' ? '/usr/bin/chromium-browser' : null,
18
- process.platform === 'linux' ? '/usr/bin/chromium' : null,
18
+ process.platform === 'linux' ? '/usr/bin/chromium' : null, // Debian
19
19
  process.platform === 'linux'
20
20
  ? '/app/.apt/usr/bin/google-chrome-stable'
21
21
  : null,
package/dist/index.d.ts CHANGED
@@ -1,3 +1,5 @@
1
+ /// <reference types="node" />
2
+ /// <reference types="node" />
1
3
  import execa from 'execa';
2
4
  import { HeadlessBrowser } from './browser/Browser';
3
5
  import { SymbolicateableError } from './error-handling/symbolicateable-error';
@@ -10,16 +12,16 @@ export { BrowserLog } from './browser-log';
10
12
  export type { HeadlessBrowser } from './browser/Browser';
11
13
  export { Codec, CodecOrUndefined } from './codec';
12
14
  export { Crf } from './crf';
13
- export { ensureBrowser, EnsureBrowserOptions } from './ensure-browser';
15
+ export { EnsureBrowserOptions, ensureBrowser } from './ensure-browser';
14
16
  export { ErrorWithStackFrame } from './error-handling/handle-javascript-exception';
15
17
  export { extractAudio } from './extract-audio';
16
18
  export type { FfmpegOverrideFn } from './ffmpeg-override';
17
19
  export { FileExtension } from './file-extensions';
18
20
  export { FrameRange } from './frame-range';
19
- export { getCompositions, GetCompositionsOptions } from './get-compositions';
21
+ export { GetCompositionsOptions, getCompositions } from './get-compositions';
20
22
  export { getSilentParts } from './get-silent-parts';
21
- export { getVideoMetadata, VideoMetadata } from './get-video-metadata';
22
- export { ImageFormat, StillImageFormat, validateSelectedPixelFormatAndImageFormatCombination, VideoImageFormat, } from './image-format';
23
+ export { VideoMetadata, getVideoMetadata } from './get-video-metadata';
24
+ export { ImageFormat, StillImageFormat, VideoImageFormat, validateSelectedPixelFormatAndImageFormatCombination, } from './image-format';
23
25
  export type { LogLevel } from './log-level';
24
26
  export { LogOptions } from './logger';
25
27
  export { CancelSignal, makeCancelSignal } from './make-cancel-signal';
@@ -35,11 +37,11 @@ export { X264Preset } from './options/x264-preset';
35
37
  export { PixelFormat } from './pixel-format';
36
38
  export { RemotionServer } from './prepare-server';
37
39
  export { ProResProfile } from './prores-profile';
38
- export { renderFrames, RenderFramesOptions } from './render-frames';
39
- export { InternalRenderMediaOptions, renderMedia, RenderMediaOnProgress, RenderMediaOptions, SlowFrame, StitchingState, } from './render-media';
40
- export { renderStill, RenderStillOptions } from './render-still';
41
- export { selectComposition, SelectCompositionOptions, } from './select-composition';
42
- export { stitchFramesToVideo, StitchFramesToVideoOptions, } from './stitch-frames-to-video';
40
+ export { RenderFramesOptions, renderFrames } from './render-frames';
41
+ export { InternalRenderMediaOptions, RenderMediaOnProgress, RenderMediaOptions, SlowFrame, StitchingState, renderMedia, } from './render-media';
42
+ export { RenderStillOptions, renderStill } from './render-still';
43
+ export { SelectCompositionOptions, selectComposition, } from './select-composition';
44
+ export { StitchFramesToVideoOptions, stitchFramesToVideo, } from './stitch-frames-to-video';
43
45
  export { SymbolicatedStackFrame } from './symbolicate-stacktrace';
44
46
  export { OnStartData, RenderFramesOutput } from './types';
45
47
  export { validateOutputFilename } from './validate-output-filename';
@@ -138,8 +140,8 @@ export declare const RenderInternals: {
138
140
  validPixelFormats: readonly ["yuv420p", "yuva420p", "yuv422p", "yuv444p", "yuv420p10le", "yuv422p10le", "yuv444p10le", "yuva444p10le"];
139
141
  DEFAULT_BROWSER: "chrome";
140
142
  validateFrameRange: (frameRange: import("./frame-range").FrameRange | null) => void;
141
- DEFAULT_OPENGL_RENDERER: "swangle" | "angle" | "egl" | "swiftshader" | "vulkan" | "angle-egl" | null;
142
- validateOpenGlRenderer: (option: unknown) => "swangle" | "angle" | "egl" | "swiftshader" | "vulkan" | "angle-egl" | null;
143
+ DEFAULT_OPENGL_RENDERER: "angle" | "swangle" | "egl" | "swiftshader" | "vulkan" | "angle-egl" | null;
144
+ validateOpenGlRenderer: (option: unknown) => "angle" | "swangle" | "egl" | "swiftshader" | "vulkan" | "angle-egl" | null;
143
145
  validCodecs: readonly ["h264", "h265", "vp8", "vp9", "mp3", "aac", "wav", "prores", "h264-mkv", "h264-ts", "gif"];
144
146
  DEFAULT_PIXEL_FORMAT: "yuv420p" | "yuva420p" | "yuv422p" | "yuv444p" | "yuv420p10le" | "yuv422p10le" | "yuv444p10le" | "yuva444p10le";
145
147
  validateJpegQuality: (q: unknown) => void;
@@ -334,7 +336,7 @@ export declare const RenderInternals: {
334
336
  makeFileExtensionMap: () => Record<string, ("h264" | "h265" | "vp8" | "vp9" | "mp3" | "aac" | "wav" | "prores" | "h264-mkv" | "h264-ts" | "gif")[]>;
335
337
  defaultCodecsForFileExtension: Record<import("./file-extensions").FileExtension, "h264" | "h265" | "vp8" | "vp9" | "mp3" | "aac" | "wav" | "prores" | "h264-mkv" | "h264-ts" | "gif">;
336
338
  getExecutablePath: ({ indent, logLevel, type, binariesDirectory, }: {
337
- type: "ffmpeg" | "ffprobe" | "compositor";
339
+ type: "compositor" | "ffmpeg" | "ffprobe";
338
340
  indent: boolean;
339
341
  logLevel: "verbose" | "info" | "warn" | "error";
340
342
  binariesDirectory: string | null;
@@ -350,8 +352,8 @@ export declare const RenderInternals: {
350
352
  }) => execa.ExecaChildProcess<string>;
351
353
  validStillImageFormats: readonly ["png", "jpeg", "pdf", "webp"];
352
354
  validVideoImageFormats: readonly ["png", "jpeg", "none"];
353
- DEFAULT_STILL_IMAGE_FORMAT: "png" | "jpeg" | "pdf" | "webp";
354
- DEFAULT_VIDEO_IMAGE_FORMAT: "png" | "jpeg" | "none";
355
+ DEFAULT_STILL_IMAGE_FORMAT: "jpeg" | "png" | "webp" | "pdf";
356
+ DEFAULT_VIDEO_IMAGE_FORMAT: "jpeg" | "png" | "none";
355
357
  DEFAULT_JPEG_QUALITY: number;
356
358
  chalk: {
357
359
  enabled: () => boolean;
@@ -450,7 +452,7 @@ export declare const RenderInternals: {
450
452
  frame: number;
451
453
  serializedInputPropsWithCustomSchema: string;
452
454
  serializedResolvedPropsWithCustomSchema: string;
453
- imageFormat: "png" | "jpeg" | "pdf" | "webp";
455
+ imageFormat: "jpeg" | "png" | "webp" | "pdf";
454
456
  jpegQuality: number;
455
457
  puppeteerInstance: HeadlessBrowser | null;
456
458
  envVariables: Record<string, string>;
@@ -781,7 +783,7 @@ export declare const RenderInternals: {
781
783
  assetsInfo: import("./assets/download-map").RenderAssetInfo | null;
782
784
  enforceAudioTrack: boolean;
783
785
  muted: boolean;
784
- }) => "yes" | "maybe" | "no";
786
+ }) => "no" | "yes" | "maybe";
785
787
  codecSupportsMedia: (codec: "h264" | "h265" | "vp8" | "vp9" | "mp3" | "aac" | "wav" | "prores" | "h264-mkv" | "h264-ts" | "gif") => {
786
788
  video: boolean;
787
789
  audio: boolean;
@@ -1,3 +1,4 @@
1
+ /// <reference types="node" />
1
2
  import type { RequestListener } from 'node:http';
2
3
  import type { DownloadMap } from './assets/download-map';
3
4
  import type { Compositor } from './compositor/compositor';
@@ -108,18 +108,18 @@ const internalOpenBrowser = async ({ browser, browserExecutable, chromiumOptions
108
108
  !enableMultiProcessOnLinux
109
109
  ? '--single-process'
110
110
  : null,
111
- '--allow-running-insecure-content',
112
- '--disable-component-update',
113
- '--disable-domain-reliability',
114
- '--disable-features=AudioServiceOutOfProcess,IsolateOrigins,site-per-process,Translate,BackForwardCache,AvoidUnnecessaryBeforeUnloadCheckSync,IntensiveWakeUpThrottling',
115
- '--disable-print-preview',
116
- '--disable-site-isolation-trials',
117
- '--disk-cache-size=268435456',
118
- '--hide-scrollbars',
119
- '--no-default-browser-check',
120
- '--no-pings',
111
+ '--allow-running-insecure-content', // https://source.chromium.org/search?q=lang:cpp+symbol:kAllowRunningInsecureContent&ss=chromium
112
+ '--disable-component-update', // https://source.chromium.org/search?q=lang:cpp+symbol:kDisableComponentUpdate&ss=chromium
113
+ '--disable-domain-reliability', // https://source.chromium.org/search?q=lang:cpp+symbol:kDisableDomainReliability&ss=chromium
114
+ '--disable-features=AudioServiceOutOfProcess,IsolateOrigins,site-per-process,Translate,BackForwardCache,AvoidUnnecessaryBeforeUnloadCheckSync,IntensiveWakeUpThrottling', // https://source.chromium.org/search?q=file:content_features.cc&ss=chromium
115
+ '--disable-print-preview', // https://source.chromium.org/search?q=lang:cpp+symbol:kDisablePrintPreview&ss=chromium
116
+ '--disable-site-isolation-trials', // https://source.chromium.org/search?q=lang:cpp+symbol:kDisableSiteIsolation&ss=chromium
117
+ '--disk-cache-size=268435456', // https://source.chromium.org/search?q=lang:cpp+symbol:kDiskCacheSize&ss=chromium
118
+ '--hide-scrollbars', // https://source.chromium.org/search?q=lang:cpp+symbol:kHideScrollbars&ss=chromium
119
+ '--no-default-browser-check', // https://source.chromium.org/search?q=lang:cpp+symbol:kNoDefaultBrowserCheck&ss=chromium
120
+ '--no-pings', // https://source.chromium.org/search?q=lang:cpp+symbol:kNoPings&ss=chromium
121
121
  '--font-render-hinting=none',
122
- '--no-zygote',
122
+ '--no-zygote', // https://source.chromium.org/search?q=lang:cpp+symbol:kNoZygote&ss=chromium,
123
123
  typeof forceDeviceScaleFactor === 'undefined'
124
124
  ? null
125
125
  : `--force-device-scale-factor=${forceDeviceScaleFactor}`,
@@ -1,19 +1,19 @@
1
1
  export declare const validOpenGlRenderers: readonly ["swangle", "angle", "egl", "swiftshader", "vulkan", "angle-egl"];
2
2
  export type OpenGlRenderer = (typeof validOpenGlRenderers)[number];
3
3
  export declare const DEFAULT_OPENGL_RENDERER: OpenGlRenderer | null;
4
- export declare const getChromiumOpenGlRenderer: () => "swangle" | "angle" | "egl" | "swiftshader" | "vulkan" | "angle-egl" | null;
4
+ export declare const getChromiumOpenGlRenderer: () => "angle" | "swangle" | "egl" | "swiftshader" | "vulkan" | "angle-egl" | null;
5
5
  export declare const setChromiumOpenGlRenderer: (renderer: OpenGlRenderer) => void;
6
6
  export declare const glOption: {
7
7
  cliFlag: "gl";
8
8
  docLink: string;
9
9
  name: string;
10
- type: "swangle" | "angle" | "egl" | "swiftshader" | "vulkan" | "angle-egl" | null;
10
+ type: "angle" | "swangle" | "egl" | "swiftshader" | "vulkan" | "angle-egl" | null;
11
11
  ssrName: string;
12
12
  description: () => import("react/jsx-runtime").JSX.Element;
13
13
  getValue: ({ commandLine }: {
14
14
  commandLine: Record<string, unknown>;
15
15
  }) => {
16
- value: "swangle" | "angle" | "egl" | "swiftshader" | "vulkan" | "angle-egl";
16
+ value: "angle" | "swangle" | "egl" | "swiftshader" | "vulkan" | "angle-egl";
17
17
  source: string;
18
18
  } | {
19
19
  value: null;
@@ -245,19 +245,19 @@ export declare const allOptions: {
245
245
  cliFlag: "gl";
246
246
  docLink: string;
247
247
  name: string;
248
- type: "swangle" | "angle" | "egl" | "swiftshader" | "vulkan" | "angle-egl" | null;
248
+ type: "angle" | "swangle" | "egl" | "swiftshader" | "vulkan" | "angle-egl" | null;
249
249
  ssrName: string;
250
250
  description: () => import("react/jsx-runtime").JSX.Element;
251
251
  getValue: ({ commandLine }: {
252
252
  commandLine: Record<string, unknown>;
253
253
  }) => {
254
- value: "swangle" | "angle" | "egl" | "swiftshader" | "vulkan" | "angle-egl";
254
+ value: "angle" | "swangle" | "egl" | "swiftshader" | "vulkan" | "angle-egl";
255
255
  source: string;
256
256
  } | {
257
257
  value: null;
258
258
  source: string;
259
259
  };
260
- setConfig: (value: "swangle" | "angle" | "egl" | "swiftshader" | "vulkan" | "angle-egl" | null) => void;
260
+ setConfig: (value: "angle" | "swangle" | "egl" | "swiftshader" | "vulkan" | "angle-egl" | null) => void;
261
261
  };
262
262
  enableLambdaInsights: {
263
263
  name: string;
@@ -382,17 +382,17 @@ export declare const allOptions: {
382
382
  description: () => import("react/jsx-runtime").JSX.Element;
383
383
  ssrName: "x264Preset";
384
384
  docLink: string;
385
- type: "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "medium" | "slow" | "slower" | "veryslow" | "placebo" | null;
385
+ type: "medium" | "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "slow" | "slower" | "veryslow" | "placebo" | null;
386
386
  getValue: ({ commandLine }: {
387
387
  commandLine: Record<string, unknown>;
388
388
  }) => {
389
- value: "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "medium" | "slow" | "slower" | "veryslow" | "placebo";
389
+ value: "medium" | "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "slow" | "slower" | "veryslow" | "placebo";
390
390
  source: string;
391
391
  } | {
392
392
  value: null;
393
393
  source: string;
394
394
  };
395
- setConfig: (profile: "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "medium" | "slow" | "slower" | "veryslow" | "placebo" | null) => void;
395
+ setConfig: (profile: "medium" | "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "slow" | "slower" | "veryslow" | "placebo" | null) => void;
396
396
  };
397
397
  logLevelOption: {
398
398
  cliFlag: "log";
@@ -72,17 +72,17 @@ export declare const optionsMap: {
72
72
  description: () => import("react/jsx-runtime").JSX.Element;
73
73
  ssrName: "x264Preset";
74
74
  docLink: string;
75
- type: "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "medium" | "slow" | "slower" | "veryslow" | "placebo" | null;
75
+ type: "medium" | "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "slow" | "slower" | "veryslow" | "placebo" | null;
76
76
  getValue: ({ commandLine }: {
77
77
  commandLine: Record<string, unknown>;
78
78
  }) => {
79
- value: "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "medium" | "slow" | "slower" | "veryslow" | "placebo";
79
+ value: "medium" | "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "slow" | "slower" | "veryslow" | "placebo";
80
80
  source: string;
81
81
  } | {
82
82
  value: null;
83
83
  source: string;
84
84
  };
85
- setConfig: (profile: "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "medium" | "slow" | "slower" | "veryslow" | "placebo" | null) => void;
85
+ setConfig: (profile: "medium" | "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "slow" | "slower" | "veryslow" | "placebo" | null) => void;
86
86
  };
87
87
  readonly audioBitrate: {
88
88
  name: string;
@@ -794,17 +794,17 @@ export declare const optionsMap: {
794
794
  description: () => import("react/jsx-runtime").JSX.Element;
795
795
  ssrName: "x264Preset";
796
796
  docLink: string;
797
- type: "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "medium" | "slow" | "slower" | "veryslow" | "placebo" | null;
797
+ type: "medium" | "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "slow" | "slower" | "veryslow" | "placebo" | null;
798
798
  getValue: ({ commandLine }: {
799
799
  commandLine: Record<string, unknown>;
800
800
  }) => {
801
- value: "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "medium" | "slow" | "slower" | "veryslow" | "placebo";
801
+ value: "medium" | "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "slow" | "slower" | "veryslow" | "placebo";
802
802
  source: string;
803
803
  } | {
804
804
  value: null;
805
805
  source: string;
806
806
  };
807
- setConfig: (profile: "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "medium" | "slow" | "slower" | "veryslow" | "placebo" | null) => void;
807
+ setConfig: (profile: "medium" | "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "slow" | "slower" | "veryslow" | "placebo" | null) => void;
808
808
  };
809
809
  readonly encodingMaxRate: {
810
810
  name: string;
@@ -1160,17 +1160,17 @@ export declare const optionsMap: {
1160
1160
  description: () => import("react/jsx-runtime").JSX.Element;
1161
1161
  ssrName: "x264Preset";
1162
1162
  docLink: string;
1163
- type: "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "medium" | "slow" | "slower" | "veryslow" | "placebo" | null;
1163
+ type: "medium" | "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "slow" | "slower" | "veryslow" | "placebo" | null;
1164
1164
  getValue: ({ commandLine }: {
1165
1165
  commandLine: Record<string, unknown>;
1166
1166
  }) => {
1167
- value: "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "medium" | "slow" | "slower" | "veryslow" | "placebo";
1167
+ value: "medium" | "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "slow" | "slower" | "veryslow" | "placebo";
1168
1168
  source: string;
1169
1169
  } | {
1170
1170
  value: null;
1171
1171
  source: string;
1172
1172
  };
1173
- setConfig: (profile: "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "medium" | "slow" | "slower" | "veryslow" | "placebo" | null) => void;
1173
+ setConfig: (profile: "medium" | "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "slow" | "slower" | "veryslow" | "placebo" | null) => void;
1174
1174
  };
1175
1175
  readonly encodingMaxRate: {
1176
1176
  name: string;
@@ -11,11 +11,11 @@ export declare const x264Option: {
11
11
  description: () => import("react/jsx-runtime").JSX.Element;
12
12
  ssrName: "x264Preset";
13
13
  docLink: string;
14
- type: "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "medium" | "slow" | "slower" | "veryslow" | "placebo" | null;
14
+ type: "medium" | "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "slow" | "slower" | "veryslow" | "placebo" | null;
15
15
  getValue: ({ commandLine }: {
16
16
  commandLine: Record<string, unknown>;
17
17
  }) => {
18
- value: "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "medium" | "slow" | "slower" | "veryslow" | "placebo";
18
+ value: "medium" | "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "slow" | "slower" | "veryslow" | "placebo";
19
19
  source: string;
20
20
  } | {
21
21
  value: null;
@@ -2,6 +2,7 @@
2
2
  /// <reference types="node" />
3
3
  /// <reference types="node" />
4
4
  /// <reference types="node" />
5
+ /// <reference types="node" />
5
6
  import type { NetworkInterfaceInfo } from 'os';
6
7
  import os from 'os';
7
8
  type PortConfig = {
@@ -10,9 +10,9 @@ const perf_hooks_1 = require("perf_hooks");
10
10
  const no_react_1 = require("remotion/no-react");
11
11
  const download_and_map_assets_to_file_1 = require("./assets/download-and-map-assets-to-file");
12
12
  const browser_1 = require("./browser");
13
+ const TimeoutSettings_1 = require("./browser/TimeoutSettings");
13
14
  const browser_download_progress_bar_1 = require("./browser/browser-download-progress-bar");
14
15
  const is_target_closed_err_1 = require("./browser/is-target-closed-err");
15
- const TimeoutSettings_1 = require("./browser/TimeoutSettings");
16
16
  const compress_assets_1 = require("./compress-assets");
17
17
  const cycle_browser_tabs_1 = require("./cycle-browser-tabs");
18
18
  const handle_javascript_exception_1 = require("./error-handling/handle-javascript-exception");
@@ -8,8 +8,8 @@ const node_fs_1 = __importDefault(require("node:fs"));
8
8
  const node_os_1 = __importDefault(require("node:os"));
9
9
  const node_path_1 = __importDefault(require("node:path"));
10
10
  const no_react_1 = require("remotion/no-react");
11
- const browser_download_progress_bar_1 = require("./browser/browser-download-progress-bar");
12
11
  const TimeoutSettings_1 = require("./browser/TimeoutSettings");
12
+ const browser_download_progress_bar_1 = require("./browser/browser-download-progress-bar");
13
13
  const can_use_parallel_encoding_1 = require("./can-use-parallel-encoding");
14
14
  const codec_supports_media_1 = require("./codec-supports-media");
15
15
  const crf_1 = require("./crf");
@@ -31,8 +31,8 @@ const node_fs_1 = __importStar(require("node:fs"));
31
31
  const node_path_1 = __importDefault(require("node:path"));
32
32
  const no_react_1 = require("remotion/no-react");
33
33
  const browser_1 = require("./browser");
34
- const browser_download_progress_bar_1 = require("./browser/browser-download-progress-bar");
35
34
  const TimeoutSettings_1 = require("./browser/TimeoutSettings");
35
+ const browser_download_progress_bar_1 = require("./browser/browser-download-progress-bar");
36
36
  const convert_to_positive_frame_index_1 = require("./convert-to-positive-frame-index");
37
37
  const ensure_output_directory_1 = require("./ensure-output-directory");
38
38
  const handle_javascript_exception_1 = require("./error-handling/handle-javascript-exception");
@@ -25,8 +25,8 @@ const screenshotTask = async ({ format, height, omitBackground, page, width, pat
25
25
  let result;
26
26
  if (format === 'pdf') {
27
27
  const res = await client.send('Page.printToPDF', {
28
- paperWidth: width / 96,
29
- paperHeight: height / 96,
28
+ paperWidth: width / 96, // Convert to Inch
29
+ paperHeight: height / 96, // Convert to Inch
30
30
  marginTop: 0,
31
31
  marginBottom: 0,
32
32
  marginLeft: 0,
@@ -2,8 +2,8 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.selectComposition = exports.internalSelectComposition = exports.internalSelectCompositionRaw = void 0;
4
4
  const no_react_1 = require("remotion/no-react");
5
- const browser_download_progress_bar_1 = require("./browser/browser-download-progress-bar");
6
5
  const TimeoutSettings_1 = require("./browser/TimeoutSettings");
6
+ const browser_download_progress_bar_1 = require("./browser/browser-download-progress-bar");
7
7
  const handle_javascript_exception_1 = require("./error-handling/handle-javascript-exception");
8
8
  const find_closest_package_json_1 = require("./find-closest-package-json");
9
9
  const get_browser_instance_1 = require("./get-browser-instance");
@@ -1,3 +1,4 @@
1
+ /// <reference types="node" />
1
2
  import type { IncomingMessage, ServerResponse } from 'node:http';
2
3
  export declare const serveHandler: (request: IncomingMessage, response: ServerResponse, config: {
3
4
  public: string;
@@ -1,3 +1,4 @@
1
+ /// <reference types="node" />
1
2
  import type { RenderMediaOnDownload } from './assets/download-and-map-assets-to-file';
2
3
  import type { RenderAssetInfo } from './assets/download-map';
3
4
  import type { Codec } from './codec';
@@ -1,3 +1,5 @@
1
+ /// <reference types="node" />
2
+ import type { URL } from 'node:url';
1
3
  export declare class WS {
2
4
  constructor(_url: URL, _anything: unknown[], _options: {
3
5
  followRedirects: true;
@@ -4,8 +4,5 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.ws = void 0;
7
- /* eslint-disable @typescript-eslint/no-unused-vars */
8
- // eslint-disable-next-line @typescript-eslint/prefer-ts-expect-error
9
- // @ts-ignore
10
7
  const ws_1 = __importDefault(require("ws"));
11
8
  exports.ws = ws_1.default;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@remotion/renderer",
3
- "version": "4.0.137",
3
+ "version": "4.0.138",
4
4
  "description": "Renderer for Remotion",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -18,35 +18,36 @@
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.137"
21
+ "remotion": "4.0.138"
22
22
  },
23
23
  "peerDependencies": {
24
24
  "react": ">=16.8.0",
25
25
  "react-dom": ">=16.8.0"
26
26
  },
27
27
  "devDependencies": {
28
- "@jonny/eslint-config": "3.0.276",
28
+ "@jonny/eslint-config": "3.0.281",
29
29
  "@testing-library/dom": "^8.16.0",
30
30
  "@testing-library/react": "13.3.0",
31
31
  "@types/node": "18.14.6",
32
32
  "@types/progress": "2.0.5",
33
33
  "@types/react": "18.2.48",
34
34
  "@types/react-dom": "18.2.18",
35
- "eslint": "8.42.0",
36
- "prettier": "3.1.1",
35
+ "eslint": "8.56.0",
36
+ "prettier": "3.2.5",
37
37
  "prettier-plugin-organize-imports": "3.2.4",
38
38
  "react": "18.2.0",
39
39
  "react-dom": "18.2.0",
40
- "vitest": "0.31.1"
40
+ "vitest": "0.31.1",
41
+ "@types/ws": "8.5.10"
41
42
  },
42
43
  "optionalDependencies": {
43
- "@remotion/compositor-linux-arm64-musl": "4.0.137",
44
- "@remotion/compositor-darwin-x64": "4.0.137",
45
- "@remotion/compositor-win32-x64-msvc": "4.0.137",
46
- "@remotion/compositor-linux-x64-musl": "4.0.137",
47
- "@remotion/compositor-linux-arm64-gnu": "4.0.137",
48
- "@remotion/compositor-linux-x64-gnu": "4.0.137",
49
- "@remotion/compositor-darwin-arm64": "4.0.137"
44
+ "@remotion/compositor-linux-arm64-gnu": "4.0.138",
45
+ "@remotion/compositor-darwin-arm64": "4.0.138",
46
+ "@remotion/compositor-darwin-x64": "4.0.138",
47
+ "@remotion/compositor-linux-arm64-musl": "4.0.138",
48
+ "@remotion/compositor-linux-x64-gnu": "4.0.138",
49
+ "@remotion/compositor-win32-x64-msvc": "4.0.138",
50
+ "@remotion/compositor-linux-x64-musl": "4.0.138"
50
51
  },
51
52
  "keywords": [
52
53
  "remotion",
@@ -1,28 +0,0 @@
1
- import type { Codec } from './codec';
2
- export declare const validAudioCodecs: readonly ["pcm-16", "aac", "mp3", "opus"];
3
- export type AudioCodec = (typeof validAudioCodecs)[number];
4
- export declare const supportedAudioCodecs: {
5
- readonly h264: readonly ["aac", "pcm-16", "mp3"];
6
- readonly 'h264-mkv': readonly ["pcm-16", "mp3"];
7
- readonly aac: readonly ["aac", "pcm-16"];
8
- readonly gif: readonly [];
9
- readonly h265: readonly ["aac", "pcm-16"];
10
- readonly mp3: readonly ["mp3", "pcm-16"];
11
- readonly prores: readonly ["aac", "pcm-16"];
12
- readonly vp8: readonly ["opus", "pcm-16"];
13
- readonly vp9: readonly ["opus", "pcm-16"];
14
- readonly wav: readonly ["pcm-16"];
15
- };
16
- declare const audioCodecNames: readonly ["pcm_s16le", "libfdk_aac", "libmp3lame", "libopus"];
17
- type FfmpegAudioCodecName = (typeof audioCodecNames)[number];
18
- export declare const mapAudioCodecToFfmpegAudioCodecName: (audioCodec: AudioCodec) => FfmpegAudioCodecName;
19
- export declare const defaultAudioCodecs: {
20
- [key in Codec]: {
21
- [k in 'compressed' | 'lossless']: (typeof supportedAudioCodecs)[key][number] | null;
22
- };
23
- };
24
- export declare const getDefaultAudioCodec: ({ codec, preferLossless, }: {
25
- codec: Codec;
26
- preferLossless: boolean;
27
- }) => AudioCodec | null;
28
- export {};
@@ -1,88 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getDefaultAudioCodec = exports.defaultAudioCodecs = exports.mapAudioCodecToFfmpegAudioCodecName = exports.supportedAudioCodecs = exports.validAudioCodecs = void 0;
4
- exports.validAudioCodecs = ['pcm-16', 'aac', 'mp3', 'opus'];
5
- exports.supportedAudioCodecs = {
6
- h264: ['aac', 'pcm-16', 'mp3'],
7
- 'h264-mkv': ['pcm-16', 'mp3'],
8
- aac: ['aac', 'pcm-16'],
9
- gif: [],
10
- h265: ['aac', 'pcm-16'],
11
- mp3: ['mp3', 'pcm-16'],
12
- prores: ['aac', 'pcm-16'],
13
- vp8: ['opus', 'pcm-16'],
14
- vp9: ['opus', 'pcm-16'],
15
- wav: ['pcm-16'],
16
- };
17
- const _satisfies = exports.supportedAudioCodecs;
18
- if (_satisfies) {
19
- // Just for type checking
20
- }
21
- const audioCodecNames = [
22
- 'pcm_s16le',
23
- 'libfdk_aac',
24
- 'libmp3lame',
25
- 'libopus',
26
- ];
27
- const mapAudioCodecToFfmpegAudioCodecName = (audioCodec) => {
28
- if (audioCodec === 'aac') {
29
- return 'libfdk_aac';
30
- }
31
- if (audioCodec === 'mp3') {
32
- return 'libmp3lame';
33
- }
34
- if (audioCodec === 'opus') {
35
- return 'libopus';
36
- }
37
- if (audioCodec === 'pcm-16') {
38
- return 'pcm_s16le';
39
- }
40
- throw new Error('unknown audio codec: ' + audioCodec);
41
- };
42
- exports.mapAudioCodecToFfmpegAudioCodecName = mapAudioCodecToFfmpegAudioCodecName;
43
- exports.defaultAudioCodecs = {
44
- 'h264-mkv': {
45
- lossless: 'pcm-16',
46
- compressed: 'pcm-16',
47
- },
48
- aac: {
49
- lossless: 'pcm-16',
50
- compressed: 'aac',
51
- },
52
- gif: {
53
- lossless: null,
54
- compressed: null,
55
- },
56
- h264: {
57
- lossless: 'pcm-16',
58
- compressed: 'aac',
59
- },
60
- h265: {
61
- lossless: 'pcm-16',
62
- compressed: 'aac',
63
- },
64
- mp3: {
65
- lossless: 'pcm-16',
66
- compressed: 'mp3',
67
- },
68
- prores: {
69
- lossless: 'pcm-16',
70
- compressed: 'pcm-16',
71
- },
72
- vp8: {
73
- lossless: 'pcm-16',
74
- compressed: 'opus',
75
- },
76
- vp9: {
77
- lossless: 'pcm-16',
78
- compressed: 'opus',
79
- },
80
- wav: {
81
- lossless: 'pcm-16',
82
- compressed: 'pcm-16',
83
- },
84
- };
85
- const getDefaultAudioCodec = ({ codec, preferLossless, }) => {
86
- return exports.defaultAudioCodecs[codec][preferLossless ? 'lossless' : 'compressed'];
87
- };
88
- exports.getDefaultAudioCodec = getDefaultAudioCodec;
@@ -1,12 +0,0 @@
1
- import type { MediaAsset } from './assets/types';
2
- import type { FilterWithoutPaddingApplied } from './stringify-ffmpeg-filter';
3
- export declare const calculateFfmpegFilter: ({ asset, fps, channels, assetDuration, trimLeftOffset, trimRightOffset, chunkLengthInSeconds, forSeamlessAacConcatenation, }: {
4
- asset: MediaAsset;
5
- fps: number;
6
- channels: number;
7
- assetDuration: number | null;
8
- trimLeftOffset: number;
9
- trimRightOffset: number;
10
- chunkLengthInSeconds: number;
11
- forSeamlessAacConcatenation: boolean;
12
- }) => FilterWithoutPaddingApplied | null;
@@ -1,24 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.calculateFfmpegFilter = void 0;
4
- const flatten_volume_array_1 = require("./assets/flatten-volume-array");
5
- const stringify_ffmpeg_filter_1 = require("./stringify-ffmpeg-filter");
6
- const calculateFfmpegFilter = ({ asset, fps, channels, assetDuration, trimLeftOffset, trimRightOffset, chunkLengthInSeconds, forSeamlessAacConcatenation, }) => {
7
- // TODO: Don't need this wrapper function anymore
8
- return (0, stringify_ffmpeg_filter_1.stringifyFfmpegFilter)({
9
- channels,
10
- startInVideo: asset.startInVideo,
11
- volume: (0, flatten_volume_array_1.flattenVolumeArray)(asset.volume),
12
- fps,
13
- playbackRate: asset.playbackRate,
14
- assetDuration,
15
- allowAmplificationDuringRender: asset.allowAmplificationDuringRender,
16
- toneFrequency: asset.toneFrequency,
17
- chunkLengthInSeconds,
18
- forSeamlessAacConcatenation,
19
- trimLeftOffset,
20
- trimRightOffset,
21
- asset,
22
- });
23
- };
24
- exports.calculateFfmpegFilter = calculateFfmpegFilter;
@@ -1 +0,0 @@
1
- export declare const checkNodeVersionAndWarnAboutRosetta: () => void;
@@ -1,12 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.checkNodeVersionAndWarnAboutRosetta = void 0;
4
- const checkNodeVersionAndWarnAboutRosetta = () => {
5
- const version = process.version.replace('v', '').split('.');
6
- const majorVersion = Number(version[0]);
7
- const requiredNodeVersion = 16;
8
- if (majorVersion < 16) {
9
- throw new Error(`Remotion requires at least Node ${requiredNodeVersion}. You currently have ${process.version}. Update your node version to ${requiredNodeVersion} to use Remotion.`);
10
- }
11
- };
12
- exports.checkNodeVersionAndWarnAboutRosetta = checkNodeVersionAndWarnAboutRosetta;
@@ -1,18 +0,0 @@
1
- import type { Codec } from './codec';
2
- import type { LogLevel } from './log-level';
3
- import type { CancelSignal } from './make-cancel-signal';
4
- export declare const createCombinedVideo: ({ addRemotionMetadata, binariesDirectory, cancelSignal, codec, filelistDir, files, fps, indent, logLevel, numberOfGifLoops, onProgress, output, seamless, }: {
5
- fps: number;
6
- codec: Codec;
7
- filelistDir: string;
8
- numberOfGifLoops: number | null;
9
- output: string;
10
- indent: boolean;
11
- logLevel: LogLevel;
12
- onProgress: (p: number) => void;
13
- files: string[];
14
- addRemotionMetadata: boolean;
15
- binariesDirectory: string | null;
16
- cancelSignal: CancelSignal | undefined;
17
- seamless: boolean;
18
- }) => Promise<string | undefined>;
@@ -1,27 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createCombinedVideo = void 0;
4
- const combine_video_streams_1 = require("./combine-video-streams");
5
- const combine_video_streams_seamlessly_1 = require("./combine-video-streams-seamlessly");
6
- const createCombinedVideo = async ({ addRemotionMetadata, binariesDirectory, cancelSignal, codec, filelistDir, files, fps, indent, logLevel, numberOfGifLoops, onProgress, output, seamless, }) => {
7
- if (seamless) {
8
- return (0, combine_video_streams_seamlessly_1.combineVideoStreamsSeamlessly)({
9
- files,
10
- });
11
- }
12
- await (0, combine_video_streams_1.combineVideoStreams)({
13
- addRemotionMetadata,
14
- binariesDirectory,
15
- cancelSignal,
16
- codec,
17
- filelistDir,
18
- files,
19
- fps,
20
- indent,
21
- logLevel,
22
- numberOfGifLoops,
23
- onProgress,
24
- output,
25
- });
26
- };
27
- exports.createCombinedVideo = createCombinedVideo;
@@ -1,3 +0,0 @@
1
- import type { Codec } from './codec';
2
- import type { PixelFormat } from './pixel-format';
3
- export declare const warnAboutM2Bug: (codec: Codec | null, pixelFormat: PixelFormat | null) => void;
@@ -1,12 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.warnAboutM2Bug = void 0;
4
- const node_os_1 = require("node:os");
5
- const warnAboutM2Bug = (codec, pixelFormat) => {
6
- const isM2 = (0, node_os_1.cpus)().find((c) => c.model.includes('Apple M2'));
7
- if (codec === 'prores' && pixelFormat === 'yuv422p10le' && isM2) {
8
- console.warn();
9
- console.warn('⚠️ Known issue: Apple M2 CPUs currently suffer from a bug where transparent ProRes videos have flickering. https://github.com/remotion-dev/remotion/issues/1929');
10
- }
11
- };
12
- exports.warnAboutM2Bug = warnAboutM2Bug;
@@ -1,2 +0,0 @@
1
- import type { AudioCodec } from './audio-codec';
2
- export declare const getExtensionFromAudioCodec: (audioCodec: AudioCodec) => "mp3" | "aac" | "wav" | "opus";
@@ -1,19 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getExtensionFromAudioCodec = void 0;
4
- const getExtensionFromAudioCodec = (audioCodec) => {
5
- if (audioCodec === 'aac') {
6
- return 'aac';
7
- }
8
- if (audioCodec === 'opus') {
9
- return 'opus';
10
- }
11
- if (audioCodec === 'mp3') {
12
- return 'mp3';
13
- }
14
- if (audioCodec === 'pcm-16') {
15
- return 'wav';
16
- }
17
- throw new Error(`Unsupported audio codec: ${audioCodec}`);
18
- };
19
- exports.getExtensionFromAudioCodec = getExtensionFromAudioCodec;
@@ -1,2 +0,0 @@
1
- import type { Codec } from './codec';
2
- export declare const isAudioCodec: (codec: Codec | undefined | null) => boolean;
@@ -1,7 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isAudioCodec = void 0;
4
- const isAudioCodec = (codec) => {
5
- return codec === 'mp3' || codec === 'aac' || codec === 'wav';
6
- };
7
- exports.isAudioCodec = isAudioCodec;
File without changes
@@ -1 +0,0 @@
1
- "use strict";
@@ -1,22 +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: X264Preset | undefined;
7
- }) => void;
8
- export declare const x264Option: {
9
- name: string;
10
- cliFlag: "x264-preset";
11
- description: () => import("react/jsx-runtime").JSX.Element;
12
- ssrName: "x264Preset";
13
- docLink: string;
14
- type: "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "medium" | "slow" | "slower" | "veryslow" | "placebo";
15
- getValue: ({ commandLine }: {
16
- commandLine: Record<string, unknown>;
17
- }) => {
18
- value: "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "medium" | "slow" | "slower" | "veryslow" | "placebo";
19
- source: string;
20
- };
21
- setConfig: (profile: X264Preset | undefined) => void;
22
- };
@@ -1,54 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.x264Option = exports.validateSelectedCodecAndPresetCombination = exports.x264PresetOptions = void 0;
4
- const jsx_runtime_1 = require("react/jsx-runtime");
5
- exports.x264PresetOptions = [
6
- 'ultrafast',
7
- 'superfast',
8
- 'veryfast',
9
- 'faster',
10
- 'fast',
11
- 'medium',
12
- 'slow',
13
- 'slower',
14
- 'veryslow',
15
- 'placebo',
16
- ];
17
- let preset;
18
- const validateSelectedCodecAndPresetCombination = ({ codec, x264Preset, }) => {
19
- if (typeof x264Preset !== 'undefined' &&
20
- codec !== 'h264' &&
21
- codec !== 'h264-mkv') {
22
- throw new TypeError(`You have set a x264 preset but the codec is "${codec}". Set the codec to "h264" or remove the Preset profile.`);
23
- }
24
- if (x264Preset !== undefined &&
25
- !exports.x264PresetOptions.includes(x264Preset)) {
26
- throw new TypeError(`The Preset profile "${x264Preset}" is not valid. Valid options are ${exports.x264PresetOptions
27
- .map((p) => `"${p}"`)
28
- .join(', ')}`);
29
- }
30
- };
31
- exports.validateSelectedCodecAndPresetCombination = validateSelectedCodecAndPresetCombination;
32
- const cliFlag = 'x264-preset';
33
- const DEFAULT_PRESET = 'medium';
34
- exports.x264Option = {
35
- name: 'x264 Preset',
36
- cliFlag,
37
- description: () => ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: ["Sets a x264 preset profile. Only applies to videos rendered with", ' ', (0, jsx_runtime_1.jsx)("code", { children: "h264" }), " codec.", (0, jsx_runtime_1.jsx)("br", {}), "Possible values: ", (0, jsx_runtime_1.jsx)("code", { children: "superfast" }), ", ", (0, jsx_runtime_1.jsx)("code", { children: "veryfast" }), ",", ' ', (0, jsx_runtime_1.jsx)("code", { children: "faster" }), ", ", (0, jsx_runtime_1.jsx)("code", { children: "fast" }), ", ", (0, jsx_runtime_1.jsx)("code", { children: "medium" }), ",", ' ', (0, jsx_runtime_1.jsx)("code", { children: "slow" }), ", ", (0, jsx_runtime_1.jsx)("code", { children: "slower" }), ", ", (0, jsx_runtime_1.jsx)("code", { children: "veryslow" }), ",", ' ', (0, jsx_runtime_1.jsx)("code", { children: "placebo" }), ".", (0, jsx_runtime_1.jsx)("br", {}), "Default: ", (0, jsx_runtime_1.jsx)("code", { children: DEFAULT_PRESET })] })),
38
- ssrName: 'x264Preset',
39
- docLink: 'https://www.remotion.dev/docs/renderer/render-media',
40
- type: 'fast',
41
- getValue: ({ commandLine }) => {
42
- const value = commandLine[cliFlag];
43
- if (typeof value !== 'undefined') {
44
- return { value: value, source: 'cli' };
45
- }
46
- if (typeof preset !== 'undefined') {
47
- return { value: preset, source: 'config' };
48
- }
49
- return { value: DEFAULT_PRESET, source: 'default' };
50
- },
51
- setConfig: (profile) => {
52
- preset = profile;
53
- },
54
- };