@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
@@ -5,8 +5,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.getLocalBrowserExecutable = exports.ensureLocalBrowser = void 0;
7
7
  const fs_1 = __importDefault(require("fs"));
8
+ const BrowserFetcher_1 = require("./browser/BrowserFetcher");
8
9
  const create_browser_fetcher_1 = require("./browser/create-browser-fetcher");
9
- const node_1 = require("./browser/node");
10
10
  const revisions_1 = require("./browser/revisions");
11
11
  const getSearchPathsForProduct = (product) => {
12
12
  var _a;
@@ -18,6 +18,7 @@ const getSearchPathsForProduct = (product) => {
18
18
  : null,
19
19
  process.platform === 'linux' ? '/usr/bin/google-chrome' : null,
20
20
  process.platform === 'linux' ? '/usr/bin/chromium-browser' : null,
21
+ process.platform === 'linux' ? '/usr/bin/chromium' : null,
21
22
  process.platform === 'linux'
22
23
  ? '/app/.apt/usr/bin/google-chrome-stable'
23
24
  : null,
@@ -43,17 +44,6 @@ const getLocalBrowser = (product) => {
43
44
  }
44
45
  return null;
45
46
  };
46
- const getBrowserRevision = (product) => {
47
- const browserFetcher = node_1.puppeteer.createBrowserFetcher({
48
- product,
49
- path: null,
50
- platform: null,
51
- });
52
- const revisionInfo = browserFetcher.revisionInfo(product === 'firefox'
53
- ? revisions_1.PUPPETEER_REVISIONS.firefox
54
- : revisions_1.PUPPETEER_REVISIONS.chromium);
55
- return revisionInfo;
56
- };
57
47
  const getBrowserStatus = (product, browserExecutablePath) => {
58
48
  if (browserExecutablePath) {
59
49
  if (!fs_1.default.existsSync(browserExecutablePath)) {
@@ -65,8 +55,8 @@ const getBrowserStatus = (product, browserExecutablePath) => {
65
55
  if (localBrowser !== null) {
66
56
  return { path: localBrowser, type: 'local-browser' };
67
57
  }
68
- const revision = getBrowserRevision(product);
69
- if (revision.local !== null && fs_1.default.existsSync(revision.executablePath)) {
58
+ const revision = (0, BrowserFetcher_1.getRevisionInfo)(revisions_1.PUPPETEER_REVISIONS.chromium, product);
59
+ if (revision.local && fs_1.default.existsSync(revision.executablePath)) {
70
60
  return { path: revision.executablePath, type: 'local-puppeteer-browser' };
71
61
  }
72
62
  return { type: 'no-browser' };
@@ -1 +1,4 @@
1
- export declare const getDesiredPort: (desiredPort: number | undefined, from: number, to: number) => Promise<number>;
1
+ export declare const getDesiredPort: (desiredPort: number | undefined, from: number, to: number) => Promise<{
2
+ port: number;
3
+ didUsePort: () => void;
4
+ }>;
package/dist/get-port.js CHANGED
@@ -5,7 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.getDesiredPort = void 0;
7
7
  const net_1 = __importDefault(require("net"));
8
- const p_limit_1 = require("./p-limit");
8
+ const locks_1 = require("./locks");
9
9
  const getAvailablePort = (portToTry) => new Promise((resolve) => {
10
10
  let status = 'unavailable';
11
11
  const host = '127.0.0.1';
@@ -35,21 +35,21 @@ const getPort = async (from, to) => {
35
35
  }
36
36
  throw new Error('No available ports found');
37
37
  };
38
- const getDesiredPortUnlimited = async (desiredPort, from, to) => {
38
+ const portLocks = (0, locks_1.createLock)({ timeout: 10000 });
39
+ const getDesiredPort = async (desiredPort, from, to) => {
40
+ await portLocks.waitForAllToBeDone();
41
+ const lockPortSelection = portLocks.lock();
42
+ const didUsePort = () => portLocks.unlock(lockPortSelection);
39
43
  if (typeof desiredPort !== 'undefined' &&
40
44
  (await getAvailablePort(desiredPort)) === 'available') {
41
- return desiredPort;
45
+ return { port: desiredPort, didUsePort };
42
46
  }
43
47
  const actualPort = await getPort(from, to);
44
48
  // If did specify a port but did not get that one, fail hard.
45
49
  if (desiredPort && desiredPort !== actualPort) {
46
50
  throw new Error(`You specified port ${desiredPort} to be used for the HTTP server, but it is not available. Choose a different port or remove the setting to let Remotion automatically select a free port.`);
47
51
  }
48
- return actualPort;
49
- };
50
- const limit = (0, p_limit_1.pLimit)(1);
51
- const getDesiredPort = (desiredPort, from, to) => {
52
- return limit(() => getDesiredPortUnlimited(desiredPort, from, to));
52
+ return { port: actualPort, didUsePort };
53
53
  };
54
54
  exports.getDesiredPort = getDesiredPort;
55
55
  const makeRange = (from, to) => {
File without changes
File without changes
@@ -1,3 +1,8 @@
1
1
  import type { DownloadMap, Vp9Result } from './assets/download-map';
2
2
  import type { FfmpegExecutable } from './ffmpeg-executable';
3
- export declare const getVideoInfo: (downloadMap: DownloadMap, src: string, ffprobeExecutable: FfmpegExecutable) => Promise<Vp9Result>;
3
+ export declare function getVideoInfoUncached({ src, ffprobeExecutable, remotionRoot, }: {
4
+ src: string;
5
+ ffprobeExecutable: FfmpegExecutable;
6
+ remotionRoot: string;
7
+ }): Promise<Vp9Result>;
8
+ export declare const getVideoInfo: (downloadMap: DownloadMap, src: string, ffprobeExecutable: FfmpegExecutable, remotionRoot: string) => Promise<Vp9Result>;
@@ -3,17 +3,15 @@ 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.getVideoInfo = void 0;
6
+ exports.getVideoInfo = exports.getVideoInfoUncached = void 0;
7
7
  const execa_1 = __importDefault(require("execa"));
8
8
  const calculate_sar_dar_pixels_1 = require("./calculate-sar-dar-pixels");
9
+ const ffmpeg_flags_1 = require("./ffmpeg-flags");
9
10
  const p_limit_1 = require("./p-limit");
10
11
  const limit = (0, p_limit_1.pLimit)(1);
11
- async function getVideoInfoUnlimited(downloadMap, src, ffprobeExecutable) {
12
+ async function getVideoInfoUncached({ src, ffprobeExecutable, remotionRoot, }) {
12
13
  var _a;
13
- if (typeof downloadMap.isVp9VideoCache[src] !== 'undefined') {
14
- return downloadMap.isVp9VideoCache[src];
15
- }
16
- const task = await (0, execa_1.default)(ffprobeExecutable !== null && ffprobeExecutable !== void 0 ? ffprobeExecutable : 'ffprobe', [src]);
14
+ const task = await (0, execa_1.default)(await (0, ffmpeg_flags_1.getExecutableBinary)(ffprobeExecutable, remotionRoot, 'ffprobe'), [src]);
17
15
  const isVp9 = task.stderr.includes('Video: vp9');
18
16
  const isVp8 = task.stderr.includes('Video: vp8');
19
17
  const dimensions = (_a = task.stderr
@@ -37,13 +35,25 @@ async function getVideoInfoUnlimited(downloadMap, src, ffprobeExecutable) {
37
35
  }
38
36
  }
39
37
  const result = {
40
- specialVcodec: isVp9 ? 'vp9' : isVp8 ? 'vp8' : 'none',
38
+ specialVcodecForTransparency: isVp9 ? 'vp9' : isVp8 ? 'vp8' : 'none',
41
39
  needsResize,
42
40
  };
41
+ return result;
42
+ }
43
+ exports.getVideoInfoUncached = getVideoInfoUncached;
44
+ async function getVideoInfoUnlimited(downloadMap, src, ffprobeExecutable, remotionRoot) {
45
+ if (typeof downloadMap.isVp9VideoCache[src] !== 'undefined') {
46
+ return downloadMap.isVp9VideoCache[src];
47
+ }
48
+ const result = await getVideoInfoUncached({
49
+ ffprobeExecutable,
50
+ remotionRoot,
51
+ src,
52
+ });
43
53
  downloadMap.isVp9VideoCache[src] = result;
44
54
  return downloadMap.isVp9VideoCache[src];
45
55
  }
46
- const getVideoInfo = (downloadMap, src, ffprobeExecutable) => {
47
- return limit(() => getVideoInfoUnlimited(downloadMap, src, ffprobeExecutable));
56
+ const getVideoInfo = (downloadMap, src, ffprobeExecutable, remotionRoot) => {
57
+ return limit(() => getVideoInfoUnlimited(downloadMap, src, ffprobeExecutable, remotionRoot));
48
58
  };
49
59
  exports.getVideoInfo = getVideoInfo;
File without changes
File without changes
@@ -1 +1,3 @@
1
- export declare const guessExtensionForVideo: (src: string) => Promise<"mp3" | "wav" | "webm" | "mp4">;
1
+ export declare const guessExtensionForVideo: ({ src }: {
2
+ src: string;
3
+ }) => Promise<"mp3" | "wav" | "mp4" | "webm">;
@@ -1,13 +1,10 @@
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.guessExtensionForVideo = void 0;
7
- const execa_1 = __importDefault(require("execa"));
8
- const guessExtensionForVideo = async (src) => {
9
- const { stderr } = await (0, execa_1.default)('ffprobe', [src]);
10
- if (stderr.includes('mp3,')) {
4
+ const call_ffmpeg_1 = require("./call-ffmpeg");
5
+ const guessExtensionForVideo = async ({ src }) => {
6
+ const { stderr } = await (0, call_ffmpeg_1.callFf)('ffprobe', [src]);
7
+ if (stderr.includes('Audio: mp3,')) {
11
8
  return 'mp3';
12
9
  }
13
10
  if (stderr.includes('Video: vp9')) {
@@ -22,6 +19,6 @@ const guessExtensionForVideo = async (src) => {
22
19
  if (stderr.includes('Video: h264')) {
23
20
  return 'mp4';
24
21
  }
25
- throw new Error(`A media file ${src} which has no file extension and whose format could not be guessed. Is this a valid media file?`);
22
+ throw new Error(`The media file "${src}" has no file extension and the format could not be guessed. Tips: a) Ensure this is a valid video or audio file b) Add a file extension to the URL like ".mp4" c) Set a "Content-Type" or "Content-Disposition" header if possible.`);
26
23
  };
27
24
  exports.guessExtensionForVideo = guessExtensionForVideo;
@@ -1,7 +1,13 @@
1
1
  import type { PixelFormat } from './pixel-format';
2
- export declare const validImageFormats: readonly ["png", "jpeg", "none"];
3
- export declare type ImageFormat = typeof validImageFormats[number];
4
- export declare type StillImageFormat = 'png' | 'jpeg';
5
- export declare const DEFAULT_IMAGE_FORMAT: ImageFormat;
6
- export declare const validateSelectedPixelFormatAndImageFormatCombination: (pixelFormat: PixelFormat, imageFormat: ImageFormat) => 'none' | 'valid';
7
- export declare const validateNonNullImageFormat: (imageFormat: ImageFormat) => void;
2
+ export declare const validVideoImageFormats: readonly ["png", "jpeg", "none"];
3
+ export declare const validStillImageFormats: readonly ["png", "jpeg", "pdf", "webp"];
4
+ export declare type VideoImageFormat = typeof validVideoImageFormats[number];
5
+ export declare type StillImageFormat = typeof validStillImageFormats[number];
6
+ /**
7
+ * @deprecated Use VideoImageFormat or StillImageFormat instead
8
+ */
9
+ export declare type ImageFormat = 'This type is deprecated, use VideoImageFormat or StillImageFormat instead';
10
+ export declare const DEFAULT_VIDEO_IMAGE_FORMAT: VideoImageFormat;
11
+ export declare const DEFAULT_STILL_IMAGE_FORMAT: StillImageFormat;
12
+ export declare const validateSelectedPixelFormatAndImageFormatCombination: (pixelFormat: PixelFormat | undefined, videoImageFormat: VideoImageFormat) => 'none' | 'valid';
13
+ export declare const validateStillImageFormat: (imageFormat: StillImageFormat) => void;
@@ -2,30 +2,36 @@
2
2
  // Keeping the default image format PNG if you don't pass a
3
3
  // value to the renderer for backwards compatibility.
4
4
  Object.defineProperty(exports, "__esModule", { value: true });
5
- exports.validateNonNullImageFormat = exports.validateSelectedPixelFormatAndImageFormatCombination = exports.DEFAULT_IMAGE_FORMAT = exports.validImageFormats = void 0;
6
- exports.validImageFormats = ['png', 'jpeg', 'none'];
7
- // However, the CLI will override it and use JPEG if suitable.
8
- exports.DEFAULT_IMAGE_FORMAT = 'png';
5
+ exports.validateStillImageFormat = exports.validateSelectedPixelFormatAndImageFormatCombination = exports.DEFAULT_STILL_IMAGE_FORMAT = exports.DEFAULT_VIDEO_IMAGE_FORMAT = exports.validStillImageFormats = exports.validVideoImageFormats = void 0;
6
+ exports.validVideoImageFormats = ['png', 'jpeg', 'none'];
7
+ exports.validStillImageFormats = ['png', 'jpeg', 'pdf', 'webp'];
8
+ exports.DEFAULT_VIDEO_IMAGE_FORMAT = 'jpeg';
9
+ exports.DEFAULT_STILL_IMAGE_FORMAT = 'png';
9
10
  // By returning a value, we improve testability as we can specifically test certain branches
10
- const validateSelectedPixelFormatAndImageFormatCombination = (pixelFormat, imageFormat) => {
11
- if (imageFormat === 'none') {
11
+ const validateSelectedPixelFormatAndImageFormatCombination = (pixelFormat, videoImageFormat) => {
12
+ if (videoImageFormat === 'none') {
12
13
  return 'none';
13
14
  }
14
- if (!exports.validImageFormats.includes(imageFormat)) {
15
- throw new TypeError(`Value ${imageFormat} is not valid as an image format.`);
15
+ if (typeof pixelFormat === 'undefined') {
16
+ return 'valid';
17
+ }
18
+ if (!exports.validVideoImageFormats.includes(videoImageFormat)) {
19
+ throw new TypeError(`Value ${videoImageFormat} is not valid as an image format.`);
16
20
  }
17
21
  if (pixelFormat !== 'yuva420p' && pixelFormat !== 'yuva444p10le') {
18
22
  return 'valid';
19
23
  }
20
- if (imageFormat !== 'png') {
24
+ if (videoImageFormat !== 'png') {
21
25
  throw new TypeError(`Pixel format was set to '${pixelFormat}' but the image format is not PNG. To render transparent videos, you need to set PNG as the image format.`);
22
26
  }
23
27
  return 'valid';
24
28
  };
25
29
  exports.validateSelectedPixelFormatAndImageFormatCombination = validateSelectedPixelFormatAndImageFormatCombination;
26
- const validateNonNullImageFormat = (imageFormat) => {
27
- if (imageFormat !== 'jpeg' && imageFormat !== 'png') {
28
- throw new TypeError('Image format should be either "png" or "jpeg"');
30
+ const validateStillImageFormat = (imageFormat) => {
31
+ if (!exports.validStillImageFormats.includes(imageFormat)) {
32
+ throw new TypeError(String(`Image format should be one of: ${exports.validStillImageFormats
33
+ .map((v) => `"${v}"`)
34
+ .join(', ')}`));
29
35
  }
30
36
  };
31
- exports.validateNonNullImageFormat = validateNonNullImageFormat;
37
+ exports.validateStillImageFormat = validateStillImageFormat;
package/dist/index.d.ts CHANGED
@@ -4,54 +4,44 @@ import { mimeContentType, mimeLookup } from './mime-types';
4
4
  import * as perf from './perf';
5
5
  export type { RenderMediaOnDownload } from './assets/download-and-map-assets-to-file';
6
6
  export type { DownloadMap } from './assets/download-map';
7
+ export { AudioCodec } from './audio-codec';
7
8
  export { Browser } from './browser';
8
9
  export { BrowserExecutable } from './browser-executable';
9
10
  export { BrowserLog } from './browser-log';
10
11
  export { Codec, CodecOrUndefined } from './codec';
11
- export { combineVideos } from './combine-videos';
12
12
  export { Crf } from './crf';
13
13
  export { ErrorWithStackFrame } from './error-handling/handle-javascript-exception';
14
- export { FfmpegExecutable } from './ffmpeg-executable';
15
- export { FfmpegVersion } from './ffmpeg-flags';
14
+ export type { FfmpegOverrideFn } from './ffmpeg-override';
15
+ export { FileExtension } from './file-extensions';
16
16
  export { FrameRange } from './frame-range';
17
17
  export { getCompositions } from './get-compositions';
18
- export { ImageFormat, StillImageFormat, validateSelectedPixelFormatAndImageFormatCombination, validImageFormats, } from './image-format';
18
+ export { ImageFormat, StillImageFormat, validateSelectedPixelFormatAndImageFormatCombination, VideoImageFormat, } from './image-format';
19
19
  export type { LogLevel } from './log-level';
20
20
  export { CancelSignal, makeCancelSignal } from './make-cancel-signal';
21
21
  export { openBrowser } from './open-browser';
22
22
  export type { ChromiumOptions } from './open-browser';
23
+ export { RemotionOption } from './options/option';
23
24
  export { PixelFormat } from './pixel-format';
24
25
  export { ProResProfile } from './prores-profile';
25
26
  export { renderFrames } from './render-frames';
26
- export { renderMedia, RenderMediaOnProgress, RenderMediaOptions, StitchingState, } from './render-media';
27
- export { renderStill } from './render-still';
27
+ export { renderMedia, RenderMediaOnProgress, RenderMediaOptions, SlowFrame, StitchingState, } from './render-media';
28
+ export { renderStill, RenderStillOptions } from './render-still';
28
29
  export { StitcherOptions, stitchFramesToVideo } from './stitch-frames-to-video';
29
30
  export { SymbolicatedStackFrame } from './symbolicate-stacktrace';
30
31
  export { OnStartData, RenderFramesOutput } from './types';
31
32
  export { OpenGlRenderer } from './validate-opengl-renderer';
33
+ export { validateOutputFilename } from './validate-output-filename';
32
34
  export declare const RenderInternals: {
33
35
  ensureLocalBrowser: (browser: import("./browser").Browser, preferredBrowserExecutable: import("./browser-executable").BrowserExecutable) => Promise<void>;
34
- ffmpegHasFeature: ({ ffmpegExecutable, feature, isLambda, }: {
35
- ffmpegExecutable: string | null;
36
- feature: "enable-gpl" | "enable-libx265" | "enable-libvpx";
37
- isLambda: boolean;
38
- }) => Promise<boolean>;
39
- getActualConcurrency: (userPreference: number | null) => number;
40
- getFfmpegVersion: (options: {
41
- ffmpegExecutable: string | null;
42
- }) => Promise<import("./ffmpeg-flags").FfmpegVersion>;
43
- validateFfmpeg: (customFfmpegBinary: string | null) => Promise<void>;
44
- binaryExists: (name: "ffmpeg" | "brew", localFFmpeg: string | null) => Promise<boolean>;
45
- getFfmpegBuildInfo: (options: {
46
- ffmpegExecutable: string | null;
47
- }) => Promise<string>;
36
+ getActualConcurrency: (userPreference: string | number | null) => number;
48
37
  serveStatic: (path: string | null, options: {
49
38
  port: number | null;
50
- ffmpegExecutable: import("./ffmpeg-executable").FfmpegExecutable;
51
- ffprobeExecutable: import("./ffmpeg-executable").FfmpegExecutable;
52
39
  onDownload: import("./assets/download-and-map-assets-to-file").RenderMediaOnDownload;
53
40
  onError: (err: Error) => void;
54
41
  downloadMap: import("./assets/download-map").DownloadMap;
42
+ remotionRoot: string;
43
+ concurrency: number;
44
+ verbose: boolean;
55
45
  }) => Promise<{
56
46
  port: number;
57
47
  close: () => Promise<void>;
@@ -60,23 +50,18 @@ export declare const RenderInternals: {
60
50
  width: number;
61
51
  height: number;
62
52
  scale: number;
63
- codec: "vp9" | "vp8" | "h264" | "h265" | "mp3" | "aac" | "wav" | "prores" | "h264-mkv" | "gif";
53
+ codec: "aac" | "mp3" | "h264" | "h265" | "vp8" | "vp9" | "wav" | "prores" | "h264-mkv" | "gif";
64
54
  }) => void;
65
- normalizeServeUrl: (unnormalized: string) => string;
66
- spawnFfmpeg: (options: import("./stitch-frames-to-video").StitcherOptions) => Promise<{
67
- task: Promise<Buffer | null>;
68
- getLogs: () => string;
69
- }>;
70
- getFileExtensionFromCodec: (codec: "vp9" | "vp8" | "h264" | "h265" | "mp3" | "aac" | "wav" | "prores" | "h264-mkv" | "gif", type: "chunk" | "final") => "mp3" | "aac" | "wav" | "gif" | "mp4" | "mkv" | "mov" | "webm";
55
+ getFileExtensionFromCodec: <T extends "aac" | "mp3" | "h264" | "h265" | "vp8" | "vp9" | "wav" | "prores" | "h264-mkv" | "gif">(codec: T, audioCodec: "pcm-16" | "aac" | "mp3" | "opus" | null) => import("./file-extensions").FileExtension;
71
56
  tmpDir: (str: string) => string;
72
- deleteDirectory: (directory: string) => Promise<void>;
57
+ deleteDirectory: (directory: string) => void;
73
58
  isServeUrl: (potentialUrl: string) => boolean;
74
59
  ensureOutputDirectory: (outputLocation: string) => void;
75
60
  getRealFrameRange: (durationInFrames: number, frameRange: import("./frame-range").FrameRange | null) => [number, number];
76
61
  validatePuppeteerTimeout: (timeoutInMilliseconds: unknown) => void;
77
62
  downloadFile: ({ onProgress, url, to: toFn, }: {
78
63
  url: string;
79
- to: (contentDisposition: string | null) => string;
64
+ to: (contentDisposition: string | null, contentType: string | null) => string;
80
65
  onProgress: ((progress: {
81
66
  percent: number | null;
82
67
  downloaded: number;
@@ -86,14 +71,16 @@ export declare const RenderInternals: {
86
71
  sizeInBytes: number;
87
72
  to: string;
88
73
  }>;
89
- validateScale: (scale: unknown) => void;
90
74
  killAllBrowsers: () => Promise<void>;
91
75
  parseStack: (stack: string[]) => import("./parse-browser-error-stack").UnsymbolicatedStackFrame[];
92
76
  symbolicateError: (symbolicateableError: SymbolicateableError) => Promise<import("./error-handling/handle-javascript-exception").ErrorWithStackFrame>;
93
77
  SymbolicateableError: typeof SymbolicateableError;
94
78
  getFramesToRender: (frameRange: [number, number], everyNthFrame: number) => number[];
95
79
  getExtensionOfFilename: (filename: string | null) => string | null;
96
- getDesiredPort: (desiredPort: number | undefined, from: number, to: number) => Promise<number>;
80
+ getDesiredPort: (desiredPort: number | undefined, from: number, to: number) => Promise<{
81
+ port: number;
82
+ didUsePort: () => void;
83
+ }>;
97
84
  isPathInside: (thePath: string, potentialParent: string) => boolean;
98
85
  execa: {
99
86
  (file: string, arguments?: readonly string[] | undefined, options?: execa.Options<string> | undefined): execa.ExecaChildProcess<string>;
@@ -115,7 +102,7 @@ export declare const RenderInternals: {
115
102
  };
116
103
  registerErrorSymbolicationLock: () => number;
117
104
  unlockErrorSymbolicationLock: (id: number) => void;
118
- canUseParallelEncoding: (codec: "vp9" | "vp8" | "h264" | "h265" | "mp3" | "aac" | "wav" | "prores" | "h264-mkv" | "gif") => boolean;
105
+ canUseParallelEncoding: (codec: "aac" | "mp3" | "h264" | "h265" | "vp8" | "vp9" | "wav" | "prores" | "h264-mkv" | "gif") => boolean;
119
106
  mimeContentType: typeof mimeContentType;
120
107
  mimeLookup: typeof mimeLookup;
121
108
  validateConcurrency: (value: unknown, setting: string) => void;
@@ -124,26 +111,192 @@ export declare const RenderInternals: {
124
111
  validateFrameRange: (frameRange: import("./frame-range").FrameRange | null) => void;
125
112
  DEFAULT_OPENGL_RENDERER: "swangle" | "angle" | "egl" | "swiftshader" | null;
126
113
  validateOpenGlRenderer: (option: "swangle" | "angle" | "egl" | "swiftshader" | null) => "swangle" | "angle" | "egl" | "swiftshader" | null;
127
- getDefaultCrfForCodec: (codec: "vp9" | "vp8" | "h264" | "h265" | "mp3" | "aac" | "wav" | "prores" | "h264-mkv" | "gif") => number;
128
- validateSelectedCrfAndCodecCombination: (crf: unknown, codec: "vp9" | "vp8" | "h264" | "h265" | "mp3" | "aac" | "wav" | "prores" | "h264-mkv" | "gif") => void;
129
- validImageFormats: readonly ["png", "jpeg", "none"];
130
114
  validCodecs: readonly ["h264", "h265", "vp8", "vp9", "mp3", "aac", "wav", "prores", "h264-mkv", "gif"];
131
- DEFAULT_OVERWRITE: boolean;
132
115
  DEFAULT_PIXEL_FORMAT: "yuv420p" | "yuva420p" | "yuv422p" | "yuv444p" | "yuv420p10le" | "yuv422p10le" | "yuv444p10le" | "yuva444p10le";
133
- validateQuality: (q: number | undefined) => void;
134
- validateFrame: (frame: number, durationInFrames: number) => void;
116
+ validateJpegQuality: (q: number | undefined) => void;
135
117
  DEFAULT_TIMEOUT: number;
136
- getValidCrfRanges: (codec: "vp9" | "vp8" | "h264" | "h265" | "mp3" | "aac" | "wav" | "prores" | "h264-mkv" | "gif") => [number, number];
137
- validateSelectedPixelFormatAndCodecCombination: (pixelFormat: "yuv420p" | "yuva420p" | "yuv422p" | "yuv444p" | "yuv420p10le" | "yuv422p10le" | "yuv444p10le" | "yuva444p10le", codec: "vp9" | "vp8" | "h264" | "h265" | "mp3" | "aac" | "wav" | "prores" | "h264-mkv" | "gif") => void;
138
- validateSelectedCodecAndProResCombination: (actualCodec: "vp9" | "vp8" | "h264" | "h265" | "mp3" | "aac" | "wav" | "prores" | "h264-mkv" | "gif", actualProResProfile: "4444-xq" | "4444" | "hq" | "standard" | "light" | "proxy" | undefined) => void;
139
- validateSelectedPixelFormatAndImageFormatCombination: (pixelFormat: "yuv420p" | "yuva420p" | "yuv422p" | "yuv444p" | "yuv420p10le" | "yuv422p10le" | "yuv444p10le" | "yuva444p10le", imageFormat: "none" | "png" | "jpeg") => "none" | "valid";
140
- DEFAULT_CODEC: "vp9" | "vp8" | "h264" | "h265" | "mp3" | "aac" | "wav" | "prores" | "h264-mkv" | "gif";
141
- isAudioCodec: (codec: "vp9" | "vp8" | "h264" | "h265" | "mp3" | "aac" | "wav" | "prores" | "h264-mkv" | "gif" | undefined) => boolean;
118
+ DEFAULT_CODEC: "aac" | "mp3" | "h264" | "h265" | "vp8" | "vp9" | "wav" | "prores" | "h264-mkv" | "gif";
119
+ isAudioCodec: (codec: "aac" | "mp3" | "h264" | "h265" | "vp8" | "vp9" | "wav" | "prores" | "h264-mkv" | "gif" | undefined) => boolean;
142
120
  logLevels: readonly ["verbose", "info", "warn", "error"];
143
121
  isEqualOrBelowLogLevel: (currentLevel: "verbose" | "info" | "warn" | "error", level: "verbose" | "info" | "warn" | "error") => boolean;
144
122
  isValidLogLevel: (level: string) => boolean;
145
- validateEveryNthFrame: (everyNthFrame: unknown) => void;
146
123
  perf: typeof perf;
147
124
  makeDownloadMap: () => import("./assets/download-map").DownloadMap;
148
- cleanDownloadMap: (downloadMap: import("./assets/download-map").DownloadMap) => Promise<void>;
125
+ cleanDownloadMap: (downloadMap: import("./assets/download-map").DownloadMap) => void;
126
+ convertToPositiveFrameIndex: ({ frame, durationInFrames, }: {
127
+ frame: number;
128
+ durationInFrames: number;
129
+ }) => number;
130
+ findRemotionRoot: () => string;
131
+ validateBitrate: (bitrate: unknown, name: string) => void;
132
+ combineVideos: (options: {
133
+ files: string[];
134
+ filelistDir: string;
135
+ output: string;
136
+ onProgress: (p: number) => void;
137
+ numberOfFrames: number;
138
+ codec: "aac" | "mp3" | "h264" | "h265" | "vp8" | "vp9" | "wav" | "prores" | "h264-mkv" | "gif";
139
+ fps: number;
140
+ numberOfGifLoops: number | null;
141
+ audioCodec: "pcm-16" | "aac" | "mp3" | "opus" | null;
142
+ }) => Promise<void>;
143
+ getMinConcurrency: () => number;
144
+ getMaxConcurrency: () => any;
145
+ getDefaultAudioCodec: ({ codec, preferLossless, }: {
146
+ codec: "aac" | "mp3" | "h264" | "h265" | "vp8" | "vp9" | "wav" | "prores" | "h264-mkv" | "gif";
147
+ preferLossless: boolean;
148
+ }) => "pcm-16" | "aac" | "mp3" | "opus" | null;
149
+ validAudioCodecs: readonly ["pcm-16", "aac", "mp3", "opus"];
150
+ defaultFileExtensionMap: {
151
+ aac: {
152
+ default: import("./file-extensions").FileExtension;
153
+ forAudioCodec: {
154
+ "pcm-16": {
155
+ possible: import("./file-extensions").FileExtension[];
156
+ default: import("./file-extensions").FileExtension;
157
+ };
158
+ aac: {
159
+ possible: import("./file-extensions").FileExtension[];
160
+ default: import("./file-extensions").FileExtension;
161
+ };
162
+ };
163
+ };
164
+ mp3: {
165
+ default: import("./file-extensions").FileExtension;
166
+ forAudioCodec: {
167
+ "pcm-16": {
168
+ possible: import("./file-extensions").FileExtension[];
169
+ default: import("./file-extensions").FileExtension;
170
+ };
171
+ mp3: {
172
+ possible: import("./file-extensions").FileExtension[];
173
+ default: import("./file-extensions").FileExtension;
174
+ };
175
+ };
176
+ };
177
+ h264: {
178
+ default: import("./file-extensions").FileExtension;
179
+ forAudioCodec: {
180
+ "pcm-16": {
181
+ possible: import("./file-extensions").FileExtension[];
182
+ default: import("./file-extensions").FileExtension;
183
+ };
184
+ aac: {
185
+ possible: import("./file-extensions").FileExtension[];
186
+ default: import("./file-extensions").FileExtension;
187
+ };
188
+ };
189
+ };
190
+ h265: {
191
+ default: import("./file-extensions").FileExtension;
192
+ forAudioCodec: {
193
+ "pcm-16": {
194
+ possible: import("./file-extensions").FileExtension[];
195
+ default: import("./file-extensions").FileExtension;
196
+ };
197
+ aac: {
198
+ possible: import("./file-extensions").FileExtension[];
199
+ default: import("./file-extensions").FileExtension;
200
+ };
201
+ };
202
+ };
203
+ vp8: {
204
+ default: import("./file-extensions").FileExtension;
205
+ forAudioCodec: {
206
+ "pcm-16": {
207
+ possible: import("./file-extensions").FileExtension[];
208
+ default: import("./file-extensions").FileExtension;
209
+ };
210
+ opus: {
211
+ possible: import("./file-extensions").FileExtension[];
212
+ default: import("./file-extensions").FileExtension;
213
+ };
214
+ };
215
+ };
216
+ vp9: {
217
+ default: import("./file-extensions").FileExtension;
218
+ forAudioCodec: {
219
+ "pcm-16": {
220
+ possible: import("./file-extensions").FileExtension[];
221
+ default: import("./file-extensions").FileExtension;
222
+ };
223
+ opus: {
224
+ possible: import("./file-extensions").FileExtension[];
225
+ default: import("./file-extensions").FileExtension;
226
+ };
227
+ };
228
+ };
229
+ wav: {
230
+ default: import("./file-extensions").FileExtension;
231
+ forAudioCodec: {
232
+ "pcm-16": {
233
+ possible: import("./file-extensions").FileExtension[];
234
+ default: import("./file-extensions").FileExtension;
235
+ };
236
+ };
237
+ };
238
+ prores: {
239
+ default: import("./file-extensions").FileExtension;
240
+ forAudioCodec: {
241
+ "pcm-16": {
242
+ possible: import("./file-extensions").FileExtension[];
243
+ default: import("./file-extensions").FileExtension;
244
+ };
245
+ aac: {
246
+ possible: import("./file-extensions").FileExtension[];
247
+ default: import("./file-extensions").FileExtension;
248
+ };
249
+ };
250
+ };
251
+ "h264-mkv": {
252
+ default: import("./file-extensions").FileExtension;
253
+ forAudioCodec: {
254
+ "pcm-16": {
255
+ possible: import("./file-extensions").FileExtension[];
256
+ default: import("./file-extensions").FileExtension;
257
+ };
258
+ };
259
+ };
260
+ gif: {
261
+ default: import("./file-extensions").FileExtension;
262
+ forAudioCodec: {
263
+ [x: string]: {
264
+ possible: import("./file-extensions").FileExtension[];
265
+ default: import("./file-extensions").FileExtension;
266
+ };
267
+ };
268
+ };
269
+ };
270
+ supportedAudioCodecs: {
271
+ readonly h264: readonly ["aac", "pcm-16"];
272
+ readonly 'h264-mkv': readonly ["pcm-16"];
273
+ readonly aac: readonly ["aac", "pcm-16"];
274
+ readonly gif: const[];
275
+ readonly h265: readonly ["aac", "pcm-16"];
276
+ readonly mp3: readonly ["mp3", "pcm-16"];
277
+ readonly prores: readonly ["aac", "pcm-16"];
278
+ readonly vp8: readonly ["opus", "pcm-16"];
279
+ readonly vp9: readonly ["opus", "pcm-16"];
280
+ readonly wav: readonly ["pcm-16"];
281
+ };
282
+ makeFileExtensionMap: () => Record<string, ("aac" | "mp3" | "h264" | "h265" | "vp8" | "vp9" | "wav" | "prores" | "h264-mkv" | "gif")[]>;
283
+ defaultCodecsForFileExtension: Record<import("./file-extensions").FileExtension, "aac" | "mp3" | "h264" | "h265" | "vp8" | "vp9" | "wav" | "prores" | "h264-mkv" | "gif">;
284
+ getExecutablePath: (type: "compositor" | "ffmpeg" | "ffprobe" | "ffmpeg-cwd") => string;
285
+ callFf: (bin: "ffmpeg" | "ffprobe", args: (string | null)[], options?: execa.Options<string> | undefined) => execa.ExecaChildProcess<string>;
286
+ dynamicLibraryPathOptions: () => {
287
+ env: {
288
+ DYLD_LIBRARY_PATH: string;
289
+ RUST_BACKTRACE: string;
290
+ } | {
291
+ PATH: string;
292
+ RUST_BACKTRACE: string;
293
+ } | {
294
+ LD_LIBRARY_PATH: string;
295
+ RUST_BACKTRACE: string;
296
+ };
297
+ };
298
+ validStillImageFormats: readonly ["png", "jpeg", "pdf", "webp"];
299
+ validVideoImageFormats: readonly ["png", "jpeg", "none"];
300
+ DEFAULT_STILL_IMAGE_FORMAT: "png" | "jpeg" | "pdf" | "webp";
301
+ DEFAULT_VIDEO_IMAGE_FORMAT: "png" | "jpeg" | "none";
149
302
  };