@remotion/renderer 4.0.0-oops.3 → 4.0.0-prefetch.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (273) hide show
  1. package/dist/assets/calculate-asset-positions.d.ts +2 -2
  2. package/dist/assets/convert-assets-to-file-urls.d.ts +5 -4
  3. package/dist/assets/convert-assets-to-file-urls.js +2 -2
  4. package/dist/assets/download-and-map-assets-to-file.d.ts +16 -6
  5. package/dist/assets/download-and-map-assets-to-file.js +152 -45
  6. package/dist/assets/download-file.d.ts +10 -5
  7. package/dist/assets/download-file.js +20 -5
  8. package/dist/assets/download-map.d.ts +64 -0
  9. package/dist/assets/download-map.js +73 -0
  10. package/dist/assets/ffmpeg-volume-expression.d.ts +3 -3
  11. package/dist/assets/ffmpeg-volume-expression.js +16 -14
  12. package/dist/assets/flatten-volume-array.d.ts +1 -1
  13. package/dist/assets/get-audio-channels.d.ts +3 -4
  14. package/dist/assets/get-audio-channels.js +14 -4
  15. package/dist/assets/get-video-stream-duration.d.ts +4 -0
  16. package/dist/assets/get-video-stream-duration.js +59 -0
  17. package/dist/assets/read-file.js +4 -1
  18. package/dist/assets/types.d.ts +1 -1
  19. package/dist/browser/Browser.d.ts +60 -0
  20. package/dist/browser/Browser.js +218 -0
  21. package/dist/browser/BrowserConnector.d.ts +19 -0
  22. package/dist/browser/BrowserConnector.js +17 -0
  23. package/dist/browser/BrowserFetcher.d.ts +89 -0
  24. package/dist/browser/BrowserFetcher.js +510 -0
  25. package/dist/browser/BrowserPage.d.ts +74 -0
  26. package/dist/browser/BrowserPage.js +283 -0
  27. package/dist/browser/BrowserRunner.d.ts +39 -0
  28. package/dist/browser/BrowserRunner.js +308 -0
  29. package/dist/browser/Connection.d.ts +42 -0
  30. package/dist/browser/Connection.js +242 -0
  31. package/dist/browser/ConsoleMessage.d.ts +31 -0
  32. package/dist/browser/ConsoleMessage.js +48 -0
  33. package/dist/browser/DOMWorld.d.ts +52 -0
  34. package/dist/browser/DOMWorld.js +272 -0
  35. package/dist/browser/Errors.d.ts +25 -0
  36. package/dist/browser/Errors.js +35 -0
  37. package/dist/browser/EvalTypes.d.ts +27 -0
  38. package/dist/browser/EvalTypes.js +17 -0
  39. package/dist/browser/EventEmitter.d.ts +23 -0
  40. package/dist/browser/EventEmitter.js +53 -0
  41. package/dist/browser/ExecutionContext.d.ts +34 -0
  42. package/dist/browser/ExecutionContext.js +174 -0
  43. package/dist/browser/FrameManager.d.ts +93 -0
  44. package/dist/browser/FrameManager.js +496 -0
  45. package/dist/browser/HTTPRequest.d.ts +28 -0
  46. package/dist/browser/HTTPRequest.js +37 -0
  47. package/dist/browser/HTTPResponse.d.ts +21 -0
  48. package/dist/browser/HTTPResponse.js +41 -0
  49. package/dist/browser/JSHandle.d.ts +35 -0
  50. package/dist/browser/JSHandle.js +90 -0
  51. package/dist/browser/LaunchOptions.d.ts +37 -0
  52. package/dist/browser/LaunchOptions.js +17 -0
  53. package/dist/browser/Launcher.d.ts +9 -0
  54. package/dist/browser/Launcher.js +504 -0
  55. package/dist/browser/LifecycleWatcher.d.ts +29 -0
  56. package/dist/browser/LifecycleWatcher.js +180 -0
  57. package/dist/browser/NetworkEventManager.d.ts +33 -0
  58. package/dist/browser/NetworkEventManager.js +81 -0
  59. package/dist/browser/NetworkManager.d.ts +34 -0
  60. package/dist/browser/NetworkManager.js +231 -0
  61. package/dist/browser/NodeWebSocketTransport.d.ts +17 -0
  62. package/dist/browser/NodeWebSocketTransport.js +87 -0
  63. package/dist/browser/Product.d.ts +16 -0
  64. package/dist/browser/Product.js +17 -0
  65. package/dist/browser/PuppeteerNode.d.ts +40 -0
  66. package/dist/browser/PuppeteerNode.js +81 -0
  67. package/dist/browser/PuppeteerViewport.d.ts +5 -0
  68. package/dist/browser/PuppeteerViewport.js +2 -0
  69. package/dist/browser/ScreenshotOptions.d.ts +14 -0
  70. package/dist/browser/ScreenshotOptions.js +2 -0
  71. package/dist/browser/Target.d.ts +61 -0
  72. package/dist/browser/Target.js +146 -0
  73. package/dist/browser/TaskQueue.d.ts +20 -0
  74. package/dist/browser/TaskQueue.js +47 -0
  75. package/dist/browser/TimeoutSettings.d.ts +24 -0
  76. package/dist/browser/TimeoutSettings.js +62 -0
  77. package/dist/browser/assert.d.ts +1 -0
  78. package/dist/browser/assert.js +9 -0
  79. package/dist/browser/create-browser-fetcher.d.ts +17 -0
  80. package/dist/browser/create-browser-fetcher.js +119 -0
  81. package/dist/browser/devtools-commands.d.ts +270 -0
  82. package/dist/browser/devtools-commands.js +2 -0
  83. package/dist/browser/devtools-types.d.ts +1122 -0
  84. package/dist/browser/devtools-types.js +2 -0
  85. package/dist/browser/get-download-destination.d.ts +1 -0
  86. package/dist/browser/get-download-destination.js +38 -0
  87. package/dist/browser/mitt/index.d.ts +22 -0
  88. package/dist/browser/mitt/index.js +49 -0
  89. package/dist/browser/node.d.ts +2 -0
  90. package/dist/browser/node.js +9 -0
  91. package/dist/browser/revisions.d.ts +21 -0
  92. package/dist/browser/revisions.js +22 -0
  93. package/dist/browser/util.d.ts +47 -0
  94. package/dist/browser/util.js +169 -0
  95. package/dist/browser-executable.d.ts +1 -0
  96. package/dist/browser-executable.js +2 -0
  97. package/dist/browser-log.d.ts +1 -1
  98. package/dist/browser.d.ts +2 -0
  99. package/dist/browser.js +4 -0
  100. package/dist/calculate-ffmpeg-filters.d.ts +1 -1
  101. package/dist/calculate-ffmpeg-filters.js +2 -2
  102. package/dist/calculate-sar-dar-pixels.d.ts +9 -0
  103. package/dist/calculate-sar-dar-pixels.js +19 -0
  104. package/dist/can-use-parallel-encoding.d.ts +1 -1
  105. package/dist/can-use-parallel-encoding.js +2 -2
  106. package/dist/codec-supports-media.d.ts +8 -0
  107. package/dist/codec-supports-media.js +56 -0
  108. package/dist/codec.d.ts +4 -0
  109. package/dist/codec.js +16 -0
  110. package/dist/combine-videos.d.ts +4 -2
  111. package/dist/combine-videos.js +19 -5
  112. package/dist/compress-assets.d.ts +7 -0
  113. package/dist/compress-assets.js +25 -0
  114. package/dist/convert-number-of-gif-loops-to-ffmpeg.d.ts +1 -0
  115. package/dist/convert-number-of-gif-loops-to-ffmpeg.js +17 -0
  116. package/dist/convert-to-pcm.d.ts +1 -1
  117. package/dist/create-ffmpeg-complex-filter.d.ts +6 -2
  118. package/dist/create-ffmpeg-complex-filter.js +2 -11
  119. package/dist/create-ffmpeg-merge-filter.js +3 -3
  120. package/dist/create-silent-audio.d.ts +1 -1
  121. package/dist/crf.d.ts +5 -0
  122. package/dist/crf.js +64 -0
  123. package/dist/cycle-browser-tabs.d.ts +3 -2
  124. package/dist/cycle-browser-tabs.js +14 -2
  125. package/dist/delay-render-embedded-stack.d.ts +1 -1
  126. package/dist/ensure-frames-in-order.d.ts +1 -1
  127. package/dist/ensure-frames-in-order.js +3 -2
  128. package/dist/ensure-presentation-timestamp.d.ts +2 -0
  129. package/dist/ensure-presentation-timestamp.js +69 -0
  130. package/dist/error-handling/handle-javascript-exception.d.ts +2 -2
  131. package/dist/error-handling/handle-javascript-exception.js +3 -4
  132. package/dist/error-handling/symbolicate-error.d.ts +1 -1
  133. package/dist/error-handling/symbolicateable-error.d.ts +1 -1
  134. package/dist/extract-frame-from-video.d.ts +15 -0
  135. package/dist/extract-frame-from-video.js +277 -0
  136. package/dist/ffmpeg-executable.d.ts +1 -0
  137. package/dist/ffmpeg-executable.js +2 -0
  138. package/dist/ffmpeg-filter-file.d.ts +2 -1
  139. package/dist/ffmpeg-filter-file.js +4 -6
  140. package/dist/frame-range.d.ts +2 -0
  141. package/dist/frame-range.js +49 -0
  142. package/dist/frame-to-ffmpeg-timestamp.d.ts +1 -0
  143. package/dist/frame-to-ffmpeg-timestamp.js +8 -0
  144. package/dist/get-audio-codec-name.d.ts +1 -1
  145. package/dist/get-audio-codec-name.js +2 -2
  146. package/dist/get-browser-instance.d.ts +4 -3
  147. package/dist/get-browser-instance.js +2 -2
  148. package/dist/get-codec-name.d.ts +1 -1
  149. package/dist/get-codec-name.js +5 -2
  150. package/dist/get-compositions.d.ts +15 -5
  151. package/dist/get-compositions.js +35 -11
  152. package/dist/get-duration-from-frame-range.d.ts +1 -2
  153. package/dist/get-duration-from-frame-range.js +13 -9
  154. package/dist/get-extension-from-codec.d.ts +2 -2
  155. package/dist/get-extension-from-codec.js +5 -0
  156. package/dist/get-extension-of-filename.d.ts +1 -1
  157. package/dist/get-extension-of-filename.js +3 -0
  158. package/dist/get-frame-padded-index.d.ts +14 -0
  159. package/dist/get-frame-padded-index.js +33 -0
  160. package/dist/get-frame-to-render.d.ts +1 -1
  161. package/dist/get-local-browser-executable.d.ts +2 -1
  162. package/dist/get-local-browser-executable.js +7 -5
  163. package/dist/get-port.js +30 -37
  164. package/dist/get-prores-profile-name.d.ts +2 -1
  165. package/dist/get-video-info.d.ts +3 -0
  166. package/dist/get-video-info.js +49 -0
  167. package/dist/get-video-threads-flag.d.ts +1 -0
  168. package/dist/get-video-threads-flag.js +18 -0
  169. package/dist/guess-extension-for-media.d.ts +1 -0
  170. package/dist/guess-extension-for-media.js +27 -0
  171. package/dist/image-format.d.ts +6 -1
  172. package/dist/image-format.js +25 -1
  173. package/dist/index.d.ts +94 -20
  174. package/dist/index.js +93 -6
  175. package/dist/is-audio-codec.d.ts +2 -0
  176. package/dist/is-audio-codec.js +7 -0
  177. package/dist/is-beyond-last-frame.d.ts +3 -0
  178. package/dist/is-beyond-last-frame.js +12 -0
  179. package/dist/last-frame-from-video-cache.d.ts +16 -0
  180. package/dist/last-frame-from-video-cache.js +55 -0
  181. package/dist/log-level.d.ts +4 -0
  182. package/dist/log-level.js +15 -0
  183. package/dist/make-cancel-signal.d.ts +7 -0
  184. package/dist/make-cancel-signal.js +25 -0
  185. package/dist/merge-audio-track.d.ts +3 -1
  186. package/dist/merge-audio-track.js +14 -8
  187. package/dist/mime-db.d.ts +6 -0
  188. package/dist/mime-db.js +8636 -0
  189. package/dist/mime-types.d.ts +3 -0
  190. package/dist/mime-types.js +94 -0
  191. package/dist/offthread-video-server.d.ts +17 -0
  192. package/dist/offthread-video-server.js +86 -0
  193. package/dist/open-browser.d.ts +10 -7
  194. package/dist/open-browser.js +63 -20
  195. package/dist/overwrite.d.ts +1 -0
  196. package/dist/overwrite.js +4 -0
  197. package/dist/perf.d.ts +5 -0
  198. package/dist/perf.js +35 -0
  199. package/dist/pixel-format.d.ts +5 -0
  200. package/dist/pixel-format.js +26 -0
  201. package/dist/prepare-server.d.ts +14 -2
  202. package/dist/prepare-server.js +38 -5
  203. package/dist/preprocess-audio-track.d.ts +5 -2
  204. package/dist/preprocess-audio-track.js +3 -3
  205. package/dist/prespawn-ffmpeg.d.ts +7 -1
  206. package/dist/prespawn-ffmpeg.js +20 -16
  207. package/dist/prestitcher-memory-usage.d.ts +12 -0
  208. package/dist/prestitcher-memory-usage.js +30 -0
  209. package/dist/prores-profile.d.ts +5 -0
  210. package/dist/prores-profile.js +23 -0
  211. package/dist/provide-screenshot.d.ts +4 -5
  212. package/dist/provide-screenshot.js +1 -2
  213. package/dist/puppeteer-evaluate.d.ts +1 -1
  214. package/dist/puppeteer-evaluate.js +3 -4
  215. package/dist/puppeteer-screenshot.d.ts +3 -3
  216. package/dist/puppeteer-screenshot.js +7 -5
  217. package/dist/quality.d.ts +1 -0
  218. package/dist/quality.js +21 -0
  219. package/dist/render-frames.d.ts +24 -8
  220. package/dist/render-frames.js +153 -65
  221. package/dist/render-media.d.ts +35 -9
  222. package/dist/render-media.js +194 -70
  223. package/dist/render-still.d.ts +25 -7
  224. package/dist/render-still.js +91 -26
  225. package/dist/screenshot-dom-element.d.ts +6 -8
  226. package/dist/screenshot-dom-element.js +3 -6
  227. package/dist/screenshot-task.d.ts +3 -3
  228. package/dist/screenshot-task.js +36 -23
  229. package/dist/seek-to-frame.d.ts +2 -2
  230. package/dist/seek-to-frame.js +2 -2
  231. package/dist/serve-handler/index.d.ts +4 -0
  232. package/dist/serve-handler/index.js +204 -0
  233. package/dist/serve-handler/is-path-inside.d.ts +1 -0
  234. package/dist/serve-handler/is-path-inside.js +27 -0
  235. package/dist/serve-handler/range-parser.d.ts +13 -0
  236. package/dist/serve-handler/range-parser.js +57 -0
  237. package/dist/serve-static.d.ts +11 -3
  238. package/dist/serve-static.js +37 -7
  239. package/dist/set-props-and-env.d.ts +6 -2
  240. package/dist/set-props-and-env.js +65 -12
  241. package/dist/stitch-frames-to-video.d.ts +17 -5
  242. package/dist/stitch-frames-to-video.js +130 -46
  243. package/dist/stringify-ffmpeg-filter.d.ts +2 -2
  244. package/dist/stringify-ffmpeg-filter.js +12 -7
  245. package/dist/symbolicate-stacktrace.d.ts +1 -1
  246. package/dist/symbolicate-stacktrace.js +3 -3
  247. package/dist/tmp-dir.js +5 -1
  248. package/dist/truthy.d.ts +3 -0
  249. package/dist/truthy.js +7 -0
  250. package/dist/types.d.ts +1 -1
  251. package/dist/validate-concurrency.d.ts +1 -0
  252. package/dist/validate-concurrency.js +24 -0
  253. package/dist/validate-even-dimensions-with-codec.d.ts +1 -1
  254. package/dist/validate-even-dimensions-with-codec.js +2 -2
  255. package/dist/validate-every-nth-frame.d.ts +1 -0
  256. package/dist/validate-every-nth-frame.js +21 -0
  257. package/dist/validate-ffmpeg.js +2 -3
  258. package/dist/validate-frame.d.ts +1 -0
  259. package/dist/validate-frame.js +24 -0
  260. package/dist/validate-opengl-renderer.d.ts +5 -0
  261. package/dist/validate-opengl-renderer.js +15 -0
  262. package/dist/validate-output-filename.d.ts +1 -1
  263. package/dist/validate-output-filename.js +5 -0
  264. package/dist/wait-for-symbolication-error-to-be-done.d.ts +3 -0
  265. package/dist/wait-for-symbolication-error-to-be-done.js +34 -0
  266. package/dist/ws/ws-types.d.ts +14 -0
  267. package/dist/ws/ws-types.js +10 -0
  268. package/package.json +13 -16
  269. package/tsconfig.json +2 -2
  270. package/types/ws/index.d.ts +509 -0
  271. package/vitest.config.ts +8 -0
  272. package/dist/make-assets-download-dir.d.ts +0 -1
  273. package/dist/make-assets-download-dir.js +0 -8
