@remotion/renderer 3.0.2 → 3.0.5

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 (381) hide show
  1. package/dist/assets/calculate-asset-positions.d.ts +0 -1
  2. package/dist/assets/calculate-asset-positions.js +2 -6
  3. package/dist/assets/calculate-atempo.d.ts +1 -2
  4. package/dist/assets/calculate-atempo.js +3 -1
  5. package/dist/assets/convert-assets-to-file-urls.d.ts +0 -1
  6. package/dist/assets/convert-assets-to-file-urls.js +0 -1
  7. package/dist/assets/download-and-map-assets-to-file.d.ts +0 -2
  8. package/dist/assets/download-and-map-assets-to-file.js +2 -4
  9. package/dist/assets/download-file.d.ts +0 -1
  10. package/dist/assets/download-file.js +0 -1
  11. package/dist/assets/ffmpeg-volume-expression.d.ts +1 -3
  12. package/dist/assets/ffmpeg-volume-expression.js +3 -6
  13. package/dist/assets/flatten-volume-array.d.ts +0 -1
  14. package/dist/assets/flatten-volume-array.js +0 -1
  15. package/dist/assets/get-audio-channels.d.ts +4 -2
  16. package/dist/assets/get-audio-channels.js +10 -13
  17. package/dist/assets/read-file.d.ts +0 -1
  18. package/dist/assets/read-file.js +0 -1
  19. package/dist/assets/round-volume-to-avoid-stack-overflow.d.ts +0 -2
  20. package/dist/assets/round-volume-to-avoid-stack-overflow.js +4 -5
  21. package/dist/assets/sanitize-filename.d.ts +0 -1
  22. package/dist/assets/sanitize-filename.js +0 -1
  23. package/dist/assets/sanitize-filepath.d.ts +0 -1
  24. package/dist/assets/sanitize-filepath.js +0 -1
  25. package/dist/assets/truncate-utf8-bytes.d.ts +0 -1
  26. package/dist/assets/truncate-utf8-bytes.js +0 -1
  27. package/dist/assets/types.d.ts +0 -4
  28. package/dist/assets/types.js +0 -1
  29. package/dist/browser-log.d.ts +0 -1
  30. package/dist/browser-log.js +0 -1
  31. package/dist/calculate-ffmpeg-filters.d.ts +7 -11
  32. package/dist/calculate-ffmpeg-filters.js +19 -31
  33. package/dist/can-use-parallel-encoding.d.ts +0 -1
  34. package/dist/can-use-parallel-encoding.js +0 -1
  35. package/dist/chunk.d.ts +1 -0
  36. package/dist/chunk.js +11 -0
  37. package/dist/combine-videos.d.ts +0 -1
  38. package/dist/combine-videos.js +0 -1
  39. package/dist/convert-to-pcm.d.ts +6 -0
  40. package/dist/convert-to-pcm.js +20 -0
  41. package/dist/create-ffmpeg-complex-filter.d.ts +1 -3
  42. package/dist/create-ffmpeg-complex-filter.js +8 -34
  43. package/dist/create-ffmpeg-merge-filter.d.ts +1 -0
  44. package/dist/create-ffmpeg-merge-filter.js +18 -0
  45. package/dist/create-silent-audio.d.ts +6 -0
  46. package/dist/create-silent-audio.js +24 -0
  47. package/dist/cycle-browser-tabs.d.ts +1 -2
  48. package/dist/cycle-browser-tabs.js +6 -2
  49. package/dist/delay-render-embedded-stack.d.ts +0 -1
  50. package/dist/delay-render-embedded-stack.js +0 -1
  51. package/dist/delete-directory.d.ts +0 -1
  52. package/dist/delete-directory.js +6 -2
  53. package/dist/ensure-frames-in-order.d.ts +0 -1
  54. package/dist/ensure-frames-in-order.js +1 -2
  55. package/dist/ensure-output-directory.d.ts +0 -1
  56. package/dist/ensure-output-directory.js +0 -1
  57. package/dist/error-handling/handle-javascript-exception.d.ts +0 -2
  58. package/dist/error-handling/handle-javascript-exception.js +3 -5
  59. package/dist/error-handling/symbolicate-error.d.ts +0 -1
  60. package/dist/error-handling/symbolicate-error.js +0 -1
  61. package/dist/error-handling/symbolicateable-error.d.ts +0 -1
  62. package/dist/error-handling/symbolicateable-error.js +0 -1
  63. package/dist/ffmpeg-filter-file.d.ts +4 -0
  64. package/dist/ffmpeg-filter-file.js +24 -0
  65. package/dist/ffmpeg-flags.d.ts +0 -1
  66. package/dist/ffmpeg-flags.js +0 -1
  67. package/dist/get-audio-codec-name.d.ts +0 -1
  68. package/dist/get-audio-codec-name.js +0 -1
  69. package/dist/get-browser-instance.d.ts +0 -1
  70. package/dist/get-browser-instance.js +0 -1
  71. package/dist/get-codec-name.d.ts +0 -1
  72. package/dist/get-codec-name.js +0 -1
  73. package/dist/get-compositions.d.ts +0 -1
  74. package/dist/get-compositions.js +0 -1
  75. package/dist/get-concurrency.d.ts +0 -1
  76. package/dist/get-concurrency.js +0 -1
  77. package/dist/get-duration-from-frame-range.d.ts +2 -0
  78. package/dist/get-duration-from-frame-range.js +13 -0
  79. package/dist/get-extension-from-codec.d.ts +1 -2
  80. package/dist/get-extension-from-codec.js +0 -1
  81. package/dist/get-extension-of-filename.d.ts +1 -0
  82. package/dist/get-extension-of-filename.js +11 -0
  83. package/dist/get-frame-to-render.d.ts +0 -1
  84. package/dist/get-frame-to-render.js +0 -1
  85. package/dist/get-local-browser-executable.d.ts +0 -1
  86. package/dist/get-local-browser-executable.js +0 -1
  87. package/dist/get-port.d.ts +0 -1
  88. package/dist/get-port.js +0 -1
  89. package/dist/get-prores-profile-name.d.ts +0 -1
  90. package/dist/get-prores-profile-name.js +0 -1
  91. package/dist/image-format.d.ts +0 -1
  92. package/dist/image-format.js +0 -1
  93. package/dist/index.d.ts +3 -9
  94. package/dist/index.js +4 -3
  95. package/dist/is-serve-url.d.ts +0 -1
  96. package/dist/is-serve-url.js +0 -1
  97. package/dist/legacy-webpack-config.d.ts +0 -1
  98. package/dist/legacy-webpack-config.js +0 -1
  99. package/dist/make-assets-download-dir.d.ts +0 -1
  100. package/dist/make-assets-download-dir.js +0 -1
  101. package/dist/merge-audio-track.d.ts +9 -0
  102. package/dist/merge-audio-track.js +72 -0
  103. package/dist/normalize-serve-url.d.ts +0 -1
  104. package/dist/normalize-serve-url.js +0 -1
  105. package/dist/open-browser.d.ts +0 -1
  106. package/dist/open-browser.js +0 -1
  107. package/dist/p-limit.d.ts +1 -0
  108. package/dist/p-limit.js +57 -0
  109. package/dist/parse-browser-error-stack.d.ts +0 -1
  110. package/dist/parse-browser-error-stack.js +0 -1
  111. package/dist/parse-ffmpeg-progress.d.ts +0 -1
  112. package/dist/parse-ffmpeg-progress.js +0 -1
  113. package/dist/pool.d.ts +0 -1
  114. package/dist/pool.js +0 -1
  115. package/dist/prepare-server.d.ts +0 -1
  116. package/dist/prepare-server.js +0 -1
  117. package/dist/preprocess-audio-track.d.ts +11 -0
  118. package/dist/preprocess-audio-track.js +41 -0
  119. package/dist/prespawn-ffmpeg.d.ts +21 -0
  120. package/dist/prespawn-ffmpeg.js +91 -0
  121. package/dist/provide-screenshot.d.ts +0 -1
  122. package/dist/provide-screenshot.js +0 -1
  123. package/dist/puppeteer-evaluate.d.ts +0 -2
  124. package/dist/puppeteer-evaluate.js +3 -4
  125. package/dist/puppeteer-screenshot.d.ts +0 -1
  126. package/dist/puppeteer-screenshot.js +0 -1
  127. package/dist/render-frames.d.ts +1 -8
  128. package/dist/render-frames.js +9 -9
  129. package/dist/render-media.d.ts +0 -1
  130. package/dist/render-media.js +11 -16
  131. package/dist/render-still.d.ts +1 -2
  132. package/dist/render-still.js +0 -1
  133. package/dist/resolve-asset-src.d.ts +0 -1
  134. package/dist/resolve-asset-src.js +0 -1
  135. package/dist/sample-rate.d.ts +0 -1
  136. package/dist/sample-rate.js +0 -1
  137. package/dist/screenshot-dom-element.d.ts +0 -1
  138. package/dist/screenshot-dom-element.js +0 -1
  139. package/dist/screenshot-task.d.ts +0 -1
  140. package/dist/screenshot-task.js +0 -1
  141. package/dist/seek-to-frame.d.ts +0 -1
  142. package/dist/seek-to-frame.js +0 -1
  143. package/dist/serve-static.d.ts +0 -1
  144. package/dist/serve-static.js +0 -1
  145. package/dist/set-props-and-env.d.ts +0 -1
  146. package/dist/set-props-and-env.js +0 -1
  147. package/dist/stitch-frames-to-video.d.ts +6 -8
  148. package/dist/stitch-frames-to-video.js +122 -108
  149. package/dist/stringify-ffmpeg-filter.d.ts +5 -6
  150. package/dist/stringify-ffmpeg-filter.js +29 -11
  151. package/dist/symbolicate-stacktrace.d.ts +2 -4
  152. package/dist/symbolicate-stacktrace.js +1 -3
  153. package/dist/tmp-dir.d.ts +0 -1
  154. package/dist/tmp-dir.js +0 -1
  155. package/dist/types.d.ts +0 -1
  156. package/dist/types.js +0 -1
  157. package/dist/validate-even-dimensions-with-codec.d.ts +0 -1
  158. package/dist/validate-even-dimensions-with-codec.js +0 -1
  159. package/dist/validate-ffmpeg.d.ts +0 -2
  160. package/dist/validate-ffmpeg.js +2 -4
  161. package/dist/validate-output-filename.d.ts +2 -0
  162. package/dist/validate-output-filename.js +52 -0
  163. package/dist/validate-puppeteer-timeout.d.ts +0 -1
  164. package/dist/validate-puppeteer-timeout.js +0 -1
  165. package/dist/validate-scale.d.ts +0 -1
  166. package/dist/validate-scale.js +0 -1
  167. package/package.json +4 -5
  168. package/dist/add-silent-audio-if-necessary.d.ts +0 -8
  169. package/dist/add-silent-audio-if-necessary.d.ts.map +0 -1
  170. package/dist/add-silent-audio-if-necessary.js +0 -51
  171. package/dist/add-silent-audio-if-necessary.js.map +0 -1
  172. package/dist/assets/asset-is-used-at-time.d.ts +0 -3
  173. package/dist/assets/asset-is-used-at-time.d.ts.map +0 -1
  174. package/dist/assets/asset-is-used-at-time.js +0 -8
  175. package/dist/assets/asset-is-used-at-time.js.map +0 -1
  176. package/dist/assets/calculate-asset-positions.d.ts.map +0 -1
  177. package/dist/assets/calculate-asset-positions.js.map +0 -1
  178. package/dist/assets/calculate-atempo.d.ts.map +0 -1
  179. package/dist/assets/calculate-atempo.js.map +0 -1
  180. package/dist/assets/convert-assets-to-file-urls.d.ts.map +0 -1
  181. package/dist/assets/convert-assets-to-file-urls.js.map +0 -1
  182. package/dist/assets/download-and-map-assets-to-file.d.ts.map +0 -1
  183. package/dist/assets/download-and-map-assets-to-file.js.map +0 -1
  184. package/dist/assets/download-file.d.ts.map +0 -1
  185. package/dist/assets/download-file.js.map +0 -1
  186. package/dist/assets/ffmpeg-volume-expression.d.ts.map +0 -1
  187. package/dist/assets/ffmpeg-volume-expression.js.map +0 -1
  188. package/dist/assets/flatten-volume-array.d.ts.map +0 -1
  189. package/dist/assets/flatten-volume-array.js.map +0 -1
  190. package/dist/assets/get-asset-audio-details.d.ts +0 -5
  191. package/dist/assets/get-asset-audio-details.d.ts.map +0 -1
  192. package/dist/assets/get-asset-audio-details.js +0 -21
  193. package/dist/assets/get-asset-audio-details.js.map +0 -1
  194. package/dist/assets/get-audio-channels.d.ts.map +0 -1
  195. package/dist/assets/get-audio-channels.js.map +0 -1
  196. package/dist/assets/get-simulatenous-assets.d.ts +0 -3
  197. package/dist/assets/get-simulatenous-assets.d.ts.map +0 -1
  198. package/dist/assets/get-simulatenous-assets.js +0 -14
  199. package/dist/assets/get-simulatenous-assets.js.map +0 -1
  200. package/dist/assets/read-file.d.ts.map +0 -1
  201. package/dist/assets/read-file.js.map +0 -1
  202. package/dist/assets/round-volume-to-avoid-stack-overflow.d.ts.map +0 -1
  203. package/dist/assets/round-volume-to-avoid-stack-overflow.js.map +0 -1
  204. package/dist/assets/sanitize-filename.d.ts.map +0 -1
  205. package/dist/assets/sanitize-filename.js.map +0 -1
  206. package/dist/assets/sanitize-filepath.d.ts.map +0 -1
  207. package/dist/assets/sanitize-filepath.js.map +0 -1
  208. package/dist/assets/split-assets-into-segments.d.ts +0 -6
  209. package/dist/assets/split-assets-into-segments.d.ts.map +0 -1
  210. package/dist/assets/split-assets-into-segments.js +0 -89
  211. package/dist/assets/split-assets-into-segments.js.map +0 -1
  212. package/dist/assets/truncate-utf8-bytes.d.ts.map +0 -1
  213. package/dist/assets/truncate-utf8-bytes.js.map +0 -1
  214. package/dist/assets/types.d.ts.map +0 -1
  215. package/dist/assets/types.js.map +0 -1
  216. package/dist/assets-to-ffmpeg-inputs.d.ts +0 -10
  217. package/dist/assets-to-ffmpeg-inputs.d.ts.map +0 -1
  218. package/dist/assets-to-ffmpeg-inputs.js +0 -15
  219. package/dist/assets-to-ffmpeg-inputs.js.map +0 -1
  220. package/dist/browser-log.d.ts.map +0 -1
  221. package/dist/browser-log.js.map +0 -1
  222. package/dist/calculate-ffmpeg-filters.d.ts.map +0 -1
  223. package/dist/calculate-ffmpeg-filters.js.map +0 -1
  224. package/dist/can-use-parallel-encoding.d.ts.map +0 -1
  225. package/dist/can-use-parallel-encoding.js.map +0 -1
  226. package/dist/combine-videos.d.ts.map +0 -1
  227. package/dist/combine-videos.js.map +0 -1
  228. package/dist/convert-mp3-to-pcm.d.ts +0 -7
  229. package/dist/convert-mp3-to-pcm.d.ts.map +0 -1
  230. package/dist/convert-mp3-to-pcm.js +0 -41
  231. package/dist/convert-mp3-to-pcm.js.map +0 -1
  232. package/dist/create-ffmpeg-complex-filter.d.ts.map +0 -1
  233. package/dist/create-ffmpeg-complex-filter.js.map +0 -1
  234. package/dist/cycle-browser-tabs.d.ts.map +0 -1
  235. package/dist/cycle-browser-tabs.js.map +0 -1
  236. package/dist/delay-render-embedded-stack.d.ts.map +0 -1
  237. package/dist/delay-render-embedded-stack.js.map +0 -1
  238. package/dist/delete-directory.d.ts.map +0 -1
  239. package/dist/delete-directory.js.map +0 -1
  240. package/dist/ensure-frames-in-order.d.ts.map +0 -1
  241. package/dist/ensure-frames-in-order.js.map +0 -1
  242. package/dist/ensure-output-directory.d.ts.map +0 -1
  243. package/dist/ensure-output-directory.js.map +0 -1
  244. package/dist/error-handling/handle-javascript-exception.d.ts.map +0 -1
  245. package/dist/error-handling/handle-javascript-exception.js.map +0 -1
  246. package/dist/error-handling/symbolicate-error.d.ts.map +0 -1
  247. package/dist/error-handling/symbolicate-error.js.map +0 -1
  248. package/dist/error-handling/symbolicateable-error.d.ts.map +0 -1
  249. package/dist/error-handling/symbolicateable-error.js.map +0 -1
  250. package/dist/ffmpeg-flags.d.ts.map +0 -1
  251. package/dist/ffmpeg-flags.js.map +0 -1
  252. package/dist/get-audio-codec-name.d.ts.map +0 -1
  253. package/dist/get-audio-codec-name.js.map +0 -1
  254. package/dist/get-browser-instance.d.ts.map +0 -1
  255. package/dist/get-browser-instance.js.map +0 -1
  256. package/dist/get-codec-name.d.ts.map +0 -1
  257. package/dist/get-codec-name.js.map +0 -1
  258. package/dist/get-compositions.d.ts.map +0 -1
  259. package/dist/get-compositions.js.map +0 -1
  260. package/dist/get-concurrency.d.ts.map +0 -1
  261. package/dist/get-concurrency.js.map +0 -1
  262. package/dist/get-extension-from-codec.d.ts.map +0 -1
  263. package/dist/get-extension-from-codec.js.map +0 -1
  264. package/dist/get-frame-number-length.d.ts +0 -8
  265. package/dist/get-frame-number-length.d.ts.map +0 -1
  266. package/dist/get-frame-number-length.js +0 -30
  267. package/dist/get-frame-number-length.js.map +0 -1
  268. package/dist/get-frame-range.d.ts +0 -3
  269. package/dist/get-frame-range.d.ts.map +0 -1
  270. package/dist/get-frame-range.js +0 -23
  271. package/dist/get-frame-range.js.map +0 -1
  272. package/dist/get-frame-to-render.d.ts.map +0 -1
  273. package/dist/get-frame-to-render.js.map +0 -1
  274. package/dist/get-local-browser-executable.d.ts.map +0 -1
  275. package/dist/get-local-browser-executable.js.map +0 -1
  276. package/dist/get-port.d.ts.map +0 -1
  277. package/dist/get-port.js.map +0 -1
  278. package/dist/get-prores-profile-name.d.ts.map +0 -1
  279. package/dist/get-prores-profile-name.js.map +0 -1
  280. package/dist/handle-javascript-exception.d.ts +0 -32
  281. package/dist/handle-javascript-exception.d.ts.map +0 -1
  282. package/dist/handle-javascript-exception.js +0 -82
  283. package/dist/handle-javascript-exception.js.map +0 -1
  284. package/dist/handle-null-audio.d.ts +0 -1
  285. package/dist/handle-null-audio.d.ts.map +0 -1
  286. package/dist/handle-null-audio.js +0 -2
  287. package/dist/handle-null-audio.js.map +0 -1
  288. package/dist/image-format.d.ts.map +0 -1
  289. package/dist/image-format.js.map +0 -1
  290. package/dist/index.d.ts.map +0 -1
  291. package/dist/index.js.map +0 -1
  292. package/dist/is-local-file.d.ts +0 -2
  293. package/dist/is-local-file.d.ts.map +0 -1
  294. package/dist/is-local-file.js +0 -13
  295. package/dist/is-local-file.js.map +0 -1
  296. package/dist/is-serve-url.d.ts.map +0 -1
  297. package/dist/is-serve-url.js.map +0 -1
  298. package/dist/legacy-webpack-config.d.ts.map +0 -1
  299. package/dist/legacy-webpack-config.js.map +0 -1
  300. package/dist/make-assets-download-dir.d.ts.map +0 -1
  301. package/dist/make-assets-download-dir.js.map +0 -1
  302. package/dist/min-max.d.ts +0 -3
  303. package/dist/min-max.d.ts.map +0 -1
  304. package/dist/min-max.js +0 -34
  305. package/dist/min-max.js.map +0 -1
  306. package/dist/normalize-serve-url.d.ts.map +0 -1
  307. package/dist/normalize-serve-url.js.map +0 -1
  308. package/dist/open-browser.d.ts.map +0 -1
  309. package/dist/open-browser.js.map +0 -1
  310. package/dist/parse-browser-error-stack.d.ts.map +0 -1
  311. package/dist/parse-browser-error-stack.js.map +0 -1
  312. package/dist/parse-ffmpeg-progress.d.ts.map +0 -1
  313. package/dist/parse-ffmpeg-progress.js.map +0 -1
  314. package/dist/pool.d.ts.map +0 -1
  315. package/dist/pool.js.map +0 -1
  316. package/dist/prepare-server.d.ts.map +0 -1
  317. package/dist/prepare-server.js.map +0 -1
  318. package/dist/provide-screenshot.d.ts.map +0 -1
  319. package/dist/provide-screenshot.js.map +0 -1
  320. package/dist/puppeteer-evaluate.d.ts.map +0 -1
  321. package/dist/puppeteer-evaluate.js.map +0 -1
  322. package/dist/puppeteer-screenshot.d.ts.map +0 -1
  323. package/dist/puppeteer-screenshot.js.map +0 -1
  324. package/dist/render-frames.d.ts.map +0 -1
  325. package/dist/render-frames.js.map +0 -1
  326. package/dist/render-media.d.ts.map +0 -1
  327. package/dist/render-media.js.map +0 -1
  328. package/dist/render-still.d.ts.map +0 -1
  329. package/dist/render-still.js.map +0 -1
  330. package/dist/render-video.d.ts +0 -38
  331. package/dist/render-video.d.ts.map +0 -1
  332. package/dist/render-video.js +0 -169
  333. package/dist/render-video.js.map +0 -1
  334. package/dist/render.d.ts +0 -45
  335. package/dist/render.d.ts.map +0 -1
  336. package/dist/render.js +0 -245
  337. package/dist/render.js.map +0 -1
  338. package/dist/resolve-asset-src.d.ts.map +0 -1
  339. package/dist/resolve-asset-src.js.map +0 -1
  340. package/dist/sample-rate.d.ts.map +0 -1
  341. package/dist/sample-rate.js.map +0 -1
  342. package/dist/screenshot-dom-element.d.ts.map +0 -1
  343. package/dist/screenshot-dom-element.js.map +0 -1
  344. package/dist/screenshot-task.d.ts.map +0 -1
  345. package/dist/screenshot-task.js.map +0 -1
  346. package/dist/seek-to-frame.d.ts.map +0 -1
  347. package/dist/seek-to-frame.js.map +0 -1
  348. package/dist/serve-static.d.ts.map +0 -1
  349. package/dist/serve-static.js.map +0 -1
  350. package/dist/set-props-and-env.d.ts.map +0 -1
  351. package/dist/set-props-and-env.js.map +0 -1
  352. package/dist/stitch-frames-to-video.d.ts.map +0 -1
  353. package/dist/stitch-frames-to-video.js.map +0 -1
  354. package/dist/stitcher.d.ts +0 -32
  355. package/dist/stitcher.d.ts.map +0 -1
  356. package/dist/stitcher.js +0 -204
  357. package/dist/stitcher.js.map +0 -1
  358. package/dist/stringify-ffmpeg-filter.d.ts.map +0 -1
  359. package/dist/stringify-ffmpeg-filter.js.map +0 -1
  360. package/dist/symbolicate-stacktrace.d.ts.map +0 -1
  361. package/dist/symbolicate-stacktrace.js.map +0 -1
  362. package/dist/tmp-dir.d.ts.map +0 -1
  363. package/dist/tmp-dir.js.map +0 -1
  364. package/dist/types.d.ts.map +0 -1
  365. package/dist/types.js.map +0 -1
  366. package/dist/validate-even-dimensions-with-codec.d.ts.map +0 -1
  367. package/dist/validate-even-dimensions-with-codec.js.map +0 -1
  368. package/dist/validate-ffmpeg.d.ts.map +0 -1
  369. package/dist/validate-ffmpeg.js.map +0 -1
  370. package/dist/validate-frame.d.ts +0 -2
  371. package/dist/validate-frame.d.ts.map +0 -1
  372. package/dist/validate-frame.js +0 -25
  373. package/dist/validate-frame.js.map +0 -1
  374. package/dist/validate-puppeteer-timeout.d.ts.map +0 -1
  375. package/dist/validate-puppeteer-timeout.js.map +0 -1
  376. package/dist/validate-quality.d.ts +0 -1
  377. package/dist/validate-quality.d.ts.map +0 -1
  378. package/dist/validate-quality.js +0 -2
  379. package/dist/validate-quality.js.map +0 -1
  380. package/dist/validate-scale.d.ts.map +0 -1
  381. package/dist/validate-scale.js.map +0 -1
