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

简介: 本文档详述遮罩效果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 范围内调整

批量处理建议

  • 支持同时为多个片段添加相同配置的遮罩
  • 避免同时添加大量遮罩,建议分批处理
  • 合理设置参数范围,避免极端值影响性能
相关文章
|
2月前
|
存储 缓存 人工智能
阿里云百炼大模型服务平台是什么?最新模型调用收费标准、新人免费额度以及常见问题解答
阿里云百炼大模型服务平台是集成千问及第三方模型的一站式开发与应用平台,提供模型调用、调优、部署及应用构建等全链路服务。其优势包括丰富的模型生态、全链路开发工具、企业级安全合规及灵活计费模式,支持低/零代码开发,助力企业与开发者快速落地AI应用。2026年,新用户开通即享超7000万免费tokens,有效期90天,仅限模型推理调用,旨在降低初期成本,助力用户快速构建AI应用。
|
1月前
|
存储 人工智能 数据可视化
MindWord:像画图一样写文档,让结构化写作回归直觉
这是一款基于思维导图的写作工具,通过可视化的多层级思维导图与 Markdown 双向同步编辑,支持 AI 辅助生成节点与描述,并能导出带 Word 模板样式的文档。 面向用户群体:写作者、产品经理、vibe coding爱好者、脑力工作者等。
325 4
MindWord:像画图一样写文档,让结构化写作回归直觉
|
1月前
|
人工智能 分布式计算 监控
多智能体集群审计机制设计:免疫、熔断与信誉治理
多智能体系统(MAS)在提升 LLM 应用能力的同时,也带来了幻觉级联、伪共识等新型风险。本文基于枢衡(Shuheng)V2 集群的工程实践,系统阐述审计角色(CAD)的架构设计——涵盖免疫系统与熔断器的双职能模型、职责隔离的四项红线、五类实质性测试的审计协议、多维信誉账本的动态治理机制,以及审计与创新之间的张力平衡。文末提供可直接落地的协议设计参考。
|
1月前
|
JSON 缓存 人工智能
【剪映小助手】媒体处理接口
CapCut Mate 是基于 FastAPI 的剪映自动化媒体处理接口,支持视频、音频、图片、贴纸的批量添加与轨道管理,提供草稿创建/保存/获取及标准化错误处理,助力高效、可控的AI视频编辑流程。(239字)
|
2月前
|
人工智能 自然语言处理 供应链
为什么 MCP 在协议层会有 prompt injection的问题:工具描述如何劫持 agent 上下文
MCP(Model Context Protocol)虽成AI Agent主流集成标准,但其将工具描述全量注入上下文的设计,导致“Context Poisoning”——恶意指令可借工具元数据污染LLM推理。OWASP将其列为LLM应用头号漏洞,2025年已致超10万站点遭袭。根本风险在于协议层信任模型缺失,非清洗不可用。
238 12
为什么 MCP 在协议层会有 prompt injection的问题:工具描述如何劫持 agent 上下文
|
28天前
|
缓存 Java Devops
云效 Maven 私有仓库实战:团队 jar 包依赖管理的 3 个高效配置,版本冲突率降低 80%
中小团队做 Java 开发,jar 包依赖管理经常出现三类问题:公共模块改了没人通知导致编译失败、SNAPSHOT 版本不一致引发线上诡异 bug、自建 Nexus 服务器维护成本高。阿里云云效制品仓库 Packages 提供免费 Maven 私有仓库,5 分钟开通,通过 settings.xml + pom.xml + CI/CD 流水线三步配置即可实现团队 jar 包统一管理。本文从创建仓库、settings.xml 完整配置、本地/流水线上传下载 jar 包、到 version 冲突排查,覆盖全流程,实测将团队依赖管理时间缩短 80%。
|
1月前
|
人工智能 弹性计算 API
OpenClaw+阿里云百炼Token Plan 一站式部署与配置流程
OpenClaw作为一款开源可自托管的AI智能体执行框架,能让大模型从单纯对话升级为可执行文件处理、代码编写、流程自动化等任务的数字助手。在阿里云上部署OpenClaw并接入百炼Token Plan,可依托阿里云稳定的云服务与百炼的大模型能力,打造专属、高效、低成本的AI智能体服务。本文将从准备工作、阿里云服务器部署、百炼Token Plan开通与密钥获取、OpenClaw配置、功能验证到常见问题排查,提供完整实操流程,帮助用户快速完成部署与配置。
385 9
|
1月前
|
人工智能 运维 JavaScript
零基础入门教程:阿里云 Hermes Agent 一键部署完整流程详解(图文版)
随着AI智能体技术不断普及,Hermes Agent凭借出色的长对话记忆、复杂任务拆解、逻辑推理与多轮交互能力,成为个人办公、学习答疑、日常协作、智能辅助的热门开源工具。相较于普通对话机器人,Hermes Agent能够完整承接长链路任务、记住全程对话上下文,在深度交流、方案梳理、问题分析等场景表现尤为突出。
366 3
零基础入门教程:阿里云 Hermes Agent 一键部署完整流程详解(图文版)
|
2月前
|
人工智能 自然语言处理 监控
OpenClaw“养龙虾”保姆级教程:从零基础部署到进阶玩法与安全避坑指南
2026年,一款名为OpenClaw的开源AI智能体迅速走红全网,凭借红色龙虾样式的标识,被爱好者亲切称作“龙虾”,而部署、调教与使用OpenClaw的全过程,也被大家戏称为“养龙虾”。OpenClaw的核心理念是打造真正能落地执行任务的AI,它打破了传统AI仅停留在对话交互的局限,通过赋予模型操作系统、操控软件、读写文件、控制浏览器、执行代码等真实操作权限,让AI从“聊天助手”升级为可以自主干活的数字员工,能够理解自然语言指令并独立完成一系列自动化工作流。
802 7

热门文章

最新文章