initial comment
This commit is contained in:
680
UNRAID-DEPLOYMENT.md
Normal file
680
UNRAID-DEPLOYMENT.md
Normal file
@@ -0,0 +1,680 @@
|
||||
# encoderPro - Complete Deployment Guide
|
||||
|
||||
**THE OFFICIAL SETUP GUIDE - START HERE**
|
||||
|
||||
This is the complete deployment guide for encoderPro. It covers installation on Unraid with support for NVIDIA GPUs, Intel Arc GPUs, or CPU-only encoding.
|
||||
|
||||
> **Note:** This guide uses direct `docker run` commands for Unraid deployment. The `docker-compose.yml` file is optional and not required for Unraid.
|
||||
|
||||
---
|
||||
|
||||
## Quick Start for Unraid
|
||||
|
||||
This guide shows you how to deploy encoderPro on Unraid with support for NVIDIA GPUs, Intel Arc GPUs, or CPU-only encoding.
|
||||
|
||||
## Choose Your Hardware
|
||||
|
||||
### Option 1: NVIDIA GPU (NVENC)
|
||||
- Best for: RTX 2000-4000 series owners
|
||||
- Speed: Very fast (100-300 fps)
|
||||
- Codecs: H.264, H.265
|
||||
- Follow: [NVIDIA Setup](#nvidia-gpu-setup)
|
||||
|
||||
### Option 2: Intel Arc GPU (QSV)
|
||||
- Best for: Arc A-Series or Intel integrated graphics users
|
||||
- Speed: Very fast (80-250 fps)
|
||||
- Codecs: H.264, H.265, **AV1** (Arc only!)
|
||||
- Follow: [Intel Arc Setup](#intel-arc-setup)
|
||||
|
||||
### Option 3: CPU Only
|
||||
- Best for: No GPU or testing
|
||||
- Speed: Slow (2-10 fps)
|
||||
- Codecs: All software codecs
|
||||
- Follow: [CPU Setup](#cpu-only-setup)
|
||||
|
||||
---
|
||||
|
||||
## NVIDIA GPU Setup
|
||||
|
||||
### Prerequisites
|
||||
|
||||
1. **Install NVIDIA Plugin:**
|
||||
- Go to Unraid Plugins
|
||||
- Install "Nvidia-Driver" plugin from Community Applications
|
||||
- Reboot
|
||||
|
||||
2. **Verify GPU:**
|
||||
```bash
|
||||
nvidia-smi
|
||||
```
|
||||
|
||||
### Installation
|
||||
|
||||
1. **Create app directory:**
|
||||
```bash
|
||||
mkdir -p /mnt/user/appdata/encoderpro
|
||||
cd /mnt/user/appdata/encoderpro
|
||||
```
|
||||
|
||||
2. **Copy project files:**
|
||||
- Place all encoderPro files in `/mnt/user/appdata/encoderpro`
|
||||
|
||||
3. **Build Docker image:**
|
||||
```bash
|
||||
docker build -t encoderpro:latest .
|
||||
```
|
||||
|
||||
4. **Fix directory permissions:**
|
||||
```bash
|
||||
# Create and set ownership (UID 1000)
|
||||
mkdir -p /mnt/user/appdata/encoderpro/{db,logs}
|
||||
mkdir -p /mnt/user/temp/encoderpro-work
|
||||
mkdir -p /mnt/user/archive/movies
|
||||
chown -R 1000:1000 /mnt/user/appdata/encoderpro/{db,logs}
|
||||
chown -R 1000:1000 /mnt/user/temp/encoderpro-work
|
||||
chown -R 1000:1000 /mnt/user/archive/movies
|
||||
```
|
||||
|
||||
5. **Copy config:**
|
||||
```bash
|
||||
cp config-nvidia.yaml config.yaml
|
||||
nano config.yaml # Adjust paths if needed
|
||||
```
|
||||
|
||||
6. **Start Container:**
|
||||
```bash
|
||||
docker run -d \
|
||||
--name encoderpro-dashboard \
|
||||
--runtime=nvidia \
|
||||
-e NVIDIA_VISIBLE_DEVICES=all \
|
||||
-e NVIDIA_DRIVER_CAPABILITIES=compute,video,utility \
|
||||
-e DASHBOARD_HOST=0.0.0.0 \
|
||||
-e DASHBOARD_PORT=5000 \
|
||||
-p 5000:5000 \
|
||||
-v /mnt/user/movies:/movies \
|
||||
-v /mnt/user/archive/movies:/archive \
|
||||
-v /mnt/user/temp/encoderpro-work:/work \
|
||||
-v /mnt/user/appdata/encoderpro/config.yaml:/config/config.yaml:ro \
|
||||
-v /mnt/user/appdata/encoderpro/db:/db \
|
||||
-v /mnt/user/appdata/encoderpro/logs:/logs \
|
||||
--restart unless-stopped \
|
||||
encoderpro:latest dashboard
|
||||
```
|
||||
|
||||
7. **Access Dashboard:**
|
||||
- Open: `http://your-unraid-ip:5000`
|
||||
|
||||
### Unraid Template (NVIDIA)
|
||||
|
||||
**Add Container Settings:**
|
||||
- Name: `encoderpro-dashboard`
|
||||
- Repository: `encoderpro:latest`
|
||||
- Network Type: `bridge`
|
||||
- Extra Parameters: `--runtime=nvidia`
|
||||
|
||||
**Environment Variables:**
|
||||
```
|
||||
NVIDIA_VISIBLE_DEVICES=all
|
||||
NVIDIA_DRIVER_CAPABILITIES=compute,video,utility
|
||||
DASHBOARD_PORT=5000
|
||||
```
|
||||
|
||||
**Path Mappings:**
|
||||
```
|
||||
/movies → /mnt/user/movies (read-only)
|
||||
/archive → /mnt/user/archive/movies (read-write)
|
||||
/work → /mnt/user/temp/encoderpro-work (read-write)
|
||||
/config/config.yaml → /mnt/user/appdata/encoderpro/config.yaml (read-only)
|
||||
/db → /mnt/user/appdata/encoderpro/db (read-write)
|
||||
/logs → /mnt/user/appdata/encoderpro/logs (read-write)
|
||||
```
|
||||
|
||||
**Port:**
|
||||
```
|
||||
5000:5000
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Intel Arc Setup
|
||||
|
||||
### Prerequisites
|
||||
|
||||
1. **Verify GPU detected:**
|
||||
```bash
|
||||
lspci | grep -i vga
|
||||
ls -la /dev/dri/ # Should show renderD128 and card0
|
||||
```
|
||||
|
||||
2. **No special Unraid plugins needed** - drivers install in container
|
||||
|
||||
### Installation
|
||||
|
||||
1. **Create app directory:**
|
||||
```bash
|
||||
mkdir -p /mnt/user/appdata/encoderpro
|
||||
cd /mnt/user/appdata/encoderpro
|
||||
```
|
||||
|
||||
2. **Copy project files:**
|
||||
- Place all encoderPro files in `/mnt/user/appdata/encoderpro`
|
||||
|
||||
3. **Build Intel Docker image:**
|
||||
```bash
|
||||
docker build -f Dockerfile.intel -t encoderpro-intel:latest .
|
||||
```
|
||||
*(This takes 5-10 minutes - installs Intel drivers)*
|
||||
|
||||
4. **Fix directory permissions (CRITICAL!):**
|
||||
```bash
|
||||
# Create directories
|
||||
mkdir -p /mnt/user/appdata/encoderpro/db
|
||||
mkdir -p /mnt/user/appdata/encoderpro/logs
|
||||
mkdir -p /mnt/user/temp/encoderpro-work
|
||||
mkdir -p /mnt/user/archive/movies
|
||||
|
||||
# Set ownership to UID 1000 (container's encoder user)
|
||||
chown -R 1000:1000 /mnt/user/appdata/encoderpro/db
|
||||
chown -R 1000:1000 /mnt/user/appdata/encoderpro/logs
|
||||
chown -R 1000:1000 /mnt/user/temp/encoderpro-work
|
||||
chown -R 1000:1000 /mnt/user/archive/movies
|
||||
```
|
||||
|
||||
5. **Copy Intel config:**
|
||||
```bash
|
||||
cp config-intel.yaml config.yaml
|
||||
nano config.yaml # Adjust settings for your Arc model
|
||||
```
|
||||
|
||||
6. **Start Container:**
|
||||
```bash
|
||||
docker run -d \
|
||||
--name encoderpro-dashboard-intel \
|
||||
--device=/dev/dri:/dev/dri \
|
||||
-e GPU_TYPE=intel \
|
||||
-e DASHBOARD_HOST=0.0.0.0 \
|
||||
-e DASHBOARD_PORT=5000 \
|
||||
-p 5000:5000 \
|
||||
-v /mnt/user/movies:/movies \
|
||||
-v /mnt/user/archive/movies:/archive \
|
||||
-v /mnt/user/temp/encoderpro-work:/work \
|
||||
-v /mnt/user/appdata/encoderpro/config.yaml:/config/config.yaml:ro \
|
||||
-v /mnt/user/appdata/encoderpro/db:/db \
|
||||
-v /mnt/user/appdata/encoderpro/logs:/logs \
|
||||
--restart unless-stopped \
|
||||
encoderpro-intel:latest dashboard
|
||||
```
|
||||
|
||||
7. **Access Dashboard:**
|
||||
- Open: `http://your-unraid-ip:5000`
|
||||
|
||||
### Unraid Template (Intel Arc)
|
||||
|
||||
**Add Container Settings:**
|
||||
- Name: `encoderpro-intel`
|
||||
- Repository: `encoderpro-intel:latest`
|
||||
- Network Type: `bridge`
|
||||
|
||||
**Environment Variables:**
|
||||
```
|
||||
GPU_TYPE=intel
|
||||
DASHBOARD_PORT=5000
|
||||
```
|
||||
|
||||
**Device Mapping (CRITICAL!):**
|
||||
```
|
||||
/dev/dri → /dev/dri
|
||||
```
|
||||
|
||||
**Path Mappings:**
|
||||
```
|
||||
/movies → /mnt/user/movies (read-only)
|
||||
/archive → /mnt/user/archive/movies (read-write)
|
||||
/work → /mnt/user/temp/encoderpro-work (read-write)
|
||||
/config/config.yaml → /mnt/user/appdata/encoderpro/config-intel.yaml (read-only)
|
||||
/db → /mnt/user/appdata/encoderpro/db (read-write)
|
||||
/logs → /mnt/user/appdata/encoderpro/logs (read-write)
|
||||
```
|
||||
|
||||
**Port:**
|
||||
```
|
||||
5000:5000
|
||||
```
|
||||
|
||||
**See [INTEL-ARC-GUIDE.md](INTEL-ARC-GUIDE.md) for detailed Intel Arc setup**
|
||||
|
||||
---
|
||||
|
||||
## CPU-Only Setup
|
||||
|
||||
### Installation
|
||||
|
||||
1. **Create app directory:**
|
||||
```bash
|
||||
mkdir -p /mnt/user/appdata/encoderpro
|
||||
cd /mnt/user/appdata/encoderpro
|
||||
```
|
||||
|
||||
2. **Build Docker image:**
|
||||
```bash
|
||||
docker build -t encoderpro:latest .
|
||||
```
|
||||
|
||||
3. **Fix directory permissions:**
|
||||
```bash
|
||||
# Create and set ownership (UID 1000)
|
||||
mkdir -p /mnt/user/appdata/encoderpro/{db,logs}
|
||||
mkdir -p /mnt/user/temp/encoderpro-work
|
||||
mkdir -p /mnt/user/archive/movies
|
||||
chown -R 1000:1000 /mnt/user/appdata/encoderpro/{db,logs}
|
||||
chown -R 1000:1000 /mnt/user/temp/encoderpro-work
|
||||
chown -R 1000:1000 /mnt/user/archive/movies
|
||||
```
|
||||
|
||||
4. **Copy config:**
|
||||
```bash
|
||||
cp config-cpu.yaml config.yaml
|
||||
# Edit to use CPU profiles (cpu_x265, cpu_x264)
|
||||
nano config.yaml
|
||||
```
|
||||
|
||||
5. **Start Container:**
|
||||
```bash
|
||||
docker run -d \
|
||||
--name encoderpro-dashboard-cpu \
|
||||
-e DASHBOARD_HOST=0.0.0.0 \
|
||||
-e DASHBOARD_PORT=5000 \
|
||||
-p 5000:5000 \
|
||||
-v /mnt/user/movies:/movies \
|
||||
-v /mnt/user/archive/movies:/archive \
|
||||
-v /mnt/user/temp/encoderpro-work:/work \
|
||||
-v /mnt/user/appdata/encoderpro/config.yaml:/config/config.yaml:ro \
|
||||
-v /mnt/user/appdata/encoderpro/db:/db \
|
||||
-v /mnt/user/appdata/encoderpro/logs:/logs \
|
||||
--restart unless-stopped \
|
||||
encoderpro:latest dashboard
|
||||
```
|
||||
|
||||
### Unraid Template (CPU)
|
||||
|
||||
**Add Container Settings:**
|
||||
- Name: `encoderpro-cpu`
|
||||
- Repository: `encoderpro:latest`
|
||||
- Network Type: `bridge`
|
||||
|
||||
**Environment Variables:**
|
||||
```
|
||||
DASHBOARD_PORT=5000
|
||||
```
|
||||
|
||||
**Path Mappings:**
|
||||
```
|
||||
/movies → /mnt/user/movies (read-only)
|
||||
/archive → /mnt/user/archive/movies (read-write)
|
||||
/work → /mnt/user/temp/encoderpro-work (read-write)
|
||||
/config/config.yaml → /mnt/user/appdata/encoderpro/config.yaml (read-only)
|
||||
/db → /mnt/user/appdata/encoderpro/db (read-write)
|
||||
/logs → /mnt/user/appdata/encoderpro/logs (read-write)
|
||||
```
|
||||
|
||||
**Port:**
|
||||
```
|
||||
5000:5000
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Configuration
|
||||
|
||||
### Basic Config (All Platforms)
|
||||
|
||||
Edit `/mnt/user/appdata/encoderpro/config.yaml`:
|
||||
|
||||
```yaml
|
||||
# Paths are already set for Docker - no changes needed
|
||||
movies_dir: /movies
|
||||
archive_dir: /archive
|
||||
work_dir: /work
|
||||
state_db: /db/state.db
|
||||
log_dir: /logs
|
||||
|
||||
# Adjust concurrent workers based on your hardware
|
||||
parallel:
|
||||
max_workers: 2 # NVIDIA: 1-2, Intel Arc: 2-4, CPU: 2-4
|
||||
gpu_slots: 1 # NVIDIA: 1-2, Intel Arc: 2-3, CPU: N/A
|
||||
|
||||
# Choose your encoding profile
|
||||
profiles:
|
||||
default: balanced_gpu # NVIDIA: balanced_gpu
|
||||
# Intel: balanced_qsv
|
||||
# CPU: balanced_cpu
|
||||
```
|
||||
|
||||
### Recommended Profiles
|
||||
|
||||
**NVIDIA:**
|
||||
```yaml
|
||||
profiles:
|
||||
default: balanced_gpu # H.265, good quality/speed
|
||||
```
|
||||
|
||||
**Intel Arc:**
|
||||
```yaml
|
||||
profiles:
|
||||
default: balanced_qsv # H.265, good quality/speed
|
||||
# Or for best compression:
|
||||
default: av1_qsv # AV1, excellent compression (Arc A-Series only)
|
||||
```
|
||||
|
||||
**CPU:**
|
||||
```yaml
|
||||
profiles:
|
||||
default: balanced_cpu # H.265, slow but good quality
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Usage
|
||||
|
||||
### Web Dashboard
|
||||
|
||||
1. Navigate to `http://your-unraid-ip:5000`
|
||||
2. View statistics, browse files, manage jobs
|
||||
3. Start/stop encoding from the UI
|
||||
|
||||
### Command Line
|
||||
|
||||
**Scan your library:**
|
||||
```bash
|
||||
# NVIDIA
|
||||
docker exec encoderpro-dashboard python3 /app/reencode.py -c /config/config.yaml --scan-only
|
||||
|
||||
# Intel
|
||||
docker exec encoderpro-dashboard-intel python3 /app/reencode.py -c /config/config.yaml --scan-only
|
||||
|
||||
# CPU
|
||||
docker exec encoderpro-dashboard-cpu python3 /app/reencode.py -c /config/config.yaml --scan-only
|
||||
```
|
||||
|
||||
**View statistics:**
|
||||
```bash
|
||||
docker exec <container-name> python3 /app/reencode.py -c /config/config.yaml --stats
|
||||
```
|
||||
|
||||
**Start processing:**
|
||||
```bash
|
||||
docker exec <container-name> python3 /app/reencode.py -c /config/config.yaml
|
||||
```
|
||||
|
||||
### Scheduled Processing (User Scripts)
|
||||
|
||||
Create a new User Script in Unraid:
|
||||
|
||||
```bash
|
||||
#!/bin/bash
|
||||
# Run encoderpro processing
|
||||
|
||||
cd /mnt/user/appdata/encoderpro
|
||||
|
||||
# For NVIDIA:
|
||||
docker exec encoderpro-dashboard python3 /app/reencode.py -c /config/config.yaml
|
||||
|
||||
# For Intel:
|
||||
# docker exec encoderpro-dashboard-intel python3 /app/reencode.py -c /config/config.yaml
|
||||
|
||||
# For CPU:
|
||||
# docker exec encoderpro-dashboard-cpu python3 /app/reencode.py -c /config/config.yaml
|
||||
```
|
||||
|
||||
Schedule: `Daily` or `Weekly`
|
||||
|
||||
---
|
||||
|
||||
## Monitoring
|
||||
|
||||
### View Logs
|
||||
|
||||
**Real-time:**
|
||||
```bash
|
||||
docker logs -f <container-name>
|
||||
```
|
||||
|
||||
**Log files:**
|
||||
```bash
|
||||
tail -f /mnt/user/appdata/encoderpro/logs/encoderpro.log
|
||||
```
|
||||
|
||||
### Check Progress
|
||||
|
||||
**Web Dashboard:**
|
||||
- Go to `http://your-unraid-ip:5000`
|
||||
- View real-time statistics
|
||||
|
||||
**Command line:**
|
||||
```bash
|
||||
docker exec <container-name> python3 /app/reencode.py -c /config/config.yaml --stats
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### NVIDIA: GPU Not Found
|
||||
|
||||
```bash
|
||||
# Check NVIDIA plugin installed
|
||||
nvidia-smi
|
||||
|
||||
# Verify container can see GPU
|
||||
docker exec encoderpro-dashboard nvidia-smi
|
||||
```
|
||||
|
||||
### Intel: GPU Not Found
|
||||
|
||||
```bash
|
||||
# Check device exists
|
||||
ls -la /dev/dri/
|
||||
|
||||
# Check container can see device
|
||||
docker exec encoderpro-dashboard-intel ls -la /dev/dri/
|
||||
|
||||
# Verify QSV encoders
|
||||
docker exec encoderpro-dashboard-intel ffmpeg -encoders | grep qsv
|
||||
```
|
||||
|
||||
### Read-Only File System Error
|
||||
|
||||
**Symptom:** `[Errno 30] Read-only file system: '/movies/...'`
|
||||
|
||||
**Cause:** The `/movies` directory was mounted as read-only (`:ro`), but encoderPro needs write access to replace files after encoding.
|
||||
|
||||
**Why Write Access is Needed:**
|
||||
1. Original file is read from `/movies/movie.mkv`
|
||||
2. Encoded to `/work/movie.mkv.tmp`
|
||||
3. Original moved to `/archive/movie.mkv` (backup)
|
||||
4. Encoded file moved to `/movies/movie.mkv` (replacement)
|
||||
|
||||
**Fix:**
|
||||
Remove the `:ro` flag from the movies mount:
|
||||
```bash
|
||||
# Stop and remove container
|
||||
docker stop encoderpro-dashboard-intel && docker rm encoderpro-dashboard-intel
|
||||
|
||||
# Restart with read-write movies mount (no :ro)
|
||||
docker run -d \
|
||||
--name encoderpro-dashboard-intel \
|
||||
--device=/dev/dri:/dev/dri \
|
||||
-e GPU_TYPE=intel \
|
||||
-p 5000:5000 \
|
||||
-v /mnt/user/movies:/movies \
|
||||
-v /mnt/user/archive/movies:/archive \
|
||||
-v /mnt/user/appdata/encoderpro/config.yaml:/config/config.yaml:ro \
|
||||
-v /mnt/user/appdata/encoderpro/db:/db \
|
||||
-v /mnt/user/appdata/encoderpro/logs:/logs \
|
||||
--restart unless-stopped \
|
||||
encoderpro-intel:latest dashboard
|
||||
```
|
||||
|
||||
**Note:** The original files are safely backed up to `/archive` before replacement, so write access to `/movies` is safe.
|
||||
|
||||
### Permission Denied Errors
|
||||
|
||||
**Symptom:** `PermissionError: [Errno 13] Permission denied: '/logs/reencode.log'`
|
||||
|
||||
**Cause:** Container runs as non-root user (UID 1000) for security, but directories aren't owned by that user.
|
||||
|
||||
**Fix:**
|
||||
```bash
|
||||
# Fix all directory permissions
|
||||
chown -R 1000:1000 /mnt/user/appdata/encoderpro/db
|
||||
chown -R 1000:1000 /mnt/user/appdata/encoderpro/logs
|
||||
chown -R 1000:1000 /mnt/user/temp/encoderpro-work
|
||||
chown -R 1000:1000 /mnt/user/archive/movies
|
||||
chown -R 1000:1000 /mnt/user/movies
|
||||
|
||||
# Restart container
|
||||
docker restart encoderpro-dashboard-intel
|
||||
# OR (for NVIDIA)
|
||||
docker restart encoderpro-dashboard
|
||||
# OR (for CPU)
|
||||
docker restart encoderpro-dashboard-cpu
|
||||
```
|
||||
|
||||
### Files Stuck in "Processing" State
|
||||
|
||||
**Symptom:** After stopping container, files show as "processing" and can't be selected
|
||||
|
||||
**Fix:**
|
||||
1. **Automatic:** Just refresh the dashboard page - cleanup runs automatically
|
||||
2. **Manual:** Click the "🔧 Reset Stuck" button in the dashboard
|
||||
3. **Result:** Files are marked as "failed" and can be retried
|
||||
|
||||
**Note:** This happens when the container stops while encoding. The system automatically detects and fixes this on startup or dashboard refresh.
|
||||
|
||||
### Container Won't Start
|
||||
|
||||
```bash
|
||||
# Check logs
|
||||
docker logs <container-name>
|
||||
|
||||
# Rebuild image
|
||||
cd /mnt/user/appdata/encoderpro
|
||||
docker build -t encoderpro:latest . # or encoderpro-intel:latest
|
||||
```
|
||||
|
||||
### Encoding Too Slow
|
||||
|
||||
1. Reduce `max_workers` in config.yaml
|
||||
2. Use faster profile (fast_gpu, fast_qsv, fast_cpu)
|
||||
3. Ensure work_dir is on SSD
|
||||
|
||||
### Out of Space
|
||||
|
||||
```bash
|
||||
# Check work directory
|
||||
du -sh /mnt/user/temp/encoderpro-work/
|
||||
|
||||
# Clean up stale files
|
||||
rm -rf /mnt/user/temp/encoderpro-work/*
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Performance Guide
|
||||
|
||||
### NVIDIA Performance
|
||||
|
||||
| GPU Series | Expected Speed (1080p) | Recommended Workers |
|
||||
|------------|------------------------|---------------------|
|
||||
| RTX 4000 | 200-350 fps | 2 |
|
||||
| RTX 3000 | 150-300 fps | 1-2 |
|
||||
| RTX 2000 | 100-250 fps | 1-2 |
|
||||
| GTX 1000 | 80-200 fps | 1 |
|
||||
|
||||
### Intel Arc Performance
|
||||
|
||||
| GPU Model | Expected Speed (1080p) | Recommended Workers |
|
||||
|-----------|------------------------|---------------------|
|
||||
| A770 | 150-250 fps | 3-4 |
|
||||
| A750 | 130-220 fps | 3 |
|
||||
| A380 | 100-180 fps | 2-3 |
|
||||
| A310 | 80-150 fps | 2 |
|
||||
|
||||
### CPU Performance
|
||||
|
||||
| CPU Cores | Expected Speed (1080p) | Recommended Workers |
|
||||
|-----------|------------------------|---------------------|
|
||||
| 16+ cores | 5-10 fps | 3-4 |
|
||||
| 8-12 cores| 3-7 fps | 2-3 |
|
||||
| 4-6 cores | 2-5 fps | 1-2 |
|
||||
|
||||
---
|
||||
|
||||
## Updating
|
||||
|
||||
```bash
|
||||
cd /mnt/user/appdata/encoderpro
|
||||
|
||||
# Pull latest code
|
||||
git pull # or re-download files
|
||||
|
||||
# Rebuild image
|
||||
docker build -t encoderpro:latest .
|
||||
# or for Intel:
|
||||
docker build -f Dockerfile.intel -t encoderpro-intel:latest .
|
||||
|
||||
# Stop and remove old container
|
||||
docker stop encoderpro-dashboard && docker rm encoderpro-dashboard
|
||||
# OR for Intel:
|
||||
docker stop encoderpro-dashboard-intel && docker rm encoderpro-dashboard-intel
|
||||
# OR for CPU:
|
||||
docker stop encoderpro-dashboard-cpu && docker rm encoderpro-dashboard-cpu
|
||||
|
||||
# Start new container (use the docker run command from the setup section above)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Support
|
||||
|
||||
- **General Setup**: See [README-phase3.md](README-phase3.md)
|
||||
- **Intel Arc**: See [INTEL-ARC-GUIDE.md](INTEL-ARC-GUIDE.md)
|
||||
- **Docker**: See [README-docker.md](README-docker.md)
|
||||
- **Dashboard**: See [DASHBOARD-GUIDE.md](DASHBOARD-GUIDE.md)
|
||||
|
||||
---
|
||||
|
||||
## Quick Reference
|
||||
|
||||
**Build Images:**
|
||||
```bash
|
||||
docker build -t encoderpro:latest . # NVIDIA/CPU
|
||||
docker build -f Dockerfile.intel -t encoderpro-intel:latest . # Intel
|
||||
```
|
||||
|
||||
**Start Services:**
|
||||
```bash
|
||||
# NVIDIA
|
||||
docker start encoderpro-dashboard
|
||||
|
||||
# Intel Arc
|
||||
docker start encoderpro-dashboard-intel
|
||||
|
||||
# CPU only
|
||||
docker start encoderpro-dashboard-cpu
|
||||
```
|
||||
|
||||
**Process Files:**
|
||||
```bash
|
||||
docker exec <container> python3 /app/reencode.py -c /config/config.yaml
|
||||
```
|
||||
|
||||
**View Stats:**
|
||||
```bash
|
||||
docker exec <container> python3 /app/reencode.py -c /config/config.yaml --stats
|
||||
```
|
||||
|
||||
**Web Dashboard:**
|
||||
```
|
||||
http://your-unraid-ip:5000
|
||||
```
|
||||
Reference in New Issue
Block a user