Media Converter Service
Fallöversikt
Detta är en molnbaserad mediekonverteringstjänst som tar videofiler och ljudfiler och omvandlar dem till HLS-strömningsformat med stöd för adaptiv bitrate. Systemet lyssnar på en SQS-kö för nya filer, startar ett Kubernetes-jobb för varje fil och genererar en komplett uppsättning m3u8-spellistor och .ts-segment som är redo för alla moderna videospelare.
Den stödjer flera upplösningar för video, flera bitrate-nivåer för ljud och hanterar videor med flera ljudspår — inklusive olika språk eller kommentarer. Tjänsten fungerar för flera projekt samtidigt och organiserar utdata i separata mappar på S3 baserat på projekt eller utgivare.
Mål: Bygg en helt automatiserad tjänst som konverterar vilken video- eller ljudfil som helst till HLS-format utan manuell inblandning - som fungerar över flera projekt, hanterar olika innehållstyper och skalar ner till noll när den är inaktiv.
Viktig projektinformation
Branscher
Media och underhållning, videoströmningsplattformar, OTT och sändningstjänster, digital publicering, innehållsleveransnätverk — alla företag som behöver leverera video- eller ljudinnehåll till slutanvändare över olika enheter och varierande nätverkssituationer.
Tjänster
Bearbetning av SQS-kö med lång polling och hantering av synlighetstid, FFmpeg och FFprobe medieomkodning och strömanalys, Kubernetes-jobborkestrering med tillfälliga volymer och nodaffinitet, parallell uppladdningspipeline till S3 med förhandsstädning.
Lösningar
Multi-upplösnings HLS-video — 1080p, 720p, 480p, 360p, 240p med adaptiv bitrate, Multi-bitrate audio HLS — 32, 64, 96, 128, 192 kbps nivåer per ljudspår, Automatisk detektion av alla ljudströmmar med språkmatadata, miniatyrbilder vid 2 sekunder, lågupplöst MP4-förhandsvisning, MP3- och WAV-kopior.
Teknologier
AWS SQS, S3, Kubernetes, FFmpeg, FFprobe, H.264, AAC/HE-AAC, HLS/m3u8, NVIDIA NVENC, Intel Quick Sync, EC2 Auto Scaling, Docker, Helm
Utmaningarna
Processen
Hela pipelinen körs utan mänsklig inblandning — från det att en fil landar på S3 tills den slutliga HLS-utgången är redo för uppspelning. Varje steg överlämnar rent till nästa med inbyggda skydd för fel, dubbletter och resurskonkurrens. Nedan visas hur systemet flyttar en fil genom hela konverteringscykeln.
Köpollning
Jobbhanteraren körs på Kubernetes och pollar SQS-kön med lång polling. När ett meddelande anländer analyserar den S3-bucket och objektnyckel för att identifiera källfilen.
Dubblettförebyggande
Innan ett nytt jobb skapas kontrollerar manager om ett existerande Kubernetes-jobb finns för samma fil. Om det hittas läggs meddelandet i kö igen med fördröjning för att förhindra dubbel bearbetning.
Skapande av Kubernetes-jobb
En ny pod skapas från en mall med korrekta resursgränser, nodaffinitet för ARM-baserade instanser och tillfälliga volymer för tempfiler, input, output och loggar.
Video- och ljudkonvertering
FFmpeg konverterar video till fem HLS-upplösningar (1080p→240p) med 4-sekunders segment. Varje ljudspår detekteras och konverteras till fem bitrate-nivåer — 32 till 192 kbps.
Generering av huvudspellista
En enda m3u8-masterfil refererar till alla videoupplösningar och ljudspår med språkmatadata — vilket möjliggör adaptiv streaming och språkbyte i vilken modern spelare som helst.
Uppladdning, städning och autoskalning
Alla filer laddas upp till S3 parallellt via en 500-trådig pool. Gamla HLS-segment rensas innan den nya uppsättningen landar. Autoskalaren skalar noder till noll när kön är tom.
Lösningar
Lösningens nyckelfunktioner
Adaptiv bitrate-video - 5 nivåer —240p (300 kbps) → 1080p (5000 kbps) i en spellista. Automatisk kvalitetsval baserat på anslutningshastighet.
Flerspårs-ljud med språketiketter — Upptäcker och konverterar alla ljudspår, inklusive kommentarer och beskrivningar, samtidigt som språkmatadatan bevaras.
Automatisk codec-detektion — Använder NVIDIA / Intel / AMD-acceleration, eller programvarureserv om ingen GPU finns.
Autoskalning utan vilokostnad — EC2-noder skalar ner till noll när kön är tom. Aktiva jobb skyddas från för tidig avslutning.
Flerprojekt S3-isolering — Varje projekt har sin egen S3-utgångsväg. St djar b de mappstrukturer baserade p e5 utgivare och serie.
Resultat i siffror
1080p
Fem adaptiva bithastighetsnivåer från 240p vid 300 kbps till full HD 1080p vid 5000 kbps — spelaren byter automatiskt kvalitet baserat på anslutningshastighet.
500x
Hundratals utdatafiler — segment, spellistor, miniatyrer, förhandsvisningar — laddas upp till S3 samtidigt via en trådpool, vilket håller leveranstiden minimal.
4sek
4-sekunders HLS-segment balanserar adaptiv växlingshastighet med buffringseffektivitet — spelaren reagerar på nätverksförändringar inom en segmentsgräns.
5x
Varje ljudspår — inklusive kommentar och beskrivning — får upp till fem kvalitetsnivåer från 32 kbps (HE-AAC) till 192 kbps (LC-AAC) med ljudnivånormalisering.