AutoCut 对视频自动生成字幕。然后选择需要保留的句子,AutoCut 将对视频中对应的片段裁切并保存。无需使用视频编辑软件,只需要编辑文本文件即可完成剪切。
使用例子
假如录制的视频放在 2022-11-04/
这个文件夹里。那么运行
autocut -d 2022-11-04
提示:如果你使用 OBS 录屏,可以在 设置->高级->录像->文件名格式 中将空格改成 /,即 %CCYY-%MM-%DD/%hh-%mm-%ss。那么视频文件将放在日期命名的文件夹里。
AutoCut 将持续对这个文件夹里视频进行字幕抽取和剪切。例如,刚完成一个视频录制,保存在 11-28-18.mp4
。AutoCut 将生成 11-28-18.md
。在里面选择需要保留的句子后,AutoCut 将剪切出 11-28-18_cut.mp4
,并生成 11-28-18_cut.md
来预览结果。
可以使用任何的 Markdown 编辑器。例如常用 VS Code 和 Typora。下图是通过 Typora 来对 11-28-18.md
编辑。
全部完成后在 autocut.md
里选择需要拼接的视频后,AutoCut 将输出 autocut_merged.mp4
和对应的字幕
文件。
安装
首先安装 Python 包
pip install git+https://github.com/mli/autocut.git
本地安装测试
git clone https://github.com/mli/autocut
cd autocut
pip install .
上面将安装 pytorch。如果需要 GPU 运行,且默认安装的版本不匹配的话,可以先安装 Pytorch。
另外需要安装 ffmpeg
# on Ubuntu or Debian
sudo apt update && sudo apt install ffmpeg
# on Arch Linux
sudo pacman -S ffmpeg
# on MacOS using Homebrew (https://brew.sh/)
brew install ffmpeg
# on Windows using Scoop (https://scoop.sh/)
scoop install ffmpeg
Docker 安装
首先将项目克隆到本地。
git clone https://github.com/mli/autocut.git
安装 CPU 版本
进入项目根目录,然后构建 docker 映像。
docker build -t autocut .
运行下面的命令创建 docker 容器,就可以直接使用了。
docker run -it --rm -v E:\autocut:/autocut/video autocut /bin/bash
其中 -v 是将主机存放视频的文件夹 E:\autocut 映射到虚拟机的 /autocut/video 目录。E:\autocut 是主机存放视频的目录,需修改为自己主机存放视频的目录。
安装 GPU 版本
使用 GPU 加速需要主机有 Nvidia 的显卡并安装好相应驱动。然后在项目根目录,执行下面的命令构建 docker 映像。
docker build -f ./Dockerfile.cuda -t autocut-gpu .
使用 GPU 加速时,运行 docker 容器需添加参数 --gpus all。
docker run --gpus all -it --rm -v E:\autocut:/autocut/video autocut-gpu
提示
1、讲得流利的视频的转录质量会高一些,这因为是 Whisper 训练数据分布的缘故。对一个视频,可以先粗选一下句子,然后在剪出来的视频上再剪一次。
2、最终视频生成的字幕通常还需要做一些小编辑。可以直接编辑 md 文件(比 srt 文件更紧凑,且嵌入了视频)。然后使用 autocut -s 22-52-00.md 22-52-00.srt 来生成更新的字幕 22-52-00_edited.srt。注意这里会无视句子是不是被选中,而是全部转换成 srt。
3、最终视频生成的字幕通常还需要做一些小编辑。但 srt 里面空行太多。可以使用 autocut -s 22-52-00.srt 来生成一个紧凑些的版本 22-52-00_compact.srt 方便编辑(这个格式不合法,但编辑器,例如 VS Code,还是会进行语法高亮)。编辑完成后,autocut -s 22-52-00_compact.srt 转回正常格式。
4、用 Typora 和 VS Code 编辑 Markdown 都很方便。他们都有对应的快捷键 mark 一行或者多行。但 VS Code 视频预览似乎有点问题。
5、视频是通过 ffmpeg 导出。在 Apple M1 芯片上它用不了 GPU,导致导出速度不如专业视频软件。
传送门
开源协议:Apache2.0
开源地址:https://github.com/mli/autocut
关注微信公众号「开源技术专栏」了解更多!