My Live TV Channel

My Live TV Channel

Encode and publish HLS straight from a Mac, no streaming server or CDN required

Stream je personeelsbijeenkomst on-prem, zonder deze naar een SaaS te sturen

Dit artikel is uit het Engels vertaald met behulp van AI. Lees het origineel

Wanneer 4.000 medewerkers tegelijk inloggen op dezelfde all-hands, betaalt iemand iemand voor die bytes. Meestal is die iemand een abonnement op Microsoft Stream, Zoom Webinar, Vimeo Enterprise of Brightcove. De bytes verlaten kort het bedrijfsnetwerk, kaatsen af op een datacenter van een derde partij en komen via een andere verbinding hetzelfde netwerk weer binnen. De CEO zit in een vergaderzaal twee deuren verderop, en de video van hem reist naar Frankfurt en weer terug.

Dat werkt prima totdat iemand de vraag stelt waar geen goed antwoord op is. “Waarom loopt ons interne town hall verkeer via een externe SaaS?” Compliance stelt die vraag voor een audit in een gereguleerde sector. Security stelt hem na elke datalekmelding waarin een streamingleverancier wordt genoemd. De CFO stelt hem als de per-kijker SaaS-rekening verlengd wordt. IT stelt hem zodra de WAN-verbinding van het pand verzadigd raakt omdat de all-hands een recordaantal kijkers trekt.

Het eerlijke antwoord is dat corporate live streaming zich heeft ontwikkeld rond RTMP encoders en SaaS-platforms, omdat de alternatieven ofwel duur waren (Cisco enterprise video, Kollective en Hive Streaming eCDN-appliances, interne CDN-apparatuur) ofwel zo zelfgebouwd dat niemand in een gemiddeld IT-team de tijd had om ze te onderhouden. Bedrijven kozen SaaS omdat niets anders binnen handbereik lag.

Dat is veranderd. De encoder, de transcoder, de packager en de publisher zijn samengesmolten tot één stuk software dat op een Mac draait. De bestemming hoeft geen leverancier te zijn. Gericht op een webserver binnen je firewall produceert dezelfde software broadcast-grade HLS die je medewerkers afspelen over het bedrijfs-LAN, en niets verlaat het netwerk.

Dit artikel gaat precies daarover.

Hoe “interne corporate live” er in de praktijk uitziet

De meeste interne video binnen een doorsnee bedrijf valt in een korte lijst van terugkerende use cases.

Kwartaal-all-hands en CEO town halls. Groot publiek (vaak het hele bedrijf), lage frequentie (vier tot twaalf keer per jaar), bescheiden productiekwaliteit. De latency-eisen zijn soepel: vijftien tot dertig seconden is prima, want er is geen tweerichtingsinteractie tijdens de keynote en Q&A wordt afgehandeld in een aparte channel.

Trainingen en certificeringscursussen. Soms live, vaak terug te kijken. Maximaal een paar honderd gelijktijdige kijkers. Productie bestaat uit één camera, één presentator en slides die vanaf een laptop worden gedeeld.

Productlanceringen en engineering-aankondigingen. Alleen intern, omdat de aankondiging eerst voor het personeel is voordat hij de pers bereikt. Gevoelig voor lekken.

Compliance- en HR-briefings. Jaarlijkse ethiektrainingen, regelgevingsupdates, gezondheid en veiligheid. De audit trail is belangrijker dan de productiekwaliteit.

Updates rond security-incidenten. Standaard alleen intern, omdat de inhoud bestaat uit incidentdetails. Die moet binnen blijven.

In al die gevallen is het publiek interne medewerkers op het bedrijfsnetwerk of via de bedrijfs-VPN. De content is volgens beleid intern. De bytes naar een SaaS sturen, die SaaS ze terug laten serveren naar je medewerkers, per minuut betalen en het juridisch team vragen om weer een verwerkersovereenkomst toe te voegen, is de weg van de minste weerstand, niet de juiste architectuur.

Hoe een on-prem alternatief er in 2025 uitziet

De architectuur is klein genoeg om op een post-it te tekenen.

