Usluga pretvaranja medija
Pregled slučaja
Ovo je usluga pretvaranja medija u oblaku koja uzima video i audio datoteke te ih pretvara u HLS streaming format s podrškom za adaptivni bitrate. Sustav osluškuje SQS red za nove datoteke, kreira Kubernetes posao za svaku i proizvodi kompletan skup m3u8 playlista i .ts segmenata spremnih za bilo koji moderni video player.
Podržava višestruke rezolucije za video, više razina bitrate-a za audio te obrađuje video zapise 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 ovisno o 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 preko 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, video streaming platforme, OTT i usluge emitiranja, digitalno izdavaštvo, mreže za dostavu sadržaja — bilo koje poslovanje koje mora isporučivati video ili audio sadržaj krajnjim korisnicima na različitim uređajima i uz različite uvjete mreže.
Usluge
Obrada SQS reda s dugim ispitivanjem i upravljanjem timeoutom vidljivosti, FFmpeg i FFprobe medijska transkodiranja i analiza tokova, orkestracija Kubernetes poslova s privremenim volumenima i pravilima afiniteta čvorova, paralelni prijenos u S3 s čišćenjem prije prijenosa.
Rješenja
HLS video višestruke rezolucije — 1080p, 720p, 480p, 360p, 240p s adaptivnim bitrateom, HLS audio s više bitrata — razine 32, 64, 96, 128, 192 kbps po audio zapisu, automatsko otkrivanje svih audio tokova s jezičnim metapodacima, sličice na 2 sekunde, nisko-rezolucijski 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 pravilno predaje sljedećem, s ugrađenim zaštitama za neuspjehe, duplikate i borbu za resurse. U nastavku je opis kako sustav prenosi datoteku kroz cijeli konverzijski ciklus.
Ispitivanje reda
Upravitelj poslova radi na Kubernetesu i ispitiva SQS red s dugim ispitivanjem. Kad stigne poruka, parsira S3 kantu i ključ objekta da identificira izvornu datoteku.
Sprečavanje duplikata
Prije kreiranja novog posla, upravitelj provjerava postoji li već Kubernetes posao za istu datoteku. Ako postoji, poruka se ponovno stavlja u red s odgodom da spriječi dvostruku obradu.
Kreiranje Kubernetes posla
Novi pod se kreira iz predloška s pravilnim limitima resursa, afinitetom čvorova za ARM instance i privremenim volumenima za privremene datoteke, ulaz, izlaz i logove.
Pretvorba video i audio zapisa
FFmpeg pretvara video u pet HLS rezolucija (1080p→240p) s segmentima od 4 sekunde. Svaki audio zapis se detektira i pretvara u pet bitrate razina — od 32 do 192 kbps.
Generiranje glavne playliste
Jedna master m3u8 datoteka referira sve video rezolucije i audio zapise s jezičnim metapodacima — omogućavajući adaptivni streaming i promjenu jezika u bilo kojem modernom playeru.
Prijenos, čišćenje i automatsko skaliranje
Sve datoteke se paralelno učitavaju u S3 putem 500-thread poola. Stari HLS segmenti se čiste prije nego što novi stignu. Autoskaler skalira čvorove na nulu kad red postane prazan.
Rješenja
Ključne značajke rješenja
Video s adaptivnim bitrateom - 5 razina — 240p (300 kbps) → 1080p (5000 kbps) u jednoj playlisti. Automatski odabir kvalitete temeljen na brzini veze.
Više audio zapisa s jezičnim oznakama — Detektira i konvertira sve audio zapise, uključujući komentare i opise, pritom čuvajući jezične metapodatke.
Automatsko prepoznavanje kodeka — Koristi NVIDIA / Intel / AMD ubrzanje, ili softversku rezervu ako nema GPU.
Automatsko skaliranje bez troška za neaktivnost — EC2 čvorovi se smanjuju do nule kada je red prazan. Aktivni poslovi su zaštićeni od preuranjenog prekida.
Izolacija S3 za više projekata — Svaki projekt ima vlastitu S3 izlaznu putanju. Podržava strukture mapa bazirane i na izdavaču i na serijama.
Rezultati u brojkama
1080p
Pet razina adaptivnog bitratea od 240p pri 300 kbps do pune HD 1080p pri 5000 kbps — player automatski prebacuje kvalitetu prema brzini veze.
500x
Stotine izlaznih datoteka — segmenata, popisa za reprodukciju, sličica, pregleda — se istovremeno učitavaju na S3 putem skupine niti, održavajući minimalno vrijeme isporuke.
4sec
4-sekundni HLS segmenti uravnotežuju brzinu adaptivnog prebacivanja s učinkovitošću međuspremnika — player reagira na mrežne promjene unutar granice jednog segmenta.
5x
Svaki audio zapis — uključujući komentare i opise — ima do pet razina kvalitete od 32 kbps (HE-AAC) do 192 kbps (LC-AAC) s normalizacijom glasnoće.