Medieomformertjeneste

Sagsoverblik

Dette er en skybaseret 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, starter en Kubernetes-opgave for hver enkelt og producerer et komplet sæt af m3u8-spillelister og .ts-segmenter klar til enhver moderne videoplayer.


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 samtidig og organiserer output i separate mapper på S3 baseret på projekt eller udgiver.

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

Image

Nøgleoplysninger om projektet

Industrier

Industrier

Medier & Underholdning, Videostreamingplatforme, OTT & Broadcastingtjenester, Digital Udgivelse, Content Delivery Networks — enhver virksomhed, der har brug for at levere video- eller lydindhold til slutbrugere på forskellige enheder og under varierende netværksforhold.

Tjenester

Tjenester

SQS-købehandling med lang polling og administrations af synlighedstimeout, FFmpeg & FFprobe medietranskodning og strøm analyse, Kubernetes job orkestrering med flygtige volumener og node-affinitet, parallelt S3-upload pipeline med forhånds-upload oprydning.

Løsninger

Løsninger

Multiopløsnings-HLS-video — 1080p, 720p, 480p, 360p, 240p med adaptiv bitrate, Multi-bitrate audio HLS — 32, 64, 96, 128, 192 kbps niveauer pr. lydspor, Automatisk detektion af alle lydstrømme med sprogm metadata, Miniaturebilleder ved 2-sekunders mærke, lavopløselig MP4-forhåndsvisning, 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�8fra én input

Mange outputformater�8fra én input

En enkelt videofil kan producere hundredvis af filer — fem videoopløsninger, fem lydbitrates pr. lydspor, plus miniaturebilleder og forhåndsvisninger. Vi måtte organisere alt dette rent og uploade det hurtigt.

Flere lydstrømme pr. videofil

Flere lydstrømme pr. videofil

Nogle videoer indeholder flere lydspor på forskellige sprog. Systemet skulle automatisk registrere dem alle, konvertere hver enkelt separat og bygge en master-spilleliste, der refererer til hvert spor med korrekt sprog-tag.

Kø-pålidelighedog genfors�0lgning

Kø-pålidelighedog genfors�0lgning

Med SQS skal du håndtere dubletter, synlighedstimeouts og mislykkede job korrekt. Hvis et job mislykkes, skal meddelelsen returneres til køen til ny forsøg. Hvis samme fil bliver sat i kø to gange, må vi ikke behandle den igen.

Styring på Kubernetes

Styring på Kubernetes

Hvert konverteringsjob bruger meget CPU og hukommelse. Vi måtte opsætte flygtige volumener, node-affinitetsregler og korrekt oprydning, så job ikke hobes op eller blokerer hinanden.

Multi-projekt isolation på S3

Multi-projekt isolation på S3

Tjenesten kører for flere projekter samtidigt. Hvert projekt har brug for sin egen outputsti på S3, og vi måtte understøtte både udgiverbaserede og seriebaserede mappestrukturer uden at bryde noget.

Automatisk codec-valg

Automatisk codec-valg

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

Processen

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

Kø-polling

Kø-polling

Jobadministratoren kører på Kubernetes og spørger SQS-køen med lang polling. Når en besked ankommer, analyserer den S3-bucket og objekt-nøgle for at identificere kildefilen.

Forebyggelse af dubletter

Forebyggelse af dubletter

Før oprettelse af et nyt job tjekker administratoren for en eksisterende Kubernetes-job for den samme fil. Hvis fundet, sættes meddelelsen i kø igen med en forsinkelse for at forhindre dobbelt behandling.

Oprettelse af Kubernetes-job

Oprettelse af Kubernetes-job

En ny pod oprettes fra en skabelon med korrekte ressourcebegrænsninger, node-affinitet for ARM-baserede instanser og flygtige volumener til midlertidige filer, input, output og logfiler.

Video- og lydkonvertering

Video- og lydkonvertering

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

Generering af master-playliste

Generering af master-playliste

En enkelt m3u8-masterfil refererer til alle videoopløsninger og lydspor med sprogm metadata — hvilket muliggør adaptiv streaming og sprogskift i enhver moderne afspiller.

Upload, oprydning og autoskalering

Upload, oprydning og autoskalering

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

Løsninger

Løsningens nøglefunktioner

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

  • Multi-spors lyd med sprogtags — Registrerer og konverterer alle lydspor, inklusive kommentarspor og beskrivelser, samtidig med at sprogsmetadata bevares.

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

  • Ingen inaktiv omkostning ved autoskalering — EC2-noder skaleres ned til nul, når køen er tom. Aktive job beskyttes mod for tidlig afbrydelse.

  • Multi-projekt S3-isolering— Hvert projekt har sin egen S3-outputsti. Understøtter både forlags- og serie-baserede mappestrukturer.


Image

Resultater i tal

Video Kvalitetsdækning

1080p

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

Parallel Upload Threads

500x

Hundredevis af output-filer — segmenter, playlister, thumbnails, previews — uploades til S3 samtidig via en tråde-pool, hvilket holder leveringstiden minimal.

HLS-segmenteret varighed

4sek

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

Lyd bitrate-niveauer per 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 medie-pipeline til din platform!

Få et fuldt automatiseret 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