@remotion/renderer 4.0.0-alpha.4 → 4.0.0-alpha5

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 (585) 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 +2 -1
  12. package/dist/assets/download-and-map-assets-to-file.js +60 -11
  13. package/dist/assets/download-file.d.ts +7 -5
  14. package/dist/assets/download-file.js +49 -6
  15. package/dist/assets/download-map.d.ts +5 -26
  16. package/dist/assets/download-map.js +8 -9
  17. package/dist/assets/ffmpeg-volume-expression.d.ts +2 -1
  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 +1 -2
  22. package/dist/assets/get-audio-channels.js +5 -8
  23. package/dist/assets/get-video-stream-duration.d.ts +7 -1
  24. package/dist/assets/get-video-stream-duration.js +50 -14
  25. package/dist/assets/read-file.d.ts +0 -0
  26. package/dist/assets/read-file.js +2 -4
  27. package/dist/assets/round-volume-to-avoid-stack-overflow.d.ts +0 -0
  28. package/dist/assets/round-volume-to-avoid-stack-overflow.js +0 -0
  29. package/dist/assets/sanitize-filename.d.ts +0 -0
  30. package/dist/assets/sanitize-filename.js +0 -0
  31. package/dist/assets/sanitize-filepath.d.ts +0 -0
  32. package/dist/assets/sanitize-filepath.js +0 -0
  33. package/dist/assets/truncate-utf8-bytes.d.ts +0 -0
  34. package/dist/assets/truncate-utf8-bytes.js +0 -0
  35. package/dist/assets/types.d.ts +1 -0
  36. package/dist/assets/types.js +0 -0
  37. package/dist/audio-codec.d.ts +28 -0
  38. package/dist/audio-codec.js +83 -0
  39. package/dist/browser/Browser.d.ts +4 -2
  40. package/dist/browser/Browser.js +15 -12
  41. package/dist/browser/BrowserConnector.d.ts +0 -0
  42. package/dist/browser/BrowserConnector.js +0 -0
  43. package/dist/browser/BrowserFetcher.d.ts +15 -63
  44. package/dist/browser/BrowserFetcher.js +145 -231
  45. package/dist/browser/BrowserPage.d.ts +8 -2
  46. package/dist/browser/BrowserPage.js +8 -11
  47. package/dist/browser/BrowserRunner.d.ts +1 -4
  48. package/dist/browser/BrowserRunner.js +38 -75
  49. package/dist/browser/Connection.d.ts +0 -0
  50. package/dist/browser/Connection.js +1 -1
  51. package/dist/browser/ConsoleMessage.d.ts +0 -0
  52. package/dist/browser/ConsoleMessage.js +0 -0
  53. package/dist/browser/DOMWorld.d.ts +2 -1
  54. package/dist/browser/DOMWorld.js +8 -1
  55. package/dist/browser/Errors.d.ts +0 -0
  56. package/dist/browser/Errors.js +0 -0
  57. package/dist/browser/EvalTypes.d.ts +0 -0
  58. package/dist/browser/EvalTypes.js +0 -0
  59. package/dist/browser/EventEmitter.d.ts +0 -0
  60. package/dist/browser/EventEmitter.js +0 -0
  61. package/dist/browser/ExecutionContext.d.ts +0 -0
  62. package/dist/browser/ExecutionContext.js +0 -0
  63. package/dist/browser/FrameManager.d.ts +0 -2
  64. package/dist/browser/FrameManager.js +2 -6
  65. package/dist/browser/HTTPRequest.d.ts +0 -0
  66. package/dist/browser/HTTPRequest.js +0 -0
  67. package/dist/browser/HTTPResponse.d.ts +0 -0
  68. package/dist/browser/HTTPResponse.js +0 -0
  69. package/dist/browser/JSHandle.d.ts +0 -0
  70. package/dist/browser/JSHandle.js +0 -0
  71. package/dist/browser/LaunchOptions.d.ts +1 -4
  72. package/dist/browser/LaunchOptions.js +0 -0
  73. package/dist/browser/Launcher.d.ts +7 -1
  74. package/dist/browser/Launcher.js +13 -375
  75. package/dist/browser/LifecycleWatcher.d.ts +0 -0
  76. package/dist/browser/LifecycleWatcher.js +0 -0
  77. package/dist/browser/NetworkEventManager.d.ts +0 -0
  78. package/dist/browser/NetworkEventManager.js +0 -0
  79. package/dist/browser/NetworkManager.d.ts +0 -0
  80. package/dist/browser/NetworkManager.js +0 -0
  81. package/dist/browser/NodeWebSocketTransport.d.ts +0 -0
  82. package/dist/browser/NodeWebSocketTransport.js +1 -1
  83. package/dist/browser/Product.d.ts +0 -0
  84. package/dist/browser/Product.js +0 -0
  85. package/dist/browser/PuppeteerNode.d.ts +0 -3
  86. package/dist/browser/PuppeteerNode.js +2 -14
  87. package/dist/browser/PuppeteerViewport.d.ts +0 -0
  88. package/dist/browser/PuppeteerViewport.js +0 -0
  89. package/dist/browser/ScreenshotOptions.d.ts +0 -14
  90. package/dist/browser/ScreenshotOptions.js +0 -1
  91. package/dist/browser/Target.d.ts +0 -0
  92. package/dist/browser/Target.js +0 -0
  93. package/dist/browser/TaskQueue.d.ts +0 -0
  94. package/dist/browser/TaskQueue.js +0 -0
  95. package/dist/browser/TimeoutSettings.d.ts +0 -0
  96. package/dist/browser/TimeoutSettings.js +0 -0
  97. package/dist/browser/assert.d.ts +0 -0
  98. package/dist/browser/assert.js +0 -0
  99. package/dist/browser/create-browser-fetcher.d.ts +0 -0
  100. package/dist/browser/create-browser-fetcher.js +34 -90
  101. package/dist/browser/devtools-commands.d.ts +5 -1
  102. package/dist/browser/devtools-commands.js +0 -0
  103. package/dist/browser/devtools-types.d.ts +82 -0
  104. package/dist/browser/devtools-types.js +0 -0
  105. package/dist/browser/get-download-destination.d.ts +0 -0
  106. package/dist/browser/get-download-destination.js +0 -0
  107. package/dist/browser/is-target-closed-err.d.ts +1 -0
  108. package/dist/browser/is-target-closed-err.js +9 -0
  109. package/dist/browser/mitt/index.d.ts +0 -0
  110. package/dist/browser/mitt/index.js +0 -0
  111. package/dist/browser/node.d.ts +0 -0
  112. package/dist/browser/node.js +0 -0
  113. package/dist/browser/revisions.d.ts +0 -1
  114. package/dist/browser/revisions.js +0 -1
  115. package/dist/browser/util.d.ts +0 -0
  116. package/dist/browser/util.js +0 -0
  117. package/dist/browser-executable.d.ts +0 -0
  118. package/dist/browser-executable.js +0 -0
  119. package/dist/browser-log.d.ts +0 -0
  120. package/dist/browser-log.js +0 -0
  121. package/dist/browser.d.ts +0 -0
  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/calculate-sar-dar-pixels.d.ts +0 -0
  126. package/dist/calculate-sar-dar-pixels.js +0 -0
  127. package/dist/call-ffmpeg.d.ts +14 -0
  128. package/dist/call-ffmpeg.js +37 -0
  129. package/dist/can-use-parallel-encoding.d.ts +0 -0
  130. package/dist/can-use-parallel-encoding.js +0 -0
  131. package/dist/check-apple-silicon.d.ts +1 -0
  132. package/dist/check-apple-silicon.js +12 -0
  133. package/dist/chunk.d.ts +0 -0
  134. package/dist/chunk.js +0 -0
  135. package/dist/client.d.ts +204 -0
  136. package/dist/client.js +49 -0
  137. package/dist/codec-supports-media.d.ts +2 -0
  138. package/dist/codec-supports-media.js +23 -1
  139. package/dist/codec.d.ts +0 -0
  140. package/dist/codec.js +0 -0
  141. package/dist/combine-videos.d.ts +6 -2
  142. package/dist/combine-videos.js +14 -14
  143. package/dist/compositor/compose.d.ts +15 -0
  144. package/dist/compositor/compose.js +67 -0
  145. package/dist/compositor/compositor.d.ts +12 -0
  146. package/dist/compositor/compositor.js +202 -0
  147. package/dist/compositor/get-executable-path.d.ts +1 -0
  148. package/dist/compositor/get-executable-path.js +66 -0
  149. package/dist/compositor/make-nonce.d.ts +1 -0
  150. package/dist/compositor/make-nonce.js +8 -0
  151. package/dist/compositor/payloads.d.ts +68 -0
  152. package/dist/compositor/payloads.js +2 -0
  153. package/dist/compress-assets.d.ts +0 -0
  154. package/dist/compress-assets.js +0 -0
  155. package/dist/convert-number-of-gif-loops-to-ffmpeg.d.ts +0 -0
  156. package/dist/convert-number-of-gif-loops-to-ffmpeg.js +0 -0
  157. package/dist/convert-to-positive-frame-index.d.ts +4 -0
  158. package/dist/convert-to-positive-frame-index.js +8 -0
  159. package/dist/create-ffmpeg-complex-filter.d.ts +5 -1
  160. package/dist/create-ffmpeg-complex-filter.js +6 -4
  161. package/dist/create-ffmpeg-merge-filter.d.ts +5 -1
  162. package/dist/create-ffmpeg-merge-filter.js +21 -13
  163. package/dist/create-silent-audio.d.ts +1 -3
  164. package/dist/create-silent-audio.js +3 -6
  165. package/dist/crf.d.ts +5 -1
  166. package/dist/crf.js +41 -8
  167. package/dist/cycle-browser-tabs.d.ts +2 -5
  168. package/dist/cycle-browser-tabs.js +5 -5
  169. package/dist/delay-render-embedded-stack.d.ts +0 -0
  170. package/dist/delay-render-embedded-stack.js +0 -0
  171. package/dist/delete-directory.d.ts +1 -1
  172. package/dist/delete-directory.js +43 -17
  173. package/dist/determine-resize-params.d.ts +1 -0
  174. package/dist/determine-resize-params.js +10 -0
  175. package/dist/determine-vcodec-ffmpeg-flags.d.ts +2 -0
  176. package/dist/determine-vcodec-ffmpeg-flags.js +13 -0
  177. package/dist/does-have-m2-bug.d.ts +3 -0
  178. package/dist/does-have-m2-bug.js +12 -0
  179. package/dist/ensure-ffmpeg.d.ts +18 -0
  180. package/dist/ensure-ffmpeg.js +58 -0
  181. package/dist/ensure-frames-in-order.d.ts +0 -0
  182. package/dist/ensure-frames-in-order.js +0 -0
  183. package/dist/ensure-output-directory.d.ts +0 -0
  184. package/dist/ensure-output-directory.js +0 -0
  185. package/dist/ensure-presentation-timestamp.d.ts +14 -1
  186. package/dist/ensure-presentation-timestamp.js +36 -17
  187. package/dist/error-handling/handle-javascript-exception.d.ts +0 -0
  188. package/dist/error-handling/handle-javascript-exception.js +10 -0
  189. package/dist/error-handling/symbolicate-error.d.ts +0 -0
  190. package/dist/error-handling/symbolicate-error.js +2 -1
  191. package/dist/error-handling/symbolicateable-error.d.ts +0 -0
  192. package/dist/error-handling/symbolicateable-error.js +0 -0
  193. package/dist/extract-frame-from-video.d.ts +2 -0
  194. package/dist/extract-frame-from-video.js +47 -110
  195. package/dist/ffmpeg-executable.d.ts +0 -0
  196. package/dist/ffmpeg-executable.js +0 -0
  197. package/dist/ffmpeg-filter-file.d.ts +6 -1
  198. package/dist/ffmpeg-filter-file.js +36 -4
  199. package/dist/ffmpeg-flags.d.ts +20 -2
  200. package/dist/ffmpeg-flags.js +205 -9
  201. package/dist/ffmpeg-override.d.ts +4 -0
  202. package/dist/ffmpeg-override.js +2 -0
  203. package/dist/file-extensions.d.ts +14 -0
  204. package/dist/file-extensions.js +76 -0
  205. package/dist/find-closest-package-json.d.ts +2 -0
  206. package/dist/find-closest-package-json.js +31 -0
  207. package/dist/frame-range.d.ts +0 -0
  208. package/dist/frame-range.js +0 -0
  209. package/dist/frame-to-ffmpeg-timestamp.d.ts +0 -0
  210. package/dist/frame-to-ffmpeg-timestamp.js +0 -0
  211. package/dist/get-browser-instance.d.ts +0 -0
  212. package/dist/get-browser-instance.js +1 -1
  213. package/dist/get-can-extract-frames-fast.d.ts +14 -0
  214. package/dist/get-can-extract-frames-fast.js +71 -0
  215. package/dist/get-codec-name.d.ts +0 -0
  216. package/dist/get-codec-name.js +0 -0
  217. package/dist/get-compositions.d.ts +7 -5
  218. package/dist/get-compositions.js +23 -7
  219. package/dist/get-concurrency.d.ts +1 -1
  220. package/dist/get-concurrency.js +8 -1
  221. package/dist/get-duration-from-frame-range.d.ts +0 -0
  222. package/dist/get-duration-from-frame-range.js +0 -0
  223. package/dist/get-extension-from-codec.d.ts +5 -1
  224. package/dist/get-extension-from-codec.js +56 -32
  225. package/dist/get-extension-of-filename.d.ts +0 -0
  226. package/dist/get-extension-of-filename.js +5 -1
  227. package/dist/get-frame-of-video-slow.d.ts +15 -0
  228. package/dist/get-frame-of-video-slow.js +72 -0
  229. package/dist/get-frame-padded-index.d.ts +2 -1
  230. package/dist/get-frame-padded-index.js +3 -2
  231. package/dist/get-frame-to-render.d.ts +0 -0
  232. package/dist/get-frame-to-render.js +1 -1
  233. package/dist/get-local-browser-executable.d.ts +0 -0
  234. package/dist/get-local-browser-executable.js +4 -14
  235. package/dist/get-port.d.ts +4 -1
  236. package/dist/get-port.js +8 -8
  237. package/dist/get-prores-profile-name.d.ts +0 -0
  238. package/dist/get-prores-profile-name.js +0 -0
  239. package/dist/get-video-info.d.ts +6 -1
  240. package/dist/get-video-info.js +19 -9
  241. package/dist/get-video-threads-flag.d.ts +0 -0
  242. package/dist/get-video-threads-flag.js +0 -0
  243. package/dist/guess-extension-for-media.d.ts +3 -1
  244. package/dist/guess-extension-for-media.js +5 -8
  245. package/dist/image-format.d.ts +12 -6
  246. package/dist/image-format.js +19 -13
  247. package/dist/index.d.ts +201 -48
  248. package/dist/index.js +37 -36
  249. package/dist/is-audio-codec.d.ts +0 -0
  250. package/dist/is-audio-codec.js +0 -0
  251. package/dist/is-beyond-last-frame.d.ts +0 -0
  252. package/dist/is-beyond-last-frame.js +0 -0
  253. package/dist/is-serve-url.d.ts +0 -0
  254. package/dist/is-serve-url.js +0 -0
  255. package/dist/jpeg-quality.d.ts +1 -0
  256. package/dist/jpeg-quality.js +21 -0
  257. package/dist/last-frame-from-video-cache.d.ts +2 -0
  258. package/dist/last-frame-from-video-cache.js +0 -0
  259. package/dist/legacy-webpack-config.d.ts +0 -0
  260. package/dist/legacy-webpack-config.js +0 -0
  261. package/dist/locks.d.ts +7 -0
  262. package/dist/locks.js +44 -0
  263. package/dist/log-level.d.ts +0 -0
  264. package/dist/log-level.js +0 -0
  265. package/dist/make-cancel-signal.d.ts +11 -0
  266. package/dist/make-cancel-signal.js +24 -1
  267. package/dist/merge-audio-track.d.ts +3 -3
  268. package/dist/merge-audio-track.js +39 -33
  269. package/dist/mime-db.d.ts +0 -0
  270. package/dist/mime-db.js +0 -0
  271. package/dist/mime-types.d.ts +1 -0
  272. package/dist/mime-types.js +6 -1
  273. package/dist/normalize-serve-url.d.ts +0 -0
  274. package/dist/normalize-serve-url.js +0 -0
  275. package/dist/offthread-video-server.d.ts +8 -7
  276. package/dist/offthread-video-server.js +64 -45
  277. package/dist/open-browser.d.ts +6 -0
  278. package/dist/open-browser.js +16 -18
  279. package/dist/options/audio-bitrate.d.ts +2 -0
  280. package/dist/options/audio-bitrate.js +11 -0
  281. package/dist/options/crf.d.ts +2 -0
  282. package/dist/options/crf.js +11 -0
  283. package/dist/options/enforce-audio.d.ts +2 -0
  284. package/dist/options/enforce-audio.js +11 -0
  285. package/dist/options/jpeg-quality.d.ts +2 -0
  286. package/dist/options/jpeg-quality.js +11 -0
  287. package/dist/options/mute.d.ts +2 -0
  288. package/dist/options/mute.js +11 -0
  289. package/dist/options/option.d.ts +8 -0
  290. package/dist/options/option.js +2 -0
  291. package/dist/options/scale.d.ts +2 -0
  292. package/dist/options/scale.js +11 -0
  293. package/dist/options/video-bitrate.d.ts +2 -0
  294. package/dist/options/video-bitrate.js +11 -0
  295. package/dist/options/video-codec.d.ts +2 -0
  296. package/dist/options/video-codec.js +11 -0
  297. package/dist/overwrite.d.ts +0 -0
  298. package/dist/overwrite.js +0 -0
  299. package/dist/p-limit.d.ts +0 -0
  300. package/dist/p-limit.js +0 -0
  301. package/dist/parse-browser-error-stack.d.ts +0 -0
  302. package/dist/parse-browser-error-stack.js +0 -0
  303. package/dist/parse-ffmpeg-progress.d.ts +0 -0
  304. package/dist/parse-ffmpeg-progress.js +0 -0
  305. package/dist/perf.d.ts +1 -1
  306. package/dist/perf.js +9 -7
  307. package/dist/pixel-format.d.ts +1 -1
  308. package/dist/pixel-format.js +3 -0
  309. package/dist/pool.d.ts +0 -0
  310. package/dist/pool.js +0 -0
  311. package/dist/prepare-server.d.ts +5 -5
  312. package/dist/prepare-server.js +12 -7
  313. package/dist/preprocess-audio-track.d.ts +6 -4
  314. package/dist/preprocess-audio-track.js +7 -8
  315. package/dist/prespawn-ffmpeg.d.ts +9 -9
  316. package/dist/prespawn-ffmpeg.js +17 -17
  317. package/dist/prestitcher-memory-usage.d.ts +0 -4
  318. package/dist/prestitcher-memory-usage.js +2 -3
  319. package/dist/prores-profile.d.ts +5 -3
  320. package/dist/prores-profile.js +8 -8
  321. package/dist/provide-screenshot.d.ts +8 -5
  322. package/dist/provide-screenshot.js +5 -2
  323. package/dist/puppeteer-evaluate.d.ts +0 -0
  324. package/dist/puppeteer-evaluate.js +19 -11
  325. package/dist/puppeteer-screenshot.d.ts +12 -3
  326. package/dist/puppeteer-screenshot.js +18 -44
  327. package/dist/quality.d.ts +0 -0
  328. package/dist/quality.js +0 -0
  329. package/dist/redirect-status-codes.d.ts +1 -0
  330. package/dist/redirect-status-codes.js +6 -0
  331. package/dist/render-frames.d.ts +19 -19
  332. package/dist/render-frames.js +186 -105
  333. package/dist/render-media.d.ts +46 -16
  334. package/dist/render-media.js +128 -42
  335. package/dist/render-still.d.ts +17 -11
  336. package/dist/render-still.js +79 -43
  337. package/dist/replace-browser.d.ts +6 -0
  338. package/dist/replace-browser.js +47 -0
  339. package/dist/resolve-asset-src.d.ts +0 -0
  340. package/dist/resolve-asset-src.js +0 -0
  341. package/dist/sample-rate.d.ts +0 -0
  342. package/dist/sample-rate.js +0 -0
  343. package/dist/screenshot-dom-element.d.ts +8 -5
  344. package/dist/screenshot-dom-element.js +15 -4
  345. package/dist/screenshot-task.d.ts +11 -2
  346. package/dist/screenshot-task.js +43 -13
  347. package/dist/seek-to-frame.d.ts +1 -0
  348. package/dist/seek-to-frame.js +49 -3
  349. package/dist/serve-handler/index.d.ts +0 -0
  350. package/dist/serve-handler/index.js +6 -4
  351. package/dist/serve-handler/is-path-inside.d.ts +0 -0
  352. package/dist/serve-handler/is-path-inside.js +0 -0
  353. package/dist/serve-handler/range-parser.d.ts +0 -0
  354. package/dist/serve-handler/range-parser.js +0 -0
  355. package/dist/serve-static.d.ts +3 -3
  356. package/dist/serve-static.js +84 -44
  357. package/dist/set-props-and-env.d.ts +3 -1
  358. package/dist/set-props-and-env.js +39 -15
  359. package/dist/stitch-frames-to-video.d.ts +15 -12
  360. package/dist/stitch-frames-to-video.js +120 -57
  361. package/dist/stringify-ffmpeg-filter.d.ts +10 -2
  362. package/dist/stringify-ffmpeg-filter.js +37 -34
  363. package/dist/symbolicate-stacktrace.d.ts +0 -0
  364. package/dist/symbolicate-stacktrace.js +0 -0
  365. package/dist/take-frame-and-compose.d.ts +19 -0
  366. package/dist/take-frame-and-compose.js +102 -0
  367. package/dist/tmp-dir.d.ts +0 -0
  368. package/dist/tmp-dir.js +1 -2
  369. package/dist/truthy.d.ts +0 -0
  370. package/dist/truthy.js +0 -0
  371. package/dist/try-to-extract-frame-of-video-fast.d.ts +13 -0
  372. package/dist/try-to-extract-frame-of-video-fast.js +55 -0
  373. package/dist/types.d.ts +0 -0
  374. package/dist/types.js +0 -0
  375. package/dist/validate-concurrency.d.ts +2 -0
  376. package/dist/validate-concurrency.js +21 -10
  377. package/dist/validate-even-dimensions-with-codec.d.ts +0 -0
  378. package/dist/validate-even-dimensions-with-codec.js +0 -0
  379. package/dist/validate-every-nth-frame.d.ts +2 -1
  380. package/dist/validate-every-nth-frame.js +8 -1
  381. package/dist/validate-ffmpeg-override.d.ts +2 -0
  382. package/dist/validate-ffmpeg-override.js +12 -0
  383. package/dist/validate-ffmpeg.d.ts +7 -2
  384. package/dist/validate-ffmpeg.js +48 -43
  385. package/dist/validate-number-of-gif-loops.d.ts +2 -0
  386. package/dist/validate-number-of-gif-loops.js +24 -0
  387. package/dist/validate-opengl-renderer.d.ts +0 -0
  388. package/dist/validate-opengl-renderer.js +0 -0
  389. package/dist/validate-output-filename.d.ts +7 -2
  390. package/dist/validate-output-filename.js +20 -51
  391. package/dist/validate-puppeteer-timeout.d.ts +0 -0
  392. package/dist/validate-puppeteer-timeout.js +2 -1
  393. package/dist/validate-scale.d.ts +0 -0
  394. package/dist/validate-scale.js +0 -0
  395. package/dist/validate-videobitrate.d.ts +1 -0
  396. package/dist/validate-videobitrate.js +20 -0
  397. package/dist/wait-for-symbolication-error-to-be-done.d.ts +0 -0
  398. package/dist/wait-for-symbolication-error-to-be-done.js +5 -31
  399. package/dist/warn-about-ffmpeg-version.d.ts +5 -0
  400. package/dist/warn-about-ffmpeg-version.js +37 -0
  401. package/dist/ws/ws-types.d.ts +0 -0
  402. package/dist/ws/ws-types.js +2 -1
  403. package/install-toolchain.mjs +36 -0
  404. package/package.json +69 -60
  405. package/.prettierrc.js +0 -14
  406. package/dist/add-silent-audio-if-necessary.d.ts +0 -8
  407. package/dist/add-silent-audio-if-necessary.d.ts.map +0 -1
  408. package/dist/add-silent-audio-if-necessary.js +0 -51
  409. package/dist/add-silent-audio-if-necessary.js.map +0 -1
  410. package/dist/assets/asset-is-used-at-time.d.ts +0 -3
  411. package/dist/assets/asset-is-used-at-time.d.ts.map +0 -1
  412. package/dist/assets/asset-is-used-at-time.js +0 -8
  413. package/dist/assets/asset-is-used-at-time.js.map +0 -1
  414. package/dist/assets/calculate-asset-positions.d.ts.map +0 -1
  415. package/dist/assets/calculate-asset-positions.js.map +0 -1
  416. package/dist/assets/calculate-atempo.d.ts.map +0 -1
  417. package/dist/assets/calculate-atempo.js.map +0 -1
  418. package/dist/assets/convert-assets-to-file-urls.d.ts.map +0 -1
  419. package/dist/assets/convert-assets-to-file-urls.js.map +0 -1
  420. package/dist/assets/download-and-map-assets-to-file.d.ts.map +0 -1
  421. package/dist/assets/download-and-map-assets-to-file.js.map +0 -1
  422. package/dist/assets/download-file.d.ts.map +0 -1
  423. package/dist/assets/download-file.js.map +0 -1
  424. package/dist/assets/ffmpeg-volume-expression.d.ts.map +0 -1
  425. package/dist/assets/ffmpeg-volume-expression.js.map +0 -1
  426. package/dist/assets/flatten-volume-array.d.ts.map +0 -1
  427. package/dist/assets/flatten-volume-array.js.map +0 -1
  428. package/dist/assets/get-asset-audio-details.d.ts +0 -5
  429. package/dist/assets/get-asset-audio-details.d.ts.map +0 -1
  430. package/dist/assets/get-asset-audio-details.js +0 -21
  431. package/dist/assets/get-asset-audio-details.js.map +0 -1
  432. package/dist/assets/get-audio-channels.d.ts.map +0 -1
  433. package/dist/assets/get-audio-channels.js.map +0 -1
  434. package/dist/assets/get-simulatenous-assets.d.ts +0 -3
  435. package/dist/assets/get-simulatenous-assets.d.ts.map +0 -1
  436. package/dist/assets/get-simulatenous-assets.js +0 -14
  437. package/dist/assets/get-simulatenous-assets.js.map +0 -1
  438. package/dist/assets/read-file.d.ts.map +0 -1
  439. package/dist/assets/read-file.js.map +0 -1
  440. package/dist/assets/round-volume-to-avoid-stack-overflow.d.ts.map +0 -1
  441. package/dist/assets/round-volume-to-avoid-stack-overflow.js.map +0 -1
  442. package/dist/assets/sanitize-filename.d.ts.map +0 -1
  443. package/dist/assets/sanitize-filename.js.map +0 -1
  444. package/dist/assets/sanitize-filepath.d.ts.map +0 -1
  445. package/dist/assets/sanitize-filepath.js.map +0 -1
  446. package/dist/assets/split-assets-into-segments.d.ts +0 -6
  447. package/dist/assets/split-assets-into-segments.d.ts.map +0 -1
  448. package/dist/assets/split-assets-into-segments.js +0 -89
  449. package/dist/assets/split-assets-into-segments.js.map +0 -1
  450. package/dist/assets/truncate-utf8-bytes.d.ts.map +0 -1
  451. package/dist/assets/truncate-utf8-bytes.js.map +0 -1
  452. package/dist/assets/types.d.ts.map +0 -1
  453. package/dist/assets/types.js.map +0 -1
  454. package/dist/assets-to-ffmpeg-inputs.d.ts +0 -7
  455. package/dist/assets-to-ffmpeg-inputs.d.ts.map +0 -1
  456. package/dist/assets-to-ffmpeg-inputs.js +0 -15
  457. package/dist/assets-to-ffmpeg-inputs.js.map +0 -1
  458. package/dist/browser-log.d.ts.map +0 -1
  459. package/dist/browser-log.js.map +0 -1
  460. package/dist/calculate-ffmpeg-filters.d.ts.map +0 -1
  461. package/dist/calculate-ffmpeg-filters.js.map +0 -1
  462. package/dist/can-use-parallel-encoding.d.ts.map +0 -1
  463. package/dist/can-use-parallel-encoding.js.map +0 -1
  464. package/dist/combine-videos.d.ts.map +0 -1
  465. package/dist/combine-videos.js.map +0 -1
  466. package/dist/convert-to-pcm.d.ts +0 -6
  467. package/dist/convert-to-pcm.js +0 -20
  468. package/dist/create-ffmpeg-complex-filter.d.ts.map +0 -1
  469. package/dist/create-ffmpeg-complex-filter.js.map +0 -1
  470. package/dist/cycle-browser-tabs.d.ts.map +0 -1
  471. package/dist/cycle-browser-tabs.js.map +0 -1
  472. package/dist/delay-render-embedded-stack.d.ts.map +0 -1
  473. package/dist/delay-render-embedded-stack.js.map +0 -1
  474. package/dist/delete-directory.d.ts.map +0 -1
  475. package/dist/delete-directory.js.map +0 -1
  476. package/dist/ensure-frames-in-order.d.ts.map +0 -1
  477. package/dist/ensure-frames-in-order.js.map +0 -1
  478. package/dist/ensure-output-directory.d.ts.map +0 -1
  479. package/dist/ensure-output-directory.js.map +0 -1
  480. package/dist/error-handling/handle-javascript-exception.d.ts.map +0 -1
  481. package/dist/error-handling/handle-javascript-exception.js.map +0 -1
  482. package/dist/error-handling/symbolicate-error.d.ts.map +0 -1
  483. package/dist/error-handling/symbolicate-error.js.map +0 -1
  484. package/dist/error-handling/symbolicateable-error.d.ts.map +0 -1
  485. package/dist/error-handling/symbolicateable-error.js.map +0 -1
  486. package/dist/ffmpeg-flags.d.ts.map +0 -1
  487. package/dist/ffmpeg-flags.js.map +0 -1
  488. package/dist/get-audio-codec-name.d.ts +0 -2
  489. package/dist/get-audio-codec-name.d.ts.map +0 -1
  490. package/dist/get-audio-codec-name.js +0 -28
  491. package/dist/get-audio-codec-name.js.map +0 -1
  492. package/dist/get-browser-instance.d.ts.map +0 -1
  493. package/dist/get-browser-instance.js.map +0 -1
  494. package/dist/get-codec-name.d.ts.map +0 -1
  495. package/dist/get-codec-name.js.map +0 -1
  496. package/dist/get-compositions.d.ts.map +0 -1
  497. package/dist/get-compositions.js.map +0 -1
  498. package/dist/get-concurrency.d.ts.map +0 -1
  499. package/dist/get-concurrency.js.map +0 -1
  500. package/dist/get-extension-from-codec.d.ts.map +0 -1
  501. package/dist/get-extension-from-codec.js.map +0 -1
  502. package/dist/get-frame-to-render.d.ts.map +0 -1
  503. package/dist/get-frame-to-render.js.map +0 -1
  504. package/dist/get-local-browser-executable.d.ts.map +0 -1
  505. package/dist/get-local-browser-executable.js.map +0 -1
  506. package/dist/get-port.d.ts.map +0 -1
  507. package/dist/get-port.js.map +0 -1
  508. package/dist/get-prores-profile-name.d.ts.map +0 -1
  509. package/dist/get-prores-profile-name.js.map +0 -1
  510. package/dist/image-format.d.ts.map +0 -1
  511. package/dist/image-format.js.map +0 -1
  512. package/dist/index.d.ts.map +0 -1
  513. package/dist/index.js.map +0 -1
  514. package/dist/is-serve-url.d.ts.map +0 -1
  515. package/dist/is-serve-url.js.map +0 -1
  516. package/dist/legacy-webpack-config.d.ts.map +0 -1
  517. package/dist/legacy-webpack-config.js.map +0 -1
  518. package/dist/make-assets-download-dir.d.ts +0 -1
  519. package/dist/make-assets-download-dir.d.ts.map +0 -1
  520. package/dist/make-assets-download-dir.js +0 -13
  521. package/dist/make-assets-download-dir.js.map +0 -1
  522. package/dist/normalize-serve-url.d.ts.map +0 -1
  523. package/dist/normalize-serve-url.js.map +0 -1
  524. package/dist/open-browser.d.ts.map +0 -1
  525. package/dist/open-browser.js.map +0 -1
  526. package/dist/parse-browser-error-stack.d.ts.map +0 -1
  527. package/dist/parse-browser-error-stack.js.map +0 -1
  528. package/dist/parse-ffmpeg-progress.d.ts.map +0 -1
  529. package/dist/parse-ffmpeg-progress.js.map +0 -1
  530. package/dist/pool.d.ts.map +0 -1
  531. package/dist/pool.js.map +0 -1
  532. package/dist/prepare-server.d.ts.map +0 -1
  533. package/dist/prepare-server.js.map +0 -1
  534. package/dist/provide-screenshot.d.ts.map +0 -1
  535. package/dist/provide-screenshot.js.map +0 -1
  536. package/dist/puppeteer-evaluate.d.ts.map +0 -1
  537. package/dist/puppeteer-evaluate.js.map +0 -1
  538. package/dist/puppeteer-screenshot.d.ts.map +0 -1
  539. package/dist/puppeteer-screenshot.js.map +0 -1
  540. package/dist/render-media.d.ts.map +0 -1
  541. package/dist/render-media.js.map +0 -1
  542. package/dist/render-still.d.ts.map +0 -1
  543. package/dist/render-still.js.map +0 -1
  544. package/dist/render.d.ts +0 -45
  545. package/dist/render.d.ts.map +0 -1
  546. package/dist/render.js +0 -245
  547. package/dist/render.js.map +0 -1
  548. package/dist/resolve-asset-src.d.ts.map +0 -1
  549. package/dist/resolve-asset-src.js.map +0 -1
  550. package/dist/sample-rate.d.ts.map +0 -1
  551. package/dist/sample-rate.js.map +0 -1
  552. package/dist/screenshot-dom-element.d.ts.map +0 -1
  553. package/dist/screenshot-dom-element.js.map +0 -1
  554. package/dist/screenshot-task.d.ts.map +0 -1
  555. package/dist/screenshot-task.js.map +0 -1
  556. package/dist/seek-to-frame.d.ts.map +0 -1
  557. package/dist/seek-to-frame.js.map +0 -1
  558. package/dist/serve-static.d.ts.map +0 -1
  559. package/dist/serve-static.js.map +0 -1
  560. package/dist/set-props-and-env.d.ts.map +0 -1
  561. package/dist/set-props-and-env.js.map +0 -1
  562. package/dist/stitcher.d.ts +0 -32
  563. package/dist/stitcher.d.ts.map +0 -1
  564. package/dist/stitcher.js +0 -204
  565. package/dist/stitcher.js.map +0 -1
  566. package/dist/stringify-ffmpeg-filter.d.ts.map +0 -1
  567. package/dist/stringify-ffmpeg-filter.js.map +0 -1
  568. package/dist/symbolicate-stacktrace.d.ts.map +0 -1
  569. package/dist/symbolicate-stacktrace.js.map +0 -1
  570. package/dist/tmp-dir.d.ts.map +0 -1
  571. package/dist/tmp-dir.js.map +0 -1
  572. package/dist/types.d.ts.map +0 -1
  573. package/dist/types.js.map +0 -1
  574. package/dist/validate-even-dimensions-with-codec.d.ts.map +0 -1
  575. package/dist/validate-even-dimensions-with-codec.js.map +0 -1
  576. package/dist/validate-ffmpeg.d.ts.map +0 -1
  577. package/dist/validate-ffmpeg.js.map +0 -1
  578. package/dist/validate-frame.d.ts +0 -1
  579. package/dist/validate-frame.js +0 -24
  580. package/dist/validate-puppeteer-timeout.d.ts.map +0 -1
  581. package/dist/validate-puppeteer-timeout.js.map +0 -1
  582. package/dist/validate-scale.d.ts.map +0 -1
  583. package/dist/validate-scale.js.map +0 -1
  584. package/tsconfig.json +0 -10
  585. package/vitest.config.ts +0 -8
