@remotion/renderer 4.0.0-webhook.27 → 4.1.0-alpha2

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 (411) hide show
  1. package/LICENSE.md +8 -8
  2. package/README.md +9 -0
  3. package/client.d.ts +1 -0
  4. package/client.js +1 -0
  5. package/dist/assets/calculate-asset-positions.d.ts +0 -0
  6. package/dist/assets/calculate-asset-positions.js +1 -0
  7. package/dist/assets/calculate-atempo.d.ts +0 -0
  8. package/dist/assets/calculate-atempo.js +0 -0
  9. package/dist/assets/convert-assets-to-file-urls.d.ts +0 -0
  10. package/dist/assets/convert-assets-to-file-urls.js +0 -0
  11. package/dist/assets/download-and-map-assets-to-file.d.ts +6 -4
  12. package/dist/assets/download-and-map-assets-to-file.js +49 -19
  13. package/dist/assets/download-file.d.ts +8 -5
  14. package/dist/assets/download-file.js +71 -8
  15. package/dist/assets/download-map.d.ts +8 -29
  16. package/dist/assets/download-map.js +15 -16
  17. package/dist/assets/ffmpeg-volume-expression.d.ts +4 -3
  18. package/dist/assets/ffmpeg-volume-expression.js +5 -3
  19. package/dist/assets/flatten-volume-array.d.ts +0 -0
  20. package/dist/assets/flatten-volume-array.js +0 -0
  21. package/dist/assets/get-audio-channels.d.ts +2 -2
  22. package/dist/assets/get-audio-channels.js +14 -12
  23. package/dist/assets/read-file.d.ts +1 -1
  24. package/dist/assets/read-file.js +5 -7
  25. package/dist/assets/round-volume-to-avoid-stack-overflow.d.ts +0 -0
  26. package/dist/assets/round-volume-to-avoid-stack-overflow.js +0 -0
  27. package/dist/assets/sanitize-filename.d.ts +0 -0
  28. package/dist/assets/sanitize-filename.js +0 -0
  29. package/dist/assets/sanitize-filepath.d.ts +0 -0
  30. package/dist/assets/sanitize-filepath.js +2 -2
  31. package/dist/assets/truncate-utf8-bytes.d.ts +0 -0
  32. package/dist/assets/truncate-utf8-bytes.js +0 -0
  33. package/dist/assets/types.d.ts +5 -4
  34. package/dist/assets/types.js +0 -0
  35. package/dist/audio-codec.d.ts +28 -0
  36. package/dist/audio-codec.js +83 -0
  37. package/dist/browser/Browser.d.ts +16 -14
  38. package/dist/browser/Browser.js +69 -72
  39. package/dist/browser/BrowserConnector.d.ts +0 -0
  40. package/dist/browser/BrowserConnector.js +0 -0
  41. package/dist/browser/BrowserFetcher.d.ts +16 -64
  42. package/dist/browser/BrowserFetcher.js +147 -235
  43. package/dist/browser/BrowserPage.d.ts +21 -6
  44. package/dist/browser/BrowserPage.js +54 -22
  45. package/dist/browser/BrowserRunner.d.ts +1 -1
  46. package/dist/browser/BrowserRunner.js +32 -22
  47. package/dist/browser/Connection.d.ts +0 -0
  48. package/dist/browser/Connection.js +1 -1
  49. package/dist/browser/ConsoleMessage.d.ts +1 -1
  50. package/dist/browser/ConsoleMessage.js +0 -0
  51. package/dist/browser/DOMWorld.d.ts +5 -4
  52. package/dist/browser/DOMWorld.js +16 -9
  53. package/dist/browser/Errors.d.ts +0 -0
  54. package/dist/browser/Errors.js +0 -0
  55. package/dist/browser/EvalTypes.d.ts +7 -7
  56. package/dist/browser/EvalTypes.js +0 -0
  57. package/dist/browser/EventEmitter.d.ts +0 -0
  58. package/dist/browser/EventEmitter.js +0 -0
  59. package/dist/browser/ExecutionContext.d.ts +0 -0
  60. package/dist/browser/ExecutionContext.js +0 -0
  61. package/dist/browser/FrameManager.d.ts +0 -2
  62. package/dist/browser/FrameManager.js +13 -17
  63. package/dist/browser/HTTPRequest.d.ts +0 -0
  64. package/dist/browser/HTTPRequest.js +0 -0
  65. package/dist/browser/HTTPResponse.d.ts +0 -0
  66. package/dist/browser/HTTPResponse.js +0 -0
  67. package/dist/browser/JSHandle.d.ts +0 -0
  68. package/dist/browser/JSHandle.js +14 -14
  69. package/dist/browser/LaunchOptions.d.ts +2 -2
  70. package/dist/browser/LaunchOptions.js +0 -0
  71. package/dist/browser/Launcher.d.ts +9 -3
  72. package/dist/browser/Launcher.js +16 -29
  73. package/dist/browser/LifecycleWatcher.d.ts +1 -1
  74. package/dist/browser/LifecycleWatcher.js +0 -0
  75. package/dist/browser/NetworkEventManager.d.ts +4 -4
  76. package/dist/browser/NetworkEventManager.js +0 -0
  77. package/dist/browser/NetworkManager.d.ts +0 -0
  78. package/dist/browser/NetworkManager.js +0 -0
  79. package/dist/browser/NodeWebSocketTransport.d.ts +0 -0
  80. package/dist/browser/NodeWebSocketTransport.js +21 -21
  81. package/dist/browser/Product.d.ts +1 -1
  82. package/dist/browser/Product.js +0 -0
  83. package/dist/browser/PuppeteerNode.d.ts +2 -5
  84. package/dist/browser/PuppeteerNode.js +2 -11
  85. package/dist/browser/PuppeteerViewport.d.ts +0 -0
  86. package/dist/browser/PuppeteerViewport.js +0 -0
  87. package/dist/browser/ScreenshotOptions.d.ts +0 -14
  88. package/dist/browser/ScreenshotOptions.js +0 -1
  89. package/dist/browser/Target.d.ts +4 -3
  90. package/dist/browser/Target.js +8 -2
  91. package/dist/browser/TaskQueue.d.ts +0 -0
  92. package/dist/browser/TaskQueue.js +0 -0
  93. package/dist/browser/TimeoutSettings.d.ts +0 -0
  94. package/dist/browser/TimeoutSettings.js +0 -0
  95. package/dist/browser/assert.d.ts +0 -0
  96. package/dist/browser/assert.js +0 -0
  97. package/dist/browser/create-browser-fetcher.d.ts +0 -0
  98. package/dist/browser/create-browser-fetcher.js +34 -48
  99. package/dist/browser/devtools-commands.d.ts +5 -1
  100. package/dist/browser/devtools-commands.js +0 -0
  101. package/dist/browser/devtools-types.d.ts +92 -10
  102. package/dist/browser/devtools-types.js +0 -0
  103. package/dist/browser/get-download-destination.d.ts +0 -0
  104. package/dist/browser/get-download-destination.js +8 -8
  105. package/dist/browser/is-target-closed-err.d.ts +1 -0
  106. package/dist/browser/is-target-closed-err.js +9 -0
  107. package/dist/browser/mitt/index.d.ts +6 -6
  108. package/dist/browser/mitt/index.js +0 -0
  109. package/dist/browser/node.d.ts +0 -0
  110. package/dist/browser/node.js +0 -0
  111. package/dist/browser/revisions.d.ts +1 -1
  112. package/dist/browser/revisions.js +0 -0
  113. package/dist/browser/should-log-message.d.ts +24 -0
  114. package/dist/browser/should-log-message.js +72 -0
  115. package/dist/browser/util.d.ts +2 -2
  116. package/dist/browser/util.js +0 -0
  117. package/dist/browser-executable.d.ts +1 -1
  118. package/dist/browser-executable.js +0 -0
  119. package/dist/browser-log.d.ts +1 -1
  120. package/dist/browser-log.js +0 -0
  121. package/dist/browser.d.ts +1 -1
  122. package/dist/browser.js +0 -0
  123. package/dist/calculate-ffmpeg-filters.d.ts +2 -1
  124. package/dist/calculate-ffmpeg-filters.js +1 -0
  125. package/dist/call-ffmpeg.d.ts +14 -0
  126. package/dist/call-ffmpeg.js +42 -0
  127. package/dist/can-use-parallel-encoding.d.ts +0 -0
  128. package/dist/can-use-parallel-encoding.js +0 -0
  129. package/dist/chalk/index.d.ts +54 -0
  130. package/dist/chalk/index.js +135 -0
  131. package/dist/chalk/is-color-supported.d.ts +1 -0
  132. package/dist/chalk/is-color-supported.js +37 -0
  133. package/dist/check-apple-silicon.d.ts +1 -1
  134. package/dist/check-apple-silicon.js +8 -47
  135. package/dist/chunk.d.ts +0 -0
  136. package/dist/chunk.js +0 -0
  137. package/dist/client.d.ts +204 -0
  138. package/dist/client.js +49 -0
  139. package/dist/codec-supports-media.d.ts +3 -2
  140. package/dist/codec-supports-media.js +20 -5
  141. package/dist/codec.d.ts +2 -2
  142. package/dist/codec.js +0 -0
  143. package/dist/combine-videos.d.ts +6 -2
  144. package/dist/combine-videos.js +17 -17
  145. package/dist/compositor/compose.d.ts +26 -0
  146. package/dist/compositor/compose.js +82 -0
  147. package/dist/compositor/compositor.d.ts +11 -0
  148. package/dist/compositor/compositor.js +219 -0
  149. package/dist/compositor/get-executable-path.d.ts +1 -0
  150. package/dist/compositor/get-executable-path.js +57 -0
  151. package/dist/compositor/make-nonce.d.ts +1 -0
  152. package/dist/compositor/make-nonce.js +8 -0
  153. package/dist/compositor/payloads.d.ts +68 -0
  154. package/dist/{ffmpeg-executable.js → compositor/payloads.js} +0 -0
  155. package/dist/compress-assets.d.ts +0 -0
  156. package/dist/compress-assets.js +0 -0
  157. package/dist/convert-number-of-gif-loops-to-ffmpeg.d.ts +0 -0
  158. package/dist/convert-number-of-gif-loops-to-ffmpeg.js +0 -0
  159. package/dist/convert-to-positive-frame-index.d.ts +0 -0
  160. package/dist/convert-to-positive-frame-index.js +0 -0
  161. package/dist/create-ffmpeg-complex-filter.d.ts +5 -1
  162. package/dist/create-ffmpeg-complex-filter.js +6 -4
  163. package/dist/create-ffmpeg-merge-filter.d.ts +5 -1
  164. package/dist/create-ffmpeg-merge-filter.js +21 -13
  165. package/dist/create-silent-audio.d.ts +1 -3
  166. package/dist/create-silent-audio.js +3 -6
  167. package/dist/crf.d.ts +6 -2
  168. package/dist/crf.js +41 -8
  169. package/dist/cycle-browser-tabs.d.ts +2 -5
  170. package/dist/cycle-browser-tabs.js +5 -5
  171. package/dist/delay-render-embedded-stack.d.ts +0 -0
  172. package/dist/delay-render-embedded-stack.js +0 -0
  173. package/dist/delete-directory.d.ts +1 -1
  174. package/dist/delete-directory.js +43 -17
  175. package/dist/does-have-m2-bug.d.ts +3 -0
  176. package/dist/does-have-m2-bug.js +12 -0
  177. package/dist/ensure-frames-in-order.d.ts +0 -0
  178. package/dist/ensure-frames-in-order.js +0 -0
  179. package/dist/ensure-output-directory.d.ts +0 -0
  180. package/dist/ensure-output-directory.js +5 -5
  181. package/dist/error-handling/handle-javascript-exception.d.ts +0 -0
  182. package/dist/error-handling/handle-javascript-exception.js +10 -0
  183. package/dist/error-handling/symbolicate-error.d.ts +0 -0
  184. package/dist/error-handling/symbolicate-error.js +6 -3
  185. package/dist/error-handling/symbolicateable-error.d.ts +0 -0
  186. package/dist/error-handling/symbolicateable-error.js +0 -0
  187. package/dist/ffmpeg-filter-file.d.ts +6 -1
  188. package/dist/ffmpeg-filter-file.js +40 -8
  189. package/dist/ffmpeg-override.d.ts +1 -1
  190. package/dist/ffmpeg-override.js +0 -0
  191. package/dist/file-extensions.d.ts +14 -0
  192. package/dist/file-extensions.js +76 -0
  193. package/dist/find-closest-package-json.d.ts +2 -0
  194. package/dist/find-closest-package-json.js +31 -0
  195. package/dist/frame-range.d.ts +1 -1
  196. package/dist/frame-range.js +0 -0
  197. package/dist/get-browser-instance.d.ts +8 -3
  198. package/dist/get-browser-instance.js +10 -5
  199. package/dist/get-codec-name.d.ts +0 -0
  200. package/dist/get-codec-name.js +0 -0
  201. package/dist/get-compositions.d.ts +27 -14
  202. package/dist/get-compositions.js +72 -39
  203. package/dist/get-concurrency.d.ts +1 -1
  204. package/dist/get-concurrency.js +11 -4
  205. package/dist/get-duration-from-frame-range.d.ts +0 -0
  206. package/dist/get-duration-from-frame-range.js +0 -0
  207. package/dist/get-extension-from-codec.d.ts +5 -1
  208. package/dist/get-extension-from-codec.js +56 -32
  209. package/dist/get-extension-of-filename.d.ts +0 -0
  210. package/dist/get-extension-of-filename.js +5 -1
  211. package/dist/get-frame-padded-index.d.ts +3 -2
  212. package/dist/get-frame-padded-index.js +3 -2
  213. package/dist/get-frame-to-render.d.ts +0 -0
  214. package/dist/get-frame-to-render.js +1 -1
  215. package/dist/get-local-browser-executable.d.ts +0 -0
  216. package/dist/get-local-browser-executable.js +7 -15
  217. package/dist/get-port.d.ts +4 -1
  218. package/dist/get-port.js +8 -8
  219. package/dist/get-prores-profile-name.d.ts +0 -0
  220. package/dist/get-prores-profile-name.js +0 -0
  221. package/dist/get-video-threads-flag.d.ts +0 -0
  222. package/dist/get-video-threads-flag.js +3 -3
  223. package/dist/guess-extension-for-media.d.ts +3 -1
  224. package/dist/guess-extension-for-media.js +4 -7
  225. package/dist/image-format.d.ts +12 -6
  226. package/dist/image-format.js +19 -13
  227. package/dist/index.d.ts +368 -49
  228. package/dist/index.js +68 -46
  229. package/dist/is-audio-codec.d.ts +0 -0
  230. package/dist/is-audio-codec.js +0 -0
  231. package/dist/is-serve-url.d.ts +0 -0
  232. package/dist/is-serve-url.js +0 -0
  233. package/dist/jpeg-quality.d.ts +2 -0
  234. package/dist/jpeg-quality.js +22 -0
  235. package/dist/locks.d.ts +7 -0
  236. package/dist/locks.js +44 -0
  237. package/dist/log-level.d.ts +1 -1
  238. package/dist/log-level.js +0 -0
  239. package/dist/logger.d.ts +24 -0
  240. package/dist/logger.js +68 -0
  241. package/dist/make-cancel-signal.d.ts +13 -2
  242. package/dist/make-cancel-signal.js +24 -1
  243. package/dist/merge-audio-track.d.ts +4 -4
  244. package/dist/merge-audio-track.js +38 -33
  245. package/dist/mime-db.d.ts +0 -0
  246. package/dist/mime-db.js +0 -0
  247. package/dist/mime-types.d.ts +0 -0
  248. package/dist/mime-types.js +3 -3
  249. package/dist/normalize-serve-url.d.ts +0 -0
  250. package/dist/normalize-serve-url.js +0 -0
  251. package/dist/offthread-video-server.d.ts +47 -11
  252. package/dist/offthread-video-server.js +111 -58
  253. package/dist/open-browser.d.ts +21 -6
  254. package/dist/open-browser.js +37 -16
  255. package/dist/options/audio-bitrate.d.ts +2 -0
  256. package/dist/options/audio-bitrate.js +11 -0
  257. package/dist/options/crf.d.ts +2 -0
  258. package/dist/options/crf.js +11 -0
  259. package/dist/options/enforce-audio.d.ts +2 -0
  260. package/dist/options/enforce-audio.js +11 -0
  261. package/dist/options/jpeg-quality.d.ts +2 -0
  262. package/dist/options/jpeg-quality.js +11 -0
  263. package/dist/options/mute.d.ts +2 -0
  264. package/dist/options/mute.js +11 -0
  265. package/dist/options/option.d.ts +8 -0
  266. package/dist/options/option.js +2 -0
  267. package/dist/options/scale.d.ts +2 -0
  268. package/dist/options/scale.js +11 -0
  269. package/dist/options/video-bitrate.d.ts +2 -0
  270. package/dist/options/video-bitrate.js +11 -0
  271. package/dist/options/video-codec.d.ts +2 -0
  272. package/dist/options/video-codec.js +11 -0
  273. package/dist/overwrite.d.ts +0 -0
  274. package/dist/overwrite.js +0 -0
  275. package/dist/p-limit.d.ts +0 -0
  276. package/dist/p-limit.js +0 -0
  277. package/dist/parse-browser-error-stack.d.ts +1 -1
  278. package/dist/parse-browser-error-stack.js +0 -0
  279. package/dist/parse-ffmpeg-progress.d.ts +0 -0
  280. package/dist/parse-ffmpeg-progress.js +0 -0
  281. package/dist/perf.d.ts +2 -2
  282. package/dist/perf.js +9 -7
  283. package/dist/pixel-format.d.ts +2 -2
  284. package/dist/pixel-format.js +3 -0
  285. package/dist/pool.d.ts +0 -0
  286. package/dist/pool.js +0 -0
  287. package/dist/prepare-server.d.ts +25 -10
  288. package/dist/prepare-server.js +71 -18
  289. package/dist/preprocess-audio-track.d.ts +7 -5
  290. package/dist/preprocess-audio-track.js +7 -8
  291. package/dist/prespawn-ffmpeg.d.ts +20 -10
  292. package/dist/prespawn-ffmpeg.js +67 -29
  293. package/dist/prestitcher-memory-usage.d.ts +0 -4
  294. package/dist/prestitcher-memory-usage.js +4 -5
  295. package/dist/prores-profile.d.ts +6 -4
  296. package/dist/prores-profile.js +8 -8
  297. package/dist/provide-screenshot.d.ts +8 -4
  298. package/dist/provide-screenshot.js +5 -2
  299. package/dist/puppeteer-evaluate.d.ts +0 -0
  300. package/dist/puppeteer-evaluate.js +20 -12
  301. package/dist/puppeteer-screenshot.d.ts +12 -2
  302. package/dist/puppeteer-screenshot.js +18 -45
  303. package/dist/redirect-status-codes.d.ts +1 -0
  304. package/dist/redirect-status-codes.js +6 -0
  305. package/dist/render-frames.d.ts +52 -35
  306. package/dist/render-frames.js +248 -143
  307. package/dist/render-media.d.ts +76 -29
  308. package/dist/render-media.js +324 -195
  309. package/dist/render-still.d.ts +46 -19
  310. package/dist/render-still.js +128 -69
  311. package/dist/replace-browser.d.ts +6 -0
  312. package/dist/replace-browser.js +47 -0
  313. package/dist/resolve-asset-src.d.ts +0 -0
  314. package/dist/resolve-asset-src.js +2 -2
  315. package/dist/sample-rate.d.ts +0 -0
  316. package/dist/sample-rate.js +0 -0
  317. package/dist/screenshot-dom-element.d.ts +8 -4
  318. package/dist/screenshot-dom-element.js +15 -4
  319. package/dist/screenshot-task.d.ts +11 -2
  320. package/dist/screenshot-task.js +43 -13
  321. package/dist/seek-to-frame.d.ts +1 -0
  322. package/dist/seek-to-frame.js +49 -3
  323. package/dist/select-composition.d.ts +41 -0
  324. package/dist/select-composition.js +156 -0
  325. package/dist/serve-handler/index.d.ts +1 -1
  326. package/dist/serve-handler/index.js +21 -19
  327. package/dist/serve-handler/is-path-inside.d.ts +0 -0
  328. package/dist/serve-handler/is-path-inside.js +3 -3
  329. package/dist/serve-handler/range-parser.d.ts +0 -0
  330. package/dist/serve-handler/range-parser.js +0 -0
  331. package/dist/serve-static.d.ts +8 -6
  332. package/dist/serve-static.js +85 -59
  333. package/dist/set-props-and-env.d.ts +5 -3
  334. package/dist/set-props-and-env.js +18 -10
  335. package/dist/stitch-frames-to-video.d.ts +39 -16
  336. package/dist/stitch-frames-to-video.js +210 -121
  337. package/dist/stringify-ffmpeg-filter.d.ts +10 -2
  338. package/dist/stringify-ffmpeg-filter.js +37 -34
  339. package/dist/symbolicate-stacktrace.d.ts +16 -3
  340. package/dist/symbolicate-stacktrace.js +49 -24
  341. package/dist/take-frame-and-compose.d.ts +22 -0
  342. package/dist/take-frame-and-compose.js +103 -0
  343. package/dist/tmp-dir.d.ts +0 -0
  344. package/dist/tmp-dir.js +7 -8
  345. package/dist/truthy.d.ts +1 -1
  346. package/dist/truthy.js +0 -0
  347. package/dist/types.d.ts +2 -2
  348. package/dist/types.js +0 -0
  349. package/dist/validate-concurrency.d.ts +2 -0
  350. package/dist/validate-concurrency.js +21 -10
  351. package/dist/validate-even-dimensions-with-codec.d.ts +0 -0
  352. package/dist/validate-even-dimensions-with-codec.js +0 -0
  353. package/dist/validate-every-nth-frame.d.ts +2 -1
  354. package/dist/validate-every-nth-frame.js +8 -1
  355. package/dist/validate-ffmpeg-override.d.ts +0 -0
  356. package/dist/validate-ffmpeg-override.js +0 -0
  357. package/dist/validate-number-of-gif-loops.d.ts +2 -0
  358. package/dist/validate-number-of-gif-loops.js +24 -0
  359. package/dist/validate-opengl-renderer.d.ts +2 -3
  360. package/dist/validate-opengl-renderer.js +9 -4
  361. package/dist/validate-output-filename.d.ts +7 -2
  362. package/dist/validate-output-filename.js +20 -51
  363. package/dist/validate-puppeteer-timeout.d.ts +0 -0
  364. package/dist/validate-puppeteer-timeout.js +1 -0
  365. package/dist/validate-scale.d.ts +0 -0
  366. package/dist/validate-scale.js +0 -0
  367. package/dist/validate-videobitrate.d.ts +1 -0
  368. package/dist/validate-videobitrate.js +20 -0
  369. package/dist/wait-for-symbolication-error-to-be-done.d.ts +0 -0
  370. package/dist/wait-for-symbolication-error-to-be-done.js +5 -31
  371. package/dist/ws/ws-types.d.ts +0 -0
  372. package/dist/ws/ws-types.js +2 -1
  373. package/install-toolchain.mjs +36 -0
  374. package/package.json +70 -60
  375. package/types/ws/index.d.ts +5 -5
  376. package/.prettierrc.js +0 -14
  377. package/dist/assets/dl-browser.d.ts +0 -1
  378. package/dist/assets/dl-browser.js +0 -38
  379. package/dist/assets/get-video-stream-duration.d.ts +0 -4
  380. package/dist/assets/get-video-stream-duration.js +0 -59
  381. package/dist/calculate-sar-dar-pixels.d.ts +0 -9
  382. package/dist/calculate-sar-dar-pixels.js +0 -19
  383. package/dist/convert-to-pcm.d.ts +0 -6
  384. package/dist/convert-to-pcm.js +0 -20
  385. package/dist/ensure-presentation-timestamp.d.ts +0 -2
  386. package/dist/ensure-presentation-timestamp.js +0 -69
  387. package/dist/extract-frame-from-video.d.ts +0 -16
  388. package/dist/extract-frame-from-video.js +0 -277
  389. package/dist/ffmpeg-executable.d.ts +0 -1
  390. package/dist/ffmpeg-flags.d.ts +0 -12
  391. package/dist/ffmpeg-flags.js +0 -45
  392. package/dist/frame-to-ffmpeg-timestamp.d.ts +0 -1
  393. package/dist/frame-to-ffmpeg-timestamp.js +0 -8
  394. package/dist/get-audio-codec-name.d.ts +0 -2
  395. package/dist/get-audio-codec-name.js +0 -28
  396. package/dist/get-video-info.d.ts +0 -3
  397. package/dist/get-video-info.js +0 -49
  398. package/dist/is-beyond-last-frame.d.ts +0 -3
  399. package/dist/is-beyond-last-frame.js +0 -12
  400. package/dist/last-frame-from-video-cache.d.ts +0 -17
  401. package/dist/last-frame-from-video-cache.js +0 -55
  402. package/dist/legacy-webpack-config.d.ts +0 -9
  403. package/dist/legacy-webpack-config.js +0 -13
  404. package/dist/quality.d.ts +0 -1
  405. package/dist/quality.js +0 -21
  406. package/dist/validate-ffmpeg.d.ts +0 -2
  407. package/dist/validate-ffmpeg.js +0 -72
  408. package/dist/validate-frame.d.ts +0 -1
  409. package/dist/validate-frame.js +0 -24
  410. package/tsconfig.json +0 -10
  411. package/vitest.config.ts +0 -8
