Media-Konverter-Dienst

Fallübersicht

Dies ist ein cloudbasierter Medienkonvertierungsdienst, der Video- und Audiodateien nimmt und sie in das HLS-Streaming-Format mit adaptiver Bitratenunterstützung umwandelt. Das System hört auf eine SQS-Warteschlange für neue Dateien, startet für jede eine Kubernetes-Job und erzeugt einen vollständigen Satz von m3u8-Playlists und .ts-Segmenten, die für jeden modernen Videoplayer bereit sind.


Er unterstützt mehrere Auflösungen für Video, mehrere Bitratenebenen für Audio und behandelt Videos mit mehreren Audiostreams – einschließlich verschiedener Sprachen oder Kommentare. Der Dienst arbeitet gleichzeitig für mehrere Projekte und organisiert Ausgaben in separaten Ordnern auf S3 basierend auf dem Projekt oder Herausgeber.

Ziel: Einen vollautomatischen Dienst entwickeln, der jede Video- oder Audiodatei ohne manuelles Eingreifen in das HLS-Format konvertiert – über mehrere Projekte hinweg, mit verschiedenen Inhaltstypen, und der bei Leerlauf auf null skaliert.

Image

Wichtige Projektinfos

Branchen

Branchen

Medien & Unterhaltung, Video-Streaming-Plattformen, OTT- & Rundfunkdienste, Digital Publishing, Content Delivery Networks – jedes Unternehmen, das Video- oder Audioinhalte an Endnutzer über verschiedene Geräte und unterschiedliche Netzwerkbedingungen liefern muss.

Dienstleistungen

Dienstleistungen

SQS-Warteschlangenverarbeitung mit Long Polling und Verwaltung von Sichtbarkeits-Timeouts, FFmpeg & FFprobe Medien-Transcoding und Stream-Analyse, Kubernetes-Job-Orchestrierung mit flüchtigen Volumes und Node-Affinität, parallele S3-Upload-Pipeline mit Vor-Upload-Bereinigung.

Lösungen

Lösungen

Multi-Auflösung HLS-Video — 1080p, 720p, 480p, 360p, 240p mit adaptiver Bitrate, Multi-Bitrate Audio HLS — 32, 64, 96, 128, 192 kbps Ebenen pro Audiotrack, automatische Erkennung aller Audioströme mit Sprachmetadaten, Thumbnails bei 2-Sekunden-Marke, Low-Res MP4-Vorschau, MP3- und WAV-Kopien.

Technologien

Technologien

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

Die Herausforderungen

Viele Ausgabeformate aus einer Eingabe

Viele Ausgabeformate aus einer Eingabe

Eine einzelne Videodatei kann Hunderte Dateien erzeugen — fünf Videoauflösungen, fünf Audio-Bitraten pro Audiotrack sowie Thumbnails und Vorschauen. Wir mussten all das sauber organisieren und schnell hochladen.

Mehrere Audioströme pro Videodatei

Mehrere Audioströme pro Videodatei

Einige Videos kommen mit mehreren Audiospuren in unterschiedlichen Sprachen. Das System musste alle automatisch erkennen, jede einzeln umwandeln und eine Master-Playlist erstellen, die jeden Track mit dem richtigen Sprach-Tag referenziert.

Warteschlangen-Zuverlässigkeit und Wiederholungslogik

Warteschlangen-Zuverlässigkeit und Wiederholungslogik

Mit SQS muss man Duplikate, Sichtbarkeits-Zeitüberschreitungen und fehlgeschlagene Jobs richtig handhaben. Wenn ein Job fehlschlägt, sollte die Nachricht zur erneuten Verarbeitung zurück in die Warteschlange gestellt werden. Wenn dieselbe Datei zweimal in die Warteschlange gestellt wird, sollten wir sie nicht nochmal verarbeiten.

Verwaltung auf Kubernetes

Verwaltung auf Kubernetes

Jeder Konvertierungsjob benötigt viel CPU und Arbeitsspeicher. Wir mussten flüchtige Volumes, Node-Affinitätsregeln und ordnungsgemäße Bereinigung einrichten, damit Jobs sich nicht aufstauen oder gegenseitig blockieren.

Multi-Projekt-Isolation auf S3

Multi-Projekt-Isolation auf S3

Der Dienst läuft für mehrere Projekte gleichzeitig. Jedes benötigt seinen eigenen Ausgabe-Pfad auf S3, und wir mussten sowohl herausgeberbasierte als auch serienbasierte Ordnerstrukturen unterstützen, ohne dass etwas kaputt geht.

Automatische Codec-Auswahl

Automatische Codec-Auswahl

Nicht jede Maschine hat GPU-Beschleunigung. Das System musste erkennen, welche Codecs verfügbar sind – NVIDIA, Intel Quick Sync, AMD oder nur Software – und automatisch den besten auswählen.

Der Prozess

Die gesamte Pipeline läuft ohne menschliches Eingreifen – vom Moment, in dem eine Datei auf S3 landet, bis die finale HLS-Ausgabe zur Wiedergabe bereitsteht. Jeder Schritt übergibt sauber an den nächsten, mit eingebauten Sicherungen für Ausfälle, Duplikate und Ressourcenkonflikte. Unten ist dargestellt, wie das System eine Datei durch den vollständigen Konvertierungszyklus bewegt.

