正在打开每日关注
正在打开每日关注
Rust 版 Remotion:代码加 SVG 描述动画,GPU 渲染编码成视频,可版本化、参数化并交给 Agent 生成。
Rust 版的 Remotion 来了。 机制是:不用剪辑软件,而是用 Rust 代码加 SVG 来描述画面和动画,再由 GPU 渲染并编码成视频文件。 视频因此成了可版本管理、可参数化、可批量生成的代码产物。 主要特性 - GPU 加速渲染,支持 Lyon 和 Skia 两种渲染后端 - 用 Rust 和 SVG 组合场景,支持多场景(multi-scene) - 音频可视化 - 自动生成字幕 - 带实时预览的编辑器 - 可与 AI 编程助手配合,比如用 npx skills add dmtrKovalenko/fframes 安装技能,让 agent 帮你写视频 - 编码基于 FFmpeg,支持 H.264、H.265、VP9、Opus 适合谁 想程序化生成视频(数据可视化、产品演示、自动字幕视频、批量模板视频),并且偏好 Rust 的性能和类型安全,而不想依赖 Node/浏览器渲染(如 Remotion)的开发者。 这不是神器是什么?
fframes 1.0.3 is out! • Prebuilt Skia + FFmpeg for supported builds • Install the agent skill without cloning the repo • Better macOS 27 + zsh troubleshooting Less compiling, more videos :) https://t.co/Nrv9sAeQeM
是什么:fframes 是 dmtrKovalenko 用 Rust 编写的程序化视频渲染框架(约 1.5k stars,2021 年创建,刚发布 1.0.3),定位为「Rust 版 Remotion」:不依赖 Node 和浏览器,用 Rust 函数逐帧返回 SVG 树(svgr! 宏)描述画面与动画,GPU 渲染后经 FFmpeg 编码成视频。
核心设计:Skia 后端走 Metal/Vulkan,约比内置 CPU 后端快 10 倍;不含 {expressions} 的静态标记在编译期哈希缓存复用;静态链接 FFmpeg libav 而非外部调用;SVG 不够时可用 SkSL 或 Shadertoy GLSL 着色器作图层;timeline! 宏声明关键帧与缓动,支持多场景、音频可视化和自动字幕。
关键洞察:它为「不会看视频的作者」设计——Agent 无法观看画面,于是提供 inspect(缺字体、文字截断、非法 SVG)、strip/onion(接触表与洋葱皮看运动路径)、audio analyze(LUFS、削波、静音)等命令把视频转成 Agent 可读的文本与数字;API 刻意显式冗长,恰好是 Agent 擅长写的代码;官方 Skill 一条 npx skills add 即装。视频由此成为可版本管理、可参数化、可批量生成的代码产物。
边界与风险:非预编译目标需源码编译 Skia/FFmpeg,最长约 20 分钟;Windows 链接共享 FFmpeg,被排除在 build-portable 之外;源码构建默认 -march=native,跨机器缓存恢复可能 SIGILL;1.0.3 仍处早期,Rust 门槛也高于 Remotion。