package/dist/index.js CHANGED
@@ -1,37 +1,90 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __importDefault = (this && this.__importDefault) || function (mod) {
26
+ return (mod && mod.__esModule) ? mod : { "default": mod };
27
+ };
2
28
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.RenderInternals = exports.stitchFramesToVideo = exports.renderStill = exports.renderMedia = exports.renderFrames = exports.openBrowser = exports.getCompositions = exports.ErrorWithStackFrame = exports.combineVideos = void 0;
29
+ exports.RenderInternals = exports.stitchFramesToVideo = exports.renderStill = exports.renderMedia = exports.renderFrames = exports.openBrowser = exports.makeCancelSignal = exports.validImageFormats = exports.validateSelectedPixelFormatAndImageFormatCombination = exports.getCompositions = exports.ErrorWithStackFrame = exports.combineVideos = void 0;
30
+ const execa_1 = __importDefault(require("execa"));
4
31
  const download_file_1 = require("./assets/download-file");
32
+ const download_map_1 = require("./assets/download-map");
33
+ const browser_1 = require("./browser");
34
+ const TimeoutSettings_1 = require("./browser/TimeoutSettings");
35
+ const can_use_parallel_encoding_1 = require("./can-use-parallel-encoding");
36
+ const codec_1 = require("./codec");
37
+ const crf_1 = require("./crf");
5
38
  const delete_directory_1 = require("./delete-directory");
