Služba převodníku médií

Přehled případu

Jedná se o cloudovou službu pro převod médií, která přijímá video a audio soubory a převádí je do formátu HLS streamování s podporou adaptivního bitrate. Systém naslouchá frontě SQS na nové soubory, spouští práci v Kubernetes pro každý z nich a vytváří kompletní sadu playlistů m3u8 a segmentů .ts připravených pro jakýkoli moderní video přehrávač.


Podporuje více rozlišení videa, různá bitrate audio stop a zpracovává videa s několika audio stopami – včetně různých jazyků nebo komentářů. Služba pracuje pro více projektů současně a organizuje výstupy do samostatných složek na S3 podle projektu nebo vydavatele.

Cíl: Vytvořit plně automatizovanou službu, která převádí jakýkoli video nebo audio soubor do formátu HLS bez manuálního zásahu – fungující napříč více projekty, zvládající různorodé typy obsahu a škálující na nulu při nečinnosti.

Image

Klíčové informace o projektu

Průmysly

Průmysly

Média a zábava, platformy pro streamování videa, OTT a vysílací služby, digitální vydavatelství, sítě pro doručování obsahu – každý podnik, který potřebuje doručovat video nebo audio obsah koncovým uživatelům na různých zařízeních a za různých síťových podmínek.

Služby

Služby

Zpracování front SQS s dlouhým dotazováním a správou timeoutů viditelnosti, mediální transkódování a analýza streamů pomocí FFmpeg a FFprobe, orchestraci úloh Kubernetes s efemérními volume a pravidly pro přiřazení uzlů, paralelní nahrávání na S3 s předchozím úklidem.

Řešení

Řešení

Více rozlišení HLS videa – 1080p, 720p, 480p, 360p, 240p s adaptivním bitrate, HLS multi-bitrate audio – úrovně 32, 64, 96, 128, 192 kbps pro každou audio stopu, automatické zjištění všech audio streamů s jazykovými metadaty, náhledy na 2 sekundě, nízkorozlišovací MP4 náhled, kopie MP3 a WAV.

Technologie

Technologie

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átů
ze jednoho vstupu

Mnoho výstupních formátů ze jednoho vstupu

Jeden video soubor může vyprodukovat stovky souborů – pět video rozlišení, pět bitrate úrovní pro každou audio stopu, plus náhledy a preview. Museli jsme to všechno přehledně uspořádat a rychle nahrát.

Více audio stop na video soubor

Více audio stop na video soubor

Některá videa mají několik audio stop v různých jazycích. Systém je musel všechny automaticky detekovat, převést každou zvlášť a sestavit hlavní playlist, který odkazuje na všechny stopy s odpovídající jazykovou značkou.

Spolehlivost fronty
a logika opakování

Spolehlivost fronty a logika opakování

U SQS je potřeba správně řešit duplikáty, timeouty viditelnosti a neúspěšné úlohy. Pokud úloha selže, měla by zpráva znovu přijít do fronty k opakování. Pokud je stejný soubor ve frontě dvakrát, neměli bychom jej zpracovávat znovu.

Správa na Kubernetes

Správa na Kubernetes

Každá konverze využívá mnoho CPU a paměti. Museli jsme nastavit efemérní volume, pravidla pro přiřazení uzlů a správný úklid, aby se úlohy nepřekrývaly ani neblokovaly.

Izolace více projektů na S3

Izolace více projektů na S3

Služba běží současně pro několik projektů. Každý potřebuje vlastní cestu výstupu na S3 a museli jsme podporovat struktury složek založené jak na vydavatelích, tak na sériích, aniž bychom něco poškodili.

Automatický výběr kodeku

Automatický výběr kodeku

Ne každé zařízení má GPU akceleraci. Systém musel detekovat, jaké kodeky jsou k dispozici – NVIDIA, Intel Quick Sync, AMD nebo jen software – a automaticky vybrat ten nejlepší.

Proces

Celý proces běží bez zásahu člověka – od okamžiku, kdy soubor přistane na S3, až po finální HLS výstup připravený k přehrávání. Každý krok hladce předává úlohu dalšímu s vestavěnými ochranami proti selháním, duplicitám a konfliktům o zdroje. Níže je popsáno, jak systém přesouvá soubor přes celý konverzní cyklus.

