@remotion/renderer 4.0.0-webhook.26 → 4.0.0

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 (413) 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 +19 -16
  38. package/dist/browser/Browser.js +72 -75
  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 +32 -6
  44. package/dist/browser/BrowserPage.js +90 -26
  45. package/dist/browser/BrowserRunner.d.ts +1 -1
  46. package/dist/browser/BrowserRunner.js +32 -22
  47. package/dist/browser/Connection.d.ts +9 -3
  48. package/dist/browser/Connection.js +12 -4
  49. package/dist/browser/ConsoleMessage.d.ts +9 -2
  50. package/dist/browser/ConsoleMessage.js +2 -1
  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 +4 -4
  61. package/dist/browser/FrameManager.d.ts +0 -2
  62. package/dist/browser/FrameManager.js +15 -19
  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 +4 -2
  70. package/dist/browser/LaunchOptions.js +0 -0
  71. package/dist/browser/Launcher.d.ts +9 -3
  72. package/dist/browser/Launcher.js +17 -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 +4 -1
  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 +5 -3
  90. package/dist/browser/Target.js +10 -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 +151 -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 +80 -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 +55 -0
  130. package/dist/chalk/index.js +130 -0
  131. package/dist/chalk/is-color-supported.d.ts +1 -0
  132. package/dist/chalk/is-color-supported.js +45 -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 +87 -0
  147. package/dist/compositor/compositor.d.ts +12 -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 +20 -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 +3 -5
  170. package/dist/cycle-browser-tabs.js +7 -7
  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/format-logs.d.ts +3 -0
  196. package/dist/format-logs.js +201 -0
  197. package/dist/frame-range.d.ts +1 -1
  198. package/dist/frame-range.js +0 -0
  199. package/dist/get-browser-instance.d.ts +9 -3
  200. package/dist/get-browser-instance.js +10 -5
  201. package/dist/get-codec-name.d.ts +0 -0
  202. package/dist/get-codec-name.js +0 -0
  203. package/dist/get-compositions.d.ts +28 -14
  204. package/dist/get-compositions.js +74 -40
  205. package/dist/get-concurrency.d.ts +1 -1
  206. package/dist/get-concurrency.js +11 -4
  207. package/dist/get-duration-from-frame-range.d.ts +0 -0
  208. package/dist/get-duration-from-frame-range.js +0 -0
  209. package/dist/get-extension-from-codec.d.ts +5 -1
  210. package/dist/get-extension-from-codec.js +56 -32
  211. package/dist/get-extension-of-filename.d.ts +0 -0
  212. package/dist/get-extension-of-filename.js +5 -1
  213. package/dist/get-frame-padded-index.d.ts +3 -2
  214. package/dist/get-frame-padded-index.js +3 -2
  215. package/dist/get-frame-to-render.d.ts +0 -0
  216. package/dist/get-frame-to-render.js +1 -1
  217. package/dist/get-local-browser-executable.d.ts +0 -0
  218. package/dist/get-local-browser-executable.js +7 -15
  219. package/dist/get-port.d.ts +4 -1
  220. package/dist/get-port.js +8 -8
  221. package/dist/get-prores-profile-name.d.ts +0 -0
  222. package/dist/get-prores-profile-name.js +0 -0
  223. package/dist/get-video-threads-flag.d.ts +0 -0
  224. package/dist/get-video-threads-flag.js +3 -3
  225. package/dist/guess-extension-for-media.d.ts +3 -1
  226. package/dist/guess-extension-for-media.js +4 -7
  227. package/dist/image-format.d.ts +12 -6
  228. package/dist/image-format.js +19 -13
  229. package/dist/index.d.ts +369 -49
  230. package/dist/index.js +67 -46
  231. package/dist/is-audio-codec.d.ts +0 -0
  232. package/dist/is-audio-codec.js +0 -0
  233. package/dist/is-serve-url.d.ts +0 -0
  234. package/dist/is-serve-url.js +0 -0
  235. package/dist/jpeg-quality.d.ts +2 -0
  236. package/dist/jpeg-quality.js +22 -0
  237. package/dist/locks.d.ts +7 -0
  238. package/dist/locks.js +44 -0
  239. package/dist/log-level.d.ts +1 -1
  240. package/dist/log-level.js +0 -0
  241. package/dist/logger.d.ts +23 -0
  242. package/dist/logger.js +63 -0
  243. package/dist/make-cancel-signal.d.ts +13 -2
  244. package/dist/make-cancel-signal.js +24 -1
  245. package/dist/merge-audio-track.d.ts +4 -4
  246. package/dist/merge-audio-track.js +38 -33
  247. package/dist/mime-db.d.ts +0 -0
  248. package/dist/mime-db.js +0 -0
  249. package/dist/mime-types.d.ts +0 -0
  250. package/dist/mime-types.js +3 -3
  251. package/dist/normalize-serve-url.d.ts +0 -0
  252. package/dist/normalize-serve-url.js +0 -0
  253. package/dist/offthread-video-server.d.ts +48 -11
  254. package/dist/offthread-video-server.js +112 -58
  255. package/dist/open-browser.d.ts +22 -6
  256. package/dist/open-browser.js +40 -17
  257. package/dist/options/audio-bitrate.d.ts +2 -0
  258. package/dist/options/audio-bitrate.js +11 -0
  259. package/dist/options/crf.d.ts +2 -0
  260. package/dist/options/crf.js +11 -0
  261. package/dist/options/enforce-audio.d.ts +2 -0
  262. package/dist/options/enforce-audio.js +11 -0
  263. package/dist/options/jpeg-quality.d.ts +2 -0
  264. package/dist/options/jpeg-quality.js +11 -0
  265. package/dist/options/mute.d.ts +2 -0
  266. package/dist/options/mute.js +11 -0
  267. package/dist/options/option.d.ts +8 -0
  268. package/dist/options/option.js +2 -0
  269. package/dist/options/scale.d.ts +2 -0
  270. package/dist/options/scale.js +11 -0
  271. package/dist/options/video-bitrate.d.ts +2 -0
  272. package/dist/options/video-bitrate.js +11 -0
  273. package/dist/options/video-codec.d.ts +2 -0
  274. package/dist/options/video-codec.js +11 -0
  275. package/dist/overwrite.d.ts +0 -0
  276. package/dist/overwrite.js +0 -0
  277. package/dist/p-limit.d.ts +0 -0
  278. package/dist/p-limit.js +0 -0
  279. package/dist/parse-browser-error-stack.d.ts +1 -1
  280. package/dist/parse-browser-error-stack.js +0 -0
  281. package/dist/parse-ffmpeg-progress.d.ts +0 -0
  282. package/dist/parse-ffmpeg-progress.js +0 -0
  283. package/dist/perf.d.ts +2 -2
  284. package/dist/perf.js +11 -7
  285. package/dist/pixel-format.d.ts +2 -2
  286. package/dist/pixel-format.js +3 -0
  287. package/dist/pool.d.ts +0 -0
  288. package/dist/pool.js +0 -0
  289. package/dist/prepare-server.d.ts +26 -10
  290. package/dist/prepare-server.js +71 -18
  291. package/dist/preprocess-audio-track.d.ts +7 -5
  292. package/dist/preprocess-audio-track.js +7 -8
  293. package/dist/prespawn-ffmpeg.d.ts +22 -11
  294. package/dist/prespawn-ffmpeg.js +41 -31
  295. package/dist/prestitcher-memory-usage.d.ts +0 -4
  296. package/dist/prestitcher-memory-usage.js +4 -5
  297. package/dist/prores-profile.d.ts +6 -4
  298. package/dist/prores-profile.js +8 -8
  299. package/dist/provide-screenshot.d.ts +8 -4
  300. package/dist/provide-screenshot.js +5 -2
  301. package/dist/puppeteer-evaluate.d.ts +4 -1
  302. package/dist/puppeteer-evaluate.js +23 -15
  303. package/dist/puppeteer-screenshot.d.ts +12 -2
  304. package/dist/puppeteer-screenshot.js +18 -45
  305. package/dist/redirect-status-codes.d.ts +1 -0
  306. package/dist/redirect-status-codes.js +6 -0
  307. package/dist/render-frames.d.ts +59 -35
  308. package/dist/render-frames.js +256 -147
  309. package/dist/render-media.d.ts +82 -28
  310. package/dist/render-media.js +322 -195
  311. package/dist/render-still.d.ts +52 -19
  312. package/dist/render-still.js +132 -74
  313. package/dist/replace-browser.d.ts +7 -0
  314. package/dist/replace-browser.js +47 -0
  315. package/dist/resolve-asset-src.d.ts +0 -0
  316. package/dist/resolve-asset-src.js +2 -2
  317. package/dist/sample-rate.d.ts +0 -0
  318. package/dist/sample-rate.js +0 -0
  319. package/dist/screenshot-dom-element.d.ts +8 -4
  320. package/dist/screenshot-dom-element.js +15 -4
  321. package/dist/screenshot-task.d.ts +11 -2
  322. package/dist/screenshot-task.js +45 -13
  323. package/dist/seek-to-frame.d.ts +3 -1
  324. package/dist/seek-to-frame.js +53 -7
  325. package/dist/select-composition.d.ts +46 -0
  326. package/dist/select-composition.js +157 -0
  327. package/dist/serve-handler/index.d.ts +1 -1
  328. package/dist/serve-handler/index.js +21 -19
  329. package/dist/serve-handler/is-path-inside.d.ts +0 -0
  330. package/dist/serve-handler/is-path-inside.js +3 -3
  331. package/dist/serve-handler/range-parser.d.ts +0 -0
  332. package/dist/serve-handler/range-parser.js +0 -0
  333. package/dist/serve-static.d.ts +9 -6
  334. package/dist/serve-static.js +85 -59
  335. package/dist/set-props-and-env.d.ts +5 -3
  336. package/dist/set-props-and-env.js +20 -12
  337. package/dist/stitch-frames-to-video.d.ts +40 -16
  338. package/dist/stitch-frames-to-video.js +200 -121
  339. package/dist/stringify-ffmpeg-filter.d.ts +10 -2
  340. package/dist/stringify-ffmpeg-filter.js +37 -34
  341. package/dist/symbolicate-stacktrace.d.ts +16 -3
  342. package/dist/symbolicate-stacktrace.js +49 -24
  343. package/dist/take-frame-and-compose.d.ts +22 -0
  344. package/dist/take-frame-and-compose.js +103 -0
  345. package/dist/tmp-dir.d.ts +0 -0
  346. package/dist/tmp-dir.js +7 -8
  347. package/dist/truthy.d.ts +1 -1
  348. package/dist/truthy.js +0 -0
  349. package/dist/types.d.ts +2 -2
  350. package/dist/types.js +0 -0
  351. package/dist/validate-concurrency.d.ts +2 -0
  352. package/dist/validate-concurrency.js +21 -10
  353. package/dist/validate-even-dimensions-with-codec.d.ts +0 -0
  354. package/dist/validate-even-dimensions-with-codec.js +0 -0
  355. package/dist/validate-every-nth-frame.d.ts +2 -1
  356. package/dist/validate-every-nth-frame.js +8 -1
  357. package/dist/validate-ffmpeg-override.d.ts +0 -0
  358. package/dist/validate-ffmpeg-override.js +0 -0
  359. package/dist/validate-number-of-gif-loops.d.ts +2 -0
  360. package/dist/validate-number-of-gif-loops.js +24 -0
  361. package/dist/validate-opengl-renderer.d.ts +1 -1
  362. package/dist/validate-opengl-renderer.js +0 -0
  363. package/dist/validate-output-filename.d.ts +7 -2
  364. package/dist/validate-output-filename.js +20 -51
  365. package/dist/validate-puppeteer-timeout.d.ts +0 -0
  366. package/dist/validate-puppeteer-timeout.js +1 -0
  367. package/dist/validate-scale.d.ts +0 -0
  368. package/dist/validate-scale.js +0 -0
  369. package/dist/validate-videobitrate.d.ts +1 -0
  370. package/dist/validate-videobitrate.js +20 -0
  371. package/dist/wait-for-symbolication-error-to-be-done.d.ts +0 -0
  372. package/dist/wait-for-symbolication-error-to-be-done.js +5 -31
  373. package/dist/ws/ws-types.d.ts +0 -0
  374. package/dist/ws/ws-types.js +2 -1
  375. package/install-toolchain.mjs +36 -0
  376. package/package.json +70 -60
  377. package/types/ws/index.d.ts +5 -5
  378. package/.prettierrc.js +0 -14
  379. package/dist/assets/dl-browser.d.ts +0 -1
  380. package/dist/assets/dl-browser.js +0 -38
  381. package/dist/assets/get-video-stream-duration.d.ts +0 -4
  382. package/dist/assets/get-video-stream-duration.js +0 -59
  383. package/dist/calculate-sar-dar-pixels.d.ts +0 -9
  384. package/dist/calculate-sar-dar-pixels.js +0 -19
  385. package/dist/convert-to-pcm.d.ts +0 -6
  386. package/dist/convert-to-pcm.js +0 -20
  387. package/dist/ensure-presentation-timestamp.d.ts +0 -2
  388. package/dist/ensure-presentation-timestamp.js +0 -69
  389. package/dist/extract-frame-from-video.d.ts +0 -16
  390. package/dist/extract-frame-from-video.js +0 -277
  391. package/dist/ffmpeg-executable.d.ts +0 -1
  392. package/dist/ffmpeg-flags.d.ts +0 -12
  393. package/dist/ffmpeg-flags.js +0 -45
  394. package/dist/frame-to-ffmpeg-timestamp.d.ts +0 -1
  395. package/dist/frame-to-ffmpeg-timestamp.js +0 -8
  396. package/dist/get-audio-codec-name.d.ts +0 -2
  397. package/dist/get-audio-codec-name.js +0 -28
  398. package/dist/get-video-info.d.ts +0 -3
  399. package/dist/get-video-info.js +0 -49
  400. package/dist/is-beyond-last-frame.d.ts +0 -3
  401. package/dist/is-beyond-last-frame.js +0 -12
  402. package/dist/last-frame-from-video-cache.d.ts +0 -17
  403. package/dist/last-frame-from-video-cache.js +0 -55
  404. package/dist/legacy-webpack-config.d.ts +0 -9
  405. package/dist/legacy-webpack-config.js +0 -13
  406. package/dist/quality.d.ts +0 -1
  407. package/dist/quality.js +0 -21
  408. package/dist/validate-ffmpeg.d.ts +0 -2
  409. package/dist/validate-ffmpeg.js +0 -72
  410. package/dist/validate-frame.d.ts +0 -1
  411. package/dist/validate-frame.js +0 -24
  412. package/tsconfig.json +0 -10
  413. package/vitest.config.ts +0 -8
