🎯 一、最终目标
在本机实现:
text
上传视频 → GPU处理 → 输出去字幕视频
🧱 二、最终可用环境(你实际跑通的)
text
WSL2
+ NVIDIA 驱动(Windows)
+ 自装 Docker Engine
+ NVIDIA Container Toolkit
+ Docker GPU
+ video-subtitle-remover
⚙️ 三、前置确认(必须通过)
1️⃣ WSL GPU 正常
bash
nvidia-smi
👉 必须能看到显卡
2️⃣ Docker GPU 最终验证
bash
docker run --rm --gpus all nvidia/cuda:11.8.0-base-ubuntu22.04 nvidia-smi
👉 成功标志:
- 能看到 GPU
- 无报错
🌐 四、关键问题:WSL 网络(必须解决)
问题核心就是:
text
Could not handshake
👉 本质:
WSL 访问 GitHub CDN 失败
🔥 五、解决方案:临时代理(你最终用的)
👉 设置代理
bash
http://192.168.1.246:10809
1️⃣ 设置代理(必须)
bash
export http_proxy=http://192.168.1.246:10809
export https_proxy=http://192.168.1.246:10809
2️⃣ apt 必须用临时代理
bash
sudo apt-get \
-o Acquire::http::Proxy="http://192.168.1.246:10809" \
-o Acquire::https::Proxy="http://192.168.1.246:10809" \
update
📦 六、安装 NVIDIA Container Toolkit(核心步骤)
1️⃣ 添加源
bash
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | \
sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg
bash
curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \
sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
2️⃣ 更新(必须带代理)
bash
sudo apt-get \
-o Acquire::http::Proxy="http://192.168.1.246:10809" \
-o Acquire::https::Proxy="http://192.168.1.246:10809" \
update
3️⃣ 安装(必须带代理)
bash
sudo apt-get \
-o Acquire::http::Proxy="http://192.168.1.246:10809" \
-o Acquire::https::Proxy="http://192.168.1.246:10809" \
install -y \
nvidia-container-toolkit \
nvidia-container-toolkit-base \
libnvidia-container-tools \
libnvidia-container1
⚙️ 七、配置 Docker GPU
bash
sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart docker
✅ 八、验证成功(关键)
bash
docker run --rm --gpus all nvidia/cuda:11.8.0-base-ubuntu22.04 nvidia-smi
👉 成功 = GPU 已完全打通
🎬 九、运行 video-subtitle-remover
1️⃣ 准备目录
bash
mkdir -p ~/vsr-test
cd ~/vsr-test
2️⃣ 放视频
text
input.mp4
3️⃣ 执行
bash
docker run -it --rm \
--gpus all \
-v $(pwd):/app/test \
eritpchy/video-subtitle-remover:1.4.0-cuda11.8 \
python backend/main.py -i test/input.mp4 -o test/output.mp4
4️⃣ 输出结果
text
~/vsr-test/output.mp4
⚠️ 十、这次所有坑总结(重点)
❌ 1. Docker GPU 报错
text
could not select device driver
👉 原因:
没装 toolkit
❌ 2. apt handshake
text
Could not handshake
👉 原因:
没走代理
❌ 3. update OK install 不行
👉 原因:
install 没带代理
❌ 4. curl 一直失败
👉 原因:
没 export proxy
🎯 十一、核心经验(最重要)
👉 记住这 3 条就够了:
🧠 1. WSL 网络 ≠ Windows 网络
👉 必须单独配代理
🧠 2. apt update ≠ apt install
👉 两个都要走代理