Migration von Mux zu Transloadit
Mux erfasst Video, codiert es und verpackt es für die HLS-Wiedergabe. Transloadit ist eine breiter aufgestellte Plattform zur Medienverarbeitung: Sie können Dateien hochladen oder importieren, mehrere Varianten erzeugen, HLS- oder MPEG-DASH-Ausgaben erstellen, Thumbnails produzieren, Untertitel hinzufügen, Audio transkribieren und die Ergebnisse in Ihrem eigenen Speicher ablegen.
Dieser Leitfaden behandelt einen On-Demand-Videokatalog: Erfassung, Encoding, Thumbnails, Export in Ihren eigenen Speicher sowie die damit verbundenen Anwendungsänderungen. Er benennt Entscheidungen zu Metadaten, Uploads, Webhooks und Sicherheit. Die Implementierung von Player-SDKs, Playback-Analytics, Livestreaming, DRM, mehrsprachiges Track-Packaging und der Wiederaufbau von KI-Workflows sind nicht Teil des Beispiels.
Umfang für Storage und DAM. Der folgende Ablauf exportiert in Ihr S3-Bucket und Ihr CDN. Die
Migration eines gehosteten DAM, der Import von Ordnern und Metadaten, die Umstellung der Auslieferung
über tlcdn.com, Migrations-Probeläufe/Manifeste, Media-Library-Rollen, Widgets
und CMS-/Editor-Integrationen erfordern einen separaten Migrationsplan. Dieser Leitfaden stellt
keinen Importer für gehostete DAMs bereit.
Migrationsübersicht
| Mux-Konzept | Migrationsentscheidung |
|---|---|
| Direct Upload | 🤖/upload/handle über ein SDK oder Uppy; passen Sie den Autorisierungsablauf für Uploads auf Ihrem Server an. |
| Asset-Erstellung | Eine Assembly führt den Verarbeitungs-Workflow aus. Behalten Sie einen Katalogeintrag in Ihrer Anwendung als dauerhafte Medienidentität. |
| Video-Qualitätsstufe | Wählen Sie Voreinstellungen für 🤖/video/encode und eine Variantenleiter; Mux’ Qualitätsstufen sind keine Transloadit-Voreinstellungsnamen. |
| Adaptive Wiedergabe | Verpacken Sie Varianten mit 🤖/video/adaptive oder prüfen Sie 🤖/video/ondemand separat. |
| Posterbild | Erzeugen Sie Dateien mit 🤖/video/thumbs und ersetzen Sie die Bild-URL. |
| Captions/Untertitel | Übernehmen Sie vorhandene Text-Tracks separat. 🤖/speech/transcribe kann neue SRT- oder WebVTT-Dateien erzeugen; entscheiden Sie, wie der Player sie erhalten soll. |
| Asset-Ready-Webhook | Assembly Notifications verwenden ein anderes Payload- und Signaturschema. |
| Playback-ID und -URL | Verwenden Sie das exportierte HLS-Manifest, das über Ihren Speicher/Ihr CDN ausgeliefert wird, oder eine Smart CDN-URL. Bewahren Sie die alten IDs in einer Nachschlagetabelle auf. |
Eine Assembly rekonstruiert kein Mux-Asset, dessen Playback-IDs, Zugriffsrichtlinien oder Analytics-Verlauf. Legen Sie fest, welche Anwendung für jede dieser Zuständigkeiten verantwortlich ist, bevor Sie Mediendateien verschieben.
Zwischen Encoding im Voraus und On-Demand-Encoding wählen
Migration von Voreinstellungen und URLs. Mux benennt seine Qualitätsstufen aktuell
basic, plus und premium;
plus verwendet ein titelspezifisches Encoding. Die feste Leiter mit drei
Varianten unten bildet dieses Verhalten nicht nach. Vergleichen Sie Qualität, Dateigröße,
Seitenverhältnis, Bildrate und die höchste benötigte Auflösung an repräsentativen Videos, bevor Sie
eigene Voreinstellungen wählen.
Siehe Mux’ Leitfaden zu Qualitätsstufen.
Erfassen Sie die Thumbnail-URL-Optionen, etwa
Frame-Zeitpunkt, Abmessungen und Zuschnittmodus, und erzeugen Sie passende Ausgaben bewusst; diese
Query-Strings einfach an ein exportiertes Bild zu übernehmen, wendet keine Transformationen an.
Codieren Sie bei planbaren Katalogen Varianten im Voraus mit /video/encode und /video/adaptive. Prüfen Sie bei
großen Katalogen, bei denen nur ein Bruchteil der Videos angesehen wird, /video/ondemand zusammen mit Smart
CDN, sodass HLS-Assets erzeugt werden, sobald Zuschauer sie anfragen. Dieser Robot benötigt ein
separates kompatibles Smart-CDN-Template, dessen Antwortzweig mit /file/serve
endet. Signieren Sie die URLs serverseitig, um Ihr Encoding-Budget vor Missbrauch zu schützen. Das
Upload-und-Export-Template unten gilt für das Encoding im Voraus, nicht für Smart CDN.
Beispiel-Template für adaptives Video
Dieses Template nimmt ein Video entgegen, codiert drei Varianten, segmentiert sie, schreibt Varianten-Playlists und eine Multivariant-Playlist, erstellt ein Thumbnail und speichert das Paket auf S3. Verwenden Sie für dieses Beispiel ein Quellvideo pro Assembly und wählen Sie zu dessen Auflösung passende Varianten; die drei Voreinstellungen fügen einer niedrig aufgelösten Quelle keine fehlenden Details hinzu:
{
"steps": {
":original": {
"robot": "/upload/handle"
},
"encoded_480p": {
"use": ":original",
"robot": "/video/encode",
"preset": "hls/480p",
"ffmpeg_stack": "v7"
},
"encoded_720p": {
"use": ":original",
"robot": "/video/encode",
"preset": "hls/720p",
"ffmpeg_stack": "v7"
},
"encoded_1080p": {
"use": ":original",
"robot": "/video/encode",
"preset": "hls/1080p",
"ffmpeg_stack": "v7"
},
"hls": {
"use": {
"steps": ["encoded_480p", "encoded_720p", "encoded_1080p"],
"bundle_steps": true
},
"robot": "/video/adaptive",
"technique": "hls",
"playlist_name": "playlist.m3u8",
"result": true
},
"poster": {
"use": ":original",
"robot": "/video/thumbs",
"count": 1,
"result": true
},
"exported_hls": {
"use": "hls",
"robot": "/s3/store",
"credentials": "YOUR_AWS_CREDENTIALS",
"path": "videos/${assembly.id}/${file.meta.relative_path}/${file.name}",
"url_prefix": "https://cdn.example.com/",
"acl": "bucket-default"
},
"exported_poster": {
"use": "poster",
"robot": "/s3/store",
"credentials": "YOUR_AWS_CREDENTIALS",
"path": "videos/${assembly.id}/posters/${file.url_name}",
"url_prefix": "https://cdn.example.com/",
"acl": "bucket-default"
}
}
}
/video/adaptive setzt relative_path auf seinen Ausgaben. Erhalten
Sie dies im Exportpfad, damit sich die Playlist-Referenzen auflösen lassen. Konfigurieren Sie
Zugangsdaten von Drittanbietern und ein CDN,
das den Bucket-Root lesen kann; url_prefix konfiguriert weder Auslieferung noch Zugriffsrechte.
acl: "bucket-default" sendet keine Objekt-ACL; konfigurieren Sie den Zugriff über
Ihre Bucket-Policy und den CDN-Origin-Access.
Setzen Sie notify_url in Ihrer signierten Assembly-Anfrage, verifizieren Sie Notification-Signaturen und verlangen Sie
ASSEMBLY_COMPLETED. Der Export aktualisiert URLs unter den erzeugenden Steps: results.hls listet die
Segmente und Playlists auf; wählen Sie den Eintrag namens playlist.m3u8 mit leerem meta.relative_path.
Lesen Sie das Thumbnail aus results.poster und prüfen Sie is_temp_url: false, bevor Sie
dessen URL speichern. Temporäre Transloadit-URLs laufen nach 24 Stunden ab und dürfen nicht für die
Wiedergabe verwendet werden; siehe
Ergebnisdateien speichern. Testen Sie das exportierte Manifest, die
Varianten-Playlists und Segmente über Ihr CDN im vorgesehenen HLS-Player, bevor Sie den Traffic
umstellen.
Vorhandene Mux-Quelldateien importieren
Export aus Mux. Listen Sie die Assets in jeder Umgebung auf
und folgen Sie der Paginierung. Halten Sie für jedes Asset Playback-IDs, Richtlinie, Tracks,
Metadaten und Verarbeitungseinstellungen in einem Migrationsmanifest fest. Bevorzugen Sie Ihre
aufbewahrten Originaldateien, wenn Sie die Originalbytes benötigen. Wenn nur Mux eine Kopie
besitzt, aktivieren Sie den temporären Master-Zugriff
mit master_access: "temporary", warten Sie auf master.status: "ready" oder video.asset.master.ready
und verwenden Sie die zurückgegebene master.url für den Import. Die URL ist
24 Stunden gültig; fordern Sie den Zugriff erneut an, bevor Sie einen abgelaufenen Import
wiederholen. Mux beschreibt den Master als qualitativ gleichwertig zur Eingabe,
wobei die Auflösung durch max_resolution_tier gesteuert wird, statt die Originalbytes zu garantieren.
Die MP4-Datei enthält Video und den primären Audio-Track; bewahren Sie alternative Audiospuren auf und
laden Sie Text-Tracks separat herunter.
Siehe Mux’ Leitfaden zum Master-Download.
Statische MP4-Varianten sind codierte Auslieferungsdateien auf der Qualitätsstufe des Assets. Verwenden Sie den Master-Zugriff für die Nacherfassung, wenn Sie Mux’ Master benötigen; eine statische Variante ist eine separate Wahl mit eigenen Qualitäts- und Auflösungsbeschränkungen.
Wenn Sie Quellvideodateien noch in S3 haben, verwenden Sie 🤖/s3/import. Wenn Ihre
Anwendung temporäre HTTPS-Quell-URLs speichert, verwenden Sie 🤖/http/import.
Speichern Sie eine Nacherfassungsvariante des Templates: Ersetzen Sie den Upload-Step
:original durch einen Import-Step namens imported und
ändern Sie alle vier Referenzen auf use: ":original" (drei Encodes und das Posterbild)
zu use: "imported". Konfigurieren Sie diesen Import-Step mit jeweils einer
autorisierten Quell-URL oder einem S3-Schlüssel pro Assembly. Konfigurieren Sie für
/s3/import dessen eigene Quellen credentials und
path; konfigurieren Sie für /http/import
url. Der HTTPS-Import-Step kann beispielsweise eine vom Backend
ausgewählte Quell-URL aus den fields.source_url Ihrer signierten Assembly-Anfrage lesen:
{
"steps": {
"imported": {
"robot": "/http/import",
"url": "${fields.source_url}"
}
}
}
Dies ist der ersetzende Eingabe-Step, nicht das vollständige Verarbeitungs-Template. Verwenden Sie nur Quell-URLs, auf die Sie zugreifen dürfen. Temporäre Quell-URLs müssen bis zum Abschluss des Imports gültig bleiben; erneuern Sie abgelaufene URLs, bevor Sie einen Versuch wiederholen. Schreiben Sie nach erfolgreichem Export und Wiedergabetest die neue Playback-URL in Ihre Datenbank und bewahren Sie dabei die Quell-Asset-ID für den Abgleich auf.
Metadaten, Organisation und Versionen. Übernehmen Sie Mux’
meta.title, meta.creator_id und meta.external_id
in Ihren Katalog, zusammen mit
passthrough, falls verwendet.
Bewahren Sie die Tags, Ordnerpfade, Sammlungszugehörigkeiten und den Versionsverlauf Ihrer Anwendung im
selben Manifest auf. Ein Import-Step überträgt Medien, nicht diese Katalogbeziehungen. Weisen Sie jeder Version neue
Objektschlüssel zu und bewahren Sie die Zuordnung von alten Asset- und Playback-IDs zu neuen Manifest-,
Poster- und Text-Track-URLs auf. Das Beispiel verwendet die Assembly-ID als Ausgabepräfix, sodass auch Wiederholungen
vor der Veröffentlichung einer Ersatzversion einen Abgleich benötigen.
Checkliste
Upload-Widget. Der Mux Uploader verwendet Mux-Direct-Upload-URLs. Ersetzen Sie diese UI- und Endpunktlogik durch Uppy und dessen Transloadit-Plugin anhand des Framework-Integrationsleitfadens. Autorisieren Sie den Benutzer und wählen Sie das zulässige Template auf Ihrem Server, bevor Sie kurzlebige signierte Assembly-Optionen zurückgeben. Halten Sie den Upload-Fortschritt vom Abschluss der Verarbeitung getrennt; veröffentlichen Sie die Playback-URL erst, nachdem der Export erfolgreich war.
Webhooks und Automatisierung. Mux’
video.asset.ready-Event signalisiert die
Wiedergabebereitschaft; es signalisiert nicht, dass ein separater Master-Download oder eine statische
Variante bereitsteht.
Mux signiert Webhooks im Header mux-signature,
und die Zustellung kann Duplikate und Wiederholungen enthalten.
Implementieren Sie die Transloadit-Notification-Verifizierung gemäß deren eigener Dokumentation. Deduplizieren Sie Katalog-Updates
nach Quellversion und Assembly-ID, behandeln Sie Fehler und führen Sie ein Wiederholungsprotokoll, bevor Sie
Ihre Mux-Event-Handler ersetzen. Verwenden Sie den Mux-Signaturverifizierer nicht erneut für Assembly Notifications.
Sicherheit. Mux’ signierte Wiedergabe verwendet serverseitig erzeugte JWTs. Diese Tokens autorisieren Ihr Ersatz-CDN nicht. Bauen Sie die Zuschauerautorisierung mit dem Mechanismus Ihres Ziel-CDN neu auf, schützen Sie HLS-Manifeste, Playlists, Segmente, Poster und Untertitel und testen Sie erlaubte und abgelehnte Anfragen. Signaturen für Assembly-Anfragen autorisieren die Verarbeitung; sie gewähren oder beschränken keinen Zugriff auf exportierte Dateien. Halten Sie S3-Zugriffsrichtlinien und CDN-Origin-Berechtigungen auf die Sichtbarkeit jedes Assets abgestimmt. Fügen Sie 🤖/file/virusscan hinzu, wenn Ihre Upload-Richtlinie einen Malware-Scan erfordert; das obige Beispiel enthält keinen Scan- oder Quarantäne-Ablauf. Für Content-Moderation und Malware-Scanning sind separate Freigaberegeln erforderlich.
Mux-Robots und KI-Workflows. Mux-Robots stellen gehostete KI-Workflows bereit, einschließlich Untertitel, Zusammenfassungen, Kapitel und Moderation; Directives können Workflows anordnen und auslösen, sobald Assets bereitstehen. Erfassen Sie die Jobs, Abhängigkeiten, Ausgaben und Moderationsentscheidungen, die Ihre Anwendung nutzt. Das obige Encoding-Template ersetzt diese Workflows nicht. Behalten Sie deren Ausgaben und bestehende Automatisierung bei, bis Sie Sprachen, Schema, Genauigkeit, Schwellenwerte und Kosten jedes Ersatzes getestet haben. Ein Transloadit-Template macht Verarbeitungs-Steps inspizierbar; es macht KI-Vorhersagen nicht deterministisch. Verfolgen Sie Template-Version, Assembly-IDs, Fehler und Exportpfade, messen Sie die Kosten an einem Pilotprojekt und begrenzen Sie Nacherfassungs-Batches entsprechend. Klären Sie Verarbeitungs- und Storage-Regionen sowie Compliance-Anforderungen mit Ihrem Team vor der Umstellung.
Aufwandsschätzung. Als Planungsschätzung sollten Sie zwei bis fünf Arbeitstage für eine öffentliche On-Demand-Videointegration einplanen, wenn ein Entwickler bereits über Originaldateien, S3-/CDN-Auslieferung und einen kompatiblen HLS-Player verfügt. Das deckt das Template, den Upload-/Signierablauf, den Notification-Handler und die Umstellung eines Pilotkatalogs ab; die Zeit für die Massenübertragung ist ausgenommen. Master, die nur bei Mux vorliegen, private Wiedergabe, CMS-Änderungen, Untertitel, alternative Audiospuren und KI-Workflows erfordern zusätzlichen Aufwand. Messen Sie Import-, Encoding- und Exportdurchsatz an repräsentativen Dateien, um die vollständige Dauer der Nacherfassung abzuschätzen.
- Entscheiden Sie, ob Videos im Voraus oder on demand codiert werden sollen.
- Erfassen Sie Quelldateien, Asset-/Playback-IDs, Sichtbarkeit, Tracks, Metadaten, URL-Optionen und Automatisierung.
- Erstellen und testen Sie ein Template für die benötigten Varianten, Thumbnails und Exporte. Planen Sie das Text-Track-Packaging separat.
- Konfigurieren Sie Storage-Zugangsdaten, CDN-Zugriff, CORS für die HLS-Wiedergabe und bei Bedarf Kontrollen für private Auslieferung.
- Ersetzen Sie den Uploader und die Webhook-Integration für ein Pilotprojekt und bewahren Sie die alte Auslieferungszuordnung für einen Rollback auf.
- Erfassen Sie den Bestand in begrenzten Batches nach; vergleichen Sie Dauer, Auflösung, Wiedergabe, Poster, Berechtigungen und Katalogzahlen, bevor Sie jede Zuordnung veröffentlichen.
- Aktualisieren Sie Anwendungs- und CMS-Einträge auf das exportierte Manifest oder die Smart-CDN-URL. Konfigurieren und testen Sie bei URLs auf einer eigenen Domain dort Weiterleitungen; aktualisieren Sie Verweise auf von Mux gehostete URLs in Ihrer Anwendung.
- Prüfen Sie eingebettete Player, Lesezeichen, Untertitel und CDN-Segmentanfragen und weiten Sie den Rollout dann aus. Halten Sie alte Assets verfügbar, bis Ihr Rollback-Zeitfenster und die Cache-Lebensdauern abgelaufen sind.