@@ -1,4 +1,3 @@
1
1
  import { TAsset } from 'remotion';
2
2
  import { Assets } from './types';
3
3
  export declare const calculateAssetPositions: (frames: TAsset[][]) => Assets;
4
- //# sourceMappingURL=calculate-asset-positions.d.ts.map
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.calculateAssetPositions = void 0;
4
4
  const resolve_asset_src_1 = require("../resolve-asset-src");
5
- const split_assets_into_segments_1 = require("./split-assets-into-segments");
5
+ const flatten_volume_array_1 = require("./flatten-volume-array");
6
6
  const types_1 = require("./types");
7
7
  const areEqual = (a, b) => {
8
8
  return a.id === b.id;
@@ -61,10 +61,6 @@ const calculateAssetPositions = (frames) => {
61
61
  throw new Error('duration is unexpectedly null');
62
62
  }
63
63
  }
64
- return (0, split_assets_into_segments_1.splitAssetsIntoSegments)({
65
- assets: assets,
66
- duration: frames.length,
67
- });
64
+ return assets.map((a) => (0, flatten_volume_array_1.convertAssetToFlattenedVolume)(a));
68
65
  };
69
66
  exports.calculateAssetPositions = calculateAssetPositions;
70
- //# sourceMappingURL=calculate-asset-positions.js.map
@@ -1,2 +1 @@
1
- export declare const calculateATempo: (playbackRate: number) => string;
2
- //# sourceMappingURL=calculate-atempo.d.ts.map
1
+ export declare const calculateATempo: (playbackRate: number) => string | null;
@@ -5,10 +5,12 @@
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.calculateATempo = void 0;
7
7
  const calculateATempo = (playbackRate) => {
8
+ if (playbackRate === 1) {
9
+ return null;
10
+ }
8
11
  if (playbackRate >= 0.5 && playbackRate <= 2) {
9
12
  return `atempo=${playbackRate.toFixed(5)}`;
10
13
  }
11
14
  return `${(0, exports.calculateATempo)(Math.sqrt(playbackRate))},${(0, exports.calculateATempo)(Math.sqrt(playbackRate))}`;
12
15
  };
