Für Technikteams

Unter der Haube

Docker-basierte Player, API-first SaaS, MCP für AI-Integration — alles was dein Technikteam für die Evaluierung braucht.

SaaS-Plattform

media-player.app ist ein vollständig verwalteter Cloud-Service. Kein eigener Server, keine Installation, keine Wartung. Du kümmerst dich um deine Inhalte — wir um die Infrastruktur.

Gehostet & verwaltet

Kein On-Premise-Server nötig — SaaS aus der Cloud
Automatische Updates und Wartung der Plattform
Multi-Tenant-fähig: Deine Daten sind strikt isoliert
EU-Hosting, DSGVO-konform
99.9% Verfügbarkeit der API und des Dashboards
Keine eigene Datenbank, kein eigener Webserver

Docker als Runtime

Player-Software läuft als Docker Container
Funktioniert auf jedem Linux mit Docker (arm64 + amd64)
Raspberry Pi, Intel NUC, Mini-PC, Cloud VM, Thin Client
Kein spezielles OS nötig — Standard-Docker-Installation reicht
Container-Images über private Registry verteilt
3-Container-Architektur: Agent, Playback, Heartbeat

Architektur

Jedes Display wird von drei isolierten Docker-Containern betrieben. Läuft auf jedem Linux-System mit Docker — vom Raspberry Pi bis zum x86-Server. Klare Verantwortlichkeiten, unabhängig skalierbar und einzeln aktualisierbar.

Agent

Steuerungsebene

Geräteregistrierung, Token-Verwaltung, Content-Download und Playlist-Scheduling. Stellt eine lokale API auf Port 7071 bereit, über die der Playback-Container gesteuert wird.

GoREST APISHA256Plan-Sync

Playback

Wiedergabe-Ebene

Einheitliche lokale API auf Port 7070. Nutzt mpv für hardware-beschleunigtes Video (DRM/KMS) und Chromium im Kiosk-Modus für Web-Inhalte. Verwaltet Übergänge zwischen Elementen.

mpvChromiumDRM/KMSVAAPI

Heartbeat

Monitoring

Sendet regelmäßig Gesundheitsdaten ans Backend: CPU-Temperatur, Last, Speicher, Festplatte. Implementiert Watchdog-Logik für automatische Container-Neustarts.

Health ReportsWatchdogAuto-Recovery

Storage-Architektur

Alle schreibintensiven Operationen auf Docker Volumes (schützt SD-Karte)
/var/lib/signage/config/ — Gerätekonfiguration und Tokens
/var/lib/signage/content/ — Medien-Assets, indiziert nach SHA256
/var/lib/signage/state/ — State- und Health-JSON
/var/lib/signage/cache/ — Temporäre Downloads
/var/lib/signage/db/ — Optionale SQLite-Queue

Update-Mechanismus

Container-Image-Updates über Docker Registry
Health Check nach Update, automatischer Rollback bei Fehler
Lockfile-basierter Rescue-Mechanismus
Kein Reboot nötig — Rolling Container Replacement
Offline-Queue für pendende Updates bei Netzwerkausfall

Unterstützte Hardware

Die Player-Software ist Docker-basiert und läuft auf jedem Linux-System mit Docker. Optimiert für ARM64 (Raspberry Pi) und AMD64 (x86-Server, Mini-PCs). Unterstützung für kommerzielle SoC-Displays ist in Planung.

Raspberry Pi 5

Empfohlen
BCM2712, Quad-Core Cortex-A76 @ 2.4 GHz
4 GB oder 8 GB LPDDR4X-4267
VideoCore VII GPU — H.265 4K60 Hardware-Decode
2× Micro-HDMI 2.1 (bis 4Kp60)
MicroSD (A2) oder NVMe via HAT
5V/5A USB-C Stromversorgung
Empfohlen: passiver Kühlkörper oder Gehäuse mit Lüfter

Raspberry Pi 4

Unterstützt
BCM2711, Quad-Core Cortex-A72 @ 1.8 GHz
2 GB, 4 GB oder 8 GB LPDDR4-3200
VideoCore VI GPU — H.265 4K30 Hardware-Decode
2× Micro-HDMI 2.0 (4Kp30 oder 1080p60)
MicroSD (A2 empfohlen)
5V/3A USB-C Stromversorgung
Passiver Kühlkörper ausreichend

Linux x86 / Mini-PC

Unterstützt
Jedes x86_64-Linux mit Docker (Ubuntu, Debian, Alpine, ...)
Intel NUC, Lenovo ThinkCentre, Dell OptiPlex Micro, etc.
GPU-Beschleunigung via VAAPI (Intel/AMD)
HDMI, DisplayPort oder VGA-Ausgang
Min. 2 GB RAM, 8 GB Speicher
Ethernet oder WLAN
Ideal für Standorte mit vorhandener x86-Hardware

Commercial Display SoC