package/dist/index.js CHANGED
@@ -26,23 +26,30 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
26
26
  return (mod && mod.__esModule) ? mod : { "default": mod };
27
27
  };
28
28
  Object.defineProperty(exports, "__esModule", { value: true });
29
- exports.RenderInternals = exports.validateOutputFilename = exports.stitchFramesToVideo = exports.renderStill = exports.renderMedia = exports.renderFrames = exports.openBrowser = exports.makeCancelSignal = exports.validImageFormats = exports.validateSelectedPixelFormatAndImageFormatCombination = exports.getCompositions = exports.ErrorWithStackFrame = exports.combineVideos = void 0;
29
+ exports.RenderInternals = exports.validateOutputFilename = exports.stitchFramesToVideo = exports.selectComposition = exports.renderStill = exports.renderMedia = exports.renderFrames = exports.openBrowser = exports.makeCancelSignal = exports.validateSelectedPixelFormatAndImageFormatCombination = exports.getCompositions = exports.ErrorWithStackFrame = void 0;
30
30
  const execa_1 = __importDefault(require("execa"));
31
31
  const download_file_1 = require("./assets/download-file");
32
- const download_map_1 = require("./assets/download-map");
32
+ const audio_codec_1 = require("./audio-codec");
33
33
  const browser_1 = require("./browser");
