Meediumimuunduri teenus
Juhtumite ülevaade
See on pilvepõhine meediumi teisendus teenus, mis võtab video- ja helifailid ning teisendab need HLS voogesituse formaadiks adaptiivse bitikiiruse toega. Süsteem kuulab SQS järjekorda uute failide jaoks, käivitab igaühe jaoks Kubernetesi töö, ning genereerib kogu m3u8 esitusloendi ja .ts segmentide komplekti, mis on valmis igas moodsas videopleieris kasutamiseks.
Toetab mitut video resolutsiooni, mitut helikiirust iga helirada jaoks ning suudab töödelda videoid, millel on mitu helirada — kaasa arvatud erinevad keeled või kommentaarid. Teenus töötab samaaegselt mitme projektiga ja korraldab väljundid eraldi kaustadeks S3-s vastavalt projektile või väljaandjale.
Eesmärk: Luua täielikult automatiseeritud teenus, mis teisendab mis tahes video- või helifaili HLS formaati ilma käsitsi sekkumiseta - töötab mitmete projektide kaudu, käsitleb mitmekesiseid sisutüüpe ja skaleerub tühikäigul nulli.
Peamised projekti andmed
Tööstusharud
Meedia ja meelelahutus, videovoogedastusplatvormid, OTT ja ringhäälinguteenused, digitaalne kirjastamine, sisuedastusvõrgud — iga ettevõte, kes peab tarnima video- või heli sisu lõppkasutajatele erinevates seadmetes ja varieeruvate võrguoludega.
Teenused
SQS järjekorra töötlemine pika päringuga ja nähtavusajastusega juhtimine, FFmpeg ja FFprobe meediumite teisendus ja voo analüüs, Kubernetes tööde korraldus ajutiste mahutite ja sõlme eelistusega, paralleelne S3 üleslaadimine koos eelnevate puhastustega.
Lahendused
Multi-resolutsiooniga HLS video — 1080p, 720p, 480p, 360p, 240p adaptiivse bitikiirusega, Multi-bitikiirusega heli HLS — 32, 64, 96, 128, 192 kbps tase iga heliraja kohta, automaatne kõigi helivoogude tuvastus keelemetaandmetega, pisipildid 2-sekundilise märgi juures, madala resolutsiooniga 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
Terve torujuhe töötab ilma inimsekkumiseta — alates hetkest, kui fail maandub S3-sse kuni viimase HLS väljundi esitamiseks valmis saamiseni. Iga samm juhib sujuvalt järgmisele, sisseehitatud turvameetmetega ebaõnnestumiste, duplikaatide ja ressursside vaidlustamise vastu. Allpool on kirjeldatud, kuidas süsteem faili täismuundetus tsükli jooksul käsitleb.
Järjekorra pärimine
Töödehaldur töötab Kubernetes'is ja pärib SQS järjekorda pika pärimisega. Kui sõnum saabub, analüüsib see S3 ämber ja objekti võtit, et tuvastada algfail.
Duplikaatide vältimine
Enne uue töö loomist kontrollib haldur, kas samale failile on juba loodud Kubernetes töö. Kui leidub, pannakse sõnum viitega tagasi järjekorda, et vältida topelttöötlust.
Kubernetes töö loomine
Uus pod luuakse mallist, millel on õiged ressursipiirangud, sõlme eelistus ARM-põhistele instantsidele ja ajutised mahutid ajutiste failide, sisendi, väljundi ning logide jaoks.
Video ja heli teisendus
FFmpeg teisendab video viide HLS resolutsiooni (1080p→240p) 4-sekundiliste segmentidega. Iga helirada tuvastatakse ja teisendatakse viieks bitikiiruse tasemeks — 32 kuni 192 kbps.
Master esitusloendi genereerimine
Üks m3u8 master fail viitab kõigile video resolutsioonidele ja heliradadele keelemetaandmetega — võimaldades adaptiivset voogesitust ja keele vahetamist igas moodsas mängijas.
Üleslaadimine, puhastamine ja automaatskaalumine
Kõik failid laaditakse paralleelselt S3-sse 500 lõimelises torujuhtmes. Vanad HLS segmendid puhastatakse enne uue komplekti saabumist. Automaatskaaler vähendab sõlmed nulli, kui järjekord tühjaks saab.
Lahendused
Lahenduse peamised omadused
Adaptiivne bitikiirus video - 5 taset —240p (300 kbps) → 1080p (5000 kbps) ühes esitusloendis. Automaatne kvaliteedi valik ühenduse kiiruse põhjal.
Mitme raja heli keelemärgistega — Tuletab kõik helirajad, sealhulgas kommentaarid ja kirjeldused, automaatselt välja ja teisendab need, säilitades keele metaandmed.
Automaatne koodeki tuvastamine — Kasutab NVIDIA / Intel / AMD kiirendust või tarkvaralist varuplaani, kui GPU puudub.
Nulltööga autoskaalumine — EC2 sõlmed vähenevad nullini, kui järjekord on tühi. Aktiivsed tööd on kaitstud ennetava lõpetamise eest.
Mitme projekti S3 isolatsioon — Igal projektil on oma S3 väljunditee. Toetab nii väljaandja kui ka sarja põhiseid kaustastruktuure.
Tulemused numbrites
1080p
Viis kohanduvat bitikiiruse taset alates 240p juures 300 kbps kuni täis-HD 1080p juures 5000 kbps — mängija vahetab kvaliteeti automaatselt ühenduse kiiruse põhjal.
500x
Sajad väljundfailid — segmendid, esitusloendid, pisipildid, eelvaated — laaditakse S3-sse samaaegselt niidujärjestuse kaudu, hoides kohaletoimetamise aja minimaalsena.
4sek
4-sekundilised HLS segmendid tasakaalustavad kohanduva vahetuskiiruse ja puhverdamise efektiivsuse — mängija reageerib võrgumuutustele ühe segmendi piires.
5x
Iga helirada — kaasa arvatud kommentaar ja kirjeldus — saab kuni viis kvaliteeditaset vahemikus 32 kbps (HE-AAC) kuni 192 kbps (LC-AAC) koos helitugevuse normaliseerimisega.