package/dist/index.js CHANGED
@@ -26,20 +26,26 @@ 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.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.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
32
  const download_map_1 = require("./assets/download-map");
33
+ const audio_codec_1 = require("./audio-codec");
33
34
  const browser_1 = require("./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 check_apple_silicon_1 = require("./check-apple-silicon");
36
39
  const codec_1 = require("./codec");
37
- const crf_1 = require("./crf");
40
+ const combine_videos_1 = require("./combine-videos");
41
+ const get_executable_path_1 = require("./compositor/get-executable-path");
42
+ const convert_to_positive_frame_index_1 = require("./convert-to-positive-frame-index");
38
43
  const delete_directory_1 = require("./delete-directory");
39
44
  const ensure_output_directory_1 = require("./ensure-output-directory");
40
45
  const symbolicate_error_1 = require("./error-handling/symbolicate-error");
41
46
  const symbolicateable_error_1 = require("./error-handling/symbolicateable-error");
42
- const ffmpeg_flags_1 = require("./ffmpeg-flags");
47
+ const file_extensions_1 = require("./file-extensions");
48
+ const find_closest_package_json_1 = require("./find-closest-package-json");
43
49
  const frame_range_1 = require("./frame-range");
44
50
  const get_concurrency_1 = require("./get-concurrency");
45
51
  const get_duration_from_frame_range_1 = require("./get-duration-from-frame-range");
@@ -51,38 +57,28 @@ const get_port_1 = require("./get-port");
51
57
  const image_format_1 = require("./image-format");
52
58
  const is_audio_codec_1 = require("./is-audio-codec");
53
59
  const is_serve_url_1 = require("./is-serve-url");
60
+ const jpeg_quality_1 = require("./jpeg-quality");
54
61
  const log_level_1 = require("./log-level");
55
62
  const mime_types_1 = require("./mime-types");
56
- const normalize_serve_url_1 = require("./normalize-serve-url");
57
63
  const open_browser_1 = require("./open-browser");
58
- const overwrite_1 = require("./overwrite");
59
64
  const parse_browser_error_stack_1 = require("./parse-browser-error-stack");
60
65
  const perf = __importStar(require("./perf"));
61
66
  const pixel_format_1 = require("./pixel-format");
62
- const prores_profile_1 = require("./prores-profile");
63
- const quality_1 = require("./quality");
64
67
  const is_path_inside_1 = require("./serve-handler/is-path-inside");
65
68
  const serve_static_1 = require("./serve-static");
66
- const stitch_frames_to_video_1 = require("./stitch-frames-to-video");
67
69
  const tmp_dir_1 = require("./tmp-dir");
68
70
  const validate_concurrency_1 = require("./validate-concurrency");
69
71
  const validate_even_dimensions_with_codec_1 = require("./validate-even-dimensions-with-codec");
70
- const validate_every_nth_frame_1 = require("./validate-every-nth-frame");
71
- const validate_ffmpeg_1 = require("./validate-ffmpeg");
72
- const validate_frame_1 = require("./validate-frame");
73
72
  const validate_opengl_renderer_1 = require("./validate-opengl-renderer");
74
73
  const validate_puppeteer_timeout_1 = require("./validate-puppeteer-timeout");
75
- const validate_scale_1 = require("./validate-scale");
74
+ const validate_videobitrate_1 = require("./validate-videobitrate");
76
75
  const wait_for_symbolication_error_to_be_done_1 = require("./wait-for-symbolication-error-to-be-done");
77
- var combine_videos_1 = require("./combine-videos");
78
- Object.defineProperty(exports, "combineVideos", { enumerable: true, get: function () { return combine_videos_1.combineVideos; } });
79
76
  var handle_javascript_exception_1 = require("./error-handling/handle-javascript-exception");
80
77
  Object.defineProperty(exports, "ErrorWithStackFrame", { enumerable: true, get: function () { return handle_javascript_exception_1.ErrorWithStackFrame; } });
81
78
  var get_compositions_1 = require("./get-compositions");
82
79
  Object.defineProperty(exports, "getCompositions", { enumerable: true, get: function () { return get_compositions_1.getCompositions; } });
83
80
  var image_format_2 = require("./image-format");
84
81
  Object.defineProperty(exports, "validateSelectedPixelFormatAndImageFormatCombination", { enumerable: true, get: function () { return image_format_2.validateSelectedPixelFormatAndImageFormatCombination; } });
85
- Object.defineProperty(exports, "validImageFormats", { enumerable: true, get: function () { return image_format_2.validImageFormats; } });
86
82
  var make_cancel_signal_1 = require("./make-cancel-signal");
87
83
  Object.defineProperty(exports, "makeCancelSignal", { enumerable: true, get: function () { return make_cancel_signal_1.makeCancelSignal; } });
88
84
  var open_browser_2 = require("./open-browser");
@@ -93,20 +89,15 @@ var render_media_1 = require("./render-media");
93
89
  Object.defineProperty(exports, "renderMedia", { enumerable: true, get: function () { return render_media_1.renderMedia; } });
94
90
  var render_still_1 = require("./render-still");
95
91
  Object.defineProperty(exports, "renderStill", { enumerable: true, get: function () { return render_still_1.renderStill; } });
96
- var stitch_frames_to_video_2 = require("./stitch-frames-to-video");
97
- Object.defineProperty(exports, "stitchFramesToVideo", { enumerable: true, get: function () { return stitch_frames_to_video_2.stitchFramesToVideo; } });
92
+ var stitch_frames_to_video_1 = require("./stitch-frames-to-video");
93
+ Object.defineProperty(exports, "stitchFramesToVideo", { enumerable: true, get: function () { return stitch_frames_to_video_1.stitchFramesToVideo; } });
94
+ var validate_output_filename_1 = require("./validate-output-filename");
95
+ Object.defineProperty(exports, "validateOutputFilename", { enumerable: true, get: function () { return validate_output_filename_1.validateOutputFilename; } });
98
96
  exports.RenderInternals = {
99
97
  ensureLocalBrowser: get_local_browser_executable_1.ensureLocalBrowser,
100
- ffmpegHasFeature: ffmpeg_flags_1.ffmpegHasFeature,
101
98
  getActualConcurrency: get_concurrency_1.getActualConcurrency,
102
- getFfmpegVersion: ffmpeg_flags_1.getFfmpegVersion,
103
- validateFfmpeg: validate_ffmpeg_1.validateFfmpeg,
104
- binaryExists: validate_ffmpeg_1.binaryExists,
105
- getFfmpegBuildInfo: ffmpeg_flags_1.getFfmpegBuildInfo,
106
99
  serveStatic: serve_static_1.serveStatic,
107
100
  validateEvenDimensionsWithCodec: validate_even_dimensions_with_codec_1.validateEvenDimensionsWithCodec,
108
- normalizeServeUrl: normalize_serve_url_1.normalizeServeUrl,
109
- spawnFfmpeg: stitch_frames_to_video_1.spawnFfmpeg,
110
101
  getFileExtensionFromCodec: get_extension_from_codec_1.getFileExtensionFromCodec,
111
102
  tmpDir: tmp_dir_1.tmpDir,
112
103
  deleteDirectory: delete_directory_1.deleteDirectory,
@@ -115,7 +106,6 @@ exports.RenderInternals = {
115
106
  getRealFrameRange: get_frame_to_render_1.getRealFrameRange,
116
107
  validatePuppeteerTimeout: validate_puppeteer_timeout_1.validatePuppeteerTimeout,
117
108
  downloadFile: download_file_1.downloadFile,
118
- validateScale: validate_scale_1.validateScale,
119
109
  killAllBrowsers: open_browser_1.killAllBrowsers,
120
110
  parseStack: parse_browser_error_stack_1.parseStack,
121
111
  symbolicateError: symbolicate_error_1.symbolicateError,
@@ -136,26 +126,37 @@ exports.RenderInternals = {
136
126
  validateFrameRange: frame_range_1.validateFrameRange,
137
127
  DEFAULT_OPENGL_RENDERER: validate_opengl_renderer_1.DEFAULT_OPENGL_RENDERER,
138
128
  validateOpenGlRenderer: validate_opengl_renderer_1.validateOpenGlRenderer,
139
- getDefaultCrfForCodec: crf_1.getDefaultCrfForCodec,
140
- validateSelectedCrfAndCodecCombination: crf_1.validateSelectedCrfAndCodecCombination,
141
- validImageFormats: image_format_1.validImageFormats,
142
129
  validCodecs: codec_1.validCodecs,
143
- DEFAULT_OVERWRITE: overwrite_1.DEFAULT_OVERWRITE,
144
130
  DEFAULT_PIXEL_FORMAT: pixel_format_1.DEFAULT_PIXEL_FORMAT,
145
- validateQuality: quality_1.validateQuality,
146
- validateFrame: validate_frame_1.validateFrame,
131
+ validateJpegQuality: jpeg_quality_1.validateJpegQuality,
147
132
  DEFAULT_TIMEOUT: TimeoutSettings_1.DEFAULT_TIMEOUT,
148
- getValidCrfRanges: crf_1.getValidCrfRanges,
149
- validateSelectedPixelFormatAndCodecCombination: pixel_format_1.validateSelectedPixelFormatAndCodecCombination,
150
- validateSelectedCodecAndProResCombination: prores_profile_1.validateSelectedCodecAndProResCombination,
151
- validateSelectedPixelFormatAndImageFormatCombination: image_format_1.validateSelectedPixelFormatAndImageFormatCombination,
152
133
  DEFAULT_CODEC: codec_1.DEFAULT_CODEC,
153
134
  isAudioCodec: is_audio_codec_1.isAudioCodec,
154
135
  logLevels: log_level_1.logLevels,
155
136
  isEqualOrBelowLogLevel: log_level_1.isEqualOrBelowLogLevel,
156
137
  isValidLogLevel: log_level_1.isValidLogLevel,
157
- validateEveryNthFrame: validate_every_nth_frame_1.validateEveryNthFrame,
158
138
  perf,
159
139
  makeDownloadMap: download_map_1.makeDownloadMap,
160
140
  cleanDownloadMap: download_map_1.cleanDownloadMap,
141
+ convertToPositiveFrameIndex: convert_to_positive_frame_index_1.convertToPositiveFrameIndex,
142
+ findRemotionRoot: find_closest_package_json_1.findRemotionRoot,
143
+ validateBitrate: validate_videobitrate_1.validateBitrate,
144
+ combineVideos: combine_videos_1.combineVideos,
145
+ getMinConcurrency: validate_concurrency_1.getMinConcurrency,
146
+ getMaxConcurrency: validate_concurrency_1.getMaxConcurrency,
147
+ getDefaultAudioCodec: audio_codec_1.getDefaultAudioCodec,
148
+ validAudioCodecs: audio_codec_1.validAudioCodecs,
149
+ defaultFileExtensionMap: file_extensions_1.defaultFileExtensionMap,
150
+ supportedAudioCodecs: audio_codec_1.supportedAudioCodecs,
151
+ makeFileExtensionMap: get_extension_from_codec_1.makeFileExtensionMap,
152
+ defaultCodecsForFileExtension: get_extension_from_codec_1.defaultCodecsForFileExtension,
153
+ getExecutablePath: get_executable_path_1.getExecutablePath,
154
+ callFf: call_ffmpeg_1.callFf,
155
+ dynamicLibraryPathOptions: call_ffmpeg_1.dynamicLibraryPathOptions,
156
+ validStillImageFormats: image_format_1.validStillImageFormats,
157
+ validVideoImageFormats: image_format_1.validVideoImageFormats,
158
+ DEFAULT_STILL_IMAGE_FORMAT: image_format_1.DEFAULT_STILL_IMAGE_FORMAT,
159
+ DEFAULT_VIDEO_IMAGE_FORMAT: image_format_1.DEFAULT_VIDEO_IMAGE_FORMAT,
161
160
  };
161
+ // Warn of potential performance issues with Apple Silicon (M1 chip under Rosetta)
162
+ (0, check_apple_silicon_1.checkNodeVersionAndWarnAboutRosetta)();
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -0,0 +1 @@
1
+ export declare const validateJpegQuality: (q: number | undefined) => void;
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.validateJpegQuality = void 0;
4
+ const validateJpegQuality = (q) => {
5
+ if (typeof q !== 'undefined' && typeof q !== 'number') {
6
+ throw new Error(`JPEG Quality option must be a number or undefined. Got ${typeof q} (${JSON.stringify(q)})`);
7
+ }
8
+ if (typeof q === 'undefined') {
9
+ return;
10
+ }
11
+ if (!Number.isFinite(q)) {
12
+ throw new RangeError(`JPEG Quality must be a finite number, but is ${q}`);
13
+ }
14
+ if (Number.isNaN(q)) {
15
+ throw new RangeError(`JPEG Quality is NaN, but must be a real number`);
16
+ }
17
+ if (q > 100 || q < 0) {
18
+ throw new RangeError('JPEG Quality option must be between 0 and 100.');
19
+ }
20
+ };
21
+ exports.validateJpegQuality = validateJpegQuality;
@@ -1,3 +1,4 @@
1
+ /// <reference types="node" />
1
2
  import type { OffthreadVideoImageFormat } from 'remotion';
2
3
  import type { DownloadMap, SpecialVCodecForTransparency } from './assets/download-map';
3
4
  import type { FfmpegExecutable } from './ffmpeg-executable';
@@ -10,6 +11,7 @@ export declare type LastFrameOptions = {
10
11
  imageFormat: OffthreadVideoImageFormat;
11
12
  needsResize: [number, number] | null;
12
13
  downloadMap: DownloadMap;
14
+ remotionRoot: string;
13
15
  };
14
16
  export declare const setLastFrameInCache: (options: LastFrameOptions, data: Buffer) => void;
15
17
  export declare const getLastFrameFromCache: (options: LastFrameOptions) => Buffer | null;
File without changes
File without changes
File without changes
@@ -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;
File without changes
package/dist/log-level.js CHANGED
File without changes
@@ -1,7 +1,18 @@
1
1
  declare type Callback = () => void;
2
2
  export declare 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';
2
+ import type { PreprocessedAudioTrack } from './preprocess-audio-track';
3
3
  declare type Options = {
4
- ffmpegExecutable: FfmpegExecutable;
5
- files: string[];
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,73 +4,79 @@ 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
7
  const path_1 = __importDefault(require("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 = 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
  };
73
- const limit = (0, p_limit_1.pLimit)(2);
78
+ // Must be at least 3 because recursively called twice in mergeAudioTrack
79
+ const limit = (0, p_limit_1.pLimit)(3);
74
80
  const mergeAudioTrack = (options) => {
75
81
  return limit(mergeAudioTrackUnlimited, options);
76
82
  };
package/dist/mime-db.d.ts CHANGED
File without changes
package/dist/mime-db.js CHANGED
File without changes
@@ -1,2 +1,3 @@
1
+ export declare const getExt: (contentType: string) => string | null;
1
2
  export declare function mimeLookup(path: string): string | false;
2
3
  export declare function mimeContentType(str: string): false | string;
@@ -1,12 +1,17 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.mimeContentType = exports.mimeLookup = void 0;
3
+ exports.mimeContentType = exports.mimeLookup = exports.getExt = void 0;
4
4
  const path_1 = require("path");
5
5
  const mime_db_1 = require("./mime-db");
6
6
  const extensions = {};
7
7
  const types = {};
8
8
  // Populate the extensions/types maps
9
9
  populateMaps(extensions, {});
10
+ const getExt = (contentType) => {
11
+ var _a, _b, _c;
12
+ return (_c = (_b = (_a = mime_db_1.mimeDb[contentType.toLowerCase()]) === null || _a === void 0 ? void 0 : _a.extensions) === null || _b === void 0 ? void 0 : _b[0]) !== null && _c !== void 0 ? _c : null;
13
+ };
14
+ exports.getExt = getExt;
10
15
  function mimeLookup(path) {
11
16
  if (!path || typeof path !== 'string') {
12
17
  return false;
File without changes
File without changes
@@ -1,17 +1,18 @@
1
1
  import type { RequestListener } from 'http';
2
- import type { OffthreadVideoImageFormat } from 'remotion';
3
2
  import type { RenderMediaOnDownload } from './assets/download-and-map-assets-to-file';
4
3
  import type { DownloadMap } from './assets/download-map';
5
- import type { FfmpegExecutable } from './ffmpeg-executable';
6
4
  export declare const extractUrlAndSourceFromUrl: (url: string) => {
7
5
  src: string;
8
6
  time: number;
9
- imageFormat: OffthreadVideoImageFormat;
7
+ transparent: boolean;
10
8
  };
11
- export declare const startOffthreadVideoServer: ({ ffmpegExecutable, ffprobeExecutable, onDownload, onError, downloadMap, }: {
12
- ffmpegExecutable: FfmpegExecutable;
13
- ffprobeExecutable: FfmpegExecutable;
9
+ export declare const startOffthreadVideoServer: ({ onDownload, onError, downloadMap, concurrency, verbose, }: {
14
10
  onDownload: RenderMediaOnDownload;
15
11
  onError: (err: Error) => void;
16
12
  downloadMap: DownloadMap;
17
- }) => RequestListener;
13
+ concurrency: number;
14
+ verbose: boolean;
15
+ }) => {
16
+ listener: RequestListener;
17
+ close: () => Promise<void>;
18
+ };