Self-host vs managed videohosting — TCO-analyse 2026

Self-host vs managed videohosting — TCO-analyse 2026

De pitch is verleidelijk: “Cloudflare R2 is $0,015/GB/maand met gratis egress. Waarom $100/maand betalen aan een managed host als ik 1 TB voor $15 opsla?”

De pitch is ook misleidend. De R2-rekening is de kleinste regel in een self-host videostack. Dit post is de eerlijke boekhouding.

Wat managed platforms echt voor je doen

Voor je kosten vergelijkt: lijst wat je koopt voor je maandfactuur. Een typische van $100 dekt:

  • Opslag van bronnen + multi-bitrate-varianten
  • Encode-pijplijn — GPU/CPU-farms die uploads omzetten naar HLS-varianten
  • HLS-packaging — playlist-generatie, segment-muxing
  • AES-128-versleuteling — segmentversleuteling + sleutelrotatie
  • Sleutel-afleverinfra — signed URLs, IP-binding, expiry
  • CDN-aflevering — globaal edge
  • Embed player — HLS.js-wrapper, captions-menu, kwaliteitskiezer, branding
  • Analytics — ingest, opslag, query, dashboard
  • Misbruiklimieten — rate-limits, anomaliedetectie
  • Ondertitel-pijplijn — VTT-upload, optionele AI-generatie
  • Webhook-events — playback-events voor je app
  • Admin-dashboard — upload, beheer, configuratie
  • Klantsupport — als om 2 uur ’s nachts iets stuk gaat

Een self-host equivalent bouwt elk daarvan opnieuw.

Pure infra-kostenvergelijking

Alleen opslag en bandbreedte, geen engineering-tijd:

Resource Cloudflare R2 AWS S3 Bunny Stream AVCaption Premium
1 TB opslag / maand $15 $23 gebundeld gebundeld
5 TB egress / maand $0 $409 ~$50–80 gebundeld
20 TB egress / maand $0 $1.720 ~$200–400 $100 vast

R2 lijkt onverslaanbaar. Op pure infra is het dat ook. Maar pure infra is een dunne plak van de echte rekening.

De engineering-kostenregel

Hier mist het R2-getal iets. Om van een bucket MP4s een serveerbaar videoproduct te maken, bouw je (of stelt samen uit open source) dit alles:

Encode-pijplijn — 2–4 weken

  • FFmpeg met NVENC bij GPU, libx264 anders
  • Queue (Redis, SQS, eigen) zodat parallelle uploads de CPU niet opblazen
  • Multi-bitrate-ladder (1080p / 720p / 480p / 360p)
  • HLS-packaging via FFmpeg -hls_time of Bento4 mp4hls
  • Foutafhandeling — wat als encode crasht midden in een job?
  • Monitoring — alert bij queue-stapeling

Versleuteling + sleutel-aflevering — 1–2 weken

  • AES-128-sleutelgeneratie per video, ideaal roterend
  • EXT-X-KEY-URI in playlists
  • Sleutel-server met auth — JWT, signed URL of OAuth
  • Expiry, IP-binding, misbruiklimieten op de sleutel-endpoint

Embed player — 2–4 weken

  • HLS.js forken of erop bouwen
  • Captions-menu, kwaliteitskiezer, fullscreen, PiP
  • Mobiel (iOS native HLS, Android HLS.js)
  • Branding-hooks — kleur, logo, watermark
  • postMessage-events voor de oudterpagina

Analytics — 1–2 weken

  • Ingest-endpoint (waarschijnlijk WebSocket of beacon)
  • Events opslaan (ClickHouse, Postgres, BigQuery)
  • Aggregaat-queries — gelijktijdige kijkers, completion, drop-off
  • Dashboard-UI

Admin / beheer — 1–2 weken

  • Upload-UI met chunked upload voor grote bestanden
  • Bibliotheek browse / bewerken / verwijderen
  • Per-video-instellingen (whitelist, watermark, captions)
  • API voor programmatisch beheer

On-call-infra — doorlopend

  • Monitoring-dashboards (Grafana, Datadog)
  • Alerting (PagerDuty)
  • Incident-runbooks
  • Backup + DR

Totaal tot MVP-prod: 3–6 maanden voor een competente solo-engineer. Totaal onderhoud: doorlopend achtergrondwerk + 24/7 on-call.

Cijfers op engineering-kosten

Senior ingenieur in de VS volledig geladen: ~$200k–300k/jaar, oftewel ~$20k/maand all-in. Zelfs 10 % van zijn tijd op video-onderhoud = $2.000/maand aandacht.

Vergeleken met $100/maand AVCaption Premium of $50/maand Bunny Stream is alleen al de engineer-plak 20–40x de platformkosten.

Dit is de berekening die de meeste “laten we self-hosten”-pitches doodt zodra spreadsheets opduiken.

Wanneer self-host echt wint

Drie reële scenario’s:

1. Video is bijzaak. Je levert een SaaS waar enkele pagina’s instructievideos bevatten. Geen monetisatierisico bij playback-falen. Geen versleuteling, watermark, analytics nodig. Gewoon R2 + <video>-tag is genoeg.

