@remotion/renderer 4.0.260 → 4.0.262

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.
@@ -28,7 +28,6 @@ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (
28
28
  var _HeadlessBrowser_instances, _HeadlessBrowser_defaultViewport, _HeadlessBrowser_defaultContext, _HeadlessBrowser_contexts, _HeadlessBrowser_targets, _HeadlessBrowser_targetCreated, _HeadlessBrowser_targetDestroyed, _HeadlessBrowser_targetInfoChanged, _BrowserContext_browser;
29
29
  Object.defineProperty(exports, "__esModule", { value: true });
30
30
  exports.BrowserContext = exports.HeadlessBrowser = void 0;
31
- const browser_instances_1 = require("../browser-instances");
32
31
  const assert_1 = require("./assert");
33
32
  const BrowserRunner_1 = require("./BrowserRunner");
34
33
  const EventEmitter_1 = require("./EventEmitter");
@@ -151,7 +150,6 @@ class HeadlessBrowser extends EventEmitter_1.EventEmitter {
151
150
  });
152
151
  this.disconnect();
153
152
  this.emit(silent ? "closed-silent" /* BrowserEmittedEvents.ClosedSilent */ : "closed" /* BrowserEmittedEvents.Closed */);
154
- (0, browser_instances_1.removeHeadlessBrowser)(this);
155
153
  }
156
154
  disconnect() {
157
155
  this.connection.dispose();
package/dist/index.d.ts CHANGED
@@ -65,12 +65,14 @@ export declare const RenderInternals: {
65
65
  close: () => Promise<void>;
66
66
  compositor: import("./compositor/compositor").Compositor;
67
67
  }>;
68
- validateEvenDimensionsWithCodec: ({ width, height, codec, scale, wantsImageSequence, }: {
68
+ validateEvenDimensionsWithCodec: ({ width, height, codec, scale, wantsImageSequence, indent, logLevel, }: {
69
69
  width: number;
70
70
  height: number;
71
71
  scale: number;
72
72
  codec: import("./codec").Codec;
73
73
  wantsImageSequence: boolean;
74
+ indent: boolean;
75
+ logLevel: import("./log-level").LogLevel;
74
76
  }) => void;
75
77
  getFileExtensionFromCodec: <T extends import("./codec").Codec>(codec: T, audioCodec: AudioCodec | null) => import("./file-extensions").FileExtension;
76
78
  tmpDir: (str: string) => string;
@@ -93,7 +95,6 @@ export declare const RenderInternals: {
93
95
  sizeInBytes: number;
94
96
  to: string;
95
97
  }>;
96
- killAllBrowsers: () => Promise<void>;
97
98
  parseStack: (stack: string[]) => import("./parse-browser-error-stack").UnsymbolicatedStackFrame[];
98
99
  symbolicateError: (symbolicateableError: SymbolicateableError) => Promise<import("./error-handling/handle-javascript-exception").ErrorWithStackFrame>;
99
100
  SymbolicateableError: typeof SymbolicateableError;
@@ -409,15 +410,15 @@ export declare const RenderInternals: {
409
410
  Log: {
410
411
  trace: (options: import("./logger").LogOptions & {
411
412
  tag?: string;
412
- }, message?: any, ...optionalParams: any[]) => boolean | void;
413
+ }, ...args: Parameters<typeof console.log>) => boolean | void;
413
414
  verbose: (options: import("./logger").LogOptions & {
414
415
  tag?: string;
415
- }, message?: any, ...optionalParams: any[]) => boolean | void;
416
- info: (options: import("./logger").LogOptions, message?: any, ...optionalParams: any[]) => boolean | void;
417
- warn: (options: import("./logger").LogOptions, message?: any, ...optionalParams: any[]) => boolean | void;
416
+ }, ...args: Parameters<typeof console.log>) => boolean | void;
417
+ info: (options: import("./logger").LogOptions, ...args: Parameters<typeof console.log>) => boolean | void;
418
+ warn: (options: import("./logger").LogOptions, ...args: Parameters<typeof console.log>) => boolean | void;
418
419
  error: (options: import("./logger").LogOptions & {
419
420
  tag?: string;
420
- }, message?: any, ...optionalParams: any[]) => boolean | void;
421
+ }, ...args: Parameters<typeof console.log>) => boolean | void;
421
422
  };
