[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-71057":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":17,"stars7d":18,"stars30d":19,"stars90d":16,"forks30d":16,"starsTrendScore":20,"compositeScore":21,"rankGlobal":10,"rankLanguage":10,"license":22,"archived":23,"fork":23,"defaultBranch":24,"hasWiki":23,"hasPages":23,"topics":25,"createdAt":10,"pushedAt":10,"updatedAt":26,"readmeContent":27,"aiSummary":28,"trendingCount":16,"starSnapshotCount":16,"syncStatus":29,"lastSyncTime":30,"discoverSource":31},71057,"autocut","mli\u002Fautocut","mli","用文本编辑器剪视频","",null,"Python",7735,817,75,19,0,9,16,43,27,95.04,"Apache License 2.0",false,"main",[],"2026-06-12 04:00:58","# AutoCut: 通过字幕来剪切视频\n\nAutoCut 对你的视频自动生成字幕。然后你选择需要保留的句子，AutoCut 将对你视频中对应的片段裁切并保存。你无需使用视频编辑软件，只需要编辑文本文件即可完成剪切。\n\n**2024.10.05更新**：支持 `large-v3-turbo` [模型](https:\u002F\u002Fgithub.com\u002Fopenai\u002Fwhisper\u002Fdiscussions\u002F2363)，提供更快的转录速度。\n\n```shell\nautocut -t xxx --whisper-model large-v3-turbo\n````\n\n**2024.03.10更新**：支持 pip 安装和提供 import 转录相关的功能\n\n```shell\n# Install\npip install autocut-sub\n```\n\n```python\nfrom autocut import Transcribe, load_audio\n```\n\n\n**2023.10.14更新**：支持 faster-whisper 和指定依赖（但由于 Action 限制暂时移除了 faster-whisper 的测试运行）\n\n```shell\n# for whisper only\npip install .\n\n# for whisper and faster-whisper\npip install '.[faster]'\n\n# for whisper and openai-whisper\npip install '.[openai]'\n\n# for all\npip install '.[all]'\n```\n\n```shell\n# using faster-whisper\nautocut -t xxx --whisper-mode=faster\n```\n\n```shell\n# using openai api\nexport OPENAI_API_KEY=sk-xxx\nautocut -t xxx --whisper-mode=openai --openai-rpm=3\n```\n\n**2023.8.13更新**：支持调用 Openai Whisper API\n```shell\nexport OPENAI_API_KEY=sk-xxx\nautocut -t xxx --whisper-mode=openai --openai-rpm=3\n```\n\n## 使用例子\n\n假如你录制的视频放在 `2022-11-04\u002F` 这个文件夹里。那么运行\n\n```bash\nautocut -d 2022-11-04\n```\n\n> 提示：如果你使用 OBS 录屏，可以在 `设置->高级->录像->文件名格式` 中将空格改成 `\u002F`，即 `%CCYY-%MM-%DD\u002F%hh-%mm-%ss`。那么视频文件将放在日期命名的文件夹里。\n\nAutoCut 将持续对这个文件夹里视频进行字幕抽取和剪切。例如，你刚完成一个视频录制，保存在 `11-28-18.mp4`。AutoCut 将生成 `11-28-18.md`。你在里面选择需要保留的句子后，AutoCut 将剪切出 `11-28-18_cut.mp4`，并生成 `11-28-18_cut.md` 来预览结果。\n\n你可以使用任何的 Markdown 编辑器。例如我常用 VS Code 和 Typora。下图是通过 Typora 来对 `11-28-18.md` 编辑。\n\n![](imgs\u002Ftypora.jpg)\n\n全部完成后在 `autocut.md` 里选择需要拼接的视频后，AutoCut 将输出 `autocut_merged.mp4` 和对应的字幕文件。\n\n## 安装\n\n首先安装 Python 包\n\n```\npip install git+https:\u002F\u002Fgithub.com\u002Fmli\u002Fautocut.git\n```\n\n## 本地安装测试\n\n\n```\ngit clone https:\u002F\u002Fgithub.com\u002Fmli\u002Fautocut\ncd autocut\npip install .\n```\n\n\n> 上面将安装 [pytorch](https:\u002F\u002Fpytorch.org\u002F)。如果你需要 GPU 运行，且默认安装的版本不匹配的话，你可以先安装 Pytorch。如果安装 Whipser 出现问题，请参考[官方文档](https:\u002F\u002Fgithub.com\u002Fopenai\u002Fwhisper#setup)。\n\n另外需要安装 [ffmpeg](https:\u002F\u002Fffmpeg.org\u002F)\n\n```\n# on Ubuntu or Debian\nsudo apt update && sudo apt install ffmpeg\n\n# on Arch Linux\nsudo pacman -S ffmpeg\n\n# on MacOS using Homebrew (https:\u002F\u002Fbrew.sh\u002F)\nbrew install ffmpeg\n\n# on Windows using Scoop (https:\u002F\u002Fscoop.sh\u002F)\nscoop install ffmpeg\n```\n\n## Docker 安装\n\n首先将项目克隆到本地。\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Fmli\u002Fautocut.git\n```\n\n### 安装 CPU 版本\n\n进入项目根目录，然后构建 docker 映像。\n\n```bash\ndocker build -t autocut .\n```\n\n运行下面的命令创建 docker 容器，就可以直接使用了。\n\n```bash\ndocker run -it --rm -v E:\\autocut:\u002Fautocut\u002Fvideo autocut \u002Fbin\u002Fbash\n```\n\n其中 `-v` 是将主机存放视频的文件夹 `E:\\autocut` 映射到虚拟机的 `\u002Fautocut\u002Fvideo` 目录。`E:\\autocut` 是主机存放视频的目录，需修改为自己主机存放视频的目录。\n\n### 安装 GPU 版本\n\n使用 GPU 加速需要主机有 Nvidia 的显卡并安装好相应驱动。然后在项目根目录，执行下面的命令构建 docker 映像。\n\n```bash\ndocker build -f .\u002FDockerfile.cuda -t autocut-gpu .\n```\n\n使用 GPU 加速时，运行 docker 容器需添加参数 `--gpus all`。\n\n```bash\ndocker run --gpus all -it --rm -v E:\\autocut:\u002Fautocut\u002Fvideo autocut-gpu\n```\n\n## 更多使用选项\n\n### 转录某个视频生成 `.srt` 和 `.md` 结果。\n\n```bash\nautocut -t 22-52-00.mp4\n```\n\n1. 如果对转录质量不满意，可以使用更大的模型，例如\n\n    ```bash\n    autocut -t 22-52-00.mp4 --whisper-model large\n    ```\n\n    默认是 `small`。更好的模型是 `medium` 和 `large`，但推荐使用 GPU 获得更好的速度。也可以使用更快的 `tiny` 和 `base`，但转录质量会下降。\n\n\n### 剪切某个视频\n\n```bash\nautocut -c 22-52-00.mp4 22-52-00.srt 22-52-00.md\n```\n\n1. 默认视频比特率是 `--bitrate 10m`，你可以根据需要调大调小。\n2. 如果不习惯 Markdown 格式文件，你也可以直接在 `srt` 文件里删除不要的句子，在剪切时不传入 `md` 文件名即可。就是 `autocut -c 22-52-00.mp4 22-52-00.srt`\n3. 如果仅有 `srt` 文件，编辑不方便可以使用如下命令生成 `md` 文件，然后编辑 `md` 文件即可，但此时会完全对照 `srt` 生成，不会出现 `no speech` 等提示文本。\n\n   ```bash\n   autocut -m test.srt test.mp4\n   autocut -m test.mp4 test.srt # 支持视频和字幕乱序传入\n   autocut -m test.srt # 也可以只传入字幕文件\n   ```\n\n\n### 一些小提示\n\n\n1. 讲得流利的视频的转录质量会高一些，这因为是 Whisper 训练数据分布的缘故。对一个视频，你可以先粗选一下句子，然后在剪出来的视频上再剪一次。\n2. 最终视频生成的字幕通常还需要做一些小编辑。但 `srt` 里面空行太多。你可以使用 `autocut -s 22-52-00.srt` 来生成一个紧凑些的版本 `22-52-00_compact.srt` 方便编辑（这个格式不合法，但编辑器，例如 VS Code，还是会进行语法高亮）。编辑完成后，`autocut -s 22-52-00_compact.srt` 转回正常格式。\n3. 用 Typora 和 VS Code 编辑 Markdown 都很方便。他们都有对应的快捷键 mark 一行或者多行。但 VS Code 视频预览似乎有点问题。\n4. 视频是通过 ffmpeg 导出。在 Apple M1 芯片上它用不了 GPU，导致导出速度不如专业视频软件。\n\n### 常见问题\n\n1. **输出的是乱码？**\n\n   AutoCut 默认输出编码是 `utf-8`. 确保你的编辑器也使用了 `utf-8` 解码。你可以通过 `--encoding` 指定其他编码格式。但是需要注意生成字幕文件和使用字幕文件剪辑时的编码格式需要一致。例如使用 `gbk`。\n\n    ```bash\n    autocut -t test.mp4 --encoding=gbk\n    autocut -c test.mp4 test.srt test.md --encoding=gbk\n    ```\n\n    如果使用了其他编码格式（如 `gbk` 等）生成 `md` 文件并用 Typora 打开后，该文件可能会被 Typora 自动转码为其他编码格式，此时再通过生成时指定的编码格式进行剪辑时可能会出现编码不支持等报错。因此可以在使用 Typora 编辑后再通过 VSCode 等修改到你需要的编码格式进行保存后再使用剪辑功能。\n\n2. **如何使用 GPU 来转录？**\n\n   当你有 Nvidia GPU，而且安装了对应版本的 PyTorch 的时候，转录是在 GPU 上进行。你可以通过命令来查看当前是不是支持 GPU。\n\n   ```bash\n   python -c \"import torch; print(torch.cuda.is_available())\"\n   ```\n\n   否则你可以在安装 AutoCut 前手动安装对应的 GPU 版本 PyTorch。\n\n3. **使用 GPU 时报错显存不够。**\n\n   whisper 的大模型需要一定的 GPU 显存。如果你的显存不够，你可以用小一点的模型，例如 `small`。如果你仍然想用大模型，可以通过 `--device` 来强制使用 CPU。例如\n\n   ```bash\n   autocut -t 11-28-18.mp4 --whisper-model large --device cpu\n   ```\n\n4. **能不能使用 `pip` 安装?**\n\n    whisper已经发布到PyPI了，可以直接用`pip install openai-whisper`安装。\n   \n   [https:\u002F\u002Fgithub.com\u002Fopenai\u002Fwhisper#setup](https:\u002F\u002Fgithub.com\u002Fopenai\u002Fwhisper#setup)\n\n   [https:\u002F\u002Fpypi.org\u002Fproject\u002Fopenai-whisper\u002F](https:\u002F\u002Fpypi.org\u002Fproject\u002Fopenai-whisper\u002F)\n\n## 如何参与贡献\n\n[这里有一些想做的 feature](https:\u002F\u002Fgithub.com\u002Fmli\u002Fautocut\u002Fissues\u002F22)，欢迎贡献。\n\n### 代码结构\n```text\nautocut\n│  .gitignore\n│  LICENSE\n│  README.md # 一般新增或修改需要让使用者知道就需要对应更新 README.md 内容\n│  setup.py\n│\n└─autocut # 核心代码位于 autocut 文件夹中，新增功能的实现也一般在这里面进行修改或新增\n   │  cut.py\n   │  daemon.py\n   │  main.py\n   │  transcribe.py\n   │  utils.py\n   └─ __init__.py\n\n```\n\n### 安装依赖\n开始安装这个项目的需要的依赖之前，建议先了解一下 Anaconda 或者 venv 的虚拟环境使用，推荐**使用虚拟环境来搭建该项目的开发环境**。\n具体安装方式为在你搭建搭建的虚拟环境之中按照[上方安装步骤](.\u002FREADME.md#安装)进行安装。\n\n> 为什么推荐使用虚拟环境开发？\n>\n> 一方面是保证各种不同的开发环境之间互相不污染。\n>\n> 更重要的是在于这个项目实际上是一个 Python Package，所以在你安装之后 AutoCut 的代码实际也会变成你的环境依赖。\n> **因此在你更新代码之后，你需要让将新代码重新安装到环境中，然后才能调用到新的代码。**\n\n### 开发\n\n1. 代码风格目前遵循 PEP-8，可以使用相关的自动格式化软件完成。\n2. `utils.py` 主要是全局共用的一些工具方法。\n3. `transcribe.py` 是调用模型生成`srt`和`md`的部分。\n4. `cut.py` 提供根据标记后`md`或`srt`进行视频剪切合并的功能。\n5. `daemon.py` 提供的是监听文件夹生成字幕和剪切视频的功能。\n6. `main.py` 声明命令行参数，根据输入参数调用对应功能。\n\n开发过程中请尽量保证修改在正确的地方，以及合理地复用代码，\n同时工具函数请尽可能放在`utils.py`中。\n代码格式目前是遵循 PEP-8，变量命名尽量语义化即可。\n\n在开发完成之后，最重要的一点是需要进行**测试**，请保证提交之前对所有**与你修改直接相关的部分**以及**你修改会影响到的部分**都进行了测试，并保证功能的正常。\n目前使用 `GitHub Actions` CI, Lint 使用 black 提交前请运行 `black`。\n\n### 提交\n\n1. commit 信息用英文描述清楚你做了哪些修改即可，小写字母开头。\n2. 最好可以保证一次的 commit 涉及的修改比较小，可以简短地描述清楚，这样也方便之后有修改时的查找。\n3. PR 的时候 title 简述有哪些修改， contents 可以具体写下修改内容。\n4. run test `pip install pytest` then `pytest test`\n5. run lint `pip install black` then `black .`\n","AutoCut 是一个通过文本编辑器剪辑视频的工具。它能够自动生成视频字幕，用户只需选择需要保留的句子，AutoCut 便会根据选择自动裁剪并保存对应的视频片段，无需使用复杂的视频编辑软件。项目基于 Python 开发，支持多种转录模型如 `large-v3-turbo` 以提高转录速度，并且可以通过 pip 安装或 Docker 部署。此外，AutoCut 还兼容 OpenAI 的 Whisper API 和 faster-whisper 库，提供了灵活多样的转录选项。适用于录制课程、讲座等长视频后快速提取关键内容的场景，特别适合经常进行视频内容创作但不熟悉专业视频编辑软件的用户。",2,"2026-06-11 03:35:40","high_star"]