2. Je hebt het team al. Een platformteam draait infra voor andere productdelen, video toevoegen is incrementeel. Marginale engineer-kosten laag omdat runbooks bestaan.

3. Massieve schaal. Je bent zo groot dat platformmarges ($/TB) je engineer-kosten ($/TB op schaal) overstijgen. Zeldzaam — meestal honderden TBs egress/maand voor de wiskunde flipt.

Anti-scenario: “Ik ben cursusmaker en engineering is mijn hobby.” Hier onderschat iedereen de onderhoudsbelasting. Eens gebouwd, maanden later besteed je 20 % van je launch-week aan packaging-regression debuggen in plaats van lesgeven.

Wanneer managed het duidelijke antwoord is

  • Video is omzetkritisch (cursussen, betaalde memberships, B2B-trainingen).
  • Engineering-team klein of afwezig.
  • Je wilt voorspelbare maandkosten.
  • Je hebt features nodig (versleuteling, signed URLs, watermark, AI-ondertitels, analytics) die niet je kerncompetentie zijn.
  • Uptime telt en je wilt geen video-pager.

De berekening is niet close. $100/maand managed is fors goedkoper dan engineer-tijd voor self-host-pariteit.

Tussenweg: “managed-aflevering, self-host opslag”

Sommige teams houden ruwe videobestanden in eigen R2/S3 en pijpen ze door een managed afleverlaag voor encoding, versleuteling, player en CDN. Werkt als:

  • Compliance dwingt master-bestand af.
  • Kill-switch onafhankelijk van managed-vendor.
  • Opslag al elders betaald.

Niche. Meeste teams gaan volledig één kant op.

Beslismatrix

Situatie Aanbeveling
Side-project, casual videos R2 + simpel <video>-tag
Cursusmaker, video = product Managed (AVCaption / Bunny / Mux)
SaaS met ingebedde help-videos R2 + <video> of goedkoopste managed
Grote enterprise met infra-team Beide — afhankelijk van bestaande platforms
Studio-gelicentieerde content Managed met DRM (VdoCipher)
Membership-site, groeiende audience Managed (vaste tier, AVCaption Premium)
Engineer die wil leren Self-host als leerproject, daarna naar managed

Hoe AVCaption ernaar kijkt

AVCaption is het managed-antwoord. Specifiek gebouwd omdat de meeste teams dit niet zelf zouden moeten bouwen. Vast $100/maand per 5 TB, AES-128 multi-key HLS, signed embed tokens, gebrande player, AI-ondertitels op Enterprise. De hele stack die je anders drie maanden zou samenstellen.

Wil je toch self-hosten — bouwen, geweldig leerproject. Maar prijs het niet als $15/maand en verras jezelf niet in maand vier.

Diepere kostenvergelijking: Goedkoopste videohosting voor 1 TB+ bibliotheken. Per platform: comparisons.

Samenvatting

R2 + nginx is een geweldig hobbyproject. Voor omzetkritische video overstijgt de engineering-belasting de managed-platformprijs vaak met een ordegrootte. Optimaliseer total cost of ownership, geen infra-regel.

Probeer AVCaption gratis op dashboard.avcaption.com/register.

Veelgestelde vragen

Is self-hosted video echt goedkoper dan managed? +
Op pure infra ja — Cloudflare R2 met gratis egress is duidelijk goedkoper dan welk managed platform ook. Op total cost of ownership (engineer-tijd, on-call, doorlopend onderhoud) nee — managed wint vrijwel altijd voor omzetkritische workloads.
Wat heeft een self-host videostack echt nodig? +
Opslag (R2/S3), encode-pijplijn (FFmpeg + queue), HLS-packaging, AES-128-versleuteling + sleutel-aflevering, signed-URL-systeem, embed player (HLS.js-fork), analytics-ingest, misbruiklimieten en 24/7 monitoring. Niets individueel moeilijk. Integratie wel.
Wanneer is self-host zinvol? +
Wanneer video bijzaak is (je levert een SaaS met wat videos), wanneer je al een infra-team hebt, of bij een schaal waar platformmarges je engineering-kosten overstijgen. Anders: kopen.
Hoe lang duurt het om vanaf nul een self-host stack te bouwen? +
MVP HLS-streaming uit R2: een weekend. MVP met versleutelde HLS, signed URLs en echte player: 2–4 weken. Production-grade met monitoring, misbruikbescherming, analytics, captions en admin-UI: 3–6 maanden voor een ingenieur.
Kan ik self-host opslag mengen met managed-aflevering? +
Ja. Sommige teams houden videobestanden in eigen R2/S3-bucket en gebruiken player + aflevering + versleuteling van een managed platform daarboven. Zeldzaam, maar bij sommige platforms ondersteund. Meeste gaan volledig één kant op.
Wat is het on-call-risico voor self-host video? +
Reëel. Video is 24/7. Slechte deploy, sleutelserver-uitval, CDN-misconfiguratie — kijkers zien een kapotte player. Managed platforms hebben betaalde on-call-engineers daarvoor; self-host zet je op de pager.
← content.back_to_index