@remotion/renderer 4.0.0-defer.6 → 4.0.0-esm.17

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 (434) hide show
  1. package/LICENSE.md +8 -8
  2. package/README.md +47 -0
  3. package/dist/assets/calculate-asset-positions.d.ts +2 -2
  4. package/dist/assets/calculate-asset-positions.js +1 -0
  5. package/dist/assets/calculate-atempo.d.ts +0 -0
  6. package/dist/assets/calculate-atempo.js +0 -0
  7. package/dist/assets/convert-assets-to-file-urls.d.ts +5 -4
  8. package/dist/assets/convert-assets-to-file-urls.js +2 -2
  9. package/dist/assets/download-and-map-assets-to-file.d.ts +16 -12
  10. package/dist/assets/download-and-map-assets-to-file.js +145 -65
  11. package/dist/assets/download-file.d.ts +13 -6
  12. package/dist/assets/download-file.js +64 -8
  13. package/dist/assets/download-map.d.ts +69 -0
  14. package/dist/assets/download-map.js +77 -0
  15. package/dist/assets/ffmpeg-volume-expression.d.ts +3 -3
  16. package/dist/assets/ffmpeg-volume-expression.js +6 -5
  17. package/dist/assets/flatten-volume-array.d.ts +1 -1
  18. package/dist/assets/flatten-volume-array.js +0 -0
  19. package/dist/assets/get-audio-channels.d.ts +3 -5
  20. package/dist/assets/get-audio-channels.js +15 -4
  21. package/dist/assets/get-video-stream-duration.d.ts +9 -0
  22. package/dist/assets/get-video-stream-duration.js +71 -0
  23. package/dist/assets/read-file.d.ts +0 -0
  24. package/dist/assets/read-file.js +2 -1
  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 +0 -0
  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 +2 -1
  34. package/dist/assets/types.js +0 -0
  35. package/dist/browser/Browser.d.ts +62 -0
  36. package/dist/browser/Browser.js +221 -0
  37. package/dist/browser/BrowserConnector.d.ts +19 -0
  38. package/dist/browser/BrowserConnector.js +17 -0
  39. package/dist/browser/BrowserFetcher.d.ts +90 -0
  40. package/dist/browser/BrowserFetcher.js +513 -0
  41. package/dist/browser/BrowserPage.d.ts +80 -0
  42. package/dist/browser/BrowserPage.js +280 -0
  43. package/dist/browser/BrowserRunner.d.ts +36 -0
  44. package/dist/browser/BrowserRunner.js +265 -0
  45. package/dist/browser/Connection.d.ts +42 -0
  46. package/dist/browser/Connection.js +242 -0
  47. package/dist/browser/ConsoleMessage.d.ts +31 -0
  48. package/dist/browser/ConsoleMessage.js +48 -0
  49. package/dist/browser/DOMWorld.d.ts +53 -0
  50. package/dist/browser/DOMWorld.js +279 -0
  51. package/dist/browser/Errors.d.ts +25 -0
  52. package/dist/browser/Errors.js +35 -0
  53. package/dist/browser/EvalTypes.d.ts +27 -0
  54. package/dist/browser/EvalTypes.js +17 -0
  55. package/dist/browser/EventEmitter.d.ts +23 -0
  56. package/dist/browser/EventEmitter.js +53 -0
  57. package/dist/browser/ExecutionContext.d.ts +34 -0
  58. package/dist/browser/ExecutionContext.js +174 -0
  59. package/dist/browser/FrameManager.d.ts +91 -0
  60. package/dist/browser/FrameManager.js +493 -0
  61. package/dist/browser/HTTPRequest.d.ts +28 -0
  62. package/dist/browser/HTTPRequest.js +37 -0
  63. package/dist/browser/HTTPResponse.d.ts +21 -0
  64. package/dist/browser/HTTPResponse.js +41 -0
  65. package/dist/browser/JSHandle.d.ts +35 -0
  66. package/dist/browser/JSHandle.js +90 -0
  67. package/dist/browser/LaunchOptions.d.ts +33 -0
  68. package/dist/browser/LaunchOptions.js +17 -0
  69. package/dist/browser/Launcher.d.ts +15 -0
  70. package/dist/browser/Launcher.js +144 -0
  71. package/dist/browser/LifecycleWatcher.d.ts +29 -0
  72. package/dist/browser/LifecycleWatcher.js +180 -0
  73. package/dist/browser/NetworkEventManager.d.ts +33 -0
  74. package/dist/browser/NetworkEventManager.js +81 -0
  75. package/dist/browser/NetworkManager.d.ts +34 -0
  76. package/dist/browser/NetworkManager.js +231 -0
  77. package/dist/browser/NodeWebSocketTransport.d.ts +17 -0
  78. package/dist/browser/NodeWebSocketTransport.js +87 -0
  79. package/dist/browser/Product.d.ts +16 -0
  80. package/dist/browser/Product.js +17 -0
  81. package/dist/browser/PuppeteerNode.d.ts +40 -0
  82. package/dist/browser/PuppeteerNode.js +74 -0
  83. package/dist/browser/PuppeteerViewport.d.ts +5 -0
  84. package/dist/{faststart/options.js → browser/PuppeteerViewport.js} +0 -0
  85. package/dist/{faststart/index.d.ts → browser/ScreenshotOptions.d.ts} +0 -0
  86. package/dist/{faststart/index.js → browser/ScreenshotOptions.js} +0 -0
  87. package/dist/browser/Target.d.ts +61 -0
  88. package/dist/browser/Target.js +146 -0
  89. package/dist/browser/TaskQueue.d.ts +20 -0
  90. package/dist/browser/TaskQueue.js +47 -0
  91. package/dist/browser/TimeoutSettings.d.ts +24 -0
  92. package/dist/browser/TimeoutSettings.js +62 -0
  93. package/dist/browser/assert.d.ts +1 -0
  94. package/dist/browser/assert.js +9 -0
  95. package/dist/browser/create-browser-fetcher.d.ts +17 -0
  96. package/dist/browser/create-browser-fetcher.js +77 -0
  97. package/dist/browser/devtools-commands.d.ts +270 -0
  98. package/dist/browser/devtools-commands.js +2 -0
  99. package/dist/browser/devtools-types.d.ts +1126 -0
  100. package/dist/browser/devtools-types.js +2 -0
  101. package/dist/browser/get-download-destination.d.ts +1 -0
  102. package/dist/browser/get-download-destination.js +38 -0
  103. package/dist/browser/is-target-closed-err.d.ts +1 -0
  104. package/dist/browser/is-target-closed-err.js +9 -0
  105. package/dist/browser/mitt/index.d.ts +22 -0
  106. package/dist/browser/mitt/index.js +49 -0
  107. package/dist/browser/node.d.ts +2 -0
  108. package/dist/browser/node.js +9 -0
  109. package/dist/browser/revisions.d.ts +20 -0
  110. package/dist/browser/revisions.js +21 -0
  111. package/dist/browser/util.d.ts +47 -0
  112. package/dist/browser/util.js +169 -0
  113. package/dist/browser-executable.d.ts +1 -0
  114. package/dist/{assets/cleanup-assets.js → browser-executable.js} +0 -0
  115. package/dist/browser-log.d.ts +1 -1
  116. package/dist/browser-log.js +0 -0
  117. package/dist/browser.d.ts +2 -0
  118. package/dist/browser.js +4 -0
  119. package/dist/calculate-ffmpeg-filters.d.ts +1 -1
  120. package/dist/calculate-ffmpeg-filters.js +1 -0
  121. package/dist/calculate-sar-dar-pixels.d.ts +9 -0
  122. package/dist/calculate-sar-dar-pixels.js +19 -0
  123. package/dist/can-use-parallel-encoding.d.ts +1 -1
  124. package/dist/can-use-parallel-encoding.js +2 -2
  125. package/dist/check-apple-silicon.d.ts +1 -0
  126. package/dist/check-apple-silicon.js +55 -0
  127. package/dist/chunk.d.ts +0 -0
  128. package/dist/chunk.js +0 -0
  129. package/dist/client.d.ts +10 -0
  130. package/dist/client.js +19 -0
  131. package/dist/codec-supports-media.d.ts +8 -0
  132. package/dist/codec-supports-media.js +56 -0
  133. package/dist/codec.d.ts +4 -0
  134. package/dist/codec.js +16 -0
  135. package/dist/combine-videos.d.ts +9 -3
  136. package/dist/combine-videos.js +18 -10
  137. package/dist/compositor/compose.d.ts +13 -0
  138. package/dist/compositor/compose.js +47 -0
  139. package/dist/compositor/compositor.d.ts +12 -0
  140. package/dist/compositor/compositor.js +111 -0
  141. package/dist/compositor/get-executable-path.d.ts +1 -0
  142. package/dist/compositor/get-executable-path.js +47 -0
  143. package/dist/compositor/payloads.d.ts +41 -0
  144. package/dist/compositor/payloads.js +2 -0
  145. package/dist/compress-assets.d.ts +7 -0
  146. package/dist/compress-assets.js +25 -0
  147. package/dist/convert-number-of-gif-loops-to-ffmpeg.d.ts +1 -0
  148. package/dist/convert-number-of-gif-loops-to-ffmpeg.js +17 -0
  149. package/dist/convert-to-pcm.d.ts +3 -2
  150. package/dist/convert-to-pcm.js +3 -2
  151. package/dist/convert-to-positive-frame-index.d.ts +4 -0
  152. package/dist/convert-to-positive-frame-index.js +8 -0
  153. package/dist/create-ffmpeg-complex-filter.d.ts +2 -1
  154. package/dist/create-ffmpeg-complex-filter.js +2 -11
  155. package/dist/create-ffmpeg-merge-filter.d.ts +0 -0
  156. package/dist/create-ffmpeg-merge-filter.js +3 -3
  157. package/dist/create-silent-audio.d.ts +3 -2
  158. package/dist/create-silent-audio.js +3 -2
  159. package/dist/crf.d.ts +9 -0
  160. package/dist/crf.js +91 -0
  161. package/dist/cycle-browser-tabs.d.ts +2 -5
  162. package/dist/cycle-browser-tabs.js +5 -5
  163. package/dist/delay-render-embedded-stack.d.ts +1 -1
  164. package/dist/delay-render-embedded-stack.js +0 -0
  165. package/dist/delete-directory.d.ts +0 -0
  166. package/dist/delete-directory.js +0 -0
  167. package/dist/determine-resize-params.d.ts +1 -0
  168. package/dist/determine-resize-params.js +10 -0
  169. package/dist/determine-vcodec-ffmepg-flags.d.ts +2 -0
  170. package/dist/determine-vcodec-ffmepg-flags.js +13 -0
  171. package/dist/determine-vcodec-ffmpeg-flags.d.ts +2 -0
  172. package/dist/determine-vcodec-ffmpeg-flags.js +13 -0
  173. package/dist/ensure-ffmpeg.d.ts +10 -0
  174. package/dist/ensure-ffmpeg.js +50 -0
  175. package/dist/ensure-frames-in-order.d.ts +1 -1
  176. package/dist/ensure-frames-in-order.js +3 -2
  177. package/dist/ensure-output-directory.d.ts +0 -0
  178. package/dist/ensure-output-directory.js +0 -0
  179. package/dist/ensure-presentation-timestamp.d.ts +15 -0
  180. package/dist/ensure-presentation-timestamp.js +88 -0
  181. package/dist/error-handling/handle-javascript-exception.d.ts +2 -2
  182. package/dist/error-handling/handle-javascript-exception.js +3 -4
  183. package/dist/error-handling/symbolicate-error.d.ts +1 -1
  184. package/dist/error-handling/symbolicate-error.js +0 -0
  185. package/dist/error-handling/symbolicateable-error.d.ts +1 -1
  186. package/dist/error-handling/symbolicateable-error.js +0 -0
  187. package/dist/extract-frame-from-video.d.ts +7 -6
  188. package/dist/extract-frame-from-video.js +91 -105
  189. package/dist/ffmpeg-executable.d.ts +1 -0
  190. package/dist/ffmpeg-executable.js +2 -0
  191. package/dist/ffmpeg-filter-file.d.ts +2 -1
  192. package/dist/ffmpeg-filter-file.js +4 -6
  193. package/dist/ffmpeg-flags.d.ts +20 -2
  194. package/dist/ffmpeg-flags.js +205 -9
  195. package/dist/ffmpeg-override.d.ts +4 -0
  196. package/dist/ffmpeg-override.js +2 -0
  197. package/dist/find-closest-package-json.d.ts +2 -0
  198. package/dist/find-closest-package-json.js +31 -0
  199. package/dist/frame-range.d.ts +2 -0
  200. package/dist/frame-range.js +49 -0
  201. package/dist/frame-to-ffmpeg-timestamp.d.ts +0 -0
  202. package/dist/frame-to-ffmpeg-timestamp.js +0 -0
  203. package/dist/get-audio-codec-name.d.ts +1 -1
  204. package/dist/get-audio-codec-name.js +2 -2
  205. package/dist/get-browser-instance.d.ts +4 -3
  206. package/dist/get-browser-instance.js +3 -3
  207. package/dist/get-can-extract-frames-fast.d.ts +10 -0
  208. package/dist/get-can-extract-frames-fast.js +67 -0
  209. package/dist/get-codec-name.d.ts +1 -1
  210. package/dist/get-codec-name.js +5 -2
  211. package/dist/get-compositions-from-bundle.d.ts +7 -0
  212. package/dist/get-compositions-from-bundle.js +55 -0
  213. package/dist/get-compositions-from-markup.d.ts +3 -0
  214. package/dist/get-compositions-from-markup.js +17 -0
  215. package/dist/get-compositions-on-server.d.ts +3 -0
  216. package/dist/get-compositions-on-server.js +18 -0
  217. package/dist/get-compositions.d.ts +11 -4
  218. package/dist/get-compositions.js +30 -11
  219. package/dist/get-concurrency.d.ts +1 -1
  220. package/dist/get-concurrency.js +8 -1
  221. package/dist/get-duration-from-frame-range.d.ts +1 -2
  222. package/dist/get-duration-from-frame-range.js +13 -9
  223. package/dist/get-extension-from-codec.d.ts +2 -2
  224. package/dist/get-extension-from-codec.js +8 -5
  225. package/dist/get-extension-of-filename.d.ts +1 -1
  226. package/dist/get-extension-of-filename.js +8 -1
  227. package/dist/get-frame-of-video-slow.d.ts +15 -0
  228. package/dist/get-frame-of-video-slow.js +72 -0
  229. package/dist/get-frame-padded-index.d.ts +14 -0
  230. package/dist/get-frame-padded-index.js +34 -0
  231. package/dist/get-frame-to-render.d.ts +1 -1
  232. package/dist/get-frame-to-render.js +0 -0
  233. package/dist/get-local-browser-executable.d.ts +2 -1
  234. package/dist/get-local-browser-executable.js +8 -8
  235. package/dist/get-port.d.ts +4 -1
  236. package/dist/get-port.js +13 -22
  237. package/dist/get-prores-profile-name.d.ts +2 -1
  238. package/dist/get-prores-profile-name.js +0 -0
  239. package/dist/get-video-info.d.ts +8 -0
  240. package/dist/get-video-info.js +59 -0
  241. package/dist/get-video-signals.d.ts +2 -0
  242. package/dist/get-video-signals.js +28 -0
  243. package/dist/get-video-threads-flag.d.ts +1 -0
  244. package/dist/get-video-threads-flag.js +18 -0
  245. package/dist/guess-extension-for-media.d.ts +5 -0
  246. package/dist/guess-extension-for-media.js +28 -0
  247. package/dist/image-format.d.ts +6 -1
  248. package/dist/image-format.js +28 -1
  249. package/dist/index.d.ts +117 -34
  250. package/dist/index.js +101 -15
  251. package/dist/is-audio-codec.d.ts +2 -0
  252. package/dist/is-audio-codec.js +7 -0
  253. package/dist/is-beyond-last-frame.d.ts +3 -2
  254. package/dist/is-beyond-last-frame.js +5 -5
  255. package/dist/is-serve-url.d.ts +0 -0
  256. package/dist/is-serve-url.js +0 -0
  257. package/dist/last-frame-from-video-cache.d.ts +9 -4
  258. package/dist/last-frame-from-video-cache.js +24 -21
  259. package/dist/legacy-webpack-config.d.ts +0 -0
  260. package/dist/legacy-webpack-config.js +0 -0
  261. package/dist/lock-port-selection.d.ts +2 -0
  262. package/dist/lock-port-selection.js +11 -0
  263. package/dist/locks.d.ts +7 -0
  264. package/dist/locks.js +44 -0
  265. package/dist/log-level.d.ts +4 -0
  266. package/dist/log-level.js +15 -0
  267. package/dist/make-cancel-signal.d.ts +7 -0
  268. package/dist/make-cancel-signal.js +20 -1
  269. package/dist/make-comp-manager-context.d.ts +2 -0
  270. package/dist/make-comp-manager-context.js +45 -0
  271. package/dist/make-timeline-context-value.d.ts +2 -0
  272. package/dist/make-timeline-context-value.js +20 -0
  273. package/dist/merge-audio-track.d.ts +4 -1
  274. package/dist/merge-audio-track.js +18 -7
  275. package/dist/mime-db.d.ts +6 -0
  276. package/dist/mime-db.js +8636 -0
  277. package/dist/mime-types.d.ts +3 -0
  278. package/dist/mime-types.js +94 -0
  279. package/dist/normalize-serve-url.d.ts +0 -0
  280. package/dist/normalize-serve-url.js +0 -0
  281. package/dist/offthread-video-server.d.ts +9 -5
  282. package/dist/offthread-video-server.js +30 -10
  283. package/dist/open-browser.d.ts +5 -3
  284. package/dist/open-browser.js +18 -28
  285. package/dist/overwrite.d.ts +1 -0
  286. package/dist/overwrite.js +4 -0
  287. package/dist/p-limit.d.ts +0 -0
  288. package/dist/p-limit.js +0 -0
  289. package/dist/parse-browser-error-stack.d.ts +0 -0
  290. package/dist/parse-browser-error-stack.js +0 -0
  291. package/dist/parse-ffmpeg-progress.d.ts +0 -0
  292. package/dist/parse-ffmpeg-progress.js +0 -0
  293. package/dist/perf.d.ts +5 -0
  294. package/dist/perf.js +35 -0
  295. package/dist/pixel-format.d.ts +5 -0
  296. package/dist/pixel-format.js +29 -0
  297. package/dist/pool.d.ts +0 -0
  298. package/dist/pool.js +0 -0
  299. package/dist/prepare-server.d.ts +7 -5
  300. package/dist/prepare-server.js +24 -5
  301. package/dist/preprocess-audio-track.d.ts +5 -2
  302. package/dist/preprocess-audio-track.js +5 -4
  303. package/dist/prespawn-ffmpeg.d.ts +10 -3
  304. package/dist/prespawn-ffmpeg.js +24 -16
  305. package/dist/prestitcher-memory-usage.d.ts +12 -0
  306. package/dist/prestitcher-memory-usage.js +30 -0
  307. package/dist/prores-profile.d.ts +8 -0
  308. package/dist/prores-profile.js +23 -0
  309. package/dist/provide-screenshot.d.ts +9 -5
  310. package/dist/provide-screenshot.js +4 -2
  311. package/dist/puppeteer-evaluate.d.ts +1 -1
  312. package/dist/puppeteer-evaluate.js +3 -4
  313. package/dist/puppeteer-screenshot.d.ts +12 -2
  314. package/dist/puppeteer-screenshot.js +11 -16
  315. package/dist/quality.d.ts +1 -0
  316. package/dist/quality.js +21 -0
  317. package/dist/redirect-status-codes.d.ts +1 -0
  318. package/dist/redirect-status-codes.js +6 -0
  319. package/dist/render-frames.d.ts +30 -12
  320. package/dist/render-frames.js +232 -138
  321. package/dist/render-media.d.ts +49 -12
  322. package/dist/render-media.js +152 -30
  323. package/dist/render-on-server.d.ts +3 -0
  324. package/dist/render-on-server.js +90 -0
  325. package/dist/render-still.d.ts +21 -9
  326. package/dist/render-still.js +75 -37
  327. package/dist/render-svg.d.ts +8 -0
  328. package/dist/render-svg.js +13 -0
  329. package/dist/render-video-layer.d.ts +9 -0
  330. package/dist/render-video-layer.js +23 -0
  331. package/dist/render-web-frame.d.ts +74 -0
  332. package/dist/render-web-frame.js +259 -0
  333. package/dist/replace-browser.d.ts +6 -0
  334. package/dist/replace-browser.js +47 -0
  335. package/dist/resolve-asset-src.d.ts +0 -0
  336. package/dist/resolve-asset-src.js +0 -0
  337. package/dist/sample-rate.d.ts +0 -0
  338. package/dist/sample-rate.js +0 -0
  339. package/dist/screenshot-dom-element.d.ts +11 -8
  340. package/dist/screenshot-dom-element.js +12 -7
  341. package/dist/screenshot-task.d.ts +13 -3
  342. package/dist/screenshot-task.js +55 -27
  343. package/dist/seek-to-frame.d.ts +3 -2
  344. package/dist/seek-to-frame.js +24 -3
  345. package/dist/serve-handler/index.d.ts +1 -1
  346. package/dist/serve-handler/index.js +7 -15
  347. package/dist/serve-handler/is-path-inside.d.ts +0 -0
  348. package/dist/serve-handler/is-path-inside.js +0 -0
  349. package/dist/serve-handler/range-parser.d.ts +0 -0
  350. package/dist/serve-handler/range-parser.js +0 -0
  351. package/dist/serve-static.d.ts +5 -3
  352. package/dist/serve-static.js +20 -4
  353. package/dist/set-props-and-env.d.ts +4 -2
  354. package/dist/set-props-and-env.js +41 -15
  355. package/dist/stitch-frames-to-video.d.ts +20 -7
  356. package/dist/stitch-frames-to-video.js +175 -59
  357. package/dist/stringify-ffmpeg-filter.d.ts +4 -3
  358. package/dist/stringify-ffmpeg-filter.js +15 -11
  359. package/dist/symbolicate-stacktrace.d.ts +1 -1
  360. package/dist/symbolicate-stacktrace.js +3 -3
  361. package/dist/take-frame-and-compose.d.ts +20 -0
  362. package/dist/take-frame-and-compose.js +96 -0
  363. package/dist/tmp-dir.d.ts +0 -0
  364. package/dist/tmp-dir.js +0 -0
  365. package/dist/truthy.d.ts +3 -0
  366. package/dist/truthy.js +7 -0
  367. package/dist/try-to-extract-frame-of-video-fast.d.ts +13 -0
  368. package/dist/try-to-extract-frame-of-video-fast.js +55 -0
  369. package/dist/types.d.ts +1 -1
  370. package/dist/types.js +0 -0
  371. package/dist/validate-concurrency.d.ts +1 -0
  372. package/dist/validate-concurrency.js +29 -0
  373. package/dist/validate-even-dimensions-with-codec.d.ts +1 -1
  374. package/dist/validate-even-dimensions-with-codec.js +2 -2
  375. package/dist/validate-every-nth-frame.d.ts +2 -0
  376. package/dist/validate-every-nth-frame.js +28 -0
  377. package/dist/validate-ffmpeg-override.d.ts +2 -0
  378. package/dist/validate-ffmpeg-override.js +12 -0
  379. package/dist/validate-ffmpeg.d.ts +7 -2
  380. package/dist/validate-ffmpeg.js +48 -44
  381. package/dist/validate-frame.d.ts +1 -0
  382. package/dist/validate-frame.js +24 -0
  383. package/dist/validate-number-of-gif-loops.d.ts +2 -0
  384. package/dist/validate-number-of-gif-loops.js +24 -0
  385. package/dist/validate-opengl-renderer.d.ts +5 -0
  386. package/dist/validate-opengl-renderer.js +15 -0
  387. package/dist/validate-output-filename.d.ts +1 -1
  388. package/dist/validate-output-filename.js +5 -0
  389. package/dist/validate-puppeteer-timeout.d.ts +0 -0
  390. package/dist/validate-puppeteer-timeout.js +1 -1
  391. package/dist/validate-scale.d.ts +0 -0
  392. package/dist/validate-scale.js +0 -0
  393. package/dist/validate-videobitrate.d.ts +1 -0
  394. package/dist/validate-videobitrate.js +20 -0
  395. package/dist/wait-for-symbolication-error-to-be-done.d.ts +3 -0
  396. package/dist/wait-for-symbolication-error-to-be-done.js +8 -0
  397. package/dist/warn-about-ffmpeg-version.d.ts +5 -0
  398. package/dist/warn-about-ffmpeg-version.js +37 -0
  399. package/dist/ws/ws-types.d.ts +14 -0
  400. package/dist/ws/ws-types.js +10 -0
  401. package/package.json +30 -22
  402. package/types/ws/index.d.ts +509 -0
  403. package/.prettierrc.js +0 -14
  404. package/dist/abort.d.ts +0 -7
  405. package/dist/abort.js +0 -20
  406. package/dist/assets/cleanup-assets.d.ts +0 -2
  407. package/dist/cancel.d.ts +0 -7
  408. package/dist/cancel.js +0 -25
  409. package/dist/ensure-faststart.d.ts +0 -1
  410. package/dist/ensure-faststart.js +0 -14
  411. package/dist/faststart/atom.d.ts +0 -35
  412. package/dist/faststart/atom.js +0 -138
  413. package/dist/faststart/options.d.ts +0 -6
  414. package/dist/faststart/qt-faststart.d.ts +0 -18
  415. package/dist/faststart/qt-faststart.js +0 -66
  416. package/dist/faststart/update-chunk-offsets.d.ts +0 -10
  417. package/dist/faststart/update-chunk-offsets.js +0 -114
  418. package/dist/faststart/util.d.ts +0 -9
  419. package/dist/faststart/util.js +0 -34
  420. package/dist/get-duration-of-asset.d.ts +0 -7
  421. package/dist/get-duration-of-asset.js +0 -36
  422. package/dist/make-assets-download-dir.d.ts +0 -1
  423. package/dist/make-assets-download-dir.js +0 -13
  424. package/dist/offthread/index.d.ts +0 -0
  425. package/dist/offthread/index.js +0 -1
  426. package/dist/render-gif.d.ts +0 -2
  427. package/dist/render-gif.js +0 -242
  428. package/dist/serve-handler/glob-slash.d.ts +0 -1
  429. package/dist/serve-handler/glob-slash.js +0 -12
  430. package/dist/stitch-frames-to-gif.d.ts +0 -8
  431. package/dist/stitch-frames-to-gif.js +0 -128
  432. package/dist/validate-fps-for-gif.d.ts +0 -2
  433. package/dist/validate-fps-for-gif.js +0 -9
  434. package/tsconfig.json +0 -10
