dsh-remotion 0.2.0 → 0.3.0

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 (292) hide show
  1. package/README.en.md +7 -5
  2. package/README.md +3 -3
  3. package/lib/index.d.ts +2 -2
  4. package/lib/index.js +15 -2
  5. package/package.json +1 -1
  6. package/skills/remotion-best-practices/SKILL.md +59 -0
  7. package/skills/remotion-best-practices/agents/openai.yaml +7 -0
  8. package/skills/remotion-best-practices/assets/remotion-icon.png +0 -0
  9. package/skills/remotion-best-practices/remotion-captions/SKILL.md +36 -0
  10. package/skills/remotion-best-practices/remotion-captions/agents/openai.yaml +7 -0
  11. package/skills/remotion-best-practices/remotion-captions/assets/remotion-icon.png +0 -0
  12. package/skills/{remotion/rules → remotion-best-practices/remotion-captions}/display-captions.md +9 -3
  13. package/skills/{remotion/rules → remotion-best-practices/remotion-captions}/import-srt-captions.md +5 -1
  14. package/skills/remotion-best-practices/remotion-create/SKILL.md +68 -0
  15. package/skills/remotion-best-practices/remotion-create/agents/openai.yaml +7 -0
  16. package/skills/remotion-best-practices/remotion-create/assets/remotion-icon.png +0 -0
  17. package/skills/{remotion/rules → remotion-best-practices/remotion-create}/tailwind.md +1 -1
  18. package/skills/remotion-best-practices/remotion-create/video-layout.md +9 -0
  19. package/skills/remotion-best-practices/remotion-docs/SKILL.md +46 -0
  20. package/skills/remotion-best-practices/remotion-docs/agents/openai.yaml +7 -0
  21. package/skills/remotion-best-practices/remotion-docs/assets/remotion-icon.png +0 -0
  22. package/skills/remotion-best-practices/remotion-interactivity/SKILL.md +247 -0
  23. package/skills/remotion-best-practices/remotion-interactivity/agents/openai.yaml +7 -0
  24. package/skills/remotion-best-practices/remotion-interactivity/assets/remotion-icon.png +0 -0
  25. package/skills/remotion-best-practices/remotion-maps/SKILL.md +36 -0
  26. package/skills/remotion-best-practices/remotion-maps/agents/openai.yaml +7 -0
  27. package/skills/remotion-best-practices/remotion-maps/assets/remotion-icon.png +0 -0
  28. package/skills/remotion-best-practices/remotion-maps/techniques/cesium/TECHNIQUE.md +89 -0
  29. package/skills/remotion-best-practices/remotion-maps/techniques/cesium/assets/CesiumFlythrough.tsx +284 -0
  30. package/skills/remotion-best-practices/remotion-maps/techniques/cesium/assets/cesium-path.json +299 -0
  31. package/skills/remotion-best-practices/remotion-maps/techniques/cesium/assets/city-path.json +12 -0
  32. package/skills/remotion-best-practices/remotion-maps/techniques/cesium/assets/example-Root.tsx +39 -0
  33. package/skills/remotion-best-practices/remotion-maps/techniques/cesium/assets/flight-path.ts +35 -0
  34. package/skills/remotion-best-practices/remotion-maps/techniques/cesium/assets/sample-river.geojson +215 -0
  35. package/skills/remotion-best-practices/remotion-maps/techniques/cesium/references/3d-data-sources.md +43 -0
  36. package/skills/remotion-best-practices/remotion-maps/techniques/cesium/references/3d-flyover-architecture.md +128 -0
  37. package/skills/remotion-best-practices/remotion-maps/techniques/cesium/references/3d-troubleshooting.md +57 -0
  38. package/skills/remotion-best-practices/remotion-maps/techniques/cesium/scripts/prep-cesium-path.mjs +161 -0
  39. package/skills/remotion-best-practices/remotion-maps/techniques/mapbox/TECHNIQUE.md +449 -0
  40. package/skills/remotion-best-practices/remotion-maps/techniques/mapbox/references/render-stability.md +64 -0
  41. package/skills/remotion-best-practices/remotion-maps/techniques/maplibre/TECHNIQUE.md +465 -0
  42. package/skills/remotion-best-practices/remotion-maps/techniques/maplibre/references/render-stability.md +64 -0
  43. package/skills/remotion-best-practices/remotion-maps/techniques/maptiler/TECHNIQUE.md +80 -0
  44. package/skills/remotion-best-practices/remotion-maps/techniques/maptiler/assets/CountryLabel.tsx +70 -0
  45. package/skills/remotion-best-practices/remotion-maps/techniques/maptiler/assets/MapTilerVectorElement.ts +80 -0
  46. package/skills/remotion-best-practices/remotion-maps/techniques/maptiler/assets/RiverReveal.tsx +363 -0
  47. package/skills/remotion-best-practices/remotion-maps/techniques/maptiler/assets/example-Root.tsx +22 -0
  48. package/skills/remotion-best-practices/remotion-maps/techniques/maptiler/assets/sample-data/country-meta.json +7535 -0
  49. package/skills/remotion-best-practices/remotion-maps/techniques/maptiler/assets/sample-data/yarlung-flow.json +605 -0
  50. package/skills/remotion-best-practices/remotion-maps/techniques/maptiler/assets/tokens.ts +34 -0
  51. package/skills/remotion-best-practices/remotion-maps/techniques/maptiler/references/map-data-sources.md +91 -0
  52. package/skills/remotion-best-practices/remotion-maps/techniques/maptiler/references/map-explainer-architecture.md +129 -0
  53. package/skills/remotion-best-practices/remotion-maps/techniques/maptiler/references/map-geo-prep.md +85 -0
  54. package/skills/remotion-best-practices/remotion-maps/techniques/maptiler/references/render-stability.md +64 -0
  55. package/skills/remotion-best-practices/remotion-maps/techniques/maptiler/scripts/prep-geo.mjs +202 -0
  56. package/skills/remotion-best-practices/remotion-maps/techniques/static-map/TECHNIQUE.md +37 -0
  57. package/skills/remotion-best-practices/remotion-markup/SKILL.md +365 -0
  58. package/skills/remotion-best-practices/remotion-markup/agents/openai.yaml +7 -0
  59. package/skills/remotion-best-practices/remotion-markup/assets/remotion-icon.png +0 -0
  60. package/skills/{remotion/rules → remotion-best-practices/remotion-markup}/audio.md +4 -2
  61. package/skills/{remotion/rules → remotion-best-practices/remotion-markup}/calculate-metadata.md +4 -2
  62. package/skills/remotion-best-practices/remotion-markup/compositions.md +117 -0
  63. package/skills/remotion-best-practices/remotion-markup/cropping.md +34 -0
  64. package/skills/remotion-best-practices/remotion-markup/effects.md +251 -0
  65. package/skills/{remotion/rules/videos.md → remotion-best-practices/remotion-markup/embedding-videos.md} +6 -4
  66. package/skills/{remotion/rules → remotion-best-practices/remotion-markup}/ffmpeg.md +5 -1
  67. package/skills/{remotion/rules → remotion-best-practices/remotion-markup}/gifs.md +55 -9
  68. package/skills/remotion-best-practices/remotion-markup/google-fonts.md +76 -0
  69. package/skills/remotion-best-practices/remotion-markup/html-in-canvas.md +128 -0
  70. package/skills/remotion-best-practices/remotion-markup/images.md +73 -0
  71. package/skills/remotion-best-practices/remotion-markup/light-leaks.md +106 -0
  72. package/skills/remotion-best-practices/remotion-markup/local-fonts.md +69 -0
  73. package/skills/{remotion/rules → remotion-best-practices/remotion-markup}/lottie.md +4 -1
  74. package/skills/{remotion/rules → remotion-best-practices/remotion-markup}/measuring-dom-nodes.md +5 -1
  75. package/skills/{remotion/rules → remotion-best-practices/remotion-markup}/measuring-text.md +8 -2
  76. package/skills/remotion-best-practices/remotion-markup/multi-scene-video.md +81 -0
  77. package/skills/{remotion/rules → remotion-best-practices/remotion-markup}/parameters.md +3 -1
  78. package/skills/remotion-best-practices/remotion-markup/remotion-maps/SKILL.md +36 -0
  79. package/skills/remotion-best-practices/remotion-markup/remotion-maps/agents/openai.yaml +7 -0
  80. package/skills/remotion-best-practices/remotion-markup/remotion-maps/assets/remotion-icon.png +0 -0
  81. package/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/TECHNIQUE.md +89 -0
  82. package/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/assets/CesiumFlythrough.tsx +284 -0
  83. package/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/assets/cesium-path.json +299 -0
  84. package/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/assets/city-path.json +12 -0
  85. package/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/assets/example-Root.tsx +39 -0
  86. package/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/assets/flight-path.ts +35 -0
  87. package/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/assets/sample-river.geojson +215 -0
  88. package/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/references/3d-data-sources.md +43 -0
  89. package/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/references/3d-flyover-architecture.md +128 -0
  90. package/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/references/3d-troubleshooting.md +57 -0
  91. package/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/scripts/prep-cesium-path.mjs +161 -0
  92. package/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/mapbox/TECHNIQUE.md +449 -0
  93. package/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/mapbox/references/render-stability.md +64 -0
  94. package/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maplibre/TECHNIQUE.md +465 -0
  95. package/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maplibre/references/render-stability.md +64 -0
  96. package/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/TECHNIQUE.md +80 -0
  97. package/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/assets/CountryLabel.tsx +70 -0
  98. package/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/assets/MapTilerVectorElement.ts +80 -0
  99. package/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/assets/RiverReveal.tsx +363 -0
  100. package/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/assets/example-Root.tsx +22 -0
  101. package/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/assets/sample-data/country-meta.json +7535 -0
  102. package/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/assets/sample-data/yarlung-flow.json +605 -0
  103. package/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/assets/tokens.ts +34 -0
  104. package/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/references/map-data-sources.md +91 -0
  105. package/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/references/map-explainer-architecture.md +129 -0
  106. package/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/references/map-geo-prep.md +85 -0
  107. package/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/references/render-stability.md +64 -0
  108. package/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/scripts/prep-geo.mjs +202 -0
  109. package/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/static-map/TECHNIQUE.md +37 -0
  110. package/skills/{remotion/rules → remotion-best-practices/remotion-markup}/sequencing.md +63 -12
  111. package/skills/remotion-best-practices/remotion-markup/sfx.md +51 -0
  112. package/skills/remotion-best-practices/remotion-markup/text-highlights.md +56 -0
  113. package/skills/remotion-best-practices/remotion-markup/timing.md +111 -0
  114. package/skills/{remotion/rules → remotion-best-practices/remotion-markup}/transitions.md +49 -7
  115. package/skills/remotion-best-practices/remotion-markup/video-editing.md +90 -0
  116. package/skills/{remotion/rules → remotion-best-practices/remotion-markup}/voiceover.md +2 -2
  117. package/skills/remotion-best-practices/remotion-multimedia/SKILL.md +20 -0
  118. package/skills/remotion-best-practices/remotion-multimedia/agents/openai.yaml +7 -0
  119. package/skills/remotion-best-practices/remotion-multimedia/assets/remotion-icon.png +0 -0
  120. package/skills/{remotion/rules → remotion-best-practices/remotion-multimedia}/get-audio-duration.md +1 -3
  121. package/skills/{remotion/rules → remotion-best-practices/remotion-multimedia}/get-video-dimensions.md +1 -3
  122. package/skills/{remotion/rules → remotion-best-practices/remotion-multimedia}/get-video-duration.md +1 -3
  123. package/skills/remotion-best-practices/remotion-render/SKILL.md +27 -0
  124. package/skills/remotion-best-practices/remotion-render/agents/openai.yaml +7 -0
  125. package/skills/remotion-best-practices/remotion-render/assets/remotion-icon.png +0 -0
  126. package/skills/remotion-best-practices/remotion-saas/SKILL.md +33 -0
  127. package/skills/remotion-best-practices/remotion-saas/agents/openai.yaml +7 -0
  128. package/skills/remotion-best-practices/remotion-saas/assets/remotion-icon.png +0 -0
  129. package/skills/remotion-best-practices/remotion-saas/framework.md +21 -0
  130. package/skills/remotion-best-practices/remotion-saas/player.md +33 -0
  131. package/skills/remotion-best-practices/remotion-saas/rendering.md +69 -0
  132. package/skills/remotion-best-practices/remotion-studio/SKILL.md +24 -0
  133. package/skills/remotion-best-practices/remotion-studio/agents/openai.yaml +7 -0
  134. package/skills/remotion-best-practices/remotion-studio/assets/remotion-icon.png +0 -0
  135. package/skills/remotion-best-practices/remotion-upgrade/SKILL.md +31 -0
  136. package/skills/remotion-best-practices/remotion-upgrade/agents/openai.yaml +7 -0
  137. package/skills/remotion-best-practices/remotion-upgrade/assets/remotion-icon.png +0 -0
  138. package/skills/remotion-captions/SKILL.md +36 -0
  139. package/skills/remotion-captions/agents/openai.yaml +7 -0
  140. package/skills/remotion-captions/assets/remotion-icon.png +0 -0
  141. package/skills/remotion-captions/display-captions.md +190 -0
  142. package/skills/remotion-captions/import-srt-captions.md +73 -0
  143. package/skills/remotion-captions/transcribe-captions.md +70 -0
  144. package/skills/remotion-create/SKILL.md +68 -0
  145. package/skills/remotion-create/agents/openai.yaml +7 -0
  146. package/skills/remotion-create/assets/remotion-icon.png +0 -0
  147. package/skills/remotion-create/tailwind.md +11 -0
  148. package/skills/remotion-create/video-layout.md +9 -0
  149. package/skills/remotion-docs/SKILL.md +46 -0
  150. package/skills/remotion-docs/agents/openai.yaml +7 -0
  151. package/skills/remotion-docs/assets/remotion-icon.png +0 -0
  152. package/skills/remotion-interactivity/SKILL.md +247 -0
  153. package/skills/remotion-interactivity/agents/openai.yaml +7 -0
  154. package/skills/remotion-interactivity/assets/remotion-icon.png +0 -0
  155. package/skills/remotion-maps/SKILL.md +36 -0
  156. package/skills/remotion-maps/agents/openai.yaml +7 -0
  157. package/skills/remotion-maps/assets/remotion-icon.png +0 -0
  158. package/skills/remotion-maps/techniques/cesium/TECHNIQUE.md +89 -0
  159. package/skills/remotion-maps/techniques/cesium/assets/CesiumFlythrough.tsx +284 -0
  160. package/skills/remotion-maps/techniques/cesium/assets/cesium-path.json +299 -0
  161. package/skills/remotion-maps/techniques/cesium/assets/city-path.json +12 -0
  162. package/skills/remotion-maps/techniques/cesium/assets/example-Root.tsx +39 -0
  163. package/skills/remotion-maps/techniques/cesium/assets/flight-path.ts +35 -0
  164. package/skills/remotion-maps/techniques/cesium/assets/sample-river.geojson +215 -0
  165. package/skills/remotion-maps/techniques/cesium/references/3d-data-sources.md +43 -0
  166. package/skills/remotion-maps/techniques/cesium/references/3d-flyover-architecture.md +128 -0
  167. package/skills/remotion-maps/techniques/cesium/references/3d-troubleshooting.md +57 -0
  168. package/skills/remotion-maps/techniques/cesium/scripts/prep-cesium-path.mjs +161 -0
  169. package/skills/remotion-maps/techniques/mapbox/TECHNIQUE.md +449 -0
  170. package/skills/remotion-maps/techniques/mapbox/references/render-stability.md +64 -0
  171. package/skills/remotion-maps/techniques/maplibre/TECHNIQUE.md +465 -0
  172. package/skills/remotion-maps/techniques/maplibre/references/render-stability.md +64 -0
  173. package/skills/remotion-maps/techniques/maptiler/TECHNIQUE.md +80 -0
  174. package/skills/remotion-maps/techniques/maptiler/assets/CountryLabel.tsx +70 -0
  175. package/skills/remotion-maps/techniques/maptiler/assets/MapTilerVectorElement.ts +80 -0
  176. package/skills/remotion-maps/techniques/maptiler/assets/RiverReveal.tsx +363 -0
  177. package/skills/remotion-maps/techniques/maptiler/assets/example-Root.tsx +22 -0
  178. package/skills/remotion-maps/techniques/maptiler/assets/sample-data/country-meta.json +7535 -0
  179. package/skills/remotion-maps/techniques/maptiler/assets/sample-data/yarlung-flow.json +605 -0
  180. package/skills/remotion-maps/techniques/maptiler/assets/tokens.ts +34 -0
  181. package/skills/remotion-maps/techniques/maptiler/references/map-data-sources.md +91 -0
  182. package/skills/remotion-maps/techniques/maptiler/references/map-explainer-architecture.md +129 -0
  183. package/skills/remotion-maps/techniques/maptiler/references/map-geo-prep.md +85 -0
  184. package/skills/remotion-maps/techniques/maptiler/references/render-stability.md +64 -0
  185. package/skills/remotion-maps/techniques/maptiler/scripts/prep-geo.mjs +202 -0
  186. package/skills/remotion-maps/techniques/static-map/TECHNIQUE.md +37 -0
  187. package/skills/remotion-markup/3d.md +86 -0
  188. package/skills/remotion-markup/SKILL.md +365 -0
  189. package/skills/remotion-markup/agents/openai.yaml +7 -0
  190. package/skills/remotion-markup/assets/remotion-icon.png +0 -0
  191. package/skills/remotion-markup/audio-visualization.md +198 -0
  192. package/skills/remotion-markup/audio.md +171 -0
  193. package/skills/remotion-markup/calculate-metadata.md +136 -0
  194. package/skills/remotion-markup/compositions.md +117 -0
  195. package/skills/remotion-markup/cropping.md +34 -0
  196. package/skills/remotion-markup/effects.md +251 -0
  197. package/skills/remotion-markup/embedding-videos.md +173 -0
  198. package/skills/remotion-markup/ffmpeg.md +38 -0
  199. package/skills/remotion-markup/gifs.md +187 -0
  200. package/skills/remotion-markup/google-fonts.md +76 -0
  201. package/skills/remotion-markup/html-in-canvas.md +128 -0
  202. package/skills/remotion-markup/images.md +73 -0
  203. package/skills/remotion-markup/light-leaks.md +106 -0
  204. package/skills/remotion-markup/local-fonts.md +69 -0
  205. package/skills/remotion-markup/lottie.md +73 -0
  206. package/skills/remotion-markup/measuring-dom-nodes.md +38 -0
  207. package/skills/remotion-markup/measuring-text.md +146 -0
  208. package/skills/remotion-markup/multi-scene-video.md +81 -0
  209. package/skills/remotion-markup/parameters.md +111 -0
  210. package/skills/remotion-markup/remotion-maps/SKILL.md +36 -0
  211. package/skills/remotion-markup/remotion-maps/agents/openai.yaml +7 -0
  212. package/skills/remotion-markup/remotion-maps/assets/remotion-icon.png +0 -0
  213. package/skills/remotion-markup/remotion-maps/techniques/cesium/TECHNIQUE.md +89 -0
  214. package/skills/remotion-markup/remotion-maps/techniques/cesium/assets/CesiumFlythrough.tsx +284 -0
  215. package/skills/remotion-markup/remotion-maps/techniques/cesium/assets/cesium-path.json +299 -0
  216. package/skills/remotion-markup/remotion-maps/techniques/cesium/assets/city-path.json +12 -0
  217. package/skills/remotion-markup/remotion-maps/techniques/cesium/assets/example-Root.tsx +39 -0
  218. package/skills/remotion-markup/remotion-maps/techniques/cesium/assets/flight-path.ts +35 -0
  219. package/skills/remotion-markup/remotion-maps/techniques/cesium/assets/sample-river.geojson +215 -0
  220. package/skills/remotion-markup/remotion-maps/techniques/cesium/references/3d-data-sources.md +43 -0
  221. package/skills/remotion-markup/remotion-maps/techniques/cesium/references/3d-flyover-architecture.md +128 -0
  222. package/skills/remotion-markup/remotion-maps/techniques/cesium/references/3d-troubleshooting.md +57 -0
  223. package/skills/remotion-markup/remotion-maps/techniques/cesium/scripts/prep-cesium-path.mjs +161 -0
  224. package/skills/remotion-markup/remotion-maps/techniques/mapbox/TECHNIQUE.md +449 -0
  225. package/skills/remotion-markup/remotion-maps/techniques/mapbox/references/render-stability.md +64 -0
  226. package/skills/remotion-markup/remotion-maps/techniques/maplibre/TECHNIQUE.md +465 -0
  227. package/skills/remotion-markup/remotion-maps/techniques/maplibre/references/render-stability.md +64 -0
  228. package/skills/remotion-markup/remotion-maps/techniques/maptiler/TECHNIQUE.md +80 -0
  229. package/skills/remotion-markup/remotion-maps/techniques/maptiler/assets/CountryLabel.tsx +70 -0
  230. package/skills/remotion-markup/remotion-maps/techniques/maptiler/assets/MapTilerVectorElement.ts +80 -0
  231. package/skills/remotion-markup/remotion-maps/techniques/maptiler/assets/RiverReveal.tsx +363 -0
  232. package/skills/remotion-markup/remotion-maps/techniques/maptiler/assets/example-Root.tsx +22 -0
  233. package/skills/remotion-markup/remotion-maps/techniques/maptiler/assets/sample-data/country-meta.json +7535 -0
  234. package/skills/remotion-markup/remotion-maps/techniques/maptiler/assets/sample-data/yarlung-flow.json +605 -0
  235. package/skills/remotion-markup/remotion-maps/techniques/maptiler/assets/tokens.ts +34 -0
  236. package/skills/remotion-markup/remotion-maps/techniques/maptiler/references/map-data-sources.md +91 -0
  237. package/skills/remotion-markup/remotion-maps/techniques/maptiler/references/map-explainer-architecture.md +129 -0
  238. package/skills/remotion-markup/remotion-maps/techniques/maptiler/references/map-geo-prep.md +85 -0
  239. package/skills/remotion-markup/remotion-maps/techniques/maptiler/references/render-stability.md +64 -0
  240. package/skills/remotion-markup/remotion-maps/techniques/maptiler/scripts/prep-geo.mjs +202 -0
  241. package/skills/remotion-markup/remotion-maps/techniques/static-map/TECHNIQUE.md +37 -0
  242. package/skills/remotion-markup/sequencing.md +169 -0
  243. package/skills/remotion-markup/sfx.md +51 -0
  244. package/skills/remotion-markup/silence-detection.md +71 -0
  245. package/skills/remotion-markup/text-highlights.md +56 -0
  246. package/skills/remotion-markup/timing.md +111 -0
  247. package/skills/remotion-markup/transitions.md +239 -0
  248. package/skills/remotion-markup/video-editing.md +90 -0
  249. package/skills/remotion-markup/voiceover.md +99 -0
  250. package/skills/remotion-multimedia/SKILL.md +20 -0
  251. package/skills/remotion-multimedia/agents/openai.yaml +7 -0
  252. package/skills/remotion-multimedia/assets/remotion-icon.png +0 -0
  253. package/skills/remotion-multimedia/get-audio-duration.md +56 -0
  254. package/skills/remotion-multimedia/get-video-dimensions.md +66 -0
  255. package/skills/remotion-multimedia/get-video-duration.md +58 -0
  256. package/skills/remotion-render/SKILL.md +27 -0
  257. package/skills/remotion-render/agents/openai.yaml +7 -0
  258. package/skills/remotion-render/assets/remotion-icon.png +0 -0
  259. package/skills/remotion-render/transparent-videos.md +106 -0
  260. package/skills/remotion-saas/SKILL.md +33 -0
  261. package/skills/remotion-saas/agents/openai.yaml +7 -0
  262. package/skills/remotion-saas/assets/remotion-icon.png +0 -0
  263. package/skills/remotion-saas/framework.md +21 -0
  264. package/skills/remotion-saas/player.md +33 -0
  265. package/skills/remotion-saas/rendering.md +69 -0
  266. package/skills/remotion-studio/SKILL.md +24 -0
  267. package/skills/remotion-studio/agents/openai.yaml +7 -0
  268. package/skills/remotion-studio/assets/remotion-icon.png +0 -0
  269. package/skills/remotion-upgrade/SKILL.md +31 -0
  270. package/skills/remotion-upgrade/agents/openai.yaml +7 -0
  271. package/skills/remotion-upgrade/assets/remotion-icon.png +0 -0
  272. package/skills/remotion/SKILL.md +0 -95
  273. package/skills/remotion/rules/animations.md +0 -31
  274. package/skills/remotion/rules/assets.md +0 -78
  275. package/skills/remotion/rules/can-decode.md +0 -81
  276. package/skills/remotion/rules/charts.md +0 -120
  277. package/skills/remotion/rules/compositions.md +0 -154
  278. package/skills/remotion/rules/extract-frames.md +0 -229
  279. package/skills/remotion/rules/fonts.md +0 -152
  280. package/skills/remotion/rules/images.md +0 -134
  281. package/skills/remotion/rules/light-leaks.md +0 -73
  282. package/skills/remotion/rules/maps.md +0 -412
  283. package/skills/remotion/rules/sfx.md +0 -30
  284. package/skills/remotion/rules/subtitles.md +0 -36
  285. package/skills/remotion/rules/text-animations.md +0 -20
  286. package/skills/remotion/rules/timing.md +0 -136
  287. package/skills/remotion/rules/trimming.md +0 -51
  288. /package/skills/{remotion/rules → remotion-best-practices/remotion-captions}/transcribe-captions.md +0 -0
  289. /package/skills/{remotion/rules → remotion-best-practices/remotion-markup}/3d.md +0 -0
  290. /package/skills/{remotion/rules → remotion-best-practices/remotion-markup}/audio-visualization.md +0 -0
  291. /package/skills/{remotion/rules → remotion-best-practices/remotion-markup}/silence-detection.md +0 -0
  292. /package/skills/{remotion/rules → remotion-best-practices/remotion-render}/transparent-videos.md +0 -0