@@ -1,18 +1,25 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createFfmpegMergeFilter = void 0;
3
+ exports.createFfmpegMergeFilter = exports.OUTPUT_FILTER_NAME = void 0;
4
4
  const truthy_1 = require("./truthy");
5
- const createFfmpegMergeFilter = (inputs) => {
6
- const leftChannel = new Array(inputs * 2)
7
- .fill(true)
8
- .map((_, i) => (i % 2 === 0 ? `c${i}` : null))
9
- .filter(truthy_1.truthy)
10
- .join('+');
11
- const rightChannel = new Array(inputs * 2)
12
- .fill(true)
13
- .map((_, i) => (i % 2 === 1 ? `c${i}` : null))
14
- .filter(truthy_1.truthy)
15
- .join('+');
16
- return `[0:a][1:a]amerge=inputs=${inputs},pan=stereo|c0=${leftChannel}|c1=${rightChannel}[a]`;
5
+ exports.OUTPUT_FILTER_NAME = 'outputaudio';
6
+ const createFfmpegMergeFilter = ({ inputs, }) => {
7
+ const pads = inputs.map((input, index) => {
8
+ const filters = [
9
+ input.filter.pad_start ? input.filter.pad_start : null,
10
+ input.filter.pad_end ? input.filter.pad_end : null,
11
+ 'acopy',
12
+ ];
13
+ return `[${index}:a]${filters.filter(truthy_1.truthy).join(',')}[padded${index}]`;
14
+ });
15
+ return [
16
+ ...pads,
17
+ `${new Array(inputs.length)
18
+ .fill(true)
19
+ .map((_, i) => {
20
+ return `[padded${i}]`;
21
+ })
22
+ .join('')}amix=inputs=${inputs.length}:dropout_transition=0:normalize=0[${exports.OUTPUT_FILTER_NAME}]`,
23
+ ].join(';');
17
24
  };
18
25
  exports.createFfmpegMergeFilter = createFfmpegMergeFilter;
@@ -1,6 +1,4 @@
1
- import type { FfmpegExecutable } from './ffmpeg-executable';
2
- export declare const createSilentAudio: ({ ffmpegExecutable, numberOfSeconds, outName, }: {
3
- ffmpegExecutable: FfmpegExecutable;
1
+ export declare const createSilentAudio: ({ numberOfSeconds, outName, }: {
4
2
  numberOfSeconds: number;
5
3
  outName: string;
6
4
  }) => Promise<void>;
@@ -1,13 +1,10 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
3
  exports.createSilentAudio = void 0;
7
- const execa_1 = __importDefault(require("execa"));
4
+ const call_ffmpeg_1 = require("./call-ffmpeg");
8
5
  const sample_rate_1 = require("./sample-rate");
9
- const createSilentAudio = async ({ ffmpegExecutable, numberOfSeconds, outName, }) => {
10
- await (0, execa_1.default)(ffmpegExecutable !== null && ffmpegExecutable !== void 0 ? ffmpegExecutable : 'ffmpeg', [
6
+ const createSilentAudio = async ({ numberOfSeconds, outName, }) => {
7
+ await (0, call_ffmpeg_1.callFf)('ffmpeg', [
11
8
  '-f',
12
9
  'lavfi',
13
10
  '-i',
package/dist/crf.d.ts CHANGED
@@ -1,5 +1,9 @@
1
1
  import type { Codec } from './codec';
2
- export declare type Crf = number | undefined;
2
+ export type Crf = number | undefined;
3
3
  export declare const getDefaultCrfForCodec: (codec: Codec) => number;
4
4
  export declare const getValidCrfRanges: (codec: Codec) => [number, number];
5
- export declare const validateSelectedCrfAndCodecCombination: (crf: unknown, codec: Codec) => void;
5
+ export declare const validateQualitySettings: ({ codec, crf, videoBitrate, }: {
6
+ crf: unknown;
7
+ codec: Codec;
8
+ videoBitrate: string | null | undefined;
9
+ }) => string[];
package/dist/crf.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.validateSelectedCrfAndCodecCombination = exports.getValidCrfRanges = exports.getDefaultCrfForCodec = void 0;
3
+ exports.validateQualitySettings = exports.getValidCrfRanges = exports.getDefaultCrfForCodec = void 0;
4
4
  const is_audio_codec_1 = require("./is-audio-codec");
5
5
  const getDefaultCrfForCodec = (codec) => {
6
6
  if ((0, is_audio_codec_1.isAudioCodec)(codec)) {
@@ -9,7 +9,7 @@ const getDefaultCrfForCodec = (codec) => {
9
9
  if (codec === 'h264' || codec === 'h264-mkv') {
10
10
  return 18; // FFMPEG default 23
11
11
  }
12
- if (codec === 'h265' || codec === 'gif') {
12
+ if (codec === 'h265') {
13
13
  return 23; // FFMPEG default 28
14
14
  }
15
15
  if (codec === 'vp8') {
@@ -21,6 +21,9 @@ const getDefaultCrfForCodec = (codec) => {
21
21
  if (codec === 'prores') {
22
22
  return 0;
23
23
  }
24
+ if (codec === 'gif') {
25
+ return 0;
26
+ }
24
27
  throw new TypeError(`Got unexpected codec "${codec}"`);
25
28
  };
26
29
  exports.getDefaultCrfForCodec = getDefaultCrfForCodec;
@@ -31,10 +34,13 @@ const getValidCrfRanges = (codec) => {
31
34
  if (codec === 'prores') {
32
35
  return [0, 0];
33
36
  }
37
+ if (codec === 'gif') {
38
+ return [0, 0];
39
+ }
34
40
  if (codec === 'h264' || codec === 'h264-mkv') {
35
41
  return [1, 51];
36
42
  }
37
- if (codec === 'h265' || codec === 'gif') {
43
+ if (codec === 'h265') {
38
44
  return [0, 51];
39
45
  }
40
46
  if (codec === 'vp8') {
@@ -46,19 +52,46 @@ const getValidCrfRanges = (codec) => {
46
52
  throw new TypeError(`Got unexpected codec "${codec}"`);
47
53
  };
48
54
  exports.getValidCrfRanges = getValidCrfRanges;
49
- const validateSelectedCrfAndCodecCombination = (crf, codec) => {
50
- if (crf === null) {
51
- return;
55
+ const validateQualitySettings = ({ codec, crf, videoBitrate, }) => {
56
+ if (crf && videoBitrate) {
57
+ throw new Error('"crf" and "videoBitrate" can not both be set. Choose one of either.');
58
+ }
59
+ if (videoBitrate) {
60
+ if (codec === 'prores') {
61
+ console.warn('ProRes does not support videoBitrate. Ignoring.');
62
+ return [];
63
+ }
64
+ if ((0, is_audio_codec_1.isAudioCodec)(codec)) {
65
+ console.warn(`${codec} does not support videoBitrate. Ignoring.`);
66
+ return [];
67
+ }
68
+ return ['-b:v', videoBitrate];
69
+ }
70
+ if (crf === null || typeof crf === 'undefined') {
71
+ const actualCrf = (0, exports.getDefaultCrfForCodec)(codec);
72
+ return ['-crf', String(actualCrf)];
52
73
  }
53
74
  if (typeof crf !== 'number') {
54
75
  throw new TypeError('Expected CRF to be a number, but is ' + JSON.stringify(crf));
55
76
  }
56
77
  const range = (0, exports.getValidCrfRanges)(codec);
57
78
  if (crf === 0 && (codec === 'h264' || codec === 'h264-mkv')) {
58
- throw new TypeError("Setting the CRF to 0 with a H264 codec is not supported anymore because of it's inconsistencies between platforms. Videos with CRF 0 cannot be played on iOS/macOS. 0 is a extreme value with inefficient settings which you probably want. Set CRF to a higher value to fix this error.");
79
+ throw new TypeError("Setting the CRF to 0 with a H264 codec is not supported anymore because of it's inconsistencies between platforms. Videos with CRF 0 cannot be played on iOS/macOS. 0 is a extreme value with inefficient settings which you probably do not want. Set CRF to a higher value to fix this error.");
59
80
  }
60
81
  if (crf < range[0] || crf > range[1]) {
82
+ if (range[0] === 0 && range[1] === 0) {
83
+ throw new TypeError(`The "${codec}" codec does not support the --crf option.`);
84
+ }
61
85
  throw new TypeError(`CRF must be between ${range[0]} and ${range[1]} for codec ${codec}. Passed: ${crf}`);
62
86
  }
87
+ if (codec === 'prores') {
88
+ console.warn('ProRes does not support the "crf" option. Ignoring.');
89
+ return [];
90
+ }
91
+ if ((0, is_audio_codec_1.isAudioCodec)(codec)) {
92
+ console.warn(`${codec} does not support the "crf" option. Ignoring.`);
93
+ return [];
94
+ }
95
+ return ['-crf', String(crf)];
63
96
  };
64
- exports.validateSelectedCrfAndCodecCombination = validateSelectedCrfAndCodecCombination;
97
+ exports.validateQualitySettings = validateQualitySettings;
@@ -1,7 +1,5 @@
1
- import type { openBrowser } from './open-browser';
2
- declare type Await<T> = T extends PromiseLike<infer U> ? U : T;
3
- declare type Browser = Await<ReturnType<typeof openBrowser>>;
4
- export declare const cycleBrowserTabs: (puppeteerInstance: Browser, concurrency: number) => {
1
+ import type { LogLevel } from './log-level';
2
+ import type { BrowserReplacer } from './replace-browser';
3
+ export declare const cycleBrowserTabs: (puppeteerInstance: BrowserReplacer, concurrency: number, logLevel: LogLevel, indent: boolean) => {
5
4
  stopCycling: () => void;
6
5
  };
7
- export {};
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.cycleBrowserTabs = void 0;
4
- const cycleBrowserTabs = (puppeteerInstance, concurrency) => {
4
+ const cycleBrowserTabs = (puppeteerInstance, concurrency, logLevel, indent) => {
5
5
  if (concurrency <= 1) {
6
6
  return {
7
7
  stopCycling: () => undefined,
@@ -13,24 +13,24 @@ const cycleBrowserTabs = (puppeteerInstance, concurrency) => {
13
13
  const set = () => {
14
14
  interval = setTimeout(() => {
15
15
  puppeteerInstance
16
- .pages()
16
+ .getBrowser()
17
+ .pages(logLevel, indent)
17
18
  .then((pages) => {
18
- var _a;
19
19
  if (pages.length === 0) {
20
20
  return;
21
21
  }
22
22
  const currentPage = pages[i % pages.length];
23
23
  i++;
24
- if (!((_a = currentPage === null || currentPage === void 0 ? void 0 : currentPage.isClosed) === null || _a === void 0 ? void 0 : _a.call(currentPage)) &&
24
+ if (!(currentPage === null || currentPage === void 0 ? void 0 : currentPage.closed) &&
25
25
  !stopped &&
26
26
  (currentPage === null || currentPage === void 0 ? void 0 : currentPage.url()) !== 'about:blank') {
27
27
  return currentPage.bringToFront();
28
28
  }
29
29
  })
30
- .then(() => {
30
+ .catch((err) => console.log(err))
31
+ .finally(() => {
31
32
  set();
32
- })
33
- .catch((err) => console.log(err));
33
+ });
34
34
  }, 200);
35
35
  };
36
36
  set();
File without changes
File without changes
@@ -1 +1 @@
1
- export declare const deleteDirectory: (directory: string) => Promise<void>;
1
+ export declare const deleteDirectory: (directory: string) => void;
@@ -1,32 +1,58 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
4
24
  };
5
25
  Object.defineProperty(exports, "__esModule", { value: true });
6
26
  exports.deleteDirectory = void 0;
7
- const execa_1 = __importDefault(require("execa"));
8
- const fs_1 = __importDefault(require("fs"));
27
+ const node_fs_1 = __importStar(require("node:fs"));
9
28
  const is_serve_url_1 = require("./is-serve-url");
10
- const deleteDirectory = async (directory) => {
11
- var _a;
29
+ const deleteDirectory = (directory) => {
12
30
  if ((0, is_serve_url_1.isServeUrl)(directory)) {
13
31
  return;
14
32
  }
15
- if (process.platform === 'win32') {
16
- // We use del before to remove all files inside the directories otherwise
17
- // rmdir will throw an error.
18
- await (0, execa_1.default)('cmd', ['/c', 'del', '/f', '/s', '/q', directory]);
33
+ if (!(0, node_fs_1.existsSync)(directory)) {
34
+ return;
35
+ }
36
+ // Working around a bug with NodeJS 16 on Windows:
37
+ // If a subdirectory is already deleted, it will fail with EPERM
38
+ // even with force: true and recursive and maxRetries set higher.
39
+ // This is even with the fixWinEPERMSync function being called by Node.JS.
40
+ // This is a workaround for this issue.
41
+ let retries = 2;
42
+ while (retries >= 0) {
19
43
  try {
20
- await (0, execa_1.default)('cmd', ['/c', 'rmdir', '/s', '/q', directory]);
44
+ node_fs_1.default.rmSync(directory, {
45
+ maxRetries: 2,
46
+ recursive: true,
47
+ force: true,
48
+ retryDelay: 100,
49
+ });
21
50
  }
22
51
  catch (err) {
23
- // Is not a directory
52
+ retries--;
53
+ continue;
24
54
  }
25
- }
26
- else {
27
- await ((_a = fs_1.default.promises.rm) !== null && _a !== void 0 ? _a : fs_1.default.promises.rmdir)(directory, {
28
- recursive: true,
29
- });
55
+ break;
30
56
  }
31
57
  };
32
58
  exports.deleteDirectory = deleteDirectory;
@@ -0,0 +1,3 @@
1
+ import type { Codec } from './codec';
2
+ import type { PixelFormat } from './pixel-format';
3
+ export declare const warnAboutM2Bug: (codec: Codec | null, pixelFormat: PixelFormat | null) => void;
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.warnAboutM2Bug = void 0;
4
+ const node_os_1 = require("node:os");
5
+ const warnAboutM2Bug = (codec, pixelFormat) => {
6
+ const isM2 = (0, node_os_1.cpus)().find((c) => c.model.includes('Apple M2'));
7
+ if (codec === 'prores' && pixelFormat === 'yuv422p10le' && isM2) {
8
+ console.warn();
9
+ console.warn('⚠️ Known issue: Apple M2 CPUs currently suffer from a bug where transparent ProRes videos have flickering. https://github.com/remotion-dev/remotion/issues/1929');
10
+ }
11
+ };
12
+ exports.warnAboutM2Bug = warnAboutM2Bug;
File without changes
File without changes
File without changes
@@ -4,12 +4,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.ensureOutputDirectory = void 0;
7
- const fs_1 = __importDefault(require("fs"));
8
- const path_1 = __importDefault(require("path"));
7
+ const node_fs_1 = __importDefault(require("node:fs"));
8
+ const node_path_1 = __importDefault(require("node:path"));
9
9
  const ensureOutputDirectory = (outputLocation) => {
10
- const dirName = path_1.default.dirname(outputLocation);
11
- if (!fs_1.default.existsSync(dirName)) {
12
- fs_1.default.mkdirSync(dirName, {
10
+ const dirName = node_path_1.default.dirname(outputLocation);
11
+ if (!node_fs_1.default.existsSync(dirName)) {
12
+ node_fs_1.default.mkdirSync(dirName, {
13
13
  recursive: true,
14
14
  });
15
15
  }
@@ -16,6 +16,9 @@ exports.ErrorWithStackFrame = ErrorWithStackFrame;
16
16
  const cleanUpErrorMessage = (exception) => {
17
17
  var _a, _b, _c, _d;
18
18
  let errorMessage = (_a = exception.exceptionDetails.exception) === null || _a === void 0 ? void 0 : _a.description;
19
+ if (!errorMessage) {
20
+ return null;
21
+ }
19
22
  const errorType = (_b = exception.exceptionDetails.exception) === null || _b === void 0 ? void 0 : _b.className;
20
23
  const prefix = `${errorType}: `;
21
24
  if (errorMessage.startsWith(prefix)) {
@@ -46,6 +49,13 @@ const handleJavascriptException = ({ page, onError, frame, }) => {
46
49
  var _a, _b, _c;
47
50
  const rawErrorMessage = (_a = exception.exceptionDetails.exception) === null || _a === void 0 ? void 0 : _a.description;
48
51
  const cleanErrorMessage = cleanUpErrorMessage(exception);
52
+ if (!cleanErrorMessage) {
53
+ console.error(exception);
54
+ const err = new Error(rawErrorMessage);
55
+ err.stack = rawErrorMessage;
56
+ onError(err);
57
+ return;
58
+ }
49
59
  if (!exception.exceptionDetails.stackTrace) {
50
60
  const err = new Error(removeDelayRenderStack(cleanErrorMessage));
51
61
  err.stack = rawErrorMessage;
File without changes
@@ -2,13 +2,16 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.symbolicateError = void 0;
4
4
  const symbolicate_stacktrace_1 = require("../symbolicate-stacktrace");
5
+ const truthy_1 = require("../truthy");
5
6
  const handle_javascript_exception_1 = require("./handle-javascript-exception");
6
7
  const symbolicateError = async (symbolicateableError) => {
7
8
  const { delayRenderCall, stackFrame } = symbolicateableError;
8
9
  const [mainErrorFrames, delayRenderFrames] = await Promise.all([
9
- stackFrame ? (0, symbolicate_stacktrace_1.symbolicateStackTrace)(stackFrame) : null,
10
- delayRenderCall ? (0, symbolicate_stacktrace_1.symbolicateStackTrace)(delayRenderCall) : null,
11
- ]);
10
+ stackFrame ? (0, symbolicate_stacktrace_1.symbolicateStackTraceFromRemoteFrames)(stackFrame) : null,
11
+ delayRenderCall
12
+ ? (0, symbolicate_stacktrace_1.symbolicateStackTraceFromRemoteFrames)(delayRenderCall)
13
+ : null,
14
+ ].filter(truthy_1.truthy));
12
15
  const symbolicatedErr = new handle_javascript_exception_1.ErrorWithStackFrame({
13
16
  message: symbolicateableError.message,
14
17
  symbolicatedStackFrames: mainErrorFrames,
File without changes
File without changes
@@ -1,5 +1,10 @@
1
1
  import type { DownloadMap } from './assets/download-map';
2
- export declare const makeFfmpegFilterFile: (complexFilter: string, downloadMap: DownloadMap) => Promise<{
2
+ import type { FilterWithoutPaddingApplied } from './stringify-ffmpeg-filter';
3
+ export declare const makeFfmpegFilterFile: (complexFilter: FilterWithoutPaddingApplied, downloadMap: DownloadMap) => Promise<{
4
+ file: string;
5
+ cleanup: () => void;
6
+ }>;
7
+ export declare const makeFfmpegFilterFileStr: (complexFilter: string, downloadMap: DownloadMap) => Promise<{
3
8
  file: string;
4
9
  cleanup: () => void;
5
10
  }>;
@@ -1,22 +1,54 @@
1
1
  "use strict";
2
2
  // While an FFMPEG filter can be passed directly, if it's too long
3
3
  // we run into Windows command length limits.
4
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
5
+ if (k2 === undefined) k2 = k;
6
+ var desc = Object.getOwnPropertyDescriptor(m, k);
7
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
8
+ desc = { enumerable: true, get: function() { return m[k]; } };
9
+ }
10
+ Object.defineProperty(o, k2, desc);
11
+ }) : (function(o, m, k, k2) {
12
+ if (k2 === undefined) k2 = k;
13
+ o[k2] = m[k];
14
+ }));
15
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
16
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
17
+ }) : function(o, v) {
18
+ o["default"] = v;
19
+ });
20
+ var __importStar = (this && this.__importStar) || function (mod) {
21
+ if (mod && mod.__esModule) return mod;
22
+ var result = {};
23
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
24
+ __setModuleDefault(result, mod);
25
+ return result;
26
+ };
4
27
  var __importDefault = (this && this.__importDefault) || function (mod) {
5
28
  return (mod && mod.__esModule) ? mod : { "default": mod };
6
29
  };
7
30
  Object.defineProperty(exports, "__esModule", { value: true });
8
- exports.makeFfmpegFilterFile = void 0;
9
- const fs_1 = __importDefault(require("fs"));
10
- const path_1 = __importDefault(require("path"));
11
- const makeFfmpegFilterFile = async (complexFilter, downloadMap) => {
31
+ exports.makeFfmpegFilterFileStr = exports.makeFfmpegFilterFile = void 0;
32
+ const node_fs_1 = __importStar(require("node:fs"));
33
+ const node_path_1 = __importDefault(require("node:path"));
34
+ const makeFfmpegFilterFile = (complexFilter, downloadMap) => {
35
+ return (0, exports.makeFfmpegFilterFileStr)(complexFilter.filter, downloadMap);
36
+ };
37
+ exports.makeFfmpegFilterFile = makeFfmpegFilterFile;
38
+ const makeFfmpegFilterFileStr = async (complexFilter, downloadMap) => {
12
39
  const random = Math.random().toString().replace('.', '');
13
- const filterFile = path_1.default.join(downloadMap.complexFilter, 'complex-filter-' + random + '.txt');
14
- await fs_1.default.promises.writeFile(filterFile, complexFilter);
40
+ const filterFile = node_path_1.default.join(downloadMap.complexFilter, 'complex-filter-' + random + '.txt');
41
+ // Race condition: Sometimes the download map is deleted before the file is written.
42
+ // Can remove this once the original bug has been fixed
43
+ if (!(0, node_fs_1.existsSync)(downloadMap.complexFilter)) {
44
+ node_fs_1.default.mkdirSync(downloadMap.complexFilter, { recursive: true });
45
+ }
46
+ await node_fs_1.default.promises.writeFile(filterFile, complexFilter);
15
47
  return {
16
48
  file: filterFile,
17
49
  cleanup: () => {
18
- fs_1.default.unlinkSync(filterFile);
50
+ node_fs_1.default.unlinkSync(filterFile);
19
51
  },
20
52
  };
21
53
  };
22
- exports.makeFfmpegFilterFile = makeFfmpegFilterFile;
54
+ exports.makeFfmpegFilterFileStr = makeFfmpegFilterFileStr;
@@ -1,4 +1,4 @@
1
- export declare type FfmpegOverrideFn = (info: {
1
+ export type FfmpegOverrideFn = (info: {
2
2
  type: 'pre-stitcher' | 'stitcher';
3
3
  args: string[];
4
4
  }) => string[];
File without changes
@@ -0,0 +1,14 @@
1
+ import type { supportedAudioCodecs } from './audio-codec';
2
+ import type { Codec } from './codec';
3
+ export type FileExtension = 'aac' | '3gp' | 'm4a' | 'm4b' | 'mpg' | 'mpeg' | 'mkv' | 'mp4' | 'gif' | 'hevc' | 'mp3' | 'mov' | 'mxf' | 'wav' | 'webm';
4
+ export declare const defaultFileExtensionMap: {
5
+ [key in Codec]: {
6
+ default: FileExtension;
7
+ forAudioCodec: {
8
+ [k in typeof supportedAudioCodecs[key][number]]: {
9
+ possible: FileExtension[];
10
+ default: FileExtension;
11
+ };
12
+ };
13
+ };
14
+ };
@@ -0,0 +1,76 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.defaultFileExtensionMap = void 0;
4
+ exports.defaultFileExtensionMap = {
5
+ 'h264-mkv': {
6
+ default: 'mkv',
7
+ forAudioCodec: {
8
+ 'pcm-16': { possible: ['mkv'], default: 'mkv' },
9
+ },
10
+ },
11
+ aac: {
12
+ default: 'aac',
13
+ forAudioCodec: {
14
+ aac: {
15
+ possible: ['aac', '3gp', 'm4a', 'm4b', 'mpg', 'mpeg'],
16
+ default: 'aac',
17
+ },
18
+ 'pcm-16': {
19
+ possible: ['wav'],
20
+ default: 'wav',
21
+ },
22
+ },
23
+ },
24
+ gif: {
25
+ default: 'gif',
26
+ forAudioCodec: {},
27
+ },
28
+ h264: {
29
+ default: 'mp4',
30
+ forAudioCodec: {
31
+ 'pcm-16': { possible: ['mkv', 'mov'], default: 'mkv' },
32
+ aac: { possible: ['mp4', 'mkv', 'mov'], default: 'mp4' },
33
+ },
34
+ },
35
+ h265: {
36
+ default: 'mp4',
37
+ forAudioCodec: {
38
+ aac: { possible: ['mp4', 'mkv', 'hevc'], default: 'mp4' },
39
+ 'pcm-16': { possible: ['mkv'], default: 'mkv' },
40
+ },
41
+ },
42
+ mp3: {
43
+ default: 'mp3',
44
+ forAudioCodec: {
45
+ mp3: { possible: ['mp3'], default: 'mp3' },
46
+ 'pcm-16': { possible: ['wav'], default: 'wav' },
47
+ },
48
+ },
49
+ prores: {
50
+ default: 'mov',
51
+ forAudioCodec: {
52
+ aac: { possible: ['mov', 'mkv', 'mxf'], default: 'mov' },
53
+ 'pcm-16': { possible: ['mov', 'mkv', 'mxf'], default: 'mov' },
54
+ },
55
+ },
56
+ vp8: {
57
+ default: 'webm',
58
+ forAudioCodec: {
59
+ 'pcm-16': { possible: ['mkv'], default: 'mkv' },
60
+ opus: { possible: ['webm'], default: 'webm' },
61
+ },
62
+ },
63
+ vp9: {
64
+ default: 'webm',
65
+ forAudioCodec: {
66
+ 'pcm-16': { possible: ['mkv'], default: 'mkv' },
67
+ opus: { possible: ['webm'], default: 'webm' },
68
+ },
69
+ },
70
+ wav: {
71
+ default: 'wav',
72
+ forAudioCodec: {
73
+ 'pcm-16': { possible: ['wav'], default: 'wav' },
74
+ },
75
+ },
76
+ };
@@ -0,0 +1,2 @@
1
+ export declare const findClosestPackageJson: () => string | null;
2
+ export declare const findRemotionRoot: () => string;
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.findRemotionRoot = exports.findClosestPackageJson = void 0;
7
+ const node_fs_1 = __importDefault(require("node:fs"));
8
+ const node_path_1 = __importDefault(require("node:path"));
9
+ const recursionLimit = 5;
10
+ const findClosestPackageJson = () => {
11
+ let currentDir = process.cwd();
12
+ let possiblePackageJson = '';
13
+ for (let i = 0; i < recursionLimit; i++) {
14
+ possiblePackageJson = node_path_1.default.join(currentDir, 'package.json');
15
+ const exists = node_fs_1.default.existsSync(possiblePackageJson);
16
+ if (exists) {
17
+ return possiblePackageJson;
18
+ }
19
+ currentDir = node_path_1.default.dirname(currentDir);
20
+ }
21
+ return null;
22
+ };
23
+ exports.findClosestPackageJson = findClosestPackageJson;
24
+ const findRemotionRoot = () => {
25
+ const closestPackageJson = (0, exports.findClosestPackageJson)();
26
+ if (closestPackageJson === null) {
27
+ return process.cwd();
28
+ }
29
+ return node_path_1.default.dirname(closestPackageJson);
30
+ };
31
+ exports.findRemotionRoot = findRemotionRoot;
@@ -0,0 +1,3 @@
1
+ import type { DevtoolsRemoteObject, ObjectPreview } from './browser/devtools-types';
2
+ export declare const formatRemoteObject: (remoteObject: DevtoolsRemoteObject) => string;
3
+ export declare const formatObjectPreview: (preview: ObjectPreview) => string;