422
423
  INDENT_TOKEN: string;
423
424
  isColorSupported: () => boolean;
package/dist/index.js CHANGED
@@ -109,7 +109,6 @@ Object.defineProperty(exports, "stitchFramesToVideo", { enumerable: true, get: f
109
109
  var validate_output_filename_1 = require("./validate-output-filename");
110
110
  Object.defineProperty(exports, "validateOutputFilename", { enumerable: true, get: function () { return validate_output_filename_1.validateOutputFilename; } });
111
111
  const download_map_1 = require("./assets/download-map");
112
- const browser_instances_1 = require("./browser-instances");
113
112
  const codec_supports_media_1 = require("./codec-supports-media");
114
113
  const make_file_executable_1 = require("./compositor/make-file-executable");
115
114
  const ensure_browser_2 = require("./ensure-browser");
@@ -132,7 +131,6 @@ exports.RenderInternals = {
132
131
  getRealFrameRange: get_frame_to_render_1.getRealFrameRange,
133
132
  validatePuppeteerTimeout: validate_puppeteer_timeout_1.validatePuppeteerTimeout,
134
133
  downloadFile: download_file_1.downloadFile,
135
- killAllBrowsers: browser_instances_1.killAllBrowsers,
136
134
  parseStack: parse_browser_error_stack_1.parseStack,
137
135
  symbolicateError: symbolicate_error_1.symbolicateError,
138
136
  SymbolicateableError: symbolicateable_error_1.SymbolicateableError,
package/dist/logger.d.ts CHANGED
@@ -10,10 +10,10 @@ type VerboseLogOptions = LogOptions & {
10
10
  export declare const verboseTag: (str: string) => string;
11
11
  export declare const secondverboseTag: (str: string) => string;
12
12
  export declare const Log: {
13
- trace: (options: VerboseLogOptions, message?: any, ...optionalParams: any[]) => boolean | void;
14
- verbose: (options: VerboseLogOptions, message?: any, ...optionalParams: any[]) => boolean | void;
15
- info: (options: LogOptions, message?: any, ...optionalParams: any[]) => boolean | void;
16
- warn: (options: LogOptions, message?: any, ...optionalParams: any[]) => boolean | void;
17
- error: (options: VerboseLogOptions, message?: any, ...optionalParams: any[]) => boolean | void;
13
+ trace: (options: VerboseLogOptions, ...args: Parameters<typeof console.log>) => boolean | void;
14
+ verbose: (options: VerboseLogOptions, ...args: Parameters<typeof console.log>) => boolean | void;
15
+ info: (options: LogOptions, ...args: Parameters<typeof console.log>) => boolean | void;
16
+ warn: (options: LogOptions, ...args: Parameters<typeof console.log>) => boolean | void;
17
+ error: (options: VerboseLogOptions, ...args: Parameters<typeof console.log>) => boolean | void;
18
18
  };
19
19
  export {};
@@ -7,7 +7,6 @@ exports.openBrowser = exports.internalOpenBrowser = void 0;
7
7
  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
- const browser_instances_1 = require("./browser-instances");
11
10
  const browser_download_progress_bar_1 = require("./browser/browser-download-progress-bar");
12
11
  const Launcher_1 = require("./browser/Launcher");
13
12
  const ensure_browser_1 = require("./ensure-browser");
@@ -167,7 +166,6 @@ const internalOpenBrowser = async ({ browser, browserExecutable, chromiumOptions
167
166
  });
168
167
  const pages = await browserInstance.pages();
169
168
  await ((_d = pages[0]) === null || _d === void 0 ? void 0 : _d.close());
170
- (0, browser_instances_1.addHeadlessBrowser)(browserInstance);
171
169
  return browserInstance;
172
170
  };
173
171
  exports.internalOpenBrowser = internalOpenBrowser;
@@ -22,6 +22,8 @@ const prespawnFfmpeg = (options) => {
22
22
  codec,
23
23
  scale: 1,
24
24
  wantsImageSequence: false,
25
+ indent: options.indent,
26
+ logLevel: options.logLevel,
25
27
  });
26
28
  const pixelFormat = (_b = options.pixelFormat) !== null && _b !== void 0 ? _b : pixel_format_1.DEFAULT_PIXEL_FORMAT;
27
29
  const proResProfileName = (0, get_prores_profile_name_1.getProResProfileName)(codec, options.proResProfile);
@@ -177,6 +177,8 @@ const internalRenderMediaRaw = ({ proResProfile, x264Preset, crf, composition, s
177
177
  scale,
178
178
  width: composition.width,
179
179
  wantsImageSequence: false,
180
+ indent,
181
+ logLevel,
180
182
  });
181
183
  const realFrameRange = (0, get_frame_to_render_1.getRealFrameRange)(composition.durationInFrames, frameRange);
182
184
  const totalFramesToRender = (0, get_duration_from_frame_range_1.getFramesToRender)(realFrameRange, everyNthFrame).length;
package/dist/repro.d.ts CHANGED
@@ -13,7 +13,7 @@ type ReproWriter = {
13
13
  }) => Promise<void>;
14
14
  };
15
15
  export declare const getReproWriter: () => ReproWriter;
16
- export declare const writeInRepro: (level: string, message?: any, ...optionalParams: any[]) => void;
16
+ export declare const writeInRepro: (level: string, ...args: Parameters<typeof console.log>) => void;
17
17
  export declare const enableRepro: ({ serveUrl, compositionName, serializedInputPropsWithCustomSchema, serializedResolvedPropsWithCustomSchema, }: {
18
18
  serveUrl: string;
19
19
  compositionName: string;
@@ -40,6 +40,8 @@ const innerStitchFramesToVideo = async ({ assetsInfo, audioBitrate, audioCodec:
40
40
  codec,
41
41
  scale: 1,
42
42
  wantsImageSequence: false,
43
+ indent,
44
+ logLevel,
43
45
  });
44
46
  (0, prores_profile_1.validateSelectedCodecAndProResCombination)({
45
47
  codec,
@@ -1,8 +1,11 @@
1
1
  import type { Codec } from './codec';
2
- export declare const validateEvenDimensionsWithCodec: ({ width, height, codec, scale, wantsImageSequence, }: {
2
+ import type { LogLevel } from './log-level';
3
+ export declare const validateEvenDimensionsWithCodec: ({ width, height, codec, scale, wantsImageSequence, indent, logLevel, }: {
3
4
  width: number;
4
5
  height: number;
5
6
  scale: number;
6
7
  codec: Codec;
7
8
  wantsImageSequence: boolean;
9
+ indent: boolean;
10
+ logLevel: LogLevel;
8
11
  }) => void;
@@ -1,8 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.validateEvenDimensionsWithCodec = void 0;
4
+ const logger_1 = require("./logger");
4
5
  const truthy_1 = require("./truthy");
5
- const validateEvenDimensionsWithCodec = ({ width, height, codec, scale, wantsImageSequence, }) => {
6
+ const validateEvenDimensionsWithCodec = ({ width, height, codec, scale, wantsImageSequence, indent, logLevel, }) => {
6
7
  if (wantsImageSequence) {
7
8
  return;
8
9
  }
@@ -12,8 +13,18 @@ const validateEvenDimensionsWithCodec = ({ width, height, codec, scale, wantsIma
12
13
  codec !== 'h264-ts') {
13
14
  return;
14
15
  }
15
- const actualWidth = width * scale;
16
- const actualHeight = height * scale;
16
+ let actualWidth = width * scale;
17
+ let actualHeight = height * scale;
18
+ if (actualWidth % 1 !== 0 &&
19
+ (actualWidth % 1 < 0.005 || actualWidth % 1 > 0.005)) {
20
+ logger_1.Log.verbose({ indent, logLevel }, `Rounding width to an even number from ${actualWidth} to ${Math.round(actualWidth)}`);
21
+ actualWidth = Math.round(actualWidth);
22
+ }
23
+ if (actualHeight % 1 !== 0 &&
24
+ (actualHeight % 1 < 0.005 || actualHeight % 1 > 0.005)) {
25
+ logger_1.Log.verbose({ indent, logLevel }, `Rounding height to an even number from ${actualHeight} to ${Math.round(actualHeight)}`);
26
+ actualHeight = Math.round(actualHeight);
27
+ }
17
28
  const displayName = codec === 'h265' ? 'H265' : 'H264';
18
29
  if (actualWidth % 2 !== 0) {
19
30
  const message = [
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "url": "https://github.com/remotion-dev/remotion/tree/main/packages/renderer"
4
4
  },
5
5
  "name": "@remotion/renderer",
6
- "version": "4.0.260",
6
+ "version": "4.0.262",
7
7
  "description": "Render Remotion videos using Node.js or Bun",
8
8
  "main": "dist/index.js",
9
9
  "types": "dist/index.d.ts",
@@ -18,8 +18,8 @@
18
18
  "extract-zip": "2.0.1",
19
19
  "source-map": "^0.8.0-beta.0",
20
20
  "ws": "8.17.1",
21
- "remotion": "4.0.260",
22
- "@remotion/streaming": "4.0.260"
21
+ "@remotion/streaming": "4.0.262",
22
+ "remotion": "4.0.262"
23
23
  },
24
24
  "peerDependencies": {
25
25
  "react": ">=16.8.0",
@@ -33,17 +33,17 @@
33
33
  "react-dom": "19.0.0",
34
34
  "@types/ws": "8.5.10",
35
35
  "eslint": "9.19.0",
36
- "@remotion/example-videos": "4.0.260",
37
- "@remotion/eslint-config-internal": "4.0.260"
36
+ "@remotion/eslint-config-internal": "4.0.262",
37
+ "@remotion/example-videos": "4.0.262"
38
38
  },
39
39
  "optionalDependencies": {
40
- "@remotion/compositor-darwin-arm64": "4.0.260",
41
- "@remotion/compositor-darwin-x64": "4.0.260",
42
- "@remotion/compositor-linux-arm64-gnu": "4.0.260",
43
- "@remotion/compositor-linux-arm64-musl": "4.0.260",
44
- "@remotion/compositor-linux-x64-gnu": "4.0.260",
45
- "@remotion/compositor-linux-x64-musl": "4.0.260",
46
- "@remotion/compositor-win32-x64-msvc": "4.0.260"
40
+ "@remotion/compositor-darwin-arm64": "4.0.262",
41
+ "@remotion/compositor-darwin-x64": "4.0.262",
42
+ "@remotion/compositor-linux-arm64-gnu": "4.0.262",
43
+ "@remotion/compositor-linux-arm64-musl": "4.0.262",
44
+ "@remotion/compositor-linux-x64-gnu": "4.0.262",
45
+ "@remotion/compositor-linux-x64-musl": "4.0.262",
46
+ "@remotion/compositor-win32-x64-msvc": "4.0.262"
47
47
  },
48
48
  "keywords": [
49
49
  "remotion",
@@ -1,4 +0,0 @@
1
- import type { HeadlessBrowser } from './browser/Browser';
2
- export declare const killAllBrowsers: () => Promise<void>;
3
- export declare const addHeadlessBrowser: (browser: HeadlessBrowser) => void;
4
- export declare const removeHeadlessBrowser: (browser: HeadlessBrowser) => void;
@@ -1,21 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.removeHeadlessBrowser = exports.addHeadlessBrowser = exports.killAllBrowsers = void 0;
4
- const browserInstances = [];
5
- const killAllBrowsers = async () => {
6
- for (const browser of browserInstances) {
7
- try {
8
- await browser.close({ silent: true });
9
- }
10
- catch (_a) { }
11
- }
12
- };
13
- exports.killAllBrowsers = killAllBrowsers;
14
- const addHeadlessBrowser = (browser) => {
15
- browserInstances.push(browser);
16
- };
17
- exports.addHeadlessBrowser = addHeadlessBrowser;
18
- const removeHeadlessBrowser = (browser) => {
19
- browserInstances.splice(browserInstances.indexOf(browser), 1);
20
- };
21
- exports.removeHeadlessBrowser = removeHeadlessBrowser;