@@ -0,0 +1,99 @@
1
+ ---
2
+ name: voiceover
3
+ description: Adding AI-generated voiceover to Remotion compositions using TTS
4
+ metadata:
5
+ tags: voiceover, audio, elevenlabs, tts, speech, calculateMetadata, dynamic duration
6
+ ---
7
+
8
+ # Adding AI voiceover to a Remotion composition
9
+
10
+ Use ElevenLabs TTS to generate speech audio per scene, then use [`calculateMetadata`](./calculate-metadata.md) to dynamically size the composition to match the audio.
11
+
12
+ ## Prerequisites
13
+
14
+ By default this guide uses **ElevenLabs** as the TTS provider (`ELEVENLABS_API_KEY` environment variable). Users may substitute any TTS service that can produce an audio file.
15
+
16
+ If the user has not specified a TTS provider, recommend ElevenLabs and ask for their API key.
17
+
18
+ Ensure the environment variable is available when running the generation script:
19
+
20
+ ```bash
21
+ node --strip-types generate-voiceover.ts
22
+ ```
23
+
24
+ ## Generating audio with ElevenLabs
25
+
26
+ Create a script that reads the config, calls the ElevenLabs API for each scene, and writes MP3 files to the `public/` directory so Remotion can access them via `staticFile()`.
27
+
28
+ The core API call for a single scene:
29
+
30
+ ```ts title="generate-voiceover.ts"
31
+ const response = await fetch(
32
+ `https://api.elevenlabs.io/v1/text-to-speech/${voiceId}`,
33
+ {
34
+ method: "POST",
35
+ headers: {
36
+ "xi-api-key": process.env.ELEVENLABS_API_KEY!,
37
+ "Content-Type": "application/json",
38
+ Accept: "audio/mpeg",
39
+ },
40
+ body: JSON.stringify({
41
+ text: "Welcome to the show.",
42
+ model_id: "eleven_multilingual_v2",
43
+ voice_settings: {
44
+ stability: 0.5,
45
+ similarity_boost: 0.75,
46
+ style: 0.3,
47
+ },
48
+ }),
49
+ },
50
+ );
51
+
52
+ const audioBuffer = Buffer.from(await response.arrayBuffer());
53
+ writeFileSync(`public/voiceover/${compositionId}/${scene.id}.mp3`, audioBuffer);
54
+ ```
55
+
56
+ ## Dynamic composition duration with calculateMetadata
57
+
58
+ Use [`calculateMetadata`](./calculate-metadata.md) to measure the [audio durations](../remotion-multimedia/get-audio-duration.md) and set the composition length accordingly.
59
+
60
+ ```tsx
61
+ import { CalculateMetadataFunction, staticFile } from "remotion";
62
+ import { getAudioDuration } from "./get-audio-duration";
63
+
64
+ const FPS = 30;
65
+
66
+ const SCENE_AUDIO_FILES = [
67
+ "voiceover/my-comp/scene-01-intro.mp3",
68
+ "voiceover/my-comp/scene-02-main.mp3",
69
+ "voiceover/my-comp/scene-03-outro.mp3",
70
+ ];
71
+
72
+ export const calculateMetadata: CalculateMetadataFunction<Props> = async ({
73
+ props,
74
+ }) => {
75
+ const durations = await Promise.all(
76
+ SCENE_AUDIO_FILES.map((file) => getAudioDuration(staticFile(file))),
77
+ );
78
+
79
+ const sceneDurations = durations.map((durationInSeconds) => {
80
+ return durationInSeconds * FPS;
81
+ });
82
+
83
+ return {
84
+ durationInFrames: Math.ceil(sceneDurations.reduce((sum, d) => sum + d, 0)),
85
+ };
86
+ };
87
+ ```
88
+
89
+ The computed `sceneDurations` are passed into the component via a `voiceover` prop so the component knows how long each scene should be.
90
+
91
+ If the composition uses [`<TransitionSeries>`](./transitions.md), subtract the overlap from total duration: [./transitions.md#calculating-total-composition-duration](./transitions.md#calculating-total-composition-duration)
92
+
93
+ ## Rendering audio in the component
94
+
95
+ See [audio.md](./audio.md) for more information on how to render audio in the component.
96
+
97
+ ## Delaying audio start
98
+
99
+ See [audio.md#delaying](./audio.md#delaying) for more information on how to delay the audio start.
@@ -0,0 +1,20 @@
1
+ ---
2
+ name: remotion-multimedia
3
+ description: Interacting with Mediabunny
4
+ version: 4.0.519
5
+ ---
6
+
7
+ Mediabunny is a multimedia library for dealing with audio and video in the browser.
8
+ Here is a compact overview of its capabilities: https://mediabunny.dev/llms.txt
9
+
10
+ ## Getting audio duration
11
+
12
+ See [get-audio-duration.md](get-audio-duration.md) for getting the duration of an audio file in seconds with Mediabunny.
13
+
14
+ ## Getting video dimensions
15
+
16
+ See [get-video-dimensions.md](get-video-dimensions.md) for getting the width and height of a video file with Mediabunny.
17
+
18
+ ## Getting video duration
19
+
20
+ See [get-video-duration.md](get-video-duration.md) for getting the duration of a video file in seconds with Mediabunny.
@@ -0,0 +1,7 @@
1
+ interface:
2
+ display_name: '/remotion-multimedia'
3
+ short_description: 'Inspect browser-based audio and video media'
4
+ icon_small: './assets/remotion-icon.png'
5
+ icon_large: './assets/remotion-icon.png'
6
+ brand_color: '#0B84F3'
7
+ default_prompt: '$remotion-multimedia: Make my video the same duration as the footage'
@@ -0,0 +1,56 @@
1
+ ---
2
+ name: get-audio-duration
3
+ description: Getting the duration of an audio file in seconds with Mediabunny
4
+ metadata:
5
+ tags: duration, audio, length, time, seconds, mp3, wav
6
+ ---
7
+
8
+ # Getting audio duration with Mediabunny
9
+
10
+ Mediabunny can extract the duration of an audio file. It works in browser, Node.js, and Bun environments.
11
+
12
+ ## Getting audio duration
13
+
14
+ ```tsx title="get-audio-duration.ts"
15
+ import { Input, ALL_FORMATS, UrlSource } from "mediabunny";
16
+
17
+ export const getAudioDuration = async (src: string) => {
18
+ const input = new Input({
19
+ formats: ALL_FORMATS,
20
+ source: new UrlSource(src),
21
+ });
22
+
23
+ const durationInSeconds = await input.computeDuration();
24
+ return durationInSeconds;
25
+ };
26
+ ```
27
+
28
+ ## Usage
29
+
30
+ ```tsx
31
+ const duration = await getAudioDuration("https://remotion.media/audio.mp3");
32
+ console.log(duration); // e.g. 180.5 (seconds)
33
+ ```
34
+
35
+ ## Using with staticFile in Remotion
36
+
37
+ Make sure to wrap the file path in `staticFile()`:
38
+
39
+ ```tsx
40
+ import { staticFile } from "remotion";
41
+
42
+ const duration = await getAudioDuration(staticFile("audio.mp3"));
43
+ ```
44
+
45
+ ## In Node.js and Bun
46
+
47
+ Use `FileSource` instead of `UrlSource`:
48
+
49
+ ```tsx
50
+ import { Input, ALL_FORMATS, FileSource } from "mediabunny";
51
+
52
+ const input = new Input({
53
+ formats: ALL_FORMATS,
54
+ source: new FileSource(file), // File object from input or drag-drop
55
+ });
56
+ ```
@@ -0,0 +1,66 @@
1
+ ---
2
+ name: get-video-dimensions
3
+ description: Getting the width and height of a video file with Mediabunny
4
+ metadata:
5
+ tags: dimensions, width, height, resolution, size, video
6
+ ---
7
+
8
+ # Getting video dimensions with Mediabunny
9
+
10
+ Mediabunny can extract the width and height of a video file. It works in browser, Node.js, and Bun environments.
11
+
12
+ ## Getting video dimensions
13
+
14
+ ```tsx
15
+ import { Input, ALL_FORMATS, UrlSource } from "mediabunny";
16
+
17
+ export const getVideoDimensions = async (src: string) => {
18
+ const input = new Input({
19
+ formats: ALL_FORMATS,
20
+ source: new UrlSource(src),
21
+ });
22
+
23
+ const videoTrack = await input.getPrimaryVideoTrack();
24
+ if (!videoTrack) {
25
+ throw new Error("No video track found");
26
+ }
27
+
28
+ return {
29
+ width: videoTrack.displayWidth,
30
+ height: videoTrack.displayHeight,
31
+ };
32
+ };
33
+ ```
34
+
35
+ ## Usage
36
+
37
+ ```tsx
38
+ const dimensions = await getVideoDimensions("https://remotion.media/video.mp4");
39
+ console.log(dimensions.width); // e.g. 1920
40
+ console.log(dimensions.height); // e.g. 1080
41
+ ```
42
+
43
+ ## Using with local files
44
+
45
+ For local files, use `FileSource` instead of `UrlSource`:
46
+
47
+ ```tsx
48
+ import { Input, ALL_FORMATS, FileSource } from "mediabunny";
49
+
50
+ const input = new Input({
51
+ formats: ALL_FORMATS,
52
+ source: new FileSource(file), // File object from input or drag-drop
53
+ });
54
+
55
+ const videoTrack = await input.getPrimaryVideoTrack();
56
+ const width = videoTrack.displayWidth;
57
+ const height = videoTrack.displayHeight;
58
+ ```
59
+
60
+ ## Using with staticFile in Remotion
61
+
62
+ ```tsx
63
+ import { staticFile } from "remotion";
64
+
65
+ const dimensions = await getVideoDimensions(staticFile("video.mp4"));
66
+ ```
@@ -0,0 +1,58 @@
1
+ ---
2
+ name: get-video-duration
3
+ description: Getting the duration of a video file in seconds with Mediabunny
4
+ metadata:
5
+ tags: duration, video, length, time, seconds
6
+ ---
7
+
8
+ # Getting video duration with Mediabunny
9
+
10
+ Mediabunny can extract the duration of a video file. It works in browser, Node.js, and Bun environments.
11
+
12
+ ## Getting video duration
13
+
14
+ ```tsx
15
+ import { Input, ALL_FORMATS, UrlSource } from "mediabunny";
16
+
17
+ export const getVideoDuration = async (src: string) => {
18
+ const input = new Input({
19
+ formats: ALL_FORMATS,
20
+ source: new UrlSource(src),
21
+ });
22
+
23
+ const durationInSeconds = await input.computeDuration();
24
+ return durationInSeconds;
25
+ };
26
+ ```
27
+
28
+ ## Usage
29
+
30
+ ```tsx
31
+ const duration = await getVideoDuration("https://remotion.media/video.mp4");
32
+ console.log(duration); // e.g. 10.5 (seconds)
33
+ ```
34
+
35
+ ## Video files from the public/ directory
36
+
37
+ Make sure to wrap the file path in `staticFile()`:
38
+
39
+ ```tsx
40
+ import { staticFile } from "remotion";
41
+
42
+ const duration = await getVideoDuration(staticFile("video.mp4"));
43
+ ```
44
+
45
+ ## In Node.js and Bun
46
+
47
+ Use `FileSource` instead of `UrlSource`:
48
+
49
+ ```tsx
50
+ import { Input, ALL_FORMATS, FileSource } from "mediabunny";
51
+
52
+ const input = new Input({
53
+ formats: ALL_FORMATS,
54
+ source: new FileSource(file), // File object from input or drag-drop
55
+ });
56
+
57
+ const durationInSeconds = await input.computeDuration();
58
+ ```
@@ -0,0 +1,27 @@
1
+ ---
2
+ name: remotion-render
3
+ description: Export a Remotion video
4
+ version: 4.0.519
5
+ ---
6
+
7
+ ## General rendering strategy
8
+
9
+ Render a video using:
10
+
11
+ ```
12
+ npx remotion render
13
+ ```
14
+
15
+ Full list of options: https://www.remotion.dev/docs/cli/render.md
16
+
17
+ Render a still using:
18
+
19
+ ```
20
+ npx remotion still
21
+ ```
22
+
23
+ Full list of options: https://www.remotion.dev/docs/cli/still.md
24
+
25
+ ## Transparent videos
26
+
27
+ See [Transparent videos](./transparent-videos.md) for rendering out a video with transparency.
@@ -0,0 +1,7 @@
1
+ interface:
2
+ display_name: '/remotion-render'
3
+ short_description: 'Export Remotion videos and stills'
4
+ icon_small: './assets/remotion-icon.png'
5
+ icon_large: './assets/remotion-icon.png'
6
+ brand_color: '#0B84F3'
7
+ default_prompt: '$remotion-render: Render this as transparent ProRes'
@@ -0,0 +1,106 @@
1
+ ---
2
+ name: transparent-videos
3
+ description: Rendering transparent videos in Remotion
4
+ metadata:
5
+ tags: transparent, alpha, codec, vp9, prores, webm
6
+ ---
7
+
8
+ # Rendering Transparent Videos
9
+
10
+ Remotion can render transparent videos in two ways: as a ProRes video or as a WebM video.
11
+
12
+ ## Transparent ProRes
13
+
14
+ Ideal for when importing into video editing software.
15
+
16
+ **CLI:**
17
+
18
+ ```bash
19
+ npx remotion render --image-format=png --pixel-format=yuva444p10le --codec=prores --prores-profile=4444 MyComp out.mov
20
+ ```
21
+
22
+ **Default in Studio** (restart Studio after changing):
23
+
24
+ ```ts
25
+ // remotion.config.ts
26
+ import { Config } from "@remotion/cli/config";
27
+
28
+ Config.setVideoImageFormat("png");
29
+ Config.setPixelFormat("yuva444p10le");
30
+ Config.setCodec("prores");
31
+ Config.setProResProfile("4444");
32
+ ```
33
+
34
+ **Setting it as the default export settings for a composition** (using `calculateMetadata`):
35
+
36
+ ```tsx
37
+ import { CalculateMetadataFunction } from "remotion";
38
+
39
+ const calculateMetadata: CalculateMetadataFunction<Props> = async ({
40
+ props,
41
+ }) => {
42
+ return {
43
+ defaultCodec: "prores",
44
+ defaultVideoImageFormat: "png",
45
+ defaultPixelFormat: "yuva444p10le",
46
+ defaultProResProfile: "4444",
47
+ };
48
+ };
49
+
50
+ <Composition
51
+ id="my-video"
52
+ component={MyVideo}
53
+ durationInFrames={150}
54
+ fps={30}
55
+ width={1920}
56
+ height={1080}
57
+ calculateMetadata={calculateMetadata}
58
+ />;
59
+ ```
60
+
61
+ ## Transparent WebM (VP9)
62
+
63
+ Ideal for when playing in a browser.
64
+
65
+ **CLI:**
66
+
67
+ ```bash
68
+ npx remotion render --image-format=png --pixel-format=yuva420p --codec=vp9 MyComp out.webm
69
+ ```
70
+
71
+ **Default in Studio** (restart Studio after changing):
72
+
73
+ ```ts
74
+ // remotion.config.ts
75
+ import { Config } from "@remotion/cli/config";
76
+
77
+ Config.setVideoImageFormat("png");
78
+ Config.setPixelFormat("yuva420p");
79
+ Config.setCodec("vp9");
80
+ ```
81
+
82
+ **Setting it as the default export settings for a composition** (using `calculateMetadata`):
83
+
84
+ ```tsx
85
+ import { CalculateMetadataFunction } from "remotion";
86
+
87
+ const calculateMetadata: CalculateMetadataFunction<Props> = async ({
88
+ props,
89
+ }) => {
90
+ return {
91
+ defaultCodec: "vp8",
92
+ defaultVideoImageFormat: "png",
93
+ defaultPixelFormat: "yuva420p",
94
+ };
95
+ };
96
+
97
+ <Composition
98
+ id="my-video"
99
+ component={MyVideo}
100
+ durationInFrames={150}
101
+ fps={30}
102
+ width={1920}
103
+ height={1080}
104
+ calculateMetadata={calculateMetadata}
105
+ />;
106
+ ```
@@ -0,0 +1,33 @@
1
+ ---
2
+ name: remotion-saas
3
+ description: Build an app with Remotion
4
+ version: 4.0.519
5
+ ---
6
+
7
+ One can build apps with Remotion.
8
+ It is possible to have a simple form and hook it up to a render, or have a complex video editor.
9
+
10
+ ## Choosing a template or a framework
11
+
12
+ We have several templates for SaaS which can be cloned or used as a reference.
13
+ See [Choosing a framework](framework.md) for help choosing a template or framework.
14
+
15
+ ## The `<Player>`
16
+
17
+ This component allows embedding a Remotion preview in a React app. See [Player](player.md) for more information about the Player.
18
+
19
+ ## Rendering
20
+
21
+ There are client-side and server-side rendering options available. See [Rendering](rendering.md) for advice on how to choose, and about the Lambda, Vercel, Node.js and Cloudflare options.
22
+
23
+ ## With Vue
24
+
25
+ See https://www.remotion.dev/docs/vue.md for how to use Remotion with Vue.
26
+
27
+ ## Angular
28
+
29
+ See https://www.remotion.dev/docs/angular.md for how to use Remotion with Angular.
30
+
31
+ ## Svelte
32
+
33
+ See https://www.remotion.dev/docs/svelte.md for how to use Remotion with Svelte.
@@ -0,0 +1,7 @@
1
+ interface:
2
+ display_name: '/remotion-saas'
3
+ short_description: 'Build apps that preview and render videos'
4
+ icon_small: './assets/remotion-icon.png'
5
+ icon_large: './assets/remotion-icon.png'
6
+ brand_color: '#0B84F3'
7
+ default_prompt: '$remotion-saas: Turn my video into an app.'
@@ -0,0 +1,21 @@
1
+ ---
2
+ name: framework
3
+ description: Choose a framework for a Remotion-based app.
4
+ metadata:
5
+ tags: remotion, saas, templates, nextjs, react-router, vercel, lambda, cloudflare
6
+ ---
7
+
8
+ Remotion can be used with any React framework.
9
+
10
+ We offer the following templates:
11
+
12
+ - Next.js App Router with Tailwind: https://github.com/remotion-dev/template-next-app-dir-tailwind. Uses Lambda as default rendering choice.
13
+ - Next.js App Router without Tailwind: https://www.remotion.dev/templates/next-no-tailwind. Uses Lambda as default rendering choice.
14
+ - Next.js Pages Router: https://github.com/remotion-dev/template-next-pages-dir. Uses Lambda as default rendering choice.
15
+ - Vercel Sandbox rendering: https://github.com/remotion-dev/template-vercel. Uses Vercel as default rendering choice.
16
+ - React Router 7: https://github.com/remotion-dev/template-react-router. Uses Lambda as default rendering choice.
17
+ - Express.js render server: `packages/template-render-server`: https://github.com/remotion-dev/template-render-server. Uses Node.js as default rendering choice.
18
+
19
+ These can be cloned directly, or used as a reference.
20
+
21
+ For an existing app, see https://www.remotion.dev/docs/brownfield-installation.md.
@@ -0,0 +1,33 @@
1
+ ---
2
+ name: player
3
+ description: Embed a Remotion preview in a React app with @remotion/player.
4
+ metadata:
5
+ tags: remotion, player, preview, react
6
+ ---
7
+
8
+ Use `@remotion/player` when the user wants an interactive preview in React.
9
+
10
+ ```tsx
11
+ import {Player} from '@remotion/player';
12
+ import {MyVideo} from './remotion/MyVideo';
13
+
14
+ export const App: React.FC = () => {
15
+ return (
16
+ <Player
17
+ component={MyVideo}
18
+ durationInFrames={120}
19
+ compositionWidth={1920}
20
+ compositionHeight={1080}
21
+ fps={30}
22
+ controls
23
+ />
24
+ );
25
+ };
26
+ ```
27
+
28
+ If metadata is dynamic, sync the Player props manually or reuse the composition's `calculateMetadata()` logic.
29
+ Link https://www.remotion.dev/docs/dynamic-metadata.md#with-the-player.
30
+
31
+ Full API for the Player: https://www.remotion.dev/docs/player/player.md.
32
+
33
+ For a SaaS app that also needs output files, combine the Player preview with [framework.md](framework.md) or [rendering.md](rendering.md).
@@ -0,0 +1,69 @@
1
+ ---
2
+ name: rendering
3
+ description: Advice on programmatic rendering with Remotion.
4
+ metadata:
5
+ tags: remotion, saas, ssr, renderer, node, bun, render-server
6
+ ---
7
+
8
+ This is about rendering videos programmatically with Remotion.
9
+ For one-off renders, `npx remotion render` or the Studio is better suited.
10
+
11
+ ## Comparison of SSR methods
12
+
13
+ See https://www.remotion.dev/docs/compare-ssr.md for the tradeoffs between server-side rendering options.
14
+
15
+ ## Plain Node.js APIs
16
+
17
+ Can be used on traditional long-running servers that can spawn a headless browser.
18
+
19
+ - SSR overview: https://www.remotion.dev/docs/ssr.md
20
+ - Renderer package: https://www.remotion.dev/docs/renderer.md
21
+ - Node SSR: https://www.remotion.dev/docs/ssr-node.md
22
+
23
+ For a reference server with render, progress, and cancel endpoints, see https://github.com/remotion-dev/template-render-server.
24
+
25
+ ## Remotion Lambda
26
+
27
+ Render Remotion videos on AWS Lambda. This is the fastest and most scalable way to render Remotion videos.
28
+
29
+ - Overview: https://www.remotion.dev/docs/lambda.md
30
+ - API: https://www.remotion.dev/docs/lambda/api.md
31
+
32
+ ### Steps to set up Lambda
33
+
34
+
35
+ When recommending Lambda, offer the user to guide through the setup flow and keep the docs page open as the canonical checklist: https://www.remotion.dev/docs/lambda/setup.md.
36
+
37
+ Cover these steps at a high level and link the exact docs page for the detailed AWS console clicks:
38
+
39
+ 1. Confirm the user has an AWS account, a target region, and a Remotion project or SaaS template.
40
+ 2. Install `@remotion/lambda` using `npx remotion add @remotion/lambda`.
41
+ 3. Create the Lambda role policy, Lambda role, IAM user, user access key, and user policy from the generated Remotion policy commands.
42
+ 4. Store credentials in `.env` using `REMOTION_AWS_ACCESS_KEY_ID` and `REMOTION_AWS_SECRET_ACCESS_KEY`; never ask the user to paste secrets into chat.
43
+ 5. Run the Lambda policy validator if the user wants to verify permissions before deploying; use the user's package manager or the command shown in the docs (`npx remotion lambda policies validate`).
44
+ 6. Deploy the Lambda function. Mention that functions are bound to the Remotion version and must be redeployed after Remotion upgrades.
45
+ 7. Deploy the Remotion site with a stable site name. Mention that the site must be redeployed after changing the Remotion source.
46
+ 8. Check Lambda quotas using the user's package manager or the command shown in the docs (`npx remotion lambda quotas`); new AWS accounts may need a concurrency limit increase.
47
+ 9. Trigger a first render, then wire render and progress endpoints using the chosen SaaS template or Node APIs.
48
+
49
+ Before production, remind the user to handle rate limiting, authentication, cost controls, output privacy, render cleanup, and progress/error reporting.
50
+
51
+ ## Vercel
52
+
53
+ Ideal if planning to deploy the app to Vercel.
54
+
55
+ See https://www.remotion.dev/docs/vercel-sandbox.md for more info.
56
+
57
+ ## GitHub Actions
58
+
59
+ See https://www.remotion.dev/docs/ssr.md#render-using-github-actions for how to render on GitHub Actions.
60
+ Don't recommend unless asked for.
61
+
62
+ ## Azure Container Apps
63
+
64
+ See https://www.remotion.dev/docs/azure-container-apps.md if rendering on Azure Container Apps is requested.
65
+ Don't recommend unless asked for.
66
+
67
+ ## Cloudflare Containers
68
+
69
+ See https://www.remotion.dev/docs/cloudflare-containers.md if rendering on Cloudflare Containers is requested.
@@ -0,0 +1,24 @@
1
+ ---
2
+ name: remotion-studio
3
+ description: Preview a Remotion video
4
+ version: 4.0.519
5
+ ---
6
+
7
+ Execute the following command:
8
+
9
+ ```bash
10
+ npx remotion studio --no-open
11
+ ```
12
+
13
+ If the Studio is already opened, the URL will be printed and the command will exit.
14
+ Otherwise, a long-running process will start, and the URL will be printed.
15
+
16
+ Open the URL in the browser.
17
+
18
+ ## Useful flags
19
+
20
+ | Argument | Purpose |
21
+ | ----------------- | --------------------------------------------------------------------------------------------- |
22
+ | `--log=<level>` | Set `error`, `warn`, `info` (default), or `verbose` logging. |
23
+ | `--port=<number>` | Request a Studio server port; otherwise Remotion finds a free port. |
24
+ | `--force-new` | Start another Studio instance even when one is already running for the same project and port. |
@@ -0,0 +1,7 @@
1
+ interface:
2
+ display_name: '/remotion-studio'
3
+ short_description: 'Preview your video'
4
+ icon_small: './assets/remotion-icon.png'
5
+ icon_large: './assets/remotion-icon.png'
6
+ brand_color: '#0B84F3'
7
+ default_prompt: '$remotion-studio.'