Sunday's mediaplayer

Opdrachtgever
Sunday's

Platform
Web
TV

Techieken
Laravel
VUE JS
NodeJS

Datum
feb 2018

Franchiseorganisatie van zonnestudio's

Sunday's Nederland heeft een groot aantal studio's in Nederland.

In iedere studio staan televisieschermen welke voor marketing doeleinden gebruikt worden. Het centraal verspreiden en beheren van content op deze schermen was voor Sunday's echter een grote uitdaging. Wij hielpen hen bij de ontwikkeling van een online media platform.

Doelstelling

Bij Sunday's ontstond de vraag hoe het efficiënt beheren en verspreiden van media uitingen in videoformaat gemakkelijk gemaakt kan worden. 

Met een druk op de knop zou een medewerker op het hoofdkantoor een nieuwe video moeten kunnen toevoegen aan een afspeellijst en deze vervolgens versturen naar een of meerdere zonnestudio's. Dit allemaal zonder tussenkomst van anderen. Deze wens was tot voor kort niet realiseerbaar.

Concept

Sunday's was al in het bezit van meerdere Raspberry Pi's (kleine goedkope computer) die ze op iedere TV kan aansluiten. Het apparaat kan zowel bekabeld als op de Wifi aangesloten worden. 

We besloten een realtime synchronisatie systeem te ontwikkelen dat gekoppeld is aan een Content Management Systeem (CMS). Met dit CMS zou een medewerker in staat moeten zijn de mediabestanden te beheren per vestiging. 

Belangrijke punten waar wij rekening mee moesten houden zijn:

  • het afspeelformaat van de video's
  • eenvoudig beheren van verschillende vestigingen
  • gebruiksvriendelijk distribueren van nieuwe video's
  • verwerken van grote hoeveelheden data
Pi

Eenvoudig beheren van verschillende vestigingen

Sunday's heeft 60+ vestigingen door heel het land. 

Deze moeten uiteraard allemaal kunnen worden beheerd en up-to-date worden gehouden. Zodra er een wijziging is in de playlist moet deze worden opgepikt door de devices en worden opgehaald. In het beheersysteem kunnen playlists worden aangemaakt welke vervolgens weer aan een locatie kunnen worden gekoppeld. Elke vestiging heeft een eigen playlist. In de playlist kunnen video's toegevoegd, vervangen en verwijderd worden.

Uitrollen van nieuwe video's

We hebben een proces ontwikkeld dat elke nacht bekijkt of de playlist op de devices up-to-date is met de laatste versie in het CMS. Indien dit niet het geval is, wordt de laatste versie automatisch gedownload en wordt vervolgens de video player opnieuw opgestart. Ook kan vanuit het CMS de playlist handmatig worden gesynchroniseerd.

Software updates op afstand

De door ons ontwikkelde software en het OS Ubuntu Mate kunnen op afstand worden ge-update. 

Tevens is een CMS-beheerder in staat de video-player vanaf het hoofdkantoor te starten en stoppen.

Uitrol

Aangezien er meer dan 60 devices worden uitgerold, is het belangrijk dat de setup alle mogelijke opties aanbiedt. Zo is er niet overal kabel-internet beschikbaar en moet er dus met Wifi gewerkt worden. 

De setup zorgt ervoor dat er een verbinding kan worden gemaakt met een beschikbaar Wifi netwerk. In de onderstaande afbeelding zie je hoe dit er uit ziet. Eenmaal verbonden met internet wordt het systeem aangemeld bij het CMS. Op de PI wordt vervolgens een lijst met locaties opgehaald. Deze lijst wordt middels een RESTful API opgehaald uit het CMS. Na het selecteren van de juiste locatie wordt de bijbehorende playlist gedownload en zal de videoplayer de eerste video van de playlist gaan afspelen.

Met ons kennismaken en de mogelijkheden bespreken?

Neem contact op met Wouter Pluut. Hij helpt je graag verder.

Contact opnemen

Realisatie

Tijdens de realisatie fase hebben we veel met Sunday's contact gehad om ervoor te zorgen dat alles naar wens wordt opgeleverd. 

We hebben diverse technieken gebruikt tijdens de ontwikkeling van het platform:

  • Laravel
  • Vue JS
  • Node JS
  • Sockets
  • PHP

Laravel & Vue JS

Het systeem wat draait op de PI, is geschreven in Laravel en Vue JS. Deze technieken hebben zich bewezen in diverse andere webprojecten die we hebben ontwikkeld.

Node JS & Sockets

Om realtime gegevens te verzenden en te ontvangen hadden we een lichte applicatie nodig. Hiervoor gebruiken we Node JS i.c.m. sockets. Sockets zijn kleine verzoekjes (keep-alive requests), zodat de PI aangeeft aan het CMS systeem dat deze actief is. Met behulp van deze socketverbindingen kunnen we CMS-beheerders laten zien welke devices online en offline zijn. Met deze zelfde socketverbindingen zijn we in staat commando's op afstand af te vuren op de PI's. 

Sundays slide 1 Sundays slide 2 Sundays slide 3 Sundays slide 4

Resultaat

Het resultaat is een robuust systeem waarmee CMS-beheerders op een eenvoudige manier video's en playlists kunnen beheren van de verschillende vestigingen die Sunday's heeft. 

Met ons kennismaken en de mogelijkheden bespreken?

Neem contact op met Wouter Pluut. Hij helpt je graag verder.

Contact opnemen