跳转到正文
报告库
用途分类 / 其他用途

Remotion Best Practices Skill 安全审计

作者说它能做什么(原文)

Router for all Remotion skills

第三方安全检查结论

先别安装或运行

已检查文件
124
发现的风险
8
会不会运行危险命令?检查是否下载程序后直接运行、让他人远程控制电脑,或藏起要运行的命令。发现 1 项风险
中风险

复制的 Cesium 组件会直接执行 CDN JavaScript,未提供完整性校验

原文依据:3 处
发现了什么

组件在浏览器中动态创建 script 标签并从 cesium.com 加载 Cesium.js,然后直接执行;可见代码没有子资源完整性哈希或本地供应链锁定。版本号固定只能稳定路径,不能验证返回内容。

为什么需要注意

若 CDN、传输终点或上游发布内容被破坏,返回的脚本将在渲染浏览器上下文中执行,并能访问页面中的数据及可用凭据。

当用户按 Cesium 技法复制或导入该组件并运行预览/渲染时,组件会从固定版本路径动态插入远程 CSS 和 JavaScript;可见代码没有 `integrity` 校验。固定 URL 版本降低意外升级概率,但不能验证服务器返回的字节,远端被篡改或供应链受损时,代码会在渲染浏览器权限内执行。用户可要求本地打包并锁定 Cesium,或提供经过校验的资源哈希和严格网络限制。

remotion-maps/techniques/cesium/assets/CesiumFlythrough.tsx:31来自代码打开原文件
const GOOGLE_MAPS_API_KEY = process.env.REMOTION_GOOGLE_MAPS_API_KEY;const CESIUM_VER = '1.143';const CDN = `https://cesium.com/downloads/cesiumjs/releases/${CESIUM_VER}/Build/Cesium/`;const R = 6371;
查看另外 2 个位置
remotion-maps/techniques/cesium/assets/CesiumFlythrough.tsx:83来自代码打开原文件
const loadCesium = () =>	new Promise<any>((resolve, reject) => {		if ((window as any).Cesium) return resolve((window as any).Cesium);		(window as any).CESIUM_BASE_URL = CDN;		const css = document.createElement('link');		css.rel = 'stylesheet';		css.href = `${CDN}Widgets/widgets.css`;		document.head.appendChild(css);		const script = document.createElement('script');		script.src = `${CDN}Cesium.js`;		script.onload = () => resolve((window as any).Cesium);		script.onerror = () =>			reject(new Error(`Failed to load CesiumJS ${CESIUM_VER}`));		document.head.appendChild(script);	});
remotion-maps/techniques/cesium/TECHNIQUE.md:38来自说明文档打开原文件
1. Copy `assets/CesiumFlythrough.tsx`, a path JSON and `assets/example-Root.tsx` into the Remotion   project, or import the component directly.2. Supply the camera route as `[longitude, latitude][]`. Use only meaningful control points; do not hand-author dozens of tiny corrections.
会不会泄露文件和密钥?检查是否发送含密码或密钥的文件,以及代码里是否直接写了密钥。发现 2 项风险
高风险

语音工作流会要求用户在对话中提供 ElevenLabs API 密钥

原文依据:4 处
发现了什么

当用户未指定 TTS 服务商时,参考文件明确要求推荐 ElevenLabs 并“询问其 API key”,尽管后续代码实际从环境变量读取密钥。把密钥发送到聊天并非运行该脚本所必需。

为什么需要注意

密钥可能保留在聊天记录、日志或支持导出中;获得密钥的人可能调用付费 TTS 服务并消耗账户额度。

当加载语音旁白参考且用户未指定服务商时,活跃指令确实要求询问 API 密钥;示例代码实际只需从环境变量读取,因而没有必要把密钥发到聊天。另一份参考还明确规定不得要求用户在聊天中粘贴秘密,形成直接冲突。用户应只在本地或秘密管理器中设置密钥,并要求作者删除聊天索取步骤。

