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

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 (594) 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 +64 -15
  13. package/dist/assets/download-file.d.ts +9 -6
  14. package/dist/assets/download-file.js +67 -9
  15. package/dist/assets/download-map.d.ts +5 -26
  16. package/dist/assets/download-map.js +15 -16
  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 +1 -1
  26. package/dist/assets/read-file.js +4 -6
  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 +2 -2
  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 +8 -6
  40. package/dist/browser/Browser.js +48 -45
  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 +151 -237
  45. package/dist/browser/BrowserPage.d.ts +12 -6
  46. package/dist/browser/BrowserPage.js +8 -11
  47. package/dist/browser/BrowserRunner.d.ts +2 -5
  48. package/dist/browser/BrowserRunner.js +42 -92
  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 +5 -4
  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 -5
  72. package/dist/browser/LaunchOptions.js +0 -0
  73. package/dist/browser/Launcher.d.ts +9 -3
  74. package/dist/browser/Launcher.js +17 -387
  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 +5 -5
  83. package/dist/browser/Product.d.ts +0 -0
  84. package/dist/browser/Product.js +0 -0
  85. package/dist/browser/PuppeteerNode.d.ts +2 -5
  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 +2 -2
  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 +8 -8
  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 +2 -2
  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 +42 -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/chalk/index.d.ts +54 -0
  132. package/dist/chalk/index.js +135 -0
  133. package/dist/chalk/is-color-supported.d.ts +1 -0
  134. package/dist/chalk/is-color-supported.js +37 -0
  135. package/dist/check-apple-silicon.d.ts +1 -0
  136. package/dist/check-apple-silicon.js +12 -0
  137. package/dist/chunk.d.ts +0 -0
  138. package/dist/chunk.js +0 -0
  139. package/dist/client.d.ts +204 -0
  140. package/dist/client.js +49 -0
  141. package/dist/codec-supports-media.d.ts +2 -0
  142. package/dist/codec-supports-media.js +23 -1
  143. package/dist/codec.d.ts +0 -0
  144. package/dist/codec.js +0 -0
  145. package/dist/combine-videos.d.ts +6 -2
  146. package/dist/combine-videos.js +18 -18
  147. package/dist/compositor/compose.d.ts +17 -0
  148. package/dist/compositor/compose.js +71 -0
  149. package/dist/compositor/compositor.d.ts +11 -0
  150. package/dist/compositor/compositor.js +207 -0
  151. package/dist/compositor/get-executable-path.d.ts +1 -0
  152. package/dist/compositor/get-executable-path.js +57 -0
  153. package/dist/compositor/make-nonce.d.ts +1 -0
  154. package/dist/compositor/make-nonce.js +8 -0
  155. package/dist/compositor/payloads.d.ts +68 -0
  156. package/dist/compositor/payloads.js +2 -0
  157. package/dist/compress-assets.d.ts +0 -0
  158. package/dist/compress-assets.js +0 -0
  159. package/dist/convert-number-of-gif-loops-to-ffmpeg.d.ts +0 -0
  160. package/dist/convert-number-of-gif-loops-to-ffmpeg.js +0 -0
  161. package/dist/convert-to-positive-frame-index.d.ts +4 -0
  162. package/dist/convert-to-positive-frame-index.js +8 -0
  163. package/dist/create-ffmpeg-complex-filter.d.ts +6 -5
  164. package/dist/create-ffmpeg-complex-filter.js +6 -4
  165. package/dist/create-ffmpeg-merge-filter.d.ts +5 -1
  166. package/dist/create-ffmpeg-merge-filter.js +21 -13
  167. package/dist/create-silent-audio.d.ts +1 -3
  168. package/dist/create-silent-audio.js +3 -6
  169. package/dist/crf.d.ts +5 -1
  170. package/dist/crf.js +41 -8
  171. package/dist/cycle-browser-tabs.d.ts +2 -5
  172. package/dist/cycle-browser-tabs.js +5 -5
  173. package/dist/delay-render-embedded-stack.d.ts +0 -0
  174. package/dist/delay-render-embedded-stack.js +0 -0
  175. package/dist/delete-directory.d.ts +1 -1
  176. package/dist/delete-directory.js +43 -17
  177. package/dist/determine-resize-params.d.ts +1 -0
  178. package/dist/determine-resize-params.js +10 -0
  179. package/dist/determine-vcodec-ffmpeg-flags.d.ts +2 -0
  180. package/dist/determine-vcodec-ffmpeg-flags.js +13 -0
  181. package/dist/does-have-m2-bug.d.ts +3 -0
  182. package/dist/does-have-m2-bug.js +12 -0
  183. package/dist/ensure-ffmpeg.d.ts +18 -0
  184. package/dist/ensure-ffmpeg.js +58 -0
  185. package/dist/ensure-frames-in-order.d.ts +0 -0
  186. package/dist/ensure-frames-in-order.js +0 -0
  187. package/dist/ensure-output-directory.d.ts +0 -0
  188. package/dist/ensure-output-directory.js +5 -5
  189. package/dist/ensure-presentation-timestamp.d.ts +14 -1
  190. package/dist/ensure-presentation-timestamp.js +36 -17
  191. package/dist/error-handling/handle-javascript-exception.d.ts +0 -0
  192. package/dist/error-handling/handle-javascript-exception.js +10 -0
  193. package/dist/error-handling/symbolicate-error.d.ts +0 -0
  194. package/dist/error-handling/symbolicate-error.js +2 -1
  195. package/dist/error-handling/symbolicateable-error.d.ts +0 -0
  196. package/dist/error-handling/symbolicateable-error.js +0 -0
  197. package/dist/extract-frame-from-video.d.ts +1 -0
  198. package/dist/extract-frame-from-video.js +47 -110
  199. package/dist/ffmpeg-executable.d.ts +0 -0
  200. package/dist/ffmpeg-executable.js +0 -0
  201. package/dist/ffmpeg-filter-file.d.ts +6 -1
  202. package/dist/ffmpeg-filter-file.js +40 -8
  203. package/dist/ffmpeg-flags.d.ts +20 -2
  204. package/dist/ffmpeg-flags.js +205 -9
  205. package/dist/ffmpeg-override.d.ts +4 -0
  206. package/dist/ffmpeg-override.js +2 -0
  207. package/dist/file-extensions.d.ts +14 -0
  208. package/dist/file-extensions.js +76 -0
  209. package/dist/find-closest-package-json.d.ts +2 -0
  210. package/dist/find-closest-package-json.js +31 -0
  211. package/dist/frame-range.d.ts +0 -0
  212. package/dist/frame-range.js +0 -0
  213. package/dist/frame-to-ffmpeg-timestamp.d.ts +0 -0
  214. package/dist/frame-to-ffmpeg-timestamp.js +0 -0
  215. package/dist/get-browser-instance.d.ts +2 -2
  216. package/dist/get-browser-instance.js +1 -1
  217. package/dist/get-can-extract-frames-fast.d.ts +14 -0
  218. package/dist/get-can-extract-frames-fast.js +71 -0
  219. package/dist/get-codec-name.d.ts +0 -0
  220. package/dist/get-codec-name.js +0 -0
  221. package/dist/get-compositions.d.ts +14 -8
  222. package/dist/get-compositions.js +25 -7
  223. package/dist/get-concurrency.d.ts +1 -1
  224. package/dist/get-concurrency.js +11 -4
  225. package/dist/get-duration-from-frame-range.d.ts +0 -0
  226. package/dist/get-duration-from-frame-range.js +0 -0
  227. package/dist/get-extension-from-codec.d.ts +5 -1
  228. package/dist/get-extension-from-codec.js +56 -32
  229. package/dist/get-extension-of-filename.d.ts +0 -0
  230. package/dist/get-extension-of-filename.js +5 -1
  231. package/dist/get-frame-of-video-slow.d.ts +17 -0
  232. package/dist/get-frame-of-video-slow.js +72 -0
  233. package/dist/get-frame-padded-index.d.ts +2 -1
  234. package/dist/get-frame-padded-index.js +3 -2
  235. package/dist/get-frame-to-render.d.ts +0 -0
  236. package/dist/get-frame-to-render.js +1 -1
  237. package/dist/get-local-browser-executable.d.ts +0 -0
  238. package/dist/get-local-browser-executable.js +7 -17
  239. package/dist/get-port.d.ts +4 -1
  240. package/dist/get-port.js +8 -8
  241. package/dist/get-prores-profile-name.d.ts +0 -0
  242. package/dist/get-prores-profile-name.js +0 -0
  243. package/dist/get-video-info.d.ts +6 -1
  244. package/dist/get-video-info.js +19 -9
  245. package/dist/get-video-threads-flag.d.ts +0 -0
  246. package/dist/get-video-threads-flag.js +3 -3
  247. package/dist/guess-extension-for-media.d.ts +3 -1
  248. package/dist/guess-extension-for-media.js +5 -8
  249. package/dist/image-format.d.ts +12 -6
  250. package/dist/image-format.js +19 -13
  251. package/dist/index.d.ts +284 -51
  252. package/dist/index.js +50 -36
  253. package/dist/is-audio-codec.d.ts +0 -0
  254. package/dist/is-audio-codec.js +0 -0
  255. package/dist/is-beyond-last-frame.d.ts +0 -0
  256. package/dist/is-beyond-last-frame.js +0 -0
  257. package/dist/is-serve-url.d.ts +0 -0
  258. package/dist/is-serve-url.js +0 -0
  259. package/dist/jpeg-quality.d.ts +1 -0
  260. package/dist/jpeg-quality.js +21 -0
  261. package/dist/last-frame-from-video-cache.d.ts +1 -0
  262. package/dist/last-frame-from-video-cache.js +0 -0
  263. package/dist/legacy-webpack-config.d.ts +0 -0
  264. package/dist/legacy-webpack-config.js +0 -0
  265. package/dist/locks.d.ts +7 -0
  266. package/dist/locks.js +44 -0
  267. package/dist/log-level.d.ts +0 -0
  268. package/dist/log-level.js +0 -0
  269. package/dist/logger.d.ts +22 -0
  270. package/dist/logger.js +61 -0
  271. package/dist/make-cancel-signal.d.ts +11 -0
  272. package/dist/make-cancel-signal.js +24 -1
  273. package/dist/merge-audio-track.d.ts +3 -3
  274. package/dist/merge-audio-track.js +40 -34
  275. package/dist/mime-db.d.ts +0 -0
  276. package/dist/mime-db.js +0 -0
  277. package/dist/mime-types.d.ts +1 -0
  278. package/dist/mime-types.js +8 -3
  279. package/dist/normalize-serve-url.d.ts +0 -0
  280. package/dist/normalize-serve-url.js +0 -0
  281. package/dist/offthread-video-server.d.ts +12 -8
  282. package/dist/offthread-video-server.js +67 -47
  283. package/dist/open-browser.d.ts +8 -2
  284. package/dist/open-browser.js +16 -18
  285. package/dist/options/audio-bitrate.d.ts +2 -0
  286. package/dist/options/audio-bitrate.js +11 -0
  287. package/dist/options/crf.d.ts +2 -0
  288. package/dist/options/crf.js +11 -0
  289. package/dist/options/enforce-audio.d.ts +2 -0
  290. package/dist/options/enforce-audio.js +11 -0
  291. package/dist/options/jpeg-quality.d.ts +2 -0
  292. package/dist/options/jpeg-quality.js +11 -0
  293. package/dist/options/mute.d.ts +2 -0
  294. package/dist/options/mute.js +11 -0
  295. package/dist/options/option.d.ts +8 -0
  296. package/dist/options/option.js +2 -0
  297. package/dist/options/scale.d.ts +2 -0
  298. package/dist/options/scale.js +11 -0
  299. package/dist/options/video-bitrate.d.ts +2 -0
  300. package/dist/options/video-bitrate.js +11 -0
  301. package/dist/options/video-codec.d.ts +2 -0
  302. package/dist/options/video-codec.js +11 -0
  303. package/dist/overwrite.d.ts +0 -0
  304. package/dist/overwrite.js +0 -0
  305. package/dist/p-limit.d.ts +0 -0
  306. package/dist/p-limit.js +0 -0
  307. package/dist/parse-browser-error-stack.d.ts +0 -0
  308. package/dist/parse-browser-error-stack.js +0 -0
  309. package/dist/parse-ffmpeg-progress.d.ts +0 -0
  310. package/dist/parse-ffmpeg-progress.js +0 -0
  311. package/dist/perf.d.ts +1 -1
  312. package/dist/perf.js +9 -7
  313. package/dist/pixel-format.d.ts +1 -1
  314. package/dist/pixel-format.js +3 -0
  315. package/dist/pool.d.ts +0 -0
  316. package/dist/pool.js +0 -0
  317. package/dist/prepare-server.d.ts +8 -5
  318. package/dist/prepare-server.js +22 -13
  319. package/dist/preprocess-audio-track.d.ts +6 -4
  320. package/dist/preprocess-audio-track.js +7 -8
  321. package/dist/prespawn-ffmpeg.d.ts +10 -9
  322. package/dist/prespawn-ffmpeg.js +51 -28
  323. package/dist/prestitcher-memory-usage.d.ts +0 -4
  324. package/dist/prestitcher-memory-usage.js +4 -5
  325. package/dist/prores-profile.d.ts +5 -3
  326. package/dist/prores-profile.js +8 -8
  327. package/dist/provide-screenshot.d.ts +8 -4
  328. package/dist/provide-screenshot.js +5 -2
  329. package/dist/puppeteer-evaluate.d.ts +0 -0
  330. package/dist/puppeteer-evaluate.js +20 -12
  331. package/dist/puppeteer-screenshot.d.ts +12 -2
  332. package/dist/puppeteer-screenshot.js +19 -45
  333. package/dist/quality.d.ts +0 -0
  334. package/dist/quality.js +0 -0
  335. package/dist/redirect-status-codes.d.ts +1 -0
  336. package/dist/redirect-status-codes.js +6 -0
  337. package/dist/render-frames.d.ts +26 -22
  338. package/dist/render-frames.js +204 -109
  339. package/dist/render-media.d.ts +52 -19
  340. package/dist/render-media.js +162 -55
  341. package/dist/render-still.d.ts +26 -14
  342. package/dist/render-still.js +97 -46
  343. package/dist/replace-browser.d.ts +6 -0
  344. package/dist/replace-browser.js +47 -0
  345. package/dist/resolve-asset-src.d.ts +0 -0
  346. package/dist/resolve-asset-src.js +2 -2
  347. package/dist/sample-rate.d.ts +0 -0
  348. package/dist/sample-rate.js +0 -0
  349. package/dist/screenshot-dom-element.d.ts +8 -4
  350. package/dist/screenshot-dom-element.js +15 -4
  351. package/dist/screenshot-task.d.ts +12 -2
  352. package/dist/screenshot-task.js +44 -14
  353. package/dist/seek-to-frame.d.ts +1 -0
  354. package/dist/seek-to-frame.js +49 -3
  355. package/dist/select-composition.d.ts +33 -0
  356. package/dist/select-composition.js +119 -0
  357. package/dist/serve-handler/index.d.ts +1 -1
  358. package/dist/serve-handler/index.js +21 -19
  359. package/dist/serve-handler/is-path-inside.d.ts +0 -0
  360. package/dist/serve-handler/is-path-inside.js +3 -3
  361. package/dist/serve-handler/range-parser.d.ts +0 -0
  362. package/dist/serve-handler/range-parser.js +0 -0
  363. package/dist/serve-static.d.ts +6 -3
  364. package/dist/serve-static.js +86 -45
  365. package/dist/set-props-and-env.d.ts +7 -3
  366. package/dist/set-props-and-env.js +50 -16
  367. package/dist/stitch-frames-to-video.d.ts +16 -11
  368. package/dist/stitch-frames-to-video.js +165 -79
  369. package/dist/stringify-ffmpeg-filter.d.ts +10 -2
  370. package/dist/stringify-ffmpeg-filter.js +37 -34
  371. package/dist/symbolicate-stacktrace.d.ts +0 -0
  372. package/dist/symbolicate-stacktrace.js +0 -0
  373. package/dist/take-frame-and-compose.d.ts +22 -0
  374. package/dist/take-frame-and-compose.js +103 -0
  375. package/dist/tmp-dir.d.ts +0 -0
  376. package/dist/tmp-dir.js +7 -8
  377. package/dist/truthy.d.ts +0 -0
  378. package/dist/truthy.js +0 -0
  379. package/dist/try-to-extract-frame-of-video-fast.d.ts +12 -0
  380. package/dist/try-to-extract-frame-of-video-fast.js +55 -0
  381. package/dist/types.d.ts +0 -0
  382. package/dist/types.js +0 -0
  383. package/dist/validate-concurrency.d.ts +2 -0
  384. package/dist/validate-concurrency.js +21 -10
  385. package/dist/validate-even-dimensions-with-codec.d.ts +0 -0
  386. package/dist/validate-even-dimensions-with-codec.js +0 -0
  387. package/dist/validate-every-nth-frame.d.ts +2 -1
  388. package/dist/validate-every-nth-frame.js +8 -1
  389. package/dist/validate-ffmpeg-override.d.ts +2 -0
  390. package/dist/validate-ffmpeg-override.js +12 -0
  391. package/dist/validate-ffmpeg.d.ts +7 -2
  392. package/dist/validate-ffmpeg.js +48 -43
  393. package/dist/validate-number-of-gif-loops.d.ts +2 -0
  394. package/dist/validate-number-of-gif-loops.js +24 -0
  395. package/dist/validate-opengl-renderer.d.ts +0 -0
  396. package/dist/validate-opengl-renderer.js +0 -0
  397. package/dist/validate-output-filename.d.ts +7 -2
  398. package/dist/validate-output-filename.js +20 -51
  399. package/dist/validate-puppeteer-timeout.d.ts +0 -0
  400. package/dist/validate-puppeteer-timeout.js +2 -1
  401. package/dist/validate-scale.d.ts +0 -0
  402. package/dist/validate-scale.js +0 -0
  403. package/dist/validate-videobitrate.d.ts +1 -0
  404. package/dist/validate-videobitrate.js +20 -0
  405. package/dist/wait-for-symbolication-error-to-be-done.d.ts +0 -0
  406. package/dist/wait-for-symbolication-error-to-be-done.js +5 -31
  407. package/dist/warn-about-ffmpeg-version.d.ts +5 -0
  408. package/dist/warn-about-ffmpeg-version.js +37 -0
  409. package/dist/ws/ws-types.d.ts +0 -0
  410. package/dist/ws/ws-types.js +2 -1
  411. package/install-toolchain.mjs +36 -0
  412. package/package.json +70 -60
  413. package/types/ws/index.d.ts +5 -5
  414. package/.prettierrc.js +0 -14
  415. package/dist/add-silent-audio-if-necessary.d.ts +0 -8
  416. package/dist/add-silent-audio-if-necessary.d.ts.map +0 -1
  417. package/dist/add-silent-audio-if-necessary.js +0 -51
  418. package/dist/add-silent-audio-if-necessary.js.map +0 -1
  419. package/dist/assets/asset-is-used-at-time.d.ts +0 -3
  420. package/dist/assets/asset-is-used-at-time.d.ts.map +0 -1
  421. package/dist/assets/asset-is-used-at-time.js +0 -8
  422. package/dist/assets/asset-is-used-at-time.js.map +0 -1
  423. package/dist/assets/calculate-asset-positions.d.ts.map +0 -1
  424. package/dist/assets/calculate-asset-positions.js.map +0 -1
  425. package/dist/assets/calculate-atempo.d.ts.map +0 -1
  426. package/dist/assets/calculate-atempo.js.map +0 -1
  427. package/dist/assets/convert-assets-to-file-urls.d.ts.map +0 -1
  428. package/dist/assets/convert-assets-to-file-urls.js.map +0 -1
  429. package/dist/assets/download-and-map-assets-to-file.d.ts.map +0 -1
  430. package/dist/assets/download-and-map-assets-to-file.js.map +0 -1
  431. package/dist/assets/download-file.d.ts.map +0 -1
  432. package/dist/assets/download-file.js.map +0 -1
  433. package/dist/assets/ffmpeg-volume-expression.d.ts.map +0 -1
  434. package/dist/assets/ffmpeg-volume-expression.js.map +0 -1
  435. package/dist/assets/flatten-volume-array.d.ts.map +0 -1
  436. package/dist/assets/flatten-volume-array.js.map +0 -1
  437. package/dist/assets/get-asset-audio-details.d.ts +0 -5
  438. package/dist/assets/get-asset-audio-details.d.ts.map +0 -1
  439. package/dist/assets/get-asset-audio-details.js +0 -21
  440. package/dist/assets/get-asset-audio-details.js.map +0 -1
  441. package/dist/assets/get-audio-channels.d.ts.map +0 -1
  442. package/dist/assets/get-audio-channels.js.map +0 -1
  443. package/dist/assets/get-simulatenous-assets.d.ts +0 -3
  444. package/dist/assets/get-simulatenous-assets.d.ts.map +0 -1
  445. package/dist/assets/get-simulatenous-assets.js +0 -14
  446. package/dist/assets/get-simulatenous-assets.js.map +0 -1
  447. package/dist/assets/read-file.d.ts.map +0 -1
  448. package/dist/assets/read-file.js.map +0 -1
  449. package/dist/assets/round-volume-to-avoid-stack-overflow.d.ts.map +0 -1
  450. package/dist/assets/round-volume-to-avoid-stack-overflow.js.map +0 -1
  451. package/dist/assets/sanitize-filename.d.ts.map +0 -1
  452. package/dist/assets/sanitize-filename.js.map +0 -1
  453. package/dist/assets/sanitize-filepath.d.ts.map +0 -1
  454. package/dist/assets/sanitize-filepath.js.map +0 -1
  455. package/dist/assets/split-assets-into-segments.d.ts +0 -6
  456. package/dist/assets/split-assets-into-segments.d.ts.map +0 -1
  457. package/dist/assets/split-assets-into-segments.js +0 -89
  458. package/dist/assets/split-assets-into-segments.js.map +0 -1
  459. package/dist/assets/truncate-utf8-bytes.d.ts.map +0 -1
  460. package/dist/assets/truncate-utf8-bytes.js.map +0 -1
  461. package/dist/assets/types.d.ts.map +0 -1
  462. package/dist/assets/types.js.map +0 -1
  463. package/dist/assets-to-ffmpeg-inputs.d.ts +0 -7
  464. package/dist/assets-to-ffmpeg-inputs.d.ts.map +0 -1
  465. package/dist/assets-to-ffmpeg-inputs.js +0 -15
  466. package/dist/assets-to-ffmpeg-inputs.js.map +0 -1
  467. package/dist/browser-log.d.ts.map +0 -1
  468. package/dist/browser-log.js.map +0 -1
  469. package/dist/calculate-ffmpeg-filters.d.ts.map +0 -1
  470. package/dist/calculate-ffmpeg-filters.js.map +0 -1
  471. package/dist/can-use-parallel-encoding.d.ts.map +0 -1
  472. package/dist/can-use-parallel-encoding.js.map +0 -1
  473. package/dist/combine-videos.d.ts.map +0 -1
  474. package/dist/combine-videos.js.map +0 -1
  475. package/dist/convert-to-pcm.d.ts +0 -6
  476. package/dist/convert-to-pcm.js +0 -20
  477. package/dist/create-ffmpeg-complex-filter.d.ts.map +0 -1
  478. package/dist/create-ffmpeg-complex-filter.js.map +0 -1
  479. package/dist/cycle-browser-tabs.d.ts.map +0 -1
  480. package/dist/cycle-browser-tabs.js.map +0 -1
  481. package/dist/delay-render-embedded-stack.d.ts.map +0 -1
  482. package/dist/delay-render-embedded-stack.js.map +0 -1
  483. package/dist/delete-directory.d.ts.map +0 -1
  484. package/dist/delete-directory.js.map +0 -1
  485. package/dist/ensure-frames-in-order.d.ts.map +0 -1
  486. package/dist/ensure-frames-in-order.js.map +0 -1
  487. package/dist/ensure-output-directory.d.ts.map +0 -1
  488. package/dist/ensure-output-directory.js.map +0 -1
  489. package/dist/error-handling/handle-javascript-exception.d.ts.map +0 -1
  490. package/dist/error-handling/handle-javascript-exception.js.map +0 -1
  491. package/dist/error-handling/symbolicate-error.d.ts.map +0 -1
  492. package/dist/error-handling/symbolicate-error.js.map +0 -1
  493. package/dist/error-handling/symbolicateable-error.d.ts.map +0 -1
  494. package/dist/error-handling/symbolicateable-error.js.map +0 -1
  495. package/dist/ffmpeg-flags.d.ts.map +0 -1
  496. package/dist/ffmpeg-flags.js.map +0 -1
  497. package/dist/get-audio-codec-name.d.ts +0 -2
  498. package/dist/get-audio-codec-name.d.ts.map +0 -1
  499. package/dist/get-audio-codec-name.js +0 -28
  500. package/dist/get-audio-codec-name.js.map +0 -1
  501. package/dist/get-browser-instance.d.ts.map +0 -1
  502. package/dist/get-browser-instance.js.map +0 -1
  503. package/dist/get-codec-name.d.ts.map +0 -1
  504. package/dist/get-codec-name.js.map +0 -1
  505. package/dist/get-compositions.d.ts.map +0 -1
  506. package/dist/get-compositions.js.map +0 -1
  507. package/dist/get-concurrency.d.ts.map +0 -1
  508. package/dist/get-concurrency.js.map +0 -1
  509. package/dist/get-extension-from-codec.d.ts.map +0 -1
  510. package/dist/get-extension-from-codec.js.map +0 -1
  511. package/dist/get-frame-to-render.d.ts.map +0 -1
  512. package/dist/get-frame-to-render.js.map +0 -1
  513. package/dist/get-local-browser-executable.d.ts.map +0 -1
  514. package/dist/get-local-browser-executable.js.map +0 -1
  515. package/dist/get-port.d.ts.map +0 -1
  516. package/dist/get-port.js.map +0 -1
  517. package/dist/get-prores-profile-name.d.ts.map +0 -1
  518. package/dist/get-prores-profile-name.js.map +0 -1
  519. package/dist/image-format.d.ts.map +0 -1
  520. package/dist/image-format.js.map +0 -1
  521. package/dist/index.d.ts.map +0 -1
  522. package/dist/index.js.map +0 -1
  523. package/dist/is-serve-url.d.ts.map +0 -1
  524. package/dist/is-serve-url.js.map +0 -1
  525. package/dist/legacy-webpack-config.d.ts.map +0 -1
  526. package/dist/legacy-webpack-config.js.map +0 -1
  527. package/dist/make-assets-download-dir.d.ts +0 -1
  528. package/dist/make-assets-download-dir.d.ts.map +0 -1
  529. package/dist/make-assets-download-dir.js +0 -13
  530. package/dist/make-assets-download-dir.js.map +0 -1
  531. package/dist/normalize-serve-url.d.ts.map +0 -1
  532. package/dist/normalize-serve-url.js.map +0 -1
  533. package/dist/open-browser.d.ts.map +0 -1
  534. package/dist/open-browser.js.map +0 -1
  535. package/dist/parse-browser-error-stack.d.ts.map +0 -1
  536. package/dist/parse-browser-error-stack.js.map +0 -1
  537. package/dist/parse-ffmpeg-progress.d.ts.map +0 -1
  538. package/dist/parse-ffmpeg-progress.js.map +0 -1
  539. package/dist/pool.d.ts.map +0 -1
  540. package/dist/pool.js.map +0 -1
  541. package/dist/prepare-server.d.ts.map +0 -1
  542. package/dist/prepare-server.js.map +0 -1
  543. package/dist/provide-screenshot.d.ts.map +0 -1
  544. package/dist/provide-screenshot.js.map +0 -1
  545. package/dist/puppeteer-evaluate.d.ts.map +0 -1
  546. package/dist/puppeteer-evaluate.js.map +0 -1
  547. package/dist/puppeteer-screenshot.d.ts.map +0 -1
  548. package/dist/puppeteer-screenshot.js.map +0 -1
  549. package/dist/render-media.d.ts.map +0 -1
  550. package/dist/render-media.js.map +0 -1
  551. package/dist/render-still.d.ts.map +0 -1
  552. package/dist/render-still.js.map +0 -1
  553. package/dist/render.d.ts +0 -45
  554. package/dist/render.d.ts.map +0 -1
  555. package/dist/render.js +0 -245
  556. package/dist/render.js.map +0 -1
  557. package/dist/resolve-asset-src.d.ts.map +0 -1
  558. package/dist/resolve-asset-src.js.map +0 -1
  559. package/dist/sample-rate.d.ts.map +0 -1
  560. package/dist/sample-rate.js.map +0 -1
  561. package/dist/screenshot-dom-element.d.ts.map +0 -1
  562. package/dist/screenshot-dom-element.js.map +0 -1
  563. package/dist/screenshot-task.d.ts.map +0 -1
  564. package/dist/screenshot-task.js.map +0 -1
  565. package/dist/seek-to-frame.d.ts.map +0 -1
  566. package/dist/seek-to-frame.js.map +0 -1
  567. package/dist/serve-static.d.ts.map +0 -1
  568. package/dist/serve-static.js.map +0 -1
  569. package/dist/set-props-and-env.d.ts.map +0 -1
  570. package/dist/set-props-and-env.js.map +0 -1
  571. package/dist/stitcher.d.ts +0 -32
  572. package/dist/stitcher.d.ts.map +0 -1
  573. package/dist/stitcher.js +0 -204
  574. package/dist/stitcher.js.map +0 -1
  575. package/dist/stringify-ffmpeg-filter.d.ts.map +0 -1
  576. package/dist/stringify-ffmpeg-filter.js.map +0 -1
  577. package/dist/symbolicate-stacktrace.d.ts.map +0 -1
  578. package/dist/symbolicate-stacktrace.js.map +0 -1
  579. package/dist/tmp-dir.d.ts.map +0 -1
  580. package/dist/tmp-dir.js.map +0 -1
  581. package/dist/types.d.ts.map +0 -1
  582. package/dist/types.js.map +0 -1
  583. package/dist/validate-even-dimensions-with-codec.d.ts.map +0 -1
  584. package/dist/validate-even-dimensions-with-codec.js.map +0 -1
  585. package/dist/validate-ffmpeg.d.ts.map +0 -1
  586. package/dist/validate-ffmpeg.js.map +0 -1
  587. package/dist/validate-frame.d.ts +0 -1
  588. package/dist/validate-frame.js +0 -24
  589. package/dist/validate-puppeteer-timeout.d.ts.map +0 -1
  590. package/dist/validate-puppeteer-timeout.js.map +0 -1
  591. package/dist/validate-scale.d.ts.map +0 -1
  592. package/dist/validate-scale.js.map +0 -1
  593. package/tsconfig.json +0 -10
  594. 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");
