ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

Archify WebM导出实战:如何在浏览器中一键录制Trace动画的完整流程

2026/9/15 11:30:49 拓冰建站 浏览量
Archify WebM导出实战:如何在浏览器中一键录制Trace动画的完整流程 Archify WebM导出实战如何在浏览器中一键录制Trace动画的完整流程【免费下载链接】archifyAgent skill for beautiful, verifiable architecture, workflow, sequence,>项目地址: https://gitcode.com/GitHub_Trending/arch/archifyArchify 是一个开源的 Agent 技能工具用于生成可验证的架构图、工作流、时序图、数据流图和生命周期图输出为自带动效与高清导出的自包含 HTML。它的隐藏强项之一是WebM 导出打开渲染好的图表打开右上角导出菜单点一下就能把一段6 秒、30fps 的 Trace 信号动画直接录制成.webm视频文件——全程在浏览器内完成不需要 Puppeteer、ffmpeg 或任何网络依赖。本文将带你走完从启用 Trace 动画到拿到视频文件的完整流程并解释背后的录制原理。什么是 Trace 动画Archify 的五种图表类型architecture / workflow / sequence / dataflow / lifecycle都支持一种可选的trace追踪动画信号光点沿着你编写好的连线依次流动节点随波次点亮并脉动。它严格复现你在 JSON 里声明的关系和顺序每个元素的--step步进值会被读取而不是随意的装饰动效。启用方式非常简单在图表 JSON 的meta对象中加一行契约说明见 archify/schemas/README.md取值定义见 archify/schemas/common.schema.json{ meta: { title: My Diagram, animation: trace } }trace启用追踪动画默认视图右上角可切换 Live / Stillnone纯静态WebM 导出的前置条件并非所有页面都能录制。导出逻辑viewer/export.js在启用菜单项前会逐项检查当前 SVG 的data-animation属性为trace即上面开启了动画浏览器支持MediaRecorder且支持 WebM 编码优先video/webm;codecsvp9降级vp8再降级裸webm浏览器支持HTMLCanvasElement.captureStream。任一条件不满足导出菜单里的 WebM 项会自动置灰并提示当前浏览器不支持 WebM。推荐使用 Chrome / Chromium / Edge 等 Blink 内核浏览器Safari 目前没有可用的 WebM 编码器。一键录制完整操作流程用渲染器生成 HTML任选一种图表例如架构图node archify/renderers/architecture/render-architecture.mjs \ 你的图表.architecture.json 输出.html在浏览器中打开生成的 HTML确认图表信号在流动Live 模式。点击右上角Export ▾菜单 → 选择WebM6s motion菜单项。页面出现提示正在录制 6 秒动效…倒计时结束后浏览器自动下载你的图表标题.webm文件并弹出已下载通知。就这么简单。整个过程无需离开浏览器视频文件直接落到本地下载目录。录制原理Canvas MediaRecorder 的组合拳这是本文最值得看的部分。recordWebm的实现思路viewer/export.jsrecordWebm/createMotionScene/drawMotionFrame一带可以概括为四步序列化背景把当前主题下的 SVG 序列化为独立文档缩放到宽度不超过 1280px 后加载为图片作为每一帧的静态背景保证画面锐利采样运动场景遍历 SVG 中所有data-animateedge连线用getTotalLength/getPointAtLength沿路径采样 1272 个点连同每条边的颜色、线宽、步进延迟一起缓存节点则读取包围盒与颜色逐帧重绘画布每帧先drawImage贴背景再按当前时间elapsed计算每条边的进度在 Canvas 上画出带辉光的拖尾光段 头部光点节点画脉动边框——动画完全由requestAnimationFrame驱动每帧都是确定性重绘不依赖浏览器 CSS 动画状态编码合成canvas.captureStream(30)把画布变成 MediaStream交给MediaRecorder以 6 Mbps 码率编码每 250ms 收集一次数据块录制结束后拼装成Blob下载。几个关键参数参数默认值说明录制时长6 秒恰好覆盖一轮完整 trace 循环帧率30 fps光点运动流畅、文件不大码率6 Mbps视觉质量与体积的平衡点最大宽度1280px按 viewBox 等比缩放一个工程细节值得一提录制结束时代码会先调用requestData()强制编码器冲刷最后一帧再stop()以兼容某些嵌入式浏览器壳在stop()前不吐出尾部数据块的行为。如何验证导出的 WebM 有效Archify 采用导出回执receipt机制每次导出完成后会把结果写到页面根元素的可读属性上例如data-last-export-formatwebmdata-last-export-bytes文件字节数data-last-export-canonicaltrue表示导出内容与当前规范视图一致你可以随时检查这些属性来确认录制是否成功、体积是否合理。更严格的做法是项目内置的冒烟测试 archify/test/webm-artifact.smoke.mjs它启动一个带远程调试端口的无头 Chromium通过 Chrome DevTools Protocol 依次渲染五种图表的 HTML逐一调用导出接口校验产物是合法视频且非空白。如果你想在自己的环境里回归验证这套管线可以直接参考它的做法。运行时行为契约另有说明文档 archify/references/viewer-runtime.md。常见问题与限制菜单项是灰色的检查图表是否启用了animation: trace以及浏览器是否为 Blink 内核Chrome/Edge 最稳。录出来是黑屏或空文件页面必须可见且未触发系统减少动态效果偏好导致动效被暂停——录制走的是自绘帧但若 SVG 背景加载失败会直接报无法为 WebM 导出加载 SVG 背景。文件体积6 秒、1280px 宽、6 Mbps 的配置下通常在 25 MB适合直接嵌进文档或演示页。想要更长或不同帧率的视频recordWebm(options)接受duration/fps参数viewer/export.js控制台调用即可自定义但菜单按钮固定为 6 秒标准流程。小结Archify 的 WebM 导出把给架构动画做视频这件事压缩成了一次点击开启trace动画 → 打开 Export 菜单 → 选择 WebM浏览器内的 Canvas 逐帧重绘 MediaRecorder 编码会在 6 秒后交出一个 30fps 的高清视频导出回执还能让你程序化地验证结果。配合项目内完整的冒烟测试archify/test/webm-artifact.smoke.mjs从作者、渲染到录制全链路都有据可查。【免费下载链接】archifyAgent skill for beautiful, verifiable architecture, workflow, sequence,>项目地址: https://gitcode.com/GitHub_Trending/arch/archify创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考