Vir ingenieurspanne

Onder die enjinkap

Docker-gebaseerde spelers, API-eerste SaaS, MCP vir KI-integrasie — alles wat jou ingenieurspan nodig het vir evaluering.

SaaS-platform

media-player.app is 'n ten volle bestuurde wolkdiens. Geen bediener om te bestuur, geen installasie, geen onderhoud nie. Jy fokus op jou inhoud — ons hanteer die infrastruktuur.

Gehuisves en bestuur

Geen plaaslike bediener nodig nie — SaaS vanuit die wolk
Outomatiese platformopdaterings en onderhoud
Multi-huurder: jou data is streng geïsoleer
EU-huisvesting, DSGVO/GDPR-nakoming
99,9% API- en kontrolepaneelbeskikbaarheid
Geen databasis of webbediener om te bestuur nie

Docker as looptyd

Spelersagteware loop as Docker-houers
Werk op enige Linux met Docker (arm64 + amd64)
Raspberry Pi, Intel NUC, Mini-rekenaar, Wolk-VM, Dun Kliënt
Geen spesiale bedryfstelsel nodig nie — standaard Docker-installasie is genoeg
Houerbeelde versprei via private register
3-houer-argitektuur: Agent, Afspeel, Hartklop

Argitektuur

Elke skerm word aangedryf deur drie geïsoleerde Docker-houers. Werk op enige Linux-stelsel met Docker — van Raspberry Pi tot x86-bedieners. Duidelike verantwoordelikhede, onafhanklik skaalbaar en individueel opdateerbaar.

Agent

Beheervlak

Toestelregistrasie, tokenbestuur, inhoudaflaai en speellyskedule. Bied 'n plaaslike API op poort 7071 om die afspeelhouer te beheer.

GoREST APISHA256Plan Sync

Afspeel

Afspeelvlak

Verenigde plaaslike API op poort 7070. Gebruik mpv vir hardeware-versnelde video (DRM/KMS) en Chromium in kioskmodus vir webinhoud. Bestuur oorgange tussen items.

mpvChromiumDRM/KMSVAAPI

Hartklop

Monitering

Stuur gereelde gesondheidsverslae na die agtergrond: SVE-temperatuur, las, geheue, skyf. Implementeer waghondlogika vir outomatiese houerherbegin.

GesondheidsverslaeWaghondOuto-Herstel

Bergingsargitektuur

Alle skryf-intensiewe bewerkings op Docker-volumes (beskerm SD-kaart)
/var/lib/signage/config/ — Toestelkonfigurasie en tokens
/var/lib/signage/content/ — Media-bates, geïndekseer volgens SHA256
/var/lib/signage/state/ — Status- en gesondheids-JSON
/var/lib/signage/cache/ — Tydelike aflaaie
/var/lib/signage/db/ — Opsionele SQLite-ry

Opdateringsmeganisme

Houerbeeldopdaterings via Docker Registry
Gesondheidskontrole ná opdatering, outomatiese terugrol by mislukking
Sluitlêer-gebaseerde reddingsmeganisme
Geen herbegin nodig nie — rollende houervervanging
Vanlyn-ry vir hangende opdaterings tydens netwerkonderbreking

Ondersteunde hardeware

Die spelersagteware is Docker-gebaseer en werk op enige Linux-stelsel met Docker. Geoptimaliseer vir ARM64 (Raspberry Pi) en AMD64 (x86-bedieners, mini-rekenaars). Ondersteuning vir kommersiële SoC-skerms word beplan.

Raspberry Pi 5

Aanbeveel
BCM2712, Vierkern Cortex-A76 @ 2.4 GHz
4 GB of 8 GB LPDDR4X-4267
VideoCore VII GPU — H.265 4K60 hardeware-dekodering
2x Micro-HDMI 2.1 (tot 4Kp60)
MicroSD (A2) of NVMe via HAT
5V/5A USB-C-kragtoevoer
Aanbeveel: passiewe verkoeler of omhulsel met waaier

Raspberry Pi 4

Ondersteun
BCM2711, Vierkern Cortex-A72 @ 1.8 GHz
2 GB, 4 GB of 8 GB LPDDR4-3200
VideoCore VI GPU — H.265 4K30 hardeware-dekodering
2x Micro-HDMI 2.0 (4Kp30 of 1080p60)
MicroSD (A2 aanbeveel)
5V/3A USB-C-kragtoevoer
Passiewe verkoeler is voldoende

Linux x86 / Mini-rekenaar

Ondersteun
Enige x86_64 Linux met Docker (Ubuntu, Debian, Alpine, ...)
Intel NUC, Lenovo ThinkCentre, Dell OptiPlex Micro, ens.
GPU-versnelling via VAAPI (Intel/AMD)
HDMI, DisplayPort of VGA-uitset
Min. 2 GB RAM, 8 GB berging
Ethernet of WiFi
Ideaal vir liggings met bestaande x86-hardeware

