För Technikteams

Ünner de Huuv

Docker-basierte Player, API-first SaaS, MCP för AI-Integration — allens wat dien Technikteam för de Evalueeren bruukt.

SaaS-Plattform

media-player.app is een vollstännig verwaltet Cloud-Service. Keen egen Server, keen Installatschon, keen Wartung. Du kümmerst di üm dien Inholden — wi üm de Infrastruktur.

Gehostet & verwaltet

Keen On-Premise-Server nödig — SaaS ut de Cloud
Automaatsche Updates un Wartung vun de Plattform
Multi-Tenant-fähig: Dien Daten sünd strikt isoleert
EU-Hosting, DSGVO-konform
99.9% Verfögborkeit vun API un Dashboard
Keen egen Datenbank, keen egen Webserver

Docker as Runtime

Player-Software löppt as Docker Container
Funkschoneert op jedes Linux mit Docker (arm64 + amd64)
Raspberry Pi, Intel NUC, Mini-PC, Cloud VM, Thin Client
Keen speziellet OS nödig — Standard-Docker-Installatschon langt
Container-Images över private Registry verdeelt
3-Container-Architektur: Agent, Playback, Heartbeat

Architektur

Jedes Display warrt vun dree isoleerte Docker-Containers bedreven. Löppt op jedes Linux-System mit Docker — vun'n Raspberry Pi bit to'n x86-Server. Klare Verantwoortlichkeiten, unafhängig skaleerbar un enkel aktualiseerbar.

Agent

Stüürungsebene

Geräteregistreeren, Token-Verwaltung, Content-Download un Playlist-Scheduling. Stellt een lokale API op Port 7071 bereit, över de de Playback-Container stüürt warrt.

GoREST APISHA256Plan-Sync

Playback

Weergave-Ebene

Eenheitliche lokale API op Port 7070. Bruukt mpv för hardware-beschleunigte Video (DRM/KMS) un Chromium in'n Kiosk-Modus för Web-Inholden. Verwaltet Övertöge twüschen Elementen.

mpvChromiumDRM/KMSVAAPI

Heartbeat

Monitoring

Sendt regelmatig Gesundheitsdaten an't Backend: CPU-Temperatuur, Last, Speeker, Fastplaat. Implementeert Watchdog-Logik för automaatsche Container-Neestarts.

Health ReportsWatchdogAuto-Recovery

Storage-Architektur

All schriivintensive Operatschonen op Docker Volumes (schützt SD-Kaart)
/var/lib/signage/config/ — Gerätekonfiguration un Tokens
/var/lib/signage/content/ — Medien-Assets, indexeert na SHA256
/var/lib/signage/state/ — State- un Health-JSON
/var/lib/signage/cache/ — Temporäre Downloads
/var/lib/signage/db/ — Optionale SQLite-Queue

Update-Mechanismus

Container-Image-Updates över Docker Registry
Health Check na't Update, automaatsch Rollback bi Fehler
Lockfile-basierter Rescue-Mechanismus
Keen Reboot nödig — Rolling Container Replacement
Offline-Queue för anstahnde Updates bi Nettwarkutfall

Ünnerstütte Hardware

De Player-Software is Docker-basiert un löppt op jedes Linux-System mit Docker. Optimeert för ARM64 (Raspberry Pi) un AMD64 (x86-Server, Mini-PCs). Ünnerstüttung för kommerzielle SoC-Displays is 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
2x Micro-HDMI 2.1 (bit 4Kp60)
MicroSD (A2) oder NVMe via HAT
5V/5A USB-C Stroomversorgung
Empfohlen: passiven Köhlkörper oder Gehüüs mit Lüfter

Raspberry Pi 4

Ünnerstütt
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
2x Micro-HDMI 2.0 (4Kp30 oder 1080p60)
MicroSD (A2 empfohlen)
5V/3A USB-C Stroomversorgung
Passiven Köhlkörper langt

Linux x86 / Mini-PC

Ünnerstütt
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-Utgang
Min. 2 GB RAM, 8 GB Speeker
Ethernet oder WLAN
Ideaal för Standoorde mit vörhandene x86-Hardware

