Medieomformer Service

Sagsoversigt

Dette er en cloud-baseret medieomformningstjeneste, der tager video- og lydfiler og omdanner dem til HLS streamingformat med adaptiv bitrate-understøttelse. Systemet lytter til en SQS-kø for nye filer, opstarter et Kubernetes-job for hver enkelt og producerer et komplet sæt af m3u8-playlister og .ts-segmenter klar til enhver moderne videospiller.


Den understøtter flere opløsninger for video, flere bitrate-niveauer for lyd og håndterer videoer med flere lydspor – herunder forskellige sprog eller kommentarer. Tjenesten fungerer for flere projekter samtidigt og organiserer output i separate mapper på S3 baseret på projekt eller udgiver.

Mål: Byg en fuldautomatiseret tjeneste, der konverterer enhver video- eller lydfil til HLS-format uden manuel indgriben – som fungerer på tværs af flere projekter, håndterer forskellige indholdstyper og skalerer til nul, når den er inaktiv.

Image

Nøgleinformation om projektet

Industrier

Industrier

Medie & Underholdning, Videostreamingplatforme, OTT & Broadcast-tjenester, Digital Udgivelse, Content Delivery Networks – enhver virksomhed, der har behov for at levere video- eller lydindhold til slutbrugere på forskellige enheder og under varierende netværksforhold.

Tjenester

Tjenester

SQS-købehandling med long polling og synligheds timeout-styring, FFmpeg & FFprobe medie-transcoding og strøm-analyse, Kubernetes job-orkestrering med midlertidige volumener og node-affinitet, Parallel S3 upload pipeline med oprydning før upload.

Løsninger

Løsninger

Multi-opløsnings HLS video – 1080p, 720p, 480p, 360p, 240p med adaptiv bitrate, Multi-bitrate audio HLS – 32, 64, 96, 128, 192 kbps niveauer per lydspor, Automatisk detektion af alle lydstrømme med sprogmetadata, Miniaturebilleder ved 2-sekunders mærket, lavopløsnings MP4 preview, MP3 og WAV kopier.

Teknologier

Teknologier

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

Udfordringerne

Mange outputformater�fra én input

Mange outputformater�fra én input

En enkelt videofil kan producere hundredvis af filer – fem videoopløsninger, fem lydbitrater per lydspor, plus miniaturer og previews. Vi måtte organisere alt dette rent og uploade det hurtigt.

Flere lydstrømme per videofil

Flere lydstrømme per videofil

Nogle videoer kommer med flere lydspor på forskellige sprog. Systemet skulle automatisk opdage dem alle, konvertere hvert enkelt separat og bygge en master-playliste, der refererer til hvert spor med det rette sprog-tag.

Kø-pålidelighed�og retry-logik

Kø-pålidelighed�og retry-logik

Med SQS skal du håndtere dubletter, synligheds-timeouts og mislykkede job korrekt. Hvis et job fejler, skal beskeden komme tilbage til køen til genforsøg. Hvis den samme fil køres to gange, må vi ikke behandle den igen.

Administration på Kubernetes

Administration på Kubernetes

Hvert konverteringsjob bruger mange CPU- og hukommelsesressourcer. Vi måtte opsætte midlertidige volumener, node-affinitetsregler og ordentlig oprydning, så job ikke hopper oveni hinanden eller blokerer hinanden.

Isolation mellem flere projekter på S3

Isolation mellem flere projekter på S3

Tjenesten kører for flere projekter på samme tid. Hvert projekt skal have sin egen output-sti på S3, og vi måtte understøtte både udgiverbaserede og serie-baserede mappestrukturer uden at bryde noget.

Automatisk codec-udvælgelse

Automatisk codec-udvælgelse

Ikke alle maskiner har GPU-acceleration. Systemet skulle opdage hvilke codecs der er tilgængelige – NVIDIA, Intel Quick Sync, AMD eller bare software – og vælge den bedste automatisk.

Processen

Hele processen kører uden menneskelig indblanding – fra det øjeblik en fil lander på S3 til den endelige HLS-output er klar til afspilning. Hvert trin afleverer rent til det næste, med indbyggede sikkerhedsforanstaltninger for fejl, dubletter og ressourcekonkurrence. Nedenfor er hvordan systemet flytter en fil gennem hele konverteringscyklussen.