Kommersiële Skerm-SoC

Beplan
Philips/PPDS (Android SoC), Samsung (Tizen/SSSP), LG (webOS), Sony BRAVIA
Ingeboude SoC in die skerm — geen eksterne hardeware nodig nie
Inheemse volskermspeler in kiosk- / slottaakmodus
Sentrale bestuur via dieselfde kontrolepaneel
Ideaal vir grootskaalse uitrol met kommersiële skerms
Bewys van afspeel-verslaggewing soos alle platforms
Aparte looptyd per vervaardiger-ekostelsel

Afspeelenjin

Hibriede afspeel: mpv vir video en beelde met hardewareversnelling via DRM/KMS/VAAPI, Chromium vir webinhoud in kioskmodus. Die agenthouer beheer afspeel deur 'n plaaslike REST API.

mpv — Video en beelde

Hardeware-versnelde dekodering via V4L2 M2M (Raspberry Pi) of VAAPI (x86). Raambuffer-uitset via DRM/KMS vir minimale vertraging, sonder X11 of Wayland.

DRM/KMS direkte uitset (geen skermbediener nodig nie)
V4L2 M2M hardeware-dekodering op Pi 4/5
Ondersteun rotasie: 0°, 90°, 180°, 270°
Oorgange: Vervaag, Gly-Links, Gly-Regs, Snit
Instelbare vertoonduur per item
Lusmodus vir enkele video's en speellyste

Chromium — Webinhoud

Koplose Chromium in kioskmodus vir HTML-blaaie, kontroleskerms en interaktiewe inhoud. Beheer via Chrome DevTools Protocol (CDP).

Kioskmodus: raamloos, geen UI-versiering nie
CDP-beheer vir navigasie en skermskote
Volle JavaScript- en CSS-ondersteuning
Plaaslike HTML-lêers en eksterne URL's
Outomatiese terugval by CDP-verbindingsmislukking
Eksponensiële terugwag by verbindingsprobleme
FormaatKodek / DekodeerderHW-versnelling
H.264 / AVCh264_v4l2m2m✓ Hardeware
H.265 / HEVChevc_v4l2m2m✓ Hardeware
VP9vp9_v4l2m2m✓ Hardeware
AV1av1 (SW)— CPU
JPEG / PNGGPU decode✓ Hardeware
HTML / CSS / JSChromium— CPU

Inhoudpyplyn

Van oplaai tot afspeel: elke lêer word geverifieer, weergawe-beheer en atomies na spelers gesinkroniseer. Die speler loop altyd 'n konsekwente toestand — nooit 'n gedeeltelike aflaai nie.

Oplaai en weergawebeheer

Sleep-en-los-oplaai via SaaS-kontrolepaneel
Outomatiese MIME-tipe-opsporing
Weergawebeheer: elke oplaai skep 'n nuwe weergawe
Vorige weergawes word bewaar (terugrol moontlik)
SHA256-hash word by oplaai bereken

Verifikasie en berging

Inhoud-adresseerbare berging: lêers geïndekseer volgens SHA256
Deduplisering: identiese lêers word slegs een keer gestoor
Integriteitskontrole voor aktivering op speler
Korrupte aflaaie word outomaties herprobeer

Plansinkronisasie en aktivering

Plan = weergawe-foto: speellyste + media + skedules
Atomiese aktivering: alles of niks, geen tussentoestand nie
Differensiële aflaai: slegs gewysigde lêers
Vanlyn-vermoë: laaste geldige plan bly aktief
ISO-tydstempel-gebaseerde weergawebeheer

Sekuriteit

Multi-huurder-isolasie, versleutelde kommunikasie en token-gebaseerde verifikasie. Geen toestel het toegang tot 'n ander huurder se data nie.

Verifikasie

Token-gebaseerde API-verifikasie (Draertokens)
Aparte tokenbereike vir kontrolepaneel, speler en outomatisering
Tokenrotasie vir toesteltokens
Tempolimiet op alle API-eindpunte

Huurder-isolasie

Streng skeiding op databasvlak (tenant_id op elke tabel)
Middelware-gebaseerde bereiktoepassing
Geen kruishuurder-toegang moontlik op API-vlak nie
Aparte mediabiblioteek en konfigurasie per huurder

Toestelsekuriteit

8-syfer paringskode met TTL (verval ná 15 min)
Toesteltoken uitgereik ná suksesvolle paring
Toestel-ID-binding: token gebind aan spesifieke toestel
Outomatiese uitsluiting by herhaalde mislukkings

Vervoersekuriteit

