🐳 方式一:Docker 一键运行(最省事)

如果你不想折腾 Python 环境,社区维护的 Docker 镜像是最快的方式,无需在本地安装任何 Python 依赖

第一步:拉取并运行容器

1
2
3
4
5
6
7
8
# 如果你有 NVIDIA 显卡,加上 --gpus all 可以加速
docker run -d -p 7860:7860 \
--name funclip \
--gpus all \
--restart always \
-v $(pwd)/modelscope:/root/.cache/modelscope \
-v $(pwd)/output:/output \
ericwang2006/funclip

第二步:等待模型初始化

容器启动后先别急着访问。首次运行会自动从 ModelScope 下载 FunASR 模型(约 1GB),这个过程可能需要几分钟。你可以在终端执行 docker logs -f funclip 查看下载进度,看到服务就绪的提示后再操作。

第三步:访问界面

打开浏览器访问 http://localhost:7860 即可。

如果你只是偶尔用一次,或者不想在电脑上装一堆 Python 库,Docker 是最省心的选择

🔨 方式二:Python 环境部署(最灵活)

如果你想用命令行批量处理视频,或者需要修改代码,用 Python 环境部署更合适。

第一步:克隆仓库并创建虚拟环境

1
2
3
4
5
6
7
8
9
git clone https://github.com/modelscope/FunClip.git
cd FunClip

# 官方推荐用 Python 3.12
python3.12 -m venv .venv

# 激活环境(Linux/macOS)
source .venv/bin/activate
# Windows 用户用 .venv\Scripts\activate

第二步:安装依赖

1
2
3
pip install -r requirements.txt
# 安装后做一个完整性检查,确保没有依赖冲突
pip check

一个需要留意的版本问题: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
2
3
python funclip/videoclipper.py --stage 1 \
--file examples/2022云栖大会_片段.mp4 \
--output_dir ./output

如果 ./output 目录下生成了识别结果和 SRT 字幕文件,就说明部署成功了。之后你可以继续用 stage 2 做裁剪,或者在 Gradio 界面里操作。

你是打算在本地电脑上跑,还是部署到服务器上用浏览器访问?如果是服务器部署,我可以帮你看看怎么用 -s True 或反向代理来安全地暴露服务。