@remotion/renderer 4.0.0-imgloading.2 → 4.0.0-lambda.1

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 (357) hide show
  1. package/dist/assets/calculate-asset-positions.d.ts.map +1 -0
  2. package/dist/assets/calculate-asset-positions.js.map +1 -0
  3. package/dist/assets/calculate-atempo.d.ts.map +1 -0
  4. package/dist/assets/calculate-atempo.js.map +1 -0
  5. package/dist/assets/cleanup-assets.d.ts +2 -0
  6. package/dist/assets/cleanup-assets.js +2 -0
  7. package/dist/assets/convert-assets-to-file-urls.d.ts.map +1 -0
  8. package/dist/assets/convert-assets-to-file-urls.js.map +1 -0
  9. package/dist/assets/download-and-map-assets-to-file.d.ts +6 -0
  10. package/dist/assets/download-and-map-assets-to-file.d.ts.map +1 -0
  11. package/dist/assets/download-and-map-assets-to-file.js +46 -19
  12. package/dist/assets/download-and-map-assets-to-file.js.map +1 -0
  13. package/dist/assets/download-file.d.ts.map +1 -0
  14. package/dist/assets/download-file.js.map +1 -0
  15. package/dist/assets/ffmpeg-volume-expression.d.ts +2 -1
  16. package/dist/assets/ffmpeg-volume-expression.d.ts.map +1 -0
  17. package/dist/assets/ffmpeg-volume-expression.js +15 -12
  18. package/dist/assets/ffmpeg-volume-expression.js.map +1 -0
  19. package/dist/assets/flatten-volume-array.d.ts.map +1 -0
  20. package/dist/assets/flatten-volume-array.js.map +1 -0
  21. package/dist/assets/get-audio-channels.d.ts +5 -2
  22. package/dist/assets/get-audio-channels.d.ts.map +1 -0
  23. package/dist/assets/get-audio-channels.js +15 -4
  24. package/dist/assets/get-audio-channels.js.map +1 -0
  25. package/dist/assets/read-file.d.ts.map +1 -0
  26. package/dist/assets/read-file.js.map +1 -0
  27. package/dist/assets/round-volume-to-avoid-stack-overflow.d.ts.map +1 -0
  28. package/dist/assets/round-volume-to-avoid-stack-overflow.js.map +1 -0
  29. package/dist/assets/sanitize-filename.d.ts.map +1 -0
  30. package/dist/assets/sanitize-filename.js.map +1 -0
  31. package/dist/assets/sanitize-filepath.d.ts.map +1 -0
  32. package/dist/assets/sanitize-filepath.js.map +1 -0
  33. package/dist/assets/truncate-utf8-bytes.d.ts.map +1 -0
  34. package/dist/assets/truncate-utf8-bytes.js.map +1 -0
  35. package/dist/assets/types.d.ts.map +1 -0
  36. package/dist/assets/types.js.map +1 -0
  37. package/dist/browser/Accessibility.d.ts +175 -0
  38. package/dist/browser/Accessibility.js +423 -0
  39. package/dist/browser/AriaQueryHandler.d.ts +20 -0
  40. package/dist/browser/AriaQueryHandler.js +108 -0
  41. package/dist/browser/Browser.d.ts +209 -0
  42. package/dist/browser/Browser.js +402 -0
  43. package/dist/browser/BrowserConnector.d.ts +26 -0
  44. package/dist/browser/BrowserConnector.js +49 -0
  45. package/dist/browser/BrowserFetcher.d.ts +89 -0
  46. package/dist/browser/BrowserFetcher.js +512 -0
  47. package/dist/browser/BrowserRunner.d.ts +39 -0
  48. package/dist/browser/BrowserRunner.js +308 -0
  49. package/dist/browser/Connection.d.ts +49 -0
  50. package/dist/browser/Connection.js +262 -0
  51. package/dist/browser/ConnectionTransport.d.ts +21 -0
  52. package/dist/browser/ConnectionTransport.js +17 -0
  53. package/dist/browser/ConsoleMessage.d.ts +55 -0
  54. package/dist/browser/ConsoleMessage.js +75 -0
  55. package/dist/browser/Coverage.d.ts +180 -0
  56. package/dist/browser/Coverage.js +371 -0
  57. package/dist/browser/DOMWorld.d.ts +50 -0
  58. package/dist/browser/DOMWorld.js +280 -0
  59. package/dist/browser/Debug.d.ts +19 -0
  60. package/dist/browser/Debug.js +42 -0
  61. package/dist/browser/DeviceDescriptors.d.ts +40 -0
  62. package/dist/browser/DeviceDescriptors.js +1407 -0
  63. package/dist/browser/EmulationManager.d.ts +7 -0
  64. package/dist/browser/EmulationManager.js +40 -0
  65. package/dist/browser/Errors.d.ts +25 -0
  66. package/dist/browser/Errors.js +35 -0
  67. package/dist/browser/EvalTypes.d.ts +27 -0
  68. package/dist/browser/EvalTypes.js +17 -0
  69. package/dist/browser/EventEmitter.d.ts +70 -0
  70. package/dist/browser/EventEmitter.js +102 -0
  71. package/dist/browser/ExecutionContext.d.ts +35 -0
  72. package/dist/browser/ExecutionContext.js +190 -0
  73. package/dist/browser/FileChooser.d.ts +56 -0
  74. package/dist/browser/FileChooser.js +86 -0
  75. package/dist/browser/FrameManager.d.ts +96 -0
  76. package/dist/browser/FrameManager.js +512 -0
  77. package/dist/browser/HTTPRequest.d.ts +42 -0
  78. package/dist/browser/HTTPRequest.js +82 -0
  79. package/dist/browser/HTTPResponse.d.ts +100 -0
  80. package/dist/browser/HTTPResponse.js +196 -0
  81. package/dist/browser/Input.d.ts +355 -0
  82. package/dist/browser/Input.js +592 -0
  83. package/dist/browser/JSHandle.d.ts +36 -0
  84. package/dist/browser/JSHandle.js +93 -0
  85. package/dist/browser/LaunchOptions.d.ts +117 -0
  86. package/dist/browser/LaunchOptions.js +17 -0
  87. package/dist/browser/Launcher.d.ts +9 -0
  88. package/dist/browser/Launcher.js +602 -0
  89. package/dist/browser/LifecycleWatcher.d.ts +29 -0
  90. package/dist/browser/LifecycleWatcher.js +193 -0
  91. package/dist/browser/NetworkConditions.d.ts +26 -0
  92. package/dist/browser/NetworkConditions.js +33 -0
  93. package/dist/browser/NetworkEventManager.d.ts +35 -0
  94. package/dist/browser/NetworkEventManager.js +128 -0
  95. package/dist/browser/NetworkManager.d.ts +36 -0
  96. package/dist/browser/NetworkManager.js +284 -0
  97. package/dist/browser/NodeWebSocketTransport.d.ts +11 -0
  98. package/dist/browser/NodeWebSocketTransport.js +90 -0
  99. package/dist/browser/PDFOptions.d.ts +165 -0
  100. package/dist/browser/PDFOptions.js +34 -0
  101. package/dist/browser/PipeTransport.d.ts +10 -0
  102. package/dist/browser/PipeTransport.js +86 -0
  103. package/dist/browser/Product.d.ts +16 -0
  104. package/dist/browser/Product.js +17 -0
  105. package/dist/browser/Puppeteer.d.ts +35 -0
  106. package/dist/browser/Puppeteer.js +17 -0
  107. package/dist/browser/PuppeteerNode.d.ts +92 -0
  108. package/dist/browser/PuppeteerNode.js +143 -0
  109. package/dist/browser/PuppeteerViewport.d.ts +5 -0
  110. package/dist/browser/PuppeteerViewport.js +2 -0
  111. package/dist/browser/QueryHandler.d.ts +64 -0
  112. package/dist/browser/QueryHandler.js +183 -0
  113. package/dist/browser/ScreenshotOptions.d.ts +14 -0
  114. package/dist/browser/ScreenshotOptions.js +2 -0
  115. package/dist/browser/SecurityDetails.d.ts +55 -0
  116. package/dist/browser/SecurityDetails.js +95 -0
  117. package/dist/browser/Target.d.ts +61 -0
  118. package/dist/browser/Target.js +146 -0
  119. package/dist/browser/TaskQueue.d.ts +20 -0
  120. package/dist/browser/TaskQueue.js +47 -0
  121. package/dist/browser/TimeoutSettings.d.ts +23 -0
  122. package/dist/browser/TimeoutSettings.js +62 -0
  123. package/dist/browser/Tracing.d.ts +45 -0
  124. package/dist/browser/Tracing.js +136 -0
  125. package/dist/browser/USKeyboardLayout.d.ts +39 -0
  126. package/dist/browser/USKeyboardLayout.js +406 -0
  127. package/dist/browser/WebWorker.d.ts +96 -0
  128. package/dist/browser/WebWorker.js +122 -0
  129. package/dist/browser/assert.d.ts +21 -0
  130. package/dist/browser/assert.js +29 -0
  131. package/dist/browser/compat.d.ts +2 -0
  132. package/dist/browser/compat.js +17 -0
  133. package/dist/browser/create-browser-fetcher.d.ts +17 -0
  134. package/dist/browser/create-browser-fetcher.js +140 -0
  135. package/dist/browser/dialog.d.ts +70 -0
  136. package/dist/browser/dialog.js +114 -0
  137. package/dist/browser/environment.d.ts +16 -0
  138. package/dist/browser/environment.js +19 -0
  139. package/dist/browser/fetch.d.ts +16 -0
  140. package/dist/browser/fetch.js +46 -0
  141. package/dist/browser/find-up.d.ts +4 -0
  142. package/dist/browser/find-up.js +85 -0
  143. package/dist/browser/get-download-destination.d.ts +1 -0
  144. package/dist/browser/get-download-destination.js +38 -0
  145. package/dist/browser/mitt/index.d.ts +22 -0
  146. package/dist/browser/mitt/index.js +49 -0
  147. package/dist/browser/node.d.ts +2 -0
  148. package/dist/browser/node.js +9 -0
  149. package/dist/browser/page.d.ts +78 -0
  150. package/dist/browser/page.js +277 -0
  151. package/dist/browser/pkg-dir.d.ts +3 -0
  152. package/dist/browser/pkg-dir.js +13 -0
  153. package/dist/browser/revisions.d.ts +21 -0
  154. package/dist/browser/revisions.js +22 -0
  155. package/dist/browser/util.d.ts +46 -0
  156. package/dist/browser/util.js +161 -0
  157. package/dist/browser-log.d.ts.map +1 -0
  158. package/dist/browser-log.js.map +1 -0
  159. package/dist/calculate-ffmpeg-filters.d.ts.map +1 -0
  160. package/dist/calculate-ffmpeg-filters.js +2 -2
  161. package/dist/calculate-ffmpeg-filters.js.map +1 -0
  162. package/dist/can-use-parallel-encoding.d.ts.map +1 -0
  163. package/dist/can-use-parallel-encoding.js.map +1 -0
  164. package/dist/chunk.d.ts.map +1 -0
  165. package/dist/chunk.js.map +1 -0
  166. package/dist/combine-videos.d.ts +2 -1
  167. package/dist/combine-videos.d.ts.map +1 -0
  168. package/dist/combine-videos.js +8 -1
  169. package/dist/combine-videos.js.map +1 -0
  170. package/dist/convert-to-pcm.d.ts.map +1 -0
  171. package/dist/convert-to-pcm.js.map +1 -0
  172. package/dist/create-ffmpeg-complex-filter.d.ts.map +1 -0
  173. package/dist/create-ffmpeg-complex-filter.js.map +1 -0
  174. package/dist/create-ffmpeg-merge-filter.d.ts.map +1 -0
  175. package/dist/create-ffmpeg-merge-filter.js.map +1 -0
  176. package/dist/create-silent-audio.d.ts.map +1 -0
  177. package/dist/create-silent-audio.js.map +1 -0
  178. package/dist/cycle-browser-tabs.d.ts +2 -1
  179. package/dist/cycle-browser-tabs.d.ts.map +1 -0
  180. package/dist/cycle-browser-tabs.js +9 -2
  181. package/dist/cycle-browser-tabs.js.map +1 -0
  182. package/dist/delay-render-embedded-stack.d.ts.map +1 -0
  183. package/dist/delay-render-embedded-stack.js.map +1 -0
  184. package/dist/delete-directory.d.ts.map +1 -0
  185. package/dist/delete-directory.js.map +1 -0
  186. package/dist/ensure-frames-in-order.d.ts.map +1 -0
  187. package/dist/ensure-frames-in-order.js.map +1 -0
  188. package/dist/ensure-output-directory.d.ts.map +1 -0
  189. package/dist/ensure-output-directory.js.map +1 -0
  190. package/dist/ensure-presentation-timestamp.d.ts +1 -0
  191. package/dist/ensure-presentation-timestamp.js +57 -0
  192. package/dist/error-handling/handle-javascript-exception.d.ts.map +1 -0
  193. package/dist/error-handling/handle-javascript-exception.js.map +1 -0
  194. package/dist/error-handling/symbolicate-error.d.ts.map +1 -0
  195. package/dist/error-handling/symbolicate-error.js.map +1 -0
  196. package/dist/error-handling/symbolicateable-error.d.ts.map +1 -0
  197. package/dist/error-handling/symbolicateable-error.js.map +1 -0
  198. package/dist/extract-frame-from-video.d.ts +11 -0
  199. package/dist/extract-frame-from-video.js +197 -0
  200. package/dist/ffmpeg-filter-file.d.ts.map +1 -0
  201. package/dist/ffmpeg-filter-file.js.map +1 -0
  202. package/dist/ffmpeg-flags.d.ts.map +1 -0
  203. package/dist/ffmpeg-flags.js.map +1 -0
  204. package/dist/frame-to-ffmpeg-timestamp.d.ts +1 -0
  205. package/dist/frame-to-ffmpeg-timestamp.js +8 -0
  206. package/dist/get-audio-codec-name.d.ts.map +1 -0
  207. package/dist/get-audio-codec-name.js.map +1 -0
  208. package/dist/get-browser-instance.d.ts.map +1 -0
  209. package/dist/get-browser-instance.js.map +1 -0
  210. package/dist/get-codec-name.d.ts.map +1 -0
  211. package/dist/get-codec-name.js.map +1 -0
  212. package/dist/get-compositions.d.ts +5 -2
  213. package/dist/get-compositions.d.ts.map +1 -0
  214. package/dist/get-compositions.js +23 -5
  215. package/dist/get-compositions.js.map +1 -0
  216. package/dist/get-concurrency.d.ts.map +1 -0
  217. package/dist/get-concurrency.js.map +1 -0
  218. package/dist/get-duration-from-frame-range.d.ts.map +1 -0
  219. package/dist/get-duration-from-frame-range.js.map +1 -0
  220. package/dist/get-duration-of-asset.d.ts +7 -0
  221. package/dist/get-duration-of-asset.js +36 -0
  222. package/dist/get-extension-from-codec.d.ts.map +1 -0
  223. package/dist/get-extension-from-codec.js.map +1 -0
  224. package/dist/get-frame-to-render.d.ts.map +1 -0
  225. package/dist/get-frame-to-render.js.map +1 -0
  226. package/dist/get-local-browser-executable.d.ts.map +1 -0
  227. package/dist/get-local-browser-executable.js.map +1 -0
  228. package/dist/get-port.d.ts.map +1 -0
  229. package/dist/get-port.js +26 -24
  230. package/dist/get-port.js.map +1 -0
  231. package/dist/get-prores-profile-name.d.ts.map +1 -0
  232. package/dist/get-prores-profile-name.js.map +1 -0
  233. package/dist/image-format.d.ts.map +1 -0
  234. package/dist/image-format.js.map +1 -0
  235. package/dist/index.d.ts +34 -9
  236. package/dist/index.d.ts.map +1 -0
  237. package/dist/index.js +14 -5
  238. package/dist/index.js.map +1 -0
  239. package/dist/is-beyond-last-frame.d.ts +2 -0
  240. package/dist/is-beyond-last-frame.js +12 -0
  241. package/dist/is-serve-url.d.ts.map +1 -0
  242. package/dist/is-serve-url.js.map +1 -0
  243. package/dist/last-frame-from-video-cache.d.ts +10 -0
  244. package/dist/last-frame-from-video-cache.js +50 -0
  245. package/dist/legacy-webpack-config.d.ts.map +1 -0
  246. package/dist/legacy-webpack-config.js.map +1 -0
  247. package/dist/make-assets-download-dir.d.ts.map +1 -0
  248. package/dist/make-assets-download-dir.js +6 -1
  249. package/dist/make-assets-download-dir.js.map +1 -0
  250. package/dist/make-cancel-signal.d.ts +7 -0
  251. package/dist/make-cancel-signal.js +25 -0
  252. package/dist/merge-audio-track.d.ts.map +1 -0
  253. package/dist/merge-audio-track.js +2 -2
  254. package/dist/merge-audio-track.js.map +1 -0
  255. package/dist/normalize-serve-url.d.ts.map +1 -0
  256. package/dist/normalize-serve-url.js.map +1 -0
  257. package/dist/offthread-video-server.d.ts +14 -0
  258. package/dist/offthread-video-server.js +67 -0
  259. package/dist/open-browser.d.ts +5 -5
  260. package/dist/open-browser.d.ts.map +1 -0
  261. package/dist/open-browser.js +3 -3
  262. package/dist/open-browser.js.map +1 -0
  263. package/dist/p-limit.d.ts.map +1 -0
  264. package/dist/p-limit.js.map +1 -0
  265. package/dist/parse-browser-error-stack.d.ts.map +1 -0
  266. package/dist/parse-browser-error-stack.js.map +1 -0
  267. package/dist/parse-ffmpeg-progress.d.ts.map +1 -0
  268. package/dist/parse-ffmpeg-progress.js.map +1 -0
  269. package/dist/pool.d.ts.map +1 -0
  270. package/dist/pool.js.map +1 -0
  271. package/dist/prepare-server.d.ts +13 -2
  272. package/dist/prepare-server.d.ts.map +1 -0
  273. package/dist/prepare-server.js +35 -5
  274. package/dist/prepare-server.js.map +1 -0
  275. package/dist/preprocess-audio-track.d.ts +1 -0
  276. package/dist/preprocess-audio-track.d.ts.map +1 -0
  277. package/dist/preprocess-audio-track.js +2 -2
  278. package/dist/preprocess-audio-track.js.map +1 -0
  279. package/dist/prespawn-ffmpeg.d.ts +2 -0
  280. package/dist/prespawn-ffmpeg.d.ts.map +1 -0
  281. package/dist/prespawn-ffmpeg.js +10 -9
  282. package/dist/prespawn-ffmpeg.js.map +1 -0
  283. package/dist/provide-screenshot.d.ts +0 -1
  284. package/dist/provide-screenshot.d.ts.map +1 -0
  285. package/dist/provide-screenshot.js +1 -1
  286. package/dist/provide-screenshot.js.map +1 -0
  287. package/dist/puppeteer-evaluate.d.ts.map +1 -0
  288. package/dist/puppeteer-evaluate.js.map +1 -0
  289. package/dist/puppeteer-screenshot.d.ts +0 -1
  290. package/dist/puppeteer-screenshot.d.ts.map +1 -0
  291. package/dist/puppeteer-screenshot.js +5 -1
  292. package/dist/puppeteer-screenshot.js.map +1 -0
  293. package/dist/render-frames.d.ts +6 -1
  294. package/dist/render-frames.d.ts.map +1 -0
  295. package/dist/render-frames.js +96 -37
  296. package/dist/render-frames.js.map +1 -0
  297. package/dist/render-media.d.ts +12 -2
  298. package/dist/render-media.d.ts.map +1 -0
  299. package/dist/render-media.js +127 -54
  300. package/dist/render-media.js.map +1 -0
  301. package/dist/render-still.d.ts +14 -4
  302. package/dist/render-still.d.ts.map +1 -0
  303. package/dist/render-still.js +58 -19
  304. package/dist/render-still.js.map +1 -0
  305. package/dist/resolve-asset-src.d.ts.map +1 -0
  306. package/dist/resolve-asset-src.js.map +1 -0
  307. package/dist/sample-rate.d.ts.map +1 -0
  308. package/dist/sample-rate.js.map +1 -0
  309. package/dist/screenshot-dom-element.d.ts +0 -1
  310. package/dist/screenshot-dom-element.d.ts.map +1 -0
  311. package/dist/screenshot-dom-element.js.map +1 -0
  312. package/dist/screenshot-task.d.ts +0 -1
  313. package/dist/screenshot-task.d.ts.map +1 -0
  314. package/dist/screenshot-task.js.map +1 -0
  315. package/dist/seek-to-frame.d.ts.map +1 -0
  316. package/dist/seek-to-frame.js.map +1 -0
  317. package/dist/serve-handler/glob-slash.d.ts +1 -0
  318. package/dist/serve-handler/glob-slash.js +12 -0
  319. package/dist/serve-handler/index.d.ts +4 -0
  320. package/dist/serve-handler/index.js +205 -0
  321. package/dist/serve-handler/is-path-inside.d.ts +1 -0
  322. package/dist/serve-handler/is-path-inside.js +27 -0
  323. package/dist/serve-handler/range-parser.d.ts +13 -0
  324. package/dist/serve-handler/range-parser.js +57 -0
  325. package/dist/serve-static.d.ts +10 -3
  326. package/dist/serve-static.d.ts.map +1 -0
  327. package/dist/serve-static.js +22 -4
  328. package/dist/serve-static.js.map +1 -0
  329. package/dist/set-props-and-env.d.ts +3 -1
  330. package/dist/set-props-and-env.d.ts.map +1 -0
  331. package/dist/set-props-and-env.js +25 -3
  332. package/dist/set-props-and-env.js.map +1 -0
  333. package/dist/stitch-frames-to-video.d.ts +4 -1
  334. package/dist/stitch-frames-to-video.d.ts.map +1 -0
  335. package/dist/stitch-frames-to-video.js +36 -15
  336. package/dist/stitch-frames-to-video.js.map +1 -0
  337. package/dist/stringify-ffmpeg-filter.d.ts.map +1 -0
  338. package/dist/stringify-ffmpeg-filter.js +3 -0
  339. package/dist/stringify-ffmpeg-filter.js.map +1 -0
  340. package/dist/symbolicate-stacktrace.d.ts.map +1 -0
  341. package/dist/symbolicate-stacktrace.js.map +1 -0
  342. package/dist/tmp-dir.d.ts.map +1 -0
  343. package/dist/tmp-dir.js +5 -1
  344. package/dist/tmp-dir.js.map +1 -0
  345. package/dist/types.d.ts.map +1 -0
  346. package/dist/types.js.map +1 -0
  347. package/dist/validate-even-dimensions-with-codec.d.ts.map +1 -0
  348. package/dist/validate-even-dimensions-with-codec.js.map +1 -0
  349. package/dist/validate-ffmpeg.d.ts.map +1 -0
  350. package/dist/validate-ffmpeg.js.map +1 -0
  351. package/dist/validate-fps-for-gif.d.ts +2 -0
  352. package/dist/validate-fps-for-gif.js +9 -0
  353. package/dist/validate-puppeteer-timeout.d.ts.map +1 -0
  354. package/dist/validate-puppeteer-timeout.js.map +1 -0
  355. package/dist/validate-scale.d.ts.map +1 -0
  356. package/dist/validate-scale.js.map +1 -0
  357. package/package.json +6 -7
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,oBAAoB,EAAC,MAAM,wCAAwC,CAAC;AAwB5E,YAAY,EAAC,qBAAqB,EAAC,MAAM,0CAA0C,CAAC;AACpF,OAAO,EAAC,UAAU,EAAC,MAAM,eAAe,CAAC;AACzC,OAAO,EAAC,aAAa,EAAC,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAC,mBAAmB,EAAC,MAAM,8CAA8C,CAAC;AACjF,OAAO,EAAC,aAAa,EAAC,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAC,eAAe,EAAC,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAC,WAAW,EAAC,MAAM,gBAAgB,CAAC;AAC3C,YAAY,EAAC,eAAe,EAAC,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAC,YAAY,EAAC,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EACN,WAAW,EACX,qBAAqB,EACrB,kBAAkB,EAClB,cAAc,GACd,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAC,WAAW,EAAC,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAC,eAAe,EAAE,mBAAmB,EAAC,MAAM,0BAA0B,CAAC;AAC9E,OAAO,EAAC,sBAAsB,EAAC,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAC,WAAW,EAAE,kBAAkB,EAAC,MAAM,SAAS,CAAC;AAExD,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4B3B,CAAC"}
package/dist/index.js CHANGED
@@ -1,6 +1,11 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.RenderInternals = exports.stitchFramesToVideo = exports.renderStill = exports.renderMedia = exports.renderFrames = exports.openBrowser = exports.getCompositions = exports.ErrorWithStackFrame = exports.combineVideos = void 0;
6
+ exports.RenderInternals = exports.stitchFramesToVideo = exports.renderStill = exports.renderMedia = exports.renderFrames = exports.openBrowser = exports.makeCancelSignal = exports.getCompositions = exports.ErrorWithStackFrame = exports.combineVideos = void 0;
7
+ const execa_1 = __importDefault(require("execa"));
8
+ const mime_types_1 = __importDefault(require("mime-types"));
4
9
  const download_file_1 = require("./assets/download-file");