Warteschlangen-Abfrage

Warteschlangen-Abfrage

Der Job-Manager läuft auf Kubernetes und fragt die SQS-Warteschlange mit Long Polling ab. Wenn eine Nachricht ankommt, analysiert er den S3-Bucket und den Objekt-Key, um die Quelldatei zu identifizieren.

Duplikatvermeidung

Duplikatvermeidung

Bevor ein neuer Job erstellt wird, prüft der Manager, ob für dieselbe Datei bereits ein Kubernetes-Job existiert. Wenn ja, wird die Nachricht mit Verzögerung erneut in die Warteschlange gestellt, um doppelte Verarbeitung zu vermeiden.

Erstellung des Kubernetes-Jobs

Erstellung des Kubernetes-Jobs

Ein neuer Pod wird aus einer Vorlage mit korrekten Ressourcengrenzen, Node-Affinität für ARM-basierte Instanzen und flüchtigen Volumes für temporäre Dateien, Eingabe, Ausgabe und Logs erstellt.

Video- und Audiokonvertierung

Video- und Audiokonvertierung

FFmpeg konvertiert Video in fünf HLS-Auflösungen (1080p→240p) mit 4-Sekunden-Segmenten. Jeder Audiotrack wird erkannt und in fünf Bitratenstufen – 32 bis 192 kbps – umgewandelt.

Master-Playlist-Erstellung

Master-Playlist-Erstellung

Eine einzelne m3u8-Masterdatei verweist auf alle Videoauflösungen und Audiotracks mit Sprachmetadaten – ermöglicht adaptive Streaming-Qualität und Sprachwechsel in jedem modernen Player.

Upload, Bereinigung & Autoscaling

Upload, Bereinigung & Autoscaling

Alle Dateien werden parallel über einen 500-Thread-Pool zu S3 hochgeladen. Alte HLS-Segmente werden bereinigt, bevor das neue Set landet. Der Autoscaler skaliert die Nodes auf null, sobald die Warteschlange leer ist.

Lösungen

Die wichtigsten Merkmale der Lösung

  • Adaptives Bitraten-Video - 5 Stufen —240p (300 kbps) → 1080p (5000 kbps) in einer Playlist. Automatische Qualitätsauswahl basierend auf der Verbindungsgeschwindigkeit.

  • Multi-Track-Audio mit Sprach-Tags — Erkennt und konvertiert alle Audiotracks, einschließlich Kommentare und Beschreibungen, unter Beibehaltung der Sprachmetadaten.

  • Automatische Codec-Erkennung — Verwendet NVIDIA / Intel / AMD Beschleunigung oder eine Software-Fallback-Lösung, falls keine GPU vorhanden ist.

  • Keine Leerlaufkosten für Autoskalierung — EC2-Knoten werden auf Null heruntergefahren, wenn die Warteschlange leer ist. Aktive Aufgaben sind vor vorzeitiger Beendigung geschützt.

  • Multi-Projekt S3 Isolierung — Jedes Projekt hat seinen eigenen S3-Ausgabepfad. Unterstützt sowohl veröffentlichungs- als auch serienbasierte Ordnerstrukturen.


Image

Ergebnisse in Zahlen

Video-Qualitätsabdeckung

1080p

Fünf adaptive Bitratenstufen von 240p bei 300 kbps bis hin zu Full HD 1080p bei 5000 kbps — der Player wechselt die Qualität automatisch basierend auf der Verbindungsgeschwindigkeit.

Parallele Upload-Threads

500x

Hunderte von Ausgabedateien – Segmente, Playlists, Thumbnails, Vorschauen – werden gleichzeitig über einen Thread-Pool nach S3 hochgeladen, wodurch die Lieferzeit minimal gehalten wird.

HLS Segmentdauer

4sek

4-Sekunden-HLS-Segmente balancieren die adaptive Umschaltgeschwindigkeit mit der Pufferungseffizienz — der Player reagiert innerhalb eines einzelnen Segmentrahmens auf Netzwerkanpassungen.

Audio-Bitrate-Stufen pro Spur

5x

Jede Audiospur – einschließlich Kommentar und Beschreibung – erhält bis zu fünf Qualitätsstufen von 32 kbps (HE-AAC) bis 192 kbps (LC-AAC) mit Lautstärkenormalisierung.

Bauen Sie eine skalierbare Medienpipeline für Ihre Plattform auf!

Erhalten Sie ein vollautomatisches HLS-Konvertierungssystem, das mit Ihrem Inhalt mitwächst – und wir helfen Ihnen, die optimale Architektur für Ihr Projekt zu finden.

Message not sent.
Message not sent.
×
Nicht sicher, wo Sie anfangen sollen? Wir helfen Ihnen, die nächsten Schritte zu planen!
Einwilligung zur Verarbeitung personenbezogener Daten
×
Haben Sie eine Herausforderung? Unser Team verwandelt sie in eine Lösung.
Einwilligung zur Verarbeitung personenbezogener Daten