Meediumikonverteerimise teenus

Juhtumi ülevaade

See on pilvepõhine meediumikonverteerimise teenus, mis võtab vastu video- ja helifailid ning teisendab need HLS voogedastusvormingusse adaptatiivse bitikiiruse toega. Süsteem kuulab SQS järjekorda uute failide jaoks, käivitab iga faili jaoks Kubernetes ülesanded ning genereerib täieliku m3u8 esitusloendite ja .ts segmentide komplekti, mis on valmis esitamiseks mis tahes kaasaegses videopleieris.


Toetab mitut videosagedust, mitut heliriba bitikiiruse taset ning töötleb videoid mitme helirajaga – kaasa arvatud erinevad keeled või kommentaarid. Teenus töötab samaaegselt mitme projektiga ja organiseerib väljundandmed eraldi kaustadesse S3-s vastavalt projektile või väljaandjale.

Eesmärk: Luuakse täielikult automatiseeritud teenus, mis teisendab mistahes video- või helifaili HLS vormingusse ilma käsitsi sekkumiseta — töötades mitme projekti raames, töötledes erinevat tüüpi sisu ja skaleerudes nullini tegevusetuse korral.

Image

Projekti põhiteave

Tööstusharud

Tööstusharud

Meedia ja meelelahutus, voogedastusplatvormid, OTT ja keeleteenused, digitaalne kirjastamine, sisujagamise võrgustikud – kõik ettevõtted, mis vajavad video- või helisisu kohaletoimetamist lõppkasutajatele erinevates seadmetes ja võrgu tingimustes.

Teenused

Teenused

SQS järjekorra töötlemine pika päringu ja nähtavustimeri haldusega, meedia transkodeerimine ja FFmpeg ning FFprobe voo analüüs, Kubernetes tööde orkestreerimine efemeersete mahtudega ja sõlmede sobivuste haldamisega, paralleelne failide üleslaadimine S3-sse eelneva puhastusega.

Lahendused

Lahendused

HLS video mitme eraldusvõimega — 1080p, 720p, 480p, 360p, 240p adaptiivse bitikiirusega, HLS heli mitme bitikiirusega — 32, 64, 96, 128, 192 kbps iga heliriba kohta, automaatne kõigi helivoolude tuvastamine keelemetaandmetega, pisipildid 2. sekundil, madala eraldusvõimega MP4 eelvaade, MP3 ja WAV koopiad.

Tehnoloogiad

Tehnoloogiad

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

The challenges

Many Output Formats
from One Input

Many Output Formats
from One Input

A single video file can produce hundreds of files — five video resolutions, five audio bitrates per audio track, plus thumbnails and previews. We had to organize all of that cleanly and upload it fast.

Multiple Audio Streams per Video File

Multiple Audio Streams per Video File

Some videos come with several audio tracks in different languages. The system had to detect them all automatically, convert each one separately, and build a master playlist that references every track with the right language tag.

Queue Reliability
and Retry Logic

Queue Reliability
and Retry Logic

With SQS you need to handle duplicates, visibility timeouts, and failed jobs properly. If a job fails, the message should come back to the queue for retry. If the same file gets queued twice, we should not process it again.

Management on Kubernetes

Management on Kubernetes

Each conversion job uses a lot of CPU and memory. We had to set up ephemeral volumes, node affinity rules, and proper cleanup so jobs do not pile up or block each other.

Multi-Project Isolation on S3

Multi-Project Isolation on S3

The service runs for several projects at once. Each one needs its own output path on S3, and we had to support both publisher-based and series-based folder structures without breaking anything.

Automatic Codec
Selection

Automatic Codec
Selection

Not every machine has GPU acceleration. The system needed to detect what codecs are available — NVIDIA, Intel Quick Sync, AMD, or just software — and pick the best one automatically.

Protsess

Terve ahel töötab inimese sekkumiseta — alates faili saabumisest S3-sse kuni valmisse HLS väljundini esitamiseks. Iga samm annab sujuvalt üle kontrolli järgmisele, sisaldades sisseehitatud kaitseid rikete, duplikaatide ja ressursikonkurentsi vastu. Allpool kirjeldatakse, kuidas süsteem viib faili läbi täieliku konverteerimistsükli.

Järjekorra päring

Järjekorra päring

