FunClip 是一个基于 FunASR 的自动化视频剪辑工具
🐳 方式一:Docker 一键运行(最省事)
如果你不想折腾 Python 环境,社区维护的 Docker 镜像是最快的方式,无需在本地安装任何 Python 依赖。
第一步:拉取并运行容器
1 | # 如果你有 NVIDIA 显卡,加上 --gpus all 可以加速 |
第二步:等待模型初始化
容器启动后先别急着访问。首次运行会自动从 ModelScope 下载 FunASR 模型(约 1GB),这个过程可能需要几分钟。你可以在终端执行 docker logs -f funclip 查看下载进度,看到服务就绪的提示后再操作。
第三步:访问界面
打开浏览器访问 http://localhost:7860 即可。
如果你只是偶尔用一次,或者不想在电脑上装一堆 Python 库,Docker 是最省心的选择。
🔨 方式二:Python 环境部署(最灵活)
如果你想用命令行批量处理视频,或者需要修改代码,用 Python 环境部署更合适。
第一步:克隆仓库并创建虚拟环境
1 | git clone https://github.com/modelscope/FunClip.git |
第二步:安装依赖
1 | pip install -r requirements.txt |
一个需要留意的版本问题:FunClip v2.2.1 要求 funasr>=1.4.9。如果你之前装过旧版本,建议先升级再启动:
1 | pip install -U "funasr>=1.4.9" |
第三步:启动 Gradio 服务
1 | python funclip/launch.py |
启动后访问 localhost:7860,界面和 Docker 版一样。
⚙️ 启动参数速查(按需选择)
FunClip 的启动命令可以加不同参数来适应你的场景:
| 你的场景 | 启动命令 |
|---|---|
| 默认中文视频剪辑(用 Paraformer 模型) | python funclip/launch.py |
| 追求高精度中文转录(用 Fun-ASR-Nano) | python funclip/launch.py -m fun-asr-nano |
| 多语言 + 情绪/音频事件识别 | python funclip/launch.py -m sensevoice |
| 英文视频剪辑 | python funclip/launch.py -l en |
| 指定端口(默认 7860 被占用时) | python funclip/launch.py -p 8080 |
-m fun-asr-nano 是官方推荐的旗舰模型,支持普通话、英语、日语以及多种中文方言和口音,识别准确率更高,但基于文本的精确裁剪仍建议用 Paraformer,因为它的词级时间戳更精确。
💡 关于 ImageMagick:现在基本不需要了
很多旧教程会强调必须装 ImageMagick,但从 v2.2.1 开始,内置字幕渲染已经改用 Pillow,标准字幕裁剪不再需要 ImageMagick。只有你在跑旧版测试脚本,或者自己用 MoviePy 的 TextClip 做复杂字幕时,才需要单独安装它。
🎬 快速验证部署是否成功
服务启动后,用命令行模式跑一个最简单的识别,确认核心功能正常:
1 | python funclip/videoclipper.py --stage 1 \ |
如果 ./output 目录下生成了识别结果和 SRT 字幕文件,就说明部署成功了。之后你可以继续用 stage 2 做裁剪,或者在 Gradio 界面里操作。
你是打算在本地电脑上跑,还是部署到服务器上用浏览器访问?如果是服务器部署,我可以帮你看看怎么用 -s True 或反向代理来安全地暴露服务。

