Usluga Pretvarača Medija
Pregled slučaja
Ovo je usluga konverzije medija u oblaku koja uzima video i audio datoteke i pretvara ih u HLS streaming format s podrškom za adaptivnu bitrate. Sustav prati SQS red za nove datoteke, pokreće Kubernetes zadatak za svaku od njih i proizvodi kompletan set m3u8 popisa za reprodukciju i .ts segmenata spremnih za bilo koji moderni video player.
Podržava više rezolucija za video, više slojeva bitrate za audio i upravlja videozapisima s nekoliko audio zapisa — uključujući različite jezike ili komentare. Usluga radi na više projekata istovremeno i organizira izlaze u zasebne mape na S3 prema projektu ili izdavaču.
Cilj: Izgraditi potpuno automatiziranu uslugu koja pretvara bilo koju video ili audio datoteku u HLS format bez ručne intervencije - radeći kroz više projekata, upravljajući različitim vrstama sadržaja i skalirajući na nulu kad je neaktivna.
Ključne informacije projekta
Industrije
Mediji i Zabava, Platforme za Streaming Videomaterijala, OTT i Emiterske Usluge, Digitalno Izdavaštvo, Mreže za Dostavu Sadržaja — bilo koji posao kojem je potreban video ili audio sadržaj za krajnje korisnike na različitim uređajima i u različitim mrežnim uvjetima.
Usluge
Obrada SQS reda s dugim pollingom i upravljanjem vremenskim ograničenjem vidljivosti, FFmpeg & FFprobe transkodiranje medija i analiza streama, orkestracija Kubernetes poslova s epizodnim volumenima i pravilima za odabir čvorova, paralelna S3 pipeline za upload s čišćenjem prije učitavanja.
Rješenja
HLS video visoke rezolucije — 1080p, 720p, 480p, 360p, 240p s adaptivnim bitrateom, HLS audio više bitrate slojeva — 32, 64, 96, 128, 192 kbps po audio zapisu, Automatsko otkrivanje svih audio streamova s jezičnim metapodacima, Sličice u 2-sekundnoj točki, niskorezolucijski MP4 pregled, MP3 i WAV kopije.
Tehnologije
AWS SQS, S3, Kubernetes, FFmpeg, FFprobe, H.264, AAC/HE-AAC, HLS/m3u8, NVIDIA NVENC, Intel Quick Sync, EC2 Auto Scaling, Docker, Helm
Izazovi
Proces
Cijeli proces radi bez ljudske intervencije — od trenutka kada datoteka dospije na S3 do konačnog HLS izlaza spremnog za reprodukciju. Svaki korak prelazi uredno na sljedeći, s ugrađenim zaštitama za greške, duplikate i sukob resursa. U nastavku je opis kako sustav vodi datoteku kroz cijeli ciklus konverzije.
Pollanje reda
Upravitelj zadataka radi na Kubernetesu i obavlja pollanje SQS reda s dugim pollingom. Kad stigne poruka, analizira S3 bucket i ključ objekta za identifikaciju izvorske datoteke.
Prevencija duplikata
Prije stvaranja novog zadatka, upravitelj provjerava postoje li zadaci Kubernetes-a za istu datoteku. Ako su pronađeni, poruka se ponovno stavlja u red s odgodom kako bi se spriječila dvostruka obrada.
Kreiranje Kubernetes zadatka
Stvaranje nove pod jedinice iz predloška s ispravnim ograničenjima resursa, pravilima odabira čvorova za ARM-based instance i epizodnim volumenima za privremene datoteke, ulaz, izlaz i dnevnike.
Konverzija videa i zvuka
FFmpeg pretvara video u pet HLS rezolucija (1080p→240p) s segmentima od 4 sekunde. Svaki audio zapis se otkriva i konvertira u pet slojeva bitrate - od 32 do 192 kbps.
Generiranje glavnog popisa za reprodukciju
Jedna m3u8 glavna datoteka referencira sve video rezolucije i audio zapise s jezičnim metapodacima — omogućujući adaptivni streaming i promjenu jezika u bilo kojem modernom playeru.
Učitavanje, čišćenje i automatsko skaliranje
Sve datoteke se učitavaju na S3 paralelno putem poola s 500 niti. Stari HLS segmenti se brišu prije dolaska novog seta. Auto skaliranje spušta broj čvorova na nulu kad je red prazan.
Rješenja
Ključne značajke rješenja
Video s adaptivnim bitrateom - 5 nivoa —240p (300 kbps) → 1080p (5000 kbps) u jednom popisu za reprodukciju. Automatski odabir kvalitete na temelju brzine veze.
Višeaudio zapisa s jezičnim oznakama — Otkriva i pretvara sve audio zapise, uključujući komentare i opise, uz očuvanje jezičnih metapodataka.
Automatsko otkrivanje kodeka — Koristi NVIDIA / Intel / AMD ubrzanje, ili softversku rezervu ako nema GPU.
Automatsko skaliranje sa nulom troška u praznom hodu — EC2 čvorovi se smanjuju na nulu kada je red prazan. Aktivni zadaci su zaštićeni od preuranjenog prekida.
Izolacija Multi-Projekt S3 — Svaki projekt ima svoj vlastiti S3 izlazni put. Podrška za strukture mapa temeljene na izdavaču i seriji.
Rezultati u brojkama
1080p
Pet prilagodljivih slojeva bitratea od 240p na 300 kbps do full HD 1080p na 5000 kbps — player automatski prebacuje kvalitetu temeljem brzine veze.
500x
Stotine izlaznih datoteka — segmenata, popisa, sličica, pregleda — prenosi se simultano na S3 putem skupa niti, držeći vrijeme isporuke minimalnim.
4sek
4-sekundni HLS segmenti usklađuju brzinu prilagodljivog prebacivanja i učinkovitost punjenja—player reagira na promjene mreže unutar jedne segmentne granice.
5x
Svaka audio traka — uključujući komentar i opis — dobiva do pet razina kvalitete od 32 kbps (HE-AAC) do 192 kbps (LC-AAC) s normalizacijom glasnoće.