Meediumitöötluse teenus
Juhtumi ülevaade
See on pilvepõhine meediumite teisendamise teenus, mis võtab video- ja helifailid ning teisendab need HLS-voogedastusformaati kohanduva bitikiirusega toega. Süsteem kuulab SQS järjekorda uute failide jaoks, käivitab igaühe jaoks Kubernetes töö ning toodab täieliku komplekti m3u8 esitusloendeid ja .ts segmente, mis on valmis igaks kaasaegseks videopleieriks.
Toetatakse mitut videokvaliteedi resolutsiooni, mitu helikiiruse kategooriat ja hallatakse videoid mitme helirajaga — sh erinevad keeled või kommentaarid. Teenus töötab samaaegselt mitme projektiga ja korraldab väljundid S3-s eraldi kaustadesse projekti või väljaandja põhjal.
Eesmärk: Luuakse täiesti automatiseeritud teenus, mis teisendab iga video- või helifaili HLS formaati ilma manuaalse sekkumiseta - töötab mitmete projektide vahel, haldab erinevat tüüpi sisu ja skaleerub nulli seisakuks.
Põhiprojekti info
Tööstusharud
Meedia ja meelelahutus, video voogedastamise platvormid, OTT ja ringhäälinguteenused, digitaalne väljaandmine, sisuloojate võrgustikud — kõik ettevõtted, kes vajavad videot või heli sisu edastada erinevatele seadmetele ja variatiivsetes võrgutingimustes.
Teenused
SQS järjekorra töötlemine pika päringu ja nähtavusaja haldusega, FFmpeg ja FFprobe meediumi teisendamine ja voogude analüüs, Kubernetes töö orkestreerimine ajutiste salvestusruumide ja sõlme eelistustega, paralleelse S3 üleslaadimise torujuhe koos eelneva puhastusega.
Lahendused
Mitme resolutsiooniga HLS video — 1080p, 720p, 480p, 360p, 240p kohanduva bitikiirusega, mitme bitikiirusega heli HLS — 32, 64, 96, 128, 192 kbps kategooriad heliraja kohta, automaatne kõigi helivoolude tuvastamine keelemetaandmetega, pisipildid 2-sekundilise märgi juures, madala lahutusvõ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 automaatskaala, Docker, Helm
Väljakutsed
Protsess
Kogu protsess töötab ilma inimese sekkumiseta — alates failide maandumisest S3-s kuni lõpliku HLS väljundi esitamiseks valmis saamiseni. Iga samm annab korrektselt järgmisele üle, sisseehitatud kaitsemehhanismidega vigade, duplikaatide ja ressursside jagamise vastu. Allpool on toodud, kuidas süsteem faili täieliku teisendusprotsessi jooksul liigutab.
Järjekorra pärimine
Tööjuhtimissüsteem töötab Kuberneteses ja pärib SQS järjekorda pika päringuga. Kui sõnum saabub, analüüsib see S3 ämbrit ja objekti võtit allikafaili tuvastamiseks.
Duplikaatide vältimine
Enne uue töö loomist kontrollib juhataja, kas sellel failil on juba olemas Kubernetes töö. Kui leitakse, pannakse sõnum hilinemisega uuesti järjekorda, et vältida kahekordset töötlemist.
Kubernetes töö loomine
Uus pod luuakse mallist õigete ressursside piirangute, ARM-põhiste instantside sõlme eelistustega ja ajutiste salvestusruumidega ajutiste failide, sisendi, väljundi ja logide jaoks.
Video- ja heli teisendus
FFmpeg teisendab video viieks HLS resolutsiooniks (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õikidele video resolutsioonidele ja heliradadele keelemetaandmetega — võimaldades kohanduvat voogedastust ja keele vahetust igas kaasaegses pleieris.
Üleslaadimine, puhastus ja automaatskaala
Kõik failid laaditakse S3-sse paralleelselt 500-niitmisega. Vanad HLS segmendid puhastatakse enne uue komplekti saabumist. Automaatskaala vähendab sõlmede arvu nullini, kui järjekord tühjaks saab.
Lahendused
Lahenduse peamised omadused
Kohanduv bitikiirusega video - 5 taset — 240p (300 kbps) → 1080p (5000 kbps) ühes esitusloendis. Automaatteline kvaliteedi valik ühenduse kiiruse põhjal.
Mitme raja heli keelemärkidega — Tuvastab ja teisendab kõik helirajad, sealhulgas kommentaarid ja kirjeldused, säilitades keelemetaandmed.
Automaatne koodeki tuvastus — Kasutab NVIDIA / Intel / AMD kiirendust või tarkvara varundust, kui GPU-d pole.
Nullkuluv tööautomaadne skaleerimine — EC2 sõlmed vähendavad skaleerimise nullini, kui järjekord on tühi. Aktiivsed tööd on kaitstud enneaegse lõpetamise eest.
Mitme projekti S3 isolatsioon — Igal projektil on oma S3 väljundi tee. Toetab nii avaldaja- kui ka sarja-põhiseid kaustastruktuure.
Tulemused numbrites
1080p
Viis adaptiivset bitikiiruse taset alates 240p 300 kbps juurest 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 S3-sse samaaegselt niidivormi abil, hoides kohaletoimetamise aja minimaalsena.
4sec
4-sekundilised HLS segmendid tasakaalustavad adaptiivse vahetamise kiirust ja puhverdamise tõhusust — mängija reageerib võrgu muutustele ühe segmendi piires.
5x
Iga helirada — kaasa arvatud kommentaar ja kirjeldus — saab kuni viis kvaliteeditaset 32 kbps-st (HE-AAC) kuni 192 kbps-ni (LC-AAC) koos helitugevuse normaliseerimisega.