视频画外音与字幕提取
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_a8b47583/extract-video-voiceover
技能介绍
问题
抖音、B站、快手、西瓜等平台的公开视频大多只有画面和声音,没有可直接外挂的字幕文件。人工听写、逐句转写成本高、周期长。这个技能把浏览器里真实播放的视频音轨抓下来,用本地 whisper.cpp 识别口播内容,直接产出中文 SRT 字幕。
工作方式
整条链路分四步:
- 抓取与下载:
python scripts/capture.py通过浏览器截获直链并下载,产出video.mp4、已抽好的audio.wav,以及兜底用的candidates.txt和plan.json;若自动下载失败,可跑scripts/download.py按plan.json重建任务。 - 音量自检(可选):
ffmpeg -i audio.wav -af volumedetect -f null -,mean 落在-10~-25dB说明有人声;若识别结果全是「(音樂)」或接近静音,多半是纯 BGM 无口播,直接如实反馈并交付视频自带文案。 - 转写:
whisper-cli挂ggml-medium-q5_0.bin,参数-l zh -osrt -otxt,产出transcript.srt/.txt。medium 模型优先于 small,准确率更稳。 - 校正出片:把人工校正后的文本逐行写入
corrected.txt,跑python scripts/make_srt.py合并原始时间轴,输出可直接外挂或烧录的subtitle_final.srt;没有时间戳线索时加--dur 4按固定时长分布。
适用边界与坑
- 可用:网页端能真实播放的公网视频——抖音、快手、西瓜、B站部分页面、新闻站、mp4 直链,以及 HLS(m3u8)、抖音式分离音视频流、m4a/aac/mp3 通用音频流。
- 不可用:微信视频号(
weixin.qq.com/sph/...)只返封面和文案、没有视频流,别反复试,让用户改用腾讯元宝。 - 抖音的
media-video-*流是纯视频无音轨,必须取media-audio-und-mp4a独立音频流,capture 脚本已自动处理。 - 本环境
faster-whisper/CTranslate2 段错误、openai-whisper装 torch 易断,必须用 whisper.cpp;HuggingFace 直连超时要走HF_ENDPOINT=https://hf-mirror.com并关掉 xet。 - 浏览器须关沙箱运行;带签名的直链刷新即失效,捕获后要在同一会话里尽快下载。
- B站/YouTube 多为 blob/MSE(DASH) 流,capture 拿不到完整音轨时,提示用户改用平台自带字幕或专用下载器,不要硬解。
使用场景
- 拿到一份抖音口播视频,需要把讲稿内容变成可编辑的SRT字幕
- 新闻站点的公开视频只有声音,需要转成中文文字稿存档
- 下载的mp4没有内嵌字幕,想给视频外挂一份校正后的subtitle文件
- 分离音视频流的视频需要先抽音轨,再交给whisper识别成中文
适合人员
- 短视频运营,需要批量把口播视频转成字幕用于二次剪辑
- MCN内容编辑,想从抖音或快手视频中提取讲稿改成图文内容
- 独立开发者,打算给自己的内容站加一个自动生成SRT字幕的脚本
- 字幕组志愿者,需要从公开视频中提取中文音轨并校正时间轴