Usluga pretvaranja medija
Pregled slučaja
Ovo je usluga pretvaranja medija temeljena na oblaku koja uzima video i audio datoteke i pretvara ih u HLS streaming format s podrškom za adaptivni bitrate. Sustav osluškuje SQS red za nove datoteke, pokreće Kubernetes posao za svaku datoteku i proizvodi cjelokupan skup m3u8 popisa za reprodukciju i .ts segmenata spremnih za bilo koji moderni video player.
Podržava više rezolucija za video, više slojeva bitratea za audio te obrađuje videozapise s nekoliko audio zapisa — uključujući različite jezike ili komentare. Usluga radi istovremeno za više projekata i organizira izlaze u zasebne mape na S3 na temelju projekta ili izdavača.
Cilj: Izgraditi potpuno automatiziranu uslugu koja pretvara bilo koju video ili audio datoteku u HLS format bez ručne intervencije - radeći na više projekata, obrađujući različite vrste sadržaja i skalirajući na nulu kad je neaktivna.
Ključne informacije o projektu
Industrije
Mediji i zabava, platforme za video streaming, OTT i emitentske usluge, digitalno izdavaštvo, mreže za isporuku sadržaja — svaki posao koji treba isporučiti video ili audio sadržaj krajnjim korisnicima na različitim uređajima i raznim uvjetima mreže.
Usluge
Obrada SQS reda s dugim ispitivanjem i upravljanjem vidljivosti, FFmpeg i FFprobe pretvaranje medija i analiza streama, orkestracija Kubernetes poslova s privremenim volumenima i afinitetom čvorova, paralelni prijenos u S3 s prethodnim čišćenjem.
Rješenja
Višerezolucijski HLS video — 1080p, 720p, 480p, 360p, 240p s adaptivnim bitrateom, višeslojni audio HLS — 32, 64, 96, 128, 192 kbps po audio zapisu, automatska detekcija svih audio streamova s jezičnim metapodacima, sličice na 2 sekunde, 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 stigne na S3 do konačnog HLS izlaza spremnog za reprodukciju. Svaki korak uredno predaje sljedećem, s ugrađenim mjerama za neuspjehe, duplikate i konflikt resursa. Ispod je kako sustav vodi datoteku kroz cijeli ciklus pretvorbe.
Ispitivanje reda
Upravitelj poslova radi na Kubernetesu i ispitivački provjerava SQS red dugim ispitivanjem. Kad poruka stigne, parsira S3 spremnik i ključ objekta da identificira izvornu datoteku.
Sprečavanje duplikata
Prije stvaranja novog posla, upravitelj provjerava postoji li već posao u Kubernetesu za istu datoteku. Ako postoji, poruka se ponovno stavlja u red s odgodom kako bi se spriječila dvostruka obrada.
Kreiranje Kubernetes posla
Novi pod se kreira iz predloška sa pravilnim ograničenjima resursa, afinitetom čvorova za ARM instance i privremenim volumenima za privremene datoteke, ulaz, izlaz i zapise.
Pretvorba videa i audio zapisa
FFmpeg pretvara video u pet HLS rezolucija (1080p→240p) sa segmentima od 4 sekunde. Svaki audio zapis se detektira i pretvara u pet slojeva bitratea — 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.
Prijenos, čišćenje i automatsko skaliranje
Sve datoteke se prenose u S3 paralelno preko bazena sa 500 niti. Stari HLS segmenti se čiste prije nego što stigne novi set. Automatski skalator smanjuje broj čvorova na nulu kad red postane prazan.
Rješenja
Ključne značajke rješenja
Adaptivni video s promjenjivim bitrateom - 5 razina — 240p (300 kbps) → 1080p (5000 kbps) u jednom popisu za reprodukciju. Automatski odabir kvalitete prema brzini veze.
Više audio zapisa s jezičnim oznakama — Detektira i pretvara sve audio zapise, uključujući komentare i opise, uz očuvanje jezičnih metapodataka.
Automatsko otkrivanje kodeka — Koristi ubrzanje NVIDIA / Intel / AMD ili softversku rezervu ako nema GPU-a.
Automatsko skaliranje bez troška mirovanja — EC2 čvorovi se smanjuju na nulu kad je red prazan. Aktivni poslovi su zaštićeni od prerane obustave.
Izolacija višestrukih projekata u S3 — Svaki projekt ima svoj vlastiti izlazni put u S3. Podržava strukture mapa temeljene na izdavaču i seriji.
Rezultati u brojkama
1080p
Pet razina prilagodive brzine prijenosa od 240p pri 300 kbps do punog HD 1080p pri 5000 kbps — reproduktor automatski mijenja kvalitetu prema brzini veze.
500x
Stotine izlaznih datoteka — segmenti, popisi za reprodukciju, sličice, pregledi — istovremeno se prenose u S3 putem skupa niti, održavajući vrijeme isporuke minimalnim.
4 sek
HLS segmenti od 4 sekunde balansiraju brzinu prilagodljive promjene s učinkovitošću baferiranja — reproduktor reagira na mrežne promjene unutar granice jednog segmenta.
5x
Svaki audio zapis — uključujući komentare i opis — dobiva do pet razina kvalitete od 32 kbps (HE-AAC) do 192 kbps (LC-AAC) s normalizacijom glasnoće.