Dotazování fronty

Dotazování fronty

Správce úloh běží na Kubernetes a dlouze dotazuje frontu SQS. Když přijde zpráva, analyzuje bucket a klíč objektu S3, aby identifikoval zdrojový soubor.

Prevence duplicit

Prevence duplicit

Před vytvořením nové úlohy správce kontroluje existující Kubernetes úlohu pro stejný soubor. Pokud je nalezena, zpráva se znovu zařadí s prodlevou, aby se zabránilo dvojímu zpracování.

Vytvoření úlohy Kubernetes

Vytvoření úlohy Kubernetes

Nový pod je vytvořen z šablony s správnými limity zdrojů, pravidly node affinity pro instance ARM a efemérními volume pro dočasné soubory, vstup, výstup a logy.

Převod videa a audia

Převod videa a audia

FFmpeg převádí video do pěti HLS rozlišení (1080p→240p) se segmenty o délce 4 sekund. Každá audio stopa je detekována a převedena do pěti úrovní bitrate – od 32 do 192 kbps.

Generování hlavního playlistu

Generování hlavního playlistu

Jeden soubor m3u8 hlavního playlistu odkazuje na všechna video rozlišení a audio stopy s jazykovými metadaty – umožňující adaptivní streamování a přepínání jazyků v jakémkoli moderním přehrávači.

Nahrávání, úklid a autoskalování

Nahrávání, úklid a autoskalování

Všechny soubory se nahrávají na S3 paralelně přes bazén 500 vláken. Staré HLS segmenty se před nahráním nových vyčistí. Autoscaler škáluje uzly na nulu, jakmile je fronta prázdná.

Řešení

Klíčové vlastnosti řešení

  • Adaptivní video s bitrate - 5 úrovní —240p (300 kbps) → 1080p (5000 kbps) v jednom playlistu. Automatický výběr kvality podle rychlosti připojení.

  • Audio s více stopami a jazykovými značkami — Detekuje a převádí všechny zvukové stopy, včetně komentářů a popisů, přičemž zachovává metadata jazyka.

  • Automatická detekce kodeku — Používá akceleraci NVIDIA / Intel / AMD, nebo softwarový záložní režim, pokud není k dispozici GPU.

  • Autoskalování s nulovými náklady v klidu — EC2 uzly se sníží na nulu, když je fronta prázdná. Aktivní úlohy jsou chráněny před předčasným ukončením.

  • Izolace více projektů v S3 — Každý projekt má vlastní výstupní cestu v S3. Podporuje složkové struktury založené jak na vydavateli, tak na sérii.


Image

Výsledky v číslech

Pokrytí kvality videa

1080p

Pět úrovní adaptivního datového toku od 240p při 300 kbps až po plné HD 1080p při 5000 kbps — přehrávač automaticky přepíná kvalitu podle rychlosti připojení.

Paralelní vlákna nahrávání

500x

Stovky výstupních souborů — segmenty, playlisty, miniatury, náhledy — jsou nahrávány na S3 současně pomocí poolu vláken, což minimalizuje dobu dodání.

Délka segmentů HLS

4sek

4sekundové segmenty HLS vyvažují rychlost adaptivního přepínání s efektivitou načítání — přehrávač reaguje na změny v síti během jednoho segmentu.

Úrovně bitové rychlosti zvuku na stopu

5x

Každá zvuková stopa — včetně komentářů a popisu — má až pět úrovní kvality od 32 kbps (HE-AAC) do 192 kbps (LC-AAC) s normalizací hlasitosti.

Vybudujte škálovatelný mediální pipeline pro vaši platformu!

Získejte plně automatizovaný HLS konverzní systém, který škáluje s vaším obsahem - a my vám pomůžeme najít optimální architekturu pro váš projekt.

Message not sent.
Message not sent.
×
Nejste si jistí, kde začít? Pomůžeme vám naplánovat další kroky!
×
Máte výzvu? Náš tým ji promění v řešení.
Souhlas se zpracováním osobních údajů