← All posts

FFHub vs Transloadit — Ein Entwickler-Vergleich

Transloadit Unterschied zu FFHub für Cloud-Medienverarbeitung. API-Design, Preise, FFmpeg-Support, Lernkurve und passende Use Cases.

FFHub·2026-05-11
FFHub vs Transloadit — Ein Entwickler-Vergleich

Transloadit und FFHub verarbeiten beides Medien in der Cloud, gehen es aber komplett unterschiedlich an. Transloadit ist eine Full-Featured-Plattform mit eigener Assembly-Sprache und Robot-System. FFHub ist eine fokussierte Cloud-FFmpeg-API: FFmpeg-Befehl rein, Ergebnis raus. Dieser Vergleich zerlegt die Unterschiede für deine Entscheidung.

Kurzüberblick

Transloadit ist eine Plattform für Medienverarbeitung rund um „Assemblies" und „Robots". Du definierst Pipelines in einer JSON-DSL (Domain-Specific Language), wo jeder Schritt von einem spezialisierten Robot abgearbeitet wird — einer für Video-Kodierung, einer für Bildgrößen, einer für Datei-Import usw.

FFHub ist eine Cloud-FFmpeg-API. Du schickst einen Standard-FFmpeg-Befehl per REST-API, FFHub führt ihn aus, du bekommst das Ergebnis. Ein Konzept, ein Endpoint.

Vergleichstabelle

FeatureFFHubTransloadit
API-ModellREST-API — FFmpeg-Befehl sendenAssembly-DSL mit Robots
Verarbeitungs-ScopeVideo/Audio (FFmpeg)Video, Audio, Bilder, Dokumente
FFmpeg-Kompatibilität100 %Teilweise — über Robot-Parameter
LernkurveFFmpeg können = FFHub könnenAssembly-Syntax + Robot-Katalog lernen
AbrechnungsmodellPro Sekunde VerarbeitungszeitPro GB Output + Monatspläne
Upload-WidgetNeinJa — Uppy (Open Source)
Input-QuellenURL, lokaler Datei-UploadURL, S3, GCS, Azure, Direct Upload
BildverarbeitungÜber FFmpeg (begrenzt)Voll (ImageMagick-basiert)
DokumentenverarbeitungNeinJa (PDF, Office-Dokumente)
Pipeline-OrchestrierungSequentielle FFmpeg-BefehleAssembly-Steps mit Abhängigkeiten
WebhookJaJa (Notify-Robot)
Client-LibrariesNode.js, Python, CLINode.js, Ruby, Python, PHP, Java, Go
Vendor-Lock-inKeiner — Standard-FFmpegHoch — proprietäre Assembly-DSL

API-Design: FFmpeg-Befehl gegen Assembly-DSL

Hier liegt der grundlegende Unterschied.

FFHub: Ein Befehl

curl -X POST https://api.ffhub.io/v1/tasks \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "command": "ffmpeg -i https://example.com/input.mp4 -c:v libx264 -crf 23 -vf scale=1280:720 -c:a aac -b:a 128k output.mp4"
  }'

Wer FFmpeg kennt, liest das sofort. Der Befehl ist derselbe wie auf deinem lokalen Rechner.

Transloadit: Assembly mit Robots

{
  "steps": {
    "imported": {
      ":robot": "/http/import",
      "url": "https://example.com/input.mp4"
    },
    "encoded": {
      ":robot": "/video/encode",
      "use": "imported",
      "preset": "iphone-high",
      "width": 1280,
      "height": 720,
      "ffmpeg_stack": "v6.0.0",
      "ffmpeg": {
        "crf": 23,
        "b:a": "128k"
      }
    },
    "exported": {
      ":robot": "/s3/store",
      "use": "encoded",
      "bucket": "my-bucket",
      "key": "output/${file.id}.mp4",
      "credentials": "my_aws_creds"
    }
  }
}

Die Assembly-Syntax ist wortreicher, aber strukturiert. Jeder „Step" nutzt einen „Robot" für eine bestimmte Aktion. Robots werden über use verkettet.

Die Lernkurve

Bei FFHub ist die Lernkurve quasi null, wenn du FFmpeg kannst. Du schreibst denselben Befehl wie lokal.

Bei Transloadit musst du lernen:

  • Die Assembly-JSON-Struktur
  • Den Robot-Katalog (50+ Robots)
  • Wie man Robots mit use verkettet
  • Robot-spezifische Parameter (anders als FFmpeg-Flags)
  • Template-Syntax für wiederverwendbare Assemblies

