Offload video transcoding to a dedicated GPU server
Quick Start • How It Works • Troubleshooting • Configuration
Nextcloud Memories transcodes videos on-the-fly for smooth browser playback. Without a GPU, this hammers your CPU. This project lets you offload transcoding to a separate machine with an NVIDIA GPU.
┌─────────────────────┐ ┌─────────────────────┐
│ STORAGE SERVER │ │ GPU SERVER │
│ │ NFS (ro) │ │
│ Nextcloud │◄──────────────────►│ NVIDIA GPU │
│ Memories │ │ go-vod + NVENC │
│ Your Files │◄──────────────────►│ HLS Segments │
│ │ HTTP :47788 │ │
└─────────────────────┘ └─────────────────────┘
| Storage Server | GPU Server | |
|---|---|---|
| OS | Ubuntu 22.04+ | Ubuntu 22.04+ |
| Docker | ✓ | ✓ |
| NFS | server | client |
| GPU | — | NVIDIA GTX 1000+ |
| Drivers | — | 525.0+ |
git clone https://github.com/user/nextcloud-memories-gpu-transcoding
cd nextcloud-memories-gpu-transcoding
cp .env.example .envEdit .env with your details:
STORAGE_IP=192.168.1.10 # Your Nextcloud server
GPU_IP=192.168.1.20 # Your GPU machine
NEXTCLOUD_DATA=/mnt/data # Path to Nextcloud data
DOMAIN=cloud.example.com # Your Nextcloud domain# On storage server
./deploy.sh storage
# On GPU server
./deploy.sh gpu
# On storage server again
./deploy.sh nextcloud
⚠️ Critical: Without this, videos stop after 5 seconds.
- Admin Settings → Memories → Video Streaming
- Scroll to HW Acceleration
- Enable "GOP size workaround"
./deploy.sh statusPlay a video in Memories. Check GPU activity:
ssh gpu-server 'nvidia-smi'- User opens video in Memories
- Nextcloud forwards request to go-vod on GPU server (
:47788) - go-vod reads source file via NFS mount
- NVENC hardware encodes to HLS segments
- Segments stream back through Nextcloud to user
Result: Smooth 1080p/4K playback without CPU strain on your storage server.
./deploy.sh storage # Configure NFS exports
./deploy.sh gpu # Deploy go-vod container
./deploy.sh nextcloud # Configure Memories settings
./deploy.sh status # Verify installation
./deploy.sh logs # Tail go-vod logs
./deploy.sh help # Show all commands| Document | Description |
|---|---|
| Configuration | All settings reference |
| Troubleshooting | Common issues & fixes |
| Manual Setup | Step-by-step without scripts |
| Admin UI | Nextcloud admin settings |
| Issue | Fix |
|---|---|
| Video stops at 5s | Enable GOP workaround in admin |
| "Previews disabled" | Run ./deploy.sh nextcloud |
| 408 timeout | Check proxy timeout settings |
| No GPU usage | Verify NVIDIA Container Toolkit |
- Memories: 7.0+
- go-vod: 0.2.6+
- NVIDIA Driver: 525.0+
- CUDA: 11.0+ (included in go-vod image)
MIT © 2026
Built with frustration and eventual success.