@remotion/renderer 4.0.0-fastlambda.8 → 4.0.0-forcepublish.7

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