Media Converter Service

Tapaustarkastelu

Tämä on pilvipohjainen mediaformaatin muunnospalvelu, joka muuntaa video- ja äänitiedostot HLS-suoratoistomuotoon mukautuvan bittivirran tuella. Järjestelmä kuuntelee SQS-jonosta uusia tiedostoja, käynnistää Kubernetes-tehtävän jokaiselle ja tuottaa täyden sarjan m3u8-soittolistoja ja .ts-segmenttejä valmiina mille tahansa modernille videonsoittimelle.


Se tukee useita kuvanresoluutioita videolle, useita bittivirratason ääniä ja käsittelee videoita, joissa on useita ääniraitoja – mukaan lukien eri kielet tai kommentointi. Palvelu toimii samanaikaisesti useille projekteille ja järjestää tuotokset omiin kansioihinsa S3:ssa projektin tai julkaisijan mukaan.

Tavoite: Rakentaa täysin automatisoitu palvelu, joka muuntaa minkä tahansa video- tai äänitiedoston HLS-muotoon ilman manuaalista väliintuloa – toimii useiden projektien välillä, käsittelee erilaisia sisältötyyppejä ja skaalautuu nollaan ollessaan käyttämättömänä.

Image

Keskeiset projektitiedot

Toimialat

Toimialat

Media & Viihde, Videon suoratoistoalustat, OTT- ja lähetyspalvelut, Digitaalinen julkaiseminen, Sisällönjakeluverkostot — kaikki yritykset, jotka tarvitsevat toimittaa video- tai äänisisältöä loppukäyttäjille eri laitteilla ja vaihtelevissa verkkoyhteysolosuhteissa.

Palvelut

Palvelut

SQS-jonon käsittely pitkällä kyselyllä ja näkyvyysaikarajojen hallinnalla, FFmpeg- ja FFprobe-mediamuunnokset ja -virtaviiva-analyysit, Kubernetes-tehtävien orkestrointi väliaikaisten tilojen ja solmujen affiniteettisääntöjen avulla, rinnakkainen S3-tiedostojen lataus putkisto esilatauksen siivouksella.

Ratkaisut

Ratkaisut

Moniresoluutioinen HLS-video — 1080p, 720p, 480p, 360p, 240p mukautuvan bittivirran kanssa, monibittivirtaääninen HLS — 32, 64, 96, 128, 192 kbps tasona per ääniraita, kaikkien äänivirtojen automaattinen havaitseminen kielitiedon kanssa, pikkukuvat 2 sekunnin kohdalla, matalan resoluution MP4-esikatselu, MP3- ja WAV-kopiot.

Teknologiat

Teknologiat

AWS SQS, S3, Kubernetes, FFmpeg, FFprobe, H.264, AAC/HE-AAC, HLS/m3u8, NVIDIA NVENC, Intel Quick Sync, EC2 Auto Scaling, Docker, Helm

Haasteet

Monet tulostusmuodot yhdestä syötteestä

Monet tulostusmuodot yhdestä syötteestä

Yhdestä videotiedostosta voi syntyä satoja tiedostoja – viisi videon resoluutiota, viisi ääniraidan bittivirtaa per ääniraita, lisäksi pikkukuvat ja esikatselut. Kaikki piti järjestää siististi ja ladata nopeasti.

Useita äänivirtoja per videotiedosto

Useita äänivirtoja per videotiedosto

Joissakin videoissa on useita ääniraitoja eri kielillä. Järjestelmän piti havaita ne automaattisesti, muuntaa kukin erikseen ja luoda master-soittolista, joka viittaa kaikkiin raidoihin oikeilla kielitunnisteilla.

Jonon luotettavuus ja uudelleenkäsittelylogiikka

Jonon luotettavuus ja uudelleenkäsittelylogiikka

SQS:n kanssa pitää käsitellä duplikaatteja, näkyvyysaikarajoja ja epäonnistuneita tehtäviä oikein. Jos tehtävä epäonnistuu, viestin pitää palata jonoon uudelleenkäsittelyä varten. Jos sama tiedosto laitetaan jonoon kahdesti, sitä ei pidä käsitellä kahteen kertaan.

Hallinta Kubernetesissa

Hallinta Kubernetesissa

Jokainen muunnostyö käyttää paljon CPU:ta ja muistia. Meidän piti asentaa väliaikaiset tilat, solmun affiniteettisäännöt ja tehdä asianmukainen puhdistus, jotta työt eivät kasaudu tai estä toisiaan.

Moniprojektieristys S3:ssa

Moniprojektieristys S3:ssa

Palvelu toimii useille projekteille samanaikaisesti. Jokaisella pitää olla oma tulostuspolku S3:ssa, ja meidän piti tukea sekä julkaisijapohjaisia että sarjapohjaisia kansiorakenteita rikkomatta mitään.

Automaattinen koodekkivalinta

Automaattinen koodekkivalinta

Jokaisessa koneessa ei ole GPU-kiihdytystä. Järjestelmän piti tunnistaa, mitkä koodekit ovat saatavilla – NVIDIA, Intel Quick Sync, AMD tai pelkkä ohjelmisto – ja valita paras automaattisesti.

Prosessi

