You need to enable JavaScript to run this app.
文档中心
视频点播

视频点播

复制全文
下载 pdf
视频 AI 应用
精细化字幕擦除
复制全文
下载 pdf
精细化字幕擦除
火山引擎视频点播针对视频字幕提供精细化检测与擦除功能,实现高质量无痕擦除效果,最大程度还原视频画面。该功能支持擦除多语言字幕,还支持通过框选字幕位置进行擦除操作,避免误擦除,适用于短剧二次创作、教学视频制作、海外内容本地化等多种场景。本文为您详细介绍如何通过视频点播 OpenAPI 实现精细化字幕擦除。​
优势特性​
  • 高帧率 OCR 字幕检测:依托火山引擎高帧率 OCR 字幕检测算法,精准识别并定位短剧中的字幕内容。该技术针对短剧场景专门优化,不仅能准确区分需要擦除的字幕与需保留的剧情文本(剧情提示信息、剧名以及文字贴纸等),还采用高帧率抽帧确保无遗漏检测,为后续擦除奠定基础。​
  • 字幕擦除区域图像修复:在图像修复环节,采用自主研发的 AIGC 算法,结合时序分析与多帧联合处理,智能重建擦除区域的画面。算法通过光流计算和特征匹配保持帧间稳定性,并运用深度学习生成逼真纹理,使修复后的画面与原始视频无缝融合,几乎看不出修改痕迹,实现高质量的字幕擦除效果。​
应用场景​
  • 短剧、出海短剧、电视剧:​
  • 二次创作:短剧、出海短剧或长剧客户需对视频进行混剪或二次创作时,可去除原视频中的字幕,以便依据自身创意添加新的字幕或音频,使视频内容更契合新的主题与风格。​
  • 翻译剧:短剧客户需要将短剧在海外播放时,可先擦除原视频中的中文字幕,再添加准确、恰当的外文字幕,以助力不同语言背景的观众理解视频内容。同理,在引入海外短剧时,需擦除外文字幕并替换为中文字幕。​
  • 教育与培训:​
  • 教学资源制作:教育工作者在制作教学视频过程中,可能会引用带有字幕的视频素材,然而这些字幕可能与教学内容不完全契合,甚至会对学生产生干扰。擦除原字幕并添加符合教学需求的字幕,有助于教学视频更为精准、清晰地传播知识。​
  • 语言学习:在编制语言学习资料时,为使学习者更有效地开展听力训练、口语模仿等练习,可去除视频中的字幕,营造无字幕的语言环境,以提升学习者的语言能力。​
  • 广告与营销:​
  • 广告制作:在制作广告视频时,为凸显产品或品牌信息,可去除原视频里的无关字幕,并重新设计与广告风格及宣传重点相匹配的字幕,从而增强广告的视觉冲击力与信息传递效能。​
  • 多平台投放:在不同平台投放广告时,可依据平台特性与受众需求对字幕进行调整。擦除原有字幕并制作适配各平台的字幕,可增强广告的适应性并提升传播效果。​
擦除效果示例​
无误擦、无漏擦、高质量擦除效果​
​
Replay
Play
00:00 / 00:38 Live
00:00
Fullscreen
Cssfullscreen
1x
  • 2x
  • 1.5x
  • 1x
  • 0.75x
  • 0.5x