HTTPS/TLS vir alle API-kommunikasie
SHA256-kontrolesom vir elke inhoudaflaai
Geen onversleutelde verbindings in produksie nie
CORS-konfigurasie beperk tot toegelate oorspronge

REST API

Die hele platform is API-eerste. Alles wat die kontrolepaneel kan doen, kan jy outomatiseer via die REST API. OpenAPI-dokumentasie ingesluit.

API-eindpunte (uittreksel)
# Haal spelers op
GET /api/v1/players
GET /api/v1/players/{id}
GET /api/v1/players/{id}/health

# Skep inhoud
POST /api/v1/media-items
POST /api/v1/playlists
POST /api/v1/channels

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

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

RESTful JSON API

Konsekwente hulpbronstruktuur, HTTP-werkwoorde, standaard statuskodes. JSON-versoek/antwoord.

OpenAPI 3.1 Dokumentasie

Outomaties gegenereerde interaktiewe API-dokumentasie. Toets eindpunte direk in die blaaier.

Wyser-paginering

Doeltreffende paginering vir groot datastelle. Filtrering, sortering en soek op alle lyseindpunte.

MCP — KI-integrasie

media-player.app implementeer die Model Context Protocol (MCP) as 'n eersteklas-integrasievlak. Bo en behalwe die REST API kan KI-agente, n8n-werkvloeie en LangChain-pyplyne die platform direk beheer.

Wat is MCP?

Die Model Context Protocol is 'n oop standaard vir kommunikasie tussen KI-agente en eksterne stelsels. In plaas van 'n eie API kan enige KI-bekwame kliënt (Claude, GPT, pasgemaakte LLM's) die platform beheer via gereedskap, hulpbronne en opdragte.

MCP-gereedskap

Leesalleen: spelerstatus, vlootoorsig, aktiewe planne, hartklop, foutlogboeke
Diagnostiek: versoek skermskote, skep logbundels, afspeelverslae
Operasioneel: ken kanale toe, publiseer planne, verander instellings (bereik-beheer)
Verslagdoening: saamgevoegde bewys-van-afspeel-navrae

Gebruiksgevalle

KI-aangedrewe ondersteuningsbot: diagnose en probleemoplossing via klets
n8n / Make.com: geoutomatiseerde werkvloeie (bv. nuwe inhoud → opdateer speellys)
LangChain / CrewAI: KI-agente wat jou uitstallingsvloot bestuur
Pasgemaakte kontroleskerms: MCP as 'n universele data-koppelvlak

Sekuriteit

Bereik-outomatiseringstokens — fynkorrelige toestemmings per integrasie
Goedkeuringsmodus vir kritiese bewerkings (herbegin, opdatering)
Vervalsingsbestande ouditlogboek vir elke MCP-gereedskaproep
Streng JSON-skema-validering, geen willekeurige uitvoering nie
Tempolimiete per token en huurder

Monitering en telemetrie

Elke skerm stuur gesondheidsdata na die agtergrond teen instelbare intervalle. Die hartklophouer versamel stelselmaatstawwe en afspeelgebeurtenisse.

MaatstafBron
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

Netwerkvereistes

Spelers het 'n uitgaande internetverbinding nodig. Geen inkomende poorte hoef oopgemaak te word nie — die speler verbind met die agtergrond, nie andersom nie.

Uitgaande verbindings

HTTPS (443) → api.media-player.app (API, hartklop)
HTTPS (443) → registry.media-player.app (houerbeelde)
HTTPS (443) → cdn.media-player.app (inhoudaflaaie)
DNS (53) → Enige DNS-oplosser
NTP (123) → Tydsinkronisasie (aanbeveel)

Bandwydte en vanlyn

Aanvanklike sinkronisasie: afhangend van inhoudgrootte (eenmalig)
Voortdurend: < 1 MB/dag vir hartklop en API-oproepe
Inhoud word plaaslik gebêre, speel vanlyn
Differensiële sinkronisasie: slegs gewysigde lêers
Aanbeveling: 10 Mbps vir gladde aanvanklike aflaai

Met 'n oogopslag

SaaS-platform

Wolk-gehuisvesMulti-HuurderREST APIOpenAPI 3.1MCP

Spelerlooptyd

DockerGompvChromiumAlpine Linux

Platforms

Raspberry Pi 4/5Linux x86_64ARM64AMD64

Integrasie

REST APIMCPWebhooksn8nLangChain

Monitering

Hartklop-agentGesondheids-APIAfspeelgebeurtenisseWaghond

Sekuriteit

HTTPS/TLSToken-verifikasieHuurder-isolasieOuditlogboekDSGVO/GDPR

Oortuig?

Probeer media-player.app gratis of kyk na die API-dokumentasie.

Ons gebruik jou e-pos net om jou oor die bekendstelling in te lig. Geen strooipos nie.

API-dokumentasie