Media Converter Service
Fallöversikt
Detta är en molnbaserad mediekonverteringstjänst som tar videofiler och ljudfiler och omvandlar dem till HLS-strömningsformat med adaptiv bithastighetsstöd. Systemet lyssnar på en SQS-kö för nya filer, startar ett Kubernetes-jobb för varje fil och producerar en komplett uppsättning av m3u8-spellistor och .ts-segment redo för vilken modern videospelare som helst.
Den stödjer flera upplösningar för video, flera bithastighetsnivå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: Bygga en fullt automatiserad tjänst som konverterar alla video- eller ljudfiler till HLS-format utan manuell inblandning – fungerar över flera projekt, hanterar olika innehållstyper och skalas ner till noll vid inaktivitet.
Viktig projektinformation
Branscher
Media & Underhållning, Video Streaming Plattformar, OTT & Sändningstjänster, Digital Publicering, Content Delivery Networks — alla verksamheter som behöver leverera video- eller ljudinnehåll till slutanvändare över olika enheter och varierande nätverksförhållanden.
Tjänster
SQS-köbehandling med långpolling och hantering av synlighetstimeouter, FFmpeg & FFprobe mediatranskodning och strömanalys, Kubernetes-jobborkestrering med temporära volymer och nodaffinitet, parallell S3-uppladdningsprocess med förhandsrensning.
Lösningar
Multiresolutions-HLS-video — 1080p, 720p, 480p, 360p, 240p med adaptiv bithastighet, Multi-bitrate-ljud HLS — 32, 64, 96, 128, 192 kbps per ljudspår, Automatisk detektion av alla ljudströmmar med språkmetadata, Minibilder vid 2-sekundersmärke, 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 processen körs utan mänsklig inblandning — från det att en fil landar på S3 tills den slutliga HLS-utmatningen är redo för uppspelning. Varje steg överlämnar smidigt till nästa, med inbyggda skydd mot fel, dubbletter och resurskonflikter. Nedan visas hur systemet för 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 objektets nyckel för att identifiera källfilen.
Förebyggande av dubbletter
Innan ett nytt jobb skapas kontrollerar hanteraren om det redan finns ett Kubernetes-jobb för samma fil. Om ett hittas, läggs meddelandet tillbaka i kön med en fördröjning för att förhindra dubbla processningar.
Skapande av Kubernetes-jobb
En ny pod skapas från en mall med korrekta resursbegränsningar, nodaffinitet för ARM-baserade instanser och temporära volymer för tempfiler, ingång, utgång och loggar.
Video- och ljudkonvertering
FFmpeg konverterar video till fem HLS-upplösningar (1080p→240p) med 4-sekunderssegment. Varje ljudspår upptäcks och konverteras till fem bithastighetsnivåer — 32 till 192 kbps.
Master-spellistegenerering
En enda m3u8-masterfil refererar till alla video-upplösningar och ljudspår med språkmetadata — möjliggör adaptiv streaming och språkövergång i vilken modern spelare som helst.
Uppladdning, rensning 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 anpassar nodantalet till noll när kön är tom.
Lösningar
Lösningens nyckelfunktioner
Adaptiv bithastighetsvideo - 5 nivåer —240p (300 kbps) → 1080p (5000 kbps) i en spellista. Automatisk kvalitetsval baserat på anslutningshastighet.
Multi-track-ljud med språktaggar — Upptäcker och konverterar alla ljudspår, inklusive kommentar och beskrivningar, samtidigt som språkmetadata bevaras.
Automatisk codec-detektering — Använder NVIDIA / Intel / AMD-acceleration, eller programvarureserv om ingen GPU finns.
Noll vilokostnad autoskalning — EC2-noder skalar ner till noll när kön är tom. Aktiva jobb skyddas från förtida avslut.
Flerprojekt S3-isolering — Varje projekt har sin egen S3-utgångsväg. St dder b de publicist- och serie-baserade mappstrukturer.
Resultat i siffror
1080p
Fem adaptiva bithastighetsnivåer från 240p vid 300 kbps upp till full HD 1080p vid 5000 kbps — spelaren byter kvalitet automatiskt baserat på anslutningshastighet.
500x
Hundratals utdatafiler — segment, spellistor, miniatyrbilder, förhandsvisningar — laddas upp till S3 samtidigt via en trdpool, vilket hlller leveranstiden minimal.
4sek
4-sekunders HLS-segment balanserar adaptiv växlingshastighet med buffrings effektivitet — spelaren reagerar på nätverksförändringar inom en enda segmentgrä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 ljudstyrkenormalisering.