【开源剪映小助手】遮罩效果接口

简介: 本文档详述遮罩效果API:支持线性、圆形、矩形等6类遮罩,提供坐标定位、羽化、旋转、反相、圆角等参数配置;采用分层架构(路由→服务→视频片段→遮罩元数据),具备批量处理、参数校验与性能优化能力。(239字)

遮罩效果接口

目录

  1. 简介
  2. 项目结构
  3. 核心组件
  4. 架构总览
  5. 详细组件分析
  6. 依赖关系分析
  7. 性能考量
  8. 故障排查指南
  9. 结论
  10. 附录

简介

本文档是遮罩效果接口的详细 API 文档,涵盖遮罩的创建与应用流程,包括遮罩形状定义、几何参数配置、羽化与反相效果;解释遮罩坐标系统、尺寸调整、旋转角度与圆角处理;说明遮罩的实时预览、多遮罩叠加与遮罩与视频内容的合成规则;并提供最佳实践、性能建议、常见问题与调试方法。

项目结构

该功能围绕"请求模型 → 路由 → 服务 → 底层视频片段与遮罩元数据"展开,形成清晰的分层结构:

  • 请求模型层:定义请求与响应的数据结构
  • 路由层:暴露 HTTP 接口,转发请求至服务层
  • 服务层:执行业务逻辑,校验参数、定位片段、调用底层添加遮罩
  • 底层实现层:视频片段类负责遮罩对象的构造与导出
graph TB
subgraph "接口层"
R["路由<br/>/v1/add_masks"]
end
subgraph "服务层"
S["服务<br/>add_masks(...)"]
end
subgraph "模型层"
M1["请求模型<br/>AddMasksRequest"]
M2["响应模型<br/>AddMasksResponse"]
end
subgraph "实现层"
V["视频片段<br/>VideoSegment.add_mask(...)"]
T["遮罩类型<br/>MaskType"]
E["遮罩元数据<br/>MaskMeta"]
end
R --> S
S --> V
S --> T
T --> E
M1 --> R
R --> M2

核心组件

  • 接口路径:POST /openapi/capcut-mate/v1/add_masks
  • 功能:向指定草稿中的视频片段添加遮罩效果,支持多种遮罩类型与参数配置
  • 请求体字段:草稿 URL、片段 ID 数组、遮罩类型名称、中心坐标、宽高、羽化、旋转、反相、圆角
  • 响应体字段:更新后的草稿 URL、添加成功的遮罩数量、受影响片段 ID 列表、遮罩 ID 列表

架构总览

遮罩接口的调用链路:

sequenceDiagram
participant C as "客户端"
participant RT as "路由<br/>/v1/add_masks"
participant SV as "服务<br/>add_masks(...)"
participant SC as "脚本文件<br/>ScriptFile"
participant VS as "视频片段<br/>VideoSegment"
participant MS as "遮罩对象<br/>Mask"
C->>RT : POST /openapi/capcut-mate/v1/add_masks
RT->>SV : 校验并转发参数
SV->>SC : 从缓存获取草稿
SV->>SV : 查找遮罩类型
SV->>VS : 遍历片段ID并添加遮罩
VS->>MS : 构造遮罩对象并绑定到片段
SV->>SC : 保存草稿
SV-->>RT : 返回结果
RT-->>C : 响应

详细组件分析

接口定义与参数说明

  • 接口路径:POST /openapi/capcut-mate/v1/add_masks
  • 请求体字段

    • draft_url:草稿 URL(必填)
    • segment_ids:片段 ID 数组(必填)
    • name:遮罩类型名称(可选,默认"线性")
    • X、Y:遮罩中心坐标(像素,以素材中心为原点)
    • width、height:遮罩宽高(像素)
    • feather:羽化程度(0-100)
    • rotation:旋转角度(度,0-360)
    • invert:是否反转遮罩(布尔)
    • roundCorner:圆角半径(0-100,仅矩形遮罩有效)
  • 响应体字段

    • draft_url:更新后的草稿 URL
    • masks_added:成功添加的遮罩数量
    • affected_segments:受影响的片段 ID 列表
    • mask_ids:遮罩 ID 列表