Eén Mac in de vergaderzaal. De MacBook van de spreker, een USB-camera, het AV-systeem van het pand dat audio naar de Mac voert, of een willekeurige combinatie daarvan. Apple silicon heeft een hardware H.264, HEVC en AV1 encoder die identiek is aan wat Final Cut Pro gebruikt voor export. Tegelijk en in real time 1080p op 5 Mbps, 720p op 3 Mbps en 540p op 1,8 Mbps coderen, is precies waar de chip voor ontworpen is.

Eén webserver binnen de firewall. Wat dan ook dat HTTPS PUT accepteert en bestanden serveert. Een hergebruikte fileserver, een kleine Linux-VM, een bestaande interne IIS of nginx die al intranet-content serveert. Het endpoint ontvangt kleine fragmented MP4 segmenten (zes seconden per stuk) en piepkleine .m3u8 playlist-bestanden. De opslag is verwaarloosbaar: een uitzending van één uur op drie kwaliteitsniveaus gebruikt ongeveer 4 GB. De server transcodeert niet, herverpakt niet, hij slaat alleen op en serveert.

Een HLS-speler ingebed op de intranetpagina. Elke moderne HLS-speler werkt: hls.js voor browsers zonder native HLS, de ingebouwde ondersteuning in Safari, de Apple TV in de kantine, de meeting-room displays die de meeste bedrijven al gebruiken.

Dat is de hele architectuur. De bytes verlaten het netwerk nooit. Er is geen streamingserver om te licentiëren, geen cloud-transcoder om te betalen, geen eCDN-agent om op elke laptop van een medewerker te installeren, geen SaaS-abonnement. De Mac draait My Live TV Channel, die de stream codeert en uploadt. De webserver die je al hebt, doet de rest.

Waarom dit op schaal werkt op een corporate LAN

De eerste reactie van infrastructuurmensen is meestal dat één webserver geen town hall publiek aankan. Op het publieke internet klopt die intuïtie. Op een corporate LAN niet.

Een 1080p HLS variant op 5 Mbps over een 1 Gbps uplink verzadigt de link bij ongeveer 200 gelijktijdige kijkers (1000 ÷ 5). Dezelfde uplink op 10 Gbps draagt grofweg 2.000 gelijktijdige 1080p-kijkers. De 720p variant op 3 Mbps brengt die getallen op respectievelijk 333 en 3.300. In een adaptive-bitrate ladder, waar kijkers verspreid zijn over meerdere niveaus, zullen de meeste corporate laptops op 720p uitkomen zodra de adaptive logica van HLS het comfortabele niveau heeft gevonden. De realistische gelijktijdige capaciteit op één server van 10 Gbps is dus enkele duizenden medewerkers.

Als je publiek groter is dan dat, is de volgende stap geen SaaS. Het is een tweede interne server, of je bestaande interne CDN (de meeste grote ondernemingen hebben al caching-infrastructuur voor software-updates en intranet-content), of een enkele nginx caching-laag voor de upload-server. Voor niets daarvan heb je een leverancier nodig, en alles is goedkoper dan per-kijker SaaS-facturatie.

Wanneer het publiek te groot is voor unicast

De unicast-LAN-rekensom hierboven loopt vast rond enkele duizenden gelijktijdige kijkers per server. Als een wereldwijde all-hands 50.000 medewerkers tegelijk op het netwerk van hetzelfde pand laat landen, of je streamt naar een stadiongroot evenement vol bedrijfslaptops, loopt unicast tegen een muur en wordt het stapelen van meer servers verkwistend.

Het traditionele antwoord is multicast: één kopie van elk segment reist naar een multicast-groep, elke kijker abonneert zich, en het netwerk dupliceert pakketten op switches en routers waar nodig. Eén stream van 5 Mbps voedt het hele campusterrein vanuit één bron, zonder bandbreedtevermenigvuldiging per kijker.

In de praktijk is multicast op een bedrijfsnetwerk een “ja, maar”-situatie:

  • Het werkt alleen binnen een multicast-enabled netwerk. De meeste bedrijfsnetwerken hebben IGMP en PIM standaard uitgeschakeld om beveiligingsredenen. Het inschakelen daarvan is een netwerk-engineering project, geen instelling.
  • Het werkt niet over de meeste VPN-verbindingen. Thuiswerkers vallen terug op unicast.
  • Het werkt niet over WAN-verbindingen tussen kantoren zonder expliciete MPLS-multicast of iets vergelijkbaars.
  • Het is vooral nuttig binnen één campus of één gebouw, waar IT de multicast-bomen bewust heeft opgebouwd.

