@remotion/renderer 4.0.533 → 4.0.535

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 (285) hide show
  1. package/dist/aac-priming.js +6 -2
  2. package/dist/browser/BrowserFetcher.d.ts +7 -1
  3. package/dist/browser/BrowserFetcher.js +33 -13
  4. package/dist/browser/BrowserPage.js +4 -0
  5. package/dist/browser/Connection.js +5 -17
  6. package/dist/browser/DOMWorld.js +19 -13
  7. package/dist/browser/devtools-commands.d.ts +13 -1
  8. package/dist/browser/devtools-types.d.ts +62 -0
  9. package/dist/browser/get-chrome-download-url.d.ts +1 -1
  10. package/dist/browser/get-chrome-download-url.js +19 -33
  11. package/dist/can-use-parallel-encoding.d.ts +0 -1
  12. package/dist/can-use-parallel-encoding.js +10 -10
  13. package/dist/client.d.ts +402 -4
  14. package/dist/client.js +2 -0
  15. package/dist/combine-chunks.d.ts +2 -1
  16. package/dist/combine-chunks.js +81 -52
  17. package/dist/combine-video-streams.js +3 -0
  18. package/dist/compositor/get-executable-path.js +30 -15
  19. package/dist/cycle-browser-tabs.js +9 -1
  20. package/dist/ensure-browser.d.ts +3 -0
  21. package/dist/ensure-browser.js +30 -6
  22. package/dist/esm/client.mjs +1325 -954
  23. package/dist/esm/index.mjs +4465 -3324
  24. package/dist/esm/pure.mjs +36 -10
  25. package/dist/file-extensions.js +4 -1
  26. package/dist/get-mp4-brand.d.ts +1 -0
  27. package/dist/get-mp4-brand.js +21 -0
  28. package/dist/get-video-threads-flag.js +5 -1
  29. package/dist/image-format.d.ts +1 -0
  30. package/dist/image-format.js +8 -4
  31. package/dist/index.d.ts +58 -2
  32. package/dist/index.js +4 -0
  33. package/dist/memory/from-macos-sysctl.d.ts +1 -0
  34. package/dist/memory/from-macos-sysctl.js +50 -0
  35. package/dist/memory/from-proc-meminfo.d.ts +1 -1
  36. package/dist/memory/from-proc-meminfo.js +7 -4
  37. package/dist/memory/get-available-memory.js +29 -21
  38. package/dist/mux-video-and-audio.js +11 -2
  39. package/dist/next-frame-to-render.d.ts +3 -7
  40. package/dist/next-frame-to-render.js +3 -22
  41. package/dist/open-browser.js +1 -0
  42. package/dist/options/allow-html-in-canvas.d.ts +1 -0
  43. package/dist/options/allow-html-in-canvas.js +2 -1
  44. package/dist/options/api-key.d.ts +1 -0
  45. package/dist/options/api-key.js +2 -1
  46. package/dist/options/ask-ai.d.ts +1 -0
  47. package/dist/options/ask-ai.js +2 -1
  48. package/dist/options/audio-bitrate.d.ts +1 -0
  49. package/dist/options/audio-bitrate.js +2 -1
  50. package/dist/options/audio-codec.d.ts +1 -0
  51. package/dist/options/audio-codec.js +13 -6
  52. package/dist/options/beep-on-finish.d.ts +1 -0
  53. package/dist/options/beep-on-finish.js +2 -1
  54. package/dist/options/benchmark-concurrencies.d.ts +1 -0
  55. package/dist/options/benchmark-concurrencies.js +2 -1
  56. package/dist/options/binaries-directory.d.ts +1 -0
  57. package/dist/options/binaries-directory.js +2 -1
  58. package/dist/options/browser-executable.d.ts +1 -0
  59. package/dist/options/browser-executable.js +2 -1
  60. package/dist/options/browser.d.ts +1 -0
  61. package/dist/options/browser.js +2 -1
  62. package/dist/options/bundle-cache.d.ts +1 -0
  63. package/dist/options/bundle-cache.js +2 -1
  64. package/dist/options/canvas-tabs.d.ts +1 -0
  65. package/dist/options/canvas-tabs.js +2 -1
  66. package/dist/options/chrome-mode.d.ts +1 -0
  67. package/dist/options/chrome-mode.js +2 -1
  68. package/dist/options/color-space.d.ts +1 -0
  69. package/dist/options/color-space.js +2 -1
  70. package/dist/options/concurrency.d.ts +1 -0
  71. package/dist/options/concurrency.js +2 -1
  72. package/dist/options/config.d.ts +1 -0
  73. package/dist/options/config.js +2 -1
  74. package/dist/options/crf.d.ts +1 -0
  75. package/dist/options/crf.js +2 -1
  76. package/dist/options/cross-site-isolation.d.ts +1 -0
  77. package/dist/options/cross-site-isolation.js +2 -1
  78. package/dist/options/dark-mode.d.ts +1 -0
  79. package/dist/options/dark-mode.js +2 -1
  80. package/dist/options/default-coding-agent.d.ts +1 -0
  81. package/dist/options/default-coding-agent.js +2 -1
  82. package/dist/options/default-editor.d.ts +1 -0
  83. package/dist/options/default-editor.js +2 -1
  84. package/dist/options/default-premount-in-seconds.d.ts +19 -0
  85. package/dist/options/default-premount-in-seconds.js +36 -0
  86. package/dist/options/delete-after.d.ts +1 -0
  87. package/dist/options/delete-after.js +2 -1
  88. package/dist/options/disable-git-source.d.ts +1 -0
  89. package/dist/options/disable-git-source.js +2 -1
  90. package/dist/options/disable-shared-memory-capture.d.ts +17 -0
  91. package/dist/options/disable-shared-memory-capture.js +30 -0
  92. package/dist/options/disable-web-security.d.ts +1 -0
  93. package/dist/options/disable-web-security.js +2 -1
  94. package/dist/options/disallow-parallel-encoding.d.ts +1 -0
  95. package/dist/options/disallow-parallel-encoding.js +2 -1
  96. package/dist/options/enable-cancellation.d.ts +1 -0
  97. package/dist/options/enable-cancellation.js +2 -1
  98. package/dist/options/enable-lambda-insights.d.ts +1 -0
  99. package/dist/options/enable-lambda-insights.js +2 -1
  100. package/dist/options/enable-multiprocess-on-linux.d.ts +1 -0
  101. package/dist/options/enable-multiprocess-on-linux.js +2 -1
  102. package/dist/options/encoding-buffer-size.d.ts +1 -0
  103. package/dist/options/encoding-buffer-size.js +2 -1
  104. package/dist/options/encoding-max-rate.d.ts +1 -0
  105. package/dist/options/encoding-max-rate.js +2 -1
  106. package/dist/options/enforce-audio.d.ts +1 -0
  107. package/dist/options/enforce-audio.js +2 -1
  108. package/dist/options/env-file.d.ts +1 -0
  109. package/dist/options/env-file.js +2 -1
  110. package/dist/options/every-nth-frame.d.ts +1 -0
  111. package/dist/options/every-nth-frame.js +2 -1
  112. package/dist/options/experimental-keep-audio-context-alive.d.ts +1 -0
  113. package/dist/options/experimental-keep-audio-context-alive.js +2 -1
  114. package/dist/options/experimental-sequence-activity-limit.d.ts +19 -0
  115. package/dist/options/experimental-sequence-activity-limit.js +40 -0
  116. package/dist/options/experimental-sequence-activity.d.ts +19 -0
  117. package/dist/options/experimental-sequence-activity.js +38 -0
  118. package/dist/options/experimental-tracks.d.ts +19 -0
  119. package/dist/options/experimental-tracks.js +43 -0
  120. package/dist/options/folder-expiry.d.ts +1 -0
  121. package/dist/options/folder-expiry.js +2 -1
  122. package/dist/options/for-seamless-aac-concatenation.d.ts +1 -0
  123. package/dist/options/for-seamless-aac-concatenation.js +2 -1
  124. package/dist/options/force-new-studio.d.ts +1 -0
  125. package/dist/options/force-new-studio.js +2 -1
  126. package/dist/options/frames.d.ts +1 -0
  127. package/dist/options/frames.js +2 -1
  128. package/dist/options/gl.d.ts +1 -0
  129. package/dist/options/gl.js +2 -1
  130. package/dist/options/gop-size.d.ts +1 -0
  131. package/dist/options/gop-size.js +2 -1
  132. package/dist/options/hardware-acceleration.d.ts +1 -0
  133. package/dist/options/hardware-acceleration.js +2 -1
  134. package/dist/options/headless.d.ts +1 -0
  135. package/dist/options/headless.js +2 -1
  136. package/dist/options/ignore-certificate-errors.d.ts +1 -0
  137. package/dist/options/ignore-certificate-errors.js +2 -1
  138. package/dist/options/image-sequence-pattern.d.ts +2 -1
  139. package/dist/options/image-sequence-pattern.js +2 -1
  140. package/dist/options/image-sequence.d.ts +1 -0
  141. package/dist/options/image-sequence.js +2 -1
  142. package/dist/options/index.d.ts +211 -2
  143. package/dist/options/index.js +12 -0
  144. package/dist/options/interactivity.d.ts +1 -0
  145. package/dist/options/interactivity.js +2 -1
  146. package/dist/options/ipv4.d.ts +1 -0
  147. package/dist/options/ipv4.js +2 -1
  148. package/dist/options/is-production.d.ts +1 -0
  149. package/dist/options/is-production.js +2 -1
  150. package/dist/options/jpeg-quality.d.ts +1 -0
  151. package/dist/options/jpeg-quality.js +6 -2
  152. package/dist/options/keyboard-shortcuts.d.ts +1 -0
  153. package/dist/options/keyboard-shortcuts.js +2 -1
  154. package/dist/options/latency-hint.d.ts +1 -0
  155. package/dist/options/latency-hint.js +2 -1
  156. package/dist/options/license-key.d.ts +1 -0
  157. package/dist/options/license-key.js +2 -1
  158. package/dist/options/log-level.d.ts +1 -0
  159. package/dist/options/log-level.js +2 -1
  160. package/dist/options/metadata.d.ts +1 -0
  161. package/dist/options/metadata.js +2 -1
  162. package/dist/options/mute.d.ts +1 -0
  163. package/dist/options/mute.js +2 -1
  164. package/dist/options/no-open.d.ts +1 -0
  165. package/dist/options/no-open.js +2 -1
  166. package/dist/options/number-of-gif-loops.d.ts +1 -0
  167. package/dist/options/number-of-gif-loops.js +2 -1
  168. package/dist/options/number-of-shared-audio-tags.d.ts +1 -0
  169. package/dist/options/number-of-shared-audio-tags.js +2 -1
  170. package/dist/options/offthreadvideo-cache-size.d.ts +1 -0
  171. package/dist/options/offthreadvideo-cache-size.js +2 -1
  172. package/dist/options/offthreadvideo-threads.d.ts +1 -0
  173. package/dist/options/offthreadvideo-threads.js +2 -1
  174. package/dist/options/on-browser-download.d.ts +1 -0
  175. package/dist/options/on-browser-download.js +2 -1
  176. package/dist/options/option.d.ts +1 -0
  177. package/dist/options/options-map.d.ts +189 -1
  178. package/dist/options/options-map.js +4 -0
  179. package/dist/options/out-dir.d.ts +1 -0
  180. package/dist/options/out-dir.js +2 -1
  181. package/dist/options/override-duration.d.ts +1 -0
  182. package/dist/options/override-duration.js +2 -1
  183. package/dist/options/override-fps.d.ts +1 -0
  184. package/dist/options/override-fps.js +2 -1
  185. package/dist/options/override-height.d.ts +1 -0
  186. package/dist/options/override-height.js +2 -1
  187. package/dist/options/override-width.d.ts +1 -0
  188. package/dist/options/override-width.js +2 -1
  189. package/dist/options/overwrite.d.ts +1 -0
  190. package/dist/options/overwrite.js +2 -1
  191. package/dist/options/package-manager.d.ts +1 -0
  192. package/dist/options/package-manager.js +2 -1
  193. package/dist/options/pixel-format.d.ts +1 -0
  194. package/dist/options/pixel-format.js +2 -1
  195. package/dist/options/port.d.ts +1 -0
  196. package/dist/options/port.js +2 -1
  197. package/dist/options/prefer-lossless.d.ts +1 -0
  198. package/dist/options/prefer-lossless.js +2 -1
  199. package/dist/options/preview-sample-rate.d.ts +1 -0
  200. package/dist/options/preview-sample-rate.js +2 -1
  201. package/dist/options/props.d.ts +1 -0
  202. package/dist/options/props.js +2 -1
  203. package/dist/options/prores-profile.d.ts +1 -0
  204. package/dist/options/prores-profile.js +2 -1
  205. package/dist/options/public-dir.d.ts +1 -0
  206. package/dist/options/public-dir.js +2 -1
  207. package/dist/options/public-license-key.d.ts +1 -0
  208. package/dist/options/public-license-key.js +2 -1
  209. package/dist/options/public-path.d.ts +1 -0
  210. package/dist/options/public-path.js +2 -1
  211. package/dist/options/repro.d.ts +1 -0
  212. package/dist/options/repro.js +2 -1
  213. package/dist/options/rspack.d.ts +2 -1
  214. package/dist/options/rspack.js +2 -1
  215. package/dist/options/runs.d.ts +1 -0
  216. package/dist/options/runs.js +2 -1
  217. package/dist/options/sample-rate.d.ts +1 -0
  218. package/dist/options/sample-rate.js +2 -1
  219. package/dist/options/scale.d.ts +1 -0
  220. package/dist/options/scale.js +2 -1
  221. package/dist/options/separate-audio.d.ts +1 -0
  222. package/dist/options/separate-audio.js +3 -2
  223. package/dist/options/show-premounting.d.ts +19 -0
  224. package/dist/options/show-premounting.js +33 -0
  225. package/dist/options/skip-skills.d.ts +1 -0
  226. package/dist/options/skip-skills.js +2 -1
  227. package/dist/options/still-frame.d.ts +1 -0
  228. package/dist/options/still-frame.js +2 -1
  229. package/dist/options/still-image-format.d.ts +1 -0
  230. package/dist/options/still-image-format.js +2 -1
  231. package/dist/options/throw-if-site-exists.d.ts +1 -0
  232. package/dist/options/throw-if-site-exists.js +2 -1
  233. package/dist/options/timeout.d.ts +1 -0
  234. package/dist/options/timeout.js +2 -1
  235. package/dist/options/user-agent.d.ts +1 -0
  236. package/dist/options/user-agent.js +2 -1
  237. package/dist/options/version-flag.d.ts +1 -0
  238. package/dist/options/version-flag.js +2 -1
  239. package/dist/options/video-bitrate.d.ts +1 -0
  240. package/dist/options/video-bitrate.js +2 -1
  241. package/dist/options/video-cache-size.d.ts +1 -0
  242. package/dist/options/video-cache-size.js +2 -1
  243. package/dist/options/video-codec.d.ts +1 -0
  244. package/dist/options/video-codec.js +5 -3
  245. package/dist/options/video-image-format.d.ts +1 -0
  246. package/dist/options/video-image-format.js +7 -2
  247. package/dist/options/webhook-custom-data.d.ts +1 -0
  248. package/dist/options/webhook-custom-data.js +2 -1
  249. package/dist/options/webpack-poll.d.ts +1 -0
  250. package/dist/options/webpack-poll.js +2 -1
  251. package/dist/options/x264-preset.d.ts +1 -0
  252. package/dist/options/x264-preset.js +2 -1
  253. package/dist/prespawn-ffmpeg.d.ts +20 -0
  254. package/dist/prespawn-ffmpeg.js +157 -29
  255. package/dist/probe-shared-memory-capture.d.ts +8 -0
  256. package/dist/probe-shared-memory-capture.js +111 -0
  257. package/dist/puppeteer-screenshot.d.ts +3 -1
  258. package/dist/puppeteer-screenshot.js +1 -0
  259. package/dist/pure.d.ts +1 -1
  260. package/dist/remotion-shared-memory-ffmpeg.d.ts +26 -0
  261. package/dist/remotion-shared-memory-ffmpeg.js +312 -0
  262. package/dist/remotion-shared-memory.d.ts +49 -0
  263. package/dist/remotion-shared-memory.js +359 -0
  264. package/dist/render-frame-and-retry-target-close.d.ts +5 -2
  265. package/dist/render-frame-and-retry-target-close.js +20 -4
  266. package/dist/render-frame-with-option-to-reject.d.ts +4 -1
  267. package/dist/render-frame-with-option-to-reject.js +206 -115
  268. package/dist/render-frame.d.ts +4 -5
  269. package/dist/render-frame.js +3 -1
  270. package/dist/render-frames.d.ts +3 -0
  271. package/dist/render-frames.js +15 -18
  272. package/dist/render-media.d.ts +1 -1
  273. package/dist/render-media.js +131 -46
  274. package/dist/render-still.js +1 -0
  275. package/dist/screenshot-background.d.ts +2 -0
  276. package/dist/screenshot-background.js +20 -0
  277. package/dist/screenshot-task.d.ts +4 -2
  278. package/dist/screenshot-task.js +40 -21
  279. package/dist/seek-to-frame.js +1 -1
  280. package/dist/stitch-frames-to-video.js +71 -10
  281. package/dist/take-frame.d.ts +11 -3
  282. package/dist/take-frame.js +10 -8
  283. package/dist/validate-output-filename.d.ts +1 -1
  284. package/dist/validate-output-filename.js +10 -2
  285. package/package.json +13 -13
