Služba na prevod médií

Prehľad prípadu

Ide o cloudovú službu na prevod médií, ktorá prevezme video a audio súbory a prevedie ich do formátu HLS so streamovaním s adaptívnou bitovou rýchlosťou. Systém počúva na frontu SQS pre nové súbory, spúšťa úlohu Kubernetes pre každý z nich a vytvára kompletný súbor prehrávacích zoznamov m3u8 a segmentov .ts pripravených pre akýkoľvek moderný prehrávač videa.


Podporuje viaceré rozlíšenia videa, rôzne úrovne bitových rýchlostí pre audio a spracováva videá s viacerými zvukovými stopami — vrátane rôznych jazykov alebo komentárov. Služba pracuje súčasne pre viacero projektov a organizuje výstupy do samostatných priečinkov na S3 podľa projektu alebo vydavateľa.

Cieľ: Vytvoriť plne automatizovanú službu, ktorá prevedie akýkoľvek video alebo audio súbor do formátu HLS bez manuálneho zásahu - pracovať naprieč viacerými projektmi, spracovávať rôzne typy obsahu a škálovať na nulu, keď je nečinná.

Image

Kľúčové informácie o projekte

Odvetvia

Odvetvia

Médiá a zábava, platformy na streamovanie videa, OTT a vysielacie služby, digitálne vydavateľstvo, siete na doručovanie obsahu — každý podnik, ktorý potrebuje doručovať video alebo audio obsah koncovým používateľom na rôznych zariadeniach a v rôznych sieťových podmienkach.

Služby

Služby

Spracovanie fronty SQS s dlhým vyvolávaním a správou viditeľnosti, mediálny transcoding a analýza streamu pomocou FFmpeg & FFprobe, orchestrácia úloh Kubernetes s dočasnými zväzkami a príslušnosťou uzlov, paralelný prenos S3 s čistením pred prenosom.

Riešenia

Riešenia

Viacrozlíšené HLS video — 1080p, 720p, 480p, 360p, 240p s adaptívnou bitovou rýchlosťou, viacúrovňové audio HLS — 32, 64, 96, 128, 192 kbps úrovne na zvukovú stopu, automatická detekcia všetkých audio streamov s jazykovými metadátami, náhľady na 2-sekundovej značke, nízke rozlíšenie MP4 náhľad, kópie MP3 a WAV.

Technológie

Technológie

AWS SQS, S3, Kubernetes, FFmpeg, FFprobe, H.264, AAC/HE-AAC, HLS/m3u8, NVIDIA NVENC, Intel Quick Sync, EC2 Auto Scaling, Docker, Helm

Výzvy

Mnoho výstupných formátov
z jedného vstupu

Mnoho výstupných formátov z jedného vstupu

Jeden video súbor môže vyprodukovať stovky súborov — päť video rozlíšení, päť bitových rýchlostí na zvukovú stopu, plus náhľady a preview. Museli sme všetko usporiadať čisto a nahrať rýchlo.

Viaceré audio stopy na video súbor

Viaceré audio stopy na video súbor

Niektoré videá obsahujú niekoľko audio stôp v rôznych jazykoch. Systém ich musel automaticky detekovať všetky, previesť každú zvlášť a vytvoriť hlavný prehrávací zoznam, ktorý odkazuje na každú stopu s správnym jazykovým označením.

Spoľahlivosť fronty
a opakovacia logika

Spoľahlivosť fronty a opakovacia logika

So SQS je potrebné správne spravovať duplicitné správy, časové limity viditeľnosti a zlyhané úlohy. Ak úloha zlyhá, správa by sa mala vrátiť do fronty pre opätovné spracovanie. Ak je rovnaký súbor vo fronte dvakrát, nemali by sme ho spracovať znovu.

Správa na Kubernetes

Správa na Kubernetes

Každá konverzná úloha používa veľa CPU a pamäte. Museli sme nastaviť dočasné zväzky, pravidlá príslušnosti uzlov a správne čistenie, aby sa úlohy nezhromažďovali alebo neblokovali navzájom.

Izolácia viacerých projektov na S3

Izolácia viacerých projektov na S3

Služba beží súčasne pre niekoľko projektov. Každý potrebuje vlastnú výstupnú cestu na S3 a museli sme podporovať priečinky založené na vydavateľovi aj sériách bez porušenia funkčnosti.

Automatický výber kodeku

Automatický výber kodeku

Nie každý stroj má akceleráciu GPU. Systém musel zistiť, aké kodeky sú dostupné — NVIDIA, Intel Quick Sync, AMD alebo len softvér — a automaticky vybrať ten najlepší.

Proces