Als je netwerk het ondersteunt, gebruik je het binnen deze architectuur door de encoder-Mac gewoon zijn ding te laten doen (HLS via HTTPS PUT naar de interne webserver) en stroomafwaarts een multicast-translator toe te voegen. Open-source tools als tsduck en commerciële appliances van netwerkleveranciers volgen de HLS-output, bouwen een MPEG-TS multicast-feed en kondigen die aan via SAP of SDP. Endpoints die multicast ondersteunen (VLC, set-top boxes in vergaderzalen, smart-tv’s in de kantine) sluiten zich aan bij de groep in plaats van unicast HLS op te halen. Endpoints die dat niet doen (de meeste laptops in een browser) blijven de unicast HLS-speler gebruiken die door dezelfde webserver wordt geserveerd. Eén Mac, één upload-bestemming, plus een enkele multicast-translator dekt beide soorten kijkers.

Voor de meeste bedrijven is deze sectie theoretisch: unicast handelt de all-hands zonder problemen af. Voor de paar grote ondernemingen waar het niet theoretisch is, breidt de architectuur zich uit zonder dat de encoder verandert.

De eerste keer opzetten

De eerste run kost ongeveer een middag voor een IT-team dat nog niet eerder interne streaming heeft gedaan. De grove volgorde:

  1. Kies de doel-webserver. Elke interne webserver met HTTPS werkt. Configureer een directory zoals /intranet-broadcasts/town-hall-2025-q4/ met HTTPS PUT ingeschakeld, geen authenticatie als hij achter de firewall staat, of basic auth als je dat liever hebt. nginx met de dav_module doet dit in ongeveer tien regels config. mod_dav van Apache is het equivalent.

  2. Test het endpoint. Vanaf elke interne machine moet curl -X PUT https://intranet.corp/intranet-broadcasts/test/index.m3u8 --data "test" een 201 teruggeven. Als dat lukt, is de bestemming klaar.

  3. Configureer My Live TV Channel op de Mac van de presentator. Voeg een HTTP PUT bestemming toe die naar de directory wijst. Sla op. Test de verbinding. Maak een Stream Profile aan met de bitrate-ladder die je wilt.

  4. Embed een HLS-speler op de intranetpagina. Een <video controls> tag die naar de afspeel-URL wijst, is genoeg op Safari. Voor Chrome en Edge plaats je hls.js (één script-tag, één regel JavaScript). De hele speler is minder dan dertig regels HTML.

  5. Doe een dry-run met het technische team. Stream tien minuten vanaf de Mac. Laat een paar interne kijkers afstemmen. Houd het dashboard in de gaten. Bevestig dat de segmenten op de doel-server verschijnen, dat de speler ze oppikt en dat de latency acceptabel is.

Dat is de hele setup. Volgende uitzendingen hergebruiken dezelfde bestemming, hetzelfde profiel en dezelfde player-embed.

En Q&A, polls en de rest?

De architectuur hierboven verzorgt de uitzending, niet de interactieve laag. Voor Q&A, polls en reacties tijdens de town hall hebben interne bedrijven meestal al een Slack of Microsoft Teams channel die prima volstaat, op sub-seconde latency draait over hetzelfde interne netwerk, en integreert met de directory die de rest van het bedrijf ook gebruikt. Proberen om een streaming-SaaS ook nog je chattool te laten zijn, is wat die producten duur maakt. Door de uitzending en de interactie te splitsen in de tools die je bedrijf al draait, blijft de architectuur goedkoop.

Wil je een 24/7 intern informatiekanaal (“CorpTV”), dan vult de My TV Channel playout-app de tijd tussen live-uitzendingen met geplande content (archieven van eerdere all-hands, trainingsvideo’s, intern nieuws, manager-updates). Dezelfde bestemmingsserver, dezelfde player-embed. Medewerkers die op een dinsdagmiddag op de kanaalpagina belanden, vinden iets dat speelt in plaats van een “stream offline” scherm.

Wat jouw probleem blijft

Zelf interne video hosten heeft trade-offs waar je eerlijk over moet zijn.