遮罩类型与元数据

  • 支持的遮罩类型:线性、镜面、圆形、矩形、爱心、星形
  • 遮罩类型通过枚举 MaskType 定义,包含资源类型、资源 ID、效果 ID、MD5 与默认宽高比
  • 遮罩元数据 MaskMeta 描述遮罩的资源与默认参数
classDiagram
class EffectEnum {
+from_name(name)
}
class MaskMeta {
+string name
+string resource_type
+string resource_id
+string effect_id
+string md5
+float default_aspect_ratio
}
class MaskType {
+线性
+镜面
+圆形
+矩形
+爱心
+星形
}
EffectEnum <|-- MaskType
MaskType --> MaskMeta : "包含"

视频片段与遮罩对象

  • 视频片段 VideoSegment 提供添加遮罩的方法 add_mask(...)
  • 遮罩对象 Mask 表示具体的遮罩实例,包含中心坐标、宽高、旋转、反相、羽化、圆角等参数,并导出为 JSON
  • add_mask(...) 会根据遮罩类型与参数计算内部尺寸与比例,必要时对非矩形遮罩限制圆角与矩形宽度参数
classDiagram
class VideoSegment {
+add_mask(mask_type, center_x, center_y, size, rotation, feather, invert, rect_width, round_corner)
+mask : Mask
+material_size : (w,h)
}
class Mask {
+global_id : string
+center_x : float
+center_y : float
+width : float
+height : float
+aspect_ratio : float
+rotation : float
+invert : bool
+feather : float
+round_corner : float
+export_json() dict
}
VideoSegment --> Mask : "创建并持有"

服务层业务流程

  • 参数校验:草稿 URL 有效性、片段 ID 数组非空
  • 类型解析:根据 name 查找遮罩类型
  • 片段遍历:逐个定位片段,校验类型为视频片段,且每个片段仅允许一个遮罩
  • 尺寸换算:以素材宽高为基准,将 height 转换为 size(占素材高的比例),width 在矩形遮罩时转换为 rect_width
  • 添加遮罩:调用 VideoSegment.add_mask(...),按类型区分是否允许圆角与矩形宽度
  • 结果返回:保存草稿并返回结果
flowchart TD
Start(["开始"]) --> CheckDraft["校验草稿URL与缓存"]
CheckDraft --> DraftOK{"有效?"}
DraftOK -- 否 --> ErrDraft["抛出草稿无效错误"]
DraftOK -- 是 --> ParseType["解析遮罩类型"]
ParseType --> TypeOK{"类型存在?"}
TypeOK -- 否 --> ErrType["抛出遮罩类型错误"]
TypeOK -- 是 --> LoopSeg["遍历片段ID"]
LoopSeg --> FindSeg["定位片段"]
FindSeg --> IsVideo{"是否视频片段?"}
IsVideo -- 否 --> ErrSeg["抛出片段类型错误"]
IsVideo -- 是 --> HasMask{"片段已有遮罩?"}
HasMask -- 是 --> ReturnOld["返回现有遮罩ID"]
HasMask -- 否 --> CalcSize["计算size与rect_width"]
CalcSize --> AddMask["调用add_mask(...)"]
AddMask --> Save["保存草稿"]
Save --> Done(["结束"])
ErrDraft --> Done
ErrType --> Done
ErrSeg --> Done
ReturnOld --> Done

路由与请求/响应模型

  • 路由:/v1/add_masks,POST,接收 AddMasksRequest,返回 AddMasksResponse
  • 请求模型:定义字段与默认值
  • 响应模型:定义返回字段

遮罩参数对比分析

基于代码实现的分析:

坐标系统说明

  • 像素坐标系统:X、Y 使用像素坐标,原点位于素材中心
  • 尺寸参数:width、height 使用像素值;内部会根据素材宽高转换为相对比例与矩形宽度
  • 参数范围:所有数值参数都使用整数形式,范围在合理区间内

功能特性

  • 遮罩类型:支持线性、镜面、圆形、矩形、爱心、星形六种类型
  • 参数配置:支持羽化、旋转、反相、圆角等效果参数
  • 尺寸换算:自动处理像素到比例的转换,确保遮罩正确显示