remotion-markup/REFERENCE.md:225来自说明文档打开原文件
## VoiceoverSee [voiceover.md](voiceover.md) for adding an AI-generated voiceover to Remotion compositions using ElevenLabs TTS.
查看另外 3 个位置
remotion-markup/voiceover.md: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.If the user has not specified a TTS provider, recommend ElevenLabs and ask for their API key.Ensure the environment variable is available when running the generation script:
remotion-markup/voiceover.md:31来自说明文档打开原文件
```ts title="generate-voiceover.ts"const response = await fetch(  `https://api.elevenlabs.io/v1/text-to-speech/${voiceId}`,  {    method: "POST",    headers: {      "xi-api-key": process.env.ELEVENLABS_API_KEY!,      "Content-Type": "application/json",      Accept: "audio/mpeg",    },
remotion-saas/rendering.md:41来自说明文档打开原文件
2. Install `@remotion/lambda` using `npx remotion add @remotion/lambda`.3. Create the Lambda role policy, Lambda role, IAM user, user access key, and user policy from the generated Remotion policy commands.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.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`).6. Deploy the Lambda function. Mention that functions are bound to the Remotion version and must be redeployed after Remotion upgrades.
中风险

动态元数据示例会请求由输入属性指定的任意 URL

原文依据:3 处
发现了什么

示例把 `props.dataUrl` 直接传给 `fetch()`,未显示协议、主机、重定向或私有网络限制。如果渲染属性来自不可信用户,他们可让渲染环境向其可访问的地址发起请求。

为什么需要注意

在能访问云元数据服务、内部管理接口或本机服务的渲染环境中,这可能被用来探测内部网络;返回数据还会被放入组件属性,可能出现在日志、预览或生成内容中。证据没有显示数据会自动发送给攻击者。

这是文档示例,不会仅因安装 Skill 自动发出请求;但被采用后,`calculateMetadata` 会直接请求 `props.dataUrl`,所示代码没有协议、主机、重定向或私网地址校验。若外部用户能控制该属性,渲染进程可能访问其网络权限范围内的任意地址,造成 SSRF、内部服务探测或数据暴露风险。用户可要求仅允许 HTTPS 和明确域名,并阻止本机、私网及非预期重定向。

remotion-markup/calculate-metadata.md:105来自说明文档打开原文件
Fetch data or transform props before rendering:```tsxconst calculateMetadata: CalculateMetadataFunction<Props> = async ({  props,  abortSignal,}) => {  const response = await fetch(props.dataUrl, { signal: abortSignal });  const data = await response.json();  return {    props: {      ...props,      fetchedData: data,    },
查看另外 2 个位置
remotion-markup/calculate-metadata.md:108来自说明文档打开原文件
```tsxconst calculateMetadata: CalculateMetadataFunction<Props> = async ({  props,  abortSignal,}) => {  const response = await fetch(props.dataUrl, { signal: abortSignal });  const data = await response.json();
remotion-markup/calculate-metadata.md:124来自说明文档打开原文件
The `abortSignal` cancels stale requests when props change in the Studio.
会不会删除文件或一直在后台运行?检查是否大范围删除文件、改写磁盘,或设置自动启动。未发现风险
会不会绕过安全保护?检查是否跳过网站安全验证、开放过多文件权限,或取消操作前的确认。发现 3 项风险
高风险

故障排查建议使用“不受限制”的地图 API 密钥

原文依据:2 处
发现了什么

文档在无头渲染遇到 403 时直接建议使用 unrestricted key。取消来源、应用或域名限制会扩大密钥的可用范围;一旦密钥从环境、日志、构建产物或客户端包中泄露,第三方更容易滥用。

为什么需要注意

攻击者可能消耗地图配额、产生费用,或导致账户因异常调用被限流或停用。文档随后对 Google 密钥给出了较窄的 API 限制,但没有为 MapTiler 建议等效的最小权限配置。

这是条件式故障排查建议,不表示密钥已被更改;但遇到 MapTiler 403 时,它明确建议使用“不受限制”的密钥。若用户照做,密钥一旦出现在客户端包、日志或其他可读取位置,便可能被用于非预期请求并产生配额或费用风险。用户可要求作者提供保留 API、来源或 IP 限制的无头渲染方案,而不是全面解除限制。

remotion-maps/techniques/cesium/references/3d-troubleshooting.md:37来自说明文档打开原文件
| High-pitch frame shows a void/starfield above the horizon | No atmosphere                                                                                                 | `viewer.scene.skyAtmosphere.show = true`.                                                           || 403 on tiles in headless                                  | Domain-locked MapTiler key                                                                                    | Use an **unrestricted** key.                                                                        || Google root tileset returns 403                           | Map Tiles API disabled, billing absent, wrong key, or application restriction blocks local headless rendering | Enable Map Tiles API and billing; restrict the key to that API while allowing the Remotion request. || Google scene shows a duplicate/competing surface          | MapTiler or the Cesium globe is still enabled                                                                 | Do not add MapTiler; set `viewer.scene.globe.show=false`.                                           |
查看另外 1 个位置
remotion-maps/techniques/cesium/references/3d-troubleshooting.md:38来自说明文档打开原文件
| 403 on tiles in headless                                  | Domain-locked MapTiler key                                                                                    | Use an **unrestricted** key.                                                                        || Google root tileset returns 403                           | Map Tiles API disabled, billing absent, wrong key, or application restriction blocks local headless rendering | Enable Map Tiles API and billing; restrict the key to that API while allowing the Remotion request. || Google scene shows a duplicate/competing surface          | MapTiler or the Cesium globe is still enabled                                                                 | Do not add MapTiler; set `viewer.scene.globe.show=false`.                                           |
中风险

地图凭据被放入客户端请求 URL,且 MapTiler 分支明确要求不受限密钥

原文依据:7 处
发现了什么

组件从环境变量取得 MapTiler 和 Google 密钥,再将其拼入浏览器发出的查询 URL。MapTiler 指南还明确写着使用“不受限”密钥,使泄露后的滥用防护更弱。

为什么需要注意

密钥可能出现在客户端代码、网络调试信息或请求日志中。若没有来源、API、额度或账单限制,第三方可能盗用配额并产生费用。

当用户采用 MapTiler/Cesium 地图组件时,代码会读取环境变量,并把密钥配置给浏览器 SDK或直接拼入瓦片 URL。浏览器请求中的密钥可能被开发工具、日志或缓存看到;这对客户端地图密钥并不罕见,但指南明确写“不受限”,会放大被复制后产生配额消耗或费用的风险。用户可要求使用仅允许必要 API、来源和配额的专用密钥;Google 分支已有 API 限制建议。

remotion-maps/techniques/maptiler/TECHNIQUE.md:18来自说明文档打开原文件
Render labels as positioned [`<Interactive.Div>`](https://www.remotion.dev/docs/interactive.md) elements.Env `REMOTION_MAPTILER_KEY` (unrestricted). Init the map once (ref guard); update imperatively per frame.
查看另外 6 个位置
remotion-maps/techniques/cesium/assets/CesiumFlythrough.tsx:29来自代码打开原文件
const MAPTILER_KEY = process.env.REMOTION_MAPTILER_KEY;const GOOGLE_MAPS_API_KEY = process.env.REMOTION_GOOGLE_MAPS_API_KEY;const CESIUM_VER = '1.143';
remotion-maps/techniques/cesium/assets/CesiumFlythrough.tsx:211来自代码打开原文件
					new C.UrlTemplateImageryProvider({						url: `https://api.maptiler.com/tiles/satellite-v2/{z}/{x}/{y}.jpg?key=${MAPTILER_KEY}`,						maximumLevel: 20,					}),				);				viewer.terrainProvider = await C.CesiumTerrainProvider.fromUrl(					`https://api.maptiler.com/tiles/terrain-quantized-mesh-v2/?key=${MAPTILER_KEY}`,					{requestVertexNormals: true},
remotion-maps/techniques/cesium/assets/CesiumFlythrough.tsx:228来自代码打开原文件
				viewer.scene.globe.show = false;				const tileset = await C.Cesium3DTileset.fromUrl(					`https://tile.googleapis.com/v1/3dtiles/root.json?key=${GOOGLE_MAPS_API_KEY}`,					{
remotion-maps/techniques/maptiler/assets/RiverReveal.tsx:19来自代码打开原文件
// Sample route reveal. Replace the imported sample geometry, names, timing, and visual tokens in the// consuming production. The renderer stays static; approved centre/zoom motion is a CSS plate transform.maptilersdk.config.apiKey = process.env.REMOTION_MAPTILER_KEY as string;
remotion-maps/techniques/cesium/assets/CesiumFlythrough.tsx:209来自代码打开原文件
			if (mode === 'landscape') {				viewer.imageryLayers.addImageryProvider(					new C.UrlTemplateImageryProvider({						url: `https://api.maptiler.com/tiles/satellite-v2/{z}/{x}/{y}.jpg?key=${MAPTILER_KEY}`,						maximumLevel: 20,					}),				);				viewer.terrainProvider = await C.CesiumTerrainProvider.fromUrl(					`https://api.maptiler.com/tiles/terrain-quantized-mesh-v2/?key=${MAPTILER_KEY}`,					{requestVertexNormals: true},				);
remotion-maps/techniques/cesium/TECHNIQUE.md:31来自说明文档打开原文件
Create a billing-enabled Google Map Tiles API key by followinghttps://developers.google.com/maps/documentation/tile/get-api-key. Enable the **Map Tiles API** andrestrict the key to that API. Ensure its application restriction permits local headless Remotionrequests.
低风险

安装命令没有固定依赖版本

原文依据:3 处
发现了什么

安装命令没有指定依赖版本。同样的命令以后可能下载不同代码,你实际安装的内容可能与这次检查时不同。

为什么需要注意

即使命令和报告没变,以后安装时也可能下载到另一份代码。

风险存在,但候选定位到的 SKILL.md 第39行本身只是路由说明。实际脚手架流程在仅当项目不存在时运行,并使用 `create-video@latest`,随后安装依赖;`latest` 会随时间变化,因此未来执行可能取得本次审计未覆盖的代码。用户可要求作者提供经过测试的固定版本和锁文件,并在执行前确认目标目录。

SKILL.md:39来自说明文档打开原文件
For advanced rendering beyond simple `npx remotion render`, see: [Rendering Best Practices](./remotion-render/REFERENCE.md)
查看另外 2 个位置
remotion-create/REFERENCE.md:12来自说明文档打开原文件
If a project already exists, skip this.Ensure Node.js and Git is installed, and the current folder is appropriate for starting a new project.
remotion-create/REFERENCE.md:15来自说明文档打开原文件
Scaffold one using:```bashnpx create-video@latest --yes --blank --no-tailwind my-videocd my-videonpm i```
会不会误导 AI 或隐藏内容?检查工作说明是否要求 AI 忽略你的指令、干扰检查结果,或夹带看不见的文字。未发现风险
会不会偷偷改推广链接或收款方?检查是否强制替换推广链接或收款对象,同时要求隐瞒更改。发现 2 项风险
中风险

地图参考文件指导隐藏供应商归属标识,与其他规则直接冲突

原文依据:5 处
发现了什么

MapTiler 地理准备参考提供 CSS,将版权归属控件和 MapTiler 标志设为 display:none。该 Skill 的其他地图规则却要求保持供应商归属可见,说明用户可能因加载不同参考而得到相反指令。

为什么需要注意

在成片中移除所需版权或供应商标识可能违反许可或服务条款,导致下架要求、索赔或地图账户受限。

MapTiler 地理准备参考明确给出隐藏标志和归属控件的 CSS,而随附的实际示例组件却启用 `attributionControl` 和 `maptilerLogo`,其他地图规则也要求保留供应商归属。加载前一参考并照做可能让输出违反供应商许可或政策,影响发布决策。用户应要求作者统一规则,并在确认当前供应商条款前禁止隐藏归属;随附组件当前默认显示归属。

remotion-maps/techniques/maptiler/references/map-geo-prep.md:17来自说明文档打开原文件
  layers as needed, and retain only the context borders the production requires.- Logo/attribution: `maptilerLogo:false` + `attributionControl:false` aren't always enough — also hide  via CSS in the component:  ```tsx  <style>    {`      .maplibregl-ctrl-bottom-left,      .maplibregl-ctrl-bottom-right,      .maplibregl-ctrl-attrib,      .maptiler-logo {        display: none !important;      }    `}  </style>  ```
查看另外 4 个位置
remotion-maps/techniques/mapbox/TECHNIQUE.md:26来自说明文档打开原文件
- Do not install `@types/mapbox-gl`; Mapbox GL JS ships its own types.- Keep required provider attribution visible and verify current provider terms before rendering.- Record the source and effective date of custom or disputed geography.- Inspect rendered pixels, not only Studio playback, at every required aspect ratio.
remotion-maps/techniques/cesium/references/3d-flyover-architecture.md:8来自说明文档打开原文件
Create the Viewer with `baseLayer: false`, UI widgets disabled, and`contextOptions.webgl.preserveDrawingBuffer: true`. Never hide the credit display.
remotion-maps/techniques/maptiler/assets/RiverReveal.tsx:140来自代码打开原文件
			bearing: END.bearing,			interactive: false,			attributionControl: true,			navigationControl: false,			geolocateControl: false,			maptilerLogo: true,			fadeDuration: 0,			canvasContextAttributes: {preserveDrawingBuffer: true},
remotion-maps/techniques/mapbox/TECHNIQUE.md:24来自说明文档打开原文件
- Do not add a `mapInstance.remove()` cleanup function; it can interfere with Remotion's render lifecycle.- Use Mapbox style URLs such as `mapbox://styles/mapbox/standard` or a user-provided custom style.- Do not install `@types/mapbox-gl`; Mapbox GL JS ships its own types.- Keep required provider attribution visible and verify current provider terms before rendering.- Record the source and effective date of custom or disputed geography.- Inspect rendered pixels, not only Studio playback, at every required aspect ratio.
中风险

部分地图示例关闭署名控件或隐藏服务商标识

原文依据:6 处
发现了什么

Mapbox 和 MapLibre 示例均设置 `attributionControl: false`,MapTiler 指令还要求用 CSS 隐藏 logo。虽然 Cesium 分支另有“保持所有署名可见”的要求,但这些具体示例会促使生成的成片移除来源标识。

为什么需要注意

如果服务条款或数据许可要求显示署名,发布生成的视频可能造成许可违规、下架要求、补授权费用或商业纠纷。

这些是会被复制到作品中的具体配置,而不只是警告:Mapbox、MapLibre 示例关闭署名控件,MapTiler 指令要求隐藏 logo。若没有另行加入可见署名,生成内容可能违反服务商署名或商标条款,并影响用户的发布决定。Cesium 分支要求保留署名,但并未纠正其他分支。用户可要求作者证明每个服务商允许这种展示方式,并确保最终画面保留必需署名。

remotion-maps/techniques/mapbox/TECHNIQUE.md:100来自说明文档打开原文件
		const mapInstance = new mapboxgl.Map({			accessToken: mapboxAccessToken,			container: containerRef.current,			style: 'mapbox://styles/mapbox/standard',			center: zurich,			zoom: 7,			interactive: false,			attributionControl: false,			fadeDuration: 0,
查看另外 5 个位置
remotion-maps/techniques/maplibre/TECHNIQUE.md:82来自说明文档打开原文件
		const mapInstance = new maplibregl.Map({			container: containerRef.current,			style: 'https://demotiles.maplibre.org/style.json',			center: zurich,			zoom: 7,			interactive: false,			attributionControl: false,			fadeDuration: 0,
remotion-maps/techniques/maptiler/TECHNIQUE.md:64来自说明文档打开原文件
Strip clutter on `load`: remove `symbol` layers (place labels) and `/other border/i` (admin-1 inner borders); hide the logo via CSS. Keep country + disputed borders.
remotion-maps/techniques/cesium/TECHNIQUE.md:76来自说明文档打开原文件
- Settle landscapes on `globe.tilesLoaded` and cities on `tileset.tilesLoaded`.- Keep all provider attribution visible.- Record the source and effective date of custom or disputed geography.
remotion-maps/techniques/mapbox/TECHNIQUE.md:107来自说明文档打开原文件
			interactive: false,			attributionControl: false,			fadeDuration: 0,
remotion-maps/techniques/maplibre/TECHNIQUE.md:88来自说明文档打开原文件
			interactive: false,			attributionControl: false,			fadeDuration: 0,

Skill 逻辑拆解

8 个说明模块

这是一个路由型 Skill:根据视频创建、地图、字幕、渲染、SaaS、文档查询或升级任务加载不同参考文件,因此实际权限和网络行为取决于被选中的分支。

查看原文
SKILL.md:13来自说明文档打开原文件
## Creating a videoIf the user asks to make, create, or build a new video or composition, load [Create a new Remotion video](./remotion-create/REFERENCE.md), whether or not a Remotion project already exists.
SKILL.md:53来自说明文档打开原文件
## Looking up Remotion APIs and documentationTo find and read current Remotion documentation, load [Remotion Docs](./remotion-docs/REFERENCE.md).## UpgradingTo upgrade Remotion, related packages, compatible Mediabunny packages, and installed Remotion Agent Skills, load [Remotion Upgrade](./remotion-upgrade/REFERENCE.md).

地图辅助脚本在本地读取 GeoJSON,并创建目录及写入派生 JSON/GeoJSON。Cesium 脚本允许命令行指定输出路径;MapTiler 脚本写入固定的 out 目录。

查看原文
remotion-maps/techniques/cesium/scripts/prep-cesium-path.mjs:21来自代码打开原文件
const __dir = dirname(fileURLToPath(import.meta.url));const IN = process.argv[2] || resolve(__dir, '../assets/sample-river.geojson');const OUT = process.argv[3] || resolve(__dir, '../assets/cesium-path.json');const havKm = (a, b) => {
remotion-maps/techniques/cesium/scripts/prep-cesium-path.mjs:131来自代码打开原文件
mkdirSync(dirname(OUT), {recursive: true});writeFileSync(OUT, JSON.stringify(path));
remotion-maps/techniques/maptiler/scripts/prep-geo.mjs:179来自代码打开原文件
mkdirSync(dirname(OUT_RIVER), {recursive: true});writeFileSync(OUT_RIVER, JSON.stringify(flow));writeFileSync(OUT_META, JSON.stringify(countryMeta));writeFileSync(OUT_BORDERS, JSON.stringify(borders));console.log(

3D 地图组件运行时从 Cesium、MapTiler 或 Google 下载代码、影像、地形或三维瓦片;因此预览和渲染并非离线操作,并可能产生第三方 API 用量。

查看原文
remotion-maps/techniques/cesium/assets/CesiumFlythrough.tsx:31来自代码打开原文件
const GOOGLE_MAPS_API_KEY = process.env.REMOTION_GOOGLE_MAPS_API_KEY;const CESIUM_VER = '1.143';const CDN = `https://cesium.com/downloads/cesiumjs/releases/${CESIUM_VER}/Build/Cesium/`;const R = 6371;
remotion-maps/techniques/cesium/assets/CesiumFlythrough.tsx:209来自代码打开原文件
			if (mode === 'landscape') {				viewer.imageryLayers.addImageryProvider(					new C.UrlTemplateImageryProvider({						url: `https://api.maptiler.com/tiles/satellite-v2/{z}/{x}/{y}.jpg?key=${MAPTILER_KEY}`,						maximumLevel: 20,					}),				);				viewer.terrainProvider = await C.CesiumTerrainProvider.fromUrl(					`https://api.maptiler.com/tiles/terrain-quantized-mesh-v2/?key=${MAPTILER_KEY}`,					{requestVertexNormals: true},				);
remotion-maps/techniques/cesium/assets/CesiumFlythrough.tsx:226来自代码打开原文件
			}			if (mode === 'city') {				viewer.scene.globe.show = false;				const tileset = await C.Cesium3DTileset.fromUrl(					`https://tile.googleapis.com/v1/3dtiles/root.json?key=${GOOGLE_MAPS_API_KEY}`,					{						showCreditsOnScreen: true,						maximumScreenSpaceError,					},				);				viewer.scene.primitives.add(tileset);

升级工作流不仅修改项目依赖和锁文件,还会更新已安装的 Remotion Agent Skills,从而持久改变代理之后遵循的指令。

查看原文
remotion-upgrade/REFERENCE.md:16来自说明文档打开原文件
   This also updates project-local Remotion skills. Skip the manual upgrade below.
remotion-upgrade/REFERENCE.md:18来自说明文档打开原文件
3. If `@remotion/cli` is not available, upgrade manually:   - Get the latest stable Remotion version with `npm view remotion version`.   - Find every installed `remotion` and `@remotion/*` dependency across the project and upgrade them all to that exact version. Preserve their dependency sections and the project's workspace or catalog conventions.   - Read the current [Mediabunny compatibility page](https://www.remotion.dev/docs/mediabunny/version) and determine the Mediabunny version compatible with the target Remotion version. Upgrade every installed `mediabunny` and `@mediabunny/*` package to the documented compatible version.   - Run the project's package manager to update its lockfile.4. If `@remotion/cli` is not available, update the installed Remotion skills:
remotion-upgrade/REFERENCE.md:25来自说明文档打开原文件
   ```bash   npx skills update remotion-best-practices remotion-captions remotion-create remotion-docs remotion-interactivity remotion-maps remotion-markup remotion-multimedia remotion-render remotion-saas remotion-studio remotion-upgrade --yes   ```

该 Skill 是 Remotion 工作流路由器:根据视频、地图、渲染、字幕、SaaS 等任务加载不同参考文件,而不是在入口文件中直接实现功能。

查看原文
SKILL.md:2来自说明文档打开原文件
---name: remotion-best-practicesdescription: Router for all Remotion skillsversion: 4.0.521
SKILL.md:15来自说明文档打开原文件
If the user asks to make, create, or build a new video or composition, load [Create a new Remotion video](./remotion-create/REFERENCE.md), whether or not a Remotion project already exists.
SKILL.md:27来自说明文档打开原文件
For static maps, animated routes and markers, geographic explainers, Mapbox, MapLibre, MapTiler, GeoJSON, or 3D geographic flyovers, load [Remotion Maps](./remotion-maps/REFERENCE.md).

地图分支会使用外部地图服务。Mapbox 示例从环境变量取得公共访问令牌;MapLibre 示例从公开 HTTPS 地址加载样式;Cesium 分支说明会注入 CDN 脚本。因此渲染地图时会产生网络请求,并可能消耗相应账户的配额或计费资源。

查看原文
remotion-maps/techniques/mapbox/TECHNIQUE.md:63来自说明文档打开原文件
Mapbox requires a public access token. Prefer passing it as an input prop or reading it from an environment variable that is available to the bundled Remotion code.```tsconst mapboxAccessToken = process.env.REMOTION_MAPBOX_TOKEN;
remotion-maps/techniques/maplibre/TECHNIQUE.md:82来自说明文档打开原文件
		const mapInstance = new maplibregl.Map({			container: containerRef.current,			style: 'https://demotiles.maplibre.org/style.json',			center: zurich,			zoom: 7,
remotion-maps/techniques/cesium/references/3d-troubleshooting.md:50来自说明文档打开原文件
- **`viewer.render()`, never `scene.render()`** per frame. The single biggest trap.- Cesium loads from **CDN**; set `window.CESIUM_BASE_URL` _before_ injecting the script.- `preserveDrawingBuffer: true` or screenshots are blank.

Skill 要求保留用户在对话外做出的更改,并在遇到意外变动时假定其有意或先询问确认。这降低了覆盖用户文件的风险。

查看原文
SKILL.md:7来自说明文档打开原文件
## Preserve user changesUsers may make edits in the code outside of the conversation.If you detect a surprising change made in the meanwhile, don't overwrite it, assume it was intentional or ask for confirmation.

地图预处理分支会在需要渐进线路或国家进入触发时运行脚本,并生成多个地理数据文件;这是持久文件写入,应仅作用于用户明确选择的项目目录和数据。

查看原文
remotion-maps/techniques/maptiler/TECHNIQUE.md:60来自说明文档打开原文件
Use MapTiler vector layers for suitable provider features and custom GeoJSON for story-specific or ordered geometry. If the beat needs country-entry triggers or a progressive line draw, run `scripts/prep-geo.mjs` to bake `country-meta.json`, `borders.geojson`, and the ordered line. Details → `references/map-data-sources.md` and `references/map-geo-prep.md`.

该 Skill 是一个条件路由器:用户创建视频或合成时,它会加载创建指南;如果项目不存在,也加载同一指南。所提供行本身没有执行命令。

查看原文
SKILL.md:15来自说明文档打开原文件
If the user asks to make, create, or build a new video or composition, load [Create a new Remotion video](./remotion-create/REFERENCE.md), whether or not a Remotion project already exists.
SKILL.md:19来自说明文档打开原文件
If no Remotion project currently exists, load [Create a new Remotion project](./remotion-create/REFERENCE.md)

它根据任务类型加载不同的参考指南,包括地图、多媒体、渲染、Studio、SaaS、文档查询和升级。实际操作和权限需求取决于这些被引用指南的内容。

查看原文
SKILL.md:27来自说明文档打开原文件
For static maps, animated routes and markers, geographic explainers, Mapbox, MapLibre, MapTiler, GeoJSON, or 3D geographic flyovers, load [Remotion Maps](./remotion-maps/REFERENCE.md).
SKILL.md:31来自说明文档打开原文件
For achieving multimedia tasks in the browser, such as trimming, cropping videos, or getting metadata from them, load [Remotion Multimedia](./remotion-multimedia/REFERENCE.md)
SKILL.md:39来自说明文档打开原文件
For advanced rendering beyond simple `npx remotion render`, see: [Rendering Best Practices](./remotion-render/REFERENCE.md)
SKILL.md:59来自说明文档打开原文件
To upgrade Remotion, related packages, compatible Mediabunny packages, and installed Remotion Agent Skills, load [Remotion Upgrade](./remotion-upgrade/REFERENCE.md).

该路由器要求避免覆盖用户在对话外所做的意外变更,并在不确定时将其视为有意修改或请求确认。

查看原文
SKILL.md:9来自说明文档打开原文件
Users may make edits in the code outside of the conversation.
SKILL.md:11来自说明文档打开原文件
If you detect a surprising change made in the meanwhile, don't overwrite it, assume it was intentional or ask for confirmation.

所示地图资产是静态 JSON 地理数据,例如国家锚点、边界坐标和河流路径坐标;这些行没有网络请求、凭据处理或代码执行指令。

查看原文
remotion-maps/techniques/maptiler/assets/sample-data/country-meta.json:5694来自说明文档打开原文件
	},	"bangladesh": {		"stop": 0.897488737517874,		"anchor": [89.83003108960874, 23.720784795521794],		"border": [			[
remotion-maps/techniques/maptiler/assets/sample-data/yarlung-flow.json:599来自说明文档打开原文件
	[89.727, 23.883],	[89.787, 23.796],	[89.85600000000001, 23.748],	[89.919, 23.664],	[89.985, 23.643],	[90.144, 23.544],	[90.249, 23.463]]
从这里开始 · 工作说明SKILL.md
remotion-best-practices
连线表示工作说明包含的模块,不是实际运行顺序。点击模块可查看原文。 另有 5 个章节,可在原文件中查看。

文件引用关系图

40 处引用
哪些文件发起引用引用了什么
连线表示真实的文件引用,不是运行顺序。点击节点可高亮相关连线,并查看具体文件和原文位置。虚线表示还有文件需要定位。
文件与检查记录124 个文件

检查范围与遗漏

  • assets/remotion-icon.png已核验为非程序资源 · 1,286 B
  • remotion-captions/assets/remotion-icon.png已核验为非程序资源 · 1,286 B
  • remotion-create/assets/remotion-icon.png已核验为非程序资源 · 1,286 B
  • remotion-docs/assets/remotion-icon.png已核验为非程序资源 · 1,286 B
  • remotion-interactivity/assets/remotion-icon.png已核验为非程序资源 · 1,286 B
  • remotion-maps/assets/remotion-icon.png已核验为非程序资源 · 1,286 B
  • remotion-markup/assets/remotion-icon.png已核验为非程序资源 · 1,286 B
  • remotion-markup/remotion-maps/assets/remotion-icon.png已核验为非程序资源 · 1,286 B
  • remotion-multimedia/assets/remotion-icon.png已核验为非程序资源 · 1,286 B
  • remotion-render/assets/remotion-icon.png已核验为非程序资源 · 1,286 B
  • remotion-saas/assets/remotion-icon.png已核验为非程序资源 · 1,286 B
  • remotion-studio/assets/remotion-icon.png已核验为非程序资源 · 1,286 B
  • remotion-upgrade/assets/remotion-icon.png已核验为非程序资源 · 1,286 B
逐文件查看涉及的内容

下方列出本次涉及的原文范围;纳入检查不代表已查清所有问题。

  • SKILL.md已纳入全文
  • remotion-maps/techniques/cesium/scripts/prep-cesium-path.mjs已纳入全文
  • remotion-maps/techniques/maptiler/scripts/prep-geo.mjs已纳入全文
  • remotion-markup/remotion-maps/techniques/cesium/scripts/prep-cesium-path.mjs已纳入全文
  • remotion-markup/remotion-maps/techniques/maptiler/scripts/prep-geo.mjs已纳入全文
  • remotion-captions/REFERENCE.md已纳入全文
  • remotion-create/REFERENCE.md已纳入全文
  • remotion-docs/REFERENCE.md已纳入全文
  • remotion-interactivity/REFERENCE.md已纳入全文
  • remotion-maps/REFERENCE.md已纳入全文
  • remotion-markup/REFERENCE.md已纳入全文
  • remotion-multimedia/REFERENCE.md已纳入全文
  • remotion-render/REFERENCE.md已纳入全文
  • remotion-saas/REFERENCE.md已纳入全文
  • remotion-studio/REFERENCE.md已纳入全文
  • remotion-upgrade/REFERENCE.md已纳入全文
  • remotion-maps/techniques/cesium/assets/CesiumFlythrough.tsx已纳入全文
  • remotion-maps/techniques/cesium/assets/example-Root.tsx已纳入全文
  • remotion-maps/techniques/cesium/assets/flight-path.ts已纳入全文
  • remotion-maps/techniques/maptiler/assets/CountryLabel.tsx已纳入全文
  • remotion-maps/techniques/maptiler/assets/example-Root.tsx已纳入全文
  • remotion-maps/techniques/maptiler/assets/MapTilerVectorElement.ts已纳入全文
  • remotion-maps/techniques/maptiler/assets/RiverReveal.tsx已纳入全文
  • remotion-maps/techniques/maptiler/assets/tokens.ts已纳入全文
  • remotion-markup/remotion-maps/techniques/cesium/assets/CesiumFlythrough.tsx已纳入全文
  • remotion-markup/remotion-maps/techniques/cesium/assets/example-Root.tsx已纳入全文
  • remotion-markup/remotion-maps/techniques/cesium/assets/flight-path.ts已纳入全文
  • remotion-markup/remotion-maps/techniques/maptiler/assets/CountryLabel.tsx已纳入全文
  • remotion-markup/remotion-maps/techniques/maptiler/assets/example-Root.tsx已纳入全文
  • remotion-markup/remotion-maps/techniques/maptiler/assets/MapTilerVectorElement.ts已纳入全文
  • remotion-markup/remotion-maps/techniques/maptiler/assets/RiverReveal.tsx已纳入全文
  • remotion-markup/remotion-maps/techniques/maptiler/assets/tokens.ts已纳入全文
  • remotion-captions/display-captions.md已纳入全文
  • remotion-captions/import-srt-captions.md已纳入全文
  • remotion-captions/transcribe-captions.md已纳入全文
  • remotion-create/tailwind.md已纳入全文
  • remotion-create/video-layout.md已纳入全文
  • remotion-maps/techniques/cesium/assets/cesium-path.json已纳入全文
  • remotion-maps/techniques/cesium/assets/city-path.json已纳入全文
  • remotion-maps/techniques/cesium/assets/sample-river.geojson已纳入全文
  • remotion-maps/techniques/cesium/references/3d-data-sources.md已纳入全文
  • remotion-maps/techniques/cesium/references/3d-flyover-architecture.md已纳入全文
  • remotion-maps/techniques/cesium/references/3d-troubleshooting.md已纳入全文
  • remotion-maps/techniques/cesium/TECHNIQUE.md已纳入全文
  • remotion-maps/techniques/mapbox/references/render-stability.md已纳入全文
  • remotion-maps/techniques/mapbox/TECHNIQUE.md已纳入全文
  • remotion-maps/techniques/maplibre/references/render-stability.md已纳入全文
  • remotion-maps/techniques/maplibre/TECHNIQUE.md已纳入全文
  • remotion-maps/techniques/maptiler/references/map-data-sources.md已纳入全文
  • remotion-maps/techniques/maptiler/references/map-explainer-architecture.md已纳入全文
  • remotion-maps/techniques/maptiler/references/map-geo-prep.md已纳入全文
  • remotion-maps/techniques/maptiler/references/render-stability.md已纳入全文
  • remotion-maps/techniques/maptiler/TECHNIQUE.md已纳入全文
  • remotion-maps/techniques/static-map/TECHNIQUE.md已纳入全文
  • remotion-markup/3d.md已纳入全文
  • remotion-markup/audio-visualization.md已纳入全文
  • remotion-markup/audio.md已纳入全文
  • remotion-markup/calculate-metadata.md已纳入全文
  • remotion-markup/compositions.md已纳入全文
  • remotion-markup/cropping.md已纳入全文
  • remotion-markup/effects.md已纳入全文
  • remotion-markup/embedding-videos.md已纳入全文
  • remotion-markup/ffmpeg.md已纳入全文
  • remotion-markup/gifs.md已纳入全文
  • remotion-markup/google-fonts.md已纳入全文
  • remotion-markup/html-in-canvas.md已纳入全文
  • remotion-markup/images.md已纳入全文
  • remotion-markup/local-fonts.md已纳入全文
  • remotion-markup/lottie.md已纳入全文
  • remotion-markup/measuring-dom-nodes.md已纳入全文
  • remotion-markup/measuring-text.md已纳入全文
  • remotion-markup/multi-scene-video.md已纳入全文
  • remotion-markup/parameters.md已纳入全文
  • remotion-markup/remotion-maps/REFERENCE.md已纳入全文
  • remotion-markup/remotion-maps/techniques/cesium/assets/cesium-path.json已纳入全文
  • remotion-markup/remotion-maps/techniques/cesium/assets/city-path.json已纳入全文
  • remotion-markup/remotion-maps/techniques/cesium/assets/sample-river.geojson已纳入全文
  • remotion-markup/remotion-maps/techniques/cesium/references/3d-data-sources.md已纳入全文
  • remotion-markup/remotion-maps/techniques/cesium/references/3d-flyover-architecture.md已纳入全文
  • remotion-markup/remotion-maps/techniques/cesium/references/3d-troubleshooting.md已纳入全文
  • remotion-markup/remotion-maps/techniques/cesium/TECHNIQUE.md已纳入全文
  • remotion-markup/remotion-maps/techniques/mapbox/references/render-stability.md已纳入全文
  • remotion-markup/remotion-maps/techniques/mapbox/TECHNIQUE.md已纳入全文
  • remotion-markup/remotion-maps/techniques/maplibre/references/render-stability.md已纳入全文
  • remotion-markup/remotion-maps/techniques/maplibre/TECHNIQUE.md已纳入全文
  • remotion-markup/remotion-maps/techniques/maptiler/references/map-data-sources.md已纳入全文
  • remotion-markup/remotion-maps/techniques/maptiler/references/map-explainer-architecture.md已纳入全文
  • remotion-markup/remotion-maps/techniques/maptiler/references/map-geo-prep.md已纳入全文
  • remotion-markup/remotion-maps/techniques/maptiler/references/render-stability.md已纳入全文
  • remotion-markup/remotion-maps/techniques/maptiler/TECHNIQUE.md已纳入全文
  • remotion-markup/remotion-maps/techniques/static-map/TECHNIQUE.md已纳入全文
  • remotion-markup/sequencing.md已纳入全文
  • remotion-markup/sfx.md已纳入全文
  • remotion-markup/silence-detection.md已纳入全文
  • remotion-markup/text-highlights.md已纳入全文
  • remotion-markup/timing.md已纳入全文
  • remotion-markup/transitions.md已纳入全文
  • remotion-markup/video-editing.md已纳入全文
  • remotion-markup/voiceover.md已纳入全文
  • remotion-multimedia/get-audio-duration.md已纳入全文
  • remotion-multimedia/get-video-dimensions.md已纳入全文
  • remotion-multimedia/get-video-duration.md已纳入全文
  • remotion-render/transparent-videos.md已纳入全文
  • remotion-saas/framework.md已纳入全文
  • remotion-saas/player.md已纳入全文
  • remotion-saas/rendering.md已纳入全文
  • agents/openai.yaml已纳入全文
  • remotion-captions/agents/openai.yaml已纳入全文
  • remotion-create/agents/openai.yaml已纳入全文
  • remotion-docs/agents/openai.yaml已纳入全文
  • remotion-interactivity/agents/openai.yaml已纳入全文
  • remotion-maps/agents/openai.yaml已纳入全文
  • remotion-maps/techniques/maptiler/assets/sample-data/country-meta.json已纳入全文
  • remotion-maps/techniques/maptiler/assets/sample-data/yarlung-flow.json已纳入全文
  • remotion-markup/agents/openai.yaml已纳入全文
  • remotion-markup/light-leaks.md已纳入全文
  • remotion-markup/remotion-maps/agents/openai.yaml已纳入全文
  • remotion-markup/remotion-maps/techniques/maptiler/assets/sample-data/country-meta.json已纳入全文
  • remotion-markup/remotion-maps/techniques/maptiler/assets/sample-data/yarlung-flow.json已纳入全文
  • remotion-multimedia/agents/openai.yaml已纳入全文
  • remotion-render/agents/openai.yaml已纳入全文
  • remotion-saas/agents/openai.yaml已纳入全文
  • remotion-studio/agents/openai.yaml已纳入全文
  • remotion-upgrade/agents/openai.yaml已纳入全文

这份报告只针对上方版本。我们看了拿到的代码和说明文件,没有实际运行 Skill,也没有检查它另外安装的软件包。因此,这不是“保证安全”的承诺;换了版本或使用环境,结果也可能不同。

  • SKILL.md工作说明
  • agents/openai.yaml配套文件
  • remotion-captions/REFERENCE.md配套文件
  • remotion-captions/agents/openai.yaml配套文件
  • remotion-captions/display-captions.md配套文件
  • remotion-captions/import-srt-captions.md配套文件
  • remotion-captions/transcribe-captions.md配套文件
  • remotion-create/REFERENCE.md配套文件
  • remotion-create/agents/openai.yaml配套文件
  • remotion-create/tailwind.md配套文件
  • remotion-create/video-layout.md配套文件
  • remotion-docs/REFERENCE.md配套文件
  • remotion-docs/agents/openai.yaml配套文件
  • remotion-interactivity/REFERENCE.md配套文件
  • remotion-interactivity/agents/openai.yaml配套文件
  • remotion-maps/REFERENCE.md配套文件
  • remotion-maps/agents/openai.yaml配套文件
  • remotion-maps/techniques/cesium/TECHNIQUE.md配套文件
  • remotion-maps/techniques/cesium/assets/CesiumFlythrough.tsx脚本
  • remotion-maps/techniques/cesium/assets/cesium-path.json配套文件
  • remotion-maps/techniques/cesium/assets/city-path.json配套文件
  • remotion-maps/techniques/cesium/assets/example-Root.tsx脚本
  • remotion-maps/techniques/cesium/assets/flight-path.ts脚本
  • remotion-maps/techniques/cesium/assets/sample-river.geojson配套文件
  • remotion-maps/techniques/cesium/references/3d-data-sources.md配套文件
  • remotion-maps/techniques/cesium/references/3d-flyover-architecture.md配套文件
  • remotion-maps/techniques/cesium/references/3d-troubleshooting.md配套文件
  • remotion-maps/techniques/cesium/scripts/prep-cesium-path.mjs脚本
  • remotion-maps/techniques/mapbox/TECHNIQUE.md配套文件
  • remotion-maps/techniques/mapbox/references/render-stability.md配套文件
  • remotion-maps/techniques/maplibre/TECHNIQUE.md配套文件
  • remotion-maps/techniques/maplibre/references/render-stability.md配套文件
  • remotion-maps/techniques/maptiler/TECHNIQUE.md配套文件
  • remotion-maps/techniques/maptiler/assets/CountryLabel.tsx脚本
  • remotion-maps/techniques/maptiler/assets/MapTilerVectorElement.ts脚本
  • remotion-maps/techniques/maptiler/assets/RiverReveal.tsx脚本
  • remotion-maps/techniques/maptiler/assets/example-Root.tsx脚本
  • remotion-maps/techniques/maptiler/assets/sample-data/country-meta.json配套文件
  • remotion-maps/techniques/maptiler/assets/sample-data/yarlung-flow.json配套文件
  • remotion-maps/techniques/maptiler/assets/tokens.ts脚本
  • remotion-maps/techniques/maptiler/references/map-data-sources.md配套文件
  • remotion-maps/techniques/maptiler/references/map-explainer-architecture.md配套文件
  • remotion-maps/techniques/maptiler/references/map-geo-prep.md配套文件
  • remotion-maps/techniques/maptiler/references/render-stability.md配套文件
  • remotion-maps/techniques/maptiler/scripts/prep-geo.mjs脚本
  • remotion-maps/techniques/static-map/TECHNIQUE.md配套文件
  • remotion-markup/3d.md配套文件
  • remotion-markup/REFERENCE.md配套文件
  • remotion-markup/agents/openai.yaml配套文件
  • remotion-markup/audio-visualization.md配套文件
  • remotion-markup/audio.md配套文件
  • remotion-markup/calculate-metadata.md配套文件
  • remotion-markup/compositions.md配套文件
  • remotion-markup/cropping.md配套文件
  • remotion-markup/effects.md配套文件
  • remotion-markup/embedding-videos.md配套文件
  • remotion-markup/ffmpeg.md配套文件
  • remotion-markup/gifs.md配套文件
  • remotion-markup/google-fonts.md配套文件
  • remotion-markup/html-in-canvas.md配套文件
  • remotion-markup/images.md配套文件
  • remotion-markup/light-leaks.md配套文件
  • remotion-markup/local-fonts.md配套文件
  • remotion-markup/lottie.md配套文件
  • remotion-markup/measuring-dom-nodes.md配套文件
  • remotion-markup/measuring-text.md配套文件
  • remotion-markup/multi-scene-video.md配套文件
  • remotion-markup/parameters.md配套文件
  • remotion-markup/remotion-maps/REFERENCE.md配套文件
  • remotion-markup/remotion-maps/agents/openai.yaml配套文件
  • remotion-markup/remotion-maps/techniques/cesium/TECHNIQUE.md配套文件
  • remotion-markup/remotion-maps/techniques/cesium/assets/CesiumFlythrough.tsx脚本
  • remotion-markup/remotion-maps/techniques/cesium/assets/cesium-path.json配套文件
  • remotion-markup/remotion-maps/techniques/cesium/assets/city-path.json配套文件
  • remotion-markup/remotion-maps/techniques/cesium/assets/example-Root.tsx脚本
  • remotion-markup/remotion-maps/techniques/cesium/assets/flight-path.ts脚本
  • remotion-markup/remotion-maps/techniques/cesium/assets/sample-river.geojson配套文件
  • remotion-markup/remotion-maps/techniques/cesium/references/3d-data-sources.md配套文件
  • remotion-markup/remotion-maps/techniques/cesium/references/3d-flyover-architecture.md配套文件
  • remotion-markup/remotion-maps/techniques/cesium/references/3d-troubleshooting.md配套文件
  • remotion-markup/remotion-maps/techniques/cesium/scripts/prep-cesium-path.mjs脚本
  • remotion-markup/remotion-maps/techniques/mapbox/TECHNIQUE.md配套文件
  • remotion-markup/remotion-maps/techniques/mapbox/references/render-stability.md配套文件
  • remotion-markup/remotion-maps/techniques/maplibre/TECHNIQUE.md配套文件
  • remotion-markup/remotion-maps/techniques/maplibre/references/render-stability.md配套文件
  • remotion-markup/remotion-maps/techniques/maptiler/TECHNIQUE.md配套文件
  • remotion-markup/remotion-maps/techniques/maptiler/assets/CountryLabel.tsx脚本
  • remotion-markup/remotion-maps/techniques/maptiler/assets/MapTilerVectorElement.ts脚本
  • remotion-markup/remotion-maps/techniques/maptiler/assets/RiverReveal.tsx脚本
  • remotion-markup/remotion-maps/techniques/maptiler/assets/example-Root.tsx脚本
  • remotion-markup/remotion-maps/techniques/maptiler/assets/sample-data/country-meta.json配套文件
  • remotion-markup/remotion-maps/techniques/maptiler/assets/sample-data/yarlung-flow.json配套文件
  • remotion-markup/remotion-maps/techniques/maptiler/assets/tokens.ts脚本
  • remotion-markup/remotion-maps/techniques/maptiler/references/map-data-sources.md配套文件
  • remotion-markup/remotion-maps/techniques/maptiler/references/map-explainer-architecture.md配套文件
  • remotion-markup/remotion-maps/techniques/maptiler/references/map-geo-prep.md配套文件
  • remotion-markup/remotion-maps/techniques/maptiler/references/render-stability.md配套文件
  • remotion-markup/remotion-maps/techniques/maptiler/scripts/prep-geo.mjs脚本
  • remotion-markup/remotion-maps/techniques/static-map/TECHNIQUE.md配套文件
  • remotion-markup/sequencing.md配套文件
  • remotion-markup/sfx.md配套文件
  • remotion-markup/silence-detection.md配套文件
  • remotion-markup/text-highlights.md配套文件
  • remotion-markup/timing.md配套文件
  • remotion-markup/transitions.md配套文件
  • remotion-markup/video-editing.md配套文件
  • remotion-markup/voiceover.md配套文件
  • remotion-multimedia/REFERENCE.md配套文件
  • remotion-multimedia/agents/openai.yaml配套文件
  • remotion-multimedia/get-audio-duration.md配套文件
  • remotion-multimedia/get-video-dimensions.md配套文件
  • remotion-multimedia/get-video-duration.md配套文件
  • remotion-render/REFERENCE.md配套文件
  • remotion-render/agents/openai.yaml配套文件
  • remotion-render/transparent-videos.md配套文件
  • remotion-saas/REFERENCE.md配套文件
  • remotion-saas/agents/openai.yaml配套文件
  • remotion-saas/framework.md配套文件
  • remotion-saas/player.md配套文件
  • remotion-saas/rendering.md配套文件
  • remotion-studio/REFERENCE.md配套文件
  • remotion-studio/agents/openai.yaml配套文件
  • remotion-upgrade/REFERENCE.md配套文件
  • remotion-upgrade/agents/openai.yaml配套文件

代码和说明中提到的操作

安装其他软件包
SKILL.md:39来自说明文档打开原文件
For advanced rendering beyond simple `npx remotion render`, see: [Rendering Best Practices](./remotion-render/REFERENCE.md)
remotion-captions/display-captions.md:20来自说明文档打开原文件
```bashnpx remotion add @remotion/captions```
remotion-captions/import-srt-captions.md:20来自说明文档打开原文件
```bashnpx remotion add @remotion/captions # If project uses npmbunx remotion add @remotion/captions # If project uses bun
连接外部网站
remotion-maps/techniques/cesium/assets/CesiumFlythrough.tsx:32来自代码打开原文件
const CESIUM_VER = '1.143';const CDN = `https://cesium.com/downloads/cesiumjs/releases/${CESIUM_VER}/Build/Cesium/`;const R = 6371;
remotion-maps/techniques/cesium/assets/CesiumFlythrough.tsx:179来自代码打开原文件
				throw new Error(					'Set REMOTION_MAPTILER_KEY. Create a key at https://cloud.maptiler.com/account/keys/',				);
remotion-maps/techniques/cesium/assets/CesiumFlythrough.tsx:184来自代码打开原文件
				throw new Error(					'Set REMOTION_GOOGLE_MAPS_API_KEY. Create a Map Tiles API key at https://developers.google.com/maps/documentation/tile/get-api-key',				);
运行命令
remotion-captions/display-captions.md:19来自说明文档打开原文件
```bashnpx remotion add @remotion/captions
remotion-captions/import-srt-captions.md:19来自说明文档打开原文件
```bashnpx remotion add @remotion/captions # If project uses npm
remotion-captions/transcribe-captions.md:17来自说明文档打开原文件
```bashnpx remotion add @remotion/install-whisper-cpp
读取文件
remotion-maps/techniques/cesium/scripts/prep-cesium-path.mjs:16来自代码打开原文件
import {readFileSync, writeFileSync, mkdirSync} from 'fs';import {dirname, resolve} from 'path';
remotion-maps/techniques/cesium/scripts/prep-cesium-path.mjs:34来自代码打开原文件
const gorge = JSON.parse(readFileSync(IN, 'utf8')).features[0].geometry	.coordinates;
remotion-maps/techniques/maptiler/scripts/prep-geo.mjs:14来自代码打开原文件
import {readFileSync, writeFileSync, mkdirSync} from 'fs';import {dirname, resolve} from 'path';
修改文件
remotion-maps/techniques/cesium/scripts/prep-cesium-path.mjs:16来自代码打开原文件
import {readFileSync, writeFileSync, mkdirSync} from 'fs';import {dirname, resolve} from 'path';
remotion-maps/techniques/cesium/scripts/prep-cesium-path.mjs:132来自代码打开原文件
mkdirSync(dirname(OUT), {recursive: true});writeFileSync(OUT, JSON.stringify(path));
remotion-maps/techniques/maptiler/scripts/prep-geo.mjs:14来自代码打开原文件
import {readFileSync, writeFileSync, mkdirSync} from 'fs';import {dirname, resolve} from 'path';
读取密钥或账号配置
remotion-maps/techniques/cesium/assets/CesiumFlythrough.tsx:29来自代码打开原文件
const MAPTILER_KEY = process.env.REMOTION_MAPTILER_KEY;const GOOGLE_MAPS_API_KEY = process.env.REMOTION_GOOGLE_MAPS_API_KEY;
remotion-maps/techniques/cesium/assets/CesiumFlythrough.tsx:30来自代码打开原文件
const MAPTILER_KEY = process.env.REMOTION_MAPTILER_KEY;const GOOGLE_MAPS_API_KEY = process.env.REMOTION_GOOGLE_MAPS_API_KEY;const CESIUM_VER = '1.143';
remotion-maps/techniques/cesium/assets/CesiumFlythrough.tsx:182来自代码打开原文件
			}			if (mode === 'city' && !GOOGLE_MAPS_API_KEY) {				throw new Error(
读取了多少行
28,785
文件校验值(用于核对版本)
6617d042f89652f234ec83be4d532422e9ba3ff128e2c07a4d59d8942c2c78b9