@remotion/renderer 4.0.0-alpha.4 → 4.0.0-alpha5

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 (585) hide show
  1. package/LICENSE.md +8 -8
  2. package/README.md +9 -0
  3. package/client.d.ts +1 -0
  4. package/client.js +1 -0
  5. package/dist/assets/calculate-asset-positions.d.ts +0 -0
  6. package/dist/assets/calculate-asset-positions.js +1 -0
  7. package/dist/assets/calculate-atempo.d.ts +0 -0
  8. package/dist/assets/calculate-atempo.js +0 -0
  9. package/dist/assets/convert-assets-to-file-urls.d.ts +0 -0
  10. package/dist/assets/convert-assets-to-file-urls.js +0 -0
  11. package/dist/assets/download-and-map-assets-to-file.d.ts +2 -1
  12. package/dist/assets/download-and-map-assets-to-file.js +60 -11
  13. package/dist/assets/download-file.d.ts +7 -5
  14. package/dist/assets/download-file.js +49 -6
  15. package/dist/assets/download-map.d.ts +5 -26
  16. package/dist/assets/download-map.js +8 -9
  17. package/dist/assets/ffmpeg-volume-expression.d.ts +2 -1
  18. package/dist/assets/ffmpeg-volume-expression.js +5 -3
  19. package/dist/assets/flatten-volume-array.d.ts +0 -0
  20. package/dist/assets/flatten-volume-array.js +0 -0
  21. package/dist/assets/get-audio-channels.d.ts +1 -2
  22. package/dist/assets/get-audio-channels.js +5 -8
  23. package/dist/assets/get-video-stream-duration.d.ts +7 -1
  24. package/dist/assets/get-video-stream-duration.js +50 -14
  25. package/dist/assets/read-file.d.ts +0 -0
  26. package/dist/assets/read-file.js +2 -4
  27. package/dist/assets/round-volume-to-avoid-stack-overflow.d.ts +0 -0
  28. package/dist/assets/round-volume-to-avoid-stack-overflow.js +0 -0
  29. package/dist/assets/sanitize-filename.d.ts +0 -0
  30. package/dist/assets/sanitize-filename.js +0 -0
  31. package/dist/assets/sanitize-filepath.d.ts +0 -0
  32. package/dist/assets/sanitize-filepath.js +0 -0
  33. package/dist/assets/truncate-utf8-bytes.d.ts +0 -0
  34. package/dist/assets/truncate-utf8-bytes.js +0 -0
  35. package/dist/assets/types.d.ts +1 -0
  36. package/dist/assets/types.js +0 -0
  37. package/dist/audio-codec.d.ts +28 -0
  38. package/dist/audio-codec.js +83 -0
  39. package/dist/browser/Browser.d.ts +4 -2
  40. package/dist/browser/Browser.js +15 -12
  41. package/dist/browser/BrowserConnector.d.ts +0 -0
  42. package/dist/browser/BrowserConnector.js +0 -0
  43. package/dist/browser/BrowserFetcher.d.ts +15 -63
  44. package/dist/browser/BrowserFetcher.js +145 -231
  45. package/dist/browser/BrowserPage.d.ts +8 -2
  46. package/dist/browser/BrowserPage.js +8 -11
  47. package/dist/browser/BrowserRunner.d.ts +1 -4
  48. package/dist/browser/BrowserRunner.js +38 -75
  49. package/dist/browser/Connection.d.ts +0 -0
  50. package/dist/browser/Connection.js +1 -1
  51. package/dist/browser/ConsoleMessage.d.ts +0 -0
  52. package/dist/browser/ConsoleMessage.js +0 -0
  53. package/dist/browser/DOMWorld.d.ts +2 -1
  54. package/dist/browser/DOMWorld.js +8 -1
  55. package/dist/browser/Errors.d.ts +0 -0
  56. package/dist/browser/Errors.js +0 -0
  57. package/dist/browser/EvalTypes.d.ts +0 -0
  58. package/dist/browser/EvalTypes.js +0 -0
  59. package/dist/browser/EventEmitter.d.ts +0 -0
  60. package/dist/browser/EventEmitter.js +0 -0
  61. package/dist/browser/ExecutionContext.d.ts +0 -0
  62. package/dist/browser/ExecutionContext.js +0 -0
  63. package/dist/browser/FrameManager.d.ts +0 -2
  64. package/dist/browser/FrameManager.js +2 -6
  65. package/dist/browser/HTTPRequest.d.ts +0 -0
  66. package/dist/browser/HTTPRequest.js +0 -0
  67. package/dist/browser/HTTPResponse.d.ts +0 -0
  68. package/dist/browser/HTTPResponse.js +0 -0
  69. package/dist/browser/JSHandle.d.ts +0 -0
  70. package/dist/browser/JSHandle.js +0 -0
  71. package/dist/browser/LaunchOptions.d.ts +1 -4
  72. package/dist/browser/LaunchOptions.js +0 -0
  73. package/dist/browser/Launcher.d.ts +7 -1
  74. package/dist/browser/Launcher.js +13 -375
  75. package/dist/browser/LifecycleWatcher.d.ts +0 -0
  76. package/dist/browser/LifecycleWatcher.js +0 -0
  77. package/dist/browser/NetworkEventManager.d.ts +0 -0
  78. package/dist/browser/NetworkEventManager.js +0 -0
  79. package/dist/browser/NetworkManager.d.ts +0 -0
  80. package/dist/browser/NetworkManager.js +0 -0
  81. package/dist/browser/NodeWebSocketTransport.d.ts +0 -0
  82. package/dist/browser/NodeWebSocketTransport.js +1 -1
  83. package/dist/browser/Product.d.ts +0 -0
  84. package/dist/browser/Product.js +0 -0
  85. package/dist/browser/PuppeteerNode.d.ts +0 -3
  86. package/dist/browser/PuppeteerNode.js +2 -14
  87. package/dist/browser/PuppeteerViewport.d.ts +0 -0
  88. package/dist/browser/PuppeteerViewport.js +0 -0
  89. package/dist/browser/ScreenshotOptions.d.ts +0 -14
  90. package/dist/browser/ScreenshotOptions.js +0 -1
  91. package/dist/browser/Target.d.ts +0 -0
  92. package/dist/browser/Target.js +0 -0
  93. package/dist/browser/TaskQueue.d.ts +0 -0
  94. package/dist/browser/TaskQueue.js +0 -0
  95. package/dist/browser/TimeoutSettings.d.ts +0 -0
  96. package/dist/browser/TimeoutSettings.js +0 -0
  97. package/dist/browser/assert.d.ts +0 -0
  98. package/dist/browser/assert.js +0 -0
  99. package/dist/browser/create-browser-fetcher.d.ts +0 -0
  100. package/dist/browser/create-browser-fetcher.js +34 -90
  101. package/dist/browser/devtools-commands.d.ts +5 -1
  102. package/dist/browser/devtools-commands.js +0 -0
  103. package/dist/browser/devtools-types.d.ts +82 -0
  104. package/dist/browser/devtools-types.js +0 -0
  105. package/dist/browser/get-download-destination.d.ts +0 -0
  106. package/dist/browser/get-download-destination.js +0 -0
  107. package/dist/browser/is-target-closed-err.d.ts +1 -0
  108. package/dist/browser/is-target-closed-err.js +9 -0
  109. package/dist/browser/mitt/index.d.ts +0 -0
  110. package/dist/browser/mitt/index.js +0 -0
  111. package/dist/browser/node.d.ts +0 -0
  112. package/dist/browser/node.js +0 -0
  113. package/dist/browser/revisions.d.ts +0 -1
  114. package/dist/browser/revisions.js +0 -1
  115. package/dist/browser/util.d.ts +0 -0
  116. package/dist/browser/util.js +0 -0
  117. package/dist/browser-executable.d.ts +0 -0
  118. package/dist/browser-executable.js +0 -0
  119. package/dist/browser-log.d.ts +0 -0
  120. package/dist/browser-log.js +0 -0
  121. package/dist/browser.d.ts +0 -0
  122. package/dist/browser.js +0 -0
  123. package/dist/calculate-ffmpeg-filters.d.ts +2 -1
  124. package/dist/calculate-ffmpeg-filters.js +1 -0
  125. package/dist/calculate-sar-dar-pixels.d.ts +0 -0
  126. package/dist/calculate-sar-dar-pixels.js +0 -0
  127. package/dist/call-ffmpeg.d.ts +14 -0
  128. package/dist/call-ffmpeg.js +37 -0
  129. package/dist/can-use-parallel-encoding.d.ts +0 -0
  130. package/dist/can-use-parallel-encoding.js +0 -0
  131. package/dist/check-apple-silicon.d.ts +1 -0
  132. package/dist/check-apple-silicon.js +12 -0
  133. package/dist/chunk.d.ts +0 -0
  134. package/dist/chunk.js +0 -0
  135. package/dist/client.d.ts +204 -0
  136. package/dist/client.js +49 -0
  137. package/dist/codec-supports-media.d.ts +2 -0
  138. package/dist/codec-supports-media.js +23 -1
  139. package/dist/codec.d.ts +0 -0
  140. package/dist/codec.js +0 -0
  141. package/dist/combine-videos.d.ts +6 -2
  142. package/dist/combine-videos.js +14 -14
  143. package/dist/compositor/compose.d.ts +15 -0
  144. package/dist/compositor/compose.js +67 -0
  145. package/dist/compositor/compositor.d.ts +12 -0
  146. package/dist/compositor/compositor.js +202 -0
  147. package/dist/compositor/get-executable-path.d.ts +1 -0
  148. package/dist/compositor/get-executable-path.js +66 -0
  149. package/dist/compositor/make-nonce.d.ts +1 -0
  150. package/dist/compositor/make-nonce.js +8 -0
  151. package/dist/compositor/payloads.d.ts +68 -0
  152. package/dist/compositor/payloads.js +2 -0
  153. package/dist/compress-assets.d.ts +0 -0
  154. package/dist/compress-assets.js +0 -0
  155. package/dist/convert-number-of-gif-loops-to-ffmpeg.d.ts +0 -0
  156. package/dist/convert-number-of-gif-loops-to-ffmpeg.js +0 -0
  157. package/dist/convert-to-positive-frame-index.d.ts +4 -0
  158. package/dist/convert-to-positive-frame-index.js +8 -0
  159. package/dist/create-ffmpeg-complex-filter.d.ts +5 -1
  160. package/dist/create-ffmpeg-complex-filter.js +6 -4
  161. package/dist/create-ffmpeg-merge-filter.d.ts +5 -1
  162. package/dist/create-ffmpeg-merge-filter.js +21 -13
  163. package/dist/create-silent-audio.d.ts +1 -3
  164. package/dist/create-silent-audio.js +3 -6
  165. package/dist/crf.d.ts +5 -1
  166. package/dist/crf.js +41 -8
  167. package/dist/cycle-browser-tabs.d.ts +2 -5
  168. package/dist/cycle-browser-tabs.js +5 -5
  169. package/dist/delay-render-embedded-stack.d.ts +0 -0
  170. package/dist/delay-render-embedded-stack.js +0 -0
  171. package/dist/delete-directory.d.ts +1 -1
  172. package/dist/delete-directory.js +43 -17
  173. package/dist/determine-resize-params.d.ts +1 -0
  174. package/dist/determine-resize-params.js +10 -0
  175. package/dist/determine-vcodec-ffmpeg-flags.d.ts +2 -0
  176. package/dist/determine-vcodec-ffmpeg-flags.js +13 -0
  177. package/dist/does-have-m2-bug.d.ts +3 -0
  178. package/dist/does-have-m2-bug.js +12 -0
  179. package/dist/ensure-ffmpeg.d.ts +18 -0
  180. package/dist/ensure-ffmpeg.js +58 -0
  181. package/dist/ensure-frames-in-order.d.ts +0 -0
  182. package/dist/ensure-frames-in-order.js +0 -0
  183. package/dist/ensure-output-directory.d.ts +0 -0
  184. package/dist/ensure-output-directory.js +0 -0
  185. package/dist/ensure-presentation-timestamp.d.ts +14 -1
  186. package/dist/ensure-presentation-timestamp.js +36 -17
  187. package/dist/error-handling/handle-javascript-exception.d.ts +0 -0
  188. package/dist/error-handling/handle-javascript-exception.js +10 -0
  189. package/dist/error-handling/symbolicate-error.d.ts +0 -0
  190. package/dist/error-handling/symbolicate-error.js +2 -1
  191. package/dist/error-handling/symbolicateable-error.d.ts +0 -0
  192. package/dist/error-handling/symbolicateable-error.js +0 -0
  193. package/dist/extract-frame-from-video.d.ts +2 -0
  194. package/dist/extract-frame-from-video.js +47 -110
  195. package/dist/ffmpeg-executable.d.ts +0 -0
  196. package/dist/ffmpeg-executable.js +0 -0
  197. package/dist/ffmpeg-filter-file.d.ts +6 -1
  198. package/dist/ffmpeg-filter-file.js +36 -4
  199. package/dist/ffmpeg-flags.d.ts +20 -2
  200. package/dist/ffmpeg-flags.js +205 -9
  201. package/dist/ffmpeg-override.d.ts +4 -0
  202. package/dist/ffmpeg-override.js +2 -0
  203. package/dist/file-extensions.d.ts +14 -0
  204. package/dist/file-extensions.js +76 -0
  205. package/dist/find-closest-package-json.d.ts +2 -0
  206. package/dist/find-closest-package-json.js +31 -0
  207. package/dist/frame-range.d.ts +0 -0
  208. package/dist/frame-range.js +0 -0
  209. package/dist/frame-to-ffmpeg-timestamp.d.ts +0 -0
  210. package/dist/frame-to-ffmpeg-timestamp.js +0 -0
  211. package/dist/get-browser-instance.d.ts +0 -0
  212. package/dist/get-browser-instance.js +1 -1
  213. package/dist/get-can-extract-frames-fast.d.ts +14 -0
  214. package/dist/get-can-extract-frames-fast.js +71 -0
  215. package/dist/get-codec-name.d.ts +0 -0
  216. package/dist/get-codec-name.js +0 -0
  217. package/dist/get-compositions.d.ts +7 -5
  218. package/dist/get-compositions.js +23 -7
  219. package/dist/get-concurrency.d.ts +1 -1
  220. package/dist/get-concurrency.js +8 -1
  221. package/dist/get-duration-from-frame-range.d.ts +0 -0
  222. package/dist/get-duration-from-frame-range.js +0 -0
  223. package/dist/get-extension-from-codec.d.ts +5 -1
  224. package/dist/get-extension-from-codec.js +56 -32
  225. package/dist/get-extension-of-filename.d.ts +0 -0
  226. package/dist/get-extension-of-filename.js +5 -1
  227. package/dist/get-frame-of-video-slow.d.ts +15 -0
  228. package/dist/get-frame-of-video-slow.js +72 -0
  229. package/dist/get-frame-padded-index.d.ts +2 -1
  230. package/dist/get-frame-padded-index.js +3 -2
  231. package/dist/get-frame-to-render.d.ts +0 -0
  232. package/dist/get-frame-to-render.js +1 -1
  233. package/dist/get-local-browser-executable.d.ts +0 -0
  234. package/dist/get-local-browser-executable.js +4 -14
  235. package/dist/get-port.d.ts +4 -1
  236. package/dist/get-port.js +8 -8
  237. package/dist/get-prores-profile-name.d.ts +0 -0
  238. package/dist/get-prores-profile-name.js +0 -0
  239. package/dist/get-video-info.d.ts +6 -1
  240. package/dist/get-video-info.js +19 -9
  241. package/dist/get-video-threads-flag.d.ts +0 -0
  242. package/dist/get-video-threads-flag.js +0 -0
  243. package/dist/guess-extension-for-media.d.ts +3 -1
  244. package/dist/guess-extension-for-media.js +5 -8
  245. package/dist/image-format.d.ts +12 -6
  246. package/dist/image-format.js +19 -13
  247. package/dist/index.d.ts +201 -48
  248. package/dist/index.js +37 -36
  249. package/dist/is-audio-codec.d.ts +0 -0
  250. package/dist/is-audio-codec.js +0 -0
  251. package/dist/is-beyond-last-frame.d.ts +0 -0
  252. package/dist/is-beyond-last-frame.js +0 -0
  253. package/dist/is-serve-url.d.ts +0 -0
  254. package/dist/is-serve-url.js +0 -0
  255. package/dist/jpeg-quality.d.ts +1 -0
  256. package/dist/jpeg-quality.js +21 -0
  257. package/dist/last-frame-from-video-cache.d.ts +2 -0
  258. package/dist/last-frame-from-video-cache.js +0 -0
  259. package/dist/legacy-webpack-config.d.ts +0 -0
  260. package/dist/legacy-webpack-config.js +0 -0
  261. package/dist/locks.d.ts +7 -0
  262. package/dist/locks.js +44 -0
  263. package/dist/log-level.d.ts +0 -0
  264. package/dist/log-level.js +0 -0
  265. package/dist/make-cancel-signal.d.ts +11 -0
  266. package/dist/make-cancel-signal.js +24 -1
  267. package/dist/merge-audio-track.d.ts +3 -3
  268. package/dist/merge-audio-track.js +39 -33
  269. package/dist/mime-db.d.ts +0 -0
  270. package/dist/mime-db.js +0 -0
  271. package/dist/mime-types.d.ts +1 -0
  272. package/dist/mime-types.js +6 -1
  273. package/dist/normalize-serve-url.d.ts +0 -0
  274. package/dist/normalize-serve-url.js +0 -0
  275. package/dist/offthread-video-server.d.ts +8 -7
  276. package/dist/offthread-video-server.js +64 -45
  277. package/dist/open-browser.d.ts +6 -0
  278. package/dist/open-browser.js +16 -18
  279. package/dist/options/audio-bitrate.d.ts +2 -0
  280. package/dist/options/audio-bitrate.js +11 -0
  281. package/dist/options/crf.d.ts +2 -0
  282. package/dist/options/crf.js +11 -0
  283. package/dist/options/enforce-audio.d.ts +2 -0
  284. package/dist/options/enforce-audio.js +11 -0
  285. package/dist/options/jpeg-quality.d.ts +2 -0
  286. package/dist/options/jpeg-quality.js +11 -0
  287. package/dist/options/mute.d.ts +2 -0
  288. package/dist/options/mute.js +11 -0
  289. package/dist/options/option.d.ts +8 -0
  290. package/dist/options/option.js +2 -0
  291. package/dist/options/scale.d.ts +2 -0
  292. package/dist/options/scale.js +11 -0
  293. package/dist/options/video-bitrate.d.ts +2 -0
  294. package/dist/options/video-bitrate.js +11 -0
  295. package/dist/options/video-codec.d.ts +2 -0
  296. package/dist/options/video-codec.js +11 -0
  297. package/dist/overwrite.d.ts +0 -0
  298. package/dist/overwrite.js +0 -0
  299. package/dist/p-limit.d.ts +0 -0
  300. package/dist/p-limit.js +0 -0
  301. package/dist/parse-browser-error-stack.d.ts +0 -0
  302. package/dist/parse-browser-error-stack.js +0 -0
  303. package/dist/parse-ffmpeg-progress.d.ts +0 -0
  304. package/dist/parse-ffmpeg-progress.js +0 -0
  305. package/dist/perf.d.ts +1 -1
  306. package/dist/perf.js +9 -7
  307. package/dist/pixel-format.d.ts +1 -1
  308. package/dist/pixel-format.js +3 -0
  309. package/dist/pool.d.ts +0 -0
  310. package/dist/pool.js +0 -0
  311. package/dist/prepare-server.d.ts +5 -5
  312. package/dist/prepare-server.js +12 -7
  313. package/dist/preprocess-audio-track.d.ts +6 -4
  314. package/dist/preprocess-audio-track.js +7 -8
  315. package/dist/prespawn-ffmpeg.d.ts +9 -9
  316. package/dist/prespawn-ffmpeg.js +17 -17
  317. package/dist/prestitcher-memory-usage.d.ts +0 -4
  318. package/dist/prestitcher-memory-usage.js +2 -3
  319. package/dist/prores-profile.d.ts +5 -3
  320. package/dist/prores-profile.js +8 -8
  321. package/dist/provide-screenshot.d.ts +8 -5
  322. package/dist/provide-screenshot.js +5 -2
  323. package/dist/puppeteer-evaluate.d.ts +0 -0
  324. package/dist/puppeteer-evaluate.js +19 -11
  325. package/dist/puppeteer-screenshot.d.ts +12 -3
  326. package/dist/puppeteer-screenshot.js +18 -44
  327. package/dist/quality.d.ts +0 -0
  328. package/dist/quality.js +0 -0
  329. package/dist/redirect-status-codes.d.ts +1 -0
  330. package/dist/redirect-status-codes.js +6 -0
  331. package/dist/render-frames.d.ts +19 -19
  332. package/dist/render-frames.js +186 -105
  333. package/dist/render-media.d.ts +46 -16
  334. package/dist/render-media.js +128 -42
  335. package/dist/render-still.d.ts +17 -11
  336. package/dist/render-still.js +79 -43
  337. package/dist/replace-browser.d.ts +6 -0
  338. package/dist/replace-browser.js +47 -0
  339. package/dist/resolve-asset-src.d.ts +0 -0
  340. package/dist/resolve-asset-src.js +0 -0
  341. package/dist/sample-rate.d.ts +0 -0
  342. package/dist/sample-rate.js +0 -0
  343. package/dist/screenshot-dom-element.d.ts +8 -5
  344. package/dist/screenshot-dom-element.js +15 -4
  345. package/dist/screenshot-task.d.ts +11 -2
  346. package/dist/screenshot-task.js +43 -13
  347. package/dist/seek-to-frame.d.ts +1 -0
  348. package/dist/seek-to-frame.js +49 -3
  349. package/dist/serve-handler/index.d.ts +0 -0
  350. package/dist/serve-handler/index.js +6 -4
  351. package/dist/serve-handler/is-path-inside.d.ts +0 -0
  352. package/dist/serve-handler/is-path-inside.js +0 -0
  353. package/dist/serve-handler/range-parser.d.ts +0 -0
  354. package/dist/serve-handler/range-parser.js +0 -0
  355. package/dist/serve-static.d.ts +3 -3
  356. package/dist/serve-static.js +84 -44
  357. package/dist/set-props-and-env.d.ts +3 -1
  358. package/dist/set-props-and-env.js +39 -15
  359. package/dist/stitch-frames-to-video.d.ts +15 -12
  360. package/dist/stitch-frames-to-video.js +120 -57
  361. package/dist/stringify-ffmpeg-filter.d.ts +10 -2
  362. package/dist/stringify-ffmpeg-filter.js +37 -34
  363. package/dist/symbolicate-stacktrace.d.ts +0 -0
  364. package/dist/symbolicate-stacktrace.js +0 -0
  365. package/dist/take-frame-and-compose.d.ts +19 -0
  366. package/dist/take-frame-and-compose.js +102 -0
  367. package/dist/tmp-dir.d.ts +0 -0
  368. package/dist/tmp-dir.js +1 -2
  369. package/dist/truthy.d.ts +0 -0
  370. package/dist/truthy.js +0 -0
  371. package/dist/try-to-extract-frame-of-video-fast.d.ts +13 -0
  372. package/dist/try-to-extract-frame-of-video-fast.js +55 -0
  373. package/dist/types.d.ts +0 -0
  374. package/dist/types.js +0 -0
  375. package/dist/validate-concurrency.d.ts +2 -0
  376. package/dist/validate-concurrency.js +21 -10
  377. package/dist/validate-even-dimensions-with-codec.d.ts +0 -0
  378. package/dist/validate-even-dimensions-with-codec.js +0 -0
  379. package/dist/validate-every-nth-frame.d.ts +2 -1
  380. package/dist/validate-every-nth-frame.js +8 -1
  381. package/dist/validate-ffmpeg-override.d.ts +2 -0
  382. package/dist/validate-ffmpeg-override.js +12 -0
  383. package/dist/validate-ffmpeg.d.ts +7 -2
  384. package/dist/validate-ffmpeg.js +48 -43
  385. package/dist/validate-number-of-gif-loops.d.ts +2 -0
  386. package/dist/validate-number-of-gif-loops.js +24 -0
  387. package/dist/validate-opengl-renderer.d.ts +0 -0
  388. package/dist/validate-opengl-renderer.js +0 -0
  389. package/dist/validate-output-filename.d.ts +7 -2
  390. package/dist/validate-output-filename.js +20 -51
  391. package/dist/validate-puppeteer-timeout.d.ts +0 -0
  392. package/dist/validate-puppeteer-timeout.js +2 -1
  393. package/dist/validate-scale.d.ts +0 -0
  394. package/dist/validate-scale.js +0 -0
  395. package/dist/validate-videobitrate.d.ts +1 -0
  396. package/dist/validate-videobitrate.js +20 -0
  397. package/dist/wait-for-symbolication-error-to-be-done.d.ts +0 -0
  398. package/dist/wait-for-symbolication-error-to-be-done.js +5 -31
  399. package/dist/warn-about-ffmpeg-version.d.ts +5 -0
  400. package/dist/warn-about-ffmpeg-version.js +37 -0
  401. package/dist/ws/ws-types.d.ts +0 -0
  402. package/dist/ws/ws-types.js +2 -1
  403. package/install-toolchain.mjs +36 -0
  404. package/package.json +69 -60
  405. package/.prettierrc.js +0 -14
  406. package/dist/add-silent-audio-if-necessary.d.ts +0 -8
  407. package/dist/add-silent-audio-if-necessary.d.ts.map +0 -1
  408. package/dist/add-silent-audio-if-necessary.js +0 -51
  409. package/dist/add-silent-audio-if-necessary.js.map +0 -1
  410. package/dist/assets/asset-is-used-at-time.d.ts +0 -3
  411. package/dist/assets/asset-is-used-at-time.d.ts.map +0 -1
  412. package/dist/assets/asset-is-used-at-time.js +0 -8
  413. package/dist/assets/asset-is-used-at-time.js.map +0 -1
  414. package/dist/assets/calculate-asset-positions.d.ts.map +0 -1
  415. package/dist/assets/calculate-asset-positions.js.map +0 -1
  416. package/dist/assets/calculate-atempo.d.ts.map +0 -1
  417. package/dist/assets/calculate-atempo.js.map +0 -1
  418. package/dist/assets/convert-assets-to-file-urls.d.ts.map +0 -1
  419. package/dist/assets/convert-assets-to-file-urls.js.map +0 -1
  420. package/dist/assets/download-and-map-assets-to-file.d.ts.map +0 -1
  421. package/dist/assets/download-and-map-assets-to-file.js.map +0 -1
  422. package/dist/assets/download-file.d.ts.map +0 -1
  423. package/dist/assets/download-file.js.map +0 -1
  424. package/dist/assets/ffmpeg-volume-expression.d.ts.map +0 -1
  425. package/dist/assets/ffmpeg-volume-expression.js.map +0 -1
  426. package/dist/assets/flatten-volume-array.d.ts.map +0 -1
  427. package/dist/assets/flatten-volume-array.js.map +0 -1
  428. package/dist/assets/get-asset-audio-details.d.ts +0 -5
  429. package/dist/assets/get-asset-audio-details.d.ts.map +0 -1
  430. package/dist/assets/get-asset-audio-details.js +0 -21
  431. package/dist/assets/get-asset-audio-details.js.map +0 -1
  432. package/dist/assets/get-audio-channels.d.ts.map +0 -1
  433. package/dist/assets/get-audio-channels.js.map +0 -1
  434. package/dist/assets/get-simulatenous-assets.d.ts +0 -3
  435. package/dist/assets/get-simulatenous-assets.d.ts.map +0 -1
  436. package/dist/assets/get-simulatenous-assets.js +0 -14
  437. package/dist/assets/get-simulatenous-assets.js.map +0 -1
  438. package/dist/assets/read-file.d.ts.map +0 -1
  439. package/dist/assets/read-file.js.map +0 -1
  440. package/dist/assets/round-volume-to-avoid-stack-overflow.d.ts.map +0 -1
  441. package/dist/assets/round-volume-to-avoid-stack-overflow.js.map +0 -1
  442. package/dist/assets/sanitize-filename.d.ts.map +0 -1
  443. package/dist/assets/sanitize-filename.js.map +0 -1
  444. package/dist/assets/sanitize-filepath.d.ts.map +0 -1
  445. package/dist/assets/sanitize-filepath.js.map +0 -1
  446. package/dist/assets/split-assets-into-segments.d.ts +0 -6
  447. package/dist/assets/split-assets-into-segments.d.ts.map +0 -1
  448. package/dist/assets/split-assets-into-segments.js +0 -89
  449. package/dist/assets/split-assets-into-segments.js.map +0 -1
  450. package/dist/assets/truncate-utf8-bytes.d.ts.map +0 -1
  451. package/dist/assets/truncate-utf8-bytes.js.map +0 -1
  452. package/dist/assets/types.d.ts.map +0 -1
  453. package/dist/assets/types.js.map +0 -1
  454. package/dist/assets-to-ffmpeg-inputs.d.ts +0 -7
  455. package/dist/assets-to-ffmpeg-inputs.d.ts.map +0 -1
  456. package/dist/assets-to-ffmpeg-inputs.js +0 -15
  457. package/dist/assets-to-ffmpeg-inputs.js.map +0 -1
  458. package/dist/browser-log.d.ts.map +0 -1
  459. package/dist/browser-log.js.map +0 -1
  460. package/dist/calculate-ffmpeg-filters.d.ts.map +0 -1
  461. package/dist/calculate-ffmpeg-filters.js.map +0 -1
  462. package/dist/can-use-parallel-encoding.d.ts.map +0 -1
  463. package/dist/can-use-parallel-encoding.js.map +0 -1
  464. package/dist/combine-videos.d.ts.map +0 -1
  465. package/dist/combine-videos.js.map +0 -1
  466. package/dist/convert-to-pcm.d.ts +0 -6
  467. package/dist/convert-to-pcm.js +0 -20
  468. package/dist/create-ffmpeg-complex-filter.d.ts.map +0 -1
  469. package/dist/create-ffmpeg-complex-filter.js.map +0 -1
  470. package/dist/cycle-browser-tabs.d.ts.map +0 -1
  471. package/dist/cycle-browser-tabs.js.map +0 -1
  472. package/dist/delay-render-embedded-stack.d.ts.map +0 -1
  473. package/dist/delay-render-embedded-stack.js.map +0 -1
  474. package/dist/delete-directory.d.ts.map +0 -1
  475. package/dist/delete-directory.js.map +0 -1
  476. package/dist/ensure-frames-in-order.d.ts.map +0 -1
  477. package/dist/ensure-frames-in-order.js.map +0 -1
  478. package/dist/ensure-output-directory.d.ts.map +0 -1
  479. package/dist/ensure-output-directory.js.map +0 -1
  480. package/dist/error-handling/handle-javascript-exception.d.ts.map +0 -1
  481. package/dist/error-handling/handle-javascript-exception.js.map +0 -1
  482. package/dist/error-handling/symbolicate-error.d.ts.map +0 -1
  483. package/dist/error-handling/symbolicate-error.js.map +0 -1
  484. package/dist/error-handling/symbolicateable-error.d.ts.map +0 -1
  485. package/dist/error-handling/symbolicateable-error.js.map +0 -1
  486. package/dist/ffmpeg-flags.d.ts.map +0 -1
  487. package/dist/ffmpeg-flags.js.map +0 -1
  488. package/dist/get-audio-codec-name.d.ts +0 -2
  489. package/dist/get-audio-codec-name.d.ts.map +0 -1
  490. package/dist/get-audio-codec-name.js +0 -28
  491. package/dist/get-audio-codec-name.js.map +0 -1
  492. package/dist/get-browser-instance.d.ts.map +0 -1
  493. package/dist/get-browser-instance.js.map +0 -1
  494. package/dist/get-codec-name.d.ts.map +0 -1
  495. package/dist/get-codec-name.js.map +0 -1
  496. package/dist/get-compositions.d.ts.map +0 -1
  497. package/dist/get-compositions.js.map +0 -1
  498. package/dist/get-concurrency.d.ts.map +0 -1
  499. package/dist/get-concurrency.js.map +0 -1
  500. package/dist/get-extension-from-codec.d.ts.map +0 -1
  501. package/dist/get-extension-from-codec.js.map +0 -1
  502. package/dist/get-frame-to-render.d.ts.map +0 -1
  503. package/dist/get-frame-to-render.js.map +0 -1
  504. package/dist/get-local-browser-executable.d.ts.map +0 -1
  505. package/dist/get-local-browser-executable.js.map +0 -1
  506. package/dist/get-port.d.ts.map +0 -1
  507. package/dist/get-port.js.map +0 -1
  508. package/dist/get-prores-profile-name.d.ts.map +0 -1
  509. package/dist/get-prores-profile-name.js.map +0 -1
  510. package/dist/image-format.d.ts.map +0 -1
  511. package/dist/image-format.js.map +0 -1
  512. package/dist/index.d.ts.map +0 -1
  513. package/dist/index.js.map +0 -1
  514. package/dist/is-serve-url.d.ts.map +0 -1
  515. package/dist/is-serve-url.js.map +0 -1
  516. package/dist/legacy-webpack-config.d.ts.map +0 -1
  517. package/dist/legacy-webpack-config.js.map +0 -1
  518. package/dist/make-assets-download-dir.d.ts +0 -1
  519. package/dist/make-assets-download-dir.d.ts.map +0 -1
  520. package/dist/make-assets-download-dir.js +0 -13
  521. package/dist/make-assets-download-dir.js.map +0 -1
  522. package/dist/normalize-serve-url.d.ts.map +0 -1
  523. package/dist/normalize-serve-url.js.map +0 -1
  524. package/dist/open-browser.d.ts.map +0 -1
  525. package/dist/open-browser.js.map +0 -1
  526. package/dist/parse-browser-error-stack.d.ts.map +0 -1
  527. package/dist/parse-browser-error-stack.js.map +0 -1
  528. package/dist/parse-ffmpeg-progress.d.ts.map +0 -1
  529. package/dist/parse-ffmpeg-progress.js.map +0 -1
  530. package/dist/pool.d.ts.map +0 -1
  531. package/dist/pool.js.map +0 -1
  532. package/dist/prepare-server.d.ts.map +0 -1
  533. package/dist/prepare-server.js.map +0 -1
  534. package/dist/provide-screenshot.d.ts.map +0 -1
  535. package/dist/provide-screenshot.js.map +0 -1
  536. package/dist/puppeteer-evaluate.d.ts.map +0 -1
  537. package/dist/puppeteer-evaluate.js.map +0 -1
  538. package/dist/puppeteer-screenshot.d.ts.map +0 -1
  539. package/dist/puppeteer-screenshot.js.map +0 -1
  540. package/dist/render-media.d.ts.map +0 -1
  541. package/dist/render-media.js.map +0 -1
  542. package/dist/render-still.d.ts.map +0 -1
  543. package/dist/render-still.js.map +0 -1
  544. package/dist/render.d.ts +0 -45
  545. package/dist/render.d.ts.map +0 -1
  546. package/dist/render.js +0 -245
  547. package/dist/render.js.map +0 -1
  548. package/dist/resolve-asset-src.d.ts.map +0 -1
  549. package/dist/resolve-asset-src.js.map +0 -1
  550. package/dist/sample-rate.d.ts.map +0 -1
  551. package/dist/sample-rate.js.map +0 -1
  552. package/dist/screenshot-dom-element.d.ts.map +0 -1
  553. package/dist/screenshot-dom-element.js.map +0 -1
  554. package/dist/screenshot-task.d.ts.map +0 -1
  555. package/dist/screenshot-task.js.map +0 -1
  556. package/dist/seek-to-frame.d.ts.map +0 -1
  557. package/dist/seek-to-frame.js.map +0 -1
  558. package/dist/serve-static.d.ts.map +0 -1
  559. package/dist/serve-static.js.map +0 -1
  560. package/dist/set-props-and-env.d.ts.map +0 -1
  561. package/dist/set-props-and-env.js.map +0 -1
  562. package/dist/stitcher.d.ts +0 -32
  563. package/dist/stitcher.d.ts.map +0 -1
  564. package/dist/stitcher.js +0 -204
  565. package/dist/stitcher.js.map +0 -1
  566. package/dist/stringify-ffmpeg-filter.d.ts.map +0 -1
  567. package/dist/stringify-ffmpeg-filter.js.map +0 -1
  568. package/dist/symbolicate-stacktrace.d.ts.map +0 -1
  569. package/dist/symbolicate-stacktrace.js.map +0 -1
  570. package/dist/tmp-dir.d.ts.map +0 -1
  571. package/dist/tmp-dir.js.map +0 -1
  572. package/dist/types.d.ts.map +0 -1
  573. package/dist/types.js.map +0 -1
  574. package/dist/validate-even-dimensions-with-codec.d.ts.map +0 -1
  575. package/dist/validate-even-dimensions-with-codec.js.map +0 -1
  576. package/dist/validate-ffmpeg.d.ts.map +0 -1
  577. package/dist/validate-ffmpeg.js.map +0 -1
  578. package/dist/validate-frame.d.ts +0 -1
  579. package/dist/validate-frame.js +0 -24
  580. package/dist/validate-puppeteer-timeout.d.ts.map +0 -1
  581. package/dist/validate-puppeteer-timeout.js.map +0 -1
  582. package/dist/validate-scale.d.ts.map +0 -1
  583. package/dist/validate-scale.js.map +0 -1
  584. package/tsconfig.json +0 -10
  585. package/vitest.config.ts +0 -8
