Skip to content

jimnoneill/nextcloud-memories-gpu

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Memories GPU Transcoding

Nextcloud Memories GPU Transcoding

Offload video transcoding to a dedicated GPU server

Quick StartHow It WorksTroubleshootingConfiguration

Nextcloud Memories NVIDIA NVENC License


Why?

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     │                     │
└─────────────────────┘                    └─────────────────────┘

Quick Start

Prerequisites

Storage Server GPU Server
OS Ubuntu 22.04+ Ubuntu 22.04+
Docker
NFS server client
GPU NVIDIA GTX 1000+
Drivers 525.0+

1. Clone & Configure

git clone https://github.com/user/nextcloud-memories-gpu-transcoding
cd nextcloud-memories-gpu-transcoding
cp .env.example .env

Edit .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

2. Deploy

# On storage server
./deploy.sh storage

# On GPU server
./deploy.sh gpu

# On storage server again
./deploy.sh nextcloud

3. Enable GOP Workaround

⚠️ Critical: Without this, videos stop after 5 seconds.

  1. Admin SettingsMemoriesVideo Streaming
  2. Scroll to HW Acceleration
  3. Enable "GOP size workaround"

4. Verify

./deploy.sh status

Play a video in Memories. Check GPU activity:

ssh gpu-server 'nvidia-smi'

How It Works

  1. User opens video in Memories
  2. Nextcloud forwards request to go-vod on GPU server (:47788)
  3. go-vod reads source file via NFS mount
  4. NVENC hardware encodes to HLS segments
  5. Segments stream back through Nextcloud to user

Result: Smooth 1080p/4K playback without CPU strain on your storage server.


Commands

./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

Documentation

Document Description
Configuration All settings reference
Troubleshooting Common issues & fixes
Manual Setup Step-by-step without scripts
Admin UI Nextcloud admin settings

Troubleshooting

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

Full troubleshooting guide →


Requirements

  • Memories: 7.0+
  • go-vod: 0.2.6+
  • NVIDIA Driver: 525.0+
  • CUDA: 11.0+ (included in go-vod image)

License

MIT © 2026


Built with frustration and eventual success.

About

Offload Nextcloud Memories transcoding from your cloud server node to a separate dedicated GPU node

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages