Media Converter Service

Case-overzicht

Dit is een cloudgebaseerde mediaservice die video- en audiobestanden omzet naar HLS-streamingformaat met adaptieve bitrate-ondersteuning. Het systeem luistert naar een SQS-wachtrij voor nieuwe bestanden, start voor elk bestand een Kubernetes-taak en produceert een volledige set m3u8-afspeellijsten en .ts-segmenten die klaar zijn voor elke moderne videospeler.


Het ondersteunt meerdere resoluties voor video, meerdere bitratelagen voor audio en verwerkt video's met meerdere audiotracks — inclusief verschillende talen of commentaar. De service werkt tegelijkertijd voor meerdere projecten en organiseert uitvoer in aparte mappen op S3 op basis van het project of de uitgever.

Doel: Bouw een volledig geautomatiseerde service die elk video- of audiobestand omzet naar HLS-formaat zonder handmatige tussenkomst - werkend over meerdere projecten, handelend in diverse inhoudstypen en schaalbaar tot nul wanneer inactief.

Image

Belangrijke projectinformatie

Sectoren

Sectoren

Media & Entertainment, videostreamingplatforms, OTT- & uitzendingdiensten, digitale publicaties, content delivery-netwerken — elk bedrijf dat video- of audiocontent aan eindgebruikers levert via verschillende apparaten en met uiteenlopende netwerkomstandigheden.

Diensten

Diensten

SQS-wachtrijverwerking met long polling en zichtbaarheidstimeoutbeheer, FFmpeg & FFprobe media transcodering en streamanalyse, Kubernetes taakorkestratie met tijdelijke volumes en node-affiniteit, parallelle S3-uploadpipeline met pre-upload opschoning.

Oplossingen

Oplossingen

Multi-resolutie HLS-video — 1080p, 720p, 480p, 360p, 240p met adaptieve bitrate, Multi-bitrate audio HLS — 32, 64, 96, 128, 192 kbps niveaus per audiotrack, automatische detectie van alle audiostreams met taalmetadata, miniaturen op het 2-seconde punt, laagresolutie MP4-preview, MP3- en WAV-kopieën.

Technologieën

Technologieën

AWS SQS, S3, Kubernetes, FFmpeg, FFprobe, H.264, AAC/HE-AAC, HLS/m3u8, NVIDIA NVENC, Intel Quick Sync, EC2 Auto Scaling, Docker, Helm

De uitdagingen

Veel uitvoerformaten�uit ������������������������e������������������n invoerbestand

Veel uitvoerformaten�uit ������������������������e������������������n invoerbestand

Een enkel videobestand kan honderden bestanden opleveren — vijf videoresoluties, vijf audiobitrates per audiotrack, plus miniaturen en previews. We moesten dat allemaal netjes organiseren en snel uploaden.

Meerdere audiostreams per videobestand

Meerdere audiostreams per videobestand

Sommige video's hebben meerdere audiotracks in verschillende talen. Het systeem moest ze allemaal automatisch detecteren, elk afzonderlijk converteren en een hoofdafspeellijst bouwen die elke track met de juiste taalcode verwijst.

Wachtrijbetrouwbaarheid�en retrylogica

Wachtrijbetrouwbaarheid�en retrylogica

Met SQS moet je duplicaten, zichtbaarheidstimeouts en mislukte taken goed afhandelen. Als een taak mislukt, moet het bericht terug in de wachtrij komen voor herproberen. Als hetzelfde bestand twee keer in de wachtrij staat, mogen we het niet opnieuw verwerken.

Beheer op Kubernetes

Beheer op Kubernetes

Elke conversietaak gebruikt veel CPU en geheugen. We moesten tijdelijke volumes instellen, node-affiniteitregels en de juiste opschoning zodat taken zich niet opstapelen of elkaar blokkeren.

Multi-projectisolatie op S3

Multi-projectisolatie op S3

De service draait voor meerdere projecten tegelijk. Elk project heeft zijn eigen uitvoerpad op S3 nodig, en we moesten zowel op uitgever als op series gebaseerde mappenstructuren ondersteunen zonder iets te breken.

Automatische codecselectie

Automatische codecselectie

Niet elke machine heeft GPU-versnelling. Het systeem moest detecteren welke codecs beschikbaar zijn — NVIDIA, Intel Quick Sync, AMD of alleen software — en automatisch de beste kiezen.

Het proces