6
39
  const ensure_output_directory_1 = require("./ensure-output-directory");
7
40
  const symbolicate_error_1 = require("./error-handling/symbolicate-error");
8
41
  const symbolicateable_error_1 = require("./error-handling/symbolicateable-error");
9
42
  const ffmpeg_flags_1 = require("./ffmpeg-flags");
43
+ const frame_range_1 = require("./frame-range");
10
44
  const get_concurrency_1 = require("./get-concurrency");
11
45
  const get_duration_from_frame_range_1 = require("./get-duration-from-frame-range");
12
46
  const get_extension_from_codec_1 = require("./get-extension-from-codec");
13
47
  const get_extension_of_filename_1 = require("./get-extension-of-filename");
14
48
  const get_frame_to_render_1 = require("./get-frame-to-render");
15
49
  const get_local_browser_executable_1 = require("./get-local-browser-executable");
50
+ const get_port_1 = require("./get-port");
51
+ const image_format_1 = require("./image-format");
52
+ const is_audio_codec_1 = require("./is-audio-codec");
16
53
  const is_serve_url_1 = require("./is-serve-url");
17
- const make_assets_download_dir_1 = require("./make-assets-download-dir");
54
+ const log_level_1 = require("./log-level");
55
+ const mime_types_1 = require("./mime-types");
18
56
  const normalize_serve_url_1 = require("./normalize-serve-url");