Commercial Display SoC

Plant
Philips/PPDS (Android SoC), Samsung (Tizen/SSSP), LG (webOS), Sony BRAVIA
Inbuuden SoC in't Display — keen externe Hardware nödig
Nativen Vullbild-Player in'n Kiosk- / Lock-Task-Modus
Zentrale Verwaltung över datsülvige Dashboard
Ideaal för grootflächige Rollouts mit kommerzielle Displays
Afspeelnachwies (Proof of Play) as bi all Plattformen
Separate Runtime pro Hersteller-Ökosystem

Playback Engine

Hybride Weergave: mpv för Video un Biller mit Hardware-Beschleunigung via DRM/KMS/VAAPI, Chromium för Web-Inholden in'n Kiosk-Modus. De Agent-Container stüürt de Weergave över een lokale REST-API.

mpv — Video & Biller

Hardware-beschleunigte Dekodeerung över V4L2 M2M (Raspberry Pi) oder VAAPI (x86). Framebuffer-Utgave över DRM/KMS för minimale Latenz, ahn X11 oder Wayland.

DRM/KMS Direktutgave (keen Display-Server nödig)
V4L2 M2M Hardware-Decode op Pi 4/5
Ünnerstütt Rotatschon: 0°, 90°, 180°, 270°
Övertöge: Fade, Slide-Left, Slide-Right, Cut
Konfigurierbore Wies-Duur pro Element
Loop-Modus för enkele Videos un Playlists

Chromium — Web-Inholden

Headless Chromium in'n Kiosk-Modus för HTML-Sieden, Dashboards un interaktive Inholden. Stüürung över Chrome DevTools Protocol (CDP).

Kiosk-Modus: rahmenloos, keen UI-Chrome
CDP-Stüürung för Navigatschon un Screenshots
JavaScript un CSS vollstännig ünnerstütt
Lokale HTML-Dateien un externe URLs
Automaatsch Fallback bi CDP-Verbindungsfehler
Exponential Backoff bi 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

Vun't Upload bit to de Weergave: Jede Datei warrt verifizeert, versioneert un atomaar op de Player synchroniseert. De Player speelt jümmer een konsistenten Stand — nienich een halven Download.

Upload & Versioneerung

Drag & Drop Upload över SaaS-Dashboard
Automaatsche MIME-Type-Erkennung
Versioneerung: Jedes Upload maakt een nee Vershon
Ole Vershonen blievt erholden (Rollback mööglich)
SHA256-Hash warrt bi't Upload berekent

Verifizeerung & Storage

Content-Addressable Storage: Dateien na SHA256 indexeert
Deduplizeerung: Identische Dateien blots eenmal speekert
Integritätsprüüfung vör Aktiveerung op'n Player
Korrupte Downloads warrt automaatsch wedderholt

Plan-Sync & Aktiveerung

Plan = versioneerten Snapshot: Playlists + Medien + Tiedpläne
Atomare Aktiveerung: Allens oder nix, keen Twüschenstatus
Differentiellen Download: Blots ännerte Dateien
Offline-fähig: Letzten gültigen Plan blift aktiv
ISO-Timestamp-basierte Versioneerung

Sekerheit

Multi-Tenant Isolatschon, verschlüsselte Kommunikatschon un tokenbasierte Authentifizeerung. Keen Gerät hett Togriep op Daten vun annere Tenants.

Authentifizeerung

Token-basierte API-Authentifizeerung (Bearer Tokens)
Separate Token-Scopes för Dashboard, Player un Automation
Token-Rotatschon för Geräte-Tokens
Rate Limiting op all API-Endpunkten

Tenant-Isolatschon

Strikte Trennung op Datenbankebene (tenant_id op jede Tabell)
Middleware-basierte Scope-Erzwingung
Keen Cross-Tenant-Togriep op API-Ebene mööglich
Separate Mediathek un Konfiguration pro Tenant

Geräte-Sekerheit