依赖关系分析

  • 路由依赖服务层
  • 服务层依赖视频片段与遮罩元数据
  • 遮罩类型依赖遮罩元数据
  • 请求/响应模型独立于实现,便于接口文档化与契约约束
graph LR
R["路由"] --> S["服务"]
S --> V["视频片段"]
S --> T["遮罩类型"]
T --> E["遮罩元数据"]
M1["请求模型"] --> R
R --> M2["响应模型"]

性能考量

  • 批量处理:支持一次为多个片段添加遮罩,但应避免同时对大量片段并发添加,以免增加草稿保存压力
  • 参数范围:合理设置羽化、旋转、圆角等参数,避免极端值导致渲染开销增大
  • 片段限制:每个片段仅允许一个遮罩,重复添加会复用现有遮罩,减少重复创建成本
  • 草稿保存:每次添加完成后进行保存,建议在批量操作后统一触发保存,降低频繁 IO

故障排查指南

  • 常见错误与解决

    • 草稿 URL 无效或不在缓存中:检查 draft_url 的 draft_id 是否正确
    • 片段 ID 为空或不存在:确认 segment_ids 非空且存在于草稿中
    • 片段类型不支持:确保片段为视频片段(VideoSegment)
    • 遮罩类型不存在:确认 name 属于支持的类型之一
    • 遮罩添加失败:检查参数合法性与片段状态
  • 参数范围校验

    • 羽化:0-100
    • 旋转:0-360
    • 圆角:0-100(仅矩形遮罩有效)
  • 日志与追踪
    • 服务层记录关键步骤与错误信息,便于定位问题
    • 响应包含受影响片段与遮罩 ID,可用于后续验证

结论

遮罩效果接口提供了完整的遮罩创建与应用能力,覆盖多种遮罩类型与丰富的几何/效果参数。通过清晰的分层设计与严格的参数校验,能够在保证易用性的同时满足复杂场景需求。

附录

遮罩参数与坐标系统说明

  • 坐标系统:X、Y 以像素为单位,原点位于素材中心
  • 尺寸参数:width、height 以像素为单位;内部会根据素材宽高转换为相对比例与矩形宽度
  • 羽化:0 表示锐利边缘,100 表示最大柔和边缘
  • 旋转:0-360 度
  • 圆角:0-100,仅矩形遮罩有效
  • 反相:true 时反转遮罩效果

多遮罩叠加与合成规则

  • 每个视频片段仅允许一个遮罩;重复添加将返回现有遮罩 ID
  • 遮罩与视频内容的合成由底层实现决定,接口层不改变合成规则

实时预览与效果验证

  • 实时预览:建议在调用接口后立即保存草稿并生成视频进行验证
  • 效果验证:通过响应中的 affected_segments 与 mask_ids 核对遮罩是否正确应用
  • 调试方法:开启服务端日志,观察关键步骤与错误信息;逐步缩小参数范围定位问题

高级遮罩操作最佳实践

遮罩类型选择

  • 线性遮罩:适合简单的渐变效果
  • 镜面遮罩:创造对称反射效果
  • 圆形遮罩:突出圆形区域
  • 矩形遮罩:最灵活,支持圆角和尺寸调整
  • 爱心遮罩:特殊形状效果
  • 星形遮罩:装饰性效果

参数配置策略

  • 位置调整:使用 X、Y 参数精确定位遮罩中心
  • 尺寸优化:根据素材分辨率调整 width、height
  • 羽化设置:0-100 范围内根据视觉效果调整
  • 旋转应用:0-360 度范围内实现任意角度旋转
  • 圆角控制:仅对矩形遮罩有效,0-100 范围内调整

批量处理建议

  • 支持同时为多个片段添加相同配置的遮罩
  • 避免同时添加大量遮罩,建议分批处理
  • 合理设置参数范围,避免极端值影响性能