34
+ const Browser_1 = require("./browser/Browser");
34
35
  const TimeoutSettings_1 = require("./browser/TimeoutSettings");
36
+ const call_ffmpeg_1 = require("./call-ffmpeg");
35
37
  const can_use_parallel_encoding_1 = require("./can-use-parallel-encoding");
38
+ const chalk_1 = require("./chalk");
39
+ const is_color_supported_1 = require("./chalk/is-color-supported");
36
40
  const check_apple_silicon_1 = require("./check-apple-silicon");
37
41
  const codec_1 = require("./codec");
42
+ const combine_videos_1 = require("./combine-videos");
43
+ const get_executable_path_1 = require("./compositor/get-executable-path");
38
44
  const convert_to_positive_frame_index_1 = require("./convert-to-positive-frame-index");
39
- const crf_1 = require("./crf");
40
45
  const delete_directory_1 = require("./delete-directory");
41
46
  const ensure_output_directory_1 = require("./ensure-output-directory");
42
47
  const symbolicate_error_1 = require("./error-handling/symbolicate-error");
43
48
  const symbolicateable_error_1 = require("./error-handling/symbolicateable-error");
44
- const ffmpeg_flags_1 = require("./ffmpeg-flags");
49
+ const file_extensions_1 = require("./file-extensions");
50
+ const find_closest_package_json_1 = require("./find-closest-package-json");
45
51
  const frame_range_1 = require("./frame-range");
