Meedia konverteerimise teenus
Juhtumi ülevaade
See on pilvepõhine meedia konverteerimise teenus, mis võtab video- ja helifailid ning teisendab need HLS voogedastuse vormingusse kohanduva bitikiiruse 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 mis tahes kaasaegseks videopleieriks.
See toetab mitut videotugevust, mitut bitikiiruse taset helile ja haldab videoid mitme helirada abil — kaasa arvatud erinevad keeled või kommentaarid. Teenus töötab samaaegselt mitme projektiga ja korraldab väljundid S3-sse eraldi kaustadesse projekti või väljaandja alusel.
Eesmärk: Luua täiesti automatiseeritud teenus, mis teisendab mistahes video- või helifaili HLS vormingusse ilma käsitsi sekkumiseta – töötab mitme projekti ulatuses, haldab erinevaid sisutüüpe ja skaleerub nulli seisakujärgselt.
Olulised projekti andmed
Tööstusharud
Meedia ja meelelahutus, videovoogude platvormid, OTT ja ringhäälinguteenused, digitaalne väljaandmine, sisuedastusvõrgud — iga ettevõte, kes vajab video- või helisisu edastamist lõppkasutajatele erinevates seadmetes ja varieeruvates võrgutingimustes.
Teenused
SQS järjekorra töötlemine pika pollimise ja nähtavuse ajalõpu haldusega, FFmpeg & FFprobe meediumi transkodeerimine ja voogude analüüs, Kubernetes töö orkestreerimine vahetute salvestusruumidega ja sõlme sobivusega, paralleelne S3 üleslaadimise torujuhe enne üleslaadimist puhastusega.
Lahendused
Mitme resolutsiooniga HLS video — 1080p, 720p, 480p, 360p, 240p kohanduva bitikiirusega, Mitme bitikiirusega audio HLS — 32, 64, 96, 128, 192 kbps tasemed iga heliraja kohta, Kõigi heli voogude automaatne tuvastus koos keele metaandmetega, Kuvatõmmised 2-sekundise 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 automaatne skaleerimine, Docker, Helm
Väljakutsed
Protsess
Terve töövoog käib ilma inimese sekkumiseta — alates hetkest, mil fail maandub S3-le, kuni lõpliku HLS väljundini, mis on valmis esitamiseks. Iga samm antakse puhtalt üle järgmisele, koos sisseehitatud kaitsetega vigade, duplikaatide ja ressursside vastasseisu vastu. Allpool on kirjeldatud, kuidas süsteem faile kogu konverteerimistsükli jooksul töötleb.
Järjekorra pärimine
Tööde haldur töötab Kuberneteses ja kontrollib SQS järjekorda pika pärimisega. Kui sõnum saabub, analüüsib see S3 konteinerit ja objekti võtit allika faili tuvastamiseks.
Duplikaatide vältimine
Enne uue töö loomist kontrollib haldur, kas samale failile on juba olemas Kubernetesi töö. Kui on, pannakse sõnum viivitusega uuesti järjekorda, et vältida topelt töötlemist.
Kubernetesi töö loomine
Uus pod luuakse mallist koos õiget tüüpi ressursside piirangute, ARM-põhiste instantside sõlme sobivuse ja ajutiste salvestusruumidega ajutiste failide, sisendi, väljundi ja logide jaoks.
Video- ja heli teisendus
FFmpeg teisendab video viieks HLS resolutsiooniks (1080p→240p) 4 sekundi pikkuste segmentidega. Iga helirada tuvastatakse ja teisendatakse viieks bitikiiruse tasemeks — 32 kuni 192 kbps.
Põhiesitusloendi genereerimine
Üksainus m3u8 põhifail viitab kõigile video resolutsioonidele ja heliradadele koos keelemetaandmetega — võimaldades kohanduvat voogedastust ja keelevahetust igas kaasaegses pleieris.
Üleslaadimine, koristus ja automaatne skaleerimine
Kõik failid laaditakse S3-le paralleelselt 500-niidilise pildi kaudu. Vana HLS segment puhastatakse enne uue komplekti kohale jõudmist. Automaatse skaleerija lülitab sõlmed nulli, kui järjekord tühjeneb.
Lahendused
Lahenduse peamised omadused
Kohanduv bitikiirusega video - 5 taset —240p (300 kbps) → 1080p (5000 kbps) ühes esitusloendis. Automaatne kvaliteedi valik ühenduse kiiruse põhjal.
Mitme raja heli keelemärkidega — Tuvastab ja teisendab kõik helirajad, sealhulgas kommentaarid ja kirjeldused, säilitades keele metaandmed.
Automaatne koodeki tuvastus — Kasutab NVIDIA / Intel / AMD kiirendust või tarkvara võimaluse korral, kui GPU puudub.
Nullkulu seisaku auto-skaleerimine — EC2 sõlmed skaleeruvad nullini, kui järjekord on tühi. Aktiivsed tööd on kaitstud ennetähtaegse lõpetamise eest.
Mitme projekti S3 isolatsioon — Igal projektil on oma S3 väljundtee. Toetab nii väljaandja- kui ka seerianimekirjade-põhiseid kaustastruktuure.
Tulemused numbrites
1080p
Viis adaptiivse bitikiiruse taset alates 240p 300 kbps juurest kuni täis-HD 1080p 5000 kbps-ni — mängija vahetab kvaliteeti automaatselt ühenduse kiiruse järgi.
500x
Sajad väljundfailid — segmendid, esitusloendid, pisipildid, eelvaated — laaditakse S3-le korraga lõimede hulgast, hoides kohaletoimetamise aja minimaalsena.
4 sek
4-sekundilised HLS segmendid tasakaalustavad adaptiivset vahetamiskiirust ja puhverdustõhusust — mängija reageerib võrgumuutustele ühe segmendi piires.
5x
Iga heliriba — kaasa arvatud kommentaar ja kirjeldus — saab kuni viis kvaliteeditaset alates 32 kbps (HE-AAC) kuni 192 kbps (LC-AAC) koos helitugevuse normaliseerimisega.