Click and hold to drag
​
​
能力与限制​
​
​
项目​
说明​
支持擦除的字幕​
字幕的样式对擦除效果影响很大,白色、无黑色阴影、大小合适、非花字、横向排列的字幕更易于擦除。​
不适用的字幕​
竖向排列的字幕、超大字幕、透明度高的字幕,不适合用本功能处理。​
智能保护的内容​
算法会尽量保护非字幕的文本,比如画面里的场景文字、备案信息、花字、地点信息、文字水印、剧情提示、人物提示、文字贴纸等。​
输出视频分辨率​
输出视频的分辨率与输入视频的分辨率保持一致。输入视频的分辨率大于 1080p 时,则默认按照 1080p 输出。​
​
计费说明​
精细化字幕擦除功能按实际输出视频时长计费。我们提供两种使用方式,其计费价格有所不同:​
​
​
使用方式​
价格(元/分钟)​
适用场景​
通过 Aideo Agent​
1​
推荐用于快速体验、效果评测和轻量级的字幕擦除任务。​
通过 StartExecution 接口​
4​
推荐用于程序化、大批量的字幕擦除任务,适合深度集成到您的生产工作流中。​
​
前提条件​
通过 Agent 快速体验​
Aideo Agent 是火山引擎提供的一款视频 AI 应用智能体。您可以通过 Aideo Agent 快速、直观地体验字幕擦除的效果,或处理少量的视频任务。您无需编写任何代码,只需通过自然语言对话即可完成操作。关于 Aideo Agent 的详细介绍、开通方式和使用方法,请参见 Aideo Agent 快速开始。​
注意:当前 Aideo Agent 暂不支持直接在 Agent 对话框预览擦除字幕后的视频。您需要按以下步骤查看产物:​
  1. 在 Agent 的输出结果中,单击复制分析结果。​
  • ​Image​​
  • 您将得到包含产物文件信息的 JSON 数据,示例如下:​
  • ​
    {​
    "Duration": 89.2,​
    "File": {​
    "Size": "115129306",​
    "FileName": "bcb1a7090d6243739d398a133984b3de"​
    }​
    }​
    ​
  1. 从复制的数据中,获取 File.FileName字段的值(如上述示例中的 bcb1a7090d6243739d398a133984b3de 后,进行以下操作:​
  • ​Image​​
  1. 前往视频点播控制台的视频管理页面。​
  1. 切换到 DirectUrl 模式页签。​
  1. 在搜索框中输入获取到的 FileName,即可找到处理完成的视频。​
  1. 单击生成访问地址,可获取视频的播放链接。​
API 快速入门(短剧字幕擦除)​
以下步骤将指导您以最少的配置,快速实现针对中英文字幕短剧场景的字幕自动检测与擦除。​
步骤 1:提交字幕擦除任务​
调用 StartExecution 接口提交字幕擦除任务。以下为任务的核心参数配置。​
  • Input: 指定输入文件。​
  • Type: 设置为 Vid 或 DirectUrl。​
  • Vid / DirectUrl: 提供待处理文件的 Vid 或 FileName 信息。​
  • Operation.Task: 定义要执行的任务。​
  • Type: 必须设置为 Erase,表示执行字幕擦除任务。​
  • Erase.Mode: 设置为 Auto(自动擦除模式),系统将启用 OCR 识别,并依据检测结果进行擦除操作。​
  • Erase.Auto.Type:设置为 Subtitle,表示仅擦除字幕。​
  • Erase.Auto.SubtitleFilter:设为空 JSON 对象 {}。​
  • Erase.NewVid:设置为 true,表示为擦除产物生成 Vid。​
此配置下,系统会自动识别并擦除满足以下条件的字幕:​
  • 位置:位于视频画面下方 50% 以内,且在横向偏中央的位置。​
  • 大小:文字竖向高度在视频高度的 1%~10% 之间。​
  • 颜色:白色。​
请求示例:​
说明​
以下 HTTP 示例仅展示核心的业务参数,省略了 Authorization 请求头中的签名计算等鉴权细节。在实际发起请求前,请参考如何调用 OpenAPI 文档,了解如何在线测试接口、获取可运行的 curl 命令以及完整的 HTTP 请求构造方法与签名机制。​
​
POST https://vod.volcengineapi.com?Action=StartExecution&Version=2025-01-01​
{​
"Input": {​
"Type": "Vid",​
"Vid": "your_video_vid"​
},​
"Operation": {​
"Type": "Task",​
"Task": {​
"Type": "Erase",​
"Erase": {​
"Mode": "Auto",​
"Auto": {​
"Type": "Subtitle",​
"SubtitleFilter":{}​
},​
"WithEraseInfo": true,​
"NewVid": true​
}​
}​
}​
}​
​
以上参数配置的效果展示如下:​
​
Replay
Play
00:00 / 00:34 Live
00:00
Fullscreen
Cssfullscreen
1x
  • 2x
  • 1.5x
  • 1x
  • 0.75x
  • 0.5x
Click and hold to drag
​
​
调用成功后,您将从响应中获取到任务的 RunId,可用于后续查询任务结果。​
步骤 2:获取任务结果​
任务提交后,系统将在后台进行异步处理。您可以通过以下任一方式获取结果:​
  • 主动查询:调用 GetExecution 接口,并传入步骤 1 中获取的 RunId 来获取任务结果。​
  • ​
    GET https://vod.volcengineapi.com?Action=GetExecution&Version=2025-01-01&RunId=hb:ebd05bee1f3873***f7316c742b5f​
    ​
  • 事件通知:​
  1. 参考事件通知概述文档,配置一个用于接收回调的服务地址。在订阅事件时,勾选媒体处理任务执行完成事件。​
  1. 当任务完成时,您的服务将收到一个 EventType 为 ExecutionComplete 的 HTTP POST 请求。​
当返回结果中的 Status 字段值为 Success 时,表示任务已成功完成。您可以在 Output.Task.Erase 字段中找到擦除后的产物信息。以下为产物相关的核心返回字段:​
​
{​
"ResponseMetadata": {​
// ... 已省略通用元数据​
},​
"Result": {​
"RunId": "hb:e3eb1668d43fa761420ac95057****",​
"Status": "Success",​
// ... 已省略任务元数据、输入、操作等信息​
"Output": {​
"Type": "Task",​
"Task": {​
"Type": "Erase",​
"Erase": {​
"Duration": 57.099,​
"File": {​
"Size": "152295931",​
"FileName": "0b7c1420fee342e39792b847b8a****.mp4",​
"Vid": "v0ccfeg7007acsg***fog65ubr7niqng"​
},​
"Info": {​
"Width": 1080,​
"Height": 1920,​
"Areas": [​
{​
"Start": 0,​
"End": 57.08,​
"PixelRectangle": [​
{​
"TopLeftX": 108,​
"TopLeftY": 960,​
"BottomRightX": 1067,​
"BottomRightY": 1919​
}​
]​
}​
]​
}​
}​
}​
}​
}​
}​
​
步骤 3:获取产物 URL​
在步骤 2:获取任务结果中,您已经获取到了擦除产物的 Vid(仅当您在请求中设置了 NewVid: true 时返回)和 FileName。接下来,您需要将其转换为公网可访问的 URL,以便于播放或下载。​
说明​
前提条件:在获取文件的公网 URL 之前,您必须为产物所在的点播空间添加并配置一个加速域名。所有 URL 都将基于此域名生成。​
方式 1:调用 GetPlayInfo 接口​
调用 GetPlayInfo 接口,传入您获取到的 Vid。成功调用后,系统会在响应体 Result.PlayInfoList 中返回播放 URL。​
方式 2:基于 FileName 手动拼接 URL​
一个基础的访问 URL 由以下部分组成:[Protocol]://[PlaybackDomain]/[FileName]​
  • [PlaybackDomain]:您在点播控制台配置的加速域名。​
  • [FileName]:您从任务结果中获取的产物 FileName。​
拼接示例:假设您的加速域名为 play.example.com,获取到的文件 FileName 为 video.mp4,那么拼接后的基础 URL 为:https://play.example.com/video.mp4​
说明​
为了防止资源被盗链,视频点播支持 URL 鉴权功能。如果您在视频点播控制台开启了 URL 鉴权,仅拼接基础 URL 还无法直接访问,您必须为其附加一个动态计算的鉴权参数(如 auth_key)。​
  • 如何生成鉴权参数:URL 鉴权需要遵循一套严格的签名算法。详细的计算方法和不同语言的实现示例,请参见 URL 鉴权概述。​
  • 附带鉴权的完整 URL 示例:https://play.example.com/video.mp4?auth_key=1732529334-0-0-a1b2c3d4e5f6...​
API 进阶使用​
擦除字幕及其他渲染文本​
在 Auto 模式下,将 Type 设置为 Subtitle 仅会擦除被识别为“字幕”的文本。如果视频中除了字幕,还包含其他渲染文本(如文字水印、视频标题等),而您希望将它们一并擦除,则需要调整擦除类型,将 Type 参数的值从 Subtitle 修改为 Text。​
示例:擦除字幕及其他渲染文本​
​
{​
"Input": { ... },​
"Operation": {​
"Type": "Task",​
"Task": {​
"Type": "Erase",​
"Erase": {​
"Mode": "Auto",​
"Auto": {​
"Type": "Text" // 修改此处为 Text​
}​
}​
}​
}​
}​
​
以上参数配置的效果展示如下:​
​
Replay
Play
00:00 / 00:34 Live
00:00
Fullscreen
Cssfullscreen
1x
  • 2x
  • 1.5x
  • 1x
  • 0.75x
  • 0.5x
Click and hold to drag
​
​
指定擦除区域(框选擦除)​
为实现更精确的擦除控制,您可以通过指定一个或多个矩形区域来限定擦除操作的范围。Manual 和 Auto 两种模式均支持指定框选区域,但工作逻辑有所不同。​
Manual 模式下指定擦除区域​
在 Manual 模式下,系统会直接擦除您所指定区域内的所有符合基本特征(如白色)的文本,而不会进行 OCR 识别。此模式主要适用于以下场景:​
  • 处理小语种字幕:当 Auto 模式的 OCR 模型不支持视频中的语言时,可直接框选字幕区域进行擦除。​
  • 避免误擦:当 Auto 模式可能错误地擦除某些非字幕文本(如场景内的文字)时,通过 Manual 模式可以精确限定擦除范围。​
  • 强制擦除:当 Auto 模式未能识别并擦除某些文本时,可使用此模式进行强制处理。​
配置方法:​
  1. 将 Erase.Mode 设置为 Manual。​
  1. 在 Erase.Manual.Locations 参数中,定义一个或多个矩形擦除区域。​
每个区域的位置通过其左上角和右下角的坐标来定义,所有坐标值均为相对于视频总宽高的比例(取值范围 0.0 ~ 1.0)。假设您想要将下图橙色区域作为擦除区域,则参数设置如下:​
  • TopLeftX: 矩形左上角的 X 坐标(图中 b1)。​
  • TopLeftY: 矩形左上角的 Y 坐标(图中 a1)。​
  • BottomRightX: 矩形右下角的 X 坐标(图中 b2)。​
  • BottomRightY: 矩形右下角的 Y 坐标(图中 a2)。​
​Image​​
示例:擦除视频下方特定区域内的所有文本​
以下示例演示了如何配置 API,以擦除视频画面下部、高度占比 10%、左右边距各为 10% 的区域内的所有文本。​
​
{​
"Input": {​
"Type": "Vid",​
"Vid": "your_video_vid"​
},​
"Operation": {​
"Type": "Task",​
"Task": {​
"Type": "Erase",​
"Erase": {​
"Mode": "Manual",​
"Manual": {​
"Locations": [​
{​
"RatioLocation": {​
"TopLeftX": 0.10,​
"TopLeftY": 0.85,​
"BottomRightX": 0.90,​
"BottomRightY": 0.95​
}​
}​
]​
}​
}​
}​
}​
}​
​
以上参数配置的效果展示如下:​
​
Replay
Play
00:00 / 00:34 Live
00:00
Fullscreen
Cssfullscreen
1x
  • 2x
  • 1.5x
  • 1x
  • 0.75x
  • 0.5x
Click and hold to drag
​
​
Auto 模式下指定擦除区域​
在 Auto 模式下,系统会首先通过 OCR 技术识别视频画面中的所有文本。当您同时指定了擦除区域时,系统仅会擦除那些被识别到且位置完全落入您指定区域内的文本。​
配置方法:​
  1. 将 Erase.Mode 设置为 Auto。​
  1. 根据需求设置 Erase.Auto.Type 为 Subtitle(仅字幕)或 Text(所有文本)。​
  1. 在 Erase.Auto.Locations 参数中,定义一个或多个矩形擦除区域。​
已知问题:​
请尽量确保框选区域能够完整包含需要擦除的文字,否则可能出现以下问题:​
​
​
框内部分文字无法擦除干净​
擦除效果轻微溢出到框选区域之外​
​Image​​
​Image​​
​
示例:仅擦除屏幕下半区域的字幕​
以下示例演示了如何配置 API,以擦除视频画面下半部分(Y 坐标 0.5-1.0)内 OCR 识别到的所有字幕。​
​
{​
"Input": {​
"Type": "Vid",​
"Vid": "your_video_vid"​
},​
"Operation": {​
"Type": "Task",​
"Task": {​
"Type": "Erase",​
"Erase": {​
"Mode": "Auto",​
"Auto": {​
"Type": "Subtitle",​
// 在 Auto 模式下新增 Locations 参数以指定擦除区域​
"Locations": [​
{​
"RatioLocation": {​
"TopLeftX": 0.0,​
"TopLeftY": 0.5,​
"BottomRightX": 1.0,​
"BottomRightY": 1.0​
}​
}​
]​
}​
}​
}​
}​
}​
​
按时间段擦除/保留字幕​
有时您可能只想擦除视频的某一部分(如正片部分),而保留另一部分(如片头、片尾)的字幕。可通过 EraseOption.ClipFilter 参数定义一个或多个时间片段,并指定对这些片段执行 Selected(仅擦除选中片段)或 Skip(跳过选中片段,擦除其余部分)操作。​
示例 1:仅擦除视频 10 - 60 秒之间的字幕​
​
{​
"Input": { ... },​
"Operation": {​
"Type": "Task",​
"Task": {​
"Type": "Erase",​
"Erase": {​
"Mode": "Auto",​
"Auto": {​
"Type": "Subtitle",​
"SubtitleFilter":{}​
},​
"EraseOption": {​
"ClipFilter": {​
"Mode": "Selected", // 模式:选中​
"Clips": [​
{​
"Start": 10.0,​
"End": 60.0​
}​
]​
}​
}​
}​
}​
}​
}​
​
示例 2:跳过片头(前 15 秒),仅擦除正片部分的字幕​
​
{​
"Input": { ... },​
"Operation": {​
"Type": "Task",​
"Task": {​
"Type": "Erase",​
"Erase": {​
"Mode": "Auto",​
"Auto": {​
"Type": "Subtitle",​
"SubtitleFilter":{}​
},​
"EraseOption": {​
"ClipFilter": {​
"Mode": "Skip", // 模式:跳过​
"Clips": [​
{​
"Start": 0.0,​
"End": 15.0​
}​
]​
}​
}​
}​
}​
}​
}​
​
相关 API 文档​
常见问题​
如果发生了非字幕的误擦,应该如何操作?​
若 Auto 模式擦除了不想处理的文字(例如,误将场景内的招牌文字当作字幕擦除),建议您使用框选功能来限定擦除范围。根据具体情况,有两种操作方式:​
  • Auto 模式 + 框选:首选方案。系统仅会擦除该区域内 OCR 识别到的字幕,从而保护框外其他文字不受影响,兼顾智能识别与范围控制。​
  • Manual 模式 + 框选:如果 Auto 模式的 OCR 识别效果本身不理想(例如,无法识别小语种字幕),您可以切换到 Manual 模式。此模式会直接、强制性地擦除框内所有符合基本特征的文本,不依赖 OCR 识别。​
关于如何使用框选功能,请参见指定擦除区域(框选擦除)。​
任务提交后,如何确认结果是否可用?​
精细化字幕擦除为异步任务。提交任务后,请记录接口返回的 RunId,并通过以下方式确认结果:​
  1. 调用 GetExecution 查询任务执行结果,或通过媒体处理任务执行完成事件接收完成通知。​
  1. 当返回结果中的 Status 为 Success 时,表示任务执行成功,可在 Output.Task.Erase 中查看产物信息。​
  1. 如果请求中设置了 NewVid: true,可使用返回的 Vid 调用 GetPlayInfo 获取播放地址。​
  1. 如果返回结果中包含 FileName,可参考获取产物 URL拼接公网访问地址,或参考下载媒体文件下载结果文件。​
如果任务未成功,请优先检查输入文件是否满足能力限制、账号是否已开通相关能力、账户余额是否充足、请求参数是否符合 API 要求,以及是否配置了用于访问结果文件的点播加速域名。​
​
最近更新时间:2026.09.15 10:35:33
这个页面对您有帮助吗?
有用
有用
无用
无用