Celý proces prebieha bez ľudského zásahu — od momentu, keď súbor pristane na S3, až po finálny výstup HLS pripravený na prehrávanie. Každý krok plynulo nadväzuje na nasledujúci, so zabudovanými bezpečnostnými opatreniami pre zlyhania, duplikáty a súťaž o zdroje. Nižšie je spôsob, akým systém spracováva súbor cez celý konverzný cyklus.

Vyvolávanie fronty

Vyvolávanie fronty

Manažér úloh beží na Kubernetes a vyvoláva frontu SQS s dlhým pollingom. Keď príde správa, rozparsuje S3 bucket a kľúč objektu, aby identifikoval zdrojový súbor.

Prevencia duplikátov

Prevencia duplikátov

Pred vytvorením novej úlohy manažér skontroluje existujúcu úlohu Kubernetes pre ten istý súbor. Ak ju nájde, správa sa znovu zaradí do fronty s oneskorením, aby sa zabránilo dvojitému spracovaniu.

Vytváranie úloh Kubernetes

Vytváranie úloh Kubernetes

Nový pod je vytvorený z šablóny so správnymi limitmi zdrojov, príslušnosťou uzlov pre ARM inštancie a dočasnými zväzkami pre dočasné súbory, vstup, výstup a logy.

Video a audio konverzia

Video a audio konverzia

FFmpeg prevádza video do piatich HLS rozlíšení (1080p→240p) so segmentmi po 4 sekundách. Každá zvuková stopa sa detekuje a prekonvertuje do piatich bitových úrovní — 32 až 192 kbps.

Vytváranie hlavného prehrávacieho zoznamu

Vytváranie hlavného prehrávacieho zoznamu

Jeden hlavný m3u8 súbor odkazuje na všetky video rozlíšenia a audio stopy s jazykovými metadátami — umožňujúci adaptívne streamovanie a prepínanie jazykov v akomkoľvek modernom prehrávači.

Nahrávanie, čistenie a automatické škálovanie

Nahrávanie, čistenie a automatické škálovanie

Všetky súbory sa nahrávajú do S3 paralelne cez 500-vláknový pool. Staré segmenty HLS sa čistia pred príchodom novej množiny. Autoscaler škáluje uzly na nulu, keď je fronta prázdna.

Riešenia

Kľúčové vlastnosti riešenia

  • Adaptívne video s bitovou rýchlosťou - 5 úrovní —240p (300 kbps) → 1080p (5000 kbps) v jednom prehrávacom zozname. Automatický výber kvality založený na rýchlosti pripojenia.

  • Viacstopy audio s jazykovými značkami — Detekuje a prevádza všetky zvukové stopy, vrátane komentárov a popisov, pričom zachováva jazykové metadáta.

  • Automatická detekcia kodeku — Používa zrýchlenie NVIDIA / Intel / AMD alebo softvérový záložný režim, ak nie je GPU.

  • Automatické škálovanie so žiadnymi nákladmi počas nečinnosti — EC2 uzly sa znižujú na nulu, keď je fronta prázdna. Aktívne úlohy sú chránené pred predčasným ukončením.

  • Izolácia viacerých projektov v S3 — Každý projekt má vlastnú výstupnú cestu v S3. Podporuje priečinkové štruktúry založené na vydavateľovi i sérii.


Image

Výsledky v číslach

Pokrytie kvality videa

1080p

Päť úrovní adaptívneho bitratu od 240p pri 300 kbps až po full HD 1080p pri 5000 kbps — prehrávač automaticky prepína kvalitu na základe rýchlosti pripojenia.

Paralelné vlákna odosielania

500x

Stovky výstupných súborov — segmenty, playlisty, náhľady, ukážky — sa nahrávajú na S3 súčasne pomocou vlákien, čím sa minimalizuje doba dodania.

Dĺžka segmentu HLS

4sek

4-sekundové HLS segmenty vyvažujú rýchlosť adaptívneho prepínania a efektívnosť vyrovnávacej pamäte — prehrávač reaguje na zmeny siete v rámci jedného segmentu.

Úrovne bitratu zvuku na stopu

5x

Každá zvuková stopa — vrátane komentára a popisu — má až päť kvalitatívnych úrovní od 32 kbps (HE-AAC) do 192 kbps (LC-AAC) s normalizáciou hlasitosti.

Vytvorte škálovateľný mediálny kanál pre vašu platformu!

Získajte plne automatizovaný systém konverzie HLS, ktorý sa škáluje podľa vášho obsahu - a my vám pomôžeme nájsť optimálnu architektúru pre váš projekt.

Message not sent.
Message not sent.
×
Nie ste si istí, kde začať? Pomôžeme vám načrtnúť ďalšie kroky!
×
Máte výzvu? Náš tím ju premení na riešenie.
Súhlas so spracovaním osobných údajov