@@ -0,0 +1,3 @@
1
+ export declare const getExt: (contentType: string) => string | null;
2
+ export declare function mimeLookup(path: string): string | false;
3
+ export declare function mimeContentType(str: string): false | string;
@@ -0,0 +1,94 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.mimeContentType = exports.mimeLookup = exports.getExt = void 0;
4
+ const path_1 = require("path");
5
+ const mime_db_1 = require("./mime-db");
6
+ const extensions = {};
7
+ const types = {};
8
+ // Populate the extensions/types maps
9
+ populateMaps(extensions, {});
10
+ const getExt = (contentType) => {
11
+ var _a, _b, _c;
12
+ return (_c = (_b = (_a = mime_db_1.mimeDb[contentType.toLowerCase()]) === null || _a === void 0 ? void 0 : _a.extensions) === null || _b === void 0 ? void 0 : _b[0]) !== null && _c !== void 0 ? _c : null;
13
+ };
14
+ exports.getExt = getExt;
15
+ function mimeLookup(path) {
16
+ if (!path || typeof path !== 'string') {
17
+ return false;
18
+ }
19
+ // get the extension ("ext" or ".ext" or full path)
20
+ const ext = (0, path_1.extname)('.' + path)
21
+ .toLowerCase()
22
+ .substr(1);
23
+ if (!ext) {
24
+ return false;
25
+ }
26
+ return types[ext] || false;
27
+ }
28
+ exports.mimeLookup = mimeLookup;
29
+ /**
30
+ * Populate the extensions and types maps.
31
+ * @private
32
+ */
33
+ function populateMaps(exts, _types) {
34
+ // source preference (least -> most)
35
+ const preference = ['nginx', 'apache', undefined, 'iana'];
36
+ Object.keys(mime_db_1.mimeDb).forEach((type) => {
37
+ const mime = mime_db_1.mimeDb[type];
38
+ const _exts = mime.extensions;
39
+ if (!_exts || !_exts.length) {
40
+ return;
41
+ }
42
+ // mime -> extensions
43
+ exts[type] = _exts;
44
+ // extension -> mime
45
+ for (let i = 0; i < _exts.length; i++) {
46
+ const _ext = _exts[i];
47
+ if (_types[_ext]) {
48
+ const from = preference.indexOf(mime_db_1.mimeDb[_types[_ext]].source);
49
+ const to = preference.indexOf(mime.source);
50
+ if (_types[_ext] !== 'application/octet-stream' &&
51
+ (from > to ||
52
+ (from === to && _types[_ext].substr(0, 12) === 'application/'))) {
53
+ // skip the remapping
54
+ continue;
55
+ }
56
+ }
57
+ // set the extension -> mime
58
+ types[_ext] = type;
59
+ }
60
+ });
61
+ }
62
+ function mimeContentType(str) {
63
+ if (!str || typeof str !== 'string') {
64
+ return false;
65
+ }
66
+ let mime = str.indexOf('/') === -1 ? mimeLookup(str) : str;
67
+ if (!mime) {
68
+ return false;
69
+ }
70
+ if (mime.indexOf('charset') === -1) {
71
+ const _charset = charset(mime);
72
+ if (_charset)
73
+ mime += '; charset=' + _charset.toLowerCase();
74
+ }
75
+ return mime;
76
+ }
77
+ exports.mimeContentType = mimeContentType;
78
+ const EXTRACT_TYPE_REGEXP = /^\s*([^;\s]*)(?:;|\s|$)/;
79
+ const TEXT_TYPE_REGEXP = /^text\//i;
80
+ function charset(type) {
81
+ if (!type || typeof type !== 'string') {
82
+ return false;
83
+ }
84
+ const match = EXTRACT_TYPE_REGEXP.exec(type);
85
+ const mime = match && mime_db_1.mimeDb[match[1].toLowerCase()];
86
+ if (mime === null || mime === void 0 ? void 0 : mime.charset) {
87
+ return mime.charset;
88
+ }
89
+ // default text/* to utf-8
90
+ if (match && TEXT_TYPE_REGEXP.test(match[1])) {
91
+ return 'UTF-8';
92
+ }
93
+ return false;
94
+ }
File without changes
File without changes
@@ -1,14 +1,18 @@
1
- import { RequestListener } from 'http';
2
- import { FfmpegExecutable } from 'remotion';
3
- import { RenderMediaOnDownload } from './assets/download-and-map-assets-to-file';
1
+ import type { RequestListener } from 'http';
2
+ import type { OffthreadVideoImageFormat } from 'remotion';
3
+ import type { RenderMediaOnDownload } from './assets/download-and-map-assets-to-file';
4
+ import type { DownloadMap } from './assets/download-map';
5
+ import type { FfmpegExecutable } from './ffmpeg-executable';
4
6
  export declare const extractUrlAndSourceFromUrl: (url: string) => {
5
7
  src: string;
6
8
  time: number;
9
+ imageFormat: OffthreadVideoImageFormat;
7
10
  };
