Videos zusammenfügen
🤖/video/concat fügt mehrere Videos zusammen.

Die Eingabevideos können unterschiedliche Abmessungen und Streams aufweisen. Der Robot kann dies problemlos verarbeiten. Falls erforderlich, transkodiert er die Eingabevideos vor dem Zusammenfügen ohne zusätzliche Kosten.
Mit 🤖/video/concat können Sie praktisch unbegrenzt viele Videodateien zusammenfügen.
Anwendungsbeispiel
Wenn Ihr Formular 3 Dateieingabefelder enthält und Sie die hochgeladenen Videos in einer bestimmten Reihenfolge zusammenfügen möchten, weisen Sie Transloadit mithilfe des Attributs name der einzelnen Eingabefelder an. Verwenden Sie dieses Attribut als Wert für den Schlüssel fields im JSON und setzen Sie as auf video_[[index]]. Transloadit fügt die Dateien in aufsteigender Indexreihenfolge zusammen:
{
"steps": {
"concatenated": {
"robot": "/video/concat",
"use": {
"steps": [
{
"name": ":original",
"fields": "first_video_file",
"as": "video_1"
},
{
"name": ":original",
"fields": "second_video_file",
"as": "video_2"
},
{
"name": ":original",
"fields": "third_video_file",
"as": "video_3"
}
]
}
}
}
}Parameter
interpolateboolean | Record<string, boolean>Steuert, ob einzelne Robot-Anweisungsfelder Assembly Variables interpolieren.
Standardmäßig interpolieren die meisten Robot-Anweisungsfelder Assembly Variables. Mit dem Wert
falsebehandeln Sie alle Anweisungsfelder als Literaltext. Wenn Sie stattdessen einen einzelnen Feldpfad auffalsesetzen, wird nur dieses Feld als Literaltext behandelt. Bei Feldern eines bestimmten Robots, die standardmäßig als Literaltext behandelt werden, aktivieren Sie die Interpolation wieder, indem Sie hierfürtruefestlegen oder für den jeweiligen Feldpfad den Werttrueverwenden.Verwenden Sie Feldnamen wie
pathoder für verschachtelte Objekte Punktpfade wieffmpeg.vfals Pfadangabe.output_metaRecord<string, boolean> | boolean | Array<string>Damit können Sie eine Reihe von Metadaten festlegen, deren Berechnung mehr CPU-Ressourcen beansprucht. Sie sind daher standardmäßig deaktiviert, damit Ihre Assemblies schnell verarbeitet werden.
Für Bilder können Sie diesem Objekt den Eintrag
"has_transparency": truehinzufügen, um zu ermitteln, ob das Bild transparente Bereiche enthält. Mit dem Eintrag"dominant_colors": truekönnen Sie außerdem ein Array mit hexadezimalen Farbcodes aus dem Bild extrahieren.Für Bilder können Sie auch den Eintrag
"blurhash": truehinzufügen, um einen BlurHash zu extrahieren – eine kompakte Darstellung eines Platzhalters für das Bild, mit der Sie eine unscharfe Vorschau anzeigen können, während das vollständige Bild geladen wird.Für Videos können Sie den Parameter
"colorspace": truehinzufügen, um den Farbraum des Ausgabevideos zu extrahieren.Für Videos können Sie außerdem den Eintrag
"interlaced": truehinzufügen, um zu erkennen, ob das Video im Zeilensprungverfahren vorliegt. Dazu wird die ressourcenschonende ffprobe-Optionfield_ordermit einem begrenzten Stichprobendurchlauf mithilfe vonidetüber die ersten Frames der Quelle kombiniert. Die Ergebnisseinterlacedundfield_ordersowie das Diagnoseobjektinterlace_detectionwerden dabei unterfile.metaausgegeben. Dies ist rechenintensiv und wird entsprechend abgerechnet.Für Audio können Sie den Eintrag
"mean_volume": truehinzufügen, um einen einzelnen Wert für die durchschnittliche Lautstärke der Audiodatei zu erhalten.Sie können diesen Parameter auch auf
falsesetzen, um die Metadatenextraktion zu überspringen und das Transcoding zu beschleunigen.user_metaRecord<string, any>(Standard:{})Fügt jeder von diesem Robot ausgegebenen Datei benutzerdefinierte Metadaten hinzu, ohne den Dateiinhalt zu verändern.
Die Werte werden mit allen bereits in der Eingabedatei enthaltenen
user_metazusammengeführt. Wenn beide Objekte denselben Schlüssel enthalten, hat der Wert dieses Robots Vorrang. Assembly Variables werden unterstützt, zum Beispiel{ "internal_file_id": "${file.id}" }.resultboolean(Standard:false)Ob die Ergebnisse dieses Steps im Assembly Status JSON enthalten sein sollen
queuebatchWenn Sie die Queue auf „batch“ setzen, wird die Priorität der Jobs für diesen Step manuell herabgestuft. So vermeiden Sie, Priority Job Slots für Jobs zu belegen, die keine Wartezeit von null in der Queue benötigen.
force_acceptboolean(Standard:false)Erzwingt, dass ein Robot einen Dateityp akzeptiert, den er sonst ignorieren würde.
Standardmäßig ignorieren Robots Dateien, deren Typ sie nicht kennen. 🤖/video/encode ignoriert beispielsweise problemlos Eingabebilder.
Wenn Sie den Parameter
force_acceptauftruesetzen, können Sie erzwingen, dass Robots alle übergebenen Dateien akzeptieren. Dies führt in der Regel zu Fehlern und sollte nur zur Fehlersuche oder zur Behandlung von Grenzfällen verwendet werden.ignore_errorsboolean | Array<meta | execute>(Standard:[])Fehler in bestimmten Verarbeitungsphasen ignorieren.
Wenn Sie hierfür
["meta"]festlegen, ignoriert der Robot Fehler bei der Metadatenextraktion.Wenn Sie hierfür
["execute"]festlegen, ignoriert der Robot Fehler während der Hauptausführungsphase.Wenn Sie hierfür
truefestlegen, entspricht dies["meta", "execute"]und Fehler in beiden Phasen werden ignoriert.usestring | Array<string> | Array<object> | objectGibt an, welche Steps als Eingabe verwendet werden sollen.
- Sie können beliebige Namen für Steps wählen, außer
":original"(reserviert für von Transloadit verarbeitete Benutzer-Uploads) - Sie können mehrere Steps mithilfe von Arrays als Eingabe angeben:
{ "use": [ ":original", "encoded", "resized" ] } - Sie können Eingabe-Steps außerdem mit
askennzeichnen, um Robots die semantische Funktion zu übermitteln:{ "use": [ { "name": ":original", "as": "image" }, { "name": ":original", "as": "mask" } ] }
TippDas ist wahrscheinlich alles, was Sie über
usewissen müssen. Sie können sich jedoch auch die erweiterten Anwendungsfälle ansehen.- Sie können beliebige Namen für Steps wählen, außer
ffmpegobjectEin Parameterobjekt, das an FFmpeg übergeben wird. Wenn eine Voreinstellung verwendet wird, werden die angegebenen Optionen mit deren Optionen zusammengeführt. Verfügbare Optionen finden Sie in der FFmpeg-Dokumentation. Die hier angegebenen Optionen haben Vorrang vor den Optionen der Voreinstellung.
ffmpeg_stackv6 | v7 | v8 | string(Standard:"v7")Wählt die Version des FFmpeg-Stacks aus, die zum Encoding verwendet werden soll. Derzeit empfehlen wir „v7“. Die exakten Versionen „v6.0.0“, „v7.0.0“ und „v8.0.0“ sind Legacy-Werte, die aus Gründen der Abwärtskompatibilität weiterhin akzeptiert werden. Veraltete „v5.x“-Werte werden ebenfalls akzeptiert.
widthstring | number | nullBreite des neuen Videos in Pixeln.
Wenn der Wert nicht angegeben und der Parameter
presetverfügbar ist, wird die angegebene Breite aus der Voreinstellungpresetübernommen.heightstring | number | nullHöhe des neuen Videos in Pixeln.
Wenn der Wert nicht angegeben und der Parameter
presetverfügbar ist, wird die angegebene Höhe aus der Voreinstellungpresetübernommen.presetandroid | android-high | android-low | android_high | android_low | dash-1080p-video | dash-1080p_video |Konvertiert ein Video gemäß einer Voreinstellung.
Ab
ffmpeg_stack: "v7"können Sie hier den Wert'empty'verwenden, wenn Sie eigene FFmpeg-Parameter festlegen und dafür den Robot verwenden oder wenn Transloadit keine Encoding-Einstellungen festlegen soll.video_fade_secondsstring | number(Standard:1)Bei Verwendung fügt dieser Parameter zwischen den einzelnen Abschnitten Ihres zusammengefügten Videos einen Ein- und Ausblendeffekt für das Video hinzu. Für den Wert wird eine Gleitkommazahl verwendet. Wenn Sie zwischen den einzelnen Videoabschnitten einen Videoverzögerungseffekt von 500 Millisekunden wünschen, wählen Sie
0.5. Ganzzahlige Werte werden jedoch ebenfalls akzeptiert.Dieser Parameter fügt am Anfang oder Ende Ihres Videos keinen Ein- und Ausblendeffekt für das Video hinzu. Wenn Sie dies wünschen, erstellen Sie einen zusätzlichen 🤖/video/encode-Step und verwenden Sie unseren Parameter
ffmpegso, wie in dieser Demo (English) gezeigt.Bitte beachten Sie, dass dieser Parameter unabhängig vom Hinzufügen von Ein- und Ausblendeffekten für den Ton zwischen den Abschnitten ist.
audio_fade_secondsstring | number(Standard:1)Bei Verwendung fügt dieser Parameter zwischen den einzelnen Abschnitten Ihres zusammengefügten Videos einen Ein- und Ausblendeffekt für den Ton hinzu. Für den Wert wird eine Gleitkommazahl verwendet. Wenn Sie zwischen den einzelnen Videoabschnitten einen Tonverzögerungseffekt von 500 Millisekunden wünschen, wählen Sie
0.5. Ganzzahlige Werte werden jedoch ebenfalls akzeptiert.Dieser Parameter fügt am Anfang oder Ende Ihres Videos keinen Ein- und Ausblendeffekt für den Ton hinzu. Wenn Sie dies wünschen, erstellen Sie einen zusätzlichen 🤖/video/encode-Step und verwenden Sie unseren Parameter
ffmpegso, wie in dieser Demo (English) gezeigt.Bitte beachten Sie, dass dieser Parameter unabhängig vom Hinzufügen von Ein- und Ausblendeffekten für das Video zwischen den Abschnitten ist.
chapter_markersboolean(Standard:false)Wenn der Wert auf
truegesetzt ist, enthält das zusammengefügte Video Kapitelmarkierungen an den Positionen, an denen die Eingabevideos zusammengefügt werden. Jedes Kapitel erhält als Titel den Basisnamen der entsprechenden Eingabevideodatei.Dies erleichtert die Navigation in Videoplayern, die das Springen zwischen Kapiteln unterstützen.
sort_byauto | basename | import_order(Standard:"basename")Steuert die Reihenfolge gebündelter Eingaben, wenn für den Eingabetyp kein explizit angegebener nummerierter Alias verwendet wird. Nummerierte Aliasse enden mit einem numerischen Suffix wie
_1.Der Standardwert
"basename"behält das natürliche Legacy-Sortierverhalten nach Basisdateinamen bei.Legen Sie hierfür
"import_order"fest, um die Reihenfolge arraybasierter Import-Steps beizubehalten, wenn alle Eingabedateien vollständige Metadaten zur Importreihenfolge enthalten."auto"bevorzugt ebenfalls die Importreihenfolge und verwendet als Fallback die natürliche Sortierung nach Basisdateinamen.transitionnone | crossfade | fade_to_black(Standard:"none")Gibt den Übergangseffekt an, der zwischen zusammengefügten Videoclips angewendet werden soll.
"none"(Standard): Kein Übergangseffekt. Die Videos werden direkt aneinandergefügt."crossfade": Wendet eine Kreuzblende an, bei der das Ende eines Clips allmählich in den Anfang des nächsten Clips übergeht. Sowohl Video als auch Audio werden überblendet."fade_to_black": Wendet einen Übergang über Schwarz an, bei dem jeder Clip zunächst zu Schwarz ausblendet, bevor der nächste Clip aus Schwarz einblendet.
Bei Verwendung von
"crossfade"oder"fade_to_black"steuert der Parametertransition_duration, wie lange der Übergang dauert. Beachten Sie, dass Kreuzblenden die Gesamtdauer der Ausgabe verkürzen, da sich die Clips während des Übergangs überlappen.transition_durationstring | number(Standard:1)Die Dauer des Übergangseffekts in Sekunden. Gilt nur, wenn
transitionauf"crossfade"oder"fade_to_black"gesetzt ist.Beispielsweise erzeugt der Wert
1.0einen 1 Sekunde langen Übergang zwischen den Clips. Für eine Genauigkeit im Subsekundenbereich kann der Wert eine Gleitkommazahl sein, zum Beispiel0.5für 500 Millisekunden. Wenn Übergänge aktiviert sind, muss er größer als0sein.Bei Kreuzblenden bezeichnet dieser Wert die Überlappungsdauer, während der beide Clips sichtbar sind. Bei Übergängen vom Typ fade_to_black bezeichnet er die Gesamtdauer des Ausblendens und Einblendens, die jeweils zur Hälfte darauf entfallen. Der angewendete Übergang ist auf die halbe Dauer des jeweils kürzeren Clips eines Übergangspaars begrenzt.