@@ -1,21 +1,18 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
3
  exports.prespawnFfmpeg = void 0;
7
- const execa_1 = __importDefault(require("execa"));
8
4
  const remotion_1 = require("remotion");
5
+ const call_ffmpeg_1 = require("./call-ffmpeg");
9
6
  const codec_1 = require("./codec");
7
+ const get_executable_path_1 = require("./compositor/get-executable-path");
10
8
  const crf_1 = require("./crf");
11
9
  const get_codec_name_1 = require("./get-codec-name");
12
10
  const get_prores_profile_name_1 = require("./get-prores-profile-name");
13
11
  const parse_ffmpeg_progress_1 = require("./parse-ffmpeg-progress");
14
12
  const pixel_format_1 = require("./pixel-format");
15
13
  const validate_even_dimensions_with_codec_1 = require("./validate-even-dimensions-with-codec");
16
- const validate_ffmpeg_1 = require("./validate-ffmpeg");
17
- const prespawnFfmpeg = async (options) => {
18
- var _a, _b, _c, _d, _e, _f, _g;
14
+ const prespawnFfmpeg = (options) => {
15
+ var _a, _b, _c;
19
16
  remotion_1.Internals.validateDimension(options.height, 'height', 'passed to `stitchFramesToVideo()`');
20
17
  remotion_1.Internals.validateDimension(options.width, 'width', 'passed to `stitchFramesToVideo()`');
21
18
  const codec = (_a = options.codec) !== null && _a !== void 0 ? _a : codec_1.DEFAULT_CODEC;
@@ -26,9 +23,7 @@ const prespawnFfmpeg = async (options) => {
26
23
  codec,
27
24
  scale: 1,
28
25
  });
29
- const crf = (_b = options.crf) !== null && _b !== void 0 ? _b : (0, crf_1.getDefaultCrfForCodec)(codec);
30
- const pixelFormat = (_c = options.pixelFormat) !== null && _c !== void 0 ? _c : pixel_format_1.DEFAULT_PIXEL_FORMAT;
31
- await (0, validate_ffmpeg_1.validateFfmpeg)((_d = options.ffmpegExecutable) !== null && _d !== void 0 ? _d : null);
26
+ const pixelFormat = (_b = options.pixelFormat) !== null && _b !== void 0 ? _b : pixel_format_1.DEFAULT_PIXEL_FORMAT;
32
27
  const encoderName = (0, get_codec_name_1.getCodecName)(codec);
33
28
  const proResProfileName = (0, get_prores_profile_name_1.getProResProfileName)(codec, options.proResProfile);
34
29
  if (encoderName === null) {
@@ -36,16 +31,15 @@ const prespawnFfmpeg = async (options) => {
36
31
  }
37
32
  const supportsCrf = codec !== 'prores';
38
33
  if (options.verbose) {
39
- console.log('[verbose] ffmpeg', (_e = options.ffmpegExecutable) !== null && _e !== void 0 ? _e : 'ffmpeg in PATH');
34
+ console.log('[verbose] ffmpeg', (0, get_executable_path_1.getExecutablePath)('ffmpeg'));
40
35
  console.log('[verbose] encoder', encoderName);
41
36
  console.log('[verbose] pixelFormat', pixelFormat);
42
37
  if (supportsCrf) {
43
- console.log('[verbose] crf', crf);
38
+ console.log('[verbose] crf', options.crf);
44
39
  }
45
40
  console.log('[verbose] codec', codec);
46
41
  console.log('[verbose] proResProfileName', proResProfileName);
47
42
  }
48
- (0, crf_1.validateSelectedCrfAndCodecCombination)(crf, codec);
49
43
  (0, pixel_format_1.validateSelectedPixelFormatAndCodecCombination)(pixelFormat, codec);
50
44
  const ffmpegArgs = [
51
45
  ['-r', options.fps.toFixed(2)],
@@ -61,12 +55,15 @@ const prespawnFfmpeg = async (options) => {
61
55
  // and specified the video codec.
62
56
  ['-c:v', encoderName],
63
57
  proResProfileName ? ['-profile:v', proResProfileName] : null,
64
- supportsCrf ? ['-crf', String(crf)] : null,
65
58
  ['-pix_fmt', pixelFormat],
66
59
  // Without explicitly disabling auto-alt-ref,
67
60
  // transparent WebM generation doesn't work
68
61
  pixelFormat === 'yuva420p' ? ['-auto-alt-ref', '0'] : null,
69
- ['-b:v', '1M'],
62
+ ...(0, crf_1.validateQualitySettings)({
63
+ crf: options.crf,
64
+ videoBitrate: options.videoBitrate,
65
+ codec,
66
+ }),
70
67
  '-y',
71
68
  options.outputLocation,
72
69
  ];
@@ -75,12 +72,15 @@ const prespawnFfmpeg = async (options) => {
75
72
  console.log(ffmpegArgs);
76
73
  }
77
74
  const ffmpegString = ffmpegArgs.flat(2).filter(Boolean);
78
- const task = (0, execa_1.default)((_f = options.ffmpegExecutable) !== null && _f !== void 0 ? _f : 'ffmpeg', ffmpegString);
75
+ const finalFfmpegString = options.ffmpegOverride
76
+ ? options.ffmpegOverride({ type: 'pre-stitcher', args: ffmpegString })
77
+ : ffmpegString;
78
+ const task = (0, call_ffmpeg_1.callFf)('ffmpeg', finalFfmpegString);
79
79
  options.signal(() => {
80
80
  task.kill();
81
81
  });
82
82
  let ffmpegOutput = '';
83
- (_g = task.stderr) === null || _g === void 0 ? void 0 : _g.on('data', (data) => {
83
+ (_c = task.stderr) === null || _c === void 0 ? void 0 : _c.on('data', (data) => {
84
84
  const str = data.toString();
85
85
  ffmpegOutput += str;
86
86
  if (options.onProgress) {
@@ -1,7 +1,3 @@
1
- export declare const estimateMemoryUsageForPrestitcher: ({ width, height, }: {
2
- width: number;
3
- height: number;
4
- }) => number;
5
1
  export declare const shouldUseParallelEncoding: ({ width, height, }: {
6
2
  width: number;
7
3
  height: number;
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.shouldUseParallelEncoding = exports.estimateMemoryUsageForPrestitcher = void 0;
6
+ exports.shouldUseParallelEncoding = void 0;
7
7
  const os_1 = __importDefault(require("os"));
8
8
  const estimateMemoryUsageForPrestitcher = ({ width, height, }) => {
9
9
  // Empirically we detected that per 1 million pixels, FFMPEG uses around 1GB of memory, relatively independent of
@@ -12,10 +12,9 @@ const estimateMemoryUsageForPrestitcher = ({ width, height, }) => {
12
12
  const memoryUsageOfPixel = memoryUsageFor4K / 1000000;
13
13
  return memoryUsageOfPixel * width * height;
14
14
  };
15
- exports.estimateMemoryUsageForPrestitcher = estimateMemoryUsageForPrestitcher;
16
15
  const shouldUseParallelEncoding = ({ width, height, }) => {
17
16
  const freeMemory = os_1.default.freemem();
18
- const estimatedUsage = (0, exports.estimateMemoryUsageForPrestitcher)({
17
+ const estimatedUsage = estimateMemoryUsageForPrestitcher({
19
18
  height,
20
19
  width,
21
20
  });
@@ -1,5 +1,7 @@
1
1
  import type { Codec } from './codec';
2
- declare const proResProfileOptions: readonly ["4444-xq", "4444", "hq", "standard", "light", "proxy"];
2
+ export declare const proResProfileOptions: readonly ["4444-xq", "4444", "hq", "standard", "light", "proxy"];
3
3
  export declare type ProResProfile = typeof proResProfileOptions[number];
4
- export declare const validateSelectedCodecAndProResCombination: (actualCodec: Codec, actualProResProfile: ProResProfile | undefined) => void;
5
- export {};
4
+ export declare const validateSelectedCodecAndProResCombination: ({ codec, proResProfile, }: {
5
+ codec: Codec;
6
+ proResProfile: ProResProfile | undefined;
7
+ }) => void;
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.validateSelectedCodecAndProResCombination = void 0;
4
- const proResProfileOptions = [
3
+ exports.validateSelectedCodecAndProResCombination = exports.proResProfileOptions = void 0;
4
+ exports.proResProfileOptions = [
5
5
  '4444-xq',
6
6
  '4444',
7
7
  'hq',
@@ -9,13 +9,13 @@ const proResProfileOptions = [
9
9
  'light',
10
10
  'proxy',
11
11
  ];
12
- const validateSelectedCodecAndProResCombination = (actualCodec, actualProResProfile) => {
13
- if (typeof actualProResProfile !== 'undefined' && actualCodec !== 'prores') {
14
- throw new TypeError('You have set a ProRes profile but the codec is not "prores". Set the codec to "prores" or remove the ProRes profile.');
12
+ const validateSelectedCodecAndProResCombination = ({ codec, proResProfile, }) => {
13
+ if (typeof proResProfile !== 'undefined' && codec !== 'prores') {
14
+ throw new TypeError(`You have set a ProRes profile but the codec is "${codec}". Set the codec to "prores" or remove the ProRes profile.`);
15
15
  }
16
- if (actualProResProfile !== undefined &&
17
- !proResProfileOptions.includes(actualProResProfile)) {
18
- throw new TypeError(`The ProRes profile "${actualProResProfile}" is not valid. Valid options are ${proResProfileOptions
16
+ if (proResProfile !== undefined &&
17
+ !exports.proResProfileOptions.includes(proResProfile)) {
18
+ throw new TypeError(`The ProRes profile "${proResProfile}" is not valid. Valid options are ${exports.proResProfileOptions
19
19
  .map((p) => `"${p}"`)
20
20
  .join(', ')}`);
21
21
  }
@@ -1,12 +1,15 @@
1
- /// <reference types="node" />
1
+ import type { ClipRegion } from 'remotion';
2
2
  import type { Page } from './browser/BrowserPage';
3
- import type { ImageFormat } from './image-format';
4
- export declare const provideScreenshot: ({ page, imageFormat, options, quality, }: {
3
+ import type { StillImageFormat } from './image-format';
4
+ export declare const provideScreenshot: ({ page, imageFormat, options, jpegQuality, height, width, clipRegion, }: {
5
5
  page: Page;
6
- imageFormat: ImageFormat;
7
- quality: number | undefined;
6
+ imageFormat: StillImageFormat;
7
+ jpegQuality: number | undefined;
8
8
  options: {
9
9
  frame: number;
10
10
  output: string | null;
11
11
  };
12
+ height: number;
13
+ width: number;
14
+ clipRegion: ClipRegion | null;
12
15
  }) => Promise<Buffer>;
@@ -2,14 +2,17 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.provideScreenshot = void 0;
4
4
  const screenshot_dom_element_1 = require("./screenshot-dom-element");
5
- const provideScreenshot = ({ page, imageFormat, options, quality, }) => {
5
+ const provideScreenshot = ({ page, imageFormat, options, jpegQuality, height, width, clipRegion, }) => {
6
6
  return (0, screenshot_dom_element_1.screenshotDOMElement)({
7
7
  page,
8
8
  opts: {
9
9
  path: options.output,
10
10
  },
11
11
  imageFormat,
12
- quality,
12
+ jpegQuality,
13
+ height,
14
+ width,
15
+ clipRegion,
13
16
  });
14
17
  };
15
18
  exports.provideScreenshot = provideScreenshot;
File without changes
@@ -99,18 +99,26 @@ async function puppeteerEvaluateWithCatch({ page, pageFunction, frame, args, })
99
99
  error.message += ' Are you passing a nested JSHandle?';
100
100
  throw error;
101
101
  }
102
- const { exceptionDetails, result: remoteObject } = await callFunctionOnPromise;
103
- if (exceptionDetails) {
104
- const err = new symbolicateable_error_1.SymbolicateableError({
105
- stack: (_c = exceptionDetails.exception) === null || _c === void 0 ? void 0 : _c.description,
106
- name: (_d = exceptionDetails.exception) === null || _d === void 0 ? void 0 : _d.className,
107
- message: (_f = (_e = exceptionDetails.exception) === null || _e === void 0 ? void 0 : _e.description) === null || _f === void 0 ? void 0 : _f.split('\n')[0],
108
- frame,
109
- stackFrame: (0, parse_browser_error_stack_1.parseStack)(((_g = exceptionDetails.exception) === null || _g === void 0 ? void 0 : _g.description).split('\n')),
110
- });
111
- throw err;
102
+ try {
103
+ const { exceptionDetails, result: remoteObject } = await callFunctionOnPromise;
104
+ if (exceptionDetails) {
105
+ const err = new symbolicateable_error_1.SymbolicateableError({
106
+ stack: (_c = exceptionDetails.exception) === null || _c === void 0 ? void 0 : _c.description,
107
+ name: (_d = exceptionDetails.exception) === null || _d === void 0 ? void 0 : _d.className,
108
+ message: (_f = (_e = exceptionDetails.exception) === null || _e === void 0 ? void 0 : _e.description) === null || _f === void 0 ? void 0 : _f.split('\n')[0],
109
+ frame,
110
+ stackFrame: (0, parse_browser_error_stack_1.parseStack)(((_g = exceptionDetails.exception) === null || _g === void 0 ? void 0 : _g.description).split('\n')),
111
+ });
112
+ throw err;
113
+ }
114
+ return valueFromRemoteObject(remoteObject);
115
+ }
116
+ catch (error) {
117
+ if (error === null || error === void 0 ? void 0 : error.originalMessage.startsWith("Object couldn't be returned by value")) {
118
+ throw new Error('Could not serialize the return value of the function. Did you pass non-serializable values to defaultProps?');
119
+ }
120
+ throw error;
112
121
  }
113
- return valueFromRemoteObject(remoteObject);
114
122
  }
115
123
  exports.puppeteerEvaluateWithCatch = puppeteerEvaluateWithCatch;
116
124
  /**
@@ -1,4 +1,13 @@
1
- /// <reference types="node" />
1
+ import type { ClipRegion } from 'remotion';
2
2
  import type { Page } from './browser/BrowserPage';
3
- import type { ScreenshotOptions } from './browser/ScreenshotOptions';
4
- export declare const screenshot: (page: Page, options: ScreenshotOptions) => Promise<Buffer | string | void>;
3
+ import type { StillImageFormat } from './image-format';
4
+ export declare const screenshot: (options: {
5
+ page: Page;
6
+ type: StillImageFormat;
7
+ path?: string;
8
+ jpegQuality?: number;
9
+ omitBackground: boolean;
10
+ width: number;
11
+ height: number;
12
+ clipRegion: ClipRegion | null;
13
+ }) => Promise<Buffer | string>;
@@ -26,50 +26,24 @@ Object.defineProperty(exports, "__esModule", { value: true });
26
26
  exports.screenshot = void 0;
27
27
  const assert = __importStar(require("assert"));
28
28
  const screenshot_task_1 = require("./screenshot-task");
29
- const screenshot = (page, options) => {
30
- let screenshotType = null;
31
- // options.type takes precedence over inferring the type from options.path
32
- // because it may be a 0-length file with no extension created beforehand
33
- // (i.e. as a temp file).
34
- if (options.type) {
35
- assert.ok(options.type === 'png' || options.type === 'jpeg', 'Unknown options.type value: ' + options.type);
36
- screenshotType = options.type;
29
+ const screenshot = (options) => {
30
+ if (options.jpegQuality) {
31
+ assert.ok(options.type === 'jpeg', `options.quality is unsupported for the ${options.type} screenshots`);
32
+ assert.ok(typeof options.jpegQuality === 'number', 'Expected options.quality to be a number but found ' +
33
+ typeof options.jpegQuality);
34
+ assert.ok(Number.isInteger(options.jpegQuality), 'Expected options.quality to be an integer');
35
+ assert.ok(options.jpegQuality >= 0 && options.jpegQuality <= 100, 'Expected options.quality to be between 0 and 100 (inclusive), got ' +
36
+ options.jpegQuality);
37
37
  }
38
- else if (options.path) {
39
- const filePath = options.path;
40
- const extension = filePath
41
- .slice(filePath.lastIndexOf('.') + 1)
42
- .toLowerCase();
43
- if (extension === 'png')
44
- screenshotType = 'png';
45
- else if (extension === 'jpg' || extension === 'jpeg')
46
- screenshotType = 'jpeg';
47
- assert.ok(screenshotType, `Unsupported screenshot type for extension \`.${extension}\``);
48
- }
49
- if (!screenshotType)
50
- screenshotType = 'png';
51
- if (options.quality) {
52
- assert.ok(screenshotType === 'jpeg', 'options.quality is unsupported for the ' +
53
- screenshotType +
54
- ' screenshots');
55
- assert.ok(typeof options.quality === 'number', 'Expected options.quality to be a number but found ' +
56
- typeof options.quality);
57
- assert.ok(Number.isInteger(options.quality), 'Expected options.quality to be an integer');
58
- assert.ok(options.quality >= 0 && options.quality <= 100, 'Expected options.quality to be between 0 and 100 (inclusive), got ' +
59
- options.quality);
60
- }
61
- if (options.clip) {
62
- assert.ok(typeof options.clip.x === 'number', 'Expected options.clip.x to be a number but found ' +
63
- typeof options.clip.x);
64
- assert.ok(typeof options.clip.y === 'number', 'Expected options.clip.y to be a number but found ' +
65
- typeof options.clip.y);
66
- assert.ok(typeof options.clip.width === 'number', 'Expected options.clip.width to be a number but found ' +
67
- typeof options.clip.width);
68
- assert.ok(typeof options.clip.height === 'number', 'Expected options.clip.height to be a number but found ' +
69
- typeof options.clip.height);
70
- assert.ok(options.clip.width !== 0, 'Expected options.clip.width not to be 0.');
71
- assert.ok(options.clip.height !== 0, 'Expected options.clip.height not to be 0.');
72
- }
73
- return page.screenshotTaskQueue.postTask(() => (0, screenshot_task_1._screenshotTask)(page, screenshotType, options));
38
+ return options.page.screenshotTaskQueue.postTask(() => (0, screenshot_task_1.screenshotTask)({
39
+ page: options.page,
40
+ format: options.type,
41
+ height: options.height,
42
+ width: options.width,
43
+ omitBackground: options.omitBackground,
44
+ path: options.path,
45
+ jpegQuality: options.jpegQuality,
46
+ clipRegion: options.clipRegion,
47
+ }));
74
48
  };
75
49
  exports.screenshot = screenshot;
package/dist/quality.d.ts CHANGED
File without changes
package/dist/quality.js CHANGED
File without changes
@@ -0,0 +1 @@
1
+ export declare const redirectStatusCodes: number[];
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.redirectStatusCodes = void 0;
4
+ // Don't handle 304 status code (Not Modified) as a redirect,
5
+ // since the browser will display the right page.
6
+ exports.redirectStatusCodes = [301, 302, 303, 307, 308];
@@ -1,34 +1,27 @@
1
1
  /// <reference types="node" />
2
- import type { SmallTCompMetadata } from 'remotion';
2
+ import type { AnySmallCompMetadata } from 'remotion';
3
3
  import type { RenderMediaOnDownload } from './assets/download-and-map-assets-to-file';
4
4
  import type { DownloadMap } from './assets/download-map';
5
5
  import type { BrowserExecutable } from './browser-executable';
6
6
  import type { BrowserLog } from './browser-log';
7
7
  import type { Browser } from './browser/Browser';
8
- import type { FfmpegExecutable } from './ffmpeg-executable';
9
8
  import type { FrameRange } from './frame-range';
10
- import type { ImageFormat } from './image-format';
11
- import type { ServeUrlOrWebpackBundle } from './legacy-webpack-config';
9
+ import type { VideoImageFormat } from './image-format';
12
10
  import type { CancelSignal } from './make-cancel-signal';
13
11
  import type { ChromiumOptions } from './open-browser';
14
12
  import type { OnStartData, RenderFramesOutput } from './types';
15
- declare type ConfigOrComposition = {
16
- /**
17
- * @deprecated This field has been renamed to `composition`
18
- */
19
- config: SmallTCompMetadata;
20
- } | {
21
- composition: SmallTCompMetadata;
22
- };
23
13
  declare type RenderFramesOptions = {
24
14
  onStart: (data: OnStartData) => void;
25
- onFrameUpdate: (framesRendered: number, frameIndex: number) => void;
15
+ onFrameUpdate: (framesRendered: number, frameIndex: number, timeToRenderInMilliseconds: number) => void;
26
16
  outputDir: string | null;
27
17
  inputProps: unknown;
28
18
  envVariables?: Record<string, string>;
29
- imageFormat: ImageFormat;
30
- parallelism?: number | null;
31
- quality?: number;
19
+ imageFormat?: VideoImageFormat;
20
+ /**
21
+ * @deprecated Renamed to "jpegQuality"
22
+ */
23
+ quality?: never;
24
+ jpegQuality?: number;
32
25
  frameRange?: FrameRange | null;
33
26
  everyNthFrame?: number;
34
27
  dumpBrowserLogs?: boolean;
@@ -40,14 +33,21 @@ declare type RenderFramesOptions = {
40
33
  timeoutInMilliseconds?: number;
41
34
  chromiumOptions?: ChromiumOptions;
42
35
  scale?: number;
43
- ffmpegExecutable?: FfmpegExecutable;
44
- ffprobeExecutable?: FfmpegExecutable;
45
36
  port?: number | null;
46
37
  cancelSignal?: CancelSignal;
38
+ composition: AnySmallCompMetadata;
47
39
  /**
48
40
  * @deprecated Only for Remotion internal usage
49
41
  */
50
42
  downloadMap?: DownloadMap;
51
- } & ConfigOrComposition & ServeUrlOrWebpackBundle;
43
+ muted?: boolean;
44
+ concurrency?: number | string | null;
45
+ serveUrl: string;
46
+ verbose?: boolean;
47
+ };
48
+ /**
49
+ * @description Renders a series of images using Puppeteer and computes information for mixing audio.
50
+ * @see [Documentation](https://www.remotion.dev/docs/renderer/render-frames)
51
+ */
52
52
  export declare const renderFrames: (options: RenderFramesOptions) => Promise<RenderFramesOutput>;
53
53
  export {};