## 目标 为编辑器内置一个**适合抖音场景**的贴纸库(PNG/SVG),并保证: - **可商用/可分发**(许可清晰) - **可本地托管**(不依赖外部 CDN) - **所见即所得**:预览与导出一致(贴纸叠加到成片) ## 推荐贴纸库(抖音场景友好) ### 方案 A:Microsoft Fluent UI Emoji(更“抖音感”) - **风格**:高饱和、现代、偏 3D/大图标,适合“强调/氛围/卖点” - **形态**:PNG/SVG(仓库提供多种风格/尺寸) - **适用**:火/赞/心/星星/箭头/提示/表情等常用贴纸 - **风险**:请在引入前再次核对仓库 LICENSE(不同仓库/分支可能不同) ### 方案 B:Twemoji(稳定、覆盖全、但更像“emoji”) - **风格**:标准 emoji - **形态**:PNG/SVG - **适用**:作为“基础补全库”非常合适 - **风险**:通常需要署名(CC-BY 类);引入前核对 LICENSE ### 不推荐(默认) ### OpenMoji - **优点**:开源清晰、SVG 质量高 - **缺点**:常见为 CC BY-SA(“同协议分享”约束强),对商业产品和二次分发不友好 ## 贴纸库落地方式(本项目) 本项目支持两类贴纸: - **内置贴纸**:放在 `assets/stickers_builtin/`,通过 `assets/stickers_builtin/index.json` 声明分类/标签/授权信息。 - **自定义贴纸**:用户上传到 `assets/stickers_custom/`,可直接在 UI 里使用。 后端接口: - `GET /api/assets/stickers`:返回贴纸列表(合并 builtin + custom) - `POST /api/assets/stickers/upload`:上传 PNG/SVG/WEBP 前端能力: - 左侧 **“贴纸”** Tab:搜索/分类/缩略图;**拖拽到时间轴**生成贴纸片段 - 时间轴新增 **“贴纸”轨道**:贴纸片段可移动/裁剪时长 - 右侧属性:贴纸 **大小/旋转/X/Y** 导出(WYSIWYG): - FFmpeg 叠加贴纸:`overlay_multiple_images` - SVG 会在导出侧被转换为 PNG(优先使用 `rsvg-convert`,Dockerfile 已加入 `librsvg2-bin`) ## 下一步:把“推荐贴纸库”真正导入到 assets(需要一次性下载) 由于贴纸库体积很大(数千~上万文件),建议用脚本把需要的子集同步到 `assets/stickers_builtin/`: - 先挑“抖音高频类目”:点赞/关注/箭头/爆款/促销/emoji 表情/弹幕气泡 - 再逐步扩展 我建议你确认最终选用的库(Fluent vs Twemoji)后,我可以给你一个“按清单下载 + 生成 index.json”的脚本(可在服务器执行)。