Media Converter -palvelu

Tapausesittely

Tämä on pilvipohjainen mediamuunnospalvelu, joka ottaa vastaan video- ja äänitiedostoja ja muuntaa ne HLS-suoratoistoformaatiksi adaptiivisen bittinopeuden tuella. Järjestelmä kuuntelee SQS-jonoa uusille tiedostoille, käynnistää Kubernetes-tehtävän kutakin tiedostoa kohden ja tuottaa täydellisen joukon m3u8-soittolistoja ja .ts-segmenttejä, jotka ovat valmiita mille tahansa nykyaikaiselle videotoistimelle.


Se tukee useita videotarkkuuksia, useita äänen bittinopeusaluetta ja käsittelee videoita, joissa on useita ääniraitoja — mukaan lukien eri kielet tai kommentaarit. Palvelu toimii useille projekteille samanaikaisesti ja järjestää tulosteet erillisiin kansioihin S3:lla projektin tai julkaisijan perusteella.

Tavoite: Rakentaa täysin automatisoitu palvelu, joka muuntaa minkä tahansa video- tai äänitiedoston HLS-muotoon ilman manuaalista puuttumista — toimii useiden projektien yli, käsittelee erilaisia sisältötyyppejä ja skaalautuu nollaan, kun järjestelmä on käyttämättömänä.

Image

Keskeiset projektitiedot

Toimialat

Toimialat

Media ja viihde, videon suoratoistoalustat, OTT- ja lähetyspalvelut, digitaalinen julkaisu, sisällönjakeluverkostot — kaikki yritykset, jotka tarvitsevat video- tai äänisisällön toimittamista loppukäyttäjille erilaisilla laitteilla ja vaihtelevissa verkkoyhteystilanteissa.

Palvelut

Palvelut

SQS-jonon käsittely pitkällä kyselyllä ja näkyvyysajan hallinnalla, FFmpeg- ja FFprobe-mediamuunnos ja suoratoiston analysointi, Kubernetes-tehtävien orkestrointi tilapäisillä volyymeilla ja solmuaffiniteetillä, rinnakkainen S3-latausputki esipuhdistuksella.

Ratkaisut

Ratkaisut

Moniresoluutioinen HLS-video — 1080p, 720p, 480p, 360p, 240p adaptiivisella bittinopeudella, monibittinopeuksinen ääni HLS — 32, 64, 96, 128, 192 kbps tasot ääniraitaa kohden, automaattinen kaikkien äänivirtojen tunnistus kielitiedoilla, pikkukuvat 2 sekunnin kohdalla, matalan tarkkuuden 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

Monia tulostusmuotoja yhdestä syötteestä

Monia tulostusmuotoja yhdestä syötteestä

Yksittäinen videotiedosto voi tuottaa satoja tiedostoja — viisi videotarkkuutta, viisi äänen bittinopeutta per ääniraita, plus pikkukuvat ja esikatselut. Meidän piti järjestää tämä kaikki siististi ja ladata nopeasti.

Useita äänivirtoja yhtä videotiedostoa kohti

Useita äänivirtoja yhtä videotiedostoa kohti

Joissakin videoissa on useita ääniraitoja eri kielillä. Järjestelmän piti tunnistaa ne kaikki automaattisesti, muuntaa jokainen erikseen ja rakentaa master-soittolista, joka viittaa jokaiseen raitaan oikealla kielitunnisteella.

Jonon luotettavuus ja uudelleenyrityslogiikka

Jonon luotettavuus ja uudelleenyrityslogiikka

SQS:n kanssa on hallittava kopioita, näkyvyysaikakatkaisuja ja epäonnistuneita tehtäviä asianmukaisesti. Jos tehtävä epäonnistuu, viestin tulee palata jonoon uudelleenyritystä varten. Jos sama tiedosto jonoitetaan kahdesti, sitä ei tule käsitellä uudelleen.

Hallinta Kubernetesissa

Hallinta Kubernetesissa

Jokainen muunnostehtävä käyttää paljon CPU:ta ja muistia. Meidän piti asettaa tilapäiset volyymit, solmuaffiniteettisäännöt ja asianmukainen siivous, jotta tehtävät eivät kasaannu tai estä toisiaan.

Moniprojektieristys S3:ssa

Moniprojektieristys S3:ssa

Palvelu toimii useille projekteille samanaikaisesti. Jokaisella tarvitsee oman tulostuksen polun S3:lla, ja meidän piti tukea sekä julkaisijakohtaisia että sarjakohtaisia kansiorakenteita rikkomatta mitään.

Automaattinen koodekkivalinta