10
7
  const crf_1 = require("./crf");
11
8
  const get_codec_name_1 = require("./get-codec-name");
12
9
  const get_prores_profile_name_1 = require("./get-prores-profile-name");
10
+ const logger_1 = require("./logger");
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,26 +23,40 @@ 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) {
35
30
  throw new TypeError('encoderName is null: ' + JSON.stringify(options));
36
31
  }
37
32
  const supportsCrf = codec !== 'prores';
38
- if (options.verbose) {
39
- console.log('[verbose] ffmpeg', (_e = options.ffmpegExecutable) !== null && _e !== void 0 ? _e : 'ffmpeg in PATH');
40
- console.log('[verbose] encoder', encoderName);
41
- console.log('[verbose] pixelFormat', pixelFormat);
42
- if (supportsCrf) {
43
- console.log('[verbose] crf', crf);
44
- }
45
- console.log('[verbose] codec', codec);
46
- console.log('[verbose] proResProfileName', proResProfileName);
33
+ logger_1.Log.verboseAdvanced({
34
+ indent: options.indent,
35
+ logLevel: options.verbose ? 'verbose' : 'info',
36
+ tag: 'encoder',
37
+ }, 'encoder', encoderName);
38
+ logger_1.Log.verboseAdvanced({
39
+ indent: options.indent,
40
+ logLevel: options.verbose ? 'verbose' : 'info',
41
+ tag: 'encoder',
42
+ }, 'pixelFormat', pixelFormat);
43
+ if (supportsCrf) {
44
+ logger_1.Log.verboseAdvanced({
45
+ indent: options.indent,
46
+ logLevel: options.verbose ? 'verbose' : 'info',
47
+ tag: 'encoder',
48
+ }, 'pixelFormat', options.crf);
47
49
  }
48
- (0, crf_1.validateSelectedCrfAndCodecCombination)(crf, codec);
50
+ logger_1.Log.verboseAdvanced({
51
+ indent: options.indent,
52
+ logLevel: options.verbose ? 'verbose' : 'info',
53
+ tag: 'encoder',
54
+ }, 'codec', codec);
55
+ logger_1.Log.verboseAdvanced({
56
+ indent: options.indent,
57
+ logLevel: options.verbose ? 'verbose' : 'info',
58
+ tag: 'encoder',
59
+ }, 'proResProfileName', proResProfileName);
49
60
  (0, pixel_format_1.validateSelectedPixelFormatAndCodecCombination)(pixelFormat, codec);
50
61
  const ffmpegArgs = [
51
62
  ['-r', options.fps.toFixed(2)],
@@ -61,26 +72,38 @@ const prespawnFfmpeg = async (options) => {
61
72
  // and specified the video codec.
62
73
  ['-c:v', encoderName],
63
74
  proResProfileName ? ['-profile:v', proResProfileName] : null,
64
- supportsCrf ? ['-crf', String(crf)] : null,
65
75
  ['-pix_fmt', pixelFormat],
66
76
  // Without explicitly disabling auto-alt-ref,
67
77
  // transparent WebM generation doesn't work
68
78
  pixelFormat === 'yuva420p' ? ['-auto-alt-ref', '0'] : null,
69
- ['-b:v', '1M'],
79
+ ...(0, crf_1.validateQualitySettings)({
80
+ crf: options.crf,
81
+ videoBitrate: options.videoBitrate,
82
+ codec,
83
+ }),
70
84
  '-y',
71
85
  options.outputLocation,
72
86
  ];
73
- if (options.verbose) {
74
- console.log('Generated FFMPEG command:');
75
- console.log(ffmpegArgs);
76
- }
87
+ logger_1.Log.verboseAdvanced({
88
+ indent: options.indent,
89
+ logLevel: options.verbose ? 'verbose' : 'info',
90
+ tag: 'encoder',
91
+ }, 'Generated FFMPEG command:');
92
+ logger_1.Log.verboseAdvanced({
93
+ indent: options.indent,
94
+ logLevel: options.verbose ? 'verbose' : 'info',
95
+ tag: 'encoder',
96
+ }, ffmpegArgs.join(' '));
77
97
  const ffmpegString = ffmpegArgs.flat(2).filter(Boolean);
78
- const task = (0, execa_1.default)((_f = options.ffmpegExecutable) !== null && _f !== void 0 ? _f : 'ffmpeg', ffmpegString);
98
+ const finalFfmpegString = options.ffmpegOverride
99
+ ? options.ffmpegOverride({ type: 'pre-stitcher', args: ffmpegString })
100
+ : ffmpegString;
101
+ const task = (0, call_ffmpeg_1.callFf)('ffmpeg', finalFfmpegString);
79
102
  options.signal(() => {
80
103
  task.kill();
81
104
  });
82
105
  let ffmpegOutput = '';
83
- (_g = task.stderr) === null || _g === void 0 ? void 0 : _g.on('data', (data) => {
106
+ (_c = task.stderr) === null || _c === void 0 ? void 0 : _c.on('data', (data) => {
84
107
  const str = data.toString();
85
108
  ffmpegOutput += str;
86
109
  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,8 +3,8 @@ 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;
7
- const os_1 = __importDefault(require("os"));
6
+ exports.shouldUseParallelEncoding = void 0;
7
+ const node_os_1 = __importDefault(require("node: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
10
10
  // the duration of the video.
@@ -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
- const freeMemory = os_1.default.freemem();
18
- const estimatedUsage = (0, exports.estimateMemoryUsageForPrestitcher)({
16
+ const freeMemory = node_os_1.default.freemem();
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,16 @@
1
1
  /// <reference types="node" />
2
+ import type { ClipRegion } from 'remotion';
2
3
  import type { Page } from './browser/BrowserPage';
3
- import type { ImageFormat } from './image-format';
4
- export declare const provideScreenshot: ({ page, imageFormat, options, quality, }: {
4
+ import type { StillImageFormat } from './image-format';
5
+ export declare const provideScreenshot: ({ page, imageFormat, options, jpegQuality, height, width, clipRegion, }: {
5
6
  page: Page;
6
- imageFormat: ImageFormat;
7
- quality: number | undefined;
7
+ imageFormat: StillImageFormat;
8
+ jpegQuality: number | undefined;
8
9
  options: {
9
10
  frame: number;
10
11
  output: string | null;
11
12
  };
13
+ height: number;
14
+ width: number;
15
+ clipRegion: ClipRegion | null;
12
16
  }) => 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
@@ -30,7 +30,7 @@ function isString(obj) {
30
30
  return typeof obj === 'string' || obj instanceof String;
31
31
  }
32
32
  async function puppeteerEvaluateWithCatch({ page, pageFunction, frame, args, }) {
33
- var _a, _b, _c, _d, _e, _f, _g;
33
+ var _a, _b, _c, _d, _e, _f, _g, _h;
34
34
  const contextId = (await page.mainFrame().executionContext())._contextId;
35
35
  const client = page._client();
36
36
  const suffix = `//# sourceURL=${EVALUATION_SCRIPT_URL}`;
@@ -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 ((_h = error === null || error === void 0 ? void 0 : error.originalMessage) === null || _h === void 0 ? void 0 : _h.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,14 @@
1
1
  /// <reference types="node" />
2
+ import type { ClipRegion } from 'remotion';
2
3
  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>;
4
+ import type { StillImageFormat } from './image-format';
5
+ export declare const screenshot: (options: {
6
+ page: Page;
7
+ type: StillImageFormat;
8
+ path?: string;
9
+ jpegQuality?: number;
10
+ omitBackground: boolean;
11
+ width: number;
12
+ height: number;
13
+ clipRegion: ClipRegion | null;
14
+ }) => Promise<Buffer | string>;
@@ -24,52 +24,26 @@ var __importStar = (this && this.__importStar) || function (mod) {
24
24
  };
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
26
  exports.screenshot = void 0;
27
- const assert = __importStar(require("assert"));
27
+ const assert = __importStar(require("node: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,38 +1,31 @@
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
- import type { Browser } from './browser/Browser';
8
- import type { FfmpegExecutable } from './ffmpeg-executable';
7
+ import type { HeadlessBrowser } from './browser/Browser';
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
- inputProps: unknown;
17
+ inputProps: Record<string, 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;
35
- puppeteerInstance?: Browser;
28
+ puppeteerInstance?: HeadlessBrowser;
36
29
  browserExecutable?: BrowserExecutable;
37
30
  onBrowserLog?: (log: BrowserLog) => void;
38
31
  onFrameBuffer?: (buffer: Buffer, frame: number) => void;
@@ -40,14 +33,25 @@ 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
+ /**
44
+ * @deprecated Only for Remotion internal usage
45
+ */
46
+ indent?: boolean;
47
+ muted?: boolean;
48
+ concurrency?: number | string | null;
49
+ serveUrl: string;
50
+ verbose?: boolean;
51
+ };
52
+ /**
53
+ * @description Renders a series of images using Puppeteer and computes information for mixing audio.
54
+ * @see [Documentation](https://www.remotion.dev/docs/renderer/render-frames)
55
+ */
52
56
  export declare const renderFrames: (options: RenderFramesOptions) => Promise<RenderFramesOutput>;
53
57
  export {};