5
10
  const delete_directory_1 = require("./delete-directory");
6
11
  const ensure_output_directory_1 = require("./ensure-output-directory");
@@ -13,12 +18,12 @@ const get_extension_from_codec_1 = require("./get-extension-from-codec");
13
18
  const get_extension_of_filename_1 = require("./get-extension-of-filename");
14
19
  const get_frame_to_render_1 = require("./get-frame-to-render");
15
20
  const get_local_browser_executable_1 = require("./get-local-browser-executable");
21
+ const get_port_1 = require("./get-port");
16
22
  const is_serve_url_1 = require("./is-serve-url");
17
- const make_assets_download_dir_1 = require("./make-assets-download-dir");
18
23
  const normalize_serve_url_1 = require("./normalize-serve-url");
19
24
  const open_browser_1 = require("./open-browser");
20
25
  const parse_browser_error_stack_1 = require("./parse-browser-error-stack");
21
- const prepare_server_1 = require("./prepare-server");
26
+ const is_path_inside_1 = require("./serve-handler/is-path-inside");
22
27
  const serve_static_1 = require("./serve-static");
23
28
  const stitch_frames_to_video_1 = require("./stitch-frames-to-video");
24
29
  const tmp_dir_1 = require("./tmp-dir");
@@ -32,6 +37,8 @@ var handle_javascript_exception_1 = require("./error-handling/handle-javascript-
32
37
  Object.defineProperty(exports, "ErrorWithStackFrame", { enumerable: true, get: function () { return handle_javascript_exception_1.ErrorWithStackFrame; } });
33
38
  var get_compositions_1 = require("./get-compositions");
34
39
  Object.defineProperty(exports, "getCompositions", { enumerable: true, get: function () { return get_compositions_1.getCompositions; } });
40
+ var make_cancel_signal_1 = require("./make-cancel-signal");
41
+ Object.defineProperty(exports, "makeCancelSignal", { enumerable: true, get: function () { return make_cancel_signal_1.makeCancelSignal; } });
35
42
  var open_browser_2 = require("./open-browser");
36
43
  Object.defineProperty(exports, "openBrowser", { enumerable: true, get: function () { return open_browser_2.openBrowser; } });
37
44
  var render_frames_1 = require("./render-frames");
@@ -55,10 +62,8 @@ exports.RenderInternals = {
55
62
  normalizeServeUrl: normalize_serve_url_1.normalizeServeUrl,
56
63
  spawnFfmpeg: stitch_frames_to_video_1.spawnFfmpeg,
57
64
  getFileExtensionFromCodec: get_extension_from_codec_1.getFileExtensionFromCodec,
58
- makeAssetsDownloadTmpDir: make_assets_download_dir_1.makeAssetsDownloadTmpDir,
59
65
  tmpDir: tmp_dir_1.tmpDir,
60
66
  deleteDirectory: delete_directory_1.deleteDirectory,
61
- prepareServer: prepare_server_1.prepareServer,
62
67
  isServeUrl: is_serve_url_1.isServeUrl,
63
68
  ensureOutputDirectory: ensure_output_directory_1.ensureOutputDirectory,
64
69
  getRealFrameRange: get_frame_to_render_1.getRealFrameRange,
@@ -71,4 +76,8 @@ exports.RenderInternals = {
71
76
  SymbolicateableError: symbolicateable_error_1.SymbolicateableError,
72
77
  getDurationFromFrameRange: get_duration_from_frame_range_1.getDurationFromFrameRange,
73
78
  getExtensionOfFilename: get_extension_of_filename_1.getExtensionOfFilename,
79
+ getDesiredPort: get_port_1.getDesiredPort,
80
+ mime: mime_types_1.default,
81
+ isPathInside: is_path_inside_1.isPathInside,
82
+ execa: execa_1.default,
74
83
  };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,0DAAoD;AACpD,yDAAmD;AACnD,uEAAgE;AAChE,0EAAoE;AACpE,kFAA4E;AAC5E,iDAIwB;AACxB,uDAAuD;AACvD,mFAA0E;AAC1E,yEAAqE;AACrE,+DAAwD;AACxD,iFAAkE;AAClE,iDAA0C;AAC1C,yEAAoE;AACpE,+DAAwD;AACxD,iDAA+C;AAC/C,2EAAuD;AACvD,qDAA+C;AAC/C,iDAA2C;AAC3C,qEAAqD;AACrD,uCAAiC;AACjC,+FAAsF;AACtF,uDAA+D;AAC/D,6EAAsE;AACtE,qDAA+C;AAG/C,mDAA+C;AAAvC,+GAAA,aAAa,OAAA;AACrB,4FAAiF;AAAzE,kIAAA,mBAAmB,OAAA;AAE3B,uDAAmD;AAA3C,mHAAA,eAAe,OAAA;AACvB,+CAA2C;AAAnC,2GAAA,WAAW,OAAA;AAEnB,iDAA6C;AAArC,6GAAA,YAAY,OAAA;AACpB,+CAKwB;AAJvB,2GAAA,WAAW,OAAA;AAKZ,+CAA2C;AAAnC,2GAAA,WAAW,OAAA;AACnB,mEAA8E;AAArD,6HAAA,mBAAmB,OAAA;AAI/B,QAAA,eAAe,GAAG;IAC9B,kBAAkB,EAAlB,iDAAkB;IAClB,gBAAgB,EAAhB,+BAAgB;IAChB,oBAAoB,EAApB,sCAAoB;IACpB,gBAAgB,EAAhB,+BAAgB;IAChB,cAAc,EAAd,gCAAc;IACd,YAAY,EAAZ,8BAAY;IACZ,kBAAkB,EAAlB,iCAAkB;IAClB,WAAW,EAAX,0BAAW;IACX,+BAA+B,EAA/B,qEAA+B;IAC/B,iBAAiB,EAAjB,uCAAiB;IACjB,WAAW,EAAX,oCAAW;IACX,yBAAyB,EAAzB,oDAAyB;IACzB,wBAAwB,EAAxB,mDAAwB;IACxB,MAAM,EAAN,gBAAM;IACN,eAAe,EAAf,kCAAe;IACf,aAAa,EAAb,8BAAa;IACb,UAAU,EAAV,yBAAU;IACV,qBAAqB,EAArB,+CAAqB;IACrB,iBAAiB,EAAjB,uCAAiB;IACjB,wBAAwB,EAAxB,qDAAwB;IACxB,YAAY,EAAZ,4BAAY;IACZ,aAAa,EAAb,8BAAa;IACb,eAAe,EAAf,8BAAe;IACf,UAAU,EAAV,sCAAU;IACV,gBAAgB,EAAhB,oCAAgB;IAChB,oBAAoB,EAApB,4CAAoB;IACpB,yBAAyB,EAAzB,yDAAyB;CACzB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const isBeyondLastFrame: (src: string, time: number) => boolean | 0;
2
+ export declare const markAsBeyondLastFrame: (src: string, time: number) => void;
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.markAsBeyondLastFrame = exports.isBeyondLastFrame = void 0;
4
+ const map = {};
5
+ const isBeyondLastFrame = (src, time) => {
6
+ return map[src] && time >= map[src];
7
+ };
8
+ exports.isBeyondLastFrame = isBeyondLastFrame;
9
+ const markAsBeyondLastFrame = (src, time) => {
10
+ map[src] = time;
11
+ };
12
+ exports.markAsBeyondLastFrame = markAsBeyondLastFrame;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"is-serve-url.d.ts","sourceRoot":"","sources":["../src/is-serve-url.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,UAAU,iBAAkB,MAAM,YAY9C,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"is-serve-url.js","sourceRoot":"","sources":["../src/is-serve-url.ts"],"names":[],"mappings":";;;AAAO,MAAM,UAAU,GAAG,CAAC,YAAoB,EAAE,EAAE;IAClD,gGAAgG;IAChG,IACC,YAAY,CAAC,UAAU,CAAC,MAAM,CAAC;QAC/B,YAAY,CAAC,QAAQ,CAAC,eAAe,CAAC,EACrC;QACD,OAAO,IAAI,CAAC;KACZ;IAED,OAAO,CACN,YAAY,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,YAAY,CAAC,UAAU,CAAC,SAAS,CAAC,CACzE,CAAC;AACH,CAAC,CAAC;AAZW,QAAA,UAAU,cAYrB"}
@@ -0,0 +1,10 @@
1
+ import { FfmpegExecutable } from 'remotion';
2
+ export declare type LastFrameOptions = {
3
+ ffmpegExecutable: FfmpegExecutable;
4
+ ffprobeExecutable: FfmpegExecutable;
5
+ offset: number;
6
+ src: string;
7
+ };
8
+ export declare const setLastFrameInCache: (options: LastFrameOptions, data: Buffer) => void;
9
+ export declare const getLastFrameFromCache: (options: LastFrameOptions) => Buffer | null;
10
+ export declare const clearLastFileCache: () => void;
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+ // OffthreadVideo requires sometimes that the last frame of a video gets extracted, however, this can be slow. We allocate a cache for it but that can be garbage collected
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.clearLastFileCache = exports.getLastFrameFromCache = exports.setLastFrameInCache = void 0;
5
+ let map = {};
6
+ const MAX_CACHE_SIZE = 50 * 1024 * 1024; // 50MB
7
+ let bufferSize = 0;
8
+ const makeLastFrameCacheKey = (options) => {
9
+ return [options.ffmpegExecutable, options.offset, options.src].join('-');
10
+ };
11
+ const setLastFrameInCache = (options, data) => {
12
+ const key = makeLastFrameCacheKey(options);
13
+ if (map[key]) {
14
+ bufferSize -= map[key].data.byteLength;
15
+ }
16
+ map[key] = { data, lastAccessed: Date.now() };
17
+ bufferSize += data.byteLength;
18
+ ensureMaxSize();
19
+ };
20
+ exports.setLastFrameInCache = setLastFrameInCache;
21
+ const getLastFrameFromCache = (options) => {
22
+ var _a;
23
+ const key = makeLastFrameCacheKey(options);
24
+ if (!map[key]) {
25
+ return null;
26
+ }
27
+ map[key].lastAccessed = Date.now();
28
+ return (_a = map[key].data) !== null && _a !== void 0 ? _a : null;
29
+ };
30
+ exports.getLastFrameFromCache = getLastFrameFromCache;
31
+ const removedLastFrameFromCache = (key) => {
32
+ if (!map[key]) {
33
+ return;
34
+ }
35
+ bufferSize -= map[key].data.byteLength;
36
+ delete map[key];
37
+ };
38
+ const ensureMaxSize = () => {
39
+ // eslint-disable-next-line no-unmodified-loop-condition
40
+ while (bufferSize > MAX_CACHE_SIZE) {
41
+ const earliest = Object.entries(map).sort((a, b) => {
42
+ return a[1].lastAccessed - b[1].lastAccessed;
43
+ })[0];
44
+ removedLastFrameFromCache(earliest[0]);
45
+ }
46
+ };
47
+ const clearLastFileCache = () => {
48
+ map = {};
49
+ };
50
+ exports.clearLastFileCache = clearLastFileCache;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"legacy-webpack-config.d.ts","sourceRoot":"","sources":["../src/legacy-webpack-config.ts"],"names":[],"mappings":"AAAA,oBAAY,uBAAuB,GAChC;IACA,QAAQ,EAAE,MAAM,CAAC;CAChB,GACD;IACA;;OAEG;IACH,aAAa,EAAE,MAAM,CAAC;CACrB,CAAC;AAEL,eAAO,MAAM,uBAAuB,UAAW,uBAAuB,WAUrE,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"legacy-webpack-config.js","sourceRoot":"","sources":["../src/legacy-webpack-config.ts"],"names":[],"mappings":";;;AAWO,MAAM,uBAAuB,GAAG,CAAC,KAA8B,EAAE,EAAE;IACzE,IAAI,eAAe,IAAI,KAAK,EAAE;QAC7B,OAAO,KAAK,CAAC,aAAa,CAAC;KAC3B;IAED,IAAI,UAAU,IAAI,KAAK,EAAE;QACxB,OAAO,KAAK,CAAC,QAAQ,CAAC;KACtB;IAED,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;AAC3D,CAAC,CAAC;AAVW,QAAA,uBAAuB,2BAUlC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"make-assets-download-dir.d.ts","sourceRoot":"","sources":["../src/make-assets-download-dir.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,wBAAwB,QAAO,MAE3C,CAAC"}
@@ -2,7 +2,12 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.makeAssetsDownloadTmpDir = void 0;
4
4
  const tmp_dir_1 = require("./tmp-dir");
5
+ let dir = null;
5
6
  const makeAssetsDownloadTmpDir = () => {
6
- return (0, tmp_dir_1.tmpDir)('remotion-assets-dir');
7
+ if (dir) {
8
+ return dir;
9
+ }
10
+ dir = (0, tmp_dir_1.tmpDir)('remotion-assets-dir');
11
+ return dir;
7
12
  };
8
13
  exports.makeAssetsDownloadTmpDir = makeAssetsDownloadTmpDir;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"make-assets-download-dir.js","sourceRoot":"","sources":["../src/make-assets-download-dir.ts"],"names":[],"mappings":";;;AAAA,uCAAiC;AAE1B,MAAM,wBAAwB,GAAG,GAAW,EAAE;IACpD,OAAO,IAAA,gBAAM,EAAC,qBAAqB,CAAC,CAAC;AACtC,CAAC,CAAC;AAFW,QAAA,wBAAwB,4BAEnC"}
@@ -0,0 +1,7 @@
1
+ declare type Callback = () => void;
2
+ export declare type CancelSignal = (callback: Callback) => void;
3
+ export declare const makeCancelSignal: () => {
4
+ cancelSignal: CancelSignal;
5
+ cancel: () => void;
6
+ };
7
+ export {};
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.makeCancelSignal = void 0;
4
+ const makeCancelSignal = () => {
5
+ const callbacks = [];
6
+ let cancelled = false;
7
+ return {
8
+ cancelSignal: (callback) => {
9
+ callbacks.push(callback);
10
+ if (cancelled) {
11
+ callback();
12
+ }
13
+ },
14
+ cancel: () => {
15
+ if (cancelled) {
16
+ return;
17
+ }
18
+ callbacks.forEach((cb) => {
19
+ cb();
20
+ });
21
+ cancelled = true;
22
+ },
23
+ };
24
+ };
25
+ exports.makeCancelSignal = makeCancelSignal;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"merge-audio-track.d.ts","sourceRoot":"","sources":["../src/merge-audio-track.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,gBAAgB,EAAY,MAAM,UAAU,CAAC;AAQrD,aAAK,OAAO,GAAG;IACd,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,MAAM,CAAC;CACxB,CAAC;AAyEF,eAAO,MAAM,eAAe,YAAa,OAAO,kBAE/C,CAAC"}
@@ -30,8 +30,8 @@ const mergeAudioTrackUnlimited = async ({ ffmpegExecutable, outName, files, numb
30
30
  });
31
31
  return;
32
32
  }
33
- // FFMPEG has a limit of 64 tracks that can be merged at once
34
- if (files.length > 64) {
33
+ // In FFMPEG, the total number of left and right tracks that can be merged at one time is limited to 64
34
+ if (files.length >= 32) {
35
35
  const chunked = (0, chunk_1.chunk)(files, 10);
36
36
  const tempPath = (0, tmp_dir_1.tmpDir)('remotion-large-audio-mixing');
37
37
  const chunkNames = await Promise.all(chunked.map(async (chunkFiles, i) => {
@@ -0,0 +1 @@
1
+ {"version":3,"file":"merge-audio-track.js","sourceRoot":"","sources":["../src/merge-audio-track.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAC1B,gDAAwB;AACxB,uCAAqD;AACrD,mCAA8B;AAC9B,qDAA8C;AAC9C,iFAAyE;AACzE,+DAAwD;AACxD,uCAAiC;AACjC,uCAAiC;AASjC,MAAM,wBAAwB,GAAG,KAAK,EAAE,EACvC,gBAAgB,EAChB,OAAO,EACP,KAAK,EACL,eAAe,GACN,EAAiB,EAAE;IAC5B,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;QACvB,MAAM,IAAA,uCAAiB,EAAC;YACvB,OAAO;YACP,gBAAgB;YAChB,eAAe;SACf,CAAC,CAAC;QACH,OAAO;KACP;IAED,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;QACvB,MAAM,IAAA,6BAAY,EAAC;YAClB,OAAO;YACP,gBAAgB;YAChB,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;SACf,CAAC,CAAC;QACH,OAAO;KACP;IAED,6DAA6D;IAC7D,IAAI,KAAK,CAAC,MAAM,GAAG,EAAE,EAAE;QACtB,MAAM,OAAO,GAAG,IAAA,aAAK,EAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACjC,MAAM,QAAQ,GAAG,IAAA,gBAAM,EAAC,6BAA6B,CAAC,CAAC;QAEvD,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,GAAG,CACnC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,UAAU,EAAE,CAAC,EAAE,EAAE;YACnC,MAAM,YAAY,GAAG,cAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;YAC3D,MAAM,IAAA,uBAAe,EAAC;gBACrB,gBAAgB;gBAChB,KAAK,EAAE,UAAU;gBACjB,eAAe;gBACf,OAAO,EAAE,YAAY;aACrB,CAAC,CAAC;YACH,OAAO,YAAY,CAAC;QACrB,CAAC,CAAC,CACF,CAAC;QAEF,OAAO,IAAA,uBAAe,EAAC;YACtB,gBAAgB;YAChB,KAAK,EAAE,UAAU;YACjB,eAAe;YACf,OAAO;SACP,CAAC,CAAC;KACH;IAED,MAAM,EAAC,iBAAiB,EAAE,WAAW,EAAE,OAAO,EAAC,GAC9C,MAAM,IAAA,wDAAyB,EAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAE/C,MAAM,IAAI,GAAG;QACZ,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAC9B,WAAW;QACX,CAAC,MAAM,EAAE,WAAW,CAAC;QACrB,CAAC,MAAM,EAAE,KAAK,CAAC;QACf,CAAC,IAAI,EAAE,OAAO,CAAC;KACf;SACC,MAAM,CAAC,oBAAS,CAAC,MAAM,CAAC;SACxB,IAAI,CAAC,CAAC,CAAC,CAAC;IAEV,MAAM,IAAI,GAAG,IAAA,eAAK,EAAC,gBAAgB,aAAhB,gBAAgB,cAAhB,gBAAgB,GAAI,QAAQ,EAAE,IAAI,CAAC,CAAC;IAEvD,MAAM,IAAI,CAAC;IACX,OAAO,EAAE,CAAC;AACX,CAAC,CAAC;AAEF,MAAM,KAAK,GAAG,IAAA,gBAAM,EAAC,CAAC,CAAC,CAAC;AAEjB,MAAM,eAAe,GAAG,CAAC,OAAgB,EAAE,EAAE;IACnD,OAAO,KAAK,CAAC,wBAAwB,EAAE,OAAO,CAAC,CAAC;AACjD,CAAC,CAAC;AAFW,QAAA,eAAe,mBAE1B"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"normalize-serve-url.d.ts","sourceRoot":"","sources":["../src/normalize-serve-url.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,iBAAiB,iBAAkB,MAAM,KAAG,MAmBxD,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"normalize-serve-url.js","sourceRoot":"","sources":["../src/normalize-serve-url.ts"],"names":[],"mappings":";;;AAAO,MAAM,iBAAiB,GAAG,CAAC,YAAoB,EAAU,EAAE;IACjE,MAAM,QAAQ,GAAG,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IAE5C,IAAI,QAAQ,EAAE;QACb,OAAO,IAAA,yBAAiB,EAAC,YAAY,CAAC,MAAM,CAAC,CAAC,EAAE,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;KAC5E;IAED,MAAM,eAAe,GAAG,YAAY,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;IAC5D,IAAI,eAAe,EAAE;QACpB,OAAO,YAAY,CAAC;KACpB;IAED,kBAAkB;IAElB,IAAI,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;QAC/B,OAAO,GAAG,YAAY,YAAY,CAAC;KACnC;IAED,OAAO,GAAG,YAAY,aAAa,CAAC;AACrC,CAAC,CAAC;AAnBW,QAAA,iBAAiB,qBAmB5B"}
@@ -0,0 +1,14 @@
1
+ import { RequestListener } from 'http';
2
+ import { FfmpegExecutable } from 'remotion';
3
+ import { RenderMediaOnDownload } from './assets/download-and-map-assets-to-file';
4
+ export declare const extractUrlAndSourceFromUrl: (url: string) => {
5
+ src: string;
6
+ time: number;
7
+ };
8
+ export declare const startOffthreadVideoServer: ({ ffmpegExecutable, ffprobeExecutable, downloadDir, onDownload, onError, }: {
9
+ ffmpegExecutable: FfmpegExecutable;
10
+ ffprobeExecutable: FfmpegExecutable;
11
+ downloadDir: string;
12
+ onDownload: RenderMediaOnDownload;
13
+ onError: (err: Error) => void;
14
+ }) => RequestListener;
@@ -0,0 +1,67 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.startOffthreadVideoServer = exports.extractUrlAndSourceFromUrl = void 0;
4
+ const url_1 = require("url");
5
+ const download_and_map_assets_to_file_1 = require("./assets/download-and-map-assets-to-file");
6
+ const extract_frame_from_video_1 = require("./extract-frame-from-video");
7
+ const extractUrlAndSourceFromUrl = (url) => {
8
+ const parsed = new URL(url, 'http://localhost');
9
+ const query = parsed.search;
10
+ if (!query.trim()) {
11
+ throw new Error('Expected query from ' + url);
12
+ }
13
+ const params = new url_1.URLSearchParams(query);
14
+ const src = params.get('src');
15
+ if (!src) {
16
+ throw new Error('Did not pass `src` parameter');
17
+ }
18
+ const time = params.get('time');
19
+ if (!time) {
20
+ throw new Error('Did not get `time` parameter');
21
+ }
22
+ return { src, time: parseFloat(time) };
23
+ };
24
+ exports.extractUrlAndSourceFromUrl = extractUrlAndSourceFromUrl;
25
+ const startOffthreadVideoServer = ({ ffmpegExecutable, ffprobeExecutable, downloadDir, onDownload, onError, }) => {
26
+ return (req, res) => {
27
+ if (!req.url) {
28
+ throw new Error('Request came in without URL');
29
+ }
30
+ if (!req.url.startsWith('/proxy')) {
31
+ res.writeHead(404);
32
+ res.end();
33
+ return;
34
+ }
35
+ res.setHeader('access-control-allow-origin', '*');
36
+ res.setHeader('content-type', 'image/jpg');
37
+ const { src, time } = (0, exports.extractUrlAndSourceFromUrl)(req.url);
38
+ const to = (0, download_and_map_assets_to_file_1.getSanitizedFilenameForAssetUrl)({ downloadDir, src });
39
+ (0, download_and_map_assets_to_file_1.startDownloadForSrc)({ src, downloadDir, onDownload }).catch((err) => {
40
+ onError(new Error(`Error while downloading asset: ${err.stack}`));
41
+ });
42
+ (0, download_and_map_assets_to_file_1.waitForAssetToBeDownloaded)(src, to)
43
+ .then(() => {
44
+ return (0, extract_frame_from_video_1.extractFrameFromVideo)({
45
+ time,
46
+ src: to,
47
+ ffmpegExecutable,
48
+ ffprobeExecutable,
49
+ });
50
+ })
51
+ .then((readable) => {
52
+ if (!readable) {
53
+ throw new Error('no readable from ffmpeg');
54
+ }
55
+ res.writeHead(200);
56
+ res.write(readable);
57
+ res.end();
58
+ })
59
+ .catch((err) => {
60
+ res.writeHead(500);
61
+ res.end();
62
+ onError(err);
63
+ console.log('Error occurred', err);
64
+ });
65
+ };
66
+ };
67
+ exports.startOffthreadVideoServer = startOffthreadVideoServer;
@@ -10,9 +10,9 @@ export declare type ChromiumOptions = {
10
10
  };
11
11
  export declare const killAllBrowsers: () => Promise<void>;
12
12
  export declare const openBrowser: (browser: Browser, options?: {
13
- shouldDumpIo?: boolean | undefined;
14
- browserExecutable?: string | null | undefined;
15
- chromiumOptions?: ChromiumOptions | undefined;
16
- forceDeviceScaleFactor?: number | undefined;
17
- } | undefined) => Promise<puppeteer.Browser>;
13
+ shouldDumpIo?: boolean;
14
+ browserExecutable?: string | null;
15
+ chromiumOptions?: ChromiumOptions;
16
+ forceDeviceScaleFactor?: number;
17
+ }) => Promise<puppeteer.Browser>;
18
18
  export {};
@@ -0,0 +1 @@
1
+ {"version":3,"file":"open-browser.d.ts","sourceRoot":"","sources":["../src/open-browser.ts"],"names":[],"mappings":"AAGA,OAAO,SAAS,MAAM,gBAAgB,CAAC;AACvC,OAAO,EAAC,OAAO,EAAY,MAAM,UAAU,CAAC;AAM5C,QAAA,MAAM,cAAc,0CAA2C,CAAC;AAEhE,aAAK,cAAc,GAAG,OAAO,cAAc,CAAC,MAAM,CAAC,CAAC;AAEpD,oBAAY,eAAe,GAAG;IAC7B,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,EAAE,CAAC,EAAE,cAAc,GAAG,IAAI,CAAC;IAC3B,QAAQ,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAYF,eAAO,MAAM,eAAe,qBAM3B,CAAC;AAEF,eAAO,MAAM,WAAW,YACd,OAAO;;;;kBAMd,QAAQ,iBAAiB,CA4D3B,CAAC"}
@@ -63,7 +63,6 @@ const openBrowser = async (browser, options) => {
63
63
  '--proxy-bypass-list=*',
64
64
  // TODO: remove AvoidUnnecessaryBeforeUnloadCheckSync below
65
65
  // once crbug.com/1324138 is fixed and released.
66
- '--disable-features=Translate,BackForwardCache,AvoidUnnecessaryBeforeUnloadCheckSync',
67
66
  '--disable-hang-monitor',
68
67
  '--disable-ipc-flooding-protection',
69
68
  '--disable-popup-blocking',
@@ -91,13 +90,14 @@ const openBrowser = async (browser, options) => {
91
90
  '--allow-running-insecure-content',
92
91
  '--disable-component-update',
93
92
  '--disable-domain-reliability',
94
- '--disable-features=AudioServiceOutOfProcess,IsolateOrigins,site-per-process',
93
+ '--disable-features=AudioServiceOutOfProcess,IsolateOrigins,site-per-process,Translate,BackForwardCache,AvoidUnnecessaryBeforeUnloadCheckSync,IntensiveWakeUpThrottling',
95
94
  '--disable-print-preview',
96
95
  '--disable-site-isolation-trials',
97
96
  '--disk-cache-size=268435456',
98
97
  '--hide-scrollbars',
99
98
  '--no-default-browser-check',
100
99
  '--no-pings',
100
+ '--font-render-hinting=none',
101
101
  '--no-zygote',
102
102
  (options === null || options === void 0 ? void 0 : options.forceDeviceScaleFactor)
103
103
  ? `--force-device-scale-factor=${options.forceDeviceScaleFactor}`
@@ -115,7 +115,7 @@ const openBrowser = async (browser, options) => {
115
115
  ].filter(Boolean),
116
116
  });
117
117
  const pages = await browserInstance.pages();
118
- pages.forEach((p) => p.close());
118
+ await pages[0].close();
119
119
  browserInstances.push(browserInstance);
120
120
  return browserInstance;
121
121
  };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"open-browser.js","sourceRoot":"","sources":["../src/open-browser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"p-limit.d.ts","sourceRoot":"","sources":["../src/p-limit.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,MAAM,gBAAiB,MAAM,yKA0EzC,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"p-limit.js","sourceRoot":"","sources":["../src/p-limit.ts"],"names":[],"mappings":";;;AAAO,MAAM,MAAM,GAAG,CAAC,WAAmB,EAAE,EAAE;IAC7C,MAAM,KAAK,GAAe,EAAE,CAAC;IAC7B,IAAI,WAAW,GAAG,CAAC,CAAC;IAEpB,MAAM,IAAI,GAAG,GAAG,EAAE;;QACjB,WAAW,EAAE,CAAC;QAEd,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;YACrB,MAAA,KAAK,CAAC,KAAK,EAAE,2CAAI,CAAC;SAClB;IACF,CAAC,CAAC;IAEF,MAAM,GAAG,GAAG,KAAK,EAChB,EAAsE,EACtE,OAA2C,EAC3C,GAAG,IAAe,EACjB,EAAE;QACH,WAAW,EAAE,CAAC;QAEd,yCAAyC;QACzC,MAAM,MAAM,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC;QAE3C,OAAO,CAAC,MAAM,CAAC,CAAC;QAEhB,IAAI;YACH,MAAM,MAAM,CAAC;SACb;QAAC,WAAM,GAAE;QAEV,IAAI,EAAE,CAAC;IACR,CAAC,CAAC;IAEF,MAAM,OAAO,GAAG,CACf,EAAsE,EACtE,OAA2C,EAC3C,GAAG,IAAe,EACjB,EAAE;QACH,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;QAE5C,CAAC,KAAK,IAAI,EAAE;;YACX,wEAAwE;YACxE,kFAAkF;YAClF,mFAAmF;YACnF,uFAAuF;YACvF,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;YAExB,IAAI,WAAW,GAAG,WAAW,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;gBAClD,MAAA,KAAK,CAAC,KAAK,EAAE,2CAAI,CAAC;aAClB;QACF,CAAC,CAAC,EAAE,CAAC;IACN,CAAC,CAAC;IAEF,MAAM,SAAS,GAAG,CACjB,EAAsE,EACtE,GAAG,IAAe,EACjB,EAAE,CACH,IAAI,OAAO,CAAa,CAAC,OAAO,EAAE,EAAE;QACnC,OAAO,CAAC,EAAE,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;IAEJ,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE;QAClC,WAAW,EAAE;YACZ,GAAG,EAAE,GAAG,EAAE,CAAC,WAAW;SACtB;QACD,YAAY,EAAE;YACb,GAAG,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,MAAM;SACvB;QACD,UAAU,EAAE;YACX,KAAK,EAAE,GAAG,EAAE;gBACX,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;YAClB,CAAC;SACD;KACD,CAAC,CAAC;IAEH,OAAO,SAAS,CAAC;AAClB,CAAC,CAAC;AA1EW,QAAA,MAAM,UA0EjB"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse-browser-error-stack.d.ts","sourceRoot":"","sources":["../src/parse-browser-error-stack.ts"],"names":[],"mappings":"AAIA,oBAAY,wBAAwB,GAAG;IACtC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;CACrB,CAAC;AAuDF,eAAO,MAAM,UAAU,UAAW,MAAM,EAAE,KAAG,wBAAwB,EAwDpE,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse-browser-error-stack.js","sourceRoot":"","sources":["../src/parse-browser-error-stack.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse-ffmpeg-progress.d.ts","sourceRoot":"","sources":["../src/parse-ffmpeg-progress.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,mBAAmB,UAAW,MAAM,KAAG,MAAM,GAAG,SAO5D,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse-ffmpeg-progress.js","sourceRoot":"","sources":["../src/parse-ffmpeg-progress.ts"],"names":[],"mappings":";;;AAAO,MAAM,mBAAmB,GAAG,CAAC,KAAa,EAAsB,EAAE;IACxE,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;IACpD,IAAI,CAAC,KAAK,EAAE;QACX,OAAO,SAAS,CAAC;KACjB;IAED,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AACzB,CAAC,CAAC;AAPW,QAAA,mBAAmB,uBAO9B"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pool.d.ts","sourceRoot":"","sources":["../src/pool.ts"],"names":[],"mappings":"AAAA,qBAAa,IAAI,CAAC,CAAC;IAClB,SAAS,EAAE,CAAC,EAAE,CAAC;IACf,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC;gBAEhB,SAAS,EAAE,CAAC,EAAE;IAK1B,OAAO,IAAI,OAAO,CAAC,CAAC,CAAC;IAarB,OAAO,CAAC,QAAQ,EAAE,CAAC,GAAG,IAAI;CAQ1B"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pool.js","sourceRoot":"","sources":["../src/pool.ts"],"names":[],"mappings":";;;AAAA,MAAa,IAAI;IAIhB,YAAY,SAAc;QACzB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;IACnB,CAAC;IAED,OAAO;QACN,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;QACxC,IAAI,QAAQ,KAAK,SAAS,EAAE;YAC3B,OAAO,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;SACjC;QAED,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC9B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,YAAe,EAAE,EAAE;gBACrC,OAAO,CAAC,YAAY,CAAC,CAAC;YACvB,CAAC,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;IACJ,CAAC;IAED,OAAO,CAAC,QAAW;QAClB,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QACpC,IAAI,MAAM,KAAK,SAAS,EAAE;YACzB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;SAC9B;aAAM;YACN,MAAM,CAAC,QAAQ,CAAC,CAAC;SACjB;IACF,CAAC;CACD;AA9BD,oBA8BC"}
@@ -1,4 +1,15 @@
1
- export declare const prepareServer: (webpackConfigOrServeUrl: string) => Promise<{
1
+ import { FfmpegExecutable } from 'remotion';
2
+ import { RenderMediaOnDownload } from './assets/download-and-map-assets-to-file';
3
+ export declare const prepareServer: ({ downloadDir, ffmpegExecutable, ffprobeExecutable, onDownload, onError, webpackConfigOrServeUrl, port, }: {
4
+ webpackConfigOrServeUrl: string;
5
+ downloadDir: string;
6
+ onDownload: RenderMediaOnDownload;
7
+ onError: (err: Error) => void;
8
+ ffmpegExecutable: FfmpegExecutable;
9
+ ffprobeExecutable: FfmpegExecutable;
10
+ port: number | null;
11
+ }) => Promise<{
2
12
  serveUrl: string;
3
- closeServer: () => Promise<void>;
13
+ closeServer: () => Promise<unknown>;
14
+ offthreadPort: number;
4
15
  }>;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prepare-server.d.ts","sourceRoot":"","sources":["../src/prepare-server.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,aAAa,4BACA,MAAM,KAC7B,QAAQ;IACV,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,QAAQ,IAAI,CAAC,CAAC;CACjC,CAaA,CAAC"}
@@ -1,19 +1,49 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
3
6
  exports.prepareServer = void 0;
7
+ const fs_1 = require("fs");
8
+ const path_1 = __importDefault(require("path"));
4
9
  const is_serve_url_1 = require("./is-serve-url");
5
10
  const serve_static_1 = require("./serve-static");
6
- const prepareServer = async (webpackConfigOrServeUrl) => {
11
+ const prepareServer = async ({ downloadDir, ffmpegExecutable, ffprobeExecutable, onDownload, onError, webpackConfigOrServeUrl, port, }) => {
7
12
  if ((0, is_serve_url_1.isServeUrl)(webpackConfigOrServeUrl)) {
13
+ const { port: offthreadPort, close: closeProxy } = await (0, serve_static_1.serveStatic)(null, {
14
+ downloadDir,
15
+ onDownload,
16
+ onError,
17
+ ffmpegExecutable,
18
+ ffprobeExecutable,
19
+ port,
20
+ });
8
21
  return Promise.resolve({
9
22
  serveUrl: webpackConfigOrServeUrl,
10
- closeServer: () => Promise.resolve(undefined),
23
+ closeServer: () => closeProxy(),
24
+ offthreadPort,
11
25
  });
12
26
  }
13
- const { port, close } = await (0, serve_static_1.serveStatic)(webpackConfigOrServeUrl);
27
+ // Check if the path has a `index.html` file
28
+ const indexFile = path_1.default.join(webpackConfigOrServeUrl, 'index.html');
29
+ const exists = (0, fs_1.existsSync)(indexFile);
30
+ if (!exists) {
31
+ throw new Error(`Tried to serve the Webpack bundle on a HTTP server, but the file ${indexFile} does not exist. Is this a valid path to a Webpack bundle?`);
32
+ }
33
+ const { port: serverPort, close } = await (0, serve_static_1.serveStatic)(webpackConfigOrServeUrl, {
34
+ downloadDir,
35
+ onDownload,
36
+ onError,
37
+ ffmpegExecutable,
38
+ ffprobeExecutable,
39
+ port,
40
+ });
14
41
  return Promise.resolve({
15
- closeServer: () => close(),
16
- serveUrl: `http://localhost:${port}`,
42
+ closeServer: () => {
43
+ return close();
44
+ },
45
+ serveUrl: `http://localhost:${serverPort}`,
46
+ offthreadPort: serverPort,
17
47
  });
18
48
  };
19
49
  exports.prepareServer = prepareServer;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prepare-server.js","sourceRoot":"","sources":["../src/prepare-server.ts"],"names":[],"mappings":";;;AAAA,iDAA0C;AAC1C,iDAA2C;AAEpC,MAAM,aAAa,GAAG,KAAK,EACjC,uBAA+B,EAI7B,EAAE;IACJ,IAAI,IAAA,yBAAU,EAAC,uBAAuB,CAAC,EAAE;QACxC,OAAO,OAAO,CAAC,OAAO,CAAC;YACtB,QAAQ,EAAE,uBAAuB;YACjC,WAAW,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC;SAC7C,CAAC,CAAC;KACH;IAED,MAAM,EAAC,IAAI,EAAE,KAAK,EAAC,GAAG,MAAM,IAAA,0BAAW,EAAC,uBAAuB,CAAC,CAAC;IACjE,OAAO,OAAO,CAAC,OAAO,CAAC;QACtB,WAAW,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE;QAC1B,QAAQ,EAAE,oBAAoB,IAAI,EAAE;KACpC,CAAC,CAAC;AACJ,CAAC,CAAC;AAlBW,QAAA,aAAa,iBAkBxB"}
@@ -2,6 +2,7 @@ import { FfmpegExecutable } from 'remotion';
2
2
  import { MediaAsset } from './assets/types';
3
3
  declare type Options = {
4
4
  ffmpegExecutable: FfmpegExecutable;
5
+ ffprobeExecutable: FfmpegExecutable;
5
6
  outName: string;
6
7
  asset: MediaAsset;
7
8
  expectedFrames: number;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"preprocess-audio-track.d.ts","sourceRoot":"","sources":["../src/preprocess-audio-track.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,gBAAgB,EAAC,MAAM,UAAU,CAAC;AAE1C,OAAO,EAAC,UAAU,EAAC,MAAM,gBAAgB,CAAC;AAM1C,aAAK,OAAO,GAAG;IACd,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,UAAU,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,GAAG,EAAE,MAAM,CAAC;CACZ,CAAC;AA2CF,eAAO,MAAM,oBAAoB,YAAa,OAAO,2BAEpD,CAAC"}
@@ -10,8 +10,8 @@ const calculate_ffmpeg_filters_1 = require("./calculate-ffmpeg-filters");
10
10
  const ffmpeg_filter_file_1 = require("./ffmpeg-filter-file");
11
11
  const p_limit_1 = require("./p-limit");
12
12
  const resolve_asset_src_1 = require("./resolve-asset-src");
13
- const preprocessAudioTrackUnlimited = async ({ ffmpegExecutable, outName, asset, expectedFrames, fps, }) => {
14
- const { channels, duration } = await (0, get_audio_channels_1.getAudioChannelsAndDuration)((0, resolve_asset_src_1.resolveAssetSrc)(asset.src));
13
+ const preprocessAudioTrackUnlimited = async ({ ffmpegExecutable, ffprobeExecutable, outName, asset, expectedFrames, fps, }) => {
14
+ const { channels, duration } = await (0, get_audio_channels_1.getAudioChannelsAndDuration)((0, resolve_asset_src_1.resolveAssetSrc)(asset.src), ffprobeExecutable);
15
15
  const filter = (0, calculate_ffmpeg_filters_1.calculateFfmpegFilter)({
16
16
  asset,
17
17
  durationInFrames: expectedFrames,
@@ -0,0 +1 @@
1
+ {"version":3,"file":"preprocess-audio-track.js","sourceRoot":"","sources":["../src/preprocess-audio-track.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAE1B,oEAAwE;AAExE,yEAAiE;AACjE,6DAA0D;AAC1D,uCAAiC;AACjC,2DAAoD;AAUpD,MAAM,6BAA6B,GAAG,KAAK,EAAE,EAC5C,gBAAgB,EAChB,OAAO,EACP,KAAK,EACL,cAAc,EACd,GAAG,GACM,EAA0B,EAAE;IACrC,MAAM,EAAC,QAAQ,EAAE,QAAQ,EAAC,GAAG,MAAM,IAAA,gDAA2B,EAC7D,IAAA,mCAAe,EAAC,KAAK,CAAC,GAAG,CAAC,CAC1B,CAAC;IAEF,MAAM,MAAM,GAAG,IAAA,gDAAqB,EAAC;QACpC,KAAK;QACL,gBAAgB,EAAE,cAAc;QAChC,GAAG;QACH,QAAQ;QACR,aAAa,EAAE,QAAQ;KACvB,CAAC,CAAC;IAEH,IAAI,MAAM,KAAK,IAAI,EAAE;QACpB,OAAO,IAAI,CAAC;KACZ;IAED,MAAM,EAAC,OAAO,EAAE,IAAI,EAAC,GAAG,MAAM,IAAA,yCAAoB,EAAC,MAAM,CAAC,CAAC;IAE3D,MAAM,IAAI,GAAG;QACZ,CAAC,IAAI,EAAE,IAAA,mCAAe,EAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAClC,CAAC,KAAK,EAAE,GAAG,CAAC;QACZ,CAAC,kBAAkB,EAAE,IAAI,CAAC;QAC1B,CAAC,MAAM,EAAE,WAAW,CAAC;QACrB,CAAC,IAAI,EAAE,OAAO,CAAC;KACf,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAEV,MAAM,IAAA,eAAK,EAAC,gBAAgB,aAAhB,gBAAgB,cAAhB,gBAAgB,GAAI,QAAQ,EAAE,IAAI,CAAC,CAAC;IAEhD,OAAO,EAAE,CAAC;IACV,OAAO,OAAO,CAAC;AAChB,CAAC,CAAC;AAEF,MAAM,KAAK,GAAG,IAAA,gBAAM,EAAC,CAAC,CAAC,CAAC;AAEjB,MAAM,oBAAoB,GAAG,CAAC,OAAgB,EAAE,EAAE;IACxD,OAAO,KAAK,CAAC,6BAA6B,EAAE,OAAO,CAAC,CAAC;AACtD,CAAC,CAAC;AAFW,QAAA,oBAAoB,wBAE/B"}
@@ -1,5 +1,6 @@
1
1
  import execa from 'execa';
2
2
  import { Codec, FfmpegExecutable, ImageFormat, PixelFormat, ProResProfile } from 'remotion';
3
+ import { CancelSignal } from './make-cancel-signal';
3
4
  declare type PreSticherOptions = {
4
5
  fps: number;
5
6
  width: number;
@@ -13,6 +14,7 @@ declare type PreSticherOptions = {
13
14
  verbose: boolean;
14
15
  ffmpegExecutable: FfmpegExecutable | undefined;
15
16
  imageFormat: ImageFormat;
17
+ signal: CancelSignal;
16
18
  };
17
19
  export declare const prespawnFfmpeg: (options: PreSticherOptions) => Promise<{
18
20
  task: execa.ExecaChildProcess<string>;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prespawn-ffmpeg.d.ts","sourceRoot":"","sources":["../src/prespawn-ffmpeg.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EACN,KAAK,EACL,gBAAgB,EAChB,WAAW,EAEX,WAAW,EACX,aAAa,EACb,MAAM,UAAU,CAAC;AAOlB,aAAK,iBAAiB,GAAG;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,WAAW,GAAG,SAAS,CAAC;IACrC,KAAK,EAAE,KAAK,GAAG,SAAS,CAAC;IACzB,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAC/B,UAAU,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,aAAa,EAAE,aAAa,GAAG,SAAS,CAAC;IACzC,OAAO,EAAE,OAAO,CAAC;IACjB,gBAAgB,EAAE,gBAAgB,GAAG,SAAS,CAAC;IAC/C,WAAW,EAAE,WAAW,CAAC;CACzB,CAAC;AAEF,eAAO,MAAM,cAAc,YAAmB,iBAAiB;;;EAiG9D,CAAC"}
@@ -57,15 +57,13 @@ const prespawnFfmpeg = async (options) => {
57
57
  // -c:v is the same as -vcodec as -codec:video
58
58
  // and specified the video codec.
59
59
  ['-c:v', encoderName],
60
- ...[
61
- proResProfileName ? ['-profile:v', proResProfileName] : null,
62
- supportsCrf ? ['-crf', String(crf)] : null,
63
- ['-pix_fmt', pixelFormat],
64
- // Without explicitly disabling auto-alt-ref,
65
- // transparent WebM generation doesn't work
66
- pixelFormat === 'yuva420p' ? ['-auto-alt-ref', '0'] : null,
67
- ['-b:v', '1M'],
68
- ],
60
+ proResProfileName ? ['-profile:v', proResProfileName] : null,
61
+ supportsCrf ? ['-crf', String(crf)] : null,
62
+ ['-pix_fmt', pixelFormat],
63
+ // Without explicitly disabling auto-alt-ref,
64
+ // transparent WebM generation doesn't work
65
+ pixelFormat === 'yuva420p' ? ['-auto-alt-ref', '0'] : null,
66
+ ['-b:v', '1M'],
69
67
  '-y',
70
68
  options.outputLocation,
71
69
  ];
@@ -75,6 +73,9 @@ const prespawnFfmpeg = async (options) => {
75
73
  }
76
74
  const ffmpegString = ffmpegArgs.flat(2).filter(Boolean);
77
75
  const task = (0, execa_1.default)((_f = options.ffmpegExecutable) !== null && _f !== void 0 ? _f : 'ffmpeg', ffmpegString);
76
+ options.signal(() => {
77
+ task.kill();
78
+ });
78
79
  let ffmpegOutput = '';
79
80
  (_g = task.stderr) === null || _g === void 0 ? void 0 : _g.on('data', (data) => {
80
81
  const str = data.toString();
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prespawn-ffmpeg.js","sourceRoot":"","sources":["../src/prespawn-ffmpeg.ts"],"names":[],"mappings":"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"}