Geplant
Philips/PPDS (Android SoC), Samsung (Tizen/SSSP), LG (webOS), Sony BRAVIA
Integrierter SoC im Display — keine externe Hardware nötig
Nativer Vollbild-Player im Kiosk- / Lock-Task-Modus
Zentrale Verwaltung über dasselbe Dashboard
Ideal für großflächige Rollouts mit kommerziellen Displays
Abspielnachweis (Proof of Play) wie bei allen Plattformen
Separate Runtime pro Hersteller-Ökosystem

Playback Engine

Hybride Wiedergabe: mpv für Video und Bilder mit Hardware-Beschleunigung via DRM/KMS/VAAPI, Chromium für Web-Inhalte im Kiosk-Modus. Der Agent-Container steuert die Wiedergabe über eine lokale REST-API.

mpv — Video & Bilder

Hardware-beschleunigte Dekodierung über V4L2 M2M (Raspberry Pi) oder VAAPI (x86). Framebuffer-Ausgabe über DRM/KMS für minimale Latenz, ohne X11 oder Wayland.

DRM/KMS Direktausgabe (kein Display-Server nötig)
V4L2 M2M Hardware-Decode auf Pi 4/5
Unterstützt Rotation: 0°, 90°, 180°, 270°
Übergänge: Fade, Slide-Left, Slide-Right, Cut
Konfigurierbare Anzeigedauer pro Element
Loop-Modus für Einzelvideos und Playlists

Chromium — Web-Inhalte

Headless Chromium im Kiosk-Modus für HTML-Seiten, Dashboards und interaktive Inhalte. Steuerung über Chrome DevTools Protocol (CDP).

Kiosk-Modus: rahmenlos, kein UI-Chrome
CDP-Steuerung für Navigation und Screenshots
JavaScript und CSS vollständig unterstützt
Lokale HTML-Dateien und externe URLs
Automatischer Fallback bei CDP-Verbindungsfehler
Exponential Backoff bei Verbindungsproblemen
FormatCodec / DecoderHW-Beschleunigung
H.264 / AVCh264_v4l2m2m✓ Hardware
H.265 / HEVChevc_v4l2m2m✓ Hardware
VP9vp9_v4l2m2m✓ Hardware
AV1av1 (SW)— CPU
JPEG / PNGGPU decode✓ Hardware
HTML / CSS / JSChromium— CPU

Content Pipeline

Vom Upload bis zur Wiedergabe: Jede Datei wird verifiziert, versioniert und atomar auf die Player synchronisiert. Der Player spielt immer einen konsistenten Stand — nie einen halben Download.

Upload & Versionierung

Drag & Drop Upload über SaaS-Dashboard
Automatische MIME-Type-Erkennung
Versionierung: Jeder Upload erzeugt eine neue Version
Alte Versionen bleiben erhalten (Rollback möglich)
SHA256-Hash wird beim Upload berechnet

Verifizierung & Storage

Content-Addressable Storage: Dateien nach SHA256 indiziert
Deduplizierung: Identische Dateien nur einmal gespeichert
Integritätsprüfung vor Aktivierung auf dem Player
Korrupte Downloads werden automatisch wiederholt

Plan-Sync & Aktivierung

Plan = versionierter Snapshot: Playlists + Medien + Zeitpläne
Atomare Aktivierung: Alles oder nichts, kein Zwischenzustand
Differentieller Download: Nur geänderte Dateien
Offline-fähig: Letzter gültiger Plan bleibt aktiv
ISO-Timestamp-basierte Versionierung

Sicherheit

Multi-Tenant Isolation, verschlüsselte Kommunikation und tokenbasierte Authentifizierung. Kein Gerät hat Zugriff auf Daten anderer Tenants.

Authentifizierung

Token-basierte API-Authentifizierung (Bearer Tokens)
Separate Token-Scopes für Dashboard, Player und Automation
Token-Rotation für Geräte-Tokens
Rate Limiting auf allen API-Endpunkten

Tenant-Isolation

Strikte Trennung auf Datenbankebene (tenant_id auf jeder Tabelle)
Middleware-basierte Scope-Erzwingung
Kein Cross-Tenant-Zugriff auf API-Ebene möglich
Separate Mediathek und Konfiguration pro Tenant

Geräte-Sicherheit

8-stelliger Pairing-Code mit TTL (verfällt nach 15 Min.)
Geräte-Token wird nach erfolgreichem Pairing ausgestellt
Device-ID Binding: Token an spezifisches Gerät gebunden
Automatische Sperre bei wiederholten Fehlversuchen

Transport-Sicherheit

HTTPS/TLS für gesamte API-Kommunikation
SHA256-Prüfsumme für jeden Content-Download
Keine unverschlüsselten Verbindungen in Production
CORS-Konfiguration eingeschränkt auf erlaubte Origins

REST API

