@remotion/renderer 4.0.121 → 4.0.122

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 (39) hide show
  1. package/dist/call-ffmpeg.d.ts +0 -1
  2. package/dist/call-ffmpeg.js +3 -7
  3. package/dist/check-apple-silicon.d.ts +1 -3
  4. package/dist/check-apple-silicon.js +2 -32
  5. package/dist/client.d.ts +49 -49
  6. package/dist/compositor/compose.js +2 -4
  7. package/dist/compositor/compositor.js +2 -4
  8. package/dist/compositor/make-file-executable.d.ts +1 -0
  9. package/dist/compositor/make-file-executable.js +14 -0
  10. package/dist/create-audio.d.ts +2 -1
  11. package/dist/create-audio.js +5 -2
  12. package/dist/does-have-m2-bug.d.ts +3 -0
  13. package/dist/does-have-m2-bug.js +12 -0
  14. package/dist/get-silent-parts.d.ts +1 -1
  15. package/dist/index.d.ts +27 -28
  16. package/dist/index.js +2 -0
  17. package/dist/options/for-seamless-aac-concatenation.d.ts +19 -0
  18. package/dist/options/for-seamless-aac-concatenation.js +40 -0
  19. package/dist/options/gl.d.ts +3 -3
  20. package/dist/options/index.d.ts +10 -10
  21. package/dist/options/log-level.d.ts +2 -2
  22. package/dist/options/options-map.d.ts +39 -39
  23. package/dist/options/prores-profile.d.ts +0 -0
  24. package/dist/options/prores-profile.js +1 -0
  25. package/dist/options/webhook-custom-data.d.ts +1 -1
  26. package/dist/options/x264-preset.d.ts +2 -2
  27. package/dist/provide-screenshot.d.ts +1 -0
  28. package/dist/puppeteer-screenshot.d.ts +1 -0
  29. package/dist/screenshot-dom-element.d.ts +1 -0
  30. package/dist/screenshot-task.d.ts +1 -0
  31. package/dist/stitch-frames-to-video.d.ts +0 -1
  32. package/dist/take-frame-and-compose.d.ts +1 -0
  33. package/dist/x264-preset.d.ts +15 -0
  34. package/dist/x264-preset.js +26 -1
  35. package/package.json +9 -9
  36. package/dist/can-concatenate-seamlessly.d.ts +0 -3
  37. package/dist/can-concatenate-seamlessly.js +0 -7
  38. package/dist/should-seamless.d.ts +0 -3
  39. package/dist/should-seamless.js +0 -7
@@ -1,4 +1,3 @@
1
- /// <reference types="node" />
2
1
  import execa from 'execa';
3
2
  import type { SpawnOptionsWithoutStdio } from 'node:child_process';
4
3
  import type { LogLevel } from './log-level';
@@ -6,9 +6,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.callFfNative = exports.callFf = void 0;
7
7
  const execa_1 = __importDefault(require("execa"));
8
8
  const node_child_process_1 = require("node:child_process");
9
- const node_fs_1 = require("node:fs");
10
9
  const path_1 = __importDefault(require("path"));
11
10
  const get_executable_path_1 = require("./compositor/get-executable-path");
11
+ const make_file_executable_1 = require("./compositor/make-file-executable");
12
12
  const truthy_1 = require("./truthy");