8
- export declare const startOffthreadVideoServer: ({ ffmpegExecutable, ffprobeExecutable, downloadDir, onDownload, onError, }: {
11
+ export declare const startOffthreadVideoServer: ({ ffmpegExecutable, ffprobeExecutable, onDownload, onError, downloadMap, remotionRoot, }: {
9
12
  ffmpegExecutable: FfmpegExecutable;
10
13
  ffprobeExecutable: FfmpegExecutable;
11
- downloadDir: string;
12
14
  onDownload: RenderMediaOnDownload;
13
15
  onError: (err: Error) => void;
16
+ downloadMap: DownloadMap;
17
+ remotionRoot: string;
14
18
  }) => RequestListener;
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.startOffthreadVideoServer = exports.extractUrlAndSourceFromUrl = void 0;
4
+ const remotion_1 = require("remotion");
4
5
  const url_1 = require("url");
5
6
  const download_and_map_assets_to_file_1 = require("./assets/download-and-map-assets-to-file");
6
7
  const extract_frame_from_video_1 = require("./extract-frame-from-video");
@@ -19,10 +20,19 @@ const extractUrlAndSourceFromUrl = (url) => {
19
20
  if (!time) {
20
21
  throw new Error('Did not get `time` parameter');
21
22
  }
22
- return { src, time: parseFloat(time) };
23
+ const imageFormat = params.get('imageFormat');
24
+ if (!imageFormat) {
25
+ throw new TypeError('Did not get `imageFormat` parameter');
26
+ }
27
+ remotion_1.Internals.validateOffthreadVideoImageFormat(imageFormat);
28
+ return {
29
+ src,
30
+ time: parseFloat(time),
31
+ imageFormat: imageFormat,
32
+ };
23
33
  };
24
34
  exports.extractUrlAndSourceFromUrl = extractUrlAndSourceFromUrl;
25
- const startOffthreadVideoServer = ({ ffmpegExecutable, ffprobeExecutable, downloadDir, onDownload, onError, }) => {
35
+ const startOffthreadVideoServer = ({ ffmpegExecutable, ffprobeExecutable, onDownload, onError, downloadMap, remotionRoot, }) => {
26
36
  return (req, res) => {
27
37
  if (!req.url) {
28
38
  throw new Error('Request came in without URL');
@@ -32,20 +42,30 @@ const startOffthreadVideoServer = ({ ffmpegExecutable, ffprobeExecutable, downlo
32
42
  res.end();
33
43
  return;
34
44
  }
45
+ const { src, time, imageFormat } = (0, exports.extractUrlAndSourceFromUrl)(req.url);
35
46
  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(() => {
47
+ res.setHeader('content-type', `image/${imageFormat === 'jpeg' ? 'jpg' : 'png'}`);
48
+ // Handling this case on Lambda:
49
+ // https://support.google.com/chrome/a/answer/7679408?hl=en
50
+ // Chrome sends Private Network Access preflights for subresources
51
+ if (req.method === 'OPTIONS') {
52
+ res.statusCode = 200;
53
+ if (req.headers['access-control-request-private-network']) {
54
+ res.setHeader('Access-Control-Allow-Private-Network', 'true');
55
+ }
56
+ res.end();
57
+ return;
58
+ }
59
+ (0, download_and_map_assets_to_file_1.downloadAsset)({ src, onDownload, downloadMap })
60
+ .then((to) => {
44
61
  return (0, extract_frame_from_video_1.extractFrameFromVideo)({
45
62
  time,
46
63
  src: to,
47
64
  ffmpegExecutable,
48
65
  ffprobeExecutable,
66
+ imageFormat,
67
+ downloadMap,
68
+ remotionRoot,
49
69
  });
50
70
  })
51
71
  .then((readable) => {
@@ -1,5 +1,6 @@
1
- import puppeteer from 'puppeteer-core';
2
- import { Browser } from 'remotion';
1
+ import type { Browser } from './browser';
2
+ import type { Browser as PuppeteerBrowser } from './browser/Browser';
3
+ import type { Viewport } from './browser/PuppeteerViewport';
3
4
  declare const validRenderers: readonly ["swangle", "angle", "egl", "swiftshader"];
4
5
  declare type OpenGlRenderer = typeof validRenderers[number];
5
6
  export declare type ChromiumOptions = {
@@ -14,5 +15,6 @@ export declare const openBrowser: (browser: Browser, options?: {
14
15
  browserExecutable?: string | null;
15
16
  chromiumOptions?: ChromiumOptions;
16
17
  forceDeviceScaleFactor?: number;
17
- }) => Promise<puppeteer.Browser>;
18
+ viewport?: Viewport;
19
+ }) => Promise<PuppeteerBrowser>;
18
20
  export {};
@@ -1,19 +1,14 @@
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.openBrowser = exports.killAllBrowsers = void 0;
7
- const fs_1 = __importDefault(require("fs"));
8
- const os_1 = __importDefault(require("os"));
9
- const path_1 = __importDefault(require("path"));
10
- const puppeteer_core_1 = __importDefault(require("puppeteer-core"));
11
- const remotion_1 = require("remotion");
4
+ const node_1 = require("./browser/node");
12
5
  const get_local_browser_executable_1 = require("./get-local-browser-executable");
6
+ const get_video_threads_flag_1 = require("./get-video-threads-flag");
7
+ const validate_opengl_renderer_1 = require("./validate-opengl-renderer");
13
8
  const validRenderers = ['swangle', 'angle', 'egl', 'swiftshader'];
14
9
  const getOpenGlRenderer = (option) => {
15
- const renderer = option !== null && option !== void 0 ? option : remotion_1.Internals.DEFAULT_OPENGL_RENDERER;
16
- remotion_1.Internals.validateOpenGlRenderer(renderer);
10
+ const renderer = option !== null && option !== void 0 ? option : validate_opengl_renderer_1.DEFAULT_OPENGL_RENDERER;
11
+ (0, validate_opengl_renderer_1.validateOpenGlRenderer)(renderer);
17
12
  if (renderer === 'swangle') {
18
13
  return [`--use-gl=angle`, `--use-angle=swiftshader`];
19
14
  }
@@ -26,25 +21,24 @@ const browserInstances = [];
26
21
  const killAllBrowsers = async () => {
27
22
  for (const browser of browserInstances) {
28
23
  try {
29
- await browser.close();
24
+ await browser.close(true);
30
25
  }
31
26
  catch (err) { }
32
27
  }
33
28
  };
34
29
  exports.killAllBrowsers = killAllBrowsers;
35
30
  const openBrowser = async (browser, options) => {
36
- var _a, _b, _c, _d, _e, _f, _g, _h, _j;
37
- if (browser === 'firefox' && !remotion_1.Internals.FEATURE_FLAG_FIREFOX_SUPPORT) {
31
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
32
+ if (browser === 'firefox') {
38
33
  throw new TypeError('Firefox supported is not yet turned on. Stay tuned for the future.');
39
34
  }
40
35
  await (0, get_local_browser_executable_1.ensureLocalBrowser)(browser, (_a = options === null || options === void 0 ? void 0 : options.browserExecutable) !== null && _a !== void 0 ? _a : null);
41
36
  const executablePath = (0, get_local_browser_executable_1.getLocalBrowserExecutable)(browser, (_b = options === null || options === void 0 ? void 0 : options.browserExecutable) !== null && _b !== void 0 ? _b : null);
42
37
  const customGlRenderer = getOpenGlRenderer((_d = (_c = options === null || options === void 0 ? void 0 : options.chromiumOptions) === null || _c === void 0 ? void 0 : _c.gl) !== null && _d !== void 0 ? _d : null);
43
- const browserInstance = await puppeteer_core_1.default.launch({
38
+ const browserInstance = await node_1.puppeteer.launch({
44
39
  executablePath,
45
40
  product: browser,
46
41
  dumpio: (_e = options === null || options === void 0 ? void 0 : options.shouldDumpIo) !== null && _e !== void 0 ? _e : false,
47
- ignoreDefaultArgs: true,
48
42
  args: [
49
43
  'about:blank',
50
44
  '--allow-pre-commit-input',
@@ -57,14 +51,11 @@ const openBrowser = async (browser, options) => {
57
51
  '--disable-component-extensions-with-background-pages',
58
52
  '--disable-default-apps',
59
53
  '--disable-dev-shm-usage',
60
- '--disable-extensions',
61
54
  '--no-proxy-server',
62
55
  "--proxy-server='direct://'",
63
56
  '--proxy-bypass-list=*',
64
- // TODO: remove AvoidUnnecessaryBeforeUnloadCheckSync below
65
- // once crbug.com/1324138 is fixed and released.
66
- '--disable-features=Translate,BackForwardCache,AvoidUnnecessaryBeforeUnloadCheckSync',
67
57
  '--disable-hang-monitor',
58
+ '--disable-extensions',
68
59
  '--disable-ipc-flooding-protection',
69
60
  '--disable-popup-blocking',
70
61
  '--disable-prompt-on-repost',
@@ -73,12 +64,10 @@ const openBrowser = async (browser, options) => {
73
64
  '--force-color-profile=srgb',
74
65
  '--metrics-recording-only',
75
66
  '--no-first-run',
76
- '--video-threads=16',
67
+ '--video-threads=' + (0, get_video_threads_flag_1.getIdealVideoThreadsFlag)(),
77
68
  '--enable-automation',
78
69
  '--password-store=basic',
79
70
  '--use-mock-keychain',
80
- // TODO(sadym): remove '--enable-blink-features=IdleDetection'
81
- // once IdleDetection is turned on by default.
82
71
  '--enable-blink-features=IdleDetection',
83
72
  '--export-tagged-pdf',
84
73
  '--intensive-wake-up-throttling-policy=0',
@@ -91,7 +80,7 @@ const openBrowser = async (browser, options) => {
91
80
  '--allow-running-insecure-content',
92
81
  '--disable-component-update',
93
82
  '--disable-domain-reliability',
94
- '--disable-features=AudioServiceOutOfProcess,IsolateOrigins,site-per-process',
83
+ '--disable-features=AudioServiceOutOfProcess,IsolateOrigins,site-per-process,Translate,BackForwardCache,AvoidUnnecessaryBeforeUnloadCheckSync,IntensiveWakeUpThrottling',
95
84
  '--disable-print-preview',
96
85
  '--disable-site-isolation-trials',
97
86
  '--disk-cache-size=268435456',
@@ -107,13 +96,14 @@ const openBrowser = async (browser, options) => {
107
96
  ? '--ignore-certificate-errors'
108
97
  : null,
109
98
  ...(((_j = options === null || options === void 0 ? void 0 : options.chromiumOptions) === null || _j === void 0 ? void 0 : _j.disableWebSecurity)
110
- ? [
111
- '--disable-web-security',
112
- '--user-data-dir=' +
113
- (await fs_1.default.promises.mkdtemp(path_1.default.join(os_1.default.tmpdir(), 'chrome-user-dir'))),
114
- ]
99
+ ? ['--disable-web-security']
115
100
  : []),
116
101
  ].filter(Boolean),
102
+ defaultViewport: (_k = options === null || options === void 0 ? void 0 : options.viewport) !== null && _k !== void 0 ? _k : {
103
+ height: 720,
104
+ width: 1280,
105
+ deviceScaleFactor: 1,
106
+ },
117
107
  });
118
108
  const pages = await browserInstance.pages();
119
109
  await pages[0].close();
@@ -0,0 +1 @@
1
+ export declare const DEFAULT_OVERWRITE = true;
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DEFAULT_OVERWRITE = void 0;
4
+ exports.DEFAULT_OVERWRITE = true;
package/dist/p-limit.d.ts CHANGED
File without changes
package/dist/p-limit.js CHANGED
File without changes
File without changes
File without changes
File without changes
File without changes
package/dist/perf.d.ts ADDED
@@ -0,0 +1,5 @@
1
+ declare type PerfId = 'activate-target' | 'capture' | 'save' | 'extract-frame' | 'piping';
2
+ export declare const startPerfMeasure: (marker: PerfId) => number;
3
+ export declare const stopPerfMeasure: (id: number) => void;
4
+ export declare const logPerf: () => void;
5
+ export {};
package/dist/perf.js ADDED
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.logPerf = exports.stopPerfMeasure = exports.startPerfMeasure = void 0;
4
+ const perf = {
5
+ 'activate-target': [],
6
+ capture: [],
7
+ save: [],
8
+ 'extract-frame': [],
9
+ piping: [],
10
+ };
11
+ const map = {};
12
+ const startPerfMeasure = (marker) => {
13
+ const id = Math.random();
14
+ map[id] = {
15
+ id,
16
+ marker,
17
+ start: Date.now(),
18
+ };
19
+ return id;
20
+ };
21
+ exports.startPerfMeasure = startPerfMeasure;
22
+ const stopPerfMeasure = (id) => {
23
+ const now = Date.now();
24
+ const diff = now - map[id].start;
25
+ perf[map[id].marker].push(diff);
26
+ delete map[id];
27
+ };
28
+ exports.stopPerfMeasure = stopPerfMeasure;
29
+ const logPerf = () => {
30
+ console.log('Render performance:');
31
+ Object.keys(perf).forEach((p) => {
32
+ console.log(` ${p} => ${perf[p].reduce((a, b) => a + b, 0) / perf[p].length} (n = ${perf[p].length})`);
33
+ });
34
+ };
35
+ exports.logPerf = logPerf;
@@ -0,0 +1,5 @@
1
+ import type { Codec } from './codec';
2
+ export declare const validPixelFormats: readonly ["yuv420p", "yuva420p", "yuv422p", "yuv444p", "yuv420p10le", "yuv422p10le", "yuv444p10le", "yuva444p10le"];
3
+ export declare type PixelFormat = typeof validPixelFormats[number];
4
+ export declare const DEFAULT_PIXEL_FORMAT: PixelFormat;
5
+ export declare const validateSelectedPixelFormatAndCodecCombination: (pixelFormat: PixelFormat | undefined, codec: Codec) => undefined;
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.validateSelectedPixelFormatAndCodecCombination = exports.DEFAULT_PIXEL_FORMAT = exports.validPixelFormats = void 0;
4
+ exports.validPixelFormats = [
5
+ 'yuv420p',
6
+ 'yuva420p',
7
+ 'yuv422p',
8
+ 'yuv444p',
9
+ 'yuv420p10le',
10
+ 'yuv422p10le',
11
+ 'yuv444p10le',
12
+ 'yuva444p10le',
13
+ ];
14
+ exports.DEFAULT_PIXEL_FORMAT = 'yuv420p';
15
+ const validateSelectedPixelFormatAndCodecCombination = (pixelFormat, codec) => {
16
+ if (typeof pixelFormat === 'undefined') {
17
+ return pixelFormat;
18
+ }
19
+ if (!exports.validPixelFormats.includes(pixelFormat)) {
20
+ throw new TypeError(`Value ${pixelFormat} is not valid as a pixel format.`);
21
+ }
22
+ if (pixelFormat !== 'yuva420p') {
23
+ return;
24
+ }
25
+ if (codec !== 'vp8' && codec !== 'vp9') {
26
+ throw new TypeError("Pixel format was set to 'yuva420p' but codec is not 'vp8' or 'vp9'. To render videos with alpha channel, you must choose a codec that supports it.");
27
+ }
28
+ };
29
+ exports.validateSelectedPixelFormatAndCodecCombination = validateSelectedPixelFormatAndCodecCombination;
package/dist/pool.d.ts CHANGED
File without changes
package/dist/pool.js CHANGED
File without changes
@@ -1,15 +1,17 @@
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, }: {
1
+ import type { RenderMediaOnDownload } from './assets/download-and-map-assets-to-file';
2
+ import type { DownloadMap } from './assets/download-map';
3
+ import type { FfmpegExecutable } from './ffmpeg-executable';
4
+ export declare const prepareServer: ({ ffmpegExecutable, ffprobeExecutable, onDownload, onError, webpackConfigOrServeUrl, port, downloadMap, remotionRoot, }: {
4
5
  webpackConfigOrServeUrl: string;
5
- downloadDir: string;
6
6
  onDownload: RenderMediaOnDownload;
7
7
  onError: (err: Error) => void;
8
8
  ffmpegExecutable: FfmpegExecutable;
9
9
  ffprobeExecutable: FfmpegExecutable;
10
10
  port: number | null;
11
+ downloadMap: DownloadMap;
12
+ remotionRoot: string;
11
13
  }) => Promise<{
12
14
  serveUrl: string;
13
- closeServer: () => Promise<unknown>;
15
+ closeServer: (force: boolean) => Promise<unknown>;
14
16
  offthreadPort: number;
15
17
  }>;
@@ -1,34 +1,53 @@
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 ({ downloadDir, ffmpegExecutable, ffprobeExecutable, onDownload, onError, webpackConfigOrServeUrl, port, }) => {
11
+ const wait_for_symbolication_error_to_be_done_1 = require("./wait-for-symbolication-error-to-be-done");
12
+ const prepareServer = async ({ ffmpegExecutable, ffprobeExecutable, onDownload, onError, webpackConfigOrServeUrl, port, downloadMap, remotionRoot, }) => {
7
13
  if ((0, is_serve_url_1.isServeUrl)(webpackConfigOrServeUrl)) {
8
14
  const { port: offthreadPort, close: closeProxy } = await (0, serve_static_1.serveStatic)(null, {
9
- downloadDir,
10
15
  onDownload,
11
16
  onError,
12
17
  ffmpegExecutable,
13
18
  ffprobeExecutable,
14
19
  port,
20
+ downloadMap,
21
+ remotionRoot,
15
22
  });
16
23
  return Promise.resolve({
17
24
  serveUrl: webpackConfigOrServeUrl,
18
- closeServer: () => closeProxy(),
25
+ closeServer: () => {
26
+ return closeProxy();
27
+ },
19
28
  offthreadPort,
20
29
  });
21
30
  }
31
+ // Check if the path has a `index.html` file
32
+ const indexFile = path_1.default.join(webpackConfigOrServeUrl, 'index.html');
33
+ const exists = (0, fs_1.existsSync)(indexFile);
34
+ if (!exists) {
35
+ 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?`);
36
+ }
22
37
  const { port: serverPort, close } = await (0, serve_static_1.serveStatic)(webpackConfigOrServeUrl, {
23
- downloadDir,
24
38
  onDownload,
25
39
  onError,
26
40
  ffmpegExecutable,
27
41
  ffprobeExecutable,
28
42
  port,
43
+ downloadMap,
44
+ remotionRoot,
29
45
  });
30
46
  return Promise.resolve({
31
- closeServer: () => {
47
+ closeServer: async (force) => {
48
+ if (!force) {
49
+ await (0, wait_for_symbolication_error_to_be_done_1.waitForSymbolicationToBeDone)();
50
+ }
32
51
  return close();
33
52
  },
34
53
  serveUrl: `http://localhost:${serverPort}`,
@@ -1,5 +1,6 @@
1
- import { FfmpegExecutable } from 'remotion';
2
- import { MediaAsset } from './assets/types';
1
+ import type { DownloadMap } from './assets/download-map';
2
+ import type { MediaAsset } from './assets/types';
3
+ import type { FfmpegExecutable } from './ffmpeg-executable';
3
4
  declare type Options = {
4
5
  ffmpegExecutable: FfmpegExecutable;
5
6
  ffprobeExecutable: FfmpegExecutable;
@@ -7,6 +8,8 @@ declare type Options = {
7
8
  asset: MediaAsset;
8
9
  expectedFrames: number;
9
10
  fps: number;
11
+ downloadMap: DownloadMap;
12
+ remotionRoot: string;
10
13
  };
11
14
  export declare const preprocessAudioTrack: (options: Options) => Promise<string | null>;
12
15
  export {};
@@ -8,10 +8,11 @@ const execa_1 = __importDefault(require("execa"));
8
8
  const get_audio_channels_1 = require("./assets/get-audio-channels");
9
9
  const calculate_ffmpeg_filters_1 = require("./calculate-ffmpeg-filters");
10
10
  const ffmpeg_filter_file_1 = require("./ffmpeg-filter-file");
11
+ const ffmpeg_flags_1 = require("./ffmpeg-flags");
11
12
  const p_limit_1 = require("./p-limit");
12
13
  const resolve_asset_src_1 = require("./resolve-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);
14
+ const preprocessAudioTrackUnlimited = async ({ ffmpegExecutable, ffprobeExecutable, outName, asset, expectedFrames, fps, downloadMap, remotionRoot, }) => {
15
+ const { channels, duration } = await (0, get_audio_channels_1.getAudioChannelsAndDuration)(downloadMap, (0, resolve_asset_src_1.resolveAssetSrc)(asset.src), ffprobeExecutable, remotionRoot);
15
16
  const filter = (0, calculate_ffmpeg_filters_1.calculateFfmpegFilter)({
16
17
  asset,
17
18
  durationInFrames: expectedFrames,
@@ -22,7 +23,7 @@ const preprocessAudioTrackUnlimited = async ({ ffmpegExecutable, ffprobeExecutab
22
23
  if (filter === null) {
23
24
  return null;
24
25
  }
25
- const { cleanup, file } = await (0, ffmpeg_filter_file_1.makeFfmpegFilterFile)(filter);
26
+ const { cleanup, file } = await (0, ffmpeg_filter_file_1.makeFfmpegFilterFile)(filter, downloadMap);
26
27
  const args = [
27
28
  ['-i', (0, resolve_asset_src_1.resolveAssetSrc)(asset.src)],
28
29
  ['-ac', '2'],
@@ -30,7 +31,7 @@ const preprocessAudioTrackUnlimited = async ({ ffmpegExecutable, ffprobeExecutab
30
31
  ['-c:a', 'pcm_s16le'],
31
32
  ['-y', outName],
32
33
  ].flat(2);
33
- await (0, execa_1.default)(ffmpegExecutable !== null && ffmpegExecutable !== void 0 ? ffmpegExecutable : 'ffmpeg', args);
34
+ await (0, execa_1.default)(await (0, ffmpeg_flags_1.getExecutableBinary)(ffmpegExecutable, remotionRoot, 'ffmpeg'), args);
34
35
  cleanup();
35
36
  return outName;
36
37
  };
@@ -1,6 +1,11 @@
1
1
  import execa from 'execa';
2
- import { Codec, FfmpegExecutable, ImageFormat, PixelFormat, ProResProfile } from 'remotion';
3
- import { CancelSignal } from './make-cancel-signal';
2
+ import type { Codec } from './codec';
3
+ import type { FfmpegExecutable } from './ffmpeg-executable';
4
+ import type { FfmpegOverrideFn } from './ffmpeg-override';
5
+ import type { ImageFormat } from './image-format';
6
+ import type { CancelSignal } from './make-cancel-signal';
7
+ import type { PixelFormat } from './pixel-format';
8
+ import type { ProResProfile } from './prores-profile';
4
9
  declare type PreSticherOptions = {
5
10
  fps: number;
6
11
  width: number;
@@ -14,9 +19,11 @@ declare type PreSticherOptions = {
14
19
  verbose: boolean;
15
20
  ffmpegExecutable: FfmpegExecutable | undefined;
16
21
  imageFormat: ImageFormat;
22
+ ffmpegOverride: FfmpegOverrideFn;
17
23
  signal: CancelSignal;
24
+ videoBitrate: string | null;
18
25
  };
19
- export declare const prespawnFfmpeg: (options: PreSticherOptions) => Promise<{
26
+ export declare const prespawnFfmpeg: (options: PreSticherOptions, remotionRoot: string) => Promise<{
20
27
  task: execa.ExecaChildProcess<string>;
21
28
  getLogs: () => string;
22
29
  }>;