Meediumi konverteerimise teenus
Juhtumi ülevaade
See on pilvepõhine meediumiteenuse konverteerimine, mis võtab vastu video- ja audiofaile ning muudab need HLS voogude formaati, mis toetab adaptiivset bitikiirust. Süsteem kuulab SQS järjekorda uute failide jaoks, käivitab igaühe jaoks Kubernetes töö ja toodab täiskomplekti m3u8 esitusloendeid ning .ts segmente, mis on valmis mis tahes kaasaegseks videopleieriks.
See toetab video jaoks mitut eraldusvõimet, audio jaoks mitut bitikiiruse taset ning käsitleb videoid mitme helirajaga – sealhulgas erinevad keeled või kommentaarid. Teenus töötab samaaegselt mitme projektiga ning korraldab väljundid S3 eraldi kaustadesse projekti või väljaandja alusel.
Eesmärk: Ehitada täielikult automatiseeritud teenus, mis teisendab iga video- või audiofaili HLS formaati ilma käsitsi sekkumiseta – toimides mitme projekti ulatuses, käsitledes erinevaid sisutüüpe ja skaleerudes tühikäigu ajal nullini.
Peamised projektiandmed
Tööstusharud
Meelelahutus ja meedia, video voogedastuse platvormid, OTT ja levitusteenused, digitaalne kirjastamine, sisulooja võrgustikud — igasugune äri, mis peab edastama video- või audio sisu lõppkasutajatele erinevatel seadmetel ja muutuvates võrgutingimustes.
Teenused
SQS järjekorra töötlemine pikkade päringute ja nähtavuse ajahaldamisega, FFmpeg ja FFprobe meedia transcoding ja voo analüüs, Kubernetes töökorraldus ajutiste mahutite ja sõlme eelistusega, paralleelne S3 üleslaadimine koos eel-üleslaadimise puhastusega.
Lahendused
Mitme eraldusvõimega HLS video — 1080p, 720p, 480p, 360p, 240p adaptiivse bitikiirusega, mitme bitikiirusega audio HLS — 32, 64, 96, 128, 192 kbps taset heliraja kohta, automaatne kõigi heli voogude tuvastamine keelega seotud metainfoga, pisipildid 2 sekundi märgil, 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 automaat-skaala, Docker, Helm
Väljakutsed
Protsess
Terve töövoog toimub ilma inimese sekkumiseta — alates failide maandumisest S3-sse kuni lõpliku HLS väljundi esitamiseks valmisolekuni. Iga samm annab puhtalt järgmisele üle, sisaldades sisseehitatud kaitseid vigade, duplikaatide ja ressursside konkurentsi vastu. Allpool on näha, kuidas süsteem viib faili täieliku konverteerimise tsükli läbi.
Järjekorra päring
Tööde haldur töötab Kubernetes'is ja pärib SQS järjekorda pika päringuga. Kui sõnum saabub, analüüsib see S3 ämbrit ja objekti võtit, et kindlaks teha lähtefail.
Duplikaatide vältimine
Enne uue töö loomist kontrollib haldur, kas Kubernetes'il on juba olemas töö sama faili jaoks. Kui leitakse, pannakse sõnum viivitusega uuesti järjekorda, et vältida topelttöötlust.
Kubernetes töö loomine
Uus pod luuakse mallist koos õigete ressursipiirangute, ARM-põhiste instantside sõlme eelistuse ja ajutiste mahtudega temp-failide, sisendi, väljundi ja logide jaoks.
Video ja audio konverteerimine
FFmpeg konverteerib video viieks HLS eraldusvõimeks (1080p kuni 240p) 4-sekundiliste segmentidega. Iga helirada tuvastatakse ja konverteeritakse viieks bitikiiruse tasemeks – 32 kuni 192 kbps.
Meister-esitusloendi loomine
Üks m3u8 meisterfail viitab kõigile video eraldusvõimetele ja heliradadele keelega seotud metainfoga – võimaldades adaptiivset voogedastust ja keelevahetust mis tahes kaasaegses pleieris.
Üleslaadimine, puhastus ja automaatskaalumine
Kõik failid laaditakse S3-sse paralleelselt 500-niidriga. Vana HLS segmentide komplekt puhastatakse enne uue paigaldamist. Automaatikaskaaler vähendab sõlmedeni null, kui järjekord tühjeneb.
Lahendused
Lahenduse peamised omadused
Adaptiivne bitikiirusega video - 5 taset — 240p (300 kbps) kuni 1080p (5000 kbps) ühes esitusloendis. Automaattasemel kvaliteedi valik põhineb ühenduse kiirusel.
Mitme raadiusega heli koos keeltemärgistega — Tuvastab ja teisendab kõik helirajad, sealhulgas kommentaarid ja kirjeldused, säilitades samal ajal keele metaandmed.
Automaatne koodekite tuvastamine — Kasutab NVIDIA / Intel / AMD kiirendust või tarkvaralist varuplaani, kui GPU-d pole.
Null seisakukulus automaatne skaleerimine — EC2 sõlmed vähenevad nullini, kui järjekord on tühi. Aktiivseid töid kaitstakse enneaegse lõpetamise eest.
Mitmeprojektiline S3 isoleerimine — Igal projektil on oma S3 väljundtee. Toetab nii kirjastaja kui ka sarja põhiseid kaustastruktuure.
Tulemused numbrites
1080p
Viis adaptiivset bitikiiruse taset vahemikus 240p ja 300 kbps kuni täis-HD 1080p ja 5000 kbps — mängija lülitab kvaliteedi automaatselt vastavalt ühenduse kiirusele.
500x
Sajad väljundfailid — segmendid, esitusloendid, pisipildid, eelvaated — laaditakse S3-le samaaegselt lõimede grupi kaudu, hoides kohaletoimetamise aega minimaalsena.
4sek
4-sekundilised HLS segmendid tasakaalustavad adaptiivse lülituskiiruse ja puhverdamistõhususe — mängija reageerib võrgumuutustele ühe segmendi piires.
5x
Iga helirada — sealhulgas kommentaar ja kirjeldus — saab kuni viis kvaliteeditaset vahemikus 32 kbps (HE-AAC) kuni 192 kbps (LC-AAC) helitugevuse normaliseerimisega.