13
13
  const callFf = ({ args, bin, indent, logLevel, options, binariesDirectory, }) => {
14
14
  const executablePath = (0, get_executable_path_1.getExecutablePath)({
@@ -17,9 +17,7 @@ const callFf = ({ args, bin, indent, logLevel, options, binariesDirectory, }) =>
17
17
  logLevel,
18
18
  binariesDirectory,
19
19
  });
20
- if (!process.env.READ_ONLY_FS) {
21
- (0, node_fs_1.chmodSync)(executablePath, 0o755);
22
- }
20
+ (0, make_file_executable_1.makeFileExecutableIfItIsNot)(executablePath);
23
21
  return (0, execa_1.default)(executablePath, args.filter(truthy_1.truthy), {
24
22
  cwd: path_1.default.dirname(executablePath),
25
23
  ...options,
@@ -33,9 +31,7 @@ const callFfNative = ({ args, bin, indent, logLevel, options, binariesDirectory,
33
31
  logLevel,
34
32
  binariesDirectory,
35
33
  });
36
- if (!process.env.READ_ONLY_FS) {
37
- (0, node_fs_1.chmodSync)(executablePath, 0o755);
38
- }
34
+ (0, make_file_executable_1.makeFileExecutableIfItIsNot)(executablePath);
39
35
  return (0, node_child_process_1.spawn)(executablePath, args.filter(truthy_1.truthy), {
40
36
  cwd: path_1.default.dirname(executablePath),
41
37
  ...options,
@@ -1,3 +1 @@
1
- import type { LogLevel } from './log-level';
2
- export declare const gLibCErrorMessage: (libCString: string) => string | null;
3
- export declare const checkNodeVersionAndWarnAboutRosetta: (logLevel: LogLevel, indent: boolean) => void;
1
+ export declare const checkNodeVersionAndWarnAboutRosetta: () => void;
@@ -1,42 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.checkNodeVersionAndWarnAboutRosetta = exports.gLibCErrorMessage = void 0;
4
- const logger_1 = require("./logger");
5
- const gLibCErrorMessage = (libCString) => {
6
- const split = libCString.split('.');
7
- if (split.length !== 2) {
8
- return null;
9
- }
10
- if (split[0] === '2' && Number(split[1]) >= 35) {
11
- return null;
12
- }
13
- if (Number(split[0]) > 2) {
14
- return null;
15
- }
16
- return `Rendering videos requires glibc 2.35 or higher. Your system has glibc ${libCString}.`;
17
- };
18
- exports.gLibCErrorMessage = gLibCErrorMessage;
19
- const checkLibCRequirement = (logLevel, indent) => {
20
- const { report } = process;
21
- if (report) {
22
- // @ts-expect-error no types
23
- const { glibcVersionRuntime } = report.getReport().header;
24
- if (!glibcVersionRuntime) {
25
- return;
26
- }
27
- const error = (0, exports.gLibCErrorMessage)(glibcVersionRuntime);
28
- if (error) {
29
- logger_1.Log.warn({ logLevel, indent }, error);
30
- }
31
- }
32
- };
33
- const checkNodeVersionAndWarnAboutRosetta = (logLevel, indent) => {
3
+ exports.checkNodeVersionAndWarnAboutRosetta = void 0;
4
+ const checkNodeVersionAndWarnAboutRosetta = () => {
34
5
  const version = process.version.replace('v', '').split('.');
35
6
  const majorVersion = Number(version[0]);
36
7
  const requiredNodeVersion = 16;
37
8
  if (majorVersion < 16) {
38
9
  throw new Error(`Remotion requires at least Node ${requiredNodeVersion}. You currently have ${process.version}. Update your node version to ${requiredNodeVersion} to use Remotion.`);
39
10
  }
40
- checkLibCRequirement(logLevel, indent);
41
11
  };
42
12
  exports.checkNodeVersionAndWarnAboutRosetta = checkNodeVersionAndWarnAboutRosetta;
package/dist/client.d.ts CHANGED
@@ -350,7 +350,7 @@ export declare const BrowserSafeApis: {
350
350
  webhookCustomDataOption: {
351
351
  name: string;
352
352
  cliFlag: "webhook-custom-data";
353
- description: (type: "ssr" | "cli") => import("react/jsx-runtime").JSX.Element;
353
+ description: (type: "cli" | "ssr") => import("react/jsx-runtime").JSX.Element;
354
354
  ssrName: "customData";
355
355
  docLink: string;
356
356
  type: Record<string, unknown> | null;
@@ -424,19 +424,19 @@ export declare const BrowserSafeApis: {
424
424
  cliFlag: "gl";
425
425
  docLink: string;
426
426
  name: string;
427
- type: "angle" | "swangle" | "egl" | "swiftshader" | "vulkan" | "angle-egl" | null;
427
+ type: "swangle" | "angle" | "egl" | "swiftshader" | "vulkan" | "angle-egl" | null;
428
428
  ssrName: string;
429
429
  description: () => import("react/jsx-runtime").JSX.Element;
430
430
  getValue: ({ commandLine }: {
431
431
  commandLine: Record<string, unknown>;
432
432
  }) => {
433
- value: "angle" | "swangle" | "egl" | "swiftshader" | "vulkan" | "angle-egl";
433
+ value: "swangle" | "angle" | "egl" | "swiftshader" | "vulkan" | "angle-egl";
434
434
  source: string;
435
435
  } | {
436
436
  value: null;
437
437
  source: string;
438
438
  };
439
- setConfig: (value: "angle" | "swangle" | "egl" | "swiftshader" | "vulkan" | "angle-egl" | null) => void;
439
+ setConfig: (value: "swangle" | "angle" | "egl" | "swiftshader" | "vulkan" | "angle-egl" | null) => void;
440
440
  };
441
441
  enableLambdaInsights: {
442
442
  name: string;
@@ -543,17 +543,17 @@ export declare const BrowserSafeApis: {
543
543
  description: () => import("react/jsx-runtime").JSX.Element;
544
544
  ssrName: "x264Preset";
545
545
  docLink: string;
546
- type: "medium" | "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "slow" | "slower" | "veryslow" | "placebo" | null;
546
+ type: "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "medium" | "slow" | "slower" | "veryslow" | "placebo" | null;
547
547
  getValue: ({ commandLine }: {
548
548
  commandLine: Record<string, unknown>;
549
549
  }) => {
550
- value: "medium" | "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "slow" | "slower" | "veryslow" | "placebo";
550
+ value: "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "medium" | "slow" | "slower" | "veryslow" | "placebo";
551
551
  source: string;
552
552
  } | {
553
553
  value: null;
554
554
  source: string;
555
555
  };
556
- setConfig: (profile: "medium" | "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "slow" | "slower" | "veryslow" | "placebo" | null) => void;
556
+ setConfig: (profile: "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "medium" | "slow" | "slower" | "veryslow" | "placebo" | null) => void;
557
557
  };
558
558
  logLevelOption: {
559
559
  cliFlag: "log";
@@ -564,11 +564,11 @@ export declare const BrowserSafeApis: {
564
564
  getValue: ({ commandLine }: {
565
565
  commandLine: Record<string, unknown>;
566
566
  }) => {
567
- value: "error" | "verbose" | "info" | "warn";
567
+ value: "verbose" | "info" | "warn" | "error";
568
568
  source: string;
569
569
  };
570
- setConfig: (newLogLevel: "error" | "verbose" | "info" | "warn") => void;
571
- type: "error" | "verbose" | "info" | "warn";
570
+ setConfig: (newLogLevel: "verbose" | "info" | "warn" | "error") => void;
571
+ type: "verbose" | "info" | "warn" | "error";
572
572
  };
573
573
  delayRenderTimeoutInMillisecondsOption: {
574
574
  name: string;
@@ -706,17 +706,17 @@ export declare const BrowserSafeApis: {
706
706
  description: () => import("react/jsx-runtime").JSX.Element;
707
707
  ssrName: "x264Preset";
708
708
  docLink: string;
709
- type: "medium" | "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "slow" | "slower" | "veryslow" | "placebo" | null;
709
+ type: "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "medium" | "slow" | "slower" | "veryslow" | "placebo" | null;
710
710
  getValue: ({ commandLine }: {
711
711
  commandLine: Record<string, unknown>;
712
712
  }) => {
713
- value: "medium" | "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "slow" | "slower" | "veryslow" | "placebo";
713
+ value: "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "medium" | "slow" | "slower" | "veryslow" | "placebo";
714
714
  source: string;
715
715
  } | {
716
716
  value: null;
717
717
  source: string;
718
718
  };
719
- setConfig: (profile: "medium" | "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "slow" | "slower" | "veryslow" | "placebo" | null) => void;
719
+ setConfig: (profile: "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "medium" | "slow" | "slower" | "veryslow" | "placebo" | null) => void;
720
720
  };
721
721
  readonly audioBitrate: {
722
722
  name: string;
@@ -847,11 +847,11 @@ export declare const BrowserSafeApis: {
847
847
  getValue: ({ commandLine }: {
848
848
  commandLine: Record<string, unknown>;
849
849
  }) => {
850
- value: "error" | "verbose" | "info" | "warn";
850
+ value: "verbose" | "info" | "warn" | "error";
851
851
  source: string;
852
852
  };
853
- setConfig: (newLogLevel: "error" | "verbose" | "info" | "warn") => void;
854
- type: "error" | "verbose" | "info" | "warn";
853
+ setConfig: (newLogLevel: "verbose" | "info" | "warn" | "error") => void;
854
+ type: "verbose" | "info" | "warn" | "error";
855
855
  };
856
856
  readonly timeoutInMilliseconds: {
857
857
  name: string;
@@ -927,11 +927,11 @@ export declare const BrowserSafeApis: {
927
927
  getValue: ({ commandLine }: {
928
928
  commandLine: Record<string, unknown>;
929
929
  }) => {
930
- value: "error" | "verbose" | "info" | "warn";
930
+ value: "verbose" | "info" | "warn" | "error";
931
931
  source: string;
932
932
  };
933
- setConfig: (newLogLevel: "error" | "verbose" | "info" | "warn") => void;
934
- type: "error" | "verbose" | "info" | "warn";
933
+ setConfig: (newLogLevel: "verbose" | "info" | "warn" | "error") => void;
934
+ type: "verbose" | "info" | "warn" | "error";
935
935
  };
936
936
  readonly timeoutInMilliseconds: {
937
937
  name: string;
@@ -992,11 +992,11 @@ export declare const BrowserSafeApis: {
992
992
  getValue: ({ commandLine }: {
993
993
  commandLine: Record<string, unknown>;
994
994
  }) => {
995
- value: "error" | "verbose" | "info" | "warn";
995
+ value: "verbose" | "info" | "warn" | "error";
996
996
  source: string;
997
997
  };
998
- setConfig: (newLogLevel: "error" | "verbose" | "info" | "warn") => void;
999
- type: "error" | "verbose" | "info" | "warn";
998
+ setConfig: (newLogLevel: "verbose" | "info" | "warn" | "error") => void;
999
+ type: "verbose" | "info" | "warn" | "error";
1000
1000
  };
1001
1001
  readonly timeoutInMilliseconds: {
1002
1002
  name: string;
@@ -1057,11 +1057,11 @@ export declare const BrowserSafeApis: {
1057
1057
  getValue: ({ commandLine }: {
1058
1058
  commandLine: Record<string, unknown>;
1059
1059
  }) => {
1060
- value: "error" | "verbose" | "info" | "warn";
1060
+ value: "verbose" | "info" | "warn" | "error";
1061
1061
  source: string;
1062
1062
  };
1063
- setConfig: (newLogLevel: "error" | "verbose" | "info" | "warn") => void;
1064
- type: "error" | "verbose" | "info" | "warn";
1063
+ setConfig: (newLogLevel: "verbose" | "info" | "warn" | "error") => void;
1064
+ type: "verbose" | "info" | "warn" | "error";
1065
1065
  };
1066
1066
  readonly timeoutInMilliseconds: {
1067
1067
  name: string;
@@ -1137,11 +1137,11 @@ export declare const BrowserSafeApis: {
1137
1137
  getValue: ({ commandLine }: {
1138
1138
  commandLine: Record<string, unknown>;
1139
1139
  }) => {
1140
- value: "error" | "verbose" | "info" | "warn";
1140
+ value: "verbose" | "info" | "warn" | "error";
1141
1141
  source: string;
1142
1142
  };
1143
- setConfig: (newLogLevel: "error" | "verbose" | "info" | "warn") => void;
1144
- type: "error" | "verbose" | "info" | "warn";
1143
+ setConfig: (newLogLevel: "verbose" | "info" | "warn" | "error") => void;
1144
+ type: "verbose" | "info" | "warn" | "error";
1145
1145
  };
1146
1146
  readonly timeoutInMilliseconds: {
1147
1147
  name: string;
@@ -1268,17 +1268,17 @@ export declare const BrowserSafeApis: {
1268
1268
  description: () => import("react/jsx-runtime").JSX.Element;
1269
1269
  ssrName: "x264Preset";
1270
1270
  docLink: string;
1271
- type: "medium" | "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "slow" | "slower" | "veryslow" | "placebo" | null;
1271
+ type: "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "medium" | "slow" | "slower" | "veryslow" | "placebo" | null;
1272
1272
  getValue: ({ commandLine }: {
1273
1273
  commandLine: Record<string, unknown>;
1274
1274
  }) => {
1275
- value: "medium" | "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "slow" | "slower" | "veryslow" | "placebo";
1275
+ value: "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "medium" | "slow" | "slower" | "veryslow" | "placebo";
1276
1276
  source: string;
1277
1277
  } | {
1278
1278
  value: null;
1279
1279
  source: string;
1280
1280
  };
1281
- setConfig: (profile: "medium" | "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "slow" | "slower" | "veryslow" | "placebo" | null) => void;
1281
+ setConfig: (profile: "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "medium" | "slow" | "slower" | "veryslow" | "placebo" | null) => void;
1282
1282
  };
1283
1283
  readonly encodingMaxRate: {
1284
1284
  name: string;
@@ -1355,11 +1355,11 @@ export declare const BrowserSafeApis: {
1355
1355
  getValue: ({ commandLine }: {
1356
1356
  commandLine: Record<string, unknown>;
1357
1357
  }) => {
1358
- value: "error" | "verbose" | "info" | "warn";
1358
+ value: "verbose" | "info" | "warn" | "error";
1359
1359
  source: string;
1360
1360
  };
1361
- setConfig: (newLogLevel: "error" | "verbose" | "info" | "warn") => void;
1362
- type: "error" | "verbose" | "info" | "warn";
1361
+ setConfig: (newLogLevel: "verbose" | "info" | "warn" | "error") => void;
1362
+ type: "verbose" | "info" | "warn" | "error";
1363
1363
  };
1364
1364
  readonly timeoutInMilliseconds: {
1365
1365
  name: string;
@@ -1420,11 +1420,11 @@ export declare const BrowserSafeApis: {
1420
1420
  getValue: ({ commandLine }: {
1421
1421
  commandLine: Record<string, unknown>;
1422
1422
  }) => {
1423
- value: "error" | "verbose" | "info" | "warn";
1423
+ value: "verbose" | "info" | "warn" | "error";
1424
1424
  source: string;
1425
1425
  };
1426
- setConfig: (newLogLevel: "error" | "verbose" | "info" | "warn") => void;
1427
- type: "error" | "verbose" | "info" | "warn";
1426
+ setConfig: (newLogLevel: "verbose" | "info" | "warn" | "error") => void;
1427
+ type: "verbose" | "info" | "warn" | "error";
1428
1428
  };
1429
1429
  readonly deleteAfter: {
1430
1430
  name: string;
@@ -1503,11 +1503,11 @@ export declare const BrowserSafeApis: {
1503
1503
  getValue: ({ commandLine }: {
1504
1504
  commandLine: Record<string, unknown>;
1505
1505
  }) => {
1506
- value: "error" | "verbose" | "info" | "warn";
1506
+ value: "verbose" | "info" | "warn" | "error";
1507
1507
  source: string;
1508
1508
  };
1509
- setConfig: (newLogLevel: "error" | "verbose" | "info" | "warn") => void;
1510
- type: "error" | "verbose" | "info" | "warn";
1509
+ setConfig: (newLogLevel: "verbose" | "info" | "warn" | "error") => void;
1510
+ type: "verbose" | "info" | "warn" | "error";
1511
1511
  };
1512
1512
  readonly timeoutInMilliseconds: {
1513
1513
  name: string;
@@ -1616,17 +1616,17 @@ export declare const BrowserSafeApis: {
1616
1616
  description: () => import("react/jsx-runtime").JSX.Element;
1617
1617
  ssrName: "x264Preset";
1618
1618
  docLink: string;
1619
- type: "medium" | "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "slow" | "slower" | "veryslow" | "placebo" | null;
1619
+ type: "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "medium" | "slow" | "slower" | "veryslow" | "placebo" | null;
1620
1620
  getValue: ({ commandLine }: {
1621
1621
  commandLine: Record<string, unknown>;
1622
1622
  }) => {
1623
- value: "medium" | "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "slow" | "slower" | "veryslow" | "placebo";
1623
+ value: "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "medium" | "slow" | "slower" | "veryslow" | "placebo";
1624
1624
  source: string;
1625
1625
  } | {
1626
1626
  value: null;
1627
1627
  source: string;
1628
1628
  };
1629
- setConfig: (profile: "medium" | "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "slow" | "slower" | "veryslow" | "placebo" | null) => void;
1629
+ setConfig: (profile: "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "medium" | "slow" | "slower" | "veryslow" | "placebo" | null) => void;
1630
1630
  };
1631
1631
  readonly encodingMaxRate: {
1632
1632
  name: string;
@@ -1688,11 +1688,11 @@ export declare const BrowserSafeApis: {
1688
1688
  getValue: ({ commandLine }: {
1689
1689
  commandLine: Record<string, unknown>;
1690
1690
  }) => {
1691
- value: "error" | "verbose" | "info" | "warn";
1691
+ value: "verbose" | "info" | "warn" | "error";
1692
1692
  source: string;
1693
1693
  };
1694
- setConfig: (newLogLevel: "error" | "verbose" | "info" | "warn") => void;
1695
- type: "error" | "verbose" | "info" | "warn";
1694
+ setConfig: (newLogLevel: "verbose" | "info" | "warn" | "error") => void;
1695
+ type: "verbose" | "info" | "warn" | "error";
1696
1696
  };
1697
1697
  readonly delayRenderTimeoutInMilliseconds: {
1698
1698
  name: string;
@@ -1798,11 +1798,11 @@ export declare const BrowserSafeApis: {
1798
1798
  getValue: ({ commandLine }: {
1799
1799
  commandLine: Record<string, unknown>;
1800
1800
  }) => {
1801
- value: "error" | "verbose" | "info" | "warn";
1801
+ value: "verbose" | "info" | "warn" | "error";
1802
1802
  source: string;
1803
1803
  };
1804
- setConfig: (newLogLevel: "error" | "verbose" | "info" | "warn") => void;
1805
- type: "error" | "verbose" | "info" | "warn";
1804
+ setConfig: (newLogLevel: "verbose" | "info" | "warn" | "error") => void;
1805
+ type: "verbose" | "info" | "warn" | "error";
1806
1806
  };
1807
1807
  readonly scale: {
1808
1808
  name: string;
@@ -6,10 +6,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.callCompositor = exports.compose = exports.composeWithoutCache = exports.serializeCommand = void 0;
7
7
  const node_child_process_1 = require("node:child_process");
8
8
  const node_crypto_1 = require("node:crypto");
9
- const node_fs_1 = require("node:fs");
10
9
  const promises_1 = require("node:fs/promises");
11
10
  const node_path_1 = __importDefault(require("node:path"));
12
11
  const get_executable_path_1 = require("./get-executable-path");
12
+ const make_file_executable_1 = require("./make-file-executable");
13
13
  const make_nonce_1 = require("./make-nonce");
14
14
  const getCompositorHash = ({ ...input }) => {
15
15
  return (0, node_crypto_1.createHash)('sha256').update(JSON.stringify(input)).digest('base64');
@@ -59,9 +59,7 @@ const callCompositor = (payload, indent, logLevel, binariesDirectory) => {
59
59
  logLevel,
60
60
  binariesDirectory,
61
61
  });
62
- if (!process.env.READ_ONLY_FS) {
63
- (0, node_fs_1.chmodSync)(execPath, 0o755);
64
- }
62
+ (0, make_file_executable_1.makeFileExecutableIfItIsNot)(execPath);
65
63
  const child = (0, node_child_process_1.spawn)(execPath, [payload], {
66
64
  cwd: node_path_1.default.dirname(execPath),
67
65
  });
@@ -5,13 +5,13 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.startCompositor = exports.startLongRunningCompositor = void 0;
7
7
  const node_child_process_1 = require("node:child_process");
8
- const node_fs_1 = require("node:fs");
9
8
  const node_path_1 = __importDefault(require("node:path"));
10
9
  const get_concurrency_1 = require("../get-concurrency");
11
10
  const log_level_1 = require("../log-level");
12
11
  const logger_1 = require("../logger");
13
12
  const compose_1 = require("./compose");
14
13
  const get_executable_path_1 = require("./get-executable-path");
14
+ const make_file_executable_1 = require("./make-file-executable");
15
15
  const make_nonce_1 = require("./make-nonce");
16
16
  const startLongRunningCompositor = ({ maximumFrameCacheItemsInBytes, logLevel, indent, binariesDirectory, }) => {
17
17
  return (0, exports.startCompositor)({
@@ -35,9 +35,7 @@ const startCompositor = ({ type, payload, logLevel, indent, binariesDirectory =
35
35
  logLevel,
36
36
  binariesDirectory,
37
37
  });
38
- if (!process.env.READ_ONLY_FS) {
39
- (0, node_fs_1.chmodSync)(bin, 0o755);
40
- }
38
+ (0, make_file_executable_1.makeFileExecutableIfItIsNot)(bin);
41
39
  const fullCommand = (0, compose_1.serializeCommand)(type, payload);
42
40
  const child = (0, node_child_process_1.spawn)(bin, [JSON.stringify(fullCommand)], {
43
41
  cwd: node_path_1.default.dirname(bin),
@@ -0,0 +1 @@
1
+ export declare const makeFileExecutableIfItIsNot: (path: string) => void;
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.makeFileExecutableIfItIsNot = void 0;
4
+ /* eslint-disable no-bitwise */
5
+ const node_fs_1 = require("node:fs");
6
+ const makeFileExecutableIfItIsNot = (path) => {
7
+ try {
8
+ (0, node_fs_1.accessSync)(path, node_fs_1.constants.X_OK);
9
+ }
10
+ catch (err) {
11
+ (0, node_fs_1.chmodSync)(path, 0o755);
12
+ }
13
+ };
14
+ exports.makeFileExecutableIfItIsNot = makeFileExecutableIfItIsNot;
@@ -4,7 +4,7 @@ import type { DownloadMap } from './assets/download-map';
4
4
  import type { AudioCodec } from './audio-codec';
5
5
  import type { LogLevel } from './log-level';
6
6
  import type { CancelSignal } from './make-cancel-signal';
7
- export declare const createAudio: ({ assets, onDownload, fps, expectedFrames, logLevel, onProgress, downloadMap, remotionRoot, indent, binariesDirectory, audioBitrate, audioCodec, cancelSignal, }: {
7
+ export declare const createAudio: ({ assets, onDownload, fps, expectedFrames, logLevel, onProgress, downloadMap, remotionRoot, indent, binariesDirectory, audioBitrate, audioCodec, cancelSignal, forSeamlessAacConcatenation, }: {
8
8
  assets: TRenderAsset[][];
9
9
  onDownload: RenderMediaOnDownload | undefined;
10
10
  fps: number;
@@ -18,4 +18,5 @@ export declare const createAudio: ({ assets, onDownload, fps, expectedFrames, lo
18
18
  audioBitrate: string | null;
19
19
  audioCodec: AudioCodec;
20
20
  cancelSignal: CancelSignal | undefined;
21
+ forSeamlessAacConcatenation: boolean;
21
22
  }) => Promise<string>;
@@ -10,11 +10,12 @@ const convert_assets_to_file_urls_1 = require("./assets/convert-assets-to-file-u
10
10
  const download_and_map_assets_to_file_1 = require("./assets/download-and-map-assets-to-file");
11
11
  const compress_audio_1 = require("./compress-audio");
12
12
  const delete_directory_1 = require("./delete-directory");
13
+ const get_extension_from_audio_codec_1 = require("./get-extension-from-audio-codec");
13
14
  const logger_1 = require("./logger");
14
15
  const merge_audio_track_1 = require("./merge-audio-track");
15
16
  const preprocess_audio_track_1 = require("./preprocess-audio-track");
16
17
  const truthy_1 = require("./truthy");
17
- const createAudio = async ({ assets, onDownload, fps, expectedFrames, logLevel, onProgress, downloadMap, remotionRoot, indent, binariesDirectory, audioBitrate, audioCodec, cancelSignal, }) => {
18
+ const createAudio = async ({ assets, onDownload, fps, expectedFrames, logLevel, onProgress, downloadMap, remotionRoot, indent, binariesDirectory, audioBitrate, audioCodec, cancelSignal, forSeamlessAacConcatenation, }) => {
18
19
  const fileUrlAssets = await (0, convert_assets_to_file_urls_1.convertAssetsToFileUrls)({
19
20
  assets,
20
21
  onDownload: onDownload !== null && onDownload !== void 0 ? onDownload : (() => () => undefined),
@@ -41,6 +42,7 @@ const createAudio = async ({ assets, onDownload, fps, expectedFrames, logLevel,
41
42
  logLevel,
42
43
  binariesDirectory,
43
44
  cancelSignal,
45
+ forSeamlessAacConcatenation,
44
46
  });
45
47
  preprocessProgress[index] = 1;
46
48
  updateProgress();
@@ -48,7 +50,8 @@ const createAudio = async ({ assets, onDownload, fps, expectedFrames, logLevel,
48
50
  }));
49
51
  const preprocessed = audioTracks.filter(truthy_1.truthy);
50
52
  const merged = path_1.default.join(downloadMap.audioPreprocessing, 'merged.wav');
51
- const outName = path_1.default.join(downloadMap.audioPreprocessing, 'audio.wav');
53
+ const extension = (0, get_extension_from_audio_codec_1.getExtensionFromAudioCodec)(audioCodec);
54
+ const outName = path_1.default.join(downloadMap.audioPreprocessing, `audio.${extension}`);
52
55
  await (0, merge_audio_track_1.mergeAudioTrack)({
53
56
  files: preprocessed,
54
57
  outName: merged,
@@ -0,0 +1,3 @@
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;
@@ -0,0 +1,12 @@
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;
@@ -3,7 +3,7 @@ import type { LogLevel } from './log-level';
3
3
  export declare const getSilentParts: ({ src, noiseThresholdInDecibels: passedNoiseThresholdInDecibels, minDurationInSeconds: passedMinDuration, logLevel, binariesDirectory, }: {
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
  binariesDirectory?: string | null | undefined;
9
9
  }) => Promise<GetSilentPartsResponse>;