Kø polling

Kø polling

Jobadministratoren kører på Kubernetes og poller SQS-køen med long polling. Når en besked ankommer, fortolker den S3 bucket og objektnøgle for at identificere kildefilen.

Forebyggelse af dubletter

Forebyggelse af dubletter

Før der oprettes et nyt job, tjekker administratoren for et eksisterende Kubernetes-job for den samme fil. Hvis fundet, sættes beskeden i kø igen med en forsinkelse for at forhindre dobbeltbehandling.

Oprettelse af Kubernetes-job

Oprettelse af Kubernetes-job

En ny pod oprettes ud fra en skabelon med korrekte ressourcelimit, node-affinitet for ARM-baserede instanser og midlertidige volumener til tempfiler, input, output og logs.

Video- og lydkonvertering

Video- og lydkonvertering

FFmpeg konverterer video til fem HLS-opløsninger (1080p→240p) med 4-sekunders segmenter. Hvert lydspor opdages og konverteres til fem bitrate-niveauer – 32 til 192 kbps.

Master playliste generering

Master playliste generering

En enkelt m3u8 masterfil refererer til alle videoopløsninger og lydspor med sprogmetadata – hvilket muliggør adaptiv streaming og sprogvalg i enhver moderne spiller.

Upload, oprydning & autoskalering

Upload, oprydning & autoskalering

Alle filer uploades parallelt til S3 via en 500-trådet pulje. Gamle HLS-segmenter ryddes før det nye sæt lander. Autoskaleren skalerer noder til nul, når køen er tom.

Løsninger

De vigtigste funktioner i løsningen

  • Adaptiv bitrate video - 5 niveauer—240p (300 kbps) → 1080p (5000 kbps) i én playliste. Automatisk kvalitetsvalg baseret på forbindelseshastighed.

  • Multi-track lyd med sprogmærker — Registrerer og konverterer alle lydspor, inklusive kommentarer og beskrivelser, samtidig med at sprogsmetadata bevares.

  • Automatisk codec-detektion — Bruger NVIDIA / Intel / AMD acceleration eller software-backup, hvis der ikke er noget GPU.

  • Auto-skalering uden omkostninger ved inaktivitet — EC2-noder skaleres ned til nul, når køen er tom. Aktive jobs beskyttes mod for tidlig afbrydelse.

  • Flerprojekt S3-isolering — Hvert projekt har sin egen S3 outputsti. Understøtter både mappestrukturer baseret på udgiver og serier.


Image

Resultater i tal

Videokvalitetsdækning

1080p

Fem adaptive bitrate-niveauer fra 240p ved 300 kbps op til fuld HD 1080p ved 5000 kbps — afspilleren skifter kvalitet automatisk baseret på forbindelseshastighed.

Parallelle upload-tråde

500x

Hundredevis af outputfiler — segmenter, playlister, miniaturebilleder, previews — uploades til S3 samtidig via en trådpulje, hvilket holder leveringstiden minimal.

HLS-segmenteret varighed

4sek

4-sekunders HLS-segmenter balancerer adaptiv skiftehastighed med bufferens effektivitet — afspilleren reagerer på netværksændringer inden for en enkelt segmentgrænse.

Lydbitrate-niveauer pr. spor

5x

Hvert lydspor — inklusive kommentar og beskrivelse — får op til fem kvalitetsniveauer fra 32 kbps (HE-AAC) til 192 kbps (LC-AAC) med lydstyrkenormalisering.

Byg en skalerbar mediepipeline til din platform!

Få et fuldautomatisk HLS-konverteringssystem, der skalerer med dit indhold — og vi hjælper dig med at finde den optimale arkitektur til dit projekt.

Message not sent.
Message not sent.
×
Er du i tvivl om, hvor du skal starte? Vi hjælper dig med at skitsere de næste trin!
Samtykke til behandling af personlige oplysninger
×
Har du en udfordring? Vores team vil gøre den til en løsning.
Samtykke til behandling af personlige oplysninger