package/dist/esm/pure.mjs CHANGED
@@ -88,6 +88,7 @@ var validCodecs = [
88
88
  ];
89
89
 
90
90
  // src/file-extensions.ts
91
+ import { NoReactInternals } from "remotion/no-react";
91
92
  var defaultFileExtensionMap = {
92
93
  "h264-mkv": {
93
94
  default: "mkv",
@@ -107,7 +108,7 @@ var defaultFileExtensionMap = {
107
108
  default: "aac",
108
109
  forAudioCodec: {
109
110
  aac: {
110
- possible: ["aac", "3gp", "m4a", "m4b", "mpg", "mpeg"],
111
+ possible: NoReactInternals.ENABLE_V5_BREAKING_CHANGES ? ["aac", "3gp", "m4a", "m4b"] : ["aac", "3gp", "m4a", "m4b", "mpg", "mpeg"],
111
112
  default: "aac"
112
113
  },
113
114
  "pcm-16": {
@@ -311,13 +312,29 @@ var getExtensionOfFilename = (filename) => {
311
312
  return extension;
312
313
  };
313
314
 
315
+ // src/validate-output-filename.ts
316
+ import { NoReactInternals as NoReactInternals2 } from "remotion/no-react";
317
+
318
+ // src/get-mp4-brand.ts
319
+ var mp4Brands = {
320
+ m4a: "M4A ",
321
+ m4b: "M4B ",
322
+ "3gp": "3gp4"
323
+ };
324
+ var getMp4BrandForExtension = (extension) => {
325
+ if (extension === null) {
326
+ return null;
327
+ }
328
+ return mp4Brands[extension.toLowerCase()] ?? null;
329
+ };
330
+
314
331
  // src/options/separate-audio.tsx
315
332
  var DEFAULT = null;
316
333
  var cliFlag = "separate-audio-to";
317
334
  var separateAudioOption = {
318
335
  cliFlag,
319
- description: () => `If set, the audio will not be included in the main output but rendered as a separate file at the location you pass. If the render contains no audio, a silent audio file is produced even when enforceAudioTrack is false. The muted option still takes precedence. It is recommended to use an absolute path. If a relative path is passed, it is relative to the Remotion Root.`,
320
- docLink: "https://remotion.dev/docs/renderer/render-media",
336
+ description: () => `If set, the audio will not be included in the main output but rendered as a separate file at the location you pass. If the render contains no audio, a silent audio file is produced even when enforceAudioTrack is false. Audio-only renders, muted renders and codecs without audio support cannot use this option. For local renders, use an absolute path; relative paths are resolved against the Remotion Root. On Lambda, pass an output name or custom destination as described in renderMediaOnLambda().`,
337
+ docLink: "https://www.remotion.dev/docs/options/separate-audio-to",
321
338
  getValue: ({ commandLine }) => {
322
339
  if (commandLine[cliFlag]) {
323
340
  return {
@@ -331,6 +348,7 @@ var separateAudioOption = {
331
348
  };
332
349
  },
333
350
  name: "Separate audio to",
351
+ addedIn: "4.0.123",
334
352
  setConfig: () => {
335
353
  throw new Error("Not implemented");
336
354
  },
@@ -424,15 +442,18 @@ var resolveAudioCodec = ({
424
442
  }) => {
425
443
  let derivedFromSeparateAudioToExtension = null;
426
444
  if (separateAudioTo) {
427
- const extension = separateAudioTo.split(".").pop();
445
+ const extension = separateAudioTo.split(".").pop() ?? null;
428
446
  for (const [key, value] of Object.entries(extensionMap)) {
429
447
  if (value === extension) {
430
448
  derivedFromSeparateAudioToExtension = key;
431
- if (!supportedAudioCodecs[codec].includes(derivedFromSeparateAudioToExtension) && derivedFromSeparateAudioToExtension) {
432
- throw new Error(`The codec is ${codec} but the audio codec derived from --${separateAudioOption.cliFlag} is ${derivedFromSeparateAudioToExtension}. The only supported codecs are: ${supportedAudioCodecs[codec].join(", ")}`);
433
- }
434
449
  }
435
450
  }
451
+ if (getMp4BrandForExtension(extension)) {
452
+ derivedFromSeparateAudioToExtension = "aac";
453
+ }
454
+ if (derivedFromSeparateAudioToExtension && !supportedAudioCodecs[codec].includes(derivedFromSeparateAudioToExtension)) {
455
+ throw new Error(`The codec is ${codec} but the audio codec derived from --${separateAudioOption.cliFlag} is ${derivedFromSeparateAudioToExtension}. The only supported codecs are: ${supportedAudioCodecs[codec].join(", ")}`);
456
+ }
436
457
  }
437
458
  if (preferLossless) {
438
459
  const selected = getDefaultAudioCodec({ codec, preferLossless });
@@ -494,8 +515,9 @@ var audioCodecOption = {
494
515
  };
495
516
  },
496
517
  description: () => `Set the format of the audio that is embedded in the video. Not all codec and audio codec combinations are supported and certain combinations require a certain file extension and container format. See the table in the docs to see possible combinations.`,
497
- docLink: "https://www.remotion.dev/docs/encoding/#audio-codec",
518
+ docLink: "https://www.remotion.dev/docs/options/audio-codec",
498
519
  name: "Audio Codec",
520
+ addedIn: "3.3.41",
499
521
  ssrName,
500
522
  type: "aac",
501
523
  id: cliFlag2
@@ -512,6 +534,10 @@ var validateOutputFilename = ({
512
534
  if (!defaultFileExtensionMap[codec]) {
513
535
  throw new TypeError(`The codec "${codec}" is not supported. Supported codecs are: ${Object.keys(defaultFileExtensionMap).join(", ")}`);
514
536
  }
537
+ const normalizedExtension = extension === null ? null : extension.toLowerCase();
538
+ if (NoReactInternals2.ENABLE_V5_BREAKING_CHANGES && codec === "aac" && (normalizedExtension === "mpg" || normalizedExtension === "mpeg")) {
539
+ throw new Error("AAC output with .mpg or .mpeg extensions is not supported. Use .aac for raw ADTS AAC or .m4a for an MPEG-4 audio container.");
540
+ }
515
541
  const map = defaultFileExtensionMap[codec];
516
542
  const resolvedAudioCodec = resolveAudioCodec({
517
543
  codec,
@@ -520,7 +546,7 @@ var validateOutputFilename = ({
520
546
  separateAudioTo
521
547
  });
522
548
  if (resolvedAudioCodec === null) {
523
- if (extension !== map.default) {
549
+ if (normalizedExtension !== map.default) {
524
550
  throw new TypeError(`When using the ${codec} codec, the output filename must end in .${map.default}.`);
525
551
  }
526
552
  return;
@@ -529,7 +555,7 @@ var validateOutputFilename = ({
529
555
  throw new Error(`Audio codec ${resolvedAudioCodec} is not supported for codec ${codec}`);
530
556
  }
531
557
  const acceptableExtensions = map.forAudioCodec[resolvedAudioCodec].possible;
532
- if (!acceptableExtensions.includes(extension) && !separateAudioTo) {
558
+ if (!acceptableExtensions.includes(normalizedExtension) && !separateAudioTo) {
533
559
  throw new TypeError(`When using the ${codec} codec with the ${resolvedAudioCodec} audio codec, the output filename must end in one of the following: ${acceptableExtensions.join(", ")}.`);
534
560
  }
535
561
  };
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.defaultFileExtensionMap = void 0;
4
+ const no_react_1 = require("remotion/no-react");
4
5
  exports.defaultFileExtensionMap = {
5
6
  'h264-mkv': {
6
7
  default: 'mkv',
@@ -20,7 +21,9 @@ exports.defaultFileExtensionMap = {
20
21
  default: 'aac',
21
22
  forAudioCodec: {
22
23
  aac: {
23
- possible: ['aac', '3gp', 'm4a', 'm4b', 'mpg', 'mpeg'],
24
+ possible: no_react_1.NoReactInternals.ENABLE_V5_BREAKING_CHANGES
25
+ ? ['aac', '3gp', 'm4a', 'm4b']
26
+ : ['aac', '3gp', 'm4a', 'm4b', 'mpg', 'mpeg'],
24
27
  default: 'aac',
25
28
  },
26
29
  'pcm-16': {
@@ -0,0 +1 @@
1
+ export declare const getMp4BrandForExtension: (extension: string | null) => string | null;
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getMp4BrandForExtension = void 0;
4
+ // Audio-only AAC renders may be saved as .m4a, .m4b or .3gp. These are
5
+ // ISO BMFF files, but the compressed audio is ADTS, so it must be remuxed
6
+ // rather than copied. Remotion's FFmpeg build has no `ipod` or `3gp` muxer,
7
+ // so the `mp4` muxer is used with the major brand that players use to
8
+ // identify these files.
9
+ const mp4Brands = {
10
+ m4a: 'M4A ',
11
+ m4b: 'M4B ',
12
+ '3gp': '3gp4',
13
+ };
14
+ const getMp4BrandForExtension = (extension) => {
15
+ var _a;
16
+ if (extension === null) {
17
+ return null;
18
+ }
19
+ return (_a = mp4Brands[extension.toLowerCase()]) !== null && _a !== void 0 ? _a : null;
20
+ };
21
+ exports.getMp4BrandForExtension = getMp4BrandForExtension;
@@ -5,12 +5,16 @@ const get_cpu_count_1 = require("./get-cpu-count");
5
5
  const get_available_memory_1 = require("./memory/get-available-memory");
6
6
  const MEMORY_USAGE_PER_THREAD = 400000000; // 400MB
7
7
  const RESERVED_MEMORY = 2000000000;
8
+ // Match Chromium's normal decoder thread limit. --video-threads bypasses that
9
+ // limit, and too many frame threads can require more packets before producing
10
+ // output than Mediabunny's decoder queue permits, causing frame extraction to hang.
11
+ const MAX_VIDEO_THREADS = 16;
8
12
  const getIdealVideoThreadsFlag = (logLevel) => {
9
13
  const freeMemory = (0, get_available_memory_1.getAvailableMemory)(logLevel);
10
14
  const cpus = (0, get_cpu_count_1.getCpuCount)();
11
15
  const maxRecommendedBasedOnCpus = (cpus * 2) / 3;
12
16
  const maxRecommendedBasedOnMemory = (freeMemory - RESERVED_MEMORY) / MEMORY_USAGE_PER_THREAD;
13
- const maxRecommended = Math.min(maxRecommendedBasedOnCpus, maxRecommendedBasedOnMemory);
17
+ const maxRecommended = Math.min(maxRecommendedBasedOnCpus, maxRecommendedBasedOnMemory, MAX_VIDEO_THREADS);
14
18
  return Math.max(1, Math.round(maxRecommended));
15
19
  };
16
20
  exports.getIdealVideoThreadsFlag = getIdealVideoThreadsFlag;
@@ -8,5 +8,6 @@ export type StillImageFormat = (typeof validStillImageFormats)[number];
8
8
  export type ImageFormat = 'This type is deprecated, use VideoImageFormat or StillImageFormat instead';
9
9
  export declare const DEFAULT_VIDEO_IMAGE_FORMAT: VideoImageFormat;
10
10
  export declare const DEFAULT_STILL_IMAGE_FORMAT: StillImageFormat;
11
+ export declare const validateVideoImageFormat: (videoImageFormat: "jpeg" | "none" | "png") => void;
11
12
  export declare const validateSelectedPixelFormatAndImageFormatCombination: (pixelFormat: "yuv420p" | "yuv420p10le" | "yuv422p" | "yuv422p10le" | "yuv444p" | "yuv444p10le" | "yuva420p" | "yuva444p10le" | undefined, videoImageFormat: "jpeg" | "none" | "png") => "none" | "valid";
12
13
  export declare const validateStillImageFormat: (imageFormat: "jpeg" | "pdf" | "png" | "webp") => void;
@@ -2,22 +2,26 @@
2
2
  // Keeping the default image format PNG if you don't pass a
3
3
  // value to the renderer for backwards compatibility.
4
4
  Object.defineProperty(exports, "__esModule", { value: true });
5
- exports.validateStillImageFormat = exports.validateSelectedPixelFormatAndImageFormatCombination = exports.DEFAULT_STILL_IMAGE_FORMAT = exports.DEFAULT_VIDEO_IMAGE_FORMAT = exports.validStillImageFormats = exports.validVideoImageFormats = void 0;
5
+ exports.validateStillImageFormat = exports.validateSelectedPixelFormatAndImageFormatCombination = exports.validateVideoImageFormat = exports.DEFAULT_STILL_IMAGE_FORMAT = exports.DEFAULT_VIDEO_IMAGE_FORMAT = exports.validStillImageFormats = exports.validVideoImageFormats = void 0;
6
6
  exports.validVideoImageFormats = ['png', 'jpeg', 'none'];
7
7
  exports.validStillImageFormats = ['png', 'jpeg', 'pdf', 'webp'];
8
8
  exports.DEFAULT_VIDEO_IMAGE_FORMAT = 'jpeg';
9
9
  exports.DEFAULT_STILL_IMAGE_FORMAT = 'png';
10
+ const validateVideoImageFormat = (videoImageFormat) => {
11
+ if (!exports.validVideoImageFormats.includes(videoImageFormat)) {
12
+ throw new TypeError(`Value ${videoImageFormat} is not valid as an image format.`);
13
+ }
14
+ };
15
+ exports.validateVideoImageFormat = validateVideoImageFormat;
10
16
  // By returning a value, we improve testability as we can specifically test certain branches
11
17
  const validateSelectedPixelFormatAndImageFormatCombination = (pixelFormat, videoImageFormat) => {
18
+ (0, exports.validateVideoImageFormat)(videoImageFormat);
12
19
  if (videoImageFormat === 'none') {
13
20
  return 'none';
14
21
  }
15
22
  if (typeof pixelFormat === 'undefined') {
16
23
  return 'valid';
17
24
  }
18
- if (!exports.validVideoImageFormats.includes(videoImageFormat)) {
19
- throw new TypeError(`Value ${videoImageFormat} is not valid as an image format.`);
20
- }
21
25
  if (pixelFormat !== 'yuva420p' && pixelFormat !== 'yuva444p10le') {
22
26
  return 'valid';
23
27
  }
package/dist/index.d.ts CHANGED
@@ -115,6 +115,7 @@ export declare const RenderInternals: {
115
115
  SymbolicateableError: typeof SymbolicateableError;
116
116
  getFramesToRender: (frameRange: import("./frame-range").ResolvedFrameRange[] | import("./frame-range").ResolvedFrameRange, everyNthFrame: number) => number[];
117
117
  getExtensionOfFilename: (filename: string | null) => string | null;
118
+ getMp4BrandForExtension: (extension: string | null) => string | null;
118
119
  getDesiredPort: ({ desiredPort, from, hostsToTry, to, onPortUnavailable, }: {
119
120
  desiredPort: number | undefined;
120
121
  from: number;
@@ -152,6 +153,13 @@ export declare const RenderInternals: {
152
153
  registerErrorSymbolicationLock: () => number;
153
154
  unlockErrorSymbolicationLock: (id: number) => void;
154
155
  canUseParallelEncoding: (codec: "aac" | "av1" | "gif" | "h264" | "h264-mkv" | "h264-ts" | "h265" | "mp3" | "prores" | "vp8" | "vp9" | "wav") => boolean;
156
+ probeSharedMemoryCapture: ({ browserExecutable, chromeMode, chromiumOptions, binariesDirectory, logLevel, }: {
157
+ browserExecutable: string | null;
158
+ chromeMode: "chrome-for-testing" | "headless-shell";
159
+ chromiumOptions: import("./open-browser").ChromiumOptions;
160
+ binariesDirectory: string | null;
161
+ logLevel: "error" | "info" | "trace" | "verbose" | "warn";
162
+ }) => Promise<boolean>;
155
163
  mimeContentType: typeof mimeContentType;
156
164
  mimeLookup: typeof mimeLookup;
157
165
  validateConcurrency: ({ setting, value, checkIfValidForCurrentMachine, }: {
@@ -504,6 +512,7 @@ export declare const RenderInternals: {
504
512
  } & import(".").ToOptions<Omit<{
505
513
  readonly mediaCacheSizeInBytes: {
506
514
  name: string;
515
+ addedIn: string;
507
516
  cliFlag: "media-cache-size-in-bytes";
508
517
  description: () => import("react/jsx-runtime").JSX.Element;
509
518
  ssrName: "mediaCacheSizeInBytes";
@@ -523,6 +532,7 @@ export declare const RenderInternals: {
523
532
  };
524
533
  readonly offthreadVideoCacheSizeInBytes: {
525
534
  name: string;
535
+ addedIn: string;
526
536
  cliFlag: "offthreadvideo-cache-size-in-bytes";
527
537
  description: () => import("react/jsx-runtime").JSX.Element;
528
538
  ssrName: "offthreadVideoCacheSizeInBytes";
@@ -542,6 +552,7 @@ export declare const RenderInternals: {
542
552
  };
543
553
  readonly offthreadVideoThreads: {
544
554
  name: string;
555
+ addedIn: string;
545
556
  cliFlag: "offthreadvideo-video-threads";
546
557
  description: () => import("react/jsx-runtime").JSX.Element;
547
558
  ssrName: "offthreadVideoThreads";
@@ -561,6 +572,7 @@ export declare const RenderInternals: {
561
572
  };
562
573
  readonly jpegQuality: {
563
574
  name: string;
575
+ addedIn: string;
564
576
  cliFlag: "jpeg-quality";
565
577
  description: () => import("react/jsx-runtime").JSX.Element;
566
578
  ssrName: string;
@@ -578,6 +590,7 @@ export declare const RenderInternals: {
578
590
  readonly logLevel: {
579
591
  cliFlag: "log";
580
592
  name: string;
593
+ addedIn: string;
581
594
  ssrName: string;
582
595
  description: () => import("react/jsx-runtime").JSX.Element;
583
596
  docLink: string;
@@ -595,6 +608,7 @@ export declare const RenderInternals: {
595
608
  };
596
609
  readonly timeoutInMilliseconds: {
597
610
  name: string;
611
+ addedIn: string;
598
612
  cliFlag: "timeout";
599
613
  description: () => import("react/jsx-runtime").JSX.Element;
600
614
  ssrName: "timeoutInMilliseconds";
@@ -611,6 +625,7 @@ export declare const RenderInternals: {
611
625
  };
612
626
  readonly binariesDirectory: {
613
627
  name: string;
628
+ addedIn: string;
614
629
  cliFlag: "binaries-directory";
615
630
  description: () => import("react/jsx-runtime").JSX.Element;
616
631
  ssrName: "binariesDirectory";
@@ -627,6 +642,7 @@ export declare const RenderInternals: {
627
642
  };
628
643
  readonly onBrowserDownload: {
629
644
  name: string;
645
+ addedIn: string;
630
646
  cliFlag: "on-browser-download";
631
647
  description: () => import("react/jsx-runtime").JSX.Element;
632
648
  ssrName: "onBrowserDownload";
@@ -639,6 +655,7 @@ export declare const RenderInternals: {
639
655
  readonly chromeMode: {
640
656
  cliFlag: "chrome-mode";
641
657
  name: string;
658
+ addedIn: string;
642
659
  ssrName: string;
643
660
  description: () => import("react/jsx-runtime").JSX.Element;
644
661
  docLink: string;
@@ -654,6 +671,7 @@ export declare const RenderInternals: {
654
671
  };
655
672
  readonly apiKey: {
656
673
  name: string;
674
+ addedIn: string;
657
675
  cliFlag: "api-key";
658
676
  description: () => import("react/jsx-runtime").JSX.Element;
659
677
  ssrName: "apiKey";
@@ -670,6 +688,7 @@ export declare const RenderInternals: {
670
688
  };
671
689
  readonly licenseKey: {
672
690
  name: string;
691
+ addedIn: string;
673
692
  cliFlag: "license-key";
674
693
  description: () => import("react/jsx-runtime").JSX.Element;
675
694
  ssrName: "licenseKey";
@@ -699,6 +718,7 @@ export declare const RenderInternals: {
699
718
  readonly logLevel: {
700
719
  cliFlag: "log";
701
720
  name: string;
721
+ addedIn: string;
702
722
  ssrName: string;
703
723
  description: () => import("react/jsx-runtime").JSX.Element;
704
724
  docLink: string;
@@ -716,6 +736,7 @@ export declare const RenderInternals: {
716
736
  };
717
737
  readonly onBrowserDownload: {
718
738
  name: string;
739
+ addedIn: string;
719
740
  cliFlag: "on-browser-download";
720
741
  description: () => import("react/jsx-runtime").JSX.Element;
721
742
  ssrName: "onBrowserDownload";
@@ -728,6 +749,7 @@ export declare const RenderInternals: {
728
749
  readonly chromeMode: {
729
750
  cliFlag: "chrome-mode";
730
751
  name: string;
752
+ addedIn: string;
731
753
  ssrName: string;
732
754
  description: () => import("react/jsx-runtime").JSX.Element;
733
755
  docLink: string;
@@ -758,6 +780,7 @@ export declare const RenderInternals: {
758
780
  } & import(".").ToOptions<{
759
781
  readonly mediaCacheSizeInBytes: {
760
782
  name: string;
783
+ addedIn: string;
761
784
  cliFlag: "media-cache-size-in-bytes";
762
785
  description: () => import("react/jsx-runtime").JSX.Element;
763
786
  ssrName: "mediaCacheSizeInBytes";
@@ -777,6 +800,7 @@ export declare const RenderInternals: {
777
800
  };
778
801
  readonly offthreadVideoCacheSizeInBytes: {
779
802
  name: string;
803
+ addedIn: string;
780
804
  cliFlag: "offthreadvideo-cache-size-in-bytes";
781
805
  description: () => import("react/jsx-runtime").JSX.Element;
782
806
  ssrName: "offthreadVideoCacheSizeInBytes";
@@ -796,6 +820,7 @@ export declare const RenderInternals: {
796
820
  };
797
821
  readonly offthreadVideoThreads: {
798
822
  name: string;
823
+ addedIn: string;
799
824
  cliFlag: "offthreadvideo-video-threads";
800
825
  description: () => import("react/jsx-runtime").JSX.Element;
801
826
  ssrName: "offthreadVideoThreads";
@@ -816,6 +841,7 @@ export declare const RenderInternals: {
816
841
  readonly logLevel: {
817
842
  cliFlag: "log";
818
843
  name: string;
844
+ addedIn: string;
819
845
  ssrName: string;
820
846
  description: () => import("react/jsx-runtime").JSX.Element;
821
847
  docLink: string;
@@ -833,6 +859,7 @@ export declare const RenderInternals: {
833
859
  };
834
860
  readonly timeoutInMilliseconds: {
835
861
  name: string;
862
+ addedIn: string;
836
863
  cliFlag: "timeout";
837
864
  description: () => import("react/jsx-runtime").JSX.Element;
838
865
  ssrName: "timeoutInMilliseconds";
@@ -849,6 +876,7 @@ export declare const RenderInternals: {
849
876
  };
850
877
  readonly binariesDirectory: {
851
878
  name: string;
879
+ addedIn: string;
852
880
  cliFlag: "binaries-directory";
853
881
  description: () => import("react/jsx-runtime").JSX.Element;
854
882
  ssrName: "binariesDirectory";
@@ -865,6 +893,7 @@ export declare const RenderInternals: {
865
893
  };
866
894
  readonly onBrowserDownload: {
867
895
  name: string;
896
+ addedIn: string;
868
897
  cliFlag: "on-browser-download";
869
898
  description: () => import("react/jsx-runtime").JSX.Element;
870
899
  ssrName: "onBrowserDownload";
@@ -877,6 +906,7 @@ export declare const RenderInternals: {
877
906
  readonly chromeMode: {
878
907
  cliFlag: "chrome-mode";
879
908
  name: string;
909
+ addedIn: string;
880
910
  ssrName: string;
881
911
  description: () => import("react/jsx-runtime").JSX.Element;
882
912
  docLink: string;
@@ -909,6 +939,7 @@ export declare const RenderInternals: {
909
939
  } & import(".").ToOptions<{
910
940
  readonly mediaCacheSizeInBytes: {
911
941
  name: string;
942
+ addedIn: string;
912
943
  cliFlag: "media-cache-size-in-bytes";
913
944
  description: () => import("react/jsx-runtime").JSX.Element;
914
945
  ssrName: "mediaCacheSizeInBytes";
@@ -928,6 +959,7 @@ export declare const RenderInternals: {
928
959
  };
929
960
  readonly offthreadVideoCacheSizeInBytes: {
930
961
  name: string;
962
+ addedIn: string;
931
963
  cliFlag: "offthreadvideo-cache-size-in-bytes";
932
964
  description: () => import("react/jsx-runtime").JSX.Element;
933
965
  ssrName: "offthreadVideoCacheSizeInBytes";
@@ -947,6 +979,7 @@ export declare const RenderInternals: {
947
979
  };
948
980
  readonly offthreadVideoThreads: {
949
981
  name: string;
982
+ addedIn: string;
950
983
  cliFlag: "offthreadvideo-video-threads";
951
984
  description: () => import("react/jsx-runtime").JSX.Element;
952
985
  ssrName: "offthreadVideoThreads";
@@ -967,6 +1000,7 @@ export declare const RenderInternals: {
967
1000
  readonly logLevel: {
968
1001
  cliFlag: "log";
969
1002
  name: string;
1003
+ addedIn: string;
970
1004
  ssrName: string;
971
1005
  description: () => import("react/jsx-runtime").JSX.Element;
972
1006
  docLink: string;
@@ -984,6 +1018,7 @@ export declare const RenderInternals: {
984
1018
  };
985
1019
  readonly timeoutInMilliseconds: {
986
1020
  name: string;
1021
+ addedIn: string;
987
1022
  cliFlag: "timeout";
988
1023
  description: () => import("react/jsx-runtime").JSX.Element;
989
1024
  ssrName: "timeoutInMilliseconds";
@@ -1000,6 +1035,7 @@ export declare const RenderInternals: {
1000
1035
  };
1001
1036
  readonly binariesDirectory: {
1002
1037
  name: string;
1038
+ addedIn: string;
1003
1039
  cliFlag: "binaries-directory";
1004
1040
  description: () => import("react/jsx-runtime").JSX.Element;
1005
1041
  ssrName: "binariesDirectory";
@@ -1016,6 +1052,7 @@ export declare const RenderInternals: {
1016
1052
  };
1017
1053
  readonly onBrowserDownload: {
1018
1054
  name: string;
1055
+ addedIn: string;
1019
1056
  cliFlag: "on-browser-download";
1020
1057
  description: () => import("react/jsx-runtime").JSX.Element;
1021
1058
  ssrName: "onBrowserDownload";
@@ -1028,6 +1065,7 @@ export declare const RenderInternals: {
1028
1065
  readonly chromeMode: {
1029
1066
  cliFlag: "chrome-mode";
1030
1067
  name: string;
1068
+ addedIn: string;
1031
1069
  ssrName: string;
1032
1070
  description: () => import("react/jsx-runtime").JSX.Element;
1033
1071
  docLink: string;
@@ -1057,6 +1095,8 @@ export declare const RenderInternals: {
1057
1095
  browserExecutable: import("./browser-executable").BrowserExecutable;
1058
1096
  onBrowserLog: ((log: import("./browser-log").BrowserLog) => void) | null;
1059
1097
  onFrameBuffer: ((buffer: Buffer, frame: number) => void | Promise<void>) | null;
1098
+ onFrame: ((frame: import("./remotion-shared-memory").CapturedFrame, frameNumber: number) => void | Promise<void>) | null;
1099
+ remotionSharedMemory: import("./remotion-shared-memory").RemotionSharedMemoryCapture | null;
1060
1100
  onDownload: import(".").RenderMediaOnDownload | null;
1061
1101
  chromiumOptions: import("./open-browser").ChromiumOptions;
1062
1102
  scale: number;
@@ -1077,6 +1117,7 @@ export declare const RenderInternals: {
1077
1117
  } & import(".").ToOptions<{
1078
1118
  readonly mediaCacheSizeInBytes: {
1079
1119
  name: string;
1120
+ addedIn: string;
1080
1121
  cliFlag: "media-cache-size-in-bytes";
1081
1122
  description: () => import("react/jsx-runtime").JSX.Element;
1082
1123
  ssrName: "mediaCacheSizeInBytes";
@@ -1096,6 +1137,7 @@ export declare const RenderInternals: {
1096
1137
  };
1097
1138
  readonly forSeamlessAacConcatenation: {
1098
1139
  name: string;
1140
+ addedIn: string;
1099
1141
  cliFlag: "for-seamless-aac-concatenation";
1100
1142
  description: () => import("react/jsx-runtime").JSX.Element;
1101
1143
  docLink: string;
@@ -1115,6 +1157,7 @@ export declare const RenderInternals: {
1115
1157
  };
1116
1158
  readonly offthreadVideoCacheSizeInBytes: {
1117
1159
  name: string;
1160
+ addedIn: string;
1118
1161
  cliFlag: "offthreadvideo-cache-size-in-bytes";
1119
1162
  description: () => import("react/jsx-runtime").JSX.Element;
1120
1163
  ssrName: "offthreadVideoCacheSizeInBytes";
@@ -1134,6 +1177,7 @@ export declare const RenderInternals: {
1134
1177
  };
1135
1178
  readonly offthreadVideoThreads: {
1136
1179
  name: string;
1180
+ addedIn: string;
1137
1181
  cliFlag: "offthreadvideo-video-threads";
1138
1182
  description: () => import("react/jsx-runtime").JSX.Element;
1139
1183
  ssrName: "offthreadVideoThreads";
@@ -1153,6 +1197,7 @@ export declare const RenderInternals: {
1153
1197
  };
1154
1198
  readonly jpegQuality: {
1155
1199
  name: string;
1200
+ addedIn: string;
1156
1201
  cliFlag: "jpeg-quality";
1157
1202
  description: () => import("react/jsx-runtime").JSX.Element;
1158
1203
  ssrName: string;
@@ -1170,6 +1215,7 @@ export declare const RenderInternals: {
1170
1215
  readonly logLevel: {
1171
1216
  cliFlag: "log";
1172
1217
  name: string;
1218
+ addedIn: string;
1173
1219
  ssrName: string;
1174
1220
  description: () => import("react/jsx-runtime").JSX.Element;
1175
1221
  docLink: string;
@@ -1187,6 +1233,7 @@ export declare const RenderInternals: {
1187
1233
  };
1188
1234
  readonly timeoutInMilliseconds: {
1189
1235
  name: string;
1236
+ addedIn: string;
1190
1237
  cliFlag: "timeout";
1191
1238
  description: () => import("react/jsx-runtime").JSX.Element;
1192
1239
  ssrName: "timeoutInMilliseconds";
@@ -1203,6 +1250,7 @@ export declare const RenderInternals: {
1203
1250
  };
1204
1251
  readonly binariesDirectory: {
1205
1252
  name: string;
1253
+ addedIn: string;
1206
1254
  cliFlag: "binaries-directory";
1207
1255
  description: () => import("react/jsx-runtime").JSX.Element;
1208
1256
  ssrName: "binariesDirectory";
@@ -1219,6 +1267,7 @@ export declare const RenderInternals: {
1219
1267
  };
1220
1268
  readonly onBrowserDownload: {
1221
1269
  name: string;
1270
+ addedIn: string;
1222
1271
  cliFlag: "on-browser-download";
1223
1272
  description: () => import("react/jsx-runtime").JSX.Element;
1224
1273
  ssrName: "onBrowserDownload";
@@ -1231,6 +1280,7 @@ export declare const RenderInternals: {
1231
1280
  readonly chromeMode: {
1232
1281
  cliFlag: "chrome-mode";
1233
1282
  name: string;
1283
+ addedIn: string;
1234
1284
  ssrName: string;
1235
1285
  description: () => import("react/jsx-runtime").JSX.Element;
1236
1286
  docLink: string;
@@ -1246,10 +1296,11 @@ export declare const RenderInternals: {
1246
1296
  };
1247
1297
  readonly imageSequencePattern: {
1248
1298
  name: string;
1299
+ addedIn: string;
1249
1300
  cliFlag: "image-sequence-pattern";
1250
1301
  ssrName: string;
1251
1302
  description: () => import("react/jsx-runtime").JSX.Element;
1252
- docLink: null;
1303
+ docLink: string;
1253
1304
  type: string | null;
1254
1305
  getValue: ({ commandLine }: {
1255
1306
  commandLine: Record<string, unknown>;
@@ -1266,6 +1317,7 @@ export declare const RenderInternals: {
1266
1317
  };
1267
1318
  readonly sampleRate: {
1268
1319
  name: string;
1320
+ addedIn: string;
1269
1321
  cliFlag: "sample-rate";
1270
1322
  description: () => import("react/jsx-runtime").JSX.Element;
1271
1323
  ssrName: "sampleRate";
@@ -1333,6 +1385,7 @@ export declare const RenderInternals: {
1333
1385
  readonly logLevel: {
1334
1386
  cliFlag: "log";
1335
1387
  name: string;
1388
+ addedIn: string;
1336
1389
  ssrName: string;
1337
1390
  description: () => import("react/jsx-runtime").JSX.Element;
1338
1391
  docLink: string;
@@ -1350,6 +1403,7 @@ export declare const RenderInternals: {
1350
1403
  };
1351
1404
  readonly onBrowserDownload: {
1352
1405
  name: string;
1406
+ addedIn: string;
1353
1407
  cliFlag: "on-browser-download";
1354
1408
  description: () => import("react/jsx-runtime").JSX.Element;
1355
1409
  ssrName: "onBrowserDownload";
@@ -1362,6 +1416,7 @@ export declare const RenderInternals: {
1362
1416
  readonly chromeMode: {
1363
1417
  cliFlag: "chrome-mode";
1364
1418
  name: string;
1419
+ addedIn: string;
1365
1420
  ssrName: string;
1366
1421
  description: () => import("react/jsx-runtime").JSX.Element;
1367
1422
  docLink: string;
@@ -1380,7 +1435,7 @@ export declare const RenderInternals: {
1380
1435
  DEFAULT_RENDER_FRAMES_OFFTHREAD_VIDEO_THREADS: number;
1381
1436
  canConcatVideoSeamlessly: (codec: "aac" | "av1" | "gif" | "h264" | "h264-mkv" | "h264-ts" | "h265" | "mp3" | "prores" | "vp8" | "vp9" | "wav") => codec is "h264";
1382
1437
  canConcatAudioSeamlessly: (audioCodec: "aac" | "mp3" | "opus" | "pcm-16" | null, chunkDurationInFrames: number) => boolean;
1383
- internalCombineChunks: ({ outputLocation: output, onProgress, codec, fps, numberOfGifLoops, audioBitrate, indent, logLevel, binariesDirectory, cancelSignal, metadata, audioFiles, videoFiles, framesPerChunk, audioCodec, preferLossless, everyNthFrame, frameRange, compositionDurationInFrames, sampleRate, }: {
1438
+ internalCombineChunks: ({ outputLocation: output, onProgress, codec, fps, numberOfGifLoops, audioBitrate, indent, logLevel, binariesDirectory, cancelSignal, metadata, audioFiles, videoFiles, framesPerChunk, audioCodec, preferLossless, everyNthFrame, frameRange, compositionDurationInFrames, sampleRate, separateAudioTo, }: {
1384
1439
  outputLocation: string;
1385
1440
  audioFiles: string[];
1386
1441
  codec: "aac" | "av1" | "gif" | "h264" | "h264-mkv" | "h264-ts" | "h265" | "mp3" | "prores" | "vp8" | "vp9" | "wav";
@@ -1403,6 +1458,7 @@ export declare const RenderInternals: {
1403
1458
  sampleRate: number;
1404
1459
  } & {
1405
1460
  indent: boolean;
1461
+ separateAudioTo: string | null;
1406
1462
  }) => Promise<void>;
1407
1463
  defaultOnLog: import(".").OnLog;
1408
1464
  };
package/dist/index.js CHANGED
@@ -64,6 +64,7 @@ const get_duration_from_frame_range_1 = require("./get-duration-from-frame-range
64
64
  const get_extension_from_codec_1 = require("./get-extension-from-codec");
65
65
  const get_extension_of_filename_1 = require("./get-extension-of-filename");
66
66
  const get_frame_to_render_1 = require("./get-frame-to-render");
67
+ const get_mp4_brand_1 = require("./get-mp4-brand");
67
68
  const get_port_1 = require("./get-port");
68
69
  const image_format_1 = require("./image-format");
69
70
  const is_serve_url_1 = require("./is-serve-url");
@@ -78,6 +79,7 @@ const perf = __importStar(require("./perf"));
78
79
  const pixel_format_1 = require("./pixel-format");
79
80
  const port_config_1 = require("./port-config");
80
81
  const prepare_server_1 = require("./prepare-server");
82
+ const probe_shared_memory_capture_1 = require("./probe-shared-memory-capture");
81
83
  const render_frames_1 = require("./render-frames");
82
84
  const render_media_1 = require("./render-media");
83
85
  const render_still_1 = require("./render-still");
@@ -164,12 +166,14 @@ exports.RenderInternals = {
164
166
  SymbolicateableError: symbolicateable_error_1.SymbolicateableError,
165
167
  getFramesToRender: get_duration_from_frame_range_1.getFramesToRender,
166
168
  getExtensionOfFilename: get_extension_of_filename_1.getExtensionOfFilename,
169
+ getMp4BrandForExtension: get_mp4_brand_1.getMp4BrandForExtension,
167
170
  getDesiredPort: get_port_1.getDesiredPort,
168
171
  isPathInside: is_path_inside_1.isPathInside,
169
172
  execa: execa_1.default,
170
173
  registerErrorSymbolicationLock: wait_for_symbolication_error_to_be_done_1.registerErrorSymbolicationLock,
171
174
  unlockErrorSymbolicationLock: wait_for_symbolication_error_to_be_done_1.unlockErrorSymbolicationLock,
172
175
  canUseParallelEncoding: can_use_parallel_encoding_1.canUseParallelEncoding,
176
+ probeSharedMemoryCapture: probe_shared_memory_capture_1.probeSharedMemoryCapture,
173
177
  mimeContentType: mime_types_1.mimeContentType,
174
178
  mimeLookup: mime_types_1.mimeLookup,
175
179
  validateConcurrency: validate_concurrency_1.validateConcurrency,
@@ -0,0 +1 @@
1
+ export declare const getAvailableMemoryFromMacos: (logLevel: "error" | "info" | "trace" | "verbose" | "warn") => number | null;