要点速览
- 硬字幕烧在像素里,不是文字层,取不出文本
- 只能通过截图加 OCR 的方式逐帧识别
- 内容需求优先走语音识别,画面需求才值得截图
- 按字幕变化点截取,不必逐帧截图
支持的视频格式与转写参数
| 项目 | 说明 |
|---|---|
| 支持格式 | MP4、MOV、WebM |
| 单文件上限 | 50MB |
| 建议时长 | 5 分钟以内 |
| 参考耗时 | 约 1 分钟 |
| 音轨处理 | 浏览器本地提取,画面数据不上传 |
| 输出方式 | 复制到剪贴板、导出 TXT |
| 需先转换 | AVI、MKV、FLV、WMV 需先转 MP4 |
为什么硬字幕这么难提取
软字幕是独立的一层数据,和画面分开存储,提取时相当于复制一段文本。硬字幕不一样,它在视频导出时就被烧进了画面像素,和背景融为一体,计算机看不到"这是字幕",只看到一堆深浅不一的点。
要把它取出来,只能反过来做:把画面当成一张张图片,用图像识别去判断哪些像素构成了文字。这个过程的成本远高于解析字幕文件,也高于语音识别。
两种需求的判断标准
| 需求 | 推荐路径 | 理由 |
|---|---|---|
| 只要字幕的文字内容 | 语音识别 | 从音轨获取,成本低、速度快 |
| 需要画面上的其他文字 | 截图加 OCR | 板书、界面、数据只能从画面取 |
| 字幕与画面信息都要 | 两条路径结合 | 分别处理再合并 |
| 视频没有音轨 | 截图加 OCR | 唯一可行的路径 |
硬字幕提取的实际做法
裁图这一步很关键。字幕通常位于画面底部或顶部的固定位置,把这块区域单独裁出来,能减少背景干扰,也显著减小图片体积,加快识别速度。
- 按字幕变化的时间点截取画面,不必逐帧截取
- 裁掉非字幕区域,只保留字幕所在的横条
- 把截取的图片上传到图片识别通道
- 按时间顺序拼接识别结果,还原完整文本
降低工作量的技巧
不需要每一帧都截图。字幕一般持续一两秒,按字幕切换的时间点截取即可。一条十分钟的视频,字幕条数通常在两百到四百条之间,这是需要处理的实际数量。
如果视频画面相对静止、字幕是唯一变化元素,可以借助支持按场景变化导出的工具批量截图,比手动截取快得多。
识别结果里常混入画面背景的字符,比如台标、水印、滚动弹幕。整理时按顺序通读一遍,把明显不属于字幕的内容删掉即可。
实在拿不准要不要走这条路时,可以先试一段。截取一两分钟的画面做识别,估算完整视频的工作量,再决定是否值得。
什么情况下不建议做硬字幕提取
如果视频有音轨、你又只需要文字内容,硬字幕提取是绕远路。语音识别能拿到同样甚至更完整的内容,成本低一个量级。
如果视频没有音轨,或者是外语内容但你不掌握该语言,硬字幕提取的意义就体现出来了——画面上的字幕是唯一的文字来源。这种情况下付出额外工作量是值得的。
另外,如果画面上的字幕本身就不清晰、被动画效果反复覆盖,识别质量会很差,建议先取一小段测试再决定。
先算一笔账再动手
硬字幕提取的工作量比语音识别高一个量级。开始之前,值得先估算一下总成本:视频时长乘以每秒字幕条数,再乘以每条的截取和识别时间。一条十分钟的视频,往往是几百次截图和识别的量级。
算完之后再判断值不值。如果只是要内容,语音识别的成本可能只有它的十分之一;如果画面上的字幕是唯一来源(比如没有音轨、或者是外语内容),那这笔投入就是必要的。
拿不准时,先做一小段试跑。取一到两分钟的画面完整走一遍流程,把实际耗时乘以总时长,得到的结果比凭空估计准确得多。
常见问题
硬字幕能用软件一键提取吗?
部分工具支持按场景自动截帧,但本质仍是截图加识别的组合,无法像解析字幕文件那样一次拿到全部文本。
为什么不直接对整段视频做识别?
视频是连续画面,图像识别处理的是单张图片。必须先切分成帧或按字幕变化点截取,才能逐张识别。
硬字幕提取的准确率如何?
取决于字幕清晰度和背景复杂程度。字幕清晰、背景简单的画面识别率较高,有动画特效或与背景颜色接近时准确率会下降。
我只需要文字内容,还要做硬字幕提取吗?
不需要。视频有音轨的话,用语音识别获取文字内容更快、更准确,是更合理的选择。