Die gesamte Plattform ist API-first. Alles, was das Dashboard kann, kannst du auch über die REST API automatisieren. OpenAPI-Dokumentation inklusive.

API-Endpunkte (Auszug)
# Player abrufen
GET /api/v1/players
GET /api/v1/players/{id}
GET /api/v1/players/{id}/health

# Inhalte erstellen
POST /api/v1/media-items
POST /api/v1/playlists
POST /api/v1/channels

# Zuordnungen
PUT /api/v1/playlists/{id}/items
PUT /api/v1/channels/{id}/playlists

# Authentifizierung
Authorization: Bearer {token}
X-Tenant-ID: {tenant_id}
Content-Type: application/json

RESTful JSON API

Konsistente Ressourcen-Struktur, HTTP-Verben, Standard-Statuscodes. JSON Request/Response.

OpenAPI 3.1 Docs

Automatisch generierte, interaktive API-Dokumentation. Teste Endpunkte direkt im Browser.

Cursor-Pagination

Effiziente Seitenblätterung für große Datenmengen. Filter, Sortierung und Suche auf allen Listen.

MCP — AI-Integration

media-player.app implementiert das Model Context Protocol (MCP) als First-Class-Integrationssurface. Neben der REST API können AI-Agents, n8n-Workflows und LangChain-Pipelines die Plattform direkt steuern.

Was ist MCP?

Das Model Context Protocol ist ein offener Standard für die Kommunikation zwischen AI-Agents und externen Systemen. Statt einer proprietären API können beliebige AI-fähige Clients (Claude, GPT, eigene LLMs) die Plattform über Tools, Resources und Prompts steuern.

MCP Tools

Read-Only: Player-Status, Fleet-Übersicht, aktive Pläne, Heartbeats, Fehler-Logs
Diagnostik: Screenshots anfordern, Log-Bundles erstellen, Playout-Reports
Operativ: Channel zuweisen, Plan publizieren, Settings ändern (scope-gated)
Reporting: Aggregierte Proof-of-Play Abfragen

Anwendungsfälle

AI-gestützter Support-Bot: Diagnose und Troubleshooting per Chat
n8n / Make.com: Automatisierte Workflows (z.B. neuer Content → Playlist aktualisieren)
LangChain / CrewAI: AI-Agents die deine Signage-Flotte verwalten
Eigene Dashboards: MCP als universelle Datenschnittstelle

Sicherheit

Scoped Automation Tokens — granulare Berechtigungen pro Integration
Approval Mode für kritische Operationen (Reboot, Update)
Revisionssicheres Audit Log für jeden MCP-Tool-Aufruf
Strikte JSON Schema Validierung, kein arbitrary execution
Rate Limits pro Token und Tenant

Monitoring & Telemetrie

Jedes Display sendet in konfigurierbaren Intervallen Gesundheitsdaten an das Backend. Der Heartbeat-Container sammelt System-Metriken und Playout-Events.

MetrikQuelle
CPU Temperature/sys/class/thermal
CPU Load/proc/loadavg
Memory Usage/proc/meminfo
Disk Usagestatvfs()
Network LatencyAPI ping
Playout EventsPlayback Engine
Container StatusDocker API
Display StateHDMI / CEC

Netzwerk-Anforderungen

Die Player benötigen eine ausgehende Internetverbindung. Eingehende Ports müssen nicht geöffnet werden — der Player verbindet sich zum Backend, nicht umgekehrt.

Ausgehende Verbindungen

HTTPS (443) → api.media-player.app (API, Heartbeat)
HTTPS (443) → registry.media-player.app (Container-Images)
HTTPS (443) → cdn.media-player.app (Content-Downloads)
DNS (53) → Beliebiger DNS-Resolver
NTP (123) → Zeitsynchronisation (empfohlen)

Bandbreite & Offline

Initial-Sync: Abhängig von Content-Größe (einmalig)
Laufend: < 1 MB/Tag für Heartbeats und API-Calls
Content wird lokal gecached, läuft offline weiter
Differentieller Sync: Nur geänderte Dateien
Empfehlung: 10 Mbit/s für flüssigen Initial-Download

Auf einen Blick

SaaS-Plattform

Cloud-hostedMulti-TenantREST APIOpenAPI 3.1MCP

Player Runtime

DockerGompvChromiumAlpine Linux

Plattformen

Raspberry Pi 4/5Linux x86_64ARM64AMD64

Integration

REST APIMCPWebhooksn8nLangChain

Monitoring

Heartbeat AgentHealth APIPlayout EventsWatchdog

Sicherheit

HTTPS/TLSToken AuthTenant IsolationAudit LogDSGVO

Überzeugt?

Teste media-player.app kostenlos oder wirf einen Blick in die API-Dokumentation.

Wir nutzen deine E-Mail ausschließlich zur Launch-Benachrichtigung. Kein Spam.

API-Dokumentation