@remotion/renderer 4.0.0-offthread.9 → 4.0.0-prefetch.10

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 (429) hide show
  1. package/dist/assets/calculate-asset-positions.d.ts +2 -2
  2. package/dist/assets/convert-assets-to-file-urls.d.ts +5 -4
  3. package/dist/assets/convert-assets-to-file-urls.js +2 -2
  4. package/dist/assets/download-and-map-assets-to-file.d.ts +16 -12
  5. package/dist/assets/download-and-map-assets-to-file.js +145 -65
  6. package/dist/assets/download-file.d.ts +10 -5
  7. package/dist/assets/download-file.js +20 -5
  8. package/dist/assets/download-map.d.ts +64 -0
  9. package/dist/assets/download-map.js +73 -0
  10. package/dist/assets/ffmpeg-volume-expression.d.ts +2 -3
  11. package/dist/assets/ffmpeg-volume-expression.js +2 -3
  12. package/dist/assets/flatten-volume-array.d.ts +1 -1
  13. package/dist/assets/get-audio-channels.d.ts +3 -4
  14. package/dist/assets/get-audio-channels.js +14 -4
  15. package/dist/assets/get-video-stream-duration.d.ts +4 -0
  16. package/dist/assets/get-video-stream-duration.js +59 -0
  17. package/dist/assets/read-file.js +4 -1
  18. package/dist/assets/types.d.ts +1 -1
  19. package/dist/browser/Browser.d.ts +60 -0
  20. package/dist/browser/Browser.js +218 -0
  21. package/dist/browser/BrowserConnector.d.ts +19 -0
  22. package/dist/browser/BrowserConnector.js +17 -0
  23. package/dist/browser/BrowserFetcher.d.ts +89 -0
  24. package/dist/browser/BrowserFetcher.js +510 -0
  25. package/dist/browser/BrowserPage.d.ts +74 -0
  26. package/dist/browser/BrowserPage.js +283 -0
  27. package/dist/browser/BrowserRunner.d.ts +39 -0
  28. package/dist/browser/BrowserRunner.js +308 -0
  29. package/dist/browser/Connection.d.ts +42 -0
  30. package/dist/browser/Connection.js +242 -0
  31. package/dist/browser/ConsoleMessage.d.ts +31 -0
  32. package/dist/browser/ConsoleMessage.js +48 -0
  33. package/dist/browser/DOMWorld.d.ts +52 -0
  34. package/dist/browser/DOMWorld.js +272 -0
  35. package/dist/browser/Errors.d.ts +25 -0
  36. package/dist/browser/Errors.js +35 -0
  37. package/dist/browser/EvalTypes.d.ts +27 -0
  38. package/dist/browser/EvalTypes.js +17 -0
  39. package/dist/browser/EventEmitter.d.ts +23 -0
  40. package/dist/browser/EventEmitter.js +53 -0
  41. package/dist/browser/ExecutionContext.d.ts +34 -0
  42. package/dist/browser/ExecutionContext.js +174 -0
  43. package/dist/browser/FrameManager.d.ts +93 -0
  44. package/dist/browser/FrameManager.js +496 -0
  45. package/dist/browser/HTTPRequest.d.ts +28 -0
  46. package/dist/browser/HTTPRequest.js +37 -0
  47. package/dist/browser/HTTPResponse.d.ts +21 -0
  48. package/dist/browser/HTTPResponse.js +41 -0
  49. package/dist/browser/JSHandle.d.ts +35 -0
  50. package/dist/browser/JSHandle.js +90 -0
  51. package/dist/browser/LaunchOptions.d.ts +37 -0
  52. package/dist/browser/LaunchOptions.js +17 -0
  53. package/dist/browser/Launcher.d.ts +9 -0
  54. package/dist/browser/Launcher.js +504 -0
  55. package/dist/browser/LifecycleWatcher.d.ts +29 -0
  56. package/dist/browser/LifecycleWatcher.js +180 -0
  57. package/dist/browser/NetworkEventManager.d.ts +33 -0
  58. package/dist/browser/NetworkEventManager.js +81 -0
  59. package/dist/browser/NetworkManager.d.ts +34 -0
  60. package/dist/browser/NetworkManager.js +231 -0
  61. package/dist/browser/NodeWebSocketTransport.d.ts +17 -0
  62. package/dist/browser/NodeWebSocketTransport.js +87 -0
  63. package/dist/browser/Product.d.ts +16 -0
  64. package/dist/browser/Product.js +17 -0
  65. package/dist/browser/PuppeteerNode.d.ts +40 -0
  66. package/dist/browser/PuppeteerNode.js +81 -0
  67. package/dist/browser/PuppeteerViewport.d.ts +5 -0
  68. package/dist/browser/PuppeteerViewport.js +2 -0
  69. package/dist/browser/ScreenshotOptions.d.ts +14 -0
  70. package/dist/browser/ScreenshotOptions.js +2 -0
  71. package/dist/browser/Target.d.ts +61 -0
  72. package/dist/browser/Target.js +146 -0
  73. package/dist/browser/TaskQueue.d.ts +20 -0
  74. package/dist/browser/TaskQueue.js +47 -0
  75. package/dist/browser/TimeoutSettings.d.ts +24 -0
  76. package/dist/browser/TimeoutSettings.js +62 -0
  77. package/dist/browser/assert.d.ts +1 -0
  78. package/dist/browser/assert.js +9 -0
  79. package/dist/browser/create-browser-fetcher.d.ts +17 -0
  80. package/dist/browser/create-browser-fetcher.js +119 -0
  81. package/dist/browser/devtools-commands.d.ts +270 -0
  82. package/dist/browser/devtools-commands.js +2 -0
  83. package/dist/browser/devtools-types.d.ts +1122 -0
  84. package/dist/browser/devtools-types.js +2 -0
  85. package/dist/browser/get-download-destination.d.ts +1 -0
  86. package/dist/browser/get-download-destination.js +38 -0
  87. package/dist/browser/mitt/index.d.ts +22 -0
  88. package/dist/browser/mitt/index.js +49 -0
  89. package/dist/browser/node.d.ts +2 -0
  90. package/dist/browser/node.js +9 -0
  91. package/dist/browser/revisions.d.ts +21 -0
  92. package/dist/browser/revisions.js +22 -0
  93. package/dist/browser/util.d.ts +47 -0
  94. package/dist/browser/util.js +169 -0
  95. package/dist/browser-executable.d.ts +1 -0
  96. package/dist/browser-executable.js +2 -0
  97. package/dist/browser-log.d.ts +1 -1
  98. package/dist/browser.d.ts +2 -0
  99. package/dist/browser.js +4 -0
  100. package/dist/calculate-ffmpeg-filters.d.ts +1 -1
  101. package/dist/calculate-ffmpeg-filters.js +2 -2
  102. package/dist/calculate-sar-dar-pixels.d.ts +9 -0
  103. package/dist/calculate-sar-dar-pixels.js +19 -0
  104. package/dist/can-use-parallel-encoding.d.ts +1 -1
  105. package/dist/can-use-parallel-encoding.js +2 -2
  106. package/dist/codec-supports-media.d.ts +8 -0
  107. package/dist/codec-supports-media.js +56 -0
  108. package/dist/codec.d.ts +4 -0
  109. package/dist/codec.js +16 -0
  110. package/dist/combine-videos.d.ts +3 -2
  111. package/dist/combine-videos.js +17 -7
  112. package/dist/compress-assets.d.ts +7 -0
  113. package/dist/compress-assets.js +25 -0
  114. package/dist/convert-number-of-gif-loops-to-ffmpeg.d.ts +1 -0
  115. package/dist/convert-number-of-gif-loops-to-ffmpeg.js +17 -0
  116. package/dist/convert-to-pcm.d.ts +1 -1
  117. package/dist/create-ffmpeg-complex-filter.d.ts +2 -1
  118. package/dist/create-ffmpeg-complex-filter.js +2 -11
  119. package/dist/create-ffmpeg-merge-filter.js +3 -3
  120. package/dist/create-silent-audio.d.ts +1 -1
  121. package/dist/crf.d.ts +5 -0
  122. package/dist/crf.js +64 -0
  123. package/dist/cycle-browser-tabs.d.ts +1 -1
  124. package/dist/delay-render-embedded-stack.d.ts +1 -1
  125. package/dist/ensure-frames-in-order.d.ts +1 -1
  126. package/dist/ensure-frames-in-order.js +3 -2
  127. package/dist/ensure-presentation-timestamp.d.ts +2 -0
  128. package/dist/ensure-presentation-timestamp.js +69 -0
  129. package/dist/error-handling/handle-javascript-exception.d.ts +2 -2
  130. package/dist/error-handling/handle-javascript-exception.js +3 -4
  131. package/dist/error-handling/symbolicate-error.d.ts +1 -1
  132. package/dist/error-handling/symbolicateable-error.d.ts +1 -1
  133. package/dist/extract-frame-from-video.d.ts +8 -4
  134. package/dist/extract-frame-from-video.js +173 -55
  135. package/dist/ffmpeg-executable.d.ts +1 -0
  136. package/dist/ffmpeg-executable.js +2 -0
  137. package/dist/ffmpeg-filter-file.d.ts +2 -1
  138. package/dist/ffmpeg-filter-file.js +4 -6
  139. package/dist/frame-range.d.ts +2 -0
  140. package/dist/frame-range.js +49 -0
  141. package/dist/get-audio-codec-name.d.ts +1 -1
  142. package/dist/get-audio-codec-name.js +2 -2
  143. package/dist/get-browser-instance.d.ts +4 -3
  144. package/dist/get-browser-instance.js +2 -2
  145. package/dist/get-codec-name.d.ts +1 -1
  146. package/dist/get-codec-name.js +5 -2
  147. package/dist/get-compositions.d.ts +12 -4
  148. package/dist/get-compositions.js +18 -11
  149. package/dist/get-duration-from-frame-range.d.ts +1 -2
  150. package/dist/get-duration-from-frame-range.js +13 -9
  151. package/dist/get-extension-from-codec.d.ts +2 -2
  152. package/dist/get-extension-from-codec.js +5 -0
  153. package/dist/get-extension-of-filename.d.ts +1 -1
  154. package/dist/get-extension-of-filename.js +3 -0
  155. package/dist/get-frame-padded-index.d.ts +14 -0
  156. package/dist/get-frame-padded-index.js +33 -0
  157. package/dist/get-frame-to-render.d.ts +1 -1
  158. package/dist/get-local-browser-executable.d.ts +2 -1
  159. package/dist/get-local-browser-executable.js +7 -5
  160. package/dist/get-port.js +30 -37
  161. package/dist/get-prores-profile-name.d.ts +2 -1
  162. package/dist/get-video-info.d.ts +3 -0
  163. package/dist/get-video-info.js +49 -0
  164. package/dist/get-video-threads-flag.d.ts +1 -0
  165. package/dist/get-video-threads-flag.js +18 -0
  166. package/dist/guess-extension-for-media.d.ts +1 -0
  167. package/dist/guess-extension-for-media.js +27 -0
  168. package/dist/image-format.d.ts +6 -1
  169. package/dist/image-format.js +25 -1
  170. package/dist/index.d.ts +89 -14
  171. package/dist/index.js +91 -2
  172. package/dist/is-audio-codec.d.ts +2 -0
  173. package/dist/is-audio-codec.js +7 -0
  174. package/dist/is-beyond-last-frame.d.ts +3 -2
  175. package/dist/is-beyond-last-frame.js +5 -5
  176. package/dist/last-frame-from-video-cache.d.ts +9 -4
  177. package/dist/last-frame-from-video-cache.js +24 -21
  178. package/dist/log-level.d.ts +4 -0
  179. package/dist/log-level.js +15 -0
  180. package/dist/merge-audio-track.d.ts +3 -1
  181. package/dist/merge-audio-track.js +12 -6
  182. package/dist/mime-db.d.ts +6 -0
  183. package/dist/mime-db.js +8636 -0
  184. package/dist/mime-types.d.ts +3 -0
  185. package/dist/mime-types.js +94 -0
  186. package/dist/offthread-video-server.d.ts +9 -5
  187. package/dist/offthread-video-server.js +31 -10
  188. package/dist/open-browser.d.ts +5 -3
  189. package/dist/open-browser.js +15 -15
  190. package/dist/overwrite.d.ts +1 -0
  191. package/dist/overwrite.js +4 -0
  192. package/dist/perf.d.ts +5 -0
  193. package/dist/perf.js +35 -0
  194. package/dist/pixel-format.d.ts +5 -0
  195. package/dist/pixel-format.js +26 -0
  196. package/dist/prepare-server.d.ts +6 -4
  197. package/dist/prepare-server.js +21 -5
  198. package/dist/preprocess-audio-track.d.ts +5 -2
  199. package/dist/preprocess-audio-track.js +3 -3
  200. package/dist/prespawn-ffmpeg.d.ts +6 -2
  201. package/dist/prespawn-ffmpeg.js +10 -7
  202. package/dist/prestitcher-memory-usage.d.ts +12 -0
  203. package/dist/prestitcher-memory-usage.js +30 -0
  204. package/dist/prores-profile.d.ts +5 -0
  205. package/dist/prores-profile.js +23 -0
  206. package/dist/provide-screenshot.d.ts +5 -4
  207. package/dist/provide-screenshot.js +0 -1
  208. package/dist/puppeteer-evaluate.d.ts +1 -1
  209. package/dist/puppeteer-evaluate.js +3 -4
  210. package/dist/puppeteer-screenshot.d.ts +3 -2
  211. package/dist/puppeteer-screenshot.js +2 -4
  212. package/dist/quality.d.ts +1 -0
  213. package/dist/quality.js +21 -0
  214. package/dist/render-frames.d.ts +21 -9
  215. package/dist/render-frames.js +111 -82
  216. package/dist/render-media.d.ts +33 -10
  217. package/dist/render-media.js +83 -25
  218. package/dist/render-still.d.ts +18 -7
  219. package/dist/render-still.js +44 -16
  220. package/dist/screenshot-dom-element.d.ts +6 -7
  221. package/dist/screenshot-dom-element.js +3 -6
  222. package/dist/screenshot-task.d.ts +3 -2
  223. package/dist/screenshot-task.js +36 -23
  224. package/dist/seek-to-frame.d.ts +2 -2
  225. package/dist/seek-to-frame.js +2 -2
  226. package/dist/serve-handler/index.d.ts +4 -0
  227. package/dist/serve-handler/index.js +204 -0
  228. package/dist/serve-handler/is-path-inside.d.ts +1 -0
  229. package/dist/serve-handler/is-path-inside.js +27 -0
  230. package/dist/serve-handler/range-parser.d.ts +13 -0
  231. package/dist/serve-handler/range-parser.js +57 -0
  232. package/dist/serve-static.d.ts +5 -3
  233. package/dist/serve-static.js +19 -8
  234. package/dist/set-props-and-env.d.ts +4 -2
  235. package/dist/set-props-and-env.js +42 -11
  236. package/dist/stitch-frames-to-video.d.ts +16 -6
  237. package/dist/stitch-frames-to-video.js +112 -42
  238. package/dist/stringify-ffmpeg-filter.d.ts +2 -2
  239. package/dist/stringify-ffmpeg-filter.js +11 -9
  240. package/dist/symbolicate-stacktrace.d.ts +1 -1
  241. package/dist/symbolicate-stacktrace.js +3 -3
  242. package/dist/truthy.d.ts +3 -0
  243. package/dist/truthy.js +7 -0
  244. package/dist/types.d.ts +1 -1
  245. package/dist/validate-concurrency.d.ts +1 -0
  246. package/dist/validate-concurrency.js +24 -0
  247. package/dist/validate-even-dimensions-with-codec.d.ts +1 -1
  248. package/dist/validate-even-dimensions-with-codec.js +2 -2
  249. package/dist/validate-every-nth-frame.d.ts +1 -0
  250. package/dist/validate-every-nth-frame.js +21 -0
  251. package/dist/validate-ffmpeg.js +2 -3
  252. package/dist/validate-frame.d.ts +1 -0
  253. package/dist/validate-frame.js +24 -0
  254. package/dist/validate-opengl-renderer.d.ts +5 -0
  255. package/dist/validate-opengl-renderer.js +15 -0
  256. package/dist/validate-output-filename.d.ts +1 -1
  257. package/dist/validate-output-filename.js +5 -0
  258. package/dist/wait-for-symbolication-error-to-be-done.d.ts +3 -0
  259. package/dist/wait-for-symbolication-error-to-be-done.js +34 -0
  260. package/dist/ws/ws-types.d.ts +14 -0
  261. package/dist/ws/ws-types.js +10 -0
  262. package/package.json +13 -15
  263. package/tsconfig.json +2 -2
  264. package/types/ws/index.d.ts +509 -0
  265. package/vitest.config.ts +8 -0
  266. package/dist/assets/calculate-asset-positions.d.ts.map +0 -1
  267. package/dist/assets/calculate-asset-positions.js.map +0 -1
  268. package/dist/assets/calculate-atempo.d.ts.map +0 -1
  269. package/dist/assets/calculate-atempo.js.map +0 -1
  270. package/dist/assets/convert-assets-to-file-urls.d.ts.map +0 -1
  271. package/dist/assets/convert-assets-to-file-urls.js.map +0 -1
  272. package/dist/assets/download-and-map-assets-to-file.d.ts.map +0 -1
  273. package/dist/assets/download-and-map-assets-to-file.js.map +0 -1
  274. package/dist/assets/download-file.d.ts.map +0 -1
  275. package/dist/assets/download-file.js.map +0 -1
  276. package/dist/assets/ffmpeg-volume-expression.d.ts.map +0 -1
  277. package/dist/assets/ffmpeg-volume-expression.js.map +0 -1
  278. package/dist/assets/flatten-volume-array.d.ts.map +0 -1
  279. package/dist/assets/flatten-volume-array.js.map +0 -1
  280. package/dist/assets/get-audio-channels.d.ts.map +0 -1
  281. package/dist/assets/get-audio-channels.js.map +0 -1
  282. package/dist/assets/read-file.d.ts.map +0 -1
  283. package/dist/assets/read-file.js.map +0 -1
  284. package/dist/assets/round-volume-to-avoid-stack-overflow.d.ts.map +0 -1
  285. package/dist/assets/round-volume-to-avoid-stack-overflow.js.map +0 -1
  286. package/dist/assets/sanitize-filename.d.ts.map +0 -1
  287. package/dist/assets/sanitize-filename.js.map +0 -1
  288. package/dist/assets/sanitize-filepath.d.ts.map +0 -1
  289. package/dist/assets/sanitize-filepath.js.map +0 -1
  290. package/dist/assets/truncate-utf8-bytes.d.ts.map +0 -1
  291. package/dist/assets/truncate-utf8-bytes.js.map +0 -1
  292. package/dist/assets/types.d.ts.map +0 -1
  293. package/dist/assets/types.js.map +0 -1
  294. package/dist/browser-log.d.ts.map +0 -1
  295. package/dist/browser-log.js.map +0 -1
  296. package/dist/calculate-ffmpeg-filters.d.ts.map +0 -1
  297. package/dist/calculate-ffmpeg-filters.js.map +0 -1
  298. package/dist/can-use-parallel-encoding.d.ts.map +0 -1
  299. package/dist/can-use-parallel-encoding.js.map +0 -1
  300. package/dist/chunk.d.ts.map +0 -1
  301. package/dist/chunk.js.map +0 -1
  302. package/dist/combine-videos.d.ts.map +0 -1
  303. package/dist/combine-videos.js.map +0 -1
  304. package/dist/convert-to-pcm.d.ts.map +0 -1
  305. package/dist/convert-to-pcm.js.map +0 -1
  306. package/dist/create-ffmpeg-complex-filter.d.ts.map +0 -1
  307. package/dist/create-ffmpeg-complex-filter.js.map +0 -1
  308. package/dist/create-ffmpeg-merge-filter.d.ts.map +0 -1
  309. package/dist/create-ffmpeg-merge-filter.js.map +0 -1
  310. package/dist/create-silent-audio.d.ts.map +0 -1
  311. package/dist/create-silent-audio.js.map +0 -1
  312. package/dist/cycle-browser-tabs.d.ts.map +0 -1
  313. package/dist/cycle-browser-tabs.js.map +0 -1
  314. package/dist/delay-render-embedded-stack.d.ts.map +0 -1
  315. package/dist/delay-render-embedded-stack.js.map +0 -1
  316. package/dist/delete-directory.d.ts.map +0 -1
  317. package/dist/delete-directory.js.map +0 -1
  318. package/dist/ensure-frames-in-order.d.ts.map +0 -1
  319. package/dist/ensure-frames-in-order.js.map +0 -1
  320. package/dist/ensure-output-directory.d.ts.map +0 -1
  321. package/dist/ensure-output-directory.js.map +0 -1
  322. package/dist/error-handling/handle-javascript-exception.d.ts.map +0 -1
  323. package/dist/error-handling/handle-javascript-exception.js.map +0 -1
  324. package/dist/error-handling/symbolicate-error.d.ts.map +0 -1
  325. package/dist/error-handling/symbolicate-error.js.map +0 -1
  326. package/dist/error-handling/symbolicateable-error.d.ts.map +0 -1
  327. package/dist/error-handling/symbolicateable-error.js.map +0 -1
  328. package/dist/ffmpeg-filter-file.d.ts.map +0 -1
  329. package/dist/ffmpeg-filter-file.js.map +0 -1
  330. package/dist/ffmpeg-flags.d.ts.map +0 -1
  331. package/dist/ffmpeg-flags.js.map +0 -1
  332. package/dist/get-audio-codec-name.d.ts.map +0 -1
  333. package/dist/get-audio-codec-name.js.map +0 -1
  334. package/dist/get-browser-instance.d.ts.map +0 -1
  335. package/dist/get-browser-instance.js.map +0 -1
  336. package/dist/get-codec-name.d.ts.map +0 -1
  337. package/dist/get-codec-name.js.map +0 -1
  338. package/dist/get-compositions.d.ts.map +0 -1
  339. package/dist/get-compositions.js.map +0 -1
  340. package/dist/get-concurrency.d.ts.map +0 -1
  341. package/dist/get-concurrency.js.map +0 -1
  342. package/dist/get-duration-from-frame-range.d.ts.map +0 -1
  343. package/dist/get-duration-from-frame-range.js.map +0 -1
  344. package/dist/get-extension-from-codec.d.ts.map +0 -1
  345. package/dist/get-extension-from-codec.js.map +0 -1
  346. package/dist/get-frame-to-render.d.ts.map +0 -1
  347. package/dist/get-frame-to-render.js.map +0 -1
  348. package/dist/get-local-browser-executable.d.ts.map +0 -1
  349. package/dist/get-local-browser-executable.js.map +0 -1
  350. package/dist/get-port.d.ts.map +0 -1
  351. package/dist/get-port.js.map +0 -1
  352. package/dist/get-prores-profile-name.d.ts.map +0 -1
  353. package/dist/get-prores-profile-name.js.map +0 -1
  354. package/dist/image-format.d.ts.map +0 -1
  355. package/dist/image-format.js.map +0 -1
  356. package/dist/index.d.ts.map +0 -1
  357. package/dist/index.js.map +0 -1
  358. package/dist/is-serve-url.d.ts.map +0 -1
  359. package/dist/is-serve-url.js.map +0 -1
  360. package/dist/legacy-webpack-config.d.ts.map +0 -1
  361. package/dist/legacy-webpack-config.js.map +0 -1
  362. package/dist/make-assets-download-dir.d.ts +0 -1
  363. package/dist/make-assets-download-dir.d.ts.map +0 -1
  364. package/dist/make-assets-download-dir.js +0 -8
  365. package/dist/make-assets-download-dir.js.map +0 -1
  366. package/dist/merge-audio-track.d.ts.map +0 -1
  367. package/dist/merge-audio-track.js.map +0 -1
  368. package/dist/normalize-serve-url.d.ts.map +0 -1
  369. package/dist/normalize-serve-url.js.map +0 -1
  370. package/dist/open-browser.d.ts.map +0 -1
  371. package/dist/open-browser.js.map +0 -1
  372. package/dist/p-limit.d.ts.map +0 -1
  373. package/dist/p-limit.js.map +0 -1
  374. package/dist/parse-browser-error-stack.d.ts.map +0 -1
  375. package/dist/parse-browser-error-stack.js.map +0 -1
  376. package/dist/parse-ffmpeg-progress.d.ts.map +0 -1
  377. package/dist/parse-ffmpeg-progress.js.map +0 -1
  378. package/dist/pool.d.ts.map +0 -1
  379. package/dist/pool.js.map +0 -1
  380. package/dist/prepare-server.d.ts.map +0 -1
  381. package/dist/prepare-server.js.map +0 -1
  382. package/dist/preprocess-audio-track.d.ts.map +0 -1
  383. package/dist/preprocess-audio-track.js.map +0 -1
  384. package/dist/prespawn-ffmpeg.d.ts.map +0 -1
  385. package/dist/prespawn-ffmpeg.js.map +0 -1
  386. package/dist/provide-screenshot.d.ts.map +0 -1
  387. package/dist/provide-screenshot.js.map +0 -1
  388. package/dist/puppeteer-evaluate.d.ts.map +0 -1
  389. package/dist/puppeteer-evaluate.js.map +0 -1
  390. package/dist/puppeteer-screenshot.d.ts.map +0 -1
  391. package/dist/puppeteer-screenshot.js.map +0 -1
  392. package/dist/render-frames.d.ts.map +0 -1
  393. package/dist/render-frames.js.map +0 -1
  394. package/dist/render-media.d.ts.map +0 -1
  395. package/dist/render-media.js.map +0 -1
  396. package/dist/render-still.d.ts.map +0 -1
  397. package/dist/render-still.js.map +0 -1
  398. package/dist/resolve-asset-src.d.ts.map +0 -1
  399. package/dist/resolve-asset-src.js.map +0 -1
  400. package/dist/sample-rate.d.ts.map +0 -1
  401. package/dist/sample-rate.js.map +0 -1
  402. package/dist/screenshot-dom-element.d.ts.map +0 -1
  403. package/dist/screenshot-dom-element.js.map +0 -1
  404. package/dist/screenshot-task.d.ts.map +0 -1
  405. package/dist/screenshot-task.js.map +0 -1
  406. package/dist/seek-to-frame.d.ts.map +0 -1
  407. package/dist/seek-to-frame.js.map +0 -1
  408. package/dist/serve-static.d.ts.map +0 -1
  409. package/dist/serve-static.js.map +0 -1
  410. package/dist/set-props-and-env.d.ts.map +0 -1
  411. package/dist/set-props-and-env.js.map +0 -1
  412. package/dist/stitch-frames-to-video.d.ts.map +0 -1
  413. package/dist/stitch-frames-to-video.js.map +0 -1
  414. package/dist/stringify-ffmpeg-filter.d.ts.map +0 -1
  415. package/dist/stringify-ffmpeg-filter.js.map +0 -1
  416. package/dist/symbolicate-stacktrace.d.ts.map +0 -1
  417. package/dist/symbolicate-stacktrace.js.map +0 -1
  418. package/dist/tmp-dir.d.ts.map +0 -1
  419. package/dist/tmp-dir.js.map +0 -1
  420. package/dist/types.d.ts.map +0 -1
  421. package/dist/types.js.map +0 -1
  422. package/dist/validate-even-dimensions-with-codec.d.ts.map +0 -1
  423. package/dist/validate-even-dimensions-with-codec.js.map +0 -1
  424. package/dist/validate-ffmpeg.d.ts.map +0 -1
  425. package/dist/validate-ffmpeg.js.map +0 -1
  426. package/dist/validate-puppeteer-timeout.d.ts.map +0 -1
  427. package/dist/validate-puppeteer-timeout.js.map +0 -1
  428. package/dist/validate-scale.d.ts.map +0 -1
  429. package/dist/validate-scale.js.map +0 -1