Tööde haldur käivitub Kuberneteses ja pärib SQS järjekorda pika päringuga. Kui saabub sõnum, analüüsib ta S3 ämbrit ja objekti võtit, et määrata lähtefail.

Duplikaatide vältimine

Duplikaatide vältimine

Enne uue ülesande loomist kontrollib haldur, kas samale failile on juba Kubernetesi ülesanne olemas. Kui leidub, pannakse sõnum viivitusega uuesti järjekorda, et vältida topelttöötlust.

Kubernetesi ülesande loomine

Kubernetesi ülesande loomine

Uus pod luuakse mallist õige ressursside piirangute, ARM baasil sõlmede sobivuse ja efemeersete mahtudega ajutiste failide, sisendi, väljundi ja logide jaoks.

Video ja heli konverteerimine

Video ja heli konverteerimine

FFmpeg konverteerib video viide HLS eraldusvõimesse (1080p→240p) 4-sekundiliste segmentidega. Iga heliriba tuvastatakse ja konverteeritakse viide bitikiiruse tasemele – 32 kuni 192 kbps.

Põhiesitusloendi genereerimine

Põhiesitusloendi genereerimine

Üks m3u8 master fail viitab kõigile video eraldusvõimetele ja keelemetaandmetega heliradadele — võimaldades adaptiivset voogesituse esitamist ja keele vahetust mis tahes kaasaegses mängijas.

Üleslaadimine, puhastus ja automaatne skaleerimine

Üleslaadimine, puhastus ja automaatne skaleerimine

Kõik failid laaditakse samaaegselt S3-sse läbi 500 lõimega basseini. Vana HLS segment koristatakse enne uue komplekti ilmumist. Automaatne skaleerija vähendab sõlmed nulli, kui järjekord on tühi.

Lahendused

Lahenduse põhijooned

  • Adaptiivne video muutuvate bitikiirustega - 5 taset — 240p (300 kbps) → 1080p (5000 kbps) ühes esitusloendis. Kvaliteedi automaatne valik ühenduse kiiruse alusel.

  • Heli mitme keelemärgistusega rajaga — Tuvastab ja konverteerib kõik helirajad, sh kommentaarid ja kirjeldused, säilitades keele metaandmed.

  • Koodide automaatne tuvastamine — Kasutab NVIDIA / Intel / AMD riistvarakiirendust või tarkvaralist taastamist, kui GPU puudub.

  • Automaatne skaleerimine nullkulu ooterežiimis — EC2 sõlmed vähendavad mastaabi nullini, kui järjekord on tühi. Aktiivsed ülesanded on kaitstud enneaegse lõpetamise eest.

  • Mitme projekti S3 isolatsioon — Igal projektil on oma väljunditee S3-sse. Toetab kaustastruktuure nii väljaandja kui seeria jaoks.


Image

Tulemused numbrites

Video kvaliteedi katvus

1080p

Viis adaptiivse kiiruse taset alates 240p juures 300 kbps kuni täis-HD 1080p juures 5000 kbps — mängija lülitab kvaliteedi automaatselt ühenduse kiiruse järgi.

Paralleelsed laadimised

500x

Sajad väljundfailid — segmentide, esitusloendite, pisipiltide, eelvaadete segmendid — laaditakse korraga S3-sse vooressursside kaudu, minimeerides tarnimise aega.

HLS segmentide kestus

4sek

4-sekundilised HLS segmendid tasakaalustavad adaptiivse lülitamise kiirust ja puhvrimise efektiivsust — mängija reageerib võrgu muutustele ühe segmendi jooksul.

Audiotrack bitikiiruse tasemed

5x

Iga audiotrack — kaasa arvatud kommentaarid ja kirjeldused — omab kuni viit kvaliteeditaset alates 32 kbps (HE-AAC) kuni 192 kbps (LC-AAC) helitugevuse normaliseerimisega.

Looge skaleeritav meedia kanalisatsioon oma platvormile!

Saa täielikult automatiseeritud HLS teisendussüsteem, mis skaleerub koos sinu sisuga — ja me aitame sul leida parima arhitektuuri sinu projektile.

Message not sent.
Message not sent.
×
Ei tea, kust alustada? Me aitame teil järgmised sammud planeerida!
Nõusolek isikuandmete töötlemiseks
×
Kas teil on väljakutse? Meie meeskond muudab selle lahenduseks.
Nõusolek isikuandmete töötlemiseks