19
57
  const open_browser_1 = require("./open-browser");
58
+ const overwrite_1 = require("./overwrite");
20
59
  const parse_browser_error_stack_1 = require("./parse-browser-error-stack");
21
- const prepare_server_1 = require("./prepare-server");
60
+ const perf = __importStar(require("./perf"));
61
+ const pixel_format_1 = require("./pixel-format");
62
+ const prores_profile_1 = require("./prores-profile");
63
+ const quality_1 = require("./quality");
64
+ const is_path_inside_1 = require("./serve-handler/is-path-inside");
22
65
  const serve_static_1 = require("./serve-static");
23
66
  const stitch_frames_to_video_1 = require("./stitch-frames-to-video");
24
67
  const tmp_dir_1 = require("./tmp-dir");
68
+ const validate_concurrency_1 = require("./validate-concurrency");
25
69
  const validate_even_dimensions_with_codec_1 = require("./validate-even-dimensions-with-codec");
70
+ const validate_every_nth_frame_1 = require("./validate-every-nth-frame");
26
71
  const validate_ffmpeg_1 = require("./validate-ffmpeg");
72
+ const validate_frame_1 = require("./validate-frame");
73
+ const validate_opengl_renderer_1 = require("./validate-opengl-renderer");
27
74
  const validate_puppeteer_timeout_1 = require("./validate-puppeteer-timeout");