Automaattinen koodekkivalinta

Kaikissa koneissa ei ole GPU-kiihdytystä. Järjestelmässä tuli tunnistaa käytettävissä olevat koodekit — NVIDIA, Intel Quick Sync, AMD tai pelkkä ohjelmisto — ja valita paras automaattisesti.

Prosessi

Koko putki toimii ilman ihmisen väliintuloa — siitä hetkestä, kun tiedosto saapuu S3:een, siihen asti kun lopullinen HLS-tulos on valmis toistettavaksi. Jokainen vaihe siirtyy sujuvasti seuraavaan, ja mukana on vian- ja kopionhallinnan sekä resurssiriitojen suojaus. Alla on kuvaus siitä, miten järjestelmä käsittelee tiedoston koko muunnossyklin ajan.

Jonon kysely

Jonon kysely

Työjohtaja pyörii Kubernetesissa ja kysyy SQS-jonoa pitkällä kyselyllä. Viestin saapuessa se jäsentää S3:n ämpärin ja objektin avaimen tunnistaakseen lähdetiedoston.

Kaksoiskäsittelyn esto

Kaksoiskäsittelyn esto

Ennen uuden tehtävän luontia johtaja tarkistaa, onko olemassa Kubernetes-tehtävä samalle tiedostolle. Jos löytyy, viesti laitetaan uudelleen jonoon viiveellä kaksoiskäsittelyn estämiseksi.

Kubernetes-tehtävän luonti

Kubernetes-tehtävän luonti

Uusi podi luodaan mallipohjasta oikeilla resurssirajoilla, ARM-pohjaisille instansseille solmuaffiniteetti, ja tilapäisillä volyymeilla väliaikaisia tiedostoja, syötettä, tulosteita ja lokeja varten.

Video- ja äänimuunnos

Video- ja äänimuunnos

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

Master-soittolistan luonti

Master-soittolistan luonti

Yksi m3u8-master-tiedosto viittaa kaikkiin videotarkkuuksiin ja ääniraitoihin kielitietoineen — mahdollistaen adaptiivisen suoratoiston ja kielenvaihdon kaikissa nykyaikaisissa soittimissa.

Lataus, siivous ja automaattinen skaalaus

Lataus, siivous ja automaattinen skaalaus

Kaikki tiedostot ladataan S3:een rinnakkain 500 säikeen poolilla. Vanhoja HLS-segmenttejä siivotaan ennen uusien saapumista. Automaattinen skaalaus pienentää solmujen määrän nollaan heti kun jono tyhjenee.

Ratkaisut

Ratkaisun keskeiset ominaisuudet

  • Adaptiivinen bittinopeusvideo - 5 tasoa — 240p (300 kbps) → 1080p (5000 kbps) yhdellä soittolistalla. Automaattinen laadun valinta yhteysnopeuden perusteella.

  • Moniraidallinen ääni kielitunnisteilla — Havaitsee ja muuntaa kaikki ääniraidat, mukaan lukien selostukset ja kuvailut, säilyttäen kielitiedot.

  • Automaattinen koodekin tunnistus — Käyttää NVIDIA / Intel / AMD -kiihdytystä tai ohjelmistopohjaista vararatkaisua, jos GPU:ta ei ole.

  • Nollakustanteinen automaattinen skaalaus — EC2-solmut skaalaavat alas nollaan, kun jono on tyhjä. Aktiiviset tehtävät on suojattu ennenaikaiselta keskeytykseltä.

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


Image

Tulokset lukuina

Videon laadun kattavuus

1080p

Viisi adaptiivista bittinopeustasoa 240p:stä 300 kbps:ään aina täyteen HD 1080p:hen 5000 kbps:ssä — soitin vaihtaa laadun automaattisesti yhteysnopeuden mukaan.

Samoissa rungoissa tapahtuva rinnakkainen lataus

500x

Satoja lähtötiedostoja — segmenttejä, soittolistoja, pikkukuvia, esikatseluja — ladataan samanaikaisesti S3:een säikeiden hallintapoolin kautta, jolloin toimitusaika pysyy minimissä.

HLS-segmentin kesto

4 sek

4 sekunnin HLS-segmentit tasapainottavat adaptiivisen vaihtonopeuden ja puskurointitehokkuuden — soitin reagoi verkkomuutoksiin yhdellä segmentin rajalla.

Äänen bittinopeustasot per raita

5x

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

Rakenna skaalautuva mediaputki alustoillesi!

Saat täysin automatisoidun HLS-muunnosjärjestelmän, joka skaalautuu sisältösi mukaan – ja autamme sinua löytämään optimaalisen 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