Blame
|
1 | # CT 126 – Tdarr |
||||||
| 2 | ||||||||
| 3 | > [!NOTE] |
|||||||
| 4 | > CT 126 bündelt den automatischen Medien-Transcoder Tdarr mit Intel QSV GPU-Beschleunigung. |
|||||||
| 5 | ||||||||
| 6 | ## Basisdaten |
|||||||
| 7 | ||||||||
| 8 | - **CT-ID:** `126` |
|||||||
| 9 | - **Name:** `tdarr` |
|||||||
| 10 | - **IP:** `192.168.178.73` |
|||||||
| 11 | - **OS:** Debian 12, 4 vCPU, 4 GB RAM, 20 GB SSD (local-lvm) |
|||||||
| 12 | ||||||||
| 13 | ## Öffentliche Domain |
|||||||
| 14 | ||||||||
| 15 | - `https://transcode.ls-cloud.biz` |
|||||||
| 16 | ||||||||
| 17 | ## Relevante Ports |
|||||||
| 18 | ||||||||
| 19 | ```text |
|||||||
| 20 | 8265 Tdarr Web-UI |
|||||||
| 21 | 8266 Tdarr Server (intern) |
|||||||
| 22 | ``` |
|||||||
| 23 | ||||||||
| 24 | ## Setup |
|||||||
| 25 | ||||||||
| 26 | Tdarr läuft als Docker Container (privileged) mit GPU-Passthrough: |
|||||||
| 27 | ||||||||
| 28 | ```text |
|||||||
| 29 | /dev/dri/renderD128 Intel Iris Xe renderD (QSV/VAAPI) |
|||||||
| 30 | /dev/dri/card1 Intel Iris Xe card |
|||||||
| 31 | ``` |
|||||||
| 32 | ||||||||
| 33 | **Compose:** `/opt/tdarr/compose.yml` |
|||||||
| 34 | ||||||||
| 35 | ```bash |
|||||||
| 36 | cd /opt/tdarr && docker compose up -d |
|||||||
| 37 | ``` |
|||||||
| 38 | ||||||||
| 39 | ## Mounts |
|||||||
| 40 | ||||||||
| 41 | | Host (Proxmox) | Im CT | Im Container | |
|||||||
| 42 | |---|---|---| |
|||||||
| 43 | | `/mnt/storage/fileserver/media` | `/mnt/media` | `/media` | |
|||||||
| 44 | | `/mnt/storage/fileserver/tdarr-cache` | `/mnt/tdarr-cache` | `/temp` | |
|||||||
| 45 | ||||||||
| 46 | ## Konfiguration |
|||||||
| 47 | ||||||||
| 48 | - **Library:** `4NDShul-F` — Ordner `/media`, folderWatching aktiv |
|||||||
| 49 | - **Flow:** `hevc-qsv-flow` — checkVideoCodec → ffmpegCommandStart → SetVideoEncoder(hevc_qsv) → SetContainer(mkv) → Execute → replaceOriginalFile |
|||||||
| 50 | - **Worker-Limits:** transcodegpu=2, transcodecpu=1, healthcheckcpu=1 |
|||||||
| 51 | - **Node:** `lscloud-tdarr` (ID: `azQaGhE8F`) |
|||||||
| 52 | ||||||||
| 53 | ## GPU-Encoder (bestätigt funktionsfähig) |
|||||||
| 54 | ||||||||
| 55 | ``` |
|||||||
| 56 | hevc_qsv Intel QSV Hardware-Encoder ✓ |
|||||||
| 57 | hevc_vaapi Intel VAAPI Hardware-Encoder ✓ |
|||||||
| 58 | ``` |
|||||||
| 59 | ||||||||
| 60 | ## Prüfung |
|||||||
| 61 | ||||||||
| 62 | ```bash |
|||||||
| 63 | pct status 126 |
|||||||
| 64 | # Transcode-Queue anzeigen: |
|||||||
| 65 | curl http://192.168.178.73:8265/api/v2/is-server-alive |
|||||||
| 66 | # ffmpeg-Prozesse: |
|||||||
| 67 | pct exec 126 -- docker exec tdarr ps aux | grep ffmpeg |
|||||||
| 68 | ``` |
|||||||
| 69 | ||||||||
| 70 | ## Datenbank |
|||||||
| 71 | ||||||||
| 72 | SQLite-DB im Container: `/app/server/Tdarr/DB2/SQL/database.db` |
|||||||
| 73 | Tabellen: `flowsjsondb`, `librarysettingsjsondb`, `nodejsondb`, `filejsondb` |
|||||||
| 74 | Spalten (alle DB-Tabellen): `id TEXT (PK)`, `timestamp INTEGER`, `json_data TEXT` |
|||||||
| 75 | ||||||||
| 76 | Scan manuell triggern: |
|||||||
| 77 | ||||||||
| 78 | ```bash |
|||||||
| 79 | curl -s -X POST http://192.168.178.73:8265/api/v2/scan-files \ |
|||||||
| 80 | -H 'Content-Type: application/json' \ |
|||||||
| 81 | -d '{"data":{"scanConfig":{"dbID":"4NDShul-F","mode":"scanFresh","arrayOrPath":"/media"}}}' |
|||||||
| 82 | ``` |
|||||||