28
75
  const validate_scale_1 = require("./validate-scale");
76
+ const wait_for_symbolication_error_to_be_done_1 = require("./wait-for-symbolication-error-to-be-done");
29
77
  var combine_videos_1 = require("./combine-videos");
30
78
  Object.defineProperty(exports, "combineVideos", { enumerable: true, get: function () { return combine_videos_1.combineVideos; } });
31
79
  var handle_javascript_exception_1 = require("./error-handling/handle-javascript-exception");
32
80
  Object.defineProperty(exports, "ErrorWithStackFrame", { enumerable: true, get: function () { return handle_javascript_exception_1.ErrorWithStackFrame; } });
33
81
  var get_compositions_1 = require("./get-compositions");
34
82
  Object.defineProperty(exports, "getCompositions", { enumerable: true, get: function () { return get_compositions_1.getCompositions; } });
83
+ var image_format_2 = require("./image-format");
84
+ Object.defineProperty(exports, "validateSelectedPixelFormatAndImageFormatCombination", { enumerable: true, get: function () { return image_format_2.validateSelectedPixelFormatAndImageFormatCombination; } });
85
+ Object.defineProperty(exports, "validImageFormats", { enumerable: true, get: function () { return image_format_2.validImageFormats; } });
86
+ var make_cancel_signal_1 = require("./make-cancel-signal");
87
+ Object.defineProperty(exports, "makeCancelSignal", { enumerable: true, get: function () { return make_cancel_signal_1.makeCancelSignal; } });
35
88
  var open_browser_2 = require("./open-browser");
36
89
  Object.defineProperty(exports, "openBrowser", { enumerable: true, get: function () { return open_browser_2.openBrowser; } });
37
90
  var render_frames_1 = require("./render-frames");
@@ -55,10 +108,8 @@ exports.RenderInternals = {
55
108
  normalizeServeUrl: normalize_serve_url_1.normalizeServeUrl,
56
109
  spawnFfmpeg: stitch_frames_to_video_1.spawnFfmpeg,
57
110
  getFileExtensionFromCodec: get_extension_from_codec_1.getFileExtensionFromCodec,
58
- makeAssetsDownloadTmpDir: make_assets_download_dir_1.makeAssetsDownloadTmpDir,
59
111
  tmpDir: tmp_dir_1.tmpDir,
60
112
  deleteDirectory: delete_directory_1.deleteDirectory,
61
- prepareServer: prepare_server_1.prepareServer,
62
113
  isServeUrl: is_serve_url_1.isServeUrl,
63
114
  ensureOutputDirectory: ensure_output_directory_1.ensureOutputDirectory,
64
115
  getRealFrameRange: get_frame_to_render_1.getRealFrameRange,
@@ -69,6 +120,42 @@ exports.RenderInternals = {
69
120
  parseStack: parse_browser_error_stack_1.parseStack,
70
121
  symbolicateError: symbolicate_error_1.symbolicateError,
71
122
  SymbolicateableError: symbolicateable_error_1.SymbolicateableError,
72
- getDurationFromFrameRange: get_duration_from_frame_range_1.getDurationFromFrameRange,
123
+ getFramesToRender: get_duration_from_frame_range_1.getFramesToRender,
73
124
  getExtensionOfFilename: get_extension_of_filename_1.getExtensionOfFilename,
125
+ getDesiredPort: get_port_1.getDesiredPort,
126
+ isPathInside: is_path_inside_1.isPathInside,
127
+ execa: execa_1.default,
128
+ registerErrorSymbolicationLock: wait_for_symbolication_error_to_be_done_1.registerErrorSymbolicationLock,
129
+ unlockErrorSymbolicationLock: wait_for_symbolication_error_to_be_done_1.unlockErrorSymbolicationLock,
130
+ canUseParallelEncoding: can_use_parallel_encoding_1.canUseParallelEncoding,
131
+ mimeContentType: mime_types_1.mimeContentType,
132
+ mimeLookup: mime_types_1.mimeLookup,
133
+ validateConcurrency: validate_concurrency_1.validateConcurrency,
134
+ validPixelFormats: pixel_format_1.validPixelFormats,
135
+ DEFAULT_BROWSER: browser_1.DEFAULT_BROWSER,
136
+ validateFrameRange: frame_range_1.validateFrameRange,
137
+ DEFAULT_OPENGL_RENDERER: validate_opengl_renderer_1.DEFAULT_OPENGL_RENDERER,
138
+ validateOpenGlRenderer: validate_opengl_renderer_1.validateOpenGlRenderer,
139
+ getDefaultCrfForCodec: crf_1.getDefaultCrfForCodec,
140
+ validateSelectedCrfAndCodecCombination: crf_1.validateSelectedCrfAndCodecCombination,
141
+ validImageFormats: image_format_1.validImageFormats,
142
+ validCodecs: codec_1.validCodecs,
143
+ DEFAULT_OVERWRITE: overwrite_1.DEFAULT_OVERWRITE,
144
+ DEFAULT_PIXEL_FORMAT: pixel_format_1.DEFAULT_PIXEL_FORMAT,
145
+ validateQuality: quality_1.validateQuality,
146
+ validateFrame: validate_frame_1.validateFrame,
147
+ DEFAULT_TIMEOUT: TimeoutSettings_1.DEFAULT_TIMEOUT,
148
+ getValidCrfRanges: crf_1.getValidCrfRanges,
149
+ validateSelectedPixelFormatAndCodecCombination: pixel_format_1.validateSelectedPixelFormatAndCodecCombination,
150
+ validateSelectedCodecAndProResCombination: prores_profile_1.validateSelectedCodecAndProResCombination,
151
+ validateSelectedPixelFormatAndImageFormatCombination: image_format_1.validateSelectedPixelFormatAndImageFormatCombination,
152
+ DEFAULT_CODEC: codec_1.DEFAULT_CODEC,
153
+ isAudioCodec: is_audio_codec_1.isAudioCodec,
154
+ logLevels: log_level_1.logLevels,
155
+ isEqualOrBelowLogLevel: log_level_1.isEqualOrBelowLogLevel,
156
+ isValidLogLevel: log_level_1.isValidLogLevel,
157
+ validateEveryNthFrame: validate_every_nth_frame_1.validateEveryNthFrame,
158
+ perf,
159
+ makeDownloadMap: download_map_1.makeDownloadMap,
160
+ cleanDownloadMap: download_map_1.cleanDownloadMap,
74
161
  };
@@ -0,0 +1,2 @@
1
+ import type { Codec } from './codec';
2
+ export declare const isAudioCodec: (codec: Codec | undefined) => boolean;
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isAudioCodec = void 0;
4
+ const isAudioCodec = (codec) => {
5
+ return codec === 'mp3' || codec === 'aac' || codec === 'wav';
6
+ };
7
+ exports.isAudioCodec = isAudioCodec;
@@ -0,0 +1,3 @@
1
+ import type { DownloadMap } from './assets/download-map';
2
+ export declare const isBeyondLastFrame: (downloadMap: DownloadMap, src: string, time: number) => boolean | 0;
3
+ export declare const markAsBeyondLastFrame: (downloadMap: DownloadMap, src: string, time: number) => void;
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.markAsBeyondLastFrame = exports.isBeyondLastFrame = void 0;
4
+ const isBeyondLastFrame = (downloadMap, src, time) => {
5
+ return (downloadMap.isBeyondLastFrameMap[src] &&
6
+ time >= downloadMap.isBeyondLastFrameMap[src]);
7
+ };
8
+ exports.isBeyondLastFrame = isBeyondLastFrame;
9
+ const markAsBeyondLastFrame = (downloadMap, src, time) => {
10
+ downloadMap.isBeyondLastFrameMap[src] = time;
11
+ };
12
+ exports.markAsBeyondLastFrame = markAsBeyondLastFrame;
@@ -0,0 +1,16 @@
1
+ import type { OffthreadVideoImageFormat } from 'remotion';
2
+ import type { DownloadMap, SpecialVCodecForTransparency } from './assets/download-map';
3
+ import type { FfmpegExecutable } from './ffmpeg-executable';
4
+ export declare type LastFrameOptions = {
5
+ ffmpegExecutable: FfmpegExecutable;
6
+ ffprobeExecutable: FfmpegExecutable;
7
+ offset: number;
8
+ src: string;
9
+ specialVCodecForTransparency: SpecialVCodecForTransparency;
10
+ imageFormat: OffthreadVideoImageFormat;
11
+ needsResize: [number, number] | null;
12
+ downloadMap: DownloadMap;
13
+ };
14
+ export declare const setLastFrameInCache: (options: LastFrameOptions, data: Buffer) => void;
15
+ export declare const getLastFrameFromCache: (options: LastFrameOptions) => Buffer | null;
16
+ export declare const clearLastFileCache: (downloadMap: DownloadMap) => void;
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ // OffthreadVideo requires sometimes that the last frame of a video gets extracted, however, this can be slow. We allocate a cache for it but that can be garbage collected
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.clearLastFileCache = exports.getLastFrameFromCache = exports.setLastFrameInCache = void 0;
5
+ const MAX_CACHE_SIZE = 50 * 1024 * 1024; // 50MB
6
+ let bufferSize = 0;
7
+ const makeLastFrameCacheKey = (options) => {
8
+ return [
9
+ options.ffmpegExecutable,
10
+ options.offset,
11
+ options.src,
12
+ options.imageFormat,
13
+ options.downloadMap.id,
14
+ ].join('-');
15
+ };
16
+ const setLastFrameInCache = (options, data) => {
17
+ const key = makeLastFrameCacheKey(options);
18
+ if (options.downloadMap.lastFrameMap[key]) {
19
+ bufferSize -= options.downloadMap.lastFrameMap[key].data.byteLength;
20
+ }
21
+ options.downloadMap.lastFrameMap[key] = { data, lastAccessed: Date.now() };
22
+ bufferSize += data.byteLength;
23
+ ensureMaxSize(options.downloadMap);
24
+ };
25
+ exports.setLastFrameInCache = setLastFrameInCache;
26
+ const getLastFrameFromCache = (options) => {
27
+ var _a;
28
+ const key = makeLastFrameCacheKey(options);
29
+ if (!options.downloadMap.lastFrameMap[key]) {
30
+ return null;
31
+ }
32
+ options.downloadMap.lastFrameMap[key].lastAccessed = Date.now();
33
+ return (_a = options.downloadMap.lastFrameMap[key].data) !== null && _a !== void 0 ? _a : null;
34
+ };
35
+ exports.getLastFrameFromCache = getLastFrameFromCache;
36
+ const removedLastFrameFromCache = (key, downloadMap) => {
37
+ if (!downloadMap.lastFrameMap[key]) {
38
+ return;
39
+ }
40
+ bufferSize -= downloadMap.lastFrameMap[key].data.byteLength;
41
+ delete downloadMap.lastFrameMap[key];
42
+ };
43
+ const ensureMaxSize = (downloadMap) => {
44
+ // eslint-disable-next-line no-unmodified-loop-condition
45
+ while (bufferSize > MAX_CACHE_SIZE) {
46
+ const earliest = Object.entries(downloadMap.lastFrameMap).sort((a, b) => {
47
+ return a[1].lastAccessed - b[1].lastAccessed;
48
+ })[0];
49
+ removedLastFrameFromCache(earliest[0], downloadMap);
50
+ }
51
+ };
52
+ const clearLastFileCache = (downloadMap) => {
53
+ downloadMap.lastFrameMap = {};
54
+ };
55
+ exports.clearLastFileCache = clearLastFileCache;
@@ -0,0 +1,4 @@
1
+ export declare const logLevels: readonly ["verbose", "info", "warn", "error"];
2
+ export declare type LogLevel = typeof logLevels[number];
3
+ export declare const isValidLogLevel: (level: string) => boolean;
4
+ export declare const isEqualOrBelowLogLevel: (currentLevel: LogLevel, level: LogLevel) => boolean;
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isEqualOrBelowLogLevel = exports.isValidLogLevel = exports.logLevels = void 0;
4
+ exports.logLevels = ['verbose', 'info', 'warn', 'error'];
5
+ const getNumberForLogLevel = (level) => {
6
+ return exports.logLevels.indexOf(level);
7
+ };
8
+ const isValidLogLevel = (level) => {
9
+ return getNumberForLogLevel(level) > -1;
10
+ };
11
+ exports.isValidLogLevel = isValidLogLevel;
12
+ const isEqualOrBelowLogLevel = (currentLevel, level) => {
13
+ return getNumberForLogLevel(currentLevel) <= getNumberForLogLevel(level);
14
+ };
15
+ exports.isEqualOrBelowLogLevel = isEqualOrBelowLogLevel;
@@ -0,0 +1,7 @@
1
+ declare type Callback = () => void;
2
+ export declare type CancelSignal = (callback: Callback) => void;
3
+ export declare const makeCancelSignal: () => {
4
+ cancelSignal: CancelSignal;
5
+ cancel: () => void;
6
+ };
7
+ export {};
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.makeCancelSignal = void 0;
4
+ const makeCancelSignal = () => {
5
+ const callbacks = [];
6
+ let cancelled = false;
7
+ return {
8
+ cancelSignal: (callback) => {
9
+ callbacks.push(callback);
10
+ if (cancelled) {
11
+ callback();
12
+ }
13
+ },
14
+ cancel: () => {
15
+ if (cancelled) {
16
+ return;
17
+ }
18
+ callbacks.forEach((cb) => {
19
+ cb();
20
+ });
21
+ cancelled = true;
22
+ },
23
+ };
24
+ };
25
+ exports.makeCancelSignal = makeCancelSignal;
@@ -1,9 +1,11 @@
1
- import { FfmpegExecutable } from 'remotion';
1
+ import type { DownloadMap } from './assets/download-map';
2
+ import type { FfmpegExecutable } from './ffmpeg-executable';
2
3
  declare type Options = {
3
4
  ffmpegExecutable: FfmpegExecutable;
4
5
  files: string[];
5
6
  outName: string;
6
7
  numberOfSeconds: number;
8
+ downloadMap: DownloadMap;
7
9
  };
8
10
  export declare const mergeAudioTrack: (options: Options) => Promise<void>;
9
11
  export {};
@@ -6,14 +6,15 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.mergeAudioTrack = void 0;
7
7
  const execa_1 = __importDefault(require("execa"));
8
8
  const path_1 = __importDefault(require("path"));
9
- const remotion_1 = require("remotion");
10
9
  const chunk_1 = require("./chunk");
11
10
  const convert_to_pcm_1 = require("./convert-to-pcm");
12
11
  const create_ffmpeg_complex_filter_1 = require("./create-ffmpeg-complex-filter");
13
12
  const create_silent_audio_1 = require("./create-silent-audio");
13
+ const delete_directory_1 = require("./delete-directory");
14
14
  const p_limit_1 = require("./p-limit");
15
15
  const tmp_dir_1 = require("./tmp-dir");
16
- const mergeAudioTrackUnlimited = async ({ ffmpegExecutable, outName, files, numberOfSeconds, }) => {
16
+ const truthy_1 = require("./truthy");
17
+ const mergeAudioTrackUnlimited = async ({ ffmpegExecutable, outName, files, numberOfSeconds, downloadMap, }) => {
17
18
  if (files.length === 0) {
18
19
  await (0, create_silent_audio_1.createSilentAudio)({
19
20
  outName,
@@ -30,8 +31,8 @@ const mergeAudioTrackUnlimited = async ({ ffmpegExecutable, outName, files, numb
30
31
  });
31
32
  return;
32
33
  }
33
- // FFMPEG has a limit of 64 tracks that can be merged at once
34
- if (files.length > 64) {
34
+ // In FFMPEG, the total number of left and right tracks that can be merged at one time is limited to 64
35
+ if (files.length >= 32) {
35
36
  const chunked = (0, chunk_1.chunk)(files, 10);
36
37
  const tempPath = (0, tmp_dir_1.tmpDir)('remotion-large-audio-mixing');
37
38
  const chunkNames = await Promise.all(chunked.map(async (chunkFiles, i) => {
@@ -41,17 +42,21 @@ const mergeAudioTrackUnlimited = async ({ ffmpegExecutable, outName, files, numb
41
42
  files: chunkFiles,
42
43
  numberOfSeconds,
43
44
  outName: chunkOutname,
45
+ downloadMap,
44
46
  });
45
47
  return chunkOutname;
46
48
  }));
47
- return (0, exports.mergeAudioTrack)({
49
+ await (0, exports.mergeAudioTrack)({
48
50
  ffmpegExecutable,
49
51
  files: chunkNames,
50
52
  numberOfSeconds,
51
53
  outName,
54
+ downloadMap,
52
55
  });
56
+ await (0, delete_directory_1.deleteDirectory)(tempPath);
57
+ return;
53
58
  }
54
- const { complexFilterFlag: mergeFilter, cleanup } = await (0, create_ffmpeg_complex_filter_1.createFfmpegComplexFilter)(files.length);
59
+ const { complexFilterFlag: mergeFilter, cleanup } = await (0, create_ffmpeg_complex_filter_1.createFfmpegComplexFilter)(files.length, downloadMap);
55
60
  const args = [
56
61
  ...files.map((f) => ['-i', f]),
57
62
  mergeFilter,
@@ -59,13 +64,14 @@ const mergeAudioTrackUnlimited = async ({ ffmpegExecutable, outName, files, numb
59
64
  ['-map', '[a]'],
60
65
  ['-y', outName],
61
66
  ]
62
- .filter(remotion_1.Internals.truthy)
67
+ .filter(truthy_1.truthy)
63
68
  .flat(2);
64
69
  const task = (0, execa_1.default)(ffmpegExecutable !== null && ffmpegExecutable !== void 0 ? ffmpegExecutable : 'ffmpeg', args);
65
70
  await task;
66
71
  cleanup();
67
72
  };
68
- const limit = (0, p_limit_1.pLimit)(2);
73
+ // Must be at least 3 because recursively called twice in mergeAudioTrack
74
+ const limit = (0, p_limit_1.pLimit)(3);
69
75
  const mergeAudioTrack = (options) => {
70
76
  return limit(mergeAudioTrackUnlimited, options);
71
77
  };
@@ -0,0 +1,6 @@
1
+ export declare const mimeDb: Record<string, {
2
+ source?: string;
3
+ charset?: string;
4
+ compressible?: boolean;
5
+ extensions?: string[];
6
+ }>;