13
16
  exports.calculateATempo = calculateATempo;
14
- //# sourceMappingURL=calculate-atempo.js.map
@@ -5,4 +5,3 @@ export declare const convertAssetsToFileUrls: ({ assets, downloadDir, onDownload
5
5
  downloadDir: string;
6
6
  onDownload: RenderMediaOnDownload;
7
7
  }) => Promise<TAsset[][]>;
8
- //# sourceMappingURL=convert-assets-to-file-urls.d.ts.map
@@ -27,4 +27,3 @@ const convertAssetsToFileUrls = async ({ assets, downloadDir, onDownload, }) =>
27
27
  return results.flat(1);
28
28
  };
29
29
  exports.convertAssetsToFileUrls = convertAssetsToFileUrls;
30
- //# sourceMappingURL=convert-assets-to-file-urls.js.map
@@ -2,7 +2,6 @@ import { TAsset } from 'remotion';
2
2
  export declare type RenderMediaOnDownload = (src: string) => ((progress: {
3
3
  percent: number;
4
4
  }) => void) | undefined | void;
5
- export declare const validateMimeType: (mimeType: string, src: string) => void;
6
5
  export declare const markAllAssetsAsDownloaded: () => void;
7
6
  export declare const getSanitizedFilenameForAssetUrl: ({ src, downloadDir, }: {
8
7
  src: string;
@@ -13,4 +12,3 @@ export declare const downloadAndMapAssetsToFileUrl: ({ asset, downloadDir, onDow
13
12
  downloadDir: string;
14
13
  onDownload: RenderMediaOnDownload;
15
14
  }) => Promise<TAsset>;
16
- //# sourceMappingURL=download-and-map-assets-to-file.d.ts.map
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.downloadAndMapAssetsToFileUrl = exports.getSanitizedFilenameForAssetUrl = exports.markAllAssetsAsDownloaded = exports.validateMimeType = void 0;
6
+ exports.downloadAndMapAssetsToFileUrl = exports.getSanitizedFilenameForAssetUrl = exports.markAllAssetsAsDownloaded = void 0;
7
7
  const fs_1 = __importDefault(require("fs"));
8
8
  const path_1 = __importDefault(require("path"));
9
9
  const remotion_1 = require("remotion");
@@ -41,7 +41,6 @@ const validateMimeType = (mimeType, src) => {
41
41
  throw new TypeError(errMessage);
42
42
  }
43
43
  };
44
- exports.validateMimeType = validateMimeType;
45
44
  function validateBufferEncoding(potentialEncoding, dataUrl) {
46
45
  const asserted = potentialEncoding;
47
46
  const validEncodings = [
@@ -91,7 +90,7 @@ const downloadAsset = async (src, to, onDownload) => {
91
90
  throw new TypeError(errMessage);
92
91
  }
93
92
  const [mimeType, encoding] = assetDetails.split(';');
94
- (0, exports.validateMimeType)(mimeType, src);
93
+ validateMimeType(mimeType, src);
95
94
  validateBufferEncoding(encoding, src);
96
95
  const buff = Buffer.from(assetData, encoding);
97
96
  await fs_1.default.promises.writeFile(to, buff);
@@ -141,4 +140,3 @@ const downloadAndMapAssetsToFileUrl = async ({ asset, downloadDir, onDownload, }
141
140
  };
142
141
  };
143
142
  exports.downloadAndMapAssetsToFileUrl = downloadAndMapAssetsToFileUrl;
144
- //# sourceMappingURL=download-and-map-assets-to-file.js.map
@@ -5,4 +5,3 @@ export declare const downloadFile: (url: string, to: string, onProgress: ((progr
5
5
  }) => void) | undefined) => Promise<{
6
6
  sizeInBytes: number;
7
7
  }>;
8
- //# sourceMappingURL=download-file.d.ts.map
@@ -31,4 +31,3 @@ const downloadFile = (url, to, onProgress) => {
31
31
  });
