本地批量烧录器 · v1.0.0
一次烧几十条,然后去睡觉
把网页「批量处理」下载的字幕,用你电脑上的原生 ffmpeg 一次烧成一条条成片。 无人值守、可断点续传、失败自动重试。
视频从头到尾都在你本地。不用注册,不用上传,除了首次取一份字幕字体,之后完全离线可用。
下载(约 35 KB)macOS / Windows / Linux · 需要 Python 3.8+ 与 ffmpeg · 仅标准库,无需 pip 安装任何依赖
它解决的是网页版的最后一处别扭
批量链路里,识别和翻译都在服务端跑完(可以关掉页面), 唯独烧录成片是在浏览器里一条一条过的——20 条视频就是 20 次人工等待, 标签页不能关、电脑不能睡,大文件还可能中途被浏览器杀掉。
快一个数量级
原生编解码,不再是浏览器里的 wasm 沙箱。
无人值守
指一个文件夹,全部烧完,烧完弹系统通知。
断点续传
中途关机,原样再跑一次就接着烧,已完成的自动跳过。
与网页所见一致
同一套样式引擎、同一份字幕字体,本地烧出来和网页预览一致。
三步开始
- 1
装 ffmpeg(只需一次)
# macOS brew install ffmpeg# Windows winget install Gyan.FFmpeg# Ubuntu sudo apt install ffmpeg装完新开一个终端再继续。
- 2
解压下载的包
得到一个
smilesub-burn-1.0.0文件夹, 里面有smilesub_burn.py和README.md。 - 3
双击运行,或者用命令行
macOS 双击
burn.command,Windows 双击burn.bat,把两个文件夹拖进去就行。 想要完整功能就用命令行:# 先看清楚会怎么配对(一个字节都不烧)python3 smilesub_burn.py --videos ./raw --subs ./batch.zip \--out ./burned --dry-run# 确认无误后去掉 --dry-run 正式开跑python3 smilesub_burn.py --videos ./raw --subs ./batch.zip --out ./burned
--dry-run:它只打印「哪条视频配哪份字幕、 会生成什么文件名」。批量任务跑两小时才发现配错了,是很常见的坑。 它不做什么
- · 不上传任何东西——视频从头到尾都在你本地。
- · 不联网(第一次取字体除外)。
- · 不做识别和翻译——那是网页版的活,这里只负责最后一米。
- · 不是网页版的替代——样式模板、术语表、多语种翻译都在网页里选好,这里只把结果落地。
常见问题
需要装什么?
Python 3.8 或更高版本,以及 ffmpeg(含 ffprobe)。工具本身只用 Python 标准库,不需要 pip 安装任何东西。装完 ffmpeg 后记得新开一个终端再运行。
视频会上传吗?
不会。视频从头到尾都在你本地,工具也不会访问网络——唯一的例外是第一次运行时下载一份字幕字体(约 16MB),之后缓存到本机、完全离线可用。也可以用 --font-dir 自备字体目录来彻底避免联网。
跑了一半关机了,要重头再来吗?
不用。进度记在输出目录的「烧录进度.json」里,原样再跑一次同一命令即可续传,已完成的会自动跳过。判定依据是内容指纹(字幕内容 + 视频大小与修改时间 + 编码参数),所以你改了译文或换了样式,它会自动重烧。
成片出来了但字幕是空白或方框,怎么办?
这是本地烧录最常见的静默失败:ASS 字幕里写的字体在你系统上不存在,渲染库找不到时不会报错,只是不画字。本工具默认会自动取网页端用的那份字体来避免这个问题;如果你改过字体,用 --font 指定一个本机已有的中文字体(macOS 常用 "PingFang SC",Windows 常用 "Microsoft YaHei"),或用 --font-dir 提供一个字体目录。
和网页里的「批量处理」是什么关系?
分工而非替代。识别、翻译、术语表、样式模板都在网页里完成并计费;这个工具只负责最后一步——把已产出的字幕批量烧成成片。它不需要登录,也没有积分消耗。
怎么只烧某几个语种?
用 --variant 选择字幕种类(translated 译文 / bilingual 双语 / ass 带样式的 ASS / source 原文),用 --lang 过滤语种,例如 --variant bilingual --lang en。先用 --dry-run 看清单最稳妥。