关于 SVG to Video
SVG to Video 可将 CSS 和 SMIL 动画 SVG 转换为视频或动画图像,适合需要浏览器操作或自动化处理的开发者。它支持逐帧捕获、透明背景,并提供 Web Studio、CLI 和 MCP 接入。
主要功能
- 01转换为 MP4、WebM 等视频
- 02导出 GIF 和 aPNG
- 03逐帧捕获 CSS 与 SMIL 动画
- 04支持透明背景和元数据
- 05提供浏览器、CLI 与 Docker 工具
适用场景
- 01在浏览器中转换 SVG 动画
- 02批量处理动画并接入 CI/CD
- 03生成透明视频叠加素材
MCP 相关
MCP 服务向 AI 助手提供 SVG 动画转换能力,可通过 MCP 客户端调用工具生成视频或动画图像。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
npx -y @gehdoc/svg-to-videoDO_NOT_TRACKSet to '1' or 'true' to disable anonymous usage telemetry.MCP_HOSTEDSet to 'true' or '1' to enforce security sandboxing against path traversal by forbidding local file path arguments.PUPPETEER_EXECUTABLE_PATHCustom file path to a system Chromium or Chrome binary.PUPPETEER_ARGSAdditional command-line flags to pass to the Puppeteer Chromium instance.本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。
工具
2收录的工具列表 · 更新于 1 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| fps | number | 否 | 每秒帧数(例如 24、30、60)。默认值:60。 |
| hold | number | 否 | 视频结尾冻结最后一帧的秒数。 |
| scale | number | 否 | 使用原始分辨率时的缩放系数(1-4)。默认值:1。 |
| width | number | 否 | 自定义输出视频宽度(像素)。 |
| format | enum | 否 | 输出媒体格式。transparent 为 true 时默认为 webm,否则默认为 mp4。mp4 | webm | gif | apng | mkv | mov |
| height | number | 否 | 自定义输出视频高度(像素)。 |
| outDir | string | 否 | 用于在本地保留生成文件的输出目录。省略则通过临时存储以内嵌方式传递。 |
| bgColor | string | 否 | 背景颜色十六进制代码(例如 #ffffff)。不能与 transparent 一起使用。 |
| duration | number | 否 | 所需动画时长(秒)。省略时将自动检测时长。 |
| resolution | string | 否 | 分辨率预设(original、1080p、720p)或格式化字符串(例如 1080x1080、1080x1920)。默认值:original。 |
| svgContent | string | 否 | 原始 SVG XML 字符串内容。 |
| svgFilePath | string | 否 | 输入 .svg 文件的路径(未提供 svgContent 时为必填项)。 |
| transparent | boolean | 否 | 以完整 Alpha 通道透明度进行渲染(支持 webm、gif、apng、mov)。 |
详细介绍
SVG 转视频
一款高保真工具,可将 CSS 和 SMIL 动画 SVG 转换为高质量视频(MP4、WebM、MKV、MOV)或轻量级动画格式(aPNG、GIF),支持完美的 Alpha 通道透明效果,可直接在浏览器中或通过 CLI/MCP 服务使用。
🌟 为什么选择 SVG to Video?
- 透明背景:导出动画时,可使用 WebM 或 aPNG 保留完整 Alpha 通道,也可使用 GIF89a 实现经过优化的索引透明效果。非常适合用于视频编辑工具中的叠加内容或网页。
- 隐私优先:Web Studio 完全在浏览器中运行,SVG 文件不会离开你的计算机。
- 帧级精准:我们的引擎会逐帧处理 Web Animations API 和原生 SVG SMIL,确保准确捕获每一帧的渲染效果。
- 原生支持 AI Agent:原生支持 Model Context Protocol (MCP) 服务和 Agent Skill(
SKILL.md),已通过官方 MCP Registry(mcp.json)索引,并在 HuggingFace Spaces 上实时托管。 - 通用动画格式:除视频外,还可生成轻量级 动画 PNG(aPNG) 和 GIF,非常适合用于文档、Slack 或 GitHub,并可全面控制背景透明度。
- 复制到剪贴板:即时导出为 Base64 Data URL,无需手动下载,即可复制视频并直接嵌入 HTML、CSS 或 JS 代码。非常适合快速原型开发和开发者使用。
- 元数据注入:支持为视频(MP4、WebM、MKV、MOV)和动画图像(aPNG、GIF)格式添加自定义标题和备注。
- 用途广泛:无论你需要用于快速转换的便捷 Web Studio,还是用于批量自动化和 CI/CD 流水线的强大 CLI 工具,本项目都能满足你的需求。
🚀 快速开始
选择符合您需求的入口:
- Web Studio:在浏览器中将 SVG 转换为视频、高保真 aPNG 或优化 GIF,无需安装,简单便捷。
- CLI / Docker 工具:用于批量处理、服务器端自动化和 CI/CD 集成。
- AI Agent 与 MCP 服务:适用于 Claude Desktop、Cursor、Antigravity 和自主大模型工作流。
🌐 Web Studio
我们的 Web Studio 是一款无服务器的客户端渲染工具。它完全在您的浏览器中通过 WebCodecs 运行——您的 SVG 文件不会离开您的电脑,从而确保绝对隐私。其界面针对 720p 分辨率及以上的屏幕进行了优化,可提升工作效率。
自动生成演示:本 README 顶部的演示视频由我们的 CI/CD 管道使用 Playwright 和 Driver.js 自动生成并更新,确保其始终反映最新的 UI 变更。
隐私说明:我们使用 Umami Analytics 收集 Web Studio、CLI 和 MCP 服务界面的匿名使用数据(例如转换次数和格式使用情况),以帮助我们改进工具。此跟踪不使用 Cookie,遵循标准的“请勿跟踪”设置(设置
DO_NOT_TRACK=1环境变量即可选择退出),且绝不会收集个人信息或 SVG 内容。详情请参阅 docs/ANALYTICS.md。
访问我们的 可视化图库(Storybook),了解引擎如何处理复杂 CSS、SMIL 和字体。
快速开始
- 打开 Web Studio。
- 拖放您的
.svg文件,或通过内置示例一键立即测试引擎。 - 调整分辨率、时长和 FPS。
- 选择格式;如有需要,启用 透明背景,并确保启用 高保真捕获以获得最佳效果。
- 点击 导出。
🚀 CLI / Docker 工具
如需自动化或批量处理,请使用 CLI 工具。它专为无头环境运行而构建,非常适合 CI/CD 管道或服务器端自动化。
快速开始
# Node.js (auto-detected duration)
npx -y -p @gehdoc/svg-to-video svg-to-video input.svg 60 ./out-dir
# Node.js (explicit duration & GIF output)
npx -y -p @gehdoc/svg-to-video svg-to-video input.svg 60 ./out-dir -d 5 --format gif --transparent
# Node.js (custom resolution dimensions e.g. vertical 1080x1920)
npx -y -p @gehdoc/svg-to-video svg-to-video input.svg 60 ./out-dir --resolution 1080x1920
# Node.js (animated PNG output)
npx -y -p @gehdoc/svg-to-video svg-to-video input.svg 60 ./out-dir -d 5 --format apng
# Docker (zero local dependencies; requires --shm-size=2gb for Chromium rendering; add :Z to -v for SELinux / Fedora)
docker run --rm --shm-size=2gb -e PUPPETEER_ARGS="--no-sandbox" -v $(pwd):/data:Z gehdoc/svg-to-video /data/input.svg 60 /data/out-dir -d 5 --format gif
完整用法、参数和选项请参阅 docs/CLI.md。有关本地构建和运行源代码的信息,请参阅 CONTRIBUTING.md。
🤖 AI Agent 与 MCP 集成
通过模型上下文协议,将 svg-to-video 连接到 AI 助手(Claude Desktop、Cursor、Antigravity、AutoGPT):
- 添加到
mcpServers配置中:{ "mcpServers": { "svg-to-video": { "command": "npx", "args": ["-y", "-p", "@gehdoc/svg-to-video", "svg-to-video-mcp"] } } } - 向 AI 助手发送提示词:
“将
examples/example.svg转换为 60fps 的透明 WebM 视频。”
完整设置说明、工具架构、Docker 执行方式和 Agent 提示词指南,请参阅 docs/MCP.md。
🔗 官方软件包分发渠道
- 📦 npm 软件包:
@gehdoc/svg-to-video - 🐳 Docker Hub 镜像:
gehdoc/svg-to-video - 🌐 Web Studio:
gehdoc.github.io/svg-to-video/ - 🤖 MCP Registry:
io.github.GehDoc/svg-to-video - 🤗 HuggingFace Space:
GehDoc/svg-to-video-mcp
📦 快速安装与运行
# Run on-demand via npx (no global installation required)
npx -y -p @gehdoc/svg-to-video svg-to-video input.svg 60 ./out-dir
# Install globally via npm
npm install -g @gehdoc/svg-to-video
# Pull official Docker image from Docker Hub
docker pull gehdoc/svg-to-video:latest
🛠 技术详情
深入了解渲染引擎、算法和基础设施,请参阅 docs/ARCHITECTURE.md。
该工具通过隔离 SVG、清理 Web Animations API 和原生 SVG SMIL DOM,并使用 WebCodecs 或 FFmpeg 捕获帧来工作。
❓ 常见问题
关于隐私、帧拖动的工作原理、CI/CD 自动化和透明度支持的常见问题,请参阅 docs/FAQ.md。
🤝 贡献
欢迎贡献!本项目采用 规范驱动开发(SDD) 工作流,以确保需求明确、质量上乘。请提交 issue 或拉取请求。
查看我们的当前路线图,了解接下来的工作计划。
有关贡献指南、构建命令、安全标准和技术路线图,请参阅 CONTRIBUTING.md。
💖 支持项目
如果您觉得这个工具有帮助,请考虑支持其开发:
您的支持有助于支付维护费用并推动工具进一步开发。感谢!
📜 许可证
本项目采用 MIT 许可证。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。