Die Doku ist umfangreich, aber es ist ein neues mentales Modell.

Was FFmpeg-Flexibilität wirklich heißt

FFHub: Uneingeschränkter Zugriff

FFHub führt deinen FFmpeg-Befehl 1:1 aus. Du bekommst jedes Feature, das FFmpeg kann:

# Komplexer Filter-Graph mit mehreren Inputs
ffmpeg -i video.mp4 -i overlay.png -i audio.mp3 \
  -filter_complex \
  "[0:v][1:v]overlay=10:10[bg]; \
   [bg]drawtext=text='%{pts\:hms}':fontsize=20:fontcolor=white:x=10:y=H-th-10[v]" \
  -map "[v]" -map 2:a \
  -c:v libx264 -crf 22 -c:a aac output.mp4

# Two-Pass-Kodierung für präzise Bitrate
ffmpeg -i input.mp4 -c:v libx264 -b:v 4M -pass 1 -f null /dev/null
ffmpeg -i input.mp4 -c:v libx264 -b:v 4M -pass 2 output.mp4

# Animiertes GIF mit Palette-Optimierung
ffmpeg -i input.mp4 -vf "fps=10,scale=480:-1:flags=lanczos,split[s0][s1];[s0]palettegen[p];[s1][p]paletteuse" output.gif

# Audio extrahieren, normalisieren, in Opus umwandeln
ffmpeg -i input.mp4 -vn -af "loudnorm=I=-16:TP=-1.5:LRA=11" -c:a libopus -b:a 128k output.opus

Transloadit: Robot-Parameter

Transloadit gibt einige FFmpeg-Optionen über Robot-Parameter durch, aber nicht alle:

{
  "steps": {
    "encoded": {
      ":robot": "/video/encode",
      "use": "imported",
      "preset": "empty",
      "ffmpeg_stack": "v6.0.0",
      "width": 1280,
      "height": 720,
      "ffmpeg": {
        "crf": 23,
        "b:a": "128k",
        "vf": "drawtext=text='Hello':fontsize=24:fontcolor=white:x=10:y=10"
      }
    }
  }
}

Das ffmpeg-Objekt im Robot-Step erlaubt einige FFmpeg-Flags, aber komplexe Filter-Graphs, Multi-Input-Operationen und viele Advanced-Features sind nicht direkt unterstützt. Du bist auf das beschränkt, was das Robot-System freigibt.

Was in Transloadit nicht (oder nur schwer) geht:

  • Multi-Input-Filter-Graphs (mehrere Videoquellen kombinieren)
  • Two-Pass-Kodierung
  • Beliebiges Stream-Mapping
  • Manche exotischen Codecs und Output-Formate
  • Eigene Frame-Extraktion mit komplexen Bedingungen

Echte Kosten-Rechnung

FFHub-Preise

Einfach und transparent:

  • Pro Sekunde tatsächlicher Verarbeitungszeit
  • $0.005/Sekunde (Standard-Tier)
  • 24 Stunden temporärer Speicher gratis
  • Datentransfer enthalten

Transloadit-Preise

Basierend auf Monatsplänen und Output-Volumen:

PlanMonatskostenInkludierte GBÜberzug pro GB
Startup$49/Monat10 GB$4.00/GB
Growth$149/Monat50 GB$3.00/GB
Business$449/Monat200 GB$2.25/GB
EnterpriseCustomCustomCustom

Transloadit rechnet nach Output-Dateigröße (GB) ab, nicht nach Verarbeitungszeit. Heißt:

  • Eine 1 GB Output-Datei kostet gleich, ob 10 Sekunden oder 10 Minuten Verarbeitung
  • Mehrere Outputs aus einem Input multiplizieren die Kosten
  • Reine Audio-Outputs (kleine Datei) sind günstig
  • Hochauflösende oder hoch-bitratige Outputs (große Datei) sind teuer

Reale Szenarien

Szenario 1: 1.000 Videos, je 5 min, H.264 720p Output (~150 MB pro Stück)

FFHubTransloadit
Berechnung30s Ø × 1.000 × $0.005150 GB Output × $3.00/GB (Growth)
Verarbeitungskosten$150$450
Monatsplan$0$149
Gesamt$150$599

Szenario 2: 200 Videos, je 2 min, Multi-Bitrate (1080p + 720p + 480p, ~300 MB pro Video)

FFHubTransloadit
Berechnung60s Ø × 200 × $0.00560 GB Output × $4.00/GB (Startup)
Verarbeitungskosten$60$240
Monatsplan$0$49
Gesamt$60$289