De gehele pijplijn werkt zonder menselijke tussenkomst — vanaf het moment dat een bestand op S3 terechtkomt tot de uiteindelijke HLS-uitvoer klaar is voor afspelen. Elke stap gaat netjes over in de volgende, met ingebouwde beveiligingen tegen fouten, duplicaten en resourceconflicten. Hieronder staat hoe het systeem een bestand door de volledige conversiecyclus leidt.

Wachtrij-polling

Wachtrij-polling

De taakbeheerder draait op Kubernetes en pollt de SQS-wachtrij met long polling. Bij ontvangst van een bericht analyseert het de S3-bucket en objectkey om het bronbestand te identificeren.

Dubbelverwerking voorkomen

Dubbelverwerking voorkomen

Voordat er een nieuwe taak wordt aangemaakt, controleert de manager of er al een Kubernetes-taak voor hetzelfde bestand bestaat. Zo ja, dan wordt het bericht opnieuw in de wachtrij geplaatst met vertraging om dubbele verwerking te voorkomen.

Aanmaak van Kubernetes-taak

Aanmaak van Kubernetes-taak

Er wordt een nieuwe pod gemaakt uit een sjabloon met correcte resourcebeperkingen, node-affiniteit voor ARM-gebaseerde instanties, en tijdelijke volumes voor tijdelijke bestanden, invoer, uitvoer en logs.

Video- en audioconversie

Video- en audioconversie

FFmpeg converteert video naar vijf HLS-resoluties (1080p→240p) met 4-seconden segmenten. Elke audiotrack wordt gedetecteerd en omgezet in vijf bitrate-niveaus — van 32 tot 192 kbps.

Genereren van masterafspeellijst

Genereren van masterafspeellijst

Een enkel m3u8 masterbestand verwijst naar alle videoresoluties en audiotracks met taalmetadata — zodat adaptieve streaming en taalwissel mogelijk zijn in elke moderne speler.

Upload, opschoning & autoscaling

Upload, opschoning & autoscaling

Alle bestanden worden parallel geüpload naar S3 via een pool van 500 threads. Oude HLS-segmenten worden opgeschoond voordat de nieuwe set binnenkomt. De autoscaler schaalt nodes terug naar nul zodra de wachtrij leeg is.

Oplossingen

De belangrijkste kenmerken van de oplossing

  • Adaptieve bitrate-video - 5 niveaus —240p (300 kbps) → 1080p (5000 kbps) in één afspeellijst. Automatische kwaliteitsselectie op basis van verbindingssnelheid.

  • Meerdere audiotracks met taallabels — detecteert en converteert alle audiotracks, inclusief commentaar en beschrijvingen, terwijl taalmetadata behouden blijft.

  • Automatische codecdetectie — Maakt gebruik van NVIDIA / Intel / AMD versnelling, of software fallback als er geen GPU is.

  • Zero Idle Cost Autoscaling — EC2-knooppunten schalen af naar nul wanneer de wachtrij leeg is. Actieve taken zijn beschermd tegen voortijdige beëindiging.

  • Multi-Project S3-isolatie — Elk project heeft zijn eigen S3-uitvoerpad. Ondersteunt zowel mapstructuren gebaseerd op uitgevers als op series.


Image

Resultaten in cijfers

Videokwaliteitsbereik

1080p

Vijf adaptieve bitrate-niveaus van 240p bij 300 kbps tot full HD 1080p bij 5000 kbps — de speler schakelt automatisch de kwaliteit op basis van de verbinding snelheid.

Parallelle uploadthreads

500x

Honderden outputbestanden — segmenten, afspeellijsten, miniaturen, previews — worden gelijktijdig geüpload naar S3 via een threadpool, waardoor de levertijd minimaal blijft.

HLS Gesegmenteerde duur

4sec

4-seconden HLS-segmenten balanceren adaptieve schakelsnelheid met bufferefficiëntie — de speler reageert op netwerkveranderingen binnen de grenzen van een segment.

Audiobitrate-niveaus per spoor

5x

Elk audiokanaal — inclusief commentaar en beschrijving — krijgt tot vijf kwaliteitsniveaus van 32 kbps (HE-AAC) tot 192 kbps (LC-AAC) met volumeregeling.

Bouw een schaalbare mediapijplijn voor uw platform!

Krijg een volledig geautomatiseerd HLS-conversiesysteem dat meegroeit met uw content - en wij helpen u de optimale architectuur voor uw project te vinden.

Message not sent.
Message not sent.
×
Weet u niet waar u moet beginnen? We helpen u de volgende stappen uit te stippelen!
Toestemming voor de verwerking van persoonsgegevens
×
Een uitdaging? Ons team maakt er een oplossing van.
Toestemming voor de verwerking van persoonsgegevens