32
32
  };
33
33
  exports.downloadFile = downloadFile;
34
- //# sourceMappingURL=download-file.js.map
@@ -4,11 +4,9 @@ declare type FfmpegVolumeExpression = {
4
4
  eval: FfmpegEval;
5
5
  value: string;
6
6
  };
7
- export declare const ffmpegVolumeExpression: ({ volume, multiplier, startInVideo, fps, }: {
7
+ export declare const ffmpegVolumeExpression: ({ volume, startInVideo, fps, }: {
8
8
  volume: AssetVolume;
9
- multiplier: number;
10
9
  startInVideo: number;
11
10
  fps: number;
12
11
  }) => FfmpegVolumeExpression;
13
12
  export {};
14
- //# sourceMappingURL=ffmpeg-volume-expression.d.ts.map
@@ -46,20 +46,18 @@ const ffmpegBuildVolumeExpression = (arr, fps) => {
46
46
  const [volume, frames] = first;
47
47
  return ffmpegIfOrElse(ffmpegIsOneOfFrames(frames, fps), String(volume), ffmpegBuildVolumeExpression(rest, fps));
48
48
  };
49
- // TODO: Should remove irrelevant frames
50
- const ffmpegVolumeExpression = ({ volume, multiplier, startInVideo, fps, }) => {
49
+ const ffmpegVolumeExpression = ({ volume, startInVideo, fps, }) => {
51
50
  // If it's a static volume, we return it and tell
52
51
  // FFMPEG it only has to evaluate it once
53
52
  if (typeof volume === 'number') {
54
53
  return {
55
54
  eval: 'once',
56
- value: String(Math.min(1, volume) * multiplier),
55
+ value: String(Math.min(1, volume)),
57
56
  };
58
57
  }
59
58
  if ([...new Set(volume)].length === 1) {
60
59
  return (0, exports.ffmpegVolumeExpression)({
61
60
  volume: volume[0],
62
- multiplier,
63
61
  startInVideo,
64
62
  fps,
65
63
  });
@@ -71,7 +69,7 @@ const ffmpegVolumeExpression = ({ volume, multiplier, startInVideo, fps, }) => {
71
69
  const volumeMap = {};
72
70
  volume.forEach((baseVolume, frame) => {
73
71
  // Adjust volume based on how many other tracks have not yet finished
74
- const actualVolume = (0, round_volume_to_avoid_stack_overflow_1.roundVolumeToAvoidStackOverflow)(Math.min(1, baseVolume)) * multiplier;
72
+ const actualVolume = (0, round_volume_to_avoid_stack_overflow_1.roundVolumeToAvoidStackOverflow)(Math.min(1, baseVolume));
75
73
  if (!volumeMap[actualVolume]) {
76
74
  volumeMap[actualVolume] = [];
77
75
  }
@@ -90,4 +88,3 @@ const ffmpegVolumeExpression = ({ volume, multiplier, startInVideo, fps, }) => {
90
88
  };
91
89
  };
92
90
  exports.ffmpegVolumeExpression = ffmpegVolumeExpression;
93
- //# sourceMappingURL=ffmpeg-volume-expression.js.map
@@ -1,4 +1,3 @@
1
1
  import { AssetVolume, MediaAsset } from './types';
2
2
  export declare const flattenVolumeArray: (volume: AssetVolume) => AssetVolume;
3
3
  export declare const convertAssetToFlattenedVolume: (asset: MediaAsset) => MediaAsset;
4
- //# sourceMappingURL=flatten-volume-array.d.ts.map
@@ -24,4 +24,3 @@ const convertAssetToFlattenedVolume = (asset) => {
24
24
  };
25
25
  };
26
26
  exports.convertAssetToFlattenedVolume = convertAssetToFlattenedVolume;
27
- //# sourceMappingURL=flatten-volume-array.js.map
@@ -1,2 +1,4 @@
1
- export declare function getAudioChannels(path: string): Promise<number>;
2
- //# sourceMappingURL=get-audio-channels.d.ts.map
1
+ export declare function getAudioChannelsAndDuration(path: string): Promise<{
2
+ channels: number;
3
+ duration: number | null;
4
+ }>;
@@ -3,26 +3,23 @@ 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.getAudioChannels = void 0;
6
+ exports.getAudioChannelsAndDuration = void 0;
7
7
  const execa_1 = __importDefault(require("execa"));
8
- async function getAudioChannels(path) {
8
+ async function getAudioChannelsAndDuration(path) {
9
9
  const args = [
10
10
  ['-v', 'error'],
11
- ['-show_entries', 'stream=channels'],
11
+ ['-show_entries', 'stream=channels:format=duration'],
12
12
  ['-of', 'default=nw=1'],
13
13
  [path],
14
14
  ]
15
15
  .reduce((acc, val) => acc.concat(val), [])
16
16
  .filter(Boolean);
17
17
  const task = await (0, execa_1.default)('ffprobe', args);
18
- if (!task.stdout.includes('channels=')) {
19
- return 0;
20
- }
21
- const channels = parseInt(task.stdout.replace('channels=', ''), 10);
22
- if (isNaN(channels)) {
23
- throw new TypeError('Unexpected result from ffprobe for channel probing: ');
24
- }
25
- return channels;
18
+ const channels = task.stdout.match(/channels=([0-9]+)/);
19
+ const duration = task.stdout.match(/duration=([0-9.]+)/);
20
+ return {
21
+ channels: channels ? parseInt(channels[1], 10) : 0,
22
+ duration: duration ? parseFloat(duration[1]) : null,
23
+ };
26
24
  }
27
- exports.getAudioChannels = getAudioChannels;
28
- //# sourceMappingURL=get-audio-channels.js.map
25
+ exports.getAudioChannelsAndDuration = getAudioChannelsAndDuration;
@@ -1,3 +1,2 @@
1
1
  import http from 'http';
2
2
  export declare const readFile: (url: string, redirectsSoFar?: number) => Promise<http.IncomingMessage>;
3
- //# sourceMappingURL=read-file.d.ts.map
@@ -41,4 +41,3 @@ const readFile = async (url, redirectsSoFar = 0) => {
41
41
  return file;
42
42
  };
43
43
  exports.readFile = readFile;
44
- //# sourceMappingURL=read-file.js.map
@@ -1,3 +1 @@
1
- export declare const MAX_FFMPEG_STACK_DEPTH = 98;
2
1
  export declare const roundVolumeToAvoidStackOverflow: (volume: number) => number;
3
- //# sourceMappingURL=round-volume-to-avoid-stack-overflow.d.ts.map
@@ -8,11 +8,10 @@
8
8
  // We then subtract 1 again because FFMPEG is not precise and queries out of range
9
9
  // values, for which we have to provide a default
10
10
  Object.defineProperty(exports, "__esModule", { value: true });
11
- exports.roundVolumeToAvoidStackOverflow = exports.MAX_FFMPEG_STACK_DEPTH = void 0;
12
- exports.MAX_FFMPEG_STACK_DEPTH = 98;
11
+ exports.roundVolumeToAvoidStackOverflow = void 0;
12
+ const MAX_FFMPEG_STACK_DEPTH = 98;
13
13
  const roundVolumeToAvoidStackOverflow = (volume) => {
14
- return Number((Math.round(volume * (exports.MAX_FFMPEG_STACK_DEPTH - 1)) /
15
- (exports.MAX_FFMPEG_STACK_DEPTH - 1)).toFixed(3));
14
+ return Number((Math.round(volume * (MAX_FFMPEG_STACK_DEPTH - 1)) /
15
+ (MAX_FFMPEG_STACK_DEPTH - 1)).toFixed(3));
16
16
  };
17
17
  exports.roundVolumeToAvoidStackOverflow = roundVolumeToAvoidStackOverflow;
18
- //# sourceMappingURL=round-volume-to-avoid-stack-overflow.js.map
@@ -1,2 +1 @@
1
1
  export declare const sanitizeFilename: (input: string) => string;
2
- //# sourceMappingURL=sanitize-filename.d.ts.map
@@ -56,4 +56,3 @@ const sanitizeFilename = (input) => {
56
56
  return sanitize(output, '');
57
57
  };
58
58
  exports.sanitizeFilename = sanitizeFilename;
59
- //# sourceMappingURL=sanitize-filename.js.map
@@ -1,2 +1 @@
1
1
  export declare const sanitizeFilePath: (pathToSanitize: string) => string;
2
- //# sourceMappingURL=sanitize-filepath.d.ts.map
@@ -14,4 +14,3 @@ const sanitizeFilePath = (pathToSanitize) => {
14
14
  .join(path_1.default.sep);
15
15
  };
16
16
  exports.sanitizeFilePath = sanitizeFilePath;
17
- //# sourceMappingURL=sanitize-filepath.js.map
@@ -1,2 +1 @@
1
1
  export declare function truncateUtf8Bytes(string: string, byteLength: number): string;
2
- //# sourceMappingURL=truncate-utf8-bytes.d.ts.map
@@ -35,4 +35,3 @@ function truncateUtf8Bytes(string, byteLength) {
35
35
  return string;
36
36
  }
37
37
  exports.truncateUtf8Bytes = truncateUtf8Bytes;
38
- //# sourceMappingURL=truncate-utf8-bytes.js.map
@@ -13,8 +13,4 @@ export declare type MediaAsset = Omit<UnsafeAsset, 'duration' | 'volume'> & {
13
13
  volume: AssetVolume;
14
14
  };
15
15
  export declare const uncompressMediaAsset: (allAssets: TAsset[], assetToUncompress: TAsset) => TAsset;
16
- export declare type AssetAudioDetails = {
17
- channels: number;
18
- };
19
16
  export declare type Assets = MediaAsset[];
20
- //# sourceMappingURL=types.d.ts.map
@@ -19,4 +19,3 @@ const uncompressMediaAsset = (allAssets, assetToUncompress) => {
19
19
  };
20
20
  };
21
21
  exports.uncompressMediaAsset = uncompressMediaAsset;
22
- //# sourceMappingURL=types.js.map
@@ -4,4 +4,3 @@ export declare type BrowserLog = {
4
4
  stackTrace: ConsoleMessageLocation[];
5
5
  type: ConsoleMessageType;
6
6
  };
7
- //# sourceMappingURL=browser-log.d.ts.map
@@ -1,3 +1,2 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=browser-log.js.map
@@ -1,12 +1,8 @@
1
- import { AssetAudioDetails, Assets } from './assets/types';
2
- export declare type FfmpegFilterCalculation = {
3
- filter: string;
4
- streamIndex: number;
5
- };
6
- export declare const calculateFfmpegFilters: ({ assetPositions, assetAudioDetails, fps, videoTrackCount, }: {
7
- assetPositions: Assets;
8
- assetAudioDetails: Map<string, AssetAudioDetails>;
1
+ import { MediaAsset } from './assets/types';
2
+ export declare const calculateFfmpegFilter: ({ asset, fps, durationInFrames, channels, assetDuration, }: {
3
+ asset: MediaAsset;
9
4
  fps: number;
10
- videoTrackCount: number;
11
- }) => FfmpegFilterCalculation[];
12
- //# sourceMappingURL=calculate-ffmpeg-filters.d.ts.map
5
+ durationInFrames: number;
6
+ channels: number;
7
+ assetDuration: number | null;
8
+ }) => string | null;
@@ -1,36 +1,24 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.calculateFfmpegFilters = void 0;
4
- const get_simulatenous_assets_1 = require("./assets/get-simulatenous-assets");
5
- const resolve_asset_src_1 = require("./resolve-asset-src");
3
+ exports.calculateFfmpegFilter = void 0;
4
+ const flatten_volume_array_1 = require("./assets/flatten-volume-array");
6
5
  const stringify_ffmpeg_filter_1 = require("./stringify-ffmpeg-filter");
7
- const calculateFfmpegFilters = ({ assetPositions, assetAudioDetails, fps, videoTrackCount, }) => {
8
- const withMoreThan1Channel = assetPositions.filter((pos) => {
9
- return (assetAudioDetails.get((0, resolve_asset_src_1.resolveAssetSrc)(pos.src))
10
- .channels > 0);
11
- });
12
- return withMoreThan1Channel.map((asset) => {
13
- const assetTrimLeft = (asset.trimLeft / fps).toFixed(3);
14
- const assetTrimRight = ((asset.trimLeft + asset.duration * asset.playbackRate) /
15
- fps).toFixed(3);
16
- const audioDetails = assetAudioDetails.get((0, resolve_asset_src_1.resolveAssetSrc)(asset.src));
17
- const simultaneousAssets = (0, get_simulatenous_assets_1.getSimultaneousAssets)(withMoreThan1Channel, asset);
18
- const streamIndex = assetPositions.indexOf(asset) + videoTrackCount;
19
- return {
20
- filter: (0, stringify_ffmpeg_filter_1.stringifyFfmpegFilter)({
21
- streamIndex,
22
- channels: audioDetails.channels,
23
- startInVideo: asset.startInVideo,
24
- trimLeft: assetTrimLeft,
25
- trimRight: assetTrimRight,
26
- simulatenousAssets: simultaneousAssets.length,
27
- volume: asset.volume,
28
- fps,
29
- playbackRate: asset.playbackRate,
30
- }),
31
- streamIndex,
32
- };
6
+ const calculateFfmpegFilter = ({ asset, fps, durationInFrames, channels, assetDuration, }) => {
7
+ if (channels === 0) {
8
+ return null;
9
+ }
10
+ const assetTrimLeft = asset.trimLeft / fps;
11
+ const assetTrimRight = (asset.trimLeft + asset.duration * asset.playbackRate) / fps;
12
+ return (0, stringify_ffmpeg_filter_1.stringifyFfmpegFilter)({
13
+ channels,
14
+ startInVideo: asset.startInVideo,
15
+ trimLeft: assetTrimLeft,
16
+ trimRight: assetTrimRight,
17
+ volume: (0, flatten_volume_array_1.flattenVolumeArray)(asset.volume),
18
+ fps,
19
+ playbackRate: asset.playbackRate,
20
+ durationInFrames,
21
+ assetDuration,
33
22
  });
34
23
  };
35
- exports.calculateFfmpegFilters = calculateFfmpegFilters;
36
- //# sourceMappingURL=calculate-ffmpeg-filters.js.map
24
+ exports.calculateFfmpegFilter = calculateFfmpegFilter;
@@ -1,3 +1,2 @@
1
1
  import { Codec } from 'remotion';
2
2
  export declare const canUseParallelEncoding: (codec: Codec) => boolean;
3
- //# sourceMappingURL=can-use-parallel-encoding.d.ts.map
@@ -9,4 +9,3 @@ const canUseParallelEncoding = (codec) => {
9
9
  return codec === 'h264' || codec === 'h264-mkv' || codec === 'h265';
10
10
  };
11
11
  exports.canUseParallelEncoding = canUseParallelEncoding;
12
- //# sourceMappingURL=can-use-parallel-encoding.js.map
@@ -0,0 +1 @@
1
+ export declare const chunk: <T>(input: T[], size: number) => T[][];
package/dist/chunk.js ADDED
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.chunk = void 0;
4
+ const chunk = (input, size) => {
5
+ return input.reduce((arr, item, idx) => {
6
+ return idx % size === 0
7
+ ? [...arr, [item]]
8
+ : [...arr.slice(0, -1), [...arr.slice(-1)[0], item]];
9
+ }, []);
10
+ };
11
+ exports.chunk = chunk;
@@ -7,4 +7,3 @@ export declare const combineVideos: ({ files, filelistDir, output, onProgress, n
7
7
  numberOfFrames: number;
8
8
  codec: Codec;
9
9
  }) => Promise<void>;
10
- //# sourceMappingURL=combine-videos.d.ts.map
@@ -50,4 +50,3 @@ const combineVideos = async ({ files, filelistDir, output, onProgress, numberOfF
50
50
  }
51
51
  };
52
52
  exports.combineVideos = combineVideos;
53
- //# sourceMappingURL=combine-videos.js.map
@@ -0,0 +1,6 @@
1
+ import { FfmpegExecutable } from 'remotion';
2
+ export declare const convertToPcm: ({ ffmpegExecutable, input, outName, }: {
3
+ ffmpegExecutable: FfmpegExecutable;
4
+ input: string;
5
+ outName: string;
6
+ }) => Promise<void>;
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.convertToPcm = void 0;
7
+ const execa_1 = __importDefault(require("execa"));
8
+ const sample_rate_1 = require("./sample-rate");
9
+ const convertToPcm = async ({ ffmpegExecutable, input, outName, }) => {
10
+ await (0, execa_1.default)(ffmpegExecutable !== null && ffmpegExecutable !== void 0 ? ffmpegExecutable : 'ffmpeg', [
11
+ '-i',
12
+ input,
13
+ '-c:a',
14
+ 'pcm_s16le',
15
+ '-ar',
16
+ String(sample_rate_1.DEFAULT_SAMPLE_RATE),
17
+ outName,
18
+ ]);
19
+ };
20
+ exports.convertToPcm = convertToPcm;
@@ -1,6 +1,4 @@
1
- import { FfmpegFilterCalculation } from './calculate-ffmpeg-filters';
2
- export declare const createFfmpegComplexFilter: (filters: FfmpegFilterCalculation[]) => Promise<{
1
+ export declare const createFfmpegComplexFilter: (filters: number) => Promise<{
3
2
  complexFilterFlag: [string, string] | null;
4
3
  cleanup: () => void;
5
4
  }>;
6
- //# sourceMappingURL=create-ffmpeg-complex-filter.d.ts.map
@@ -6,47 +6,21 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.createFfmpegComplexFilter = void 0;
7
7
  const fs_1 = __importDefault(require("fs"));
8
8
  const path_1 = __importDefault(require("path"));
9
+ const create_ffmpeg_merge_filter_1 = require("./create-ffmpeg-merge-filter");
10
+ const ffmpeg_filter_file_1 = require("./ffmpeg-filter-file");
9
11
  const tmp_dir_1 = require("./tmp-dir");
10
- const createMix = (filters) => {
11
- const baseFilter = filters
12
- .map((asset) => {
13
- return `[a${asset.streamIndex}]`;
14
- })
15
- .join('');
16
- const options = [
17
- // Specify the number of inputs we give
18
- `inputs=${filters.length}`,
19
- // Disable any fade in transitions when a track stops
20
- 'dropout_transition=0',
21
- // Audio track is as long as the longest input
22
- 'duration=longest',
23
- ];
24
- return `${baseFilter}amix=${options.join(':')}`;
25
- };
26
12
  const createFfmpegComplexFilter = async (filters) => {
27
- if (!filters.length) {
13
+ if (filters === 0) {
28
14
  return { complexFilterFlag: null, cleanup: () => undefined };
29
15
  }
30
- const complexFilter = [
31
- ...filters.map((f) => f.filter),
32
- createMix(filters),
33
- ].join(';');
34
- const tempPath = (0, tmp_dir_1.tmpDir)('remotion-complex-filter');
16
+ const complexFilter = (0, create_ffmpeg_merge_filter_1.createFfmpegMergeFilter)(filters);
17
+ const { file, cleanup } = await (0, ffmpeg_filter_file_1.makeFfmpegFilterFile)(complexFilter);
18
+ const tempPath = (0, tmp_dir_1.tmpDir)('remotion-complex-filter-script');
35
19
  const filterFile = path_1.default.join(tempPath, 'complex-filter.txt');
36
20
  await fs_1.default.promises.writeFile(filterFile, complexFilter);
37
21
  return {
38
- complexFilterFlag: ['-filter_complex_script', filterFile],
39
- cleanup: () => {
40
- var _a;
41
- ((_a = fs_1.default.promises.rm) !== null && _a !== void 0 ? _a : fs_1.default.promises.rmdir)(tempPath, {
42
- recursive: true,
43
- }).catch((err) => {
44
- console.error('Could not delete a temp file');
45
- console.error(err);
46
- console.error('Do you have the minimum Node.JS installed?');
47
- });
48
- },
22
+ complexFilterFlag: ['-filter_complex_script', file],
23
+ cleanup,
49
24
  };
50
25
  };
51
26
  exports.createFfmpegComplexFilter = createFfmpegComplexFilter;
52
- //# sourceMappingURL=create-ffmpeg-complex-filter.js.map
@@ -0,0 +1 @@
1
+ export declare const createFfmpegMergeFilter: (inputs: number) => string;
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createFfmpegMergeFilter = void 0;
4
+ const remotion_1 = require("remotion");
5
+ const createFfmpegMergeFilter = (inputs) => {
6
+ const leftChannel = new Array(inputs * 2)
7
+ .fill(true)
8
+ .map((_, i) => (i % 2 === 0 ? `c${i}` : null))
9
+ .filter(remotion_1.Internals.truthy)
10
+ .join('+');
11
+ const rightChannel = new Array(inputs * 2)
12
+ .fill(true)
13
+ .map((_, i) => (i % 2 === 1 ? `c${i}` : null))
14
+ .filter(remotion_1.Internals.truthy)
15
+ .join('+');
16
+ return `[0:a][1:a]amerge=inputs=${inputs},pan=stereo|c0=${leftChannel}|c1=${rightChannel}[a]`;
17
+ };
18
+ exports.createFfmpegMergeFilter = createFfmpegMergeFilter;
@@ -0,0 +1,6 @@
1
+ import { FfmpegExecutable } from 'remotion';
2
+ export declare const createSilentAudio: ({ ffmpegExecutable, numberOfSeconds, outName, }: {
3
+ ffmpegExecutable: FfmpegExecutable;
4
+ numberOfSeconds: number;
5
+ outName: string;
6
+ }) => Promise<void>;
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.createSilentAudio = void 0;
7
+ const execa_1 = __importDefault(require("execa"));
8
+ const sample_rate_1 = require("./sample-rate");
9
+ const createSilentAudio = async ({ ffmpegExecutable, numberOfSeconds, outName, }) => {
10
+ await (0, execa_1.default)(ffmpegExecutable !== null && ffmpegExecutable !== void 0 ? ffmpegExecutable : 'ffmpeg', [
11
+ '-f',
12
+ 'lavfi',
13
+ '-i',
14
+ `anullsrc=r=${sample_rate_1.DEFAULT_SAMPLE_RATE}`,
15
+ '-c:a',
16
+ 'pcm_s16le',
17
+ '-t',
18
+ String(numberOfSeconds),
19
+ '-ar',
20
+ String(sample_rate_1.DEFAULT_SAMPLE_RATE),
21
+ outName,
22
+ ]);
23
+ };
24
+ exports.createSilentAudio = createSilentAudio;
@@ -1,7 +1,6 @@
1
1
  import { openBrowser } from './open-browser';
2
2
  declare type Await<T> = T extends PromiseLike<infer U> ? U : T;
3
- export declare const cycleBrowserTabs: (puppeteerInstance: Await<ReturnType<typeof openBrowser>>) => {
3
+ export declare const cycleBrowserTabs: (puppeteerInstance: Await<ReturnType<typeof openBrowser>>, concurrency: number) => {
4
4
  stopCycling: () => void;
5
5
  };
6
6
  export {};
7
- //# sourceMappingURL=cycle-browser-tabs.d.ts.map
@@ -1,7 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.cycleBrowserTabs = void 0;
4
- const cycleBrowserTabs = (puppeteerInstance) => {
4
+ const cycleBrowserTabs = (puppeteerInstance, concurrency) => {
5
+ if (concurrency <= 1) {
6
+ return {
7
+ stopCycling: () => undefined,
8
+ };
9
+ }
5
10
  let interval = null;
6
11
  let i = 0;
7
12
  const set = () => {
@@ -33,4 +38,3 @@ const cycleBrowserTabs = (puppeteerInstance) => {
33
38
  };
34
39
  };
35
40
  exports.cycleBrowserTabs = cycleBrowserTabs;
36
- //# sourceMappingURL=cycle-browser-tabs.js.map
@@ -1,3 +1,2 @@
1
1
  import { UnsymbolicatedStackFrame } from './parse-browser-error-stack';
2
2
  export declare const parseDelayRenderEmbeddedStack: (message: string) => UnsymbolicatedStackFrame[] | null;
3
- //# sourceMappingURL=delay-render-embedded-stack.d.ts.map