Szenario 3: 10.000 Audio-Extraktionen, ~5 MB pro Output

FFHubTransloadit
Berechnung3s Ø × 10.000 × $0.00550 GB Output × $3.00/GB (Growth)
Verarbeitungskosten$150$150
Monatsplan$0$149
Gesamt$150$299

FFHubs Sekundenmodell ist meist berechenbarer und oft günstiger, vor allem bei großen Output-Dateien. Transloadits GB-Modell rechnet sich eher bei Tasks mit kleinem Output und langer Verarbeitung. Eine ähnliche Aufschlüsselung gibt’s im Vergleich mit AWS MediaConvert.

Datei-Upload: Uppy gegen direkte API

Transloadit: Uppy Upload-Widget

Eines der Highlights bei Transloadit ist Uppy, das Open-Source-Widget für Datei-Uploads:

<script>
  import Uppy from '@uppy/core'
  import Transloadit from '@uppy/transloadit'

  const uppy = new Uppy()
    .use(Transloadit, {
      assemblyOptions: {
        params: {
          auth: { key: 'YOUR_TRANSLOADIT_KEY' },
          steps: {
            encoded: {
              robot: '/video/encode',
              preset: 'iphone-high'
            }
          }
        }
      }
    })
</script>

Uppy bietet Drag-and-Drop, Fortschrittsbalken, fortsetzbare Uploads und Webcam-Capture out of the box. Wenn du eine Upload-UI für Endnutzer baust, ist das echt wertvoll.

FFHub: API und CLI

FFHub macht Datei-Upload über API und CLI:

# CLI-Upload
ffhub upload video.mp4 --command "ffmpeg -i video.mp4 -c:v libx264 output.mp4"

# API-Upload
curl -X POST https://api.ffhub.io/v1/tasks \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -F "[email protected]" \
  -F 'command=ffmpeg -i video.mp4 -c:v libx264 -crf 23 output.mp4'

FFHub liefert kein Frontend-Upload-Widget. Für nutzerseitige Uploads brauchst du eigene oder Drittanbieter-Lösungen.

Mehr als Video: Transloadits breiterer Scope

Transloadit verarbeitet mehr als nur Video. Der Robot-Katalog umfasst:

  • Bildverarbeitung: Resize, Crop, Wasserzeichen, Gesichtserkennung, Smart-Cropping
  • Dokumentenverarbeitung: PDF-Generierung, Office-Konvertierung
  • Audio-Verarbeitung: Wellenform-Generierung, Speech-to-Text
  • Datei-Management: Import/Export von S3, GCS, Azure, FTP, SFTP

Wenn deine App einen Single-Service für jegliches File-Processing braucht (nicht nur Video), ist Transloadits Breite ein klarer Vorteil.

FFHub ist laserfokussiert auf FFmpeg. Glänzt bei Video und Audio, kann aber keine Bilder (jenseits von FFmpeg) oder Dokumente.

Pipeline-Orchestrierung

Transloadit: Assembly-Steps

Mit Assemblies verkettest du mehrere Robots zu einer Pipeline:

{
  "steps": {
    "imported": {
      ":robot": "/http/import",
      "url": "https://example.com/input.mp4"
    },
    "thumbnails": {
      ":robot": "/video/thumbs",
      "use": "imported",
      "count": 5
    },
    "encoded_hd": {
      ":robot": "/video/encode",
      "use": "imported",
      "preset": "iphone-high",
      "width": 1920,
      "height": 1080
    },
    "encoded_sd": {
      ":robot": "/video/encode",
      "use": "imported",
      "preset": "iphone",
      "width": 854,
      "height": 480
    },
    "stored": {
      ":robot": "/s3/store",
      "use": ["thumbnails", "encoded_hd", "encoded_sd"],
      "bucket": "my-bucket"
    }
  }
}

Steps ohne Abhängigkeit laufen automatisch parallel. Stark für komplexe Medien-Pipelines.

FFHub: Sequentielle oder parallele Tasks

FFHub macht Pipelines über mehrere API-Calls oder zusammengesetzte FFmpeg-Befehle:

# Ein Befehl mit mehreren Outputs
ffmpeg -i input.mp4 \
  -vf scale=1920:1080 -c:v libx264 -crf 22 output_hd.mp4 \
  -vf scale=854:480 -c:v libx264 -crf 24 output_sd.mp4 \
  -vf "fps=1/60" -q:v 2 thumb_%02d.jpg

Für komplexere Pipelines reichst du mehrere Tasks ein und orchestrierst im eigenen App-Code. Volle Kontrolle, aber mehr Implementierungsaufwand.

