火山引擎视频点播针对视频字幕提供精细化检测与擦除功能,实现高质量无痕擦除效果,最大程度还原视频画面。该功能支持擦除多语言字幕,还支持通过框选字幕位置进行擦除操作,避免误擦除,适用于短剧二次创作、教学视频制作、海外内容本地化等多种场景。本文为您详细介绍如何通过视频点播 OpenAPI 实现精细化字幕擦除。
- 高帧率 OCR 字幕检测:依托火山引擎高帧率 OCR 字幕检测算法,精准识别并定位短剧中的字幕内容。该技术针对短剧场景专门优化,不仅能准确区分需要擦除的字幕与需保留的剧情文本(剧情提示信息、剧名以及文字贴纸等),还采用高帧率抽帧确保无遗漏检测,为后续擦除奠定基础。
- 字幕擦除区域图像修复:在图像修复环节,采用自主研发的 AIGC 算法,结合时序分析与多帧联合处理,智能重建擦除区域的画面。算法通过光流计算和特征匹配保持帧间稳定性,并运用深度学习生成逼真纹理,使修复后的画面与原始视频无缝融合,几乎看不出修改痕迹,实现高质量的字幕擦除效果。
- 二次创作:短剧、出海短剧或长剧客户需对视频进行混剪或二次创作时,可去除原视频中的字幕,以便依据自身创意添加新的字幕或音频,使视频内容更契合新的主题与风格。
- 翻译剧:短剧客户需要将短剧在海外播放时,可先擦除原视频中的中文字幕,再添加准确、恰当的外文字幕,以助力不同语言背景的观众理解视频内容。同理,在引入海外短剧时,需擦除外文字幕并替换为中文字幕。
- 教学资源制作:教育工作者在制作教学视频过程中,可能会引用带有字幕的视频素材,然而这些字幕可能与教学内容不完全契合,甚至会对学生产生干扰。擦除原字幕并添加符合教学需求的字幕,有助于教学视频更为精准、清晰地传播知识。
- 语言学习:在编制语言学习资料时,为使学习者更有效地开展听力训练、口语模仿等练习,可去除视频中的字幕,营造无字幕的语言环境,以提升学习者的语言能力。
- 广告制作:在制作广告视频时,为凸显产品或品牌信息,可去除原视频里的无关字幕,并重新设计与广告风格及宣传重点相匹配的字幕,从而增强广告的视觉冲击力与信息传递效能。
- 多平台投放:在不同平台投放广告时,可依据平台特性与受众需求对字幕进行调整。擦除原有字幕并制作适配各平台的字幕,可增强广告的适应性并提升传播效果。
无误擦、无漏擦、高质量擦除效果
Replay
Play
00:00
/
00:38
Live
Fullscreen
Cssfullscreen
1x
精细化字幕擦除功能按实际输出视频时长计费。我们提供两种使用方式,其计费价格有所不同:
Aideo Agent 是火山引擎提供的一款视频 AI 应用智能体。您可以通过 Aideo Agent 快速、直观地体验字幕擦除的效果,或处理少量的视频任务。您无需编写任何代码,只需通过自然语言对话即可完成操作。关于 Aideo Agent 的详细介绍、开通方式和使用方法,请参见 Aideo Agent 快速开始。 注意:当前 Aideo Agent 暂不支持直接在 Agent 对话框预览擦除字幕后的视频。您需要按以下步骤查看产物:
- 在 Agent 的输出结果中,单击复制分析结果。
-
- 您将得到包含产物文件信息的 JSON 数据,示例如下:
- 从复制的数据中,获取 File.FileName字段的值(如上述示例中的 bcb1a7090d6243739d398a133984b3de 后,进行以下操作:
-
- 在搜索框中输入获取到的 FileName,即可找到处理完成的视频。
以下步骤将指导您以最少的配置,快速实现针对中英文字幕短剧场景的字幕自动检测与擦除。
调用 StartExecution 接口提交字幕擦除任务。以下为任务的核心参数配置。
- 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 请求构造方法与签名机制。 以上参数配置的效果展示如下:
Replay
Play
00:00
/
00:34
Live
Fullscreen
Cssfullscreen
1x
调用成功后,您将从响应中获取到任务的 RunId,可用于后续查询任务结果。
任务提交后,系统将在后台进行异步处理。您可以通过以下任一方式获取结果:
- 当任务完成时,您的服务将收到一个 EventType 为 ExecutionComplete 的 HTTP POST 请求。
当返回结果中的 Status 字段值为 Success 时,表示任务已成功完成。您可以在 Output.Task.Erase 字段中找到擦除后的产物信息。以下为产物相关的核心返回字段:
在步骤 2:获取任务结果中,您已经获取到了擦除产物的 Vid(仅当您在请求中设置了 NewVid: true 时返回)和 FileName。接下来,您需要将其转换为公网可访问的 URL,以便于播放或下载。 说明
前提条件:在获取文件的公网 URL 之前,您必须为产物所在的点播空间添加并配置一个加速域名。所有 URL 都将基于此域名生成。 调用 GetPlayInfo 接口,传入您获取到的 Vid。成功调用后,系统会在响应体 Result.PlayInfoList 中返回播放 URL。 方式 2:基于 FileName 手动拼接 URL
一个基础的访问 URL 由以下部分组成:[Protocol]://[PlaybackDomain]/[FileName]
- [Protocol]:通常为 https 或 http。取决于您是否配置 SSL 证书。
- [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...
在 Auto 模式下,将 Type 设置为 Subtitle 仅会擦除被识别为“字幕”的文本。如果视频中除了字幕,还包含其他渲染文本(如文字水印、视频标题等),而您希望将它们一并擦除,则需要调整擦除类型,将 Type 参数的值从 Subtitle 修改为 Text。
以上参数配置的效果展示如下:
Replay
Play
00:00
/
00:34
Live
Fullscreen
Cssfullscreen
1x
为实现更精确的擦除控制,您可以通过指定一个或多个矩形区域来限定擦除操作的范围。Manual 和 Auto 两种模式均支持指定框选区域,但工作逻辑有所不同。
在 Manual 模式下,系统会直接擦除您所指定区域内的所有符合基本特征(如白色)的文本,而不会进行 OCR 识别。此模式主要适用于以下场景:
- 处理小语种字幕:当 Auto 模式的 OCR 模型不支持视频中的语言时,可直接框选字幕区域进行擦除。
- 避免误擦:当 Auto 模式可能错误地擦除某些非字幕文本(如场景内的文字)时,通过 Manual 模式可以精确限定擦除范围。
- 强制擦除:当 Auto 模式未能识别并擦除某些文本时,可使用此模式进行强制处理。
配置方法:
- 将 Erase.Mode 设置为 Manual。
- 在 Erase.Manual.Locations 参数中,定义一个或多个矩形擦除区域。
每个区域的位置通过其左上角和右下角的坐标来定义,所有坐标值均为相对于视频总宽高的比例(取值范围 0.0 ~ 1.0)。假设您想要将下图橙色区域作为擦除区域,则参数设置如下:
- TopLeftX: 矩形左上角的 X 坐标(图中 b1)。
- TopLeftY: 矩形左上角的 Y 坐标(图中 a1)。
- BottomRightX: 矩形右下角的 X 坐标(图中 b2)。
- BottomRightY: 矩形右下角的 Y 坐标(图中 a2)。
示例:擦除视频下方特定区域内的所有文本
以下示例演示了如何配置 API,以擦除视频画面下部、高度占比 10%、左右边距各为 10% 的区域内的所有文本。
以上参数配置的效果展示如下:
Replay
Play
00:00
/
00:34
Live
Fullscreen
Cssfullscreen
1x
在 Auto 模式下,系统会首先通过 OCR 技术识别视频画面中的所有文本。当您同时指定了擦除区域时,系统仅会擦除那些被识别到且位置完全落入您指定区域内的文本。
配置方法:
- 根据需求设置 Erase.Auto.Type 为 Subtitle(仅字幕)或 Text(所有文本)。
- 在 Erase.Auto.Locations 参数中,定义一个或多个矩形擦除区域。
已知问题:
请尽量确保框选区域能够完整包含需要擦除的文字,否则可能出现以下问题:
示例:仅擦除屏幕下半区域的字幕
以下示例演示了如何配置 API,以擦除视频画面下半部分(Y 坐标 0.5-1.0)内 OCR 识别到的所有字幕。
有时您可能只想擦除视频的某一部分(如正片部分),而保留另一部分(如片头、片尾)的字幕。可通过 EraseOption.ClipFilter 参数定义一个或多个时间片段,并指定对这些片段执行 Selected(仅擦除选中片段)或 Skip(跳过选中片段,擦除其余部分)操作。
示例 1:仅擦除视频 10 - 60 秒之间的字幕
示例 2:跳过片头(前 15 秒),仅擦除正片部分的字幕
若 Auto 模式擦除了不想处理的文字(例如,误将场景内的招牌文字当作字幕擦除),建议您使用框选功能来限定擦除范围。根据具体情况,有两种操作方式:
- Auto 模式 + 框选:首选方案。系统仅会擦除该区域内 OCR 识别到的字幕,从而保护框外其他文字不受影响,兼顾智能识别与范围控制。
- Manual 模式 + 框选:如果 Auto 模式的 OCR 识别效果本身不理想(例如,无法识别小语种字幕),您可以切换到 Manual 模式。此模式会直接、强制性地擦除框内所有符合基本特征的文本,不依赖 OCR 识别。
任务提交后,如何确认结果是否可用?
精细化字幕擦除为异步任务。提交任务后,请记录接口返回的 RunId,并通过以下方式确认结果:
- 当返回结果中的 Status 为 Success 时,表示任务执行成功,可在 Output.Task.Erase 中查看产物信息。
- 如果请求中设置了 NewVid: true,可使用返回的 Vid 调用 GetPlayInfo 获取播放地址。
如果任务未成功,请优先检查输入文件是否满足能力限制、账号是否已开通相关能力、账户余额是否充足、请求参数是否符合 API 要求,以及是否配置了用于访问结果文件的点播加速域名。