8-stelligen Pairing-Code mit TTL (verföllt na 15 Min.)
Geräte-Token warrt na erfolgrieket Pairing utgeeven
Device-ID Binding: Token an spezifischet Gerät bunnen
Automaatsche Sperr bi wedderholte Fehlversöke

Transport-Sekerheit

HTTPS/TLS för de hele API-Kommunikatschon
SHA256-Prüüfsumme för jeden Content-Download
Keen unverschlüsselte Verbindungen in Production
CORS-Konfiguration inschränkt op erlöövte Origins

REST API

De hele Plattform is API-first. Allens, wat dat Dashboard kann, kannst du ook över de REST API automatiseeren. OpenAPI-Dokumentatschon inbegrepen.

API-Endpunkten (Uttog)
# Player afrogen
GET /api/v1/players
GET /api/v1/players/{id}
GET /api/v1/players/{id}/health

# Inholden opstellen
POST /api/v1/media-items
POST /api/v1/playlists
POST /api/v1/channels

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

# Authentifizeerung
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

Automaatsch genereerte, interaktive API-Dokumentatschon. Test Endpunkten direkt in'n Browser.

Cursor-Pagination

Effiziente Siedenblättern för grote Datenmengen. Filter, Sorteerung un Söök op all Listen.

MCP — AI-Integration

media-player.app implementeert dat Model Context Protocol (MCP) as First-Class-Integratschonssurface. Neben de REST API köönt AI-Agents, n8n-Workflows un LangChain-Pipelines de Plattform direkt stüüren.

Wat is MCP?

Dat Model Context Protocol is een open Standard för de Kommunikatschon twüschen AI-Agents un externe Systemen. Ansteed vun een proprietäre API köönt beliebige AI-fähige Clients (Claude, GPT, egen LLMs) de Plattform över Tools, Resources un Prompts stüüren.

MCP Tools

Read-Only: Player-Status, Fleet-Översicht, aktive Pläne, Heartbeats, Fehler-Logs
Diagnostik: Screenshots anfordern, Log-Bundles opstellen, Playout-Reports
Operativ: Channel towieden, Plan publizeeren, Settings ännern (scope-gated)
Reporting: Aggregeerte Proof-of-Play Afrogen

Anwendungsfälle

AI-stütte Support-Bot: Diagnose un Troubleshooting per Chat
n8n / Make.com: Automatiseerte Workflows (t.B. nee Content → Playlist aktualiseeren)
LangChain / CrewAI: AI-Agents de dien Signage-Flotte verwalten
Egen Dashboards: MCP as universelle Datenschnittsteed

Sekerheit

Scoped Automation Tokens — granulare Berechtigungen pro Integration
Approval Mode för kritische Operatschonen (Reboot, Update)
Revisionsseker Audit Log för jeden MCP-Tool-Oproop
Strikte JSON Schema Valideerung, keen arbitrary execution
Rate Limits pro Token un Tenant

Monitoring & Telemetrie

Jedes Display sendt in konfigureerbare Intervallen Gesundheitsdaten an dat Backend. De Heartbeat-Container sammelt System-Metriken un Playout-Events.

MetrikQuell
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

Nettwark-Anforderungen

De Player bruken een utgahnde Internetverbindung. Ingahnde Ports mööt nich opmaakt warrn — de Player verbindt sik to't Backend, nich annersom.

Utgahnde 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) → Beliebigen DNS-Resolver
NTP (123) → Tiedsynchronisatschon (empfohlen)

Bandbreite & Offline

Initial-Sync: Afhängig vun Content-Grötte (eenmalig)
Lopend: < 1 MB/Dag för Heartbeats un API-Calls
Content warrt lokaal cached, löppt offline wieder
Differentiellen Sync: Blots ännerte Dateien
Empfehlung: 10 Mbit/s för'n geschmeidigen Initial-Download

Op een 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

Sekerheit

HTTPS/TLSToken AuthTenant IsolationAudit LogDSGVO

Övertuugt?

Probeer media-player.app gratis ut oder kiek in de API-Dokumentatschon.

Wi bruken dien E-Mail blots för de Launch-Nachricht. Keen Spam.

API-Dokumentatschon