Meediumi konverteri teenus
Juhtumi ülevaade
See on pilvepõhine meediumi konverteerimise teenus, mis võtab video- ja helifailid ning teisendab need HLS-voogedastusvormingusse, toetades adaptiivset bitikiirust. Süsteem kuulab SQS järjekorda uute failide jaoks, käivitab iga faili jaoks Kubernetes töö ja toodab täiskomplekti m3u8 esitusloendeid ja .ts segmente, mis on valmis kasutamiseks igas moodsas videopleieris.
Toetab mitut videoresolutsiooni, mitut helikiirust ja haldab videoid mitme helirajaga — sh erinevates keeltes või kommentaaridega. Teenus töötab samaaegselt mitme projektiga ning organiseerib väljundid S3 kaustadesse projekti või väljaandja alusel.
Eesmärk: Luua täielikult automatiseeritud teenus, mis teisendab mis tahes video- või helifaili HLS-vormingusse ilma käsitsi sekkumiseta — töötades mitme projektiga, hallates erinevaid sisutüüpe ja skaleerudes nulli seisaku korral.
Põhiline projekti info
Tööstusharud
Meedia & meelelahutus, video voogedastusplatvormid, OTT & levitusteenused, digitaalne kirjastamine, sisutarnete võrgud — igale ettevõttele, kes peab tarnima video- või helisisu lõppkasutajatele erinevates seadmetes ja erinevates võrguoludes.
Teenused
SQS järjekorra töötlemine pika ootamise ja nähtavuse ajapiirangute haldamisega, FFmpeg & FFprobe meediumite transcoding ja voo analüüs, Kubernetes töö orkestreerimine ajutiste ketaste ja sõlme-afiniteedireeglitega, paralleelne S3 üleslaadimise torujuhe eelpuhastusega.
Lahendused
Mitme resolutsiooniga HLS video — 1080p, 720p, 480p, 360p, 240p adaptiivse bitikiirusega, mitme bitikiirusega heli HLS — 32, 64, 96, 128, 192 kbps poodiumid iga heliraja kohta, automaatne kõigi helivoo keelemetaandmete tuvastus, 2-sekundilise hetkepildi pisipildid, madala kvaliteediga MP4 eelvaade, MP3 ja WAV koopiad.
Tehnoloogiad
AWS SQS, S3, Kubernetes, FFmpeg, FFprobe, H.264, AAC/HE-AAC, HLS/m3u8, NVIDIA NVENC, Intel Quick Sync, EC2 Auto Scaling, Docker, Helm
Väljakutsed
Protsess
Kogu torujuht töötab ilma inimsekkumiseta — alates failist, mis maandub S3-sse, kuni lõpplahenduse HLS-väljundini, mis on valmis esitamiseks. Iga samm annab edasi puhtalt järgmisele, sisseehitatud turvamehhanismidega tõrgete, duplikaatide ja ressursside jagamise vastu. Allpool on, kuidas süsteem viib faili läbi täis konverteerimistsükli.
Järjekorra pärimine
Tööhaldur töötab Kuberneteses ja pärib SQS järjekorda pika ootamisega. Kui sõnum saabub, analüüsib ta S3 ämbrit ja objekti võtit allika faili tuvastamiseks.
Korduste vältimine
Enne uue töö loomist kontrollib haldur, kas Kuberneteses sama failiga töö juba eksisteerib. Kui jah, siis sõnum pannakse tagasi järjekorda viivitusega, et vältida topelttöötlemist.
Kubernetes töö loomine
Uus pod luuakse mallist õige ressursipiirangu, ARM-põhiste instantside sõlme-afiniteedi ja ajutiste kettastega ajutiste failide, sisendi, väljundi ja logide jaoks.
Video ja heli konvertimine
FFmpeg teisendab video viieks HLS resolutsiooniks (1080p→240p) 4-sekundiliste segmentidega. Iga helirada tuvastatakse ja teisendatakse viieks bitikiiruse tasemeks — 32 kuni 192 kbps.
Peamise esitusloendi genereerimine
Üks m3u8 peafail viitab kõikidele video resolutsioonidele ja heliradadele keelemetaandmetega — võimaldades adaptiivset voogedastust ja keelevahetust ükskõik millises moodsas pleieris.
Üleslaadimine, puhastus ja automaatskaalumine
Kõik failid laaditakse paralleelselt S3-sse 500-niidilise puuliga. Vanad HLS segmendid puhastatakse enne uue komplekti saabumist. Automaatskaaler skaleerib sõlmed nulli, kui järjekord tühjeneb.
Lahendused
Lahenduse peamised omadused
Adaptiivne bitikiirusega video - 5 taset —240p (300 kbps) → 1080p (5000 kbps) ühes esitusloendis. Automaatne kvaliteedi valik ühenduse kiiruse põhjal.
Mitme raja heli koos keelumärkidega — tuvastab ja teisendab kõik helirajad, sealhulgas kommentaarid ja kirjeldused, säilitades keelemetaandmed.
Automaatne kodeci tuvastus — Kasutab NVIDIA / Intel / AMD kiirendust või tarkvaralist tagasipõrget, kui GPU puudub.
Null seisaku kulu automaatskaleerimine — EC2 sõlmed skaleeruvad nulli, kui järjekord on tühi. Aktiivseid töid kaitstakse enneaegse lõpetamise eest.
Mitme projekti S3 isoleerimine — Igal projektil on oma S3 väljundtee. Toetab nii kirjastaja- kui ka sarjapõhiseid kaustastruktuure.
Tulemused arvudes
1080p
Viis adaptiivse bitikiirusega astet alates 240p 300 kbps juurest kuni täis-HD 1080p 5000 kbps-ni — esitaja vahetab kvaliteeti automaatselt ühenduse kiiruse põhjal.
500x
Sajad väljundfailid — segmentideks, esitusloenditeks, pisipiltideks, eelvaadeteks — laetakse S3-sse üles samaaegselt niidipuhvri abil, hoides tarneaega minimaalsena.
4sek
4-sekundilised HLS-segmendid tasakaalustavad adaptiivse vahetuse kiirust ja puhverdamise tõhusust — esitaja reageerib võrgumuutustele ühe segmendi piires.
5x
Iga heliraja — kaasa arvatud kommentaar ja kirjeldus — saab kuni viis kvaliteeditaset alates 32 kbps (HE-AAC) kuni 192 kbps (LC-AAC) koos valjuse normaliseerimisega.