Wofür Transloadit besser geeignet ist

1. Uppy Upload-Widget

Für nutzerseitige Datei-Uploads ist Uppy exzellent — Drag-and-Drop, fortsetzbare Uploads, Webcam, Fortschrittsbalken, alles Open Source.

2. Breites File-Processing

Bilder, Dokumente und nicht-Video-Tasks unter einem Dach.

3. Assembly-Pipelines

Für komplexe Multi-Step-Workflows ist Transloadits Assembly-System mit automatischer Parallelisierung stark.

4. Client-Libraries

Offizielle SDKs in 7+ Sprachen mit tiefer Assembly-Integration.

5. Template-System

Wiederverwendbare Assembly-Templates lassen dich Pipelines einmal definieren und per Name aufrufen — sauberer für Production.

Wofür FFHub besser geeignet ist

1. FFmpeg-Native

Echte FFmpeg-Befehle. Keine Übersetzungsschicht, keine Robot-Parameter zu lernen. Dein FFmpeg-Wissen läuft 1:1.

2. Einfachere Preise

Pro Sekunde Verarbeitungszeit. Keine Monatspläne, keine GB-Berechnungen, keine Überzug-Überraschungen.

3. Volle FFmpeg-Flexibilität

Komplexe Filter-Graphs, Two-Pass-Kodierung, beliebige Codecs, eigenes Stream-Mapping — alles, was FFmpeg kann.

4. Niedrige Lernkurve

Wenn du FFmpeg kannst, startest du in Minuten. Keine Assembly-DSL, kein Robot-Katalog.

5. Kein Vendor-Lock-in

Standard-FFmpeg-Befehle laufen überall. Migration weg von FFHub heißt: dieselben Befehle auf deinem Server.

6. Transparente Verarbeitung

Du siehst genau, was läuft — dein FFmpeg-Befehl. Keine Black-Box-Robots mit undokumentiertem Verhalten.

Wann du was nehmen solltest

Nimm FFHub, wenn:

  • Du volle FFmpeg-Befehlsflexibilität brauchst
  • Deine Verarbeitung Video/Audio-fokussiert ist
  • Du einfache Sekundenabrechnung willst
  • Du Wert auf null Vendor-Lock-in legst
  • Dein Team FFmpeg schon kann
  • Du komplexe Filterketten oder Kodierungs-Optionen brauchst

Nimm Transloadit, wenn:

  • Du ein Upload-Widget für Endnutzer brauchst (Uppy)
  • Deine App neben Video auch Bilder und Dokumente verarbeitet
  • Du gemanagte Multi-Step-Pipelines mit Assembly willst
  • Du eine höhere Abstraktion über rohe FFmpeg-Befehle bevorzugst
  • Du die Breite von 50+ spezialisierten Robots brauchst

Mit FFHub starten

Wenn FFmpeg-Flexibilität und einfache Preise zählen, bringt dich FFHub.io in Minuten in Produktion:

# CLI installieren
npm install -g ffhub

# Beliebigen FFmpeg-Befehl in der Cloud ausführen
ffhub run "ffmpeg -i https://example.com/input.mp4 -c:v libx264 -crf 23 -vf scale=1280:720 output.mp4"

# Lokale Datei hochladen
ffhub upload video.mp4 --command "ffmpeg -i video.mp4 -c:v libx265 -crf 28 output.mp4"

Keine Assembly-Syntax. Kein Robot-Katalog. Nur FFmpeg.

Fazit

Transloadit und FFHub bedienen überlappende, aber unterschiedliche Märkte. Transloadit ist eine umfassende File-Processing-Plattform — wenn du Bildgrößen, Dokumentenkonvertierung und Video-Kodierung unter einem Dach mit ausgereiftem Pipeline-System brauchst, ist es eine starke Wahl. FFHub ist für Entwickler, die volle FFmpeg-Power in der Cloud wollen, mit minimaler Abstraktion und transparenten Preisen.

Für reine Video- und Audio-Verarbeitung mit maximaler Flexibilität ist FFHubs FFmpeg-nativer Ansatz schwer zu schlagen. Für breitere File-Processing-Bedürfnisse mit gemanagter Orchestrierung bietet Transloadit mehr out of the box. Wähl das Tool, das zu deinem primären Use Case passt. Für die FFHub-Bewertung in einem SaaS-Produkt oder Batch-Transkodierungs-Workflow gehen die jeweiligen Guides tiefer in Integrationsmuster.

Verwandte Artikel

FFHub vs Transloadit — Ein Entwickler-Vergleich