Von Mux zu Transloadit migrieren
Mux konzentriert sich auf Video-Ingest, Encoding, Wiedergabe und Analytics. Transloadit ist eine breiter aufgestellte Plattform für die Medienverarbeitung: Sie können Dateien hochladen oder importieren, mehrere Qualitätsstufen erzeugen, HLS- oder MPEG-DASH-Ausgaben erstellen, Thumbnails generieren, Untertitel hinzufügen, Audio transkribieren und die Ergebnisse in Ihrem eigenen Speicher ablegen.
Dieser Leitfaden behandelt Ingest, Encoding, Thumbnails und Speicherung. Player-Integration, Analytics, Zugriffskontrolle und die Übertragung von Plattform-Metadaten erfordern eine separate Planung; eine Assembly ist kein direkter Ersatz für ein Mux-Asset samt Playback-ID.
Migrationsübersicht
| Mux-Konzept | Entsprechung bei Transloadit |
|---|---|
| Direkter Upload | 🤖/upload/handle mit einem SDK oder Uppy |
| Asset-Erstellung | Eine Assembly in Transloadit |
| Encoding-Profil | Voreinstellung für 🤖/video/encode |
| Adaptive Wiedergabe | 🤖/video/adaptive oder 🤖/video/ondemand |
| Posterbild | 🤖/video/thumbs |
| Captions/Untertitel | 🤖/speech/transcribe kann SRT oder WebVTT erzeugen; 🤖/video/subtitle kann diese Untertitel in Videos einfügen |
| Webhook für fertige Assets | Assembly Notification |
| Wiedergabe-URL | Exportiertes HLS-Manifest, das von Ihrem Speicher/CDN ausgeliefert wird, oder eine URL vom Smart CDN |
Vorab-Encoding oder On-Demand-Encoding wählen
Codieren Sie bei planbaren Katalogen die Varianten vorab mit /video/encode und /video/adaptive.
Bei großen Katalogen, in denen nur ein Bruchteil der Videos angesehen wird, sollten Sie
/video/ondemand mit dem Smart CDN in Betracht ziehen, damit HLS-Assets erzeugt werden, sobald
Zuschauer sie anfordern. Dieser Robot benötigt ein separates, kompatibles Template für das Smart CDN,
dessen Antwortzweig mit /file/serve endet. Signieren Sie die URLs in Ihrem Backend, um Ihr
Encoding-Budget vor Missbrauch zu schützen. Das folgende Template für Upload und Export dient dem
Vorab-Encoding, nicht dem Smart CDN.
Beispiel-Template für adaptives Video
Dieses Template nimmt ein Video entgegen, codiert drei Qualitätsstufen, 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 Qualitätsstufen, die zu dessen Auflösung passen; die drei Voreinstellungen ergänzen keine fehlenden Details in einer Quelle mit niedriger Auflösung:
{
"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 für seine Ausgaben. Behalten Sie diesen Wert im Exportpfad bei, damit
die Verweise in den Playlists aufgelöst werden. Konfigurieren Sie
Zugangsdaten von Drittanbietern und ein CDN, das das Stammverzeichnis des
Buckets lesen kann; url_prefix konfiguriert keine Auslieferung und gewährt keinen Zugriff.
acl: "bucket-default" sendet keine Objekt-ACL; konfigurieren Sie den Zugriff über Ihre
Bucket-Policy und den Origin-Zugriff Ihres CDN.
Setzen Sie notify_url in Ihrer signierten Assembly-Anfrage, verifizieren Sie die Signaturen
der Benachrichtigungen und setzen Sie ASSEMBLY_COMPLETED voraus. Der Export aktualisiert die URLs unter
den erzeugenden Steps: results.hls listet die Segmente und Playlists auf; wählen Sie den
Eintrag mit dem Namen playlist.m3u8 und einem leeren 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 Speichern von Konvertierungsergebnissen. Testen Sie das
exportierte Manifest, die Varianten-Playlists und die Segmente über Ihr CDN im vorgesehenen
HLS-Player, bevor Sie den Traffic umstellen.
Bestehende Quelldateien aus Mux importieren
Wenn Sie noch Quellvideodateien in S3 haben, verwenden Sie 🤖/s3/import. Wenn Ihre
Anwendung temporäre HTTPS-Quell-URLs speichert, verwenden Sie 🤖/http/import.
Speichern Sie eine Backfill-Variante des Templates: Ersetzen Sie den Upload-Step :original durch
einen Import-Step namens imported und ändern Sie alle vier Verweise auf use: ":original" (drei
Encodings und das Posterbild) in use: "imported". Konfigurieren Sie diesen Import-Step mit einer
autorisierten Quell-URL oder einem S3-Key pro Assembly. Konfigurieren Sie für /s3/import eigene
Quellangaben in credentials und path; für /http/import konfigurieren Sie
url. Beispielsweise kann der HTTPS-Import-Step eine Quell-URL, die Ihr Backend ausgewählt
hat, aus fields.source_url in Ihrer signierten Assembly-Anfrage lesen:
{
"steps": {
"imported": {
"robot": "/http/import",
"url": "${fields.source_url}"
}
}
}
Dies ist der Ersatz-Step für die Eingabe, nicht das vollständige Template für die Verarbeitung. Verwenden Sie nur Quell-URLs, auf die Sie zugreifen dürfen. Temporäre Quell-URLs müssen gültig bleiben, bis der Import abgeschlossen ist; erneuern Sie abgelaufene URLs, bevor Sie es erneut versuchen. Schreiben Sie nach einem erfolgreichen Export und einer Prüfung der Wiedergabe die neue Wiedergabe-URL in Ihre Datenbank und behalten Sie die Asset-ID der Quelle für den Abgleich bei.
Checkliste
- Entscheiden Sie, ob Videos vorab oder bei Bedarf codiert werden sollen.
- Erstellen Sie ein Template für die benötigten Qualitätsstufen, Thumbnails, Untertitel und Exporte.
- Konfigurieren Sie Zugangsdaten für den Speicher, CDN-Zugriff und CORS für die HLS-Wiedergabe.
- Speichern Sie die exportierten Speicher-URLs aus den Assembly Notifications.
- Führen Sie einen Backfill für bestehende Quellvideos durch.
- Stellen Sie Ihren Player von Mux-Playback-IDs auf das exportierte Manifest oder eine URL vom Smart CDN um.