相关文章
|
1天前
|
存储 缓存 人工智能
阿里云百炼大模型服务平台是什么?最新模型调用收费标准、新人免费额度以及常见问题解答
阿里云百炼大模型服务平台是集成千问及第三方模型的一站式开发与应用平台,提供模型调用、调优、部署及应用构建等全链路服务。其优势包括丰富的模型生态、全链路开发工具、企业级安全合规及灵活计费模式,支持低/零代码开发,助力企业与开发者快速落地AI应用。2026年,新用户开通即享超7000万免费tokens,有效期90天,仅限模型推理调用,旨在降低初期成本,助力用户快速构建AI应用。
|
15天前
|
监控 前端开发 中间件
【开源剪映小助手】调试与故障排除
本指南面向capcut-mate开发者,系统梳理Python后端(FastAPI)、Electron桌面端与React前端的调试方法,涵盖日志分析、IPC通信、异常处理、性能优化及常见故障排查,助力高效定位与解决运行时问题。(239字)
97 10
|
1天前
|
存储 缓存 人工智能
当 Agent 从模型调用,走向系统工程:OpenAI 和 LangChain 的两种实践
OpenAI与LangChain最新实践揭示:AI Agent 正从“模型调用”迈向“系统工程”。前者以 WebSocket 优化API链路,提速40%;后者强调Feedback驱动Trace闭环,实现持续演进。效率与进化,缺一不可。
|
1月前
|
机器学习/深度学习 存储 缓存
大模型架构算力对比:Decoder-only、Encoder-Decoder、MoE深度解析.71
本文深入解析三大主流大模型架构(Decoder-only、Encoder-Decoder、MoE)的算力消耗差异,聚焦注意力机制复杂度、参数量与计算密度三大维度。通过公式推导、代码模拟与可视化图表,揭示MoE稀疏激活的显著节算优势及瓶颈,剖析长文本场景下的“平方级算力黑洞”成因,并提供面向不同场景的架构选型建议。
527 20
|
1月前
|
弹性计算 人工智能 API
阿里云ECS云服务器快速部署OpenClaw实战|千问大模型Qwen3.6-Plus一站式配置教程
随着AI智能体技术不断成熟,OpenClaw(曾用名Clawdbot)已经成为轻量化、可扩展、高稳定性的开源AI执行框架代表。它能够将自然语言指令转化为真实可执行的系统操作、文件处理、信息检索、流程自动化任务,真正实现从“对话”到“执行”的落地。
665 29
|
26天前
|
缓存 运维 中间件
【开源剪映小助手】生产环境部署
本指南详解 capcut-mate(基于 FastAPI 的视频编辑自动化工具)本地开发环境的 Docker 容器化部署,涵盖项目结构、核心组件、架构设计、性能优化与故障排查,助力开发者快速启动与调试。
|
2月前
|
Linux API 云计算
零基础保姆级|阿里云计算巢+MacOS/Linux/Windows11部署OpenClaw 技能集成+大模型配置全流程
2026年,AI自动化框架OpenClaw(原Clawdbot)凭借云端+本地双部署、多模型兼容与Skills插件化扩展能力,成为个人与团队实现复杂任务自动化的核心工具。阿里云计算巢提供OpenClaw官方一键部署方案,无需手动配置环境,5分钟即可完成云端部署;本地则支持MacOS、Linux、Windows11全系统部署,搭配阿里云千问、免费Coding Plan大模型API,再通过Skills扩展能力,可实现从信息查询、文件处理到流程自动化的全场景能力。
1033 15
|
18天前
|
存储 设计模式 缓存
为生产级 AI Agent 构建持久化记忆:五阶段流水线与四种设计模式
LLM Agent需持久化记忆以支撑连续对话、用户画像、知识沉淀与崩溃恢复。但满上下文方案成本高、延迟大、易出错。本文提出五阶段流水线(抽取→整合→存储→检索→遗忘)与四种记忆类型(工作/情景/语义/过程记忆),结合结构化状态+向量搜索等设计模式,实现高效、可控、可审计的生产级记忆系统。
387 9
为生产级 AI Agent 构建持久化记忆:五阶段流水线与四种设计模式
|
23天前
|
缓存 API UED
【开源剪映小助手】核心功能之草稿管理系统
剪映草稿管理系统基于FastAPI与Electron构建,支持草稿全生命周期管理、default2模板迁移、双文件(draft_content.json/draft_info.json)同步及跨平台目录扫描(robocopy/rsync),自动触发剪映/Premiere草稿发现,无需重启,提升创作效率。(239字)

热门文章

最新文章