Opname en bewaartermijn. De bestemmingsserver bewaart elke uitzending oneindig, tenzij je een opruimtaak instelt. Dat is goed voor archieven en slecht voor de opslag als je het vergeet. De meeste bedrijven willen een bewaartermijnbeleid voor interne uitzendingen (meestal afgestemd op regelgevende of juridische eisen). Stel het één keer in, in cron, en vergeet het.

Ondertiteling en toegankelijkheid. Live ondertiteling zit niet ingebouwd in de encoder-app, en dat blijkt minder een probleem dan het klinkt. Moderne browsers en besturingssystemen genereren live captions client-side, on-device, zonder dat de server eraan te pas komt: de Live Caption-functie van Chrome werkt op elke video die in de browser speelt, macOS Live Captions doet hetzelfde systeembreed in Safari, Edge heeft zijn eigen equivalent. Elke kijker zet captions zelf aan of uit in zijn eigen browser. Heb je server-side ondertiteling nodig om compliance-redenen (de captions moeten onderdeel zijn van de opname, of je kunt niet rekenen op de browser van de kijker), route dan de audio door een ondertitelingsdienst (de ingebouwde captions van Microsoft, AWS Transcribe, interne tools) en leg de captions als overlay in de speler. De HLS-laag verandert in beide gevallen niet.

Authenticatie. Binnen de firewall is “iedereen op het bedrijfsnetwerk mag kijken” vaak acceptabel. Heb je sterkere garanties nodig (executive briefings, M&A-aankondigingen), zet de afspeel-URL dan achter je bestaande SSO of VPN posture checks. Standaard webauthenticatie, niets video-specifieks.

Kantoren in meerdere regio’s. Heb je kantoren op meerdere continenten die deelnemen aan één uitzending, dan wil je ofwel een regionale cache-server in elke regio, ofwel een bewuste keuze om de corporate WAN te gebruiken. WAN’s zijn doorgaans rate-limited, dus de LAN-rekensom hierboven gaat niet op. Plan daarop.

Het eerlijke oordeel

De kostenvraag is het makkelijkst te overdrijven. SaaS-rekeningen voor interne streaming bestaan, maar zijn zelden op zichzelf doorslaggevend. De doorslaggevende factor voor de meeste bedrijven die overstappen naar een on-prem architectuur is dat interne video intern moet blijven. De stem van de CEO, de engineering-aankondiging, de M&A-briefing, de debriefing van een security-incident, de compliance-training: niets daarvan hoeft het bedrijfsnetwerk te verlaten om bij het corporate publiek te komen dat er al op zit. Zodra dat het uitgangspunt is, wordt “we sturen een kopie via het datacenter van een leverancier en betalen voor de retourreis” het deel dat verantwoording behoeft, niet het on-prem alternatief.

Compliance-teams stellen dezelfde vraag in gereguleerde sectoren: welke derde partijen hebben toegang tot opnamen van interne medewerkersbijeenkomsten? Security-teams stellen hem na elke datalekmelding waarin een streamingleverancier wordt genoemd. Regels rond data-residentie in sommige regio’s stellen hem nog voordat de uitzending plaatsvindt. Een architectuur waarin de bytes het netwerk nooit verlaten, neemt de vraag weg.

Heb je die zorgen, en is je IT-team het zat om weer een eCDN-agent van een leverancier op elke laptop uit te rollen, dan is het praktische antwoord nu klein genoeg om in een middag op te zetten. Een Mac in de vergaderzaal, een webserver die je al hebt, en een app die je een week lang gratis kunt proberen. De architectuurtekening past op een post-it. Het aantal leveranciers met toegang tot de stem van je CEO gaat van “meerdere” naar “nul”.

Probeer My Live TV Channel 7 dagen gratis in de Mac App Store →

Hulp nodig bij je streamingproject?

Dit artikel is geschreven door ervaren professionals beschikbaar via iReplay.tv. Of je nu expertise nodig hebt in interne zakelijke live streaming, on-prem live streaming, intranet streaming—ons netwerk van specialisten kan je project tot leven brengen.

Huur een professional →

Featured App

My Live TV Channel

My Live TV Channel

Encode and publish HLS straight from a Mac, no streaming server or CDN required