Meediumi konverteriteenus
Juhtumi ülevaade
See on pilvepõhine meediumikonverteerimise teenus, mis võtab video- ja helifailid ning muudab need HLS voogedastusvorminguks adaptiivse bitikiirusega. Süsteem kuulab SQS järjekorda uute failide jaoks, käivitab igaühe jaoks Kubernetes'i töö ja toodab täiskomplekti m3u8 esitusloendeid ja .ts segmente, mis on valmis igaks moodsaks videopleieriks.
Toetatakse mitut videolahutust, mitut helikvaliteedi taset iga heli-rajaga ning käsitletakse videoid mitme helirajaga — sealhulgas erinevad keeled või kommentaarid. Teenus töötab samaaegselt mitme projektiga ja organiseerib väljundid S3-s projektipõhistesse või väljaandjapõhistesse eraldi kaustadesse.
Eesmärk: Luua täielikult automaatne teenus, mis teisendab iga video- või helifaili HLS-vormingusse ilma käsitsi sekkumiseta — töötab mitme projekti vahel, haldab mitmekesiseid sisutüüpe ja skaleerub tühikäigul nulli.
Projekti põhiteave
Tööstusharud
Meedia ja meelelahutus, videovoogedastuse platvormid, OTT ja ringhäälinguteenused, digitaalne väljaandmine, sisujagamise võrgustikud — kõik ettevõtted, mis vajavad video- või helisisu edastamist lõppkasutajatele erinevates seadmetes ja erineva võrguolukorraga.
Teenused
SQS järjekorra töötlemine pika päringu ja nähtavuse ajavööndihaldusega, FFmpeg ja FFprobe meediumide transkodeerimine ja voo analüüs, Kubernetes'i töö orkestreerimine ajutiste mahtu ja sõlme sobivusega, paralleelne S3 üleslaadimisvoog eellaadimise puhastusega.
Lahendused
Mitmeresolutsiooniline HLS-video — 1080p, 720p, 480p, 360p, 240p adaptiivse bitikiirusega, mitme bitikiirusega heli HLS — 32, 64, 96, 128, 192 kbps taset iga heliraja kohta, automaatne kõigi helivoolude tuvastamine keele metaandmetega, 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 automaatskaala, Docker, Helm
Väljakutsed
Protsess
Kogu protsess töötab ilma inimese sekkumiseta — hetkest, kui fail jõuab S3-sse, kuni lõpliku HLS väljundi valmimiseni esitamiseks. Iga samm annab puhtalt järgmisele üle koos tehniku-ohutustega vigade, duplikaatide ja ressursside piiramise eest. Allpool on süsteemi failide täismuundetöötlus.
Järjekorra ülevaatus
Tööde haldur töötab Kubernetes'is ja pärib SQS järjekorda pika päringuga. Kui sõnum jõuab, parsib see S3 ämbrit ja objekti võtit allika faili tuvastamiseks.
Duplikaadi vältimine
Enne uue töö loomist kontrollib haldur, kas sama failiga on juba olemas Kubernetes'i töö. Kui leidub, pannakse sõnum uuesti järjekorda ajaviitega kahetöötluse vältimiseks.
Kubernetes'i töö loomine
Uus pod luuakse mallist õigete ressursipiirangute, ARM-põhiste sõlmede sobivuse reeglite ja ajutiste mahtude — ajutiste failide, sisendi, väljundi ja logide jaoks.
Video- ja helikonverteerimine
FFmpeg teisendab video viide HLS eraldusvõimetesse (1080p→240p) 4-sekundilisteks segmentideks. Iga helirada tuvastatakse ja konverteeritakse viieks bitikiiruse tasemeks — 32 kuni 192 kbps.
Master esitusloendi loomine
Üks m3u8 master fail viitab kõigile videokvaliteetidele ja heliradadele keelemetaandmetega — võimaldades adaptiivset voogedastust ja keele vahetamist igas moodsas pleieris.
Üleslaadimine, puhastamine ja automaatne skaleerimine
Kõik failid laaditakse paralleelselt S3-sse 500-keermelisest reasignaalist. Vanad HLS segmendid puhastatakse enne uue komplekti saabumist. Automaatne skaala vähendab sõlmede arvu nullini, kui järjekord tühjaks saab.
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 rajaga heli keelemärkidega — Tuletab automaatselt välja ja teisendab kõik heli- ja kõnetee rajad, sealhulgas kommentaarid ja kirjeldused, säilitades keelestatistika metaandmed.
Automaatne koodeki tuvastus — Kasutab NVIDIA / Intel / AMD kiirendust või tarkvaralist varukoopiat, kui GPU puudub.
Tühikäigu tasuta automaatne skaleerimine — EC2 sõlmed skaleeruvad nullini, kui järjekord on tühi. Aktiivsed tööd on kaitstud enneaegse lõpetamise eest.
Mitme projekti S3 isoleerimine — Igal projektil on oma S3 väljundtee. Toetab nii väljaandja kui ka sarjade kaustastruktuure.
Tulemused numbrites
1080p
Viis adaptiivse bitikiirusega kihti alates 240p 300 kbps juures kuni täis-HD 1080p 5000 kbps-ni — mängija vahetab kvaliteeti automaatselt ühenduse kiiruse põhjal.
500x
Sajad väljundfailid — segmendid, esitusloendid, pisipildid, eelvaated — laaditakse korraga S3-sse keerme aiasaidi kaudu, hoides kohaletoimetamise aja minimaalsena.
4sek
4-sekundilised HLS segmendid tasakaalustavad adaptiivse vahetamine kiiruse ja vahemälu efektiivsuse — mängija reageerib võrgu muutustele ühe segmendi piires.
5x
Iga helirada — kaasa arvatud kommentaar ja kirjeldus — saab kuni viis kvaliteeditaset 32 kbps (HE-AAC) kuni 192 kbps (LC-AAC) koos valjuse normaliseerimisega.