Služba konvertora médií

Prehľad prípadu použitia

Toto je cloudová služba na konverziu médií, ktorá premieňa video a audio súbory do HLS streamovacieho formátu s podporou adaptívnej bitovej rýchlosti. Systém počúva frontu SQS na nové súbory, spúšťa Kubernetes job pre každý súbor a vytvára kompletnú sadu m3u8 prehrávacích zoznamov a .ts segmentov pripravených pre akýkoľvek moderný video prehrávač.


Podporuje viacnásobné rozlíšenia videa, viaceré úrovne bitovej rýchlosti pre audio a zvláda videá s niekoľkými audio stopami — vrátane rôznych jazykov alebo komentárov. Služba pracuje súčasne pre viaceré projekty a upravuje výstupy do samostatných priečinkov na S3 podľa projektu alebo vydavateľa.

Cieľ: Vybudovať plne automatizovanú službu, ktorá konvertuje akýkoľvek video alebo audio súbor do formátu HLS bez manuálneho zásahu - pracujúc cez viaceré projekty, zvládajúcu rôzne typy obsahu a škálujúcu 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 — akýkoľvek biznis, ktorý potrebuje doručiť 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 pollingom a správou viditeľnosti, mediálne transkódovanie a analýza streamov pomocou FFmpeg & FFprobe, orchestrácia Kubernetes jobov s dočasnými úložiskami a pravidlami pre príslušnosť na uzol, paralelný upload na S3 s čistením pred uploadom.

Riešenia

Riešenia

Multi-resolution HLS video — 1080p, 720p, 480p, 360p, 240p s adaptívnou bitovou rýchlosťou, multi-bitrate audio HLS — 32, 64, 96, 128, 192 kbps pre každú audio stopu, automatická detekcia všetkých audio streamov s metadátami jazyka, náhľady na 2-sekundovej značke, nízkorozlišovací 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äť rozlíšení videa, päť bitových rýchlostí pre každú audio stopu, plus náhľady a preview. Museli sme to všetko usporiadať prehľadne a nahrať rýchlo.

Viacero audio streamov pre jeden video súbor

Viacero audio streamov pre jeden video súbor

Niektoré videá prichádzajú s viacerými audio stopami v rôznych jazykoch. Systém musel automaticky detekovať všetky, konvertovať každú zvlášť a vytvoriť hlavný playlist, ktorý odkazuje na každú stopu s správnou jazykovou značkou.

Spoľahlivosť fronty a logika opakovania

Spoľahlivosť fronty a logika opakovania

Pri SQS musíte správne riešiť duplikáty, viditeľnosť správ a zlyhania jobov. Ak job zlyhá, správa sa má vrátiť do fronty na opakovanie. Ak je ten istý súbor načítaný dvakrát, nemali by sme ho spracovať znova.

Správa na Kubernetes

Správa na Kubernetes

Každý konverzný job používa veľa CPU a pamäte. Museli sme nastaviť dočasné úložiská, pravidlá príslušnosti na uzol a správne čistenie, aby sa joby neskupili a 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 svoju výstupnú cestu na S3 a museli sme podporiť priečinky založené na vydavateľovi aj na sériách bez rozbitia čohokoľvek.

Automatický výber kodeku

Automatický výber kodeku

Nie každý stroj má GPU akceleráciu. Systém mal detekovať, 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 chvíle, keď súbor pristane na S3, až po finálny HLS výstup pripravený na prehrávanie. Každý krok hladko prechádza do ďalšieho s zabudovanými ochrannými mechanizmami proti zlyhaniam, duplikátom a súťaženiu o zdroje. Nižšie je popísané, ako systém posúva súbor cez celý konverzný cyklus.

Polling fronty

Polling fronty

Manažér jobov beží na Kubernetes a dotazuje sa fronty 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 nového jobu manažér skontroluje existujúci Kubernetes job pre rovnaký súbor. Ak ho nájde, správa sa s oneskorením znovu vloží do fronty, aby sa zabránilo dvojitému spracovaniu.

Vytvorenie Kubernetes jobu

Vytvorenie Kubernetes jobu

Nový pod je vytvorený z šablóny s správnymi limitmi zdrojov, pravidlami príslušnosti na ARM-based inštancie a dočasnými úložiskami pre dočasné súbory, vstup, výstup a logy.

Konverzia videa a audia

Konverzia videa a audia

FFmpeg konvertuje video do piatich HLS rozlíšení (1080p→240p) so 4-sekundovými segmentmi. Každá audio stopa je detekovaná a konvertovaná do piatich úrovní bitovej rýchlosti — 32 až 192 kbps.

Generovanie hlavného playlistu

Generovanie hlavného playlistu

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

Nahrávanie, čistenie a autoskalovanie

Nahrávanie, čistenie a autoskalovanie

Všetky súbory sa nahrávajú paralelne na S3 pomocou 500-vláknového poolu. Staré HLS segmenty sa vyčistia pred pristátím novej sady. Autoskalér š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 podľa rýchlosti pripojenia.

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

  • Automatická detekcia kodekov — Používa akceleráciu NVIDIA / Intel / AMD alebo softvérový záložný režim, ak nie je k dispozícii GPU.

  • Autoskalovanie so žiadnymi nákladmi v nečinnosti — EC2 uzly sa zmenš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á svoju vlastnú výstupnú cestu v S3. Podporuje štruktúry zložiek založené na vydavateľovi aj sérii.


Image

Výsledky v číslach

Pokrytie kvality videa

1080p

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

Paralelné vlákna nahrávania

500x

Stovky výstupných súborov — segmenty, playlisty, náhľady, preview — sa nahrávajú do S3 súčasne cez vlákna, čím sa minimalizuje čas dodania.

Segmentovaná dĺžka HLS

4sek

4-sekundové segmenty HLS vyvažujú rýchlosť adaptívneho prepínania s efektívnosťou bufferovania — 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) po 192 kbps (LC-AAC) s normalizáciou hlasitosti.

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

Získajte plne automatizovaný systém konverzie HLS, ktorý škáluje s vaším obsahom - a pomôžeme vám 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