52
+ const get_compositions_1 = require("./get-compositions");
46
53
  const get_concurrency_1 = require("./get-concurrency");
47
54
  const get_duration_from_frame_range_1 = require("./get-duration-from-frame-range");
48
55
  const get_extension_from_codec_1 = require("./get-extension-from-codec");
@@ -53,63 +60,55 @@ const get_port_1 = require("./get-port");
53
60
  const image_format_1 = require("./image-format");
54
61
  const is_audio_codec_1 = require("./is-audio-codec");
55
62
  const is_serve_url_1 = require("./is-serve-url");
63
+ const jpeg_quality_1 = require("./jpeg-quality");
56
64
  const log_level_1 = require("./log-level");
65
+ const logger_1 = require("./logger");
57
66
  const mime_types_1 = require("./mime-types");
58
- const normalize_serve_url_1 = require("./normalize-serve-url");
59
67
  const open_browser_1 = require("./open-browser");
60
68
  const parse_browser_error_stack_1 = require("./parse-browser-error-stack");
61
69
  const perf = __importStar(require("./perf"));
62
70
  const pixel_format_1 = require("./pixel-format");
63
- const prores_profile_1 = require("./prores-profile");
64
- const quality_1 = require("./quality");
71
+ const prepare_server_1 = require("./prepare-server");
72
+ const render_frames_1 = require("./render-frames");
73
+ const render_media_1 = require("./render-media");
74
+ const render_still_1 = require("./render-still");
75
+ const select_composition_1 = require("./select-composition");
65
76
  const is_path_inside_1 = require("./serve-handler/is-path-inside");
66
77
  const serve_static_1 = require("./serve-static");