@@ -2,6 +2,9 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getExtensionOfFilename = void 0;
4
4
  const getExtensionOfFilename = (filename) => {
5
+ if (filename === null) {
6
+ return null;
7
+ }
5
8
  const filenameArr = filename.split('.');
6
9
  const hasExtension = filenameArr.length >= 2;
7
10
  const filenameArrLength = filenameArr.length;
@@ -0,0 +1,14 @@
1
+ export declare type CountType = 'from-zero' | 'actual-frames';
2
+ export declare const getFrameOutputFileName: ({ index, frame, imageFormat, countType, lastFrame, totalFrames, }: {
3
+ index: number;
4
+ frame: number;
5
+ imageFormat: 'png' | 'jpeg';
6
+ countType: CountType;
7
+ lastFrame: number;
8
+ totalFrames: number;
9
+ }) => string;
10
+ export declare const getFilePadLength: ({ lastFrame, totalFrames, countType, }: {
11
+ lastFrame: number;
12
+ totalFrames: number;
13
+ countType: CountType;
14
+ }) => number;
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ // Determines the filenames for frames that get rendered.
3
+ // - If passed to FFMPEG, they should be consecutive: element-000.jpg, element-001.jpg, element-002.jpg
4
+ // - If `--every-nth-frame` is passed, only frames 0, 2, 4 are rendered
5
+ // - If an image sequence is created, the filenames should correspond to the frame numbers: element-099.jpg, element-100.jpg
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.getFilePadLength = exports.getFrameOutputFileName = void 0;
8
+ const padIndex = ({ num, filePadLength, }) => {
9
+ return String(num).padStart(filePadLength, '0');
10
+ };
11
+ const getFrameOutputFileName = ({ index, frame, imageFormat, countType, lastFrame, totalFrames, }) => {
12
+ const filePadLength = (0, exports.getFilePadLength)({ lastFrame, countType, totalFrames });
13
+ if (countType === 'actual-frames') {
14
+ const paddedIndex = padIndex({ filePadLength, num: frame });
15
+ return `element-${paddedIndex}.${imageFormat}`;
16
+ }
17
+ if (countType === 'from-zero') {
18
+ const paddedIndex = padIndex({ filePadLength, num: index });
19
+ return `element-${paddedIndex}.${imageFormat}`;
20
+ }
21
+ throw new TypeError('Unknown count type');
22
+ };
23
+ exports.getFrameOutputFileName = getFrameOutputFileName;
24
+ const getFilePadLength = ({ lastFrame, totalFrames, countType, }) => {
25
+ if (countType === 'actual-frames') {
26
+ return String(lastFrame).length;
27
+ }
28
+ if (countType === 'from-zero') {
29
+ return String(totalFrames - 1).length;
30
+ }
31
+ throw new Error('Unknown file type');
32
+ };
33
+ exports.getFilePadLength = getFilePadLength;
@@ -1,2 +1,2 @@
1
- import { FrameRange } from 'remotion';
1
+ import type { FrameRange } from './frame-range';
2
2
  export declare const getRealFrameRange: (durationInFrames: number, frameRange: FrameRange | null) => [number, number];
@@ -1,3 +1,4 @@
1
- import { Browser, BrowserExecutable } from 'remotion';
1
+ import type { Browser } from './browser';
2
+ import type { BrowserExecutable } from './browser-executable';
2
3
  export declare const ensureLocalBrowser: (browser: Browser, preferredBrowserExecutable: BrowserExecutable) => Promise<void>;
3
4
  export declare const getLocalBrowserExecutable: (browser: Browser, preferredBrowserExecutable: BrowserExecutable) => string;
@@ -5,9 +5,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.getLocalBrowserExecutable = exports.ensureLocalBrowser = void 0;
7
7
  const fs_1 = __importDefault(require("fs"));
8
- const puppeteer_core_1 = __importDefault(require("puppeteer-core"));
9
- const install_1 = require("puppeteer-core/lib/cjs/puppeteer/node/install");
10
- const revisions_1 = require("puppeteer-core/lib/cjs/puppeteer/revisions");
8
+ const create_browser_fetcher_1 = require("./browser/create-browser-fetcher");
9
+ const node_1 = require("./browser/node");
10
+ const revisions_1 = require("./browser/revisions");
11
11
  const getSearchPathsForProduct = (product) => {
12
12
  var _a;
13
13
  if (product === 'chrome') {
@@ -44,8 +44,10 @@ const getLocalBrowser = (product) => {
44
44
  return null;
45
45
  };
46
46
  const getBrowserRevision = (product) => {
47
- const browserFetcher = puppeteer_core_1.default.createBrowserFetcher({
47
+ const browserFetcher = node_1.puppeteer.createBrowserFetcher({
48
48
  product,
49
+ path: null,
50
+ platform: null,
49
51
  });
50
52
  const revisionInfo = browserFetcher.revisionInfo(product === 'firefox'
51
53
  ? revisions_1.PUPPETEER_REVISIONS.firefox
@@ -73,7 +75,7 @@ const ensureLocalBrowser = async (browser, preferredBrowserExecutable) => {
73
75
  const status = getBrowserStatus(mapBrowserToProduct(browser), preferredBrowserExecutable);
74
76
  if (status.type === 'no-browser') {
75
77
  console.log('No local browser could be found. Downloading one from the internet...');
76
- await (0, install_1.downloadBrowser)();
78
+ await (0, create_browser_fetcher_1.downloadBrowser)(browser);
77
79
  }
78
80
  };
79
81
  exports.ensureLocalBrowser = ensureLocalBrowser;
package/dist/get-port.js CHANGED
@@ -5,47 +5,39 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.getDesiredPort = void 0;
7
7
  const net_1 = __importDefault(require("net"));
8
- const getAvailablePort = (portToTry) => new Promise((resolve, reject) => {
9
- const server = net_1.default.createServer();
10
- server.unref();
11
- server.on('error', reject);
12
- server.listen({ port: portToTry }, () => {
13
- const { port } = server.address();
14
- server.close(() => {
15
- resolve(port);
16
- });
8
+ const p_limit_1 = require("./p-limit");
9
+ const getAvailablePort = (portToTry) => new Promise((resolve) => {
10
+ let status = 'unavailable';
11
+ const host = '127.0.0.1';
12
+ const socket = new net_1.default.Socket();
13
+ socket.on('connect', () => {
14
+ status = 'unavailable';
15
+ socket.destroy();
17
16
  });
17
+ socket.setTimeout(3000);
18
+ socket.on('timeout', () => {
19
+ status = 'unavailable';
20
+ socket.destroy();
21
+ resolve(status);
22
+ });
23
+ socket.on('error', () => {
24
+ status = 'available';
25
+ });
26
+ socket.on('close', () => resolve(status));
27
+ socket.connect(portToTry, host);
18
28
  });
19
- const portCheckSequence = function* (ports) {
20
- if (ports) {
21
- yield* ports;
22
- }
23
- yield 0; // Fall back to 0 if anything else failed
24
- };
25
- const isPortAvailable = async (port) => {
26
- try {
27
- await getAvailablePort(port);
28
- return true;
29
- }
30
- catch (error) {
31
- if (!['EADDRINUSE', 'EACCES'].includes(error.code)) {
32
- throw error;
33
- }
34
- return false;
35
- }
36
- };
37
29
  const getPort = async (from, to) => {
38
30
  const ports = makeRange(from, to);
39
- for (const port of portCheckSequence(ports)) {
40
- if (await isPortAvailable(port)) {
31
+ for (const port of ports) {
32
+ if ((await getAvailablePort(port)) === 'available') {
41
33
  return port;
42
34
  }
43
35
  }
44
36
  throw new Error('No available ports found');
45
37
  };
46
- const getDesiredPort = async (desiredPort, from, to) => {
38
+ const getDesiredPortUnlimited = async (desiredPort, from, to) => {
47
39
  if (typeof desiredPort !== 'undefined' &&
48
- (await isPortAvailable(desiredPort))) {
40
+ (await getAvailablePort(desiredPort)) === 'available') {
49
41
  return desiredPort;
50
42
  }
51
43
  const actualPort = await getPort(from, to);
@@ -55,6 +47,10 @@ const getDesiredPort = async (desiredPort, from, to) => {
55
47
  }
56
48
  return actualPort;
57
49
  };
50
+ const limit = (0, p_limit_1.pLimit)(1);
51
+ const getDesiredPort = (desiredPort, from, to) => {
52
+ return limit(() => getDesiredPortUnlimited(desiredPort, from, to));
53
+ };
58
54
  exports.getDesiredPort = getDesiredPort;
59
55
  const makeRange = (from, to) => {
60
56
  if (!Number.isInteger(from) || !Number.isInteger(to)) {
@@ -69,10 +65,7 @@ const makeRange = (from, to) => {
69
65
  if (to < from) {
70
66
  throw new RangeError('`to` must be greater than or equal to `from`');
71
67
  }
72
- const generator = function* (f, t) {
73
- for (let port = f; port <= t; port++) {
74
- yield port;
75
- }
76
- };
77
- return generator(from, to);
68
+ return new Array(to - from + 1).fill(true).map((_, i) => {
69
+ return i + from;
70
+ });
78
71
  };
@@ -1,2 +1,3 @@
1
- import { Codec, ProResProfile } from 'remotion';
1
+ import type { Codec } from './codec';
2
+ import type { ProResProfile } from './prores-profile';
2
3
  export declare const getProResProfileName: (codec: Codec, proResProfile: ProResProfile | undefined) => string | null;
@@ -0,0 +1,3 @@
1
+ import type { DownloadMap, Vp9Result } from './assets/download-map';
2
+ import type { FfmpegExecutable } from './ffmpeg-executable';
3
+ export declare const getVideoInfo: (downloadMap: DownloadMap, src: string, ffprobeExecutable: FfmpegExecutable) => Promise<Vp9Result>;
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.getVideoInfo = void 0;
7
+ const execa_1 = __importDefault(require("execa"));
8
+ const calculate_sar_dar_pixels_1 = require("./calculate-sar-dar-pixels");
9
+ const p_limit_1 = require("./p-limit");
10
+ const limit = (0, p_limit_1.pLimit)(1);
11
+ async function getVideoInfoUnlimited(downloadMap, src, ffprobeExecutable) {
12
+ var _a;
13
+ if (typeof downloadMap.isVp9VideoCache[src] !== 'undefined') {
14
+ return downloadMap.isVp9VideoCache[src];
15
+ }
16
+ const task = await (0, execa_1.default)(ffprobeExecutable !== null && ffprobeExecutable !== void 0 ? ffprobeExecutable : 'ffprobe', [src]);
17
+ const isVp9 = task.stderr.includes('Video: vp9');
18
+ const isVp8 = task.stderr.includes('Video: vp8');
19
+ const dimensions = (_a = task.stderr
20
+ .split('\n')
21
+ .find((n) => n.trim().startsWith('Stream #'))) === null || _a === void 0 ? void 0 : _a.match(/([0-9]{2,6})x([0-9]{2,6})/);
22
+ const dar = task.stderr.match(/DAR\s([0-9]+):([0-9]+)/);
23
+ let needsResize = null;
24
+ if (dimensions && dar) {
25
+ const width = parseInt(dimensions[1], 10);
26
+ const height = parseInt(dimensions[2], 10);
27
+ const darWidth = parseInt(dar[1], 10);
28
+ const darHeight = parseInt(dar[2], 10);
29
+ const { width: actualWidth, height: actualHeight } = (0, calculate_sar_dar_pixels_1.calculateDisplayVideoSize)({
30
+ darX: darWidth,
31
+ darY: darHeight,
32
+ x: width,
33
+ y: height,
34
+ });
35
+ if (actualWidth !== width || actualHeight !== height) {
36
+ needsResize = [actualWidth, actualHeight];
37
+ }
38
+ }
39
+ const result = {
40
+ specialVcodec: isVp9 ? 'vp9' : isVp8 ? 'vp8' : 'none',
41
+ needsResize,
42
+ };
43
+ downloadMap.isVp9VideoCache[src] = result;
44
+ return downloadMap.isVp9VideoCache[src];
45
+ }
46
+ const getVideoInfo = (downloadMap, src, ffprobeExecutable) => {
47
+ return limit(() => getVideoInfoUnlimited(downloadMap, src, ffprobeExecutable));
48
+ };
49
+ exports.getVideoInfo = getVideoInfo;
@@ -0,0 +1 @@
1
+ export declare const getIdealVideoThreadsFlag: () => number;
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.getIdealVideoThreadsFlag = void 0;
7
+ const os_1 = __importDefault(require("os"));
8
+ const MEMORY_USAGE_PER_THREAD = 400000000; // 400MB
9
+ const RESERVED_MEMORY = 2000000000;
10
+ const getIdealVideoThreadsFlag = () => {
11
+ const freeMemory = os_1.default.freemem();
12
+ const cpus = os_1.default.cpus().length;
13
+ const maxRecommendedBasedOnCpus = (cpus * 2) / 3;
14
+ const maxRecommendedBasedOnMemory = (freeMemory - RESERVED_MEMORY) / MEMORY_USAGE_PER_THREAD;
15
+ const maxRecommended = Math.min(maxRecommendedBasedOnCpus, maxRecommendedBasedOnMemory);
16
+ return Math.max(1, Math.round(maxRecommended));
17
+ };
18
+ exports.getIdealVideoThreadsFlag = getIdealVideoThreadsFlag;
@@ -0,0 +1 @@
1
+ export declare const guessExtensionForVideo: (src: string) => Promise<"mp3" | "wav" | "webm" | "mp4">;
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.guessExtensionForVideo = void 0;
7
+ const execa_1 = __importDefault(require("execa"));
8
+ const guessExtensionForVideo = async (src) => {
9
+ const { stderr } = await (0, execa_1.default)('ffprobe', [src]);
10
+ if (stderr.includes('mp3,')) {
11
+ return 'mp3';
12
+ }
13
+ if (stderr.includes('Video: vp9')) {
14
+ return 'webm';
15
+ }
16
+ if (stderr.includes('Video: vp8')) {
17
+ return 'webm';
18
+ }
19
+ if (stderr.includes('wav, ')) {
20
+ return 'wav';
21
+ }
22
+ if (stderr.includes('Video: h264')) {
23
+ return 'mp4';
24
+ }
25
+ throw new Error(`The media file "${src}" has no file extension and the format could not be guessed. Tips: a) Ensure this is a valid video or audio file b) Add a file extension to the URL like ".mp4" c) Set a "Content-Type" or "Content-Disposition" header if possible.`);
26
+ };
27
+ exports.guessExtensionForVideo = guessExtensionForVideo;
@@ -1,2 +1,7 @@
1
- import { ImageFormat } from 'remotion';
1
+ import type { PixelFormat } from './pixel-format';
2
+ export declare const validImageFormats: readonly ["png", "jpeg", "none"];
3
+ export declare type ImageFormat = typeof validImageFormats[number];
4
+ export declare type StillImageFormat = 'png' | 'jpeg';
2
5
  export declare const DEFAULT_IMAGE_FORMAT: ImageFormat;
6
+ export declare const validateSelectedPixelFormatAndImageFormatCombination: (pixelFormat: PixelFormat, imageFormat: ImageFormat) => 'none' | 'valid';
7
+ export declare const validateNonNullImageFormat: (imageFormat: ImageFormat) => void;
@@ -2,6 +2,30 @@
2
2
  // Keeping the default image format PNG if you don't pass a
3
3
  // value to the renderer for backwards compatibility.
4
4
  Object.defineProperty(exports, "__esModule", { value: true });
5
- exports.DEFAULT_IMAGE_FORMAT = void 0;
5
+ exports.validateNonNullImageFormat = exports.validateSelectedPixelFormatAndImageFormatCombination = exports.DEFAULT_IMAGE_FORMAT = exports.validImageFormats = void 0;
6
+ exports.validImageFormats = ['png', 'jpeg', 'none'];
6
7
  // However, the CLI will override it and use JPEG if suitable.
7
8
  exports.DEFAULT_IMAGE_FORMAT = 'png';
9
+ // By returning a value, we improve testability as we can specifically test certain branches
10
+ const validateSelectedPixelFormatAndImageFormatCombination = (pixelFormat, imageFormat) => {
11
+ if (imageFormat === 'none') {
12
+ return 'none';
13
+ }
14
+ if (!exports.validImageFormats.includes(imageFormat)) {
15
+ throw new TypeError(`Value ${imageFormat} is not valid as an image format.`);
16
+ }
17
+ if (pixelFormat !== 'yuva420p' && pixelFormat !== 'yuva444p10le') {
18
+ return 'valid';
19
+ }
20
+ if (imageFormat !== 'png') {
21
+ throw new TypeError(`Pixel format was set to '${pixelFormat}' but the image format is not PNG. To render transparent videos, you need to set PNG as the image format.`);
22
+ }
23
+ return 'valid';
24
+ };
25
+ exports.validateSelectedPixelFormatAndImageFormatCombination = validateSelectedPixelFormatAndImageFormatCombination;
26
+ const validateNonNullImageFormat = (imageFormat) => {
27
+ if (imageFormat !== 'jpeg' && imageFormat !== 'png') {
28
+ throw new TypeError('Image format should be either "png" or "jpeg"');
29
+ }
30
+ };
31
+ exports.validateNonNullImageFormat = validateNonNullImageFormat;
package/dist/index.d.ts CHANGED
@@ -1,21 +1,37 @@
1
+ /// <reference types="node" />
2
+ import execa from 'execa';
1
3
  import { SymbolicateableError } from './error-handling/symbolicateable-error';
4
+ import { mimeContentType, mimeLookup } from './mime-types';
5
+ import * as perf from './perf';
2
6
  export type { RenderMediaOnDownload } from './assets/download-and-map-assets-to-file';
7
+ export type { DownloadMap } from './assets/download-map';
8
+ export { Browser } from './browser';
9
+ export { BrowserExecutable } from './browser-executable';
3
10
  export { BrowserLog } from './browser-log';
11
+ export { Codec, CodecOrUndefined } from './codec';
4
12
  export { combineVideos } from './combine-videos';
13
+ export { Crf } from './crf';
5
14
  export { ErrorWithStackFrame } from './error-handling/handle-javascript-exception';
15
+ export { FfmpegExecutable } from './ffmpeg-executable';
6
16
  export { FfmpegVersion } from './ffmpeg-flags';
17
+ export { FrameRange } from './frame-range';
7
18
  export { getCompositions } from './get-compositions';
19
+ export { ImageFormat, StillImageFormat, validateSelectedPixelFormatAndImageFormatCombination, validImageFormats, } from './image-format';
20
+ export type { LogLevel } from './log-level';
8
21
  export { CancelSignal, makeCancelSignal } from './make-cancel-signal';
9
22
  export { openBrowser } from './open-browser';
10
23
  export type { ChromiumOptions } from './open-browser';
24
+ export { PixelFormat } from './pixel-format';
25
+ export { ProResProfile } from './prores-profile';
11
26
  export { renderFrames } from './render-frames';
12
27
  export { renderMedia, RenderMediaOnProgress, RenderMediaOptions, StitchingState, } from './render-media';
13
28
  export { renderStill } from './render-still';
14
29
  export { StitcherOptions, stitchFramesToVideo } from './stitch-frames-to-video';
15
30
  export { SymbolicatedStackFrame } from './symbolicate-stacktrace';
16
31
  export { OnStartData, RenderFramesOutput } from './types';
32
+ export { OpenGlRenderer } from './validate-opengl-renderer';
17
33
  export declare const RenderInternals: {
18
- ensureLocalBrowser: (browser: import("remotion").Browser, preferredBrowserExecutable: import("remotion").BrowserExecutable) => Promise<void>;
34
+ ensureLocalBrowser: (browser: import("./browser").Browser, preferredBrowserExecutable: import("./browser-executable").BrowserExecutable) => Promise<void>;
19
35
  ffmpegHasFeature: ({ ffmpegExecutable, feature, isLambda, }: {
20
36
  ffmpegExecutable: string | null;
21
37
  feature: "enable-gpl" | "enable-libx265" | "enable-libvpx";
@@ -32,10 +48,11 @@ export declare const RenderInternals: {
32
48
  }) => Promise<string>;
33
49
  serveStatic: (path: string | null, options: {
34
50
  port: number | null;
35
- ffmpegExecutable: import("remotion").FfmpegExecutable;
36
- downloadDir: string;
51
+ ffmpegExecutable: import("./ffmpeg-executable").FfmpegExecutable;
52
+ ffprobeExecutable: import("./ffmpeg-executable").FfmpegExecutable;
37
53
  onDownload: import("./assets/download-and-map-assets-to-file").RenderMediaOnDownload;
38
54
  onError: (err: Error) => void;
55
+ downloadMap: import("./assets/download-map").DownloadMap;
39
56
  }) => Promise<{
40
57
  port: number;
41
58
  close: () => Promise<void>;
@@ -44,32 +61,90 @@ export declare const RenderInternals: {
44
61
  width: number;
45
62
  height: number;
46
63
  scale: number;
47
- codec: "h264" | "h265" | "vp8" | "vp9" | "mp3" | "aac" | "wav" | "prores" | "h264-mkv";
64
+ codec: "h264" | "h265" | "vp8" | "vp9" | "mp3" | "aac" | "wav" | "prores" | "h264-mkv" | "gif";
48
65
  }) => void;
49
66
  normalizeServeUrl: (unnormalized: string) => string;
50
67
  spawnFfmpeg: (options: import("./stitch-frames-to-video").StitcherOptions) => Promise<{
51
- task: Promise<void>;
68
+ task: Promise<Buffer | null>;
52
69
  getLogs: () => string;
53
70
  }>;
54
- getFileExtensionFromCodec: (codec: "h264" | "h265" | "vp8" | "vp9" | "mp3" | "aac" | "wav" | "prores" | "h264-mkv", type: "chunk" | "final") => "mp3" | "aac" | "wav" | "mp4" | "mkv" | "mov" | "webm";
71
+ getFileExtensionFromCodec: (codec: "h264" | "h265" | "vp8" | "vp9" | "mp3" | "aac" | "wav" | "prores" | "h264-mkv" | "gif", type: "chunk" | "final") => "mp3" | "aac" | "wav" | "gif" | "webm" | "mp4" | "mov" | "mkv";
55
72
  tmpDir: (str: string) => string;
56
73
  deleteDirectory: (directory: string) => Promise<void>;
57
74
  isServeUrl: (potentialUrl: string) => boolean;
58
75
  ensureOutputDirectory: (outputLocation: string) => void;
59
- getRealFrameRange: (durationInFrames: number, frameRange: import("remotion").FrameRange | null) => [number, number];
76
+ getRealFrameRange: (durationInFrames: number, frameRange: import("./frame-range").FrameRange | null) => [number, number];
60
77
  validatePuppeteerTimeout: (timeoutInMilliseconds: unknown) => void;
61
- downloadFile: (url: string, to: string, onProgress: ((progress: {
62
- progress: number;
63
- downloaded: number;
64
- totalSize: number;
65
- }) => void) | undefined) => Promise<{
78
+ downloadFile: ({ onProgress, url, to: toFn, }: {
79
+ url: string;
80
+ to: (contentDisposition: string | null, contentType: string | null) => string;
81
+ onProgress: ((progress: {
82
+ percent: number | null;
83
+ downloaded: number;
84
+ totalSize: number | null;
85
+ }) => void) | undefined;
86
+ }) => Promise<{
66
87
  sizeInBytes: number;
88
+ to: string;
67
89
  }>;
68
90
  validateScale: (scale: unknown) => void;
69
91
  killAllBrowsers: () => Promise<void>;
70
92
  parseStack: (stack: string[]) => import("./parse-browser-error-stack").UnsymbolicatedStackFrame[];
71
93
  symbolicateError: (symbolicateableError: SymbolicateableError) => Promise<import("./error-handling/handle-javascript-exception").ErrorWithStackFrame>;
72
94
  SymbolicateableError: typeof SymbolicateableError;
73
- getDurationFromFrameRange: (frameRange: import("remotion").FrameRange | null, durationInFrames: number) => number;
74
- getExtensionOfFilename: (filename: string) => string | null;
95
+ getFramesToRender: (frameRange: [number, number], everyNthFrame: number) => number[];
96
+ getExtensionOfFilename: (filename: string | null) => string | null;
97
+ getDesiredPort: (desiredPort: number | undefined, from: number, to: number) => Promise<number>;
98
+ isPathInside: (thePath: string, potentialParent: string) => boolean;
99
+ execa: {
100
+ (file: string, arguments?: readonly string[] | undefined, options?: execa.Options<string> | undefined): execa.ExecaChildProcess<string>;
101
+ (file: string, arguments?: readonly string[] | undefined, options?: execa.Options<null> | undefined): execa.ExecaChildProcess<Buffer>;
102
+ (file: string, options?: execa.Options<string> | undefined): execa.ExecaChildProcess<string>;
103
+ (file: string, options?: execa.Options<null> | undefined): execa.ExecaChildProcess<Buffer>;
104
+ sync(file: string, arguments?: readonly string[] | undefined, options?: execa.SyncOptions<string> | undefined): execa.ExecaSyncReturnValue<string>;
105
+ sync(file: string, arguments?: readonly string[] | undefined, options?: execa.SyncOptions<null> | undefined): execa.ExecaSyncReturnValue<Buffer>;
106
+ sync(file: string, options?: execa.SyncOptions<string> | undefined): execa.ExecaSyncReturnValue<string>;
107
+ sync(file: string, options?: execa.SyncOptions<null> | undefined): execa.ExecaSyncReturnValue<Buffer>;
108
+ command(command: string, options?: execa.Options<string> | undefined): execa.ExecaChildProcess<string>;
109
+ command(command: string, options?: execa.Options<null> | undefined): execa.ExecaChildProcess<Buffer>;
110
+ commandSync(command: string, options?: execa.SyncOptions<string> | undefined): execa.ExecaSyncReturnValue<string>;
111
+ commandSync(command: string, options?: execa.SyncOptions<null> | undefined): execa.ExecaSyncReturnValue<Buffer>;
112
+ node(scriptPath: string, arguments?: readonly string[] | undefined, options?: execa.NodeOptions<string> | undefined): execa.ExecaChildProcess<string>;
113
+ node(scriptPath: string, arguments?: readonly string[] | undefined, options?: execa.Options<null> | undefined): execa.ExecaChildProcess<Buffer>;
114
+ node(scriptPath: string, options?: execa.Options<string> | undefined): execa.ExecaChildProcess<string>;
115
+ node(scriptPath: string, options?: execa.Options<null> | undefined): execa.ExecaChildProcess<Buffer>;
116
+ };
117
+ registerErrorSymbolicationLock: () => number;
118
+ unlockErrorSymbolicationLock: (id: number) => void;
119
+ canUseParallelEncoding: (codec: "h264" | "h265" | "vp8" | "vp9" | "mp3" | "aac" | "wav" | "prores" | "h264-mkv" | "gif") => boolean;
120
+ mimeContentType: typeof mimeContentType;
121
+ mimeLookup: typeof mimeLookup;
122
+ validateConcurrency: (value: unknown, setting: string) => void;
123
+ validPixelFormats: readonly ["yuv420p", "yuva420p", "yuv422p", "yuv444p", "yuv420p10le", "yuv422p10le", "yuv444p10le", "yuva444p10le"];
124
+ DEFAULT_BROWSER: import("./browser").Browser;
125
+ validateFrameRange: (frameRange: import("./frame-range").FrameRange | null) => void;
126
+ DEFAULT_OPENGL_RENDERER: "angle" | "swangle" | "egl" | "swiftshader" | null;
127
+ validateOpenGlRenderer: (option: "angle" | "swangle" | "egl" | "swiftshader" | null) => "angle" | "swangle" | "egl" | "swiftshader" | null;
128
+ getDefaultCrfForCodec: (codec: "h264" | "h265" | "vp8" | "vp9" | "mp3" | "aac" | "wav" | "prores" | "h264-mkv" | "gif") => number;
129
+ validateSelectedCrfAndCodecCombination: (crf: unknown, codec: "h264" | "h265" | "vp8" | "vp9" | "mp3" | "aac" | "wav" | "prores" | "h264-mkv" | "gif") => void;
130
+ validImageFormats: readonly ["png", "jpeg", "none"];
131
+ validCodecs: readonly ["h264", "h265", "vp8", "vp9", "mp3", "aac", "wav", "prores", "h264-mkv", "gif"];
132
+ DEFAULT_OVERWRITE: boolean;
133
+ DEFAULT_PIXEL_FORMAT: "yuv420p" | "yuva420p" | "yuv422p" | "yuv444p" | "yuv420p10le" | "yuv422p10le" | "yuv444p10le" | "yuva444p10le";
134
+ validateQuality: (q: number | undefined) => void;
135
+ validateFrame: (frame: number, durationInFrames: number) => void;
136
+ DEFAULT_TIMEOUT: number;
137
+ getValidCrfRanges: (codec: "h264" | "h265" | "vp8" | "vp9" | "mp3" | "aac" | "wav" | "prores" | "h264-mkv" | "gif") => [number, number];
138
+ validateSelectedPixelFormatAndCodecCombination: (pixelFormat: "yuv420p" | "yuva420p" | "yuv422p" | "yuv444p" | "yuv420p10le" | "yuv422p10le" | "yuv444p10le" | "yuva444p10le", codec: "h264" | "h265" | "vp8" | "vp9" | "mp3" | "aac" | "wav" | "prores" | "h264-mkv" | "gif") => void;
139
+ validateSelectedCodecAndProResCombination: (actualCodec: "h264" | "h265" | "vp8" | "vp9" | "mp3" | "aac" | "wav" | "prores" | "h264-mkv" | "gif", actualProResProfile: "proxy" | "4444-xq" | "4444" | "hq" | "standard" | "light" | undefined) => void;
140
+ validateSelectedPixelFormatAndImageFormatCombination: (pixelFormat: "yuv420p" | "yuva420p" | "yuv422p" | "yuv444p" | "yuv420p10le" | "yuv422p10le" | "yuv444p10le" | "yuva444p10le", imageFormat: "jpeg" | "png" | "none") => "none" | "valid";
141
+ DEFAULT_CODEC: "h264" | "h265" | "vp8" | "vp9" | "mp3" | "aac" | "wav" | "prores" | "h264-mkv" | "gif";
142
+ isAudioCodec: (codec: "h264" | "h265" | "vp8" | "vp9" | "mp3" | "aac" | "wav" | "prores" | "h264-mkv" | "gif" | undefined) => boolean;
143
+ logLevels: readonly ["verbose", "info", "warn", "error"];
144
+ isEqualOrBelowLogLevel: (currentLevel: "error" | "verbose" | "info" | "warn", level: "error" | "verbose" | "info" | "warn") => boolean;
145
+ isValidLogLevel: (level: string) => boolean;
146
+ validateEveryNthFrame: (everyNthFrame: unknown) => void;
147
+ perf: typeof perf;
148
+ makeDownloadMap: () => import("./assets/download-map").DownloadMap;
149
+ cleanDownloadMap: (downloadMap: import("./assets/download-map").DownloadMap) => Promise<void>;
75
150
  };