video-auto-editor —— 本地自动剪辑(剪映框架)
一个纯本地的自动视频剪辑工具,模仿剪映的核心思路:导入素材 → 去停顿/剪口气 → 调速 → 配乐 → 文字/字幕 → 导出。
全部本地处理,不联网、不上传任何素材。
是什么
- 核心脚本:
scripts/vcut.py(纯 Python,几乎只依赖 ffmpeg) - 中文字幕/文字用 ASS + ffmpeg 的 subtitles(libass) 滤镜 渲染,指定微软雅黑,中文显示正常
- 智能去水词 / 划重点词 依赖 jieba 中文分词(没装也能跑,会退化成简单方案)
关键路径(相对本技能目录,安装后可放任意位置)
- 剪辑脚本:
scripts/vcut.py - ffmpeg:脚本默认找
FFMPEG_BIN环境变量指向的 ffmpeg.exe;未设置则用E:/WorkBuddy生成文件/tools/ffmpeg/ffmpeg.exe - 输出目录:默认
E:/WorkBuddy生成文件/剪辑输出/(可用-o任意指定) - 中文字体:默认
Microsoft YaHei(Windows 自带;其他系统用--font指定可用中文字体) - 自动字幕的本地语音模型:默认
VCUT_MODEL_DIR环境变量 → 脚本同级models/faster-whisper-small→ 回退到自动下载
运行方式
需要 Python 3.10+ 和 ffmpeg。建议新建一个虚拟环境并装好依赖:
pip install jieba faster-whisper # faster-whisper 仅"自动字幕"功能需要,可省
然后调用:
python scripts/vcut.py <子命令> -i <输入视频> -o <输出视频> [参数]
剪映式框架(模块)
| 概念 | 子命令 | 作用 |
|---|---|---|
| 素材导入 | (直接给 -i) | 口播 / 直播录像 mp4 |
| 去停顿 / 剪口气 | detect / cut |
自动剪掉静音、喘气、长停顿 |
| 调速 | speed |
变速不变调 |
| 配乐 | music |
叠背景音乐,循环 + 淡入淡出 |
| 文字 / 字幕 | text / srt / captions |
烧入中文硬字幕或单条文字 |
| 智能去水词 | clean / auto --clean |
清理口语水词 / 语气词 |
| 智能划重点词 | highlight / auto --highlight |
自动提取关键词并金色高亮 |
| 导出 | auto 一键成片 |
把上面步骤串起来 |
子命令速查
detect -i raw.mp4:只看静音区间,不剪cut -i raw.mp4 -o out.mp4 --noise -30 --silence-d 0.3:剪口气speed -i in.mp4 -o out.mp4 --factor 1.2:调速(>1 快放)music -i in.mp4 -m bgm.mp3 -o out.mp4 --vol 0.25 --fade 1.0:配乐text -i in.mp4 -o out.mp4 --text "标题文案" --sub-size 52:单条文字srt -i in.mp4 -s sub.srt -o out.mp4:烧字幕(可加--clean/--highlight/--keywords/--top)captions -i in.mp4 -o out.mp4:语音识别 → 字幕 → 烧入(需 faster-whisper)clean -s in.srt -o out.srt:智能去水词,输出新 SRThighlight -i in.mp4 -s in.srt -o out.mp4 --sub-size 48 --max-chars 14:智能划重点词auto -i raw.mp4 -o final.mp4 --cut --music bgm.mp3 --captions --clean --highlight:一键成片
智能去水词 / 划重点词
- 去水词默认清理:嗯/啊/呃/哦/那个/这个/就是说/然后/其实/的话/可能/我觉得/怎么说呢/对吧/是不是/反正/比如说 等口头禅与语气词(
clean --fillers "嗯,啊"可自定义) - 划重点词默认取整段字幕 TF-IDF 权重最高的若干词做金色加粗高亮(
--top 8控数量,--keywords "价格,品牌"强制追加) - 两项都优先用 jieba;缺 jieba 时自动退化为"正则去水词 / 词频划重点",仍能跑
注意事项
- 重编码用
-crf 20(高质量),多步串联有少量二次编码损耗,口播类够用;要极致质量可改 16 cut是硬切静音,极端情况可能切到尾音,靠--silence-pad留白兜底auto固定顺序:剪口气 → 调速 → 配乐 → 字幕/文字。若同时用--cut和--srt,SRT 时间点须对应剪完后的视频;否则用--captions让识别在剪完后再跑,自动对齐- 输出永远是新文件,不破坏原始素材