Meediumikonverteri teenus
Juhul ülevaade
See on pilvepõhine meediumikonversiooniteenus, mis võtab video- ja audiofaile ning teisendab need HLS voogedastusformaati, toetades adaptiivset bitikiirust. Süsteem kuulab SQS järjekorda uute failide jaoks, käivitab igaühe jaoks Kubernetes töö ja toodab täieliku komplekti m3u8 esitusloendeid ja .ts segmenti, mis on valmis kasutamiseks ükskõik millises kaasaegses videomängijas.
See toetab mitut eraldusvõimet videole, mitut bitikiiruse taset audiosse ning käitleb videoid mitme helirada - sh eri keelte või kommentaaridega. Teenus töötab samaaegselt mitme projektiga ja korraldab väljundid eraldi kaustadesse S3-s vastavalt projektile või väljaandjale.
Eesmärk: Luua täielikult automatiseeritud teenus, mis teisendab iga video- või audiofaili HLS formaati ilma käsitsi sekkumiseta - töötades mitme projektiga, käsitledes erinevaid sisutüüpe ja skaleerudes nullini, kui tegevus puudub.
Peamised projekti andmed
Tööstusharud
Meedia ja meelelahutus, video voogedastusplatvormid, OTT- ja ringhäälinguteenused, digitaalse väljaandmine, sisu edastamise võrgud - iga ärivaldkond, mis peab edastama video- või audio sisu lõppkasutajatele erinevates seadmetes ja erinevates võrgu tingimustes.
Teenused
SQS järjekorra töötlemine pika küsitlemise ja nähtavuse ajalõpu haldamisega, FFmpeg & FFprobe meediumitranskodeerimine ja voo analüüs, Kubernetes töö orkestreerimine mööduvate mahtude ja sõlmete sobivusega, paralleelne S3 üleslaadimise torujuhtme puhastamisega enne üleslaadimist.
Lahendused
Mitme eraldusvõimega HLS video — 1080p, 720p, 480p, 360p, 240p adaptiivse bitikiirusega, Mitme bitikiirusega audio HLS — 32, 64, 96, 128, 192 kbps tasemed heliraja kohta, Kõigi helivoogude automaatne tuvastamine keele metaandmetega, 2-sekundilise märgi pisipildid, madala eraldusvõimega 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 torujuhtmiku töö toimub ilma inimsekkumiseta — alates hetkest, mil fail jõuab S3-sse kuni lõpliku HLS väljundi valmimiseni esitamiseks. Iga samm antakse sujuvalt järgmisele üle, millel on sisseehitatud kaitsemehhanismid ebaõnnestumiste, duplikaatide ja ressursikonkurentsi vastu. Allpool on kirjeldatud, kuidas süsteem liigub faili täieliku konversioonitsükli jooksul.
Järjekorra küsitlemine
Tööhaldur töötab Kuberneteses ja küsib pika ootamisajaga SQS järjekorda. Kui sõnum saabub, analüüsib ta S3 ämbrisse ja objekti võtmesse, et tuvastada allikafail.
Duplikaatide vältimine
Enne uue töö loomist kontrollib haldur olemasolevat Kubernetes tööd sama faili jaoks. Kui leitakse, lükatakse sõnum viivitusega uuesti järjekorda topelttöötluse vältimiseks.
Kubernetes töö loomine
Uus pod luuakse mallist õiget ressursside piiramist, ARM-põhiste eksemplaride sõlme sobivust ja mööduvaid mahte toetades, ajutiste failide, sisendi, väljundi ja logide jaoks.
Video ja audio konversioon
FFmpeg teisendab video viieks HLS eraldusvõimeks (1080p→240p) 4-sekundiliste segmentidega. Iga helirida tuvastatakse ja teisendatakse viieks bitikiiruse tasemeks — 32 kuni 192 kbps.
Põhiesitusloendi genereerimine
Üksik m3u8 põhifail viitab kõigile video eraldusvõimetele ja heliradadele koos keele metaandmetega — võimaldades adaptiivset voogedastust ja keele vahetamist igas kaasaegses mängijas.
Üleslaadimine, puhastamine ja automaatskaleerimine
Kõik failid laaditakse S3-sse paralleelselt 500-niidilise hulga kaudu. Vanad HLS segmendid puhastatakse enne uue komplekti saabumist. Automaatskaleerija vähendab sõlmed nullini, kui järjekord tühjeneb.
Lahendused
Lahenduse peamised omadused
Adaptiivne bitikiirusvideo - 5 taset —240p (300 kbps) → 1080p (5000 kbps) ühes esitusloendis. Automaatne kvaliteedi valik ühenduse kiiruse põhjal.
Mitmerajaline heli keelesiltidega — Tuvastab ja teisendab kõik helirajad, sealhulgas kommentaarid ja kirjeldused, säilitades keeleteabe.
Automaatne koodekite tuvastamine — Kasutab NVIDIA / Intel / AMD kiirendust või tarkvaralist varuplaani, kui GPU puudub.
Null seisakukulukusega automaatne skaleerimine — EC2 sõlmed vähendavad koormust nullini, kui järjekord on tühi. Aktiivsed tööd on kaitstud ennetava lõpetamise eest.
Mitme projekti S3 isoleerimine — Igal projektil on oma S3 väljundtee. Toetab nii kirjastaja- kui ka sarjapõhiseid kaustastruktuure.
Tulemused numbrites
1080p
Viis adaptiivse bitikiiruse taset alates 240p 300 kbps juures kuni täis-HD 1080p 5000 kbps juures — mängija vahetab kvaliteeti automaatselt ühenduse kiiruse põhjal.
500x
Sajad väljundfailid — segmendid, esitusloendid, pisipildid, eelvaated — laaditakse S3-le samaaegselt lõimede hulgiga, hoides tarnimisaja võimalikult lühikese.
4sek
4-sekundilised HLS segmendid tasakaalustavad adaptiivset vahetamise kiirust ja buferdamise efektiivsust — mängija reageerib võrgu muutustele ühe segmentpiiri jooksul.
5x
Iga heli rada — sh kommentaar ja kirjeldus — saab kuni viis kvaliteeditaset vahemikus 32 kbps (HE-AAC) kuni 192 kbps (LC-AAC) koos heli valjuse normaliseerimisega.