Mediekonverteringstjeneste
Sagsoversigt
Dette er en cloud-baseret mediekonverteringstjeneste, 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 et Kubernetes-job for hver enkelt og producerer et fuldt sæt af m3u8-playlister og .ts-segmenter klar til enhver moderne videoafspiller.
Den understøtter flere opløsninger for video, flere bitrate-niveauer for lyd og håndterer videoer med flere lydspor – inklusive forskellige sprog eller kommentarer. Tjenesten fungerer for flere projekter samtidig og organiserer output i separate mapper på S3 baseret på projektet eller udgiveren.
Mål: Opbyg 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.
Nøgleoplysninger om projektet
Industrier
Medier & Underholdning, Videostrømningsplatforme, OTT & Broadcast-tjenester, 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
SQS-købehandling med lang polling og håndtering af synlighedstimeouts, FFmpeg & FFprobe mediekodning og strømkanalyse, Kubernetes-joborkestrering med flygtige volumener og node-affinitet, parallelt S3-upload pipeline med forud-upload oprydning.
Løsninger
Multi-opløsnings-HLS-video — 1080p, 720p, 480p, 360p, 240p med adaptiv bitrate, Multi-bitrate lyd 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øst MP4-forhåndsvisning, MP3 og WAV kopier.
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
Processen
Hele pipeline kører uden menneskelig involvering – fra det øjeblik en fil lander på S3 til det endelige HLS-output er klar til afspilning. Hvert skridt overleverer tydeligt til det næste med indbyggede sikkerhedsforanstaltninger mod fejl, dubletter og ressourcesammenstød. Nedenfor beskrives, hvordan systemet flytter en fil gennem hele konverteringscyklussen.
Kø-overvågning
Jobmanageren kører på Kubernetes og overvåger 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
Før oprettelse af et nyt job tjekker manageren for et eksisterende Kubernetes-job for den samme fil. Hvis fundet, sættes beskeden tilbage i køen med forsinkelse for at forhindre dobbeltbehandling.
Oprettelse af Kubernetes-job
En ny pod oprettes ud fra en skabelon med korrekte ressourcebegrænsninger, node-affinitet for ARM-baserede instanser og flygtige volumener til midlertidige filer, input, output og logs.
Video- & 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.
Generering af master-playliste
Én enkelt m3u8-masterfil refererer til alle videoopløsninger og lydspor med sprogmetadata – hvilket muliggør adaptiv streaming og sprogskift i enhver moderne afspiller.
Upload, oprydning & 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 er tom.
Løsninger
Nøglefunktionerne i løsningen
Adaptiv bitrate-video - 5 niveauer —240p (300 kbps) → 1080p (5000 kbps) i én playliste. Automatisk kvalitetsvalg baseret på forbindelseshastighed.
Multi-spors lyd med sprogtags — Registrerer og konverterer alle lydspor, inklusive kommentar og beskrivelser, samtidig med at sprogmadata bevares.
Automatisk Codec-registrering — Bruger NVIDIA / Intel / AMD-acceleration eller softwarefallback, 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 udgiver- og serie-baserede mappestrukturer.
Resultater i tal
1080p
Fem adaptive bitrate-niveauer fra 240p ved 300 kbps op til fuld HD 1080p ved 5000 kbps — spilleren skifter automatisk kvalitet baseret på forbindelseshastighed.
500x
Hundredvis af outputfiler — segmenter, afspilningslister, miniaturebilleder, forhåndsvisninger — uploades til S3 samtidig via en trådpulje, hvilket holder leveringstiden minimal.
4sek
4-sekunders HLS-segmenter balancerer adaptiv skiftehastighed med buffer-effektivitet — spilleren reagerer på netværksændringer inden for en enkelt segmentgrænse.
5x
Hvert lydspor — inklusive kommentar og beskrivelse — får op til fem kvalitetsniveauer fra 32 kbps (HE-AAC) til 192 kbps (LC-AAC) med lydstyrkeregulering.