Koko putki toimii ilman ihmisen osallistumista – siitä hetkestä kun tiedosto saapuu S3:een, kunnes lopullinen HLS-tuotos on valmiina toistettavaksi. Jokainen vaihe siirtää työn seuraavalle siististi, vikasuojausten kanssa epäonnistumisia, duplikaatteja ja resurssikilpailuja varten. Alla on kuvaus siitä, miten järjestelmä käsittelee tiedoston koko muunnosprosessin.

Jonohaun

Jonohaun

Työmanageri toimii Kubernetesissa ja kysyy SQS-jonoa pitkällä kyselyllä. Kun viesti saapuu, se tulkitsee S3-kauhan ja objektin avaimen lähdetiedoston tunnistamiseksi.

Duplikaattien esto

Duplikaattien esto

Ennen uuden työn luontia manageri tarkistaa, onko samalle tiedostolle olemassa jo Kubernetes-työ. Jos löytyy, viesti laitetaan uudelleen jonoon viiveellä tuplakäsittelyn estämiseksi.

Kubernetes-työn luonti

Kubernetes-työn luonti

Uusi podi luodaan mallipohjasta oikeilla resurssirajoilla, ARM-pohjaisten solmujen affiniteettisäännöillä ja väliaikaisilla säilöillä tilapäisille tiedostoille, syötteelle, tuotokselle ja lokitiedostoille.

Video- ja äänenmuunnos

Video- ja äänenmuunnos

FFmpeg muuntaa videon viiteen HLS-resoluutioon (1080p→240p) 4 sekunnin segmenteillä. Jokainen ääniraita havaitaan ja muunnetaan viiteen bittivirratason – 32–192 kbps.

Master-soittolistan luonti

Master-soittolistan luonti

Yksi m3u8 master-tiedosto viittaa kaikkiin videoresoluutioihin ja ääniraitoihin kielitiedon kanssa – mahdollistaen mukautuvan suoratoiston ja kielenvaihdon missä tahansa modernissa soittimessa.

Lataus, siivous ja automaattinen skaalaus

Lataus, siivous ja automaattinen skaalaus

Kaikki tiedostot ladataan S3:een rinnakkain 500 säikeen puitteissa. Vanhoja HLS-segmenttejä siivotaan ennen kuin uusi sarja saapuu. Automaattinen skaalaus skaalaa solmut nollaan kun jono tyhjenee.

Ratkaisut

Ratkaisun keskeiset ominaisuudet

  • Mukautuva bittivirta-video – 5 tasoa —240p (300 kbps) → 1080p (5000 kbps) yhdessä soittolistassa. Automaattinen laadun valinta yhteysnopeuden mukaan.

  • Moniraitainen ääni kielitunnisteilla — Havaitsee ja muuntaa kaikki ääniraidat, mukaan lukien kommentoinnin ja kuvaukset, säilyttäen kielitiedot.

  • Automaattinen koodekin tunnistus — Käyttää NVIDIA:n / Intelin / AMD:n kiihdytystä tai ohjelmistopohjaista varajärjestelmää, jos GPU:ta ei ole.

  • Nollakustannuksinen automaattinen skaalaus — EC2-solmut skaalautuvat nollaan, kun jono on tyhjä. Aktiiviset työt on suojattu ennenaikaiselta keskeytykseltä.

  • Moniprojektinen S3-eristys — Jokaisella projektilla on oma S3-lähtöpolkunsa. Tukee sekä julkaisija- että sarjapohjaisia kansiorakenteita.


Image

Tulokset numeroina

Videon laadun kattavuus

1080p

Viisi adaptiivista bittinopeustasoa 240p:stä 300 kbps:iin aina täyteen HD 1080p:hen 5000 kbps:iin – toistin vaihtaa laadun automaattisesti yhteysnopeuden perusteella.

Samaan aikaan toimivat lataussäikeet

500x

Sadat lähtötiedostot — segmentit, soittolistat, pikkukuvat, esikatselut — ladataan S3:een samanaikaisesti säikeiden kautta, jolloin toimitusaika pysyy minimissä.

HLS-segmenttien kesto

4s

4 sekunnin HLS-segmentit tasapainottavat adaptiivisen vaihtonopeuden ja puskuritehokkuuden – toistin reagoi verkon muutoksiin yhden segmentin sisällä.

Äänen bittinopeustasot yksittäisille ääniradoille

5x

Jokainen ääniraita — mukaan lukien selostus ja kuvailu — saa jopa viisi laatutasoa välillä 32 kbps (HE-AAC) ja 192 kbps (LC-AAC) äänenvoimakkuuden normalisoinnilla.

Rakenna skaalautuva mediaputki alustallesi!

Saat täysin automatisoidun HLS-muunnosjärjestelmän, joka skaalautuu sisältösi mukaan – ja autamme sinua löytämään parhaan arkkitehtuurin projektiisi.

Message not sent.
Message not sent.
×
Etkö tiedä mistä aloittaa? Autamme sinua hahmottamaan seuraavat askeleet!
Suostumus henkilötietojen käsittelyyn
×
Onko haaste? Tiimimme muuttaa sen ratkaisuksi.
Suostumus henkilötietojen käsittelyyn