67
- const stitch_frames_to_video_1 = require("./stitch-frames-to-video");
68
78
  const tmp_dir_1 = require("./tmp-dir");
69
79
  const validate_concurrency_1 = require("./validate-concurrency");
70
80
  const validate_even_dimensions_with_codec_1 = require("./validate-even-dimensions-with-codec");
71
- const validate_every_nth_frame_1 = require("./validate-every-nth-frame");
72
- const validate_ffmpeg_1 = require("./validate-ffmpeg");
73
- const validate_frame_1 = require("./validate-frame");
74
81
  const validate_opengl_renderer_1 = require("./validate-opengl-renderer");
75
82
  const validate_puppeteer_timeout_1 = require("./validate-puppeteer-timeout");
76
- const validate_scale_1 = require("./validate-scale");
83
+ const validate_videobitrate_1 = require("./validate-videobitrate");
77
84
  const wait_for_symbolication_error_to_be_done_1 = require("./wait-for-symbolication-error-to-be-done");
78
- var combine_videos_1 = require("./combine-videos");
79
- Object.defineProperty(exports, "combineVideos", { enumerable: true, get: function () { return combine_videos_1.combineVideos; } });
80
85
  var handle_javascript_exception_1 = require("./error-handling/handle-javascript-exception");
81
86
  Object.defineProperty(exports, "ErrorWithStackFrame", { enumerable: true, get: function () { return handle_javascript_exception_1.ErrorWithStackFrame; } });
82
- var get_compositions_1 = require("./get-compositions");
83
- Object.defineProperty(exports, "getCompositions", { enumerable: true, get: function () { return get_compositions_1.getCompositions; } });
87
+ var get_compositions_2 = require("./get-compositions");
88
+ Object.defineProperty(exports, "getCompositions", { enumerable: true, get: function () { return get_compositions_2.getCompositions; } });
84
89
  var image_format_2 = require("./image-format");
85
90
  Object.defineProperty(exports, "validateSelectedPixelFormatAndImageFormatCombination", { enumerable: true, get: function () { return image_format_2.validateSelectedPixelFormatAndImageFormatCombination; } });
86
- Object.defineProperty(exports, "validImageFormats", { enumerable: true, get: function () { return image_format_2.validImageFormats; } });
87
91
  var make_cancel_signal_1 = require("./make-cancel-signal");
88
92
  Object.defineProperty(exports, "makeCancelSignal", { enumerable: true, get: function () { return make_cancel_signal_1.makeCancelSignal; } });
89
93
  var open_browser_2 = require("./open-browser");
90
94
  Object.defineProperty(exports, "openBrowser", { enumerable: true, get: function () { return open_browser_2.openBrowser; } });
91
- var render_frames_1 = require("./render-frames");
92
- Object.defineProperty(exports, "renderFrames", { enumerable: true, get: function () { return render_frames_1.renderFrames; } });
93
- var render_media_1 = require("./render-media");
94
- Object.defineProperty(exports, "renderMedia", { enumerable: true, get: function () { return render_media_1.renderMedia; } });
95
- var render_still_1 = require("./render-still");
96
- Object.defineProperty(exports, "renderStill", { enumerable: true, get: function () { return render_still_1.renderStill; } });
97
- var stitch_frames_to_video_2 = require("./stitch-frames-to-video");
98
- Object.defineProperty(exports, "stitchFramesToVideo", { enumerable: true, get: function () { return stitch_frames_to_video_2.stitchFramesToVideo; } });
95
+ var render_frames_2 = require("./render-frames");
96
+ Object.defineProperty(exports, "renderFrames", { enumerable: true, get: function () { return render_frames_2.renderFrames; } });
97
+ var render_media_2 = require("./render-media");
98
+ Object.defineProperty(exports, "renderMedia", { enumerable: true, get: function () { return render_media_2.renderMedia; } });
99
+ var render_still_2 = require("./render-still");
100
+ Object.defineProperty(exports, "renderStill", { enumerable: true, get: function () { return render_still_2.renderStill; } });
101
+ var select_composition_2 = require("./select-composition");
102
+ Object.defineProperty(exports, "selectComposition", { enumerable: true, get: function () { return select_composition_2.selectComposition; } });
103
+ var stitch_frames_to_video_1 = require("./stitch-frames-to-video");
104
+ Object.defineProperty(exports, "stitchFramesToVideo", { enumerable: true, get: function () { return stitch_frames_to_video_1.stitchFramesToVideo; } });
99
105
  var validate_output_filename_1 = require("./validate-output-filename");
100
106
  Object.defineProperty(exports, "validateOutputFilename", { enumerable: true, get: function () { return validate_output_filename_1.validateOutputFilename; } });
101
107
  exports.RenderInternals = {
102
108
  ensureLocalBrowser: get_local_browser_executable_1.ensureLocalBrowser,
103
- ffmpegHasFeature: ffmpeg_flags_1.ffmpegHasFeature,
104
109
  getActualConcurrency: get_concurrency_1.getActualConcurrency,
105
- getFfmpegVersion: ffmpeg_flags_1.getFfmpegVersion,
106
- validateFfmpeg: validate_ffmpeg_1.validateFfmpeg,
107
- binaryExists: validate_ffmpeg_1.binaryExists,
108
- getFfmpegBuildInfo: ffmpeg_flags_1.getFfmpegBuildInfo,
109
110
  serveStatic: serve_static_1.serveStatic,
110
111
  validateEvenDimensionsWithCodec: validate_even_dimensions_with_codec_1.validateEvenDimensionsWithCodec,
111
- normalizeServeUrl: normalize_serve_url_1.normalizeServeUrl,
112
- spawnFfmpeg: stitch_frames_to_video_1.spawnFfmpeg,
113
112
  getFileExtensionFromCodec: get_extension_from_codec_1.getFileExtensionFromCodec,
114
113
  tmpDir: tmp_dir_1.tmpDir,
115
114
  deleteDirectory: delete_directory_1.deleteDirectory,
@@ -118,7 +117,6 @@ exports.RenderInternals = {
118
117
  getRealFrameRange: get_frame_to_render_1.getRealFrameRange,
119
118
  validatePuppeteerTimeout: validate_puppeteer_timeout_1.validatePuppeteerTimeout,
120
119
  downloadFile: download_file_1.downloadFile,
121
- validateScale: validate_scale_1.validateScale,
122
120
  killAllBrowsers: open_browser_1.killAllBrowsers,
123
121
  parseStack: parse_browser_error_stack_1.parseStack,
124
122
  symbolicateError: symbolicate_error_1.symbolicateError,
@@ -139,28 +137,52 @@ exports.RenderInternals = {
139
137
  validateFrameRange: frame_range_1.validateFrameRange,
140
138
  DEFAULT_OPENGL_RENDERER: validate_opengl_renderer_1.DEFAULT_OPENGL_RENDERER,
141
139
  validateOpenGlRenderer: validate_opengl_renderer_1.validateOpenGlRenderer,
142
- getDefaultCrfForCodec: crf_1.getDefaultCrfForCodec,
143
- validateSelectedCrfAndCodecCombination: crf_1.validateSelectedCrfAndCodecCombination,
144
- validImageFormats: image_format_1.validImageFormats,
145
140
  validCodecs: codec_1.validCodecs,
146
141
  DEFAULT_PIXEL_FORMAT: pixel_format_1.DEFAULT_PIXEL_FORMAT,
147
- validateQuality: quality_1.validateQuality,
148
- validateFrame: validate_frame_1.validateFrame,
142
+ validateJpegQuality: jpeg_quality_1.validateJpegQuality,
149
143
  DEFAULT_TIMEOUT: TimeoutSettings_1.DEFAULT_TIMEOUT,
150
- getValidCrfRanges: crf_1.getValidCrfRanges,
151
- validateSelectedPixelFormatAndCodecCombination: pixel_format_1.validateSelectedPixelFormatAndCodecCombination,
152
- validateSelectedCodecAndProResCombination: prores_profile_1.validateSelectedCodecAndProResCombination,
153
- validateSelectedPixelFormatAndImageFormatCombination: image_format_1.validateSelectedPixelFormatAndImageFormatCombination,
154
144
  DEFAULT_CODEC: codec_1.DEFAULT_CODEC,
155
145
  isAudioCodec: is_audio_codec_1.isAudioCodec,
156
146
  logLevels: log_level_1.logLevels,
157
147
  isEqualOrBelowLogLevel: log_level_1.isEqualOrBelowLogLevel,
158
148
  isValidLogLevel: log_level_1.isValidLogLevel,
159
- validateEveryNthFrame: validate_every_nth_frame_1.validateEveryNthFrame,
160
149
  perf,
161
- makeDownloadMap: download_map_1.makeDownloadMap,
162
- cleanDownloadMap: download_map_1.cleanDownloadMap,
163
150
  convertToPositiveFrameIndex: convert_to_positive_frame_index_1.convertToPositiveFrameIndex,
151
+ findRemotionRoot: find_closest_package_json_1.findRemotionRoot,
152
+ validateBitrate: validate_videobitrate_1.validateBitrate,
153
+ combineVideos: combine_videos_1.combineVideos,
154
+ getMinConcurrency: validate_concurrency_1.getMinConcurrency,
155
+ getMaxConcurrency: validate_concurrency_1.getMaxConcurrency,
156
+ getDefaultAudioCodec: audio_codec_1.getDefaultAudioCodec,
157
+ validAudioCodecs: audio_codec_1.validAudioCodecs,
158
+ defaultFileExtensionMap: file_extensions_1.defaultFileExtensionMap,
159
+ supportedAudioCodecs: audio_codec_1.supportedAudioCodecs,
160
+ makeFileExtensionMap: get_extension_from_codec_1.makeFileExtensionMap,
161
+ defaultCodecsForFileExtension: get_extension_from_codec_1.defaultCodecsForFileExtension,
162
+ getExecutablePath: get_executable_path_1.getExecutablePath,
163
+ callFf: call_ffmpeg_1.callFf,
164
+ dynamicLibraryPathOptions: call_ffmpeg_1.dynamicLibraryPathOptions,
165
+ validStillImageFormats: image_format_1.validStillImageFormats,
166
+ validVideoImageFormats: image_format_1.validVideoImageFormats,
167
+ DEFAULT_STILL_IMAGE_FORMAT: image_format_1.DEFAULT_STILL_IMAGE_FORMAT,
168
+ DEFAULT_VIDEO_IMAGE_FORMAT: image_format_1.DEFAULT_VIDEO_IMAGE_FORMAT,
169
+ DEFAULT_JPEG_QUALITY: jpeg_quality_1.DEFAULT_JPEG_QUALITY,
170
+ chalk: chalk_1.chalk,
171
+ Log: logger_1.Log,
172
+ getLogLevel: logger_1.getLogLevel,
173
+ setLogLevel: logger_1.setLogLevel,
174
+ INDENT_TOKEN: logger_1.INDENT_TOKEN,
175
+ isColorSupported: is_color_supported_1.isColorSupported,
176
+ HeadlessBrowser: Browser_1.HeadlessBrowser,
177
+ prepareServer: prepare_server_1.prepareServer,
178
+ makeOrReuseServer: prepare_server_1.makeOrReuseServer,
179
+ internalRenderStill: render_still_1.internalRenderStill,
180
+ internalOpenBrowser: open_browser_1.internalOpenBrowser,
181
+ internalSelectComposition: select_composition_1.internalSelectComposition,
182
+ internalGetCompositions: get_compositions_1.internalGetCompositions,
183
+ internalRenderFrames: render_frames_1.internalRenderFrames,
184
+ internalRenderMedia: render_media_1.internalRenderMedia,
185
+ validOpenGlRenderers: validate_opengl_renderer_1.validOpenGlRenderers,
164
186
  };
165
187
  // Warn of potential performance issues with Apple Silicon (M1 chip under Rosetta)
166
- (0, check_apple_silicon_1.warnIfAppleSiliconIsNotUsingArm64Architecture)();
188
+ (0, check_apple_silicon_1.checkNodeVersionAndWarnAboutRosetta)();
File without changes
File without changes
File without changes
File without changes
@@ -0,0 +1,2 @@
1
+ export declare const DEFAULT_JPEG_QUALITY = 80;
2
+ export declare const validateJpegQuality: (q: number | undefined) => void;
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.validateJpegQuality = exports.DEFAULT_JPEG_QUALITY = void 0;
4
+ exports.DEFAULT_JPEG_QUALITY = 80;
5
+ const validateJpegQuality = (q) => {
6
+ if (typeof q !== 'undefined' && typeof q !== 'number') {
7
+ throw new Error(`JPEG Quality option must be a number or undefined. Got ${typeof q} (${JSON.stringify(q)})`);
8
+ }
9
+ if (typeof q === 'undefined') {
10
+ return;
11
+ }
12
+ if (!Number.isFinite(q)) {
13
+ throw new RangeError(`JPEG Quality must be a finite number, but is ${q}`);
14
+ }
15
+ if (Number.isNaN(q)) {
16
+ throw new RangeError(`JPEG Quality is NaN, but must be a real number`);
17
+ }
18
+ if (q > 100 || q < 0) {
19
+ throw new RangeError('JPEG Quality option must be between 0 and 100.');
20
+ }
21
+ };
22
+ exports.validateJpegQuality = validateJpegQuality;
@@ -0,0 +1,7 @@
1
+ export declare const createLock: ({ timeout }: {
2
+ timeout: number | null;
3
+ }) => {
4
+ lock: () => number;
5
+ unlock: (id: number) => void;
6
+ waitForAllToBeDone: () => Promise<unknown>;
7
+ };
package/dist/locks.js ADDED
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createLock = void 0;
4
+ const createLock = ({ timeout }) => {
5
+ let locks = [];
6
+ const waiters = [];
7
+ const lock = () => {
8
+ const id = Math.random();
9
+ locks.push(id);
10
+ return id;
11
+ };
12
+ const unlock = (id) => {
13
+ locks = locks.filter((l) => l !== id);
14
+ resolveWaiters();
15
+ };
16
+ const resolveWaiters = () => {
17
+ if (locks.length === 0) {
18
+ waiters.forEach((w) => w());
19
+ }
20
+ };
21
+ const waitForAllToBeDone = () => {
22
+ const success = new Promise((resolve) => {
23
+ waiters.push(() => {
24
+ resolve();
25
+ });
26
+ });
27
+ resolveWaiters();
28
+ if (timeout === null) {
29
+ return success;
30
+ }
31
+ const timeoutFn = new Promise((resolve) => {
32
+ setTimeout(() => {
33
+ return resolve();
34
+ }, timeout);
35
+ });
36
+ return Promise.race([success, timeoutFn]);
37
+ };
38
+ return {
39
+ lock,
40
+ unlock,
41
+ waitForAllToBeDone,
42
+ };
43
+ };
44
+ exports.createLock = createLock;
@@ -1,4 +1,4 @@
1
1
  export declare const logLevels: readonly ["verbose", "info", "warn", "error"];
2
- export declare type LogLevel = typeof logLevels[number];
2
+ export type LogLevel = typeof logLevels[number];
3
3
  export declare const isValidLogLevel: (level: string) => boolean;
4
4
  export declare const isEqualOrBelowLogLevel: (currentLevel: LogLevel, level: LogLevel) => boolean;
package/dist/log-level.js CHANGED
File without changes
@@ -0,0 +1,24 @@
1
+ import type { LogLevel } from './log-level';
2
+ export declare const INDENT_TOKEN: string;
3
+ type LogOptions = {
4
+ indent: boolean;
5
+ logLevel: LogLevel;
6
+ };
7
+ type VerboseLogOptions = LogOptions & {
8
+ tag?: string;
9
+ secondTag?: string;
10
+ };
11
+ export declare const verboseTag: (str: string) => string;
12
+ export declare const secondverboseTag: (str: string) => string;
13
+ export declare const Log: {
14
+ verbose: (message?: any, ...optionalParams: any[]) => void;
15
+ verboseAdvanced: (options: VerboseLogOptions, message?: any, ...optionalParams: any[]) => void;
16
+ info: (message?: any, ...optionalParams: any[]) => void;
17
+ infoAdvanced: (options: LogOptions, message?: any, ...optionalParams: any[]) => void;
18
+ warn: (message?: any, ...optionalParams: any[]) => void;
19
+ warnAdvanced: (options: LogOptions, message?: any, ...optionalParams: any[]) => void;
20
+ error: (message?: any, ...optionalParams: any[]) => void;
21
+ };
22
+ export declare const getLogLevel: () => "error" | "verbose" | "info" | "warn";
23
+ export declare const setLogLevel: (newLogLevel: LogLevel) => void;
24
+ export {};
package/dist/logger.js ADDED
@@ -0,0 +1,68 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.setLogLevel = exports.getLogLevel = exports.Log = exports.secondverboseTag = exports.verboseTag = exports.INDENT_TOKEN = void 0;
4
+ const chalk_1 = require("./chalk");
5
+ const is_color_supported_1 = require("./chalk/is-color-supported");
6
+ const log_level_1 = require("./log-level");
7
+ const truthy_1 = require("./truthy");
8
+ exports.INDENT_TOKEN = chalk_1.chalk.gray('│');
9
+ const verboseTag = (str) => {
10
+ return is_color_supported_1.isColorSupported ? chalk_1.chalk.bgBlack(` ${str} `) : `[${str}]`;
11
+ };
12
+ exports.verboseTag = verboseTag;
13
+ const secondverboseTag = (str) => {
14
+ return is_color_supported_1.isColorSupported ? chalk_1.chalk.bgWhite(` ${str} `) : `[${str}]`;
15
+ };
16
+ exports.secondverboseTag = secondverboseTag;
17
+ exports.Log = {
18
+ verbose: (...args) => {
19
+ exports.Log.verboseAdvanced({ indent: false, logLevel: (0, exports.getLogLevel)() }, ...args);
20
+ },
21
+ verboseAdvanced: (options, ...args) => {
22
+ if ((0, log_level_1.isEqualOrBelowLogLevel)(options.logLevel, 'verbose')) {
23
+ return console.log(...[
24
+ options.indent ? exports.INDENT_TOKEN : null,
25
+ [
26
+ options.tag ? (0, exports.verboseTag)(options.tag) : null,
27
+ options.secondTag ? (0, exports.secondverboseTag)(options.secondTag) : null,
28
+ ]
29
+ .filter(truthy_1.truthy)
30
+ .join(''),
31
+ ...args.map((a) => chalk_1.chalk.gray(a)),
32
+ ].filter(truthy_1.truthy));
33
+ }
34
+ },
35
+ info: (...args) => {
36
+ exports.Log.infoAdvanced({ indent: false, logLevel: (0, exports.getLogLevel)() }, ...args);
37
+ },
38
+ infoAdvanced: (options, ...args) => {
39
+ if ((0, log_level_1.isEqualOrBelowLogLevel)(options.logLevel, 'info')) {
40
+ return console.log(...[options.indent ? exports.INDENT_TOKEN : null, ...args].filter(truthy_1.truthy));
41
+ }
42
+ },
43
+ warn: (...args) => {
44
+ exports.Log.warnAdvanced({ indent: false, logLevel: (0, exports.getLogLevel)() }, ...args);
45
+ },
46
+ warnAdvanced: (options, ...args) => {
47
+ if ((0, log_level_1.isEqualOrBelowLogLevel)(options.logLevel, 'warn')) {
48
+ return console.warn(...[
49
+ options.indent ? chalk_1.chalk.yellow(exports.INDENT_TOKEN) : null,
50
+ ...args.map((a) => chalk_1.chalk.yellow(a)),
51
+ ].filter(truthy_1.truthy));
52
+ }
53
+ },
54
+ error: (...args) => {
55
+ if ((0, log_level_1.isEqualOrBelowLogLevel)((0, exports.getLogLevel)(), 'error')) {
56
+ return console.error(...args.map((a) => chalk_1.chalk.red(a)));
57
+ }
58
+ },
59
+ };
60
+ let logLevel = 'info';
61
+ const getLogLevel = () => {
62
+ return logLevel;
63
+ };
64
+ exports.getLogLevel = getLogLevel;
65
+ const setLogLevel = (newLogLevel) => {
66
+ logLevel = newLogLevel;
67
+ };
68
+ exports.setLogLevel = setLogLevel;
@@ -1,7 +1,18 @@
1
- declare type Callback = () => void;
2
- export declare type CancelSignal = (callback: Callback) => void;
1
+ type Callback = () => void;
2
+ export type CancelSignal = (callback: Callback) => void;
3
+ /**
4
+ * @description Returns a signal and a cancel function that allows to you cancel a render triggered using renderMedia(), renderStill(), renderFrames() or stitchFramesToVideo().
5
+ * @see [Documentation](https://www.remotion.dev/docs/renderer/make-cancel-signal)
6
+ */
3
7
  export declare const makeCancelSignal: () => {
4
8
  cancelSignal: CancelSignal;
5
9
  cancel: () => void;
6
10
  };
11
+ export declare const cancelErrorMessages: {
12
+ renderMedia: string;
13
+ renderFrames: string;
14
+ renderStill: string;
15
+ stitchFramesToVideo: string;
16
+ };
17
+ export declare const isUserCancelledRender: (err: unknown) => boolean;
7
18
  export {};
@@ -1,6 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.makeCancelSignal = void 0;
3
+ exports.isUserCancelledRender = exports.cancelErrorMessages = exports.makeCancelSignal = void 0;
4
+ /**
5
+ * @description Returns a signal and a cancel function that allows to you cancel a render triggered using renderMedia(), renderStill(), renderFrames() or stitchFramesToVideo().
6
+ * @see [Documentation](https://www.remotion.dev/docs/renderer/make-cancel-signal)
7
+ */
4
8
  const makeCancelSignal = () => {
5
9
  const callbacks = [];
6
10
  let cancelled = false;
@@ -23,3 +27,22 @@ const makeCancelSignal = () => {
23
27
  };
24
28
  };
25
29
  exports.makeCancelSignal = makeCancelSignal;
30
+ exports.cancelErrorMessages = {
31
+ renderMedia: 'renderMedia() got cancelled',
32
+ renderFrames: 'renderFrames() got cancelled',
33
+ renderStill: 'renderStill() got cancelled',
34
+ stitchFramesToVideo: 'stitchFramesToVideo() got cancelled',
35
+ };
36
+ const isUserCancelledRender = (err) => {
37
+ if (typeof err === 'object' &&
38
+ err !== null &&
39
+ 'message' in err &&
40
+ typeof err.message === 'string') {
41
+ return (err.message.includes(exports.cancelErrorMessages.renderMedia) ||
42
+ err.message.includes(exports.cancelErrorMessages.renderFrames) ||
43
+ err.message.includes(exports.cancelErrorMessages.renderStill) ||
44
+ err.message.includes(exports.cancelErrorMessages.stitchFramesToVideo));
45
+ }
46
+ return false;
47
+ };
48
+ exports.isUserCancelledRender = isUserCancelledRender;
@@ -1,11 +1,11 @@
1
1
  import type { DownloadMap } from './assets/download-map';
2
- import type { FfmpegExecutable } from './ffmpeg-executable';
3
- declare type Options = {
4
- ffmpegExecutable: FfmpegExecutable;
5
- files: string[];
2
+ import type { PreprocessedAudioTrack } from './preprocess-audio-track';
3
+ type Options = {
4
+ files: PreprocessedAudioTrack[];
6
5
  outName: string;
7
6
  numberOfSeconds: number;
8
7
  downloadMap: DownloadMap;
8
+ remotionRoot: string;
9
9
  };
10
10
  export declare const mergeAudioTrack: (options: Options) => Promise<void>;
11
11
  export {};
@@ -4,69 +4,74 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.mergeAudioTrack = void 0;
7
- const execa_1 = __importDefault(require("execa"));
8
- const path_1 = __importDefault(require("path"));
7
+ const node_path_1 = __importDefault(require("node:path"));
8
+ const call_ffmpeg_1 = require("./call-ffmpeg");
9
9
  const chunk_1 = require("./chunk");
10
- const convert_to_pcm_1 = require("./convert-to-pcm");
11
10
  const create_ffmpeg_complex_filter_1 = require("./create-ffmpeg-complex-filter");
11
+ const create_ffmpeg_merge_filter_1 = require("./create-ffmpeg-merge-filter");
12
12
  const create_silent_audio_1 = require("./create-silent-audio");
13
13
  const delete_directory_1 = require("./delete-directory");
14
14
  const p_limit_1 = require("./p-limit");
15
15
  const tmp_dir_1 = require("./tmp-dir");
16
16
  const truthy_1 = require("./truthy");
17
- const mergeAudioTrackUnlimited = async ({ ffmpegExecutable, outName, files, numberOfSeconds, downloadMap, }) => {
17
+ const mergeAudioTrackUnlimited = async ({ outName, files, numberOfSeconds, downloadMap, remotionRoot, }) => {
18
18
  if (files.length === 0) {
19
19
  await (0, create_silent_audio_1.createSilentAudio)({
20
20
  outName,
21
- ffmpegExecutable,
22
21
  numberOfSeconds,
23
22
  });
24
23
  return;
25
24
  }
26
- if (files.length === 1) {
27
- await (0, convert_to_pcm_1.convertToPcm)({
28
- outName,
29
- ffmpegExecutable,
30
- input: files[0],
31
- });
32
- return;
33
- }
25
+ // Previously a bug: We cannot optimize for files.length === 1 because we need to pad the audio
34
26
  // In FFMPEG, the total number of left and right tracks that can be merged at one time is limited to 64
35
27
  if (files.length >= 32) {
36
28
  const chunked = (0, chunk_1.chunk)(files, 10);
37
29
  const tempPath = (0, tmp_dir_1.tmpDir)('remotion-large-audio-mixing');
38
- const chunkNames = await Promise.all(chunked.map(async (chunkFiles, i) => {
39
- const chunkOutname = path_1.default.join(tempPath, `chunk-${i}.wav`);
30
+ try {
31
+ const chunkNames = await Promise.all(chunked.map(async (chunkFiles, i) => {
32
+ const chunkOutname = node_path_1.default.join(tempPath, `chunk-${i}.wav`);
33
+ await (0, exports.mergeAudioTrack)({
34
+ files: chunkFiles,
35
+ numberOfSeconds,
36
+ outName: chunkOutname,
37
+ downloadMap,
38
+ remotionRoot,
39
+ });
40
+ return chunkOutname;
41
+ }));
40
42
  await (0, exports.mergeAudioTrack)({
41
- ffmpegExecutable,
42
- files: chunkFiles,
43
+ files: chunkNames.map((c) => ({
44
+ filter: {
45
+ pad_end: null,
46
+ pad_start: null,
47
+ },
48
+ outName: c,
49
+ })),
43
50
  numberOfSeconds,
44
- outName: chunkOutname,
51
+ outName,
45
52
  downloadMap,
53
+ remotionRoot,
46
54
  });
47
- return chunkOutname;
48
- }));
49
- await (0, exports.mergeAudioTrack)({
50
- ffmpegExecutable,
51
- files: chunkNames,
52
- numberOfSeconds,
53
- outName,
54
- downloadMap,
55
- });
56
- await (0, delete_directory_1.deleteDirectory)(tempPath);
57
- return;
55
+ return;
56
+ }
57
+ finally {
58
+ (0, delete_directory_1.deleteDirectory)(tempPath);
59
+ }
58
60
  }
59
- const { complexFilterFlag: mergeFilter, cleanup } = await (0, create_ffmpeg_complex_filter_1.createFfmpegComplexFilter)(files.length, downloadMap);
61
+ const { complexFilterFlag: mergeFilter, cleanup } = await (0, create_ffmpeg_complex_filter_1.createFfmpegComplexFilter)({
62
+ filters: files,
63
+ downloadMap,
64
+ });
60
65
  const args = [
61
- ...files.map((f) => ['-i', f]),
66
+ ...files.map((f) => ['-i', f.outName]),
62
67
  mergeFilter,
63
68
  ['-c:a', 'pcm_s16le'],
64
- ['-map', '[a]'],
69
+ ['-map', `[${create_ffmpeg_merge_filter_1.OUTPUT_FILTER_NAME}]`],
65
70
  ['-y', outName],
66
71
  ]
67
72
  .filter(truthy_1.truthy)
68
73
  .flat(2);
69
- const task = (0, execa_1.default)(ffmpegExecutable !== null && ffmpegExecutable !== void 0 ? ffmpegExecutable : 'ffmpeg', args);
74
+ const task = (0, call_ffmpeg_1.callFf)('ffmpeg', args);
70
75
  await task;
71
76
  cleanup();
72
77
  };
package/dist/mime-db.d.ts CHANGED
File without changes
package/dist/mime-db.js CHANGED
File without changes
File without changes
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.mimeContentType = exports.mimeLookup = exports.getExt = void 0;
4
- const path_1 = require("path");
4
+ const node_path_1 = require("node:path");
5
5
  const mime_db_1 = require("./mime-db");
6
6
  const extensions = {};
7
7
  const types = {};
@@ -17,7 +17,7 @@ function mimeLookup(path) {
17
17
  return false;
18
18
  }
19
19
  // get the extension ("ext" or ".ext" or full path)
20
- const ext = (0, path_1.extname)('.' + path)
20
+ const ext = (0, node_path_1.extname)('.' + path)
21
21
  .toLowerCase()
22
22
  .substr(1);
23
23
  if (!ext) {
@@ -36,7 +36,7 @@ function populateMaps(exts, _types) {
36
36
  Object.keys(mime_db_1.mimeDb).forEach((type) => {
37
37
  const mime = mime_db_1.mimeDb[type];
38
38
  const _exts = mime.extensions;
39
- if (!_exts || !_exts.length) {
39
+ if (!(_exts === null || _exts === void 0 ? void 0 : _exts.length)) {
40
40
  return;
41
41
  }
42
42
  // mime -> extensions
File without changes
File without changes