@transloadit/zod 6.0.0 → 7.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/v3/builtinTemplates.d.ts +40 -0
- package/dist/v3/builtinTemplates.d.ts.map +1 -1
- package/dist/v3/builtinTemplates.js +29 -0
- package/dist/v3/englishInteger.d.ts +3 -0
- package/dist/v3/englishInteger.d.ts.map +1 -0
- package/dist/v3/englishInteger.js +12 -0
- package/dist/v3/lib/zodInputSemantics.d.ts +3 -1
- package/dist/v3/lib/zodInputSemantics.d.ts.map +1 -1
- package/dist/v3/lib/zodInputSemantics.js +17 -0
- package/dist/v3/responseErrors/DocumentConvertRobot.d.ts +17 -0
- package/dist/v3/responseErrors/DocumentConvertRobot.d.ts.map +1 -0
- package/dist/v3/responseErrors/DocumentConvertRobot.js +16 -0
- package/dist/v3/robots/_image-describe-output.d.ts +55 -0
- package/dist/v3/robots/_image-describe-output.d.ts.map +1 -0
- package/dist/v3/robots/_image-describe-output.js +15 -0
- package/dist/v3/robots/_image-facedetect-output.d.ts +30 -0
- package/dist/v3/robots/_image-facedetect-output.d.ts.map +1 -0
- package/dist/v3/robots/_image-facedetect-output.js +14 -0
- package/dist/v3/robots/_index.d.ts +582 -48
- package/dist/v3/robots/_index.d.ts.map +1 -1
- package/dist/v3/robots/_index.js +84 -80
- package/dist/v3/robots/_instructions-primitives.d.ts +82 -0
- package/dist/v3/robots/_instructions-primitives.d.ts.map +1 -1
- package/dist/v3/robots/_instructions-primitives.js +46 -2
- package/dist/v3/robots/_ocr-output.d.ts +75 -0
- package/dist/v3/robots/_ocr-output.d.ts.map +1 -0
- package/dist/v3/robots/_ocr-output.js +14 -0
- package/dist/v3/robots/ai-chat.d.ts +12 -12
- package/dist/v3/robots/audio-encode.d.ts.map +1 -1
- package/dist/v3/robots/audio-encode.js +8 -1
- package/dist/v3/robots/audio-split.d.ts.map +1 -1
- package/dist/v3/robots/audio-split.js +2 -0
- package/dist/v3/robots/digitalocean-store.d.ts +4 -4
- package/dist/v3/robots/digitalocean-store.js +1 -1
- package/dist/v3/robots/document-convert.d.ts +8 -6
- package/dist/v3/robots/document-convert.d.ts.map +1 -1
- package/dist/v3/robots/document-convert.js +24 -5
- package/dist/v3/robots/document-extract.d.ts +28 -16
- package/dist/v3/robots/document-extract.d.ts.map +1 -1
- package/dist/v3/robots/document-extract.js +51 -1
- package/dist/v3/robots/document-ocr.d.ts +8 -8
- package/dist/v3/robots/google-store.d.ts +32 -8
- package/dist/v3/robots/google-store.d.ts.map +1 -1
- package/dist/v3/robots/google-store.js +10 -2
- package/dist/v3/robots/html-convert.d.ts.map +1 -1
- package/dist/v3/robots/html-convert.js +1 -0
- package/dist/v3/robots/image-bgremove.d.ts +16 -16
- package/dist/v3/robots/image-describe.d.ts +17 -17
- package/dist/v3/robots/image-describe.d.ts.map +1 -1
- package/dist/v3/robots/image-describe.js +2 -1
- package/dist/v3/robots/image-facedetect.d.ts +9 -35
- package/dist/v3/robots/image-facedetect.d.ts.map +1 -1
- package/dist/v3/robots/image-facedetect.js +1 -11
- package/dist/v3/robots/image-generate.d.ts +20 -20
- package/dist/v3/robots/image-generate.js +1 -1
- package/dist/v3/robots/image-ocr.d.ts +8 -8
- package/dist/v3/robots/image-upscale.d.ts +17 -12
- package/dist/v3/robots/image-upscale.d.ts.map +1 -1
- package/dist/v3/robots/image-upscale.js +14 -2
- package/dist/v3/robots/mega-store.d.ts +4 -4
- package/dist/v3/robots/mega-store.js +1 -1
- package/dist/v3/robots/s3-store.d.ts +8 -8
- package/dist/v3/robots/s3-store.d.ts.map +1 -1
- package/dist/v3/robots/s3-store.js +14 -2
- package/dist/v3/robots/speech-transcribe.d.ts +26 -12
- package/dist/v3/robots/speech-transcribe.d.ts.map +1 -1
- package/dist/v3/robots/speech-transcribe.js +42 -2
- package/dist/v3/robots/text-speak.d.ts +8 -8
- package/dist/v3/robots/text-translate.d.ts +8 -8
- package/dist/v3/robots/video-adaptive.d.ts +16 -19
- package/dist/v3/robots/video-adaptive.d.ts.map +1 -1
- package/dist/v3/robots/video-adaptive.js +37 -3
- package/dist/v3/robots/video-concat.d.ts.map +1 -1
- package/dist/v3/robots/video-concat.js +7 -3
- package/dist/v3/robots/video-encode.d.ts.map +1 -1
- package/dist/v3/robots/video-encode.js +6 -0
- package/dist/v3/robots/video-generate.d.ts +20 -20
- package/dist/v3/robots/video-generate.js +1 -1
- package/dist/v3/robots/video-merge.d.ts.map +1 -1
- package/dist/v3/robots/video-merge.js +15 -1
- package/dist/v3/robots/video-split.d.ts +11 -0
- package/dist/v3/robots/video-split.d.ts.map +1 -1
- package/dist/v3/robots/video-split.js +4 -1
- package/dist/v3/robots/video-subtitle.d.ts +71 -28
- package/dist/v3/robots/video-subtitle.d.ts.map +1 -1
- package/dist/v3/robots/video-subtitle.js +63 -49
- package/dist/v3/robots/video-thumbs.d.ts +36 -36
- package/dist/v3/robots/video-thumbs.d.ts.map +1 -1
- package/dist/v3/robots/video-thumbs.js +8 -3
- package/dist/v3/robots/vimeo-import.d.ts.map +1 -1
- package/dist/v3/robots/vimeo-import.js +1 -1
- package/dist/v3/robots/youtube-store.d.ts +37 -20
- package/dist/v3/robots/youtube-store.d.ts.map +1 -1
- package/dist/v3/robots/youtube-store.js +17 -29
- package/dist/v3/template.d.ts.map +1 -1
- package/dist/v3/template.js +5 -2
- package/dist/v3/youtubeCategories.d.ts +20 -0
- package/dist/v3/youtubeCategories.d.ts.map +1 -0
- package/dist/v3/youtubeCategories.js +20 -0
- package/dist/v4/assemblyStatus.d.ts +2 -2
- package/dist/v4/builtinTemplates.d.ts +22 -0
- package/dist/v4/builtinTemplates.d.ts.map +1 -1
- package/dist/v4/builtinTemplates.js +29 -0
- package/dist/v4/englishInteger.d.ts +3 -0
- package/dist/v4/englishInteger.d.ts.map +1 -0
- package/dist/v4/englishInteger.js +12 -0
- package/dist/v4/lib/zodInputSemantics.d.ts +3 -1
- package/dist/v4/lib/zodInputSemantics.d.ts.map +1 -1
- package/dist/v4/lib/zodInputSemantics.js +6 -0
- package/dist/v4/responseErrors/DocumentConvertRobot.d.ts +17 -0
- package/dist/v4/responseErrors/DocumentConvertRobot.d.ts.map +1 -0
- package/dist/v4/responseErrors/DocumentConvertRobot.js +16 -0
- package/dist/v4/robots/_image-describe-output.d.ts +23 -0
- package/dist/v4/robots/_image-describe-output.d.ts.map +1 -0
- package/dist/v4/robots/_image-describe-output.js +15 -0
- package/dist/v4/robots/_image-facedetect-output.d.ts +14 -0
- package/dist/v4/robots/_image-facedetect-output.d.ts.map +1 -0
- package/dist/v4/robots/_image-facedetect-output.js +15 -0
- package/dist/v4/robots/_index.d.ts +582 -48
- package/dist/v4/robots/_index.d.ts.map +1 -1
- package/dist/v4/robots/_index.js +84 -80
- package/dist/v4/robots/_instructions-primitives.d.ts +16 -0
- package/dist/v4/robots/_instructions-primitives.d.ts.map +1 -1
- package/dist/v4/robots/_instructions-primitives.js +50 -2
- package/dist/v4/robots/_ocr-output.d.ts +29 -0
- package/dist/v4/robots/_ocr-output.d.ts.map +1 -0
- package/dist/v4/robots/_ocr-output.js +14 -0
- package/dist/v4/robots/audio-encode.d.ts.map +1 -1
- package/dist/v4/robots/audio-encode.js +8 -1
- package/dist/v4/robots/audio-split.d.ts.map +1 -1
- package/dist/v4/robots/audio-split.js +2 -0
- package/dist/v4/robots/digitalocean-store.d.ts +8 -8
- package/dist/v4/robots/digitalocean-store.js +1 -1
- package/dist/v4/robots/document-convert.d.ts +22 -8
- package/dist/v4/robots/document-convert.d.ts.map +1 -1
- package/dist/v4/robots/document-convert.js +24 -5
- package/dist/v4/robots/document-extract.d.ts +12 -0
- package/dist/v4/robots/document-extract.d.ts.map +1 -1
- package/dist/v4/robots/document-extract.js +51 -1
- package/dist/v4/robots/google-store.d.ts +16 -4
- package/dist/v4/robots/google-store.d.ts.map +1 -1
- package/dist/v4/robots/google-store.js +10 -2
- package/dist/v4/robots/html-convert.d.ts.map +1 -1
- package/dist/v4/robots/html-convert.js +1 -0
- package/dist/v4/robots/image-describe.d.ts +1 -5
- package/dist/v4/robots/image-describe.d.ts.map +1 -1
- package/dist/v4/robots/image-describe.js +2 -1
- package/dist/v4/robots/image-facedetect.d.ts +1 -11
- package/dist/v4/robots/image-facedetect.d.ts.map +1 -1
- package/dist/v4/robots/image-facedetect.js +1 -12
- package/dist/v4/robots/image-generate.d.ts +0 -4
- package/dist/v4/robots/image-generate.d.ts.map +1 -1
- package/dist/v4/robots/image-generate.js +1 -1
- package/dist/v4/robots/image-upscale.d.ts +5 -0
- package/dist/v4/robots/image-upscale.d.ts.map +1 -1
- package/dist/v4/robots/image-upscale.js +14 -2
- package/dist/v4/robots/mega-store.d.ts +8 -8
- package/dist/v4/robots/mega-store.js +1 -1
- package/dist/v4/robots/s3-store.d.ts +20 -0
- package/dist/v4/robots/s3-store.d.ts.map +1 -1
- package/dist/v4/robots/s3-store.js +14 -2
- package/dist/v4/robots/speech-transcribe.d.ts +6 -0
- package/dist/v4/robots/speech-transcribe.d.ts.map +1 -1
- package/dist/v4/robots/speech-transcribe.js +42 -2
- package/dist/v4/robots/video-adaptive.d.ts +16 -16
- package/dist/v4/robots/video-adaptive.d.ts.map +1 -1
- package/dist/v4/robots/video-adaptive.js +38 -5
- package/dist/v4/robots/video-concat.d.ts.map +1 -1
- package/dist/v4/robots/video-concat.js +7 -3
- package/dist/v4/robots/video-encode.d.ts.map +1 -1
- package/dist/v4/robots/video-encode.js +6 -0
- package/dist/v4/robots/video-generate.d.ts +0 -4
- package/dist/v4/robots/video-generate.d.ts.map +1 -1
- package/dist/v4/robots/video-generate.js +1 -1
- package/dist/v4/robots/video-merge.d.ts.map +1 -1
- package/dist/v4/robots/video-merge.js +15 -1
- package/dist/v4/robots/video-split.d.ts +5 -0
- package/dist/v4/robots/video-split.d.ts.map +1 -1
- package/dist/v4/robots/video-split.js +4 -1
- package/dist/v4/robots/video-subtitle.d.ts +43 -16
- package/dist/v4/robots/video-subtitle.d.ts.map +1 -1
- package/dist/v4/robots/video-subtitle.js +65 -55
- package/dist/v4/robots/video-thumbs.d.ts +12 -12
- package/dist/v4/robots/video-thumbs.d.ts.map +1 -1
- package/dist/v4/robots/video-thumbs.js +10 -5
- package/dist/v4/robots/vimeo-import.d.ts.map +1 -1
- package/dist/v4/robots/vimeo-import.js +1 -1
- package/dist/v4/robots/youtube-store.d.ts +25 -76
- package/dist/v4/robots/youtube-store.d.ts.map +1 -1
- package/dist/v4/robots/youtube-store.js +18 -29
- package/dist/v4/template.d.ts.map +1 -1
- package/dist/v4/template.js +5 -2
- package/dist/v4/youtubeCategories.d.ts +20 -0
- package/dist/v4/youtubeCategories.d.ts.map +1 -0
- package/dist/v4/youtubeCategories.js +20 -0
- package/package.json +2 -2
|
@@ -54,6 +54,16 @@ This <dfn>Robot</dfn> accepts all types of video files and audio files. Do not f
|
|
|
54
54
|
|
|
55
55
|
This <dfn>Robot</dfn> is normally used in combination with [🤖/video/encode](/docs/robots/video-encode/). We have implemented video and audio encoding presets specifically for MPEG-Dash and HTTP Live Streaming support. These presets are prefixed with \`"dash/"\` and \`"hls/"\`. [View a HTTP Live Streaming demo here](/demos/video-encoding/implement-http-live-streaming/).
|
|
56
56
|
|
|
57
|
+
### CMAF aspect ratios
|
|
58
|
+
|
|
59
|
+
CMAF aligns near-equal rendition aspect ratios, within 1% of the largest rendition, without re-encoding or changing pixel dimensions. This lets presets such as \`"hls/480p"\` and \`"hls/720p"\` support bitrate switching together.
|
|
60
|
+
|
|
61
|
+
Renditions with substantially different ratios, such as 4:3 and 16:9, keep their geometry in separate video groups. The Assembly warns because DASH players cannot switch bitrate between these groups. HLS still lists every variant. Use matching rendition ratios when custom FFmpeg options change video geometry or layout.
|
|
62
|
+
|
|
63
|
+
### Segment alignment
|
|
64
|
+
|
|
65
|
+
HLS and CMAF video segments split at existing keyframes, so their actual duration can exceed \`segment_duration\`. To align renditions to four-second segments, set \`"ffmpeg": { "force_key_frames": "expr:gte(t,n_forced*4)" }\` in each preceding [🤖/video/encode](/docs/robots/video-encode/) Step. Replace \`4\` with your chosen segment duration and use the same value for every rendition. Set keyframe intervals during encoding; packaging cannot add keyframes to copied streams.
|
|
66
|
+
|
|
57
67
|
### Required CORS settings for MPEG-Dash and HTTP Live Streaming
|
|
58
68
|
|
|
59
69
|
Playing back MPEG-Dash Manifest or HLS playlist files requires a proper CORS setup on the server-side. The file-serving server should be configured to add the following header fields to responses:
|
|
@@ -89,6 +99,26 @@ To set up CORS for your S3 bucket:
|
|
|
89
99
|
The <dfn>Robot</dfn> gives its result files (segments, initialization segments, MPD manifest files and M3U8 playlist files) the right metadata property \`relative_path\`, so that you can store them easily using one of our storage <dfn>Robots</dfn>.
|
|
90
100
|
|
|
91
101
|
In the \`path\` parameter of the storage <dfn>Robot</dfn> of your choice, use the <dfn>Assembly Variable</dfn> \`\${file.meta.relative_path}\` to store files in the proper paths to make the playlist files work.
|
|
102
|
+
`),
|
|
103
|
+
ffmpeg: robotFFmpegVideo.shape.ffmpeg.describe(`
|
|
104
|
+
Custom FFmpeg options are supported for the \`"hls"\` and \`"cmaf"\` techniques. Non-empty custom options are rejected for \`"dash"\`, the default technique.
|
|
105
|
+
|
|
106
|
+
These options apply to the packaging command, which copies the input streams by default. Set encoding options, such as keyframe intervals, in the preceding [🤖/video/encode](/docs/robots/video-encode/) Step.
|
|
107
|
+
`),
|
|
108
|
+
ffmpeg_stack: robotFFmpegVideo.shape.ffmpeg_stack
|
|
109
|
+
.removeDefault()
|
|
110
|
+
.default('v7.0.0')
|
|
111
|
+
.describe(`
|
|
112
|
+
Selects the FFmpeg stack for packaging. Defaults to \`"v7.0.0"\`. This Robot always uses at least \`"v7.0.0"\`; older stack selections are upgraded automatically.
|
|
113
|
+
`),
|
|
114
|
+
preset: robotFFmpegVideo.shape.preset.describe(`
|
|
115
|
+
This parameter has no effect on this Robot. Set the encoding preset in the preceding [🤖/video/encode](/docs/robots/video-encode/) Step.
|
|
116
|
+
`),
|
|
117
|
+
width: robotFFmpegVideo.shape.width.describe(`
|
|
118
|
+
This parameter has no effect on this Robot. Set the rendition width in the preceding [🤖/video/encode](/docs/robots/video-encode/) Step.
|
|
119
|
+
`),
|
|
120
|
+
height: robotFFmpegVideo.shape.height.describe(`
|
|
121
|
+
This parameter has no effect on this Robot. Set the rendition height in the preceding [🤖/video/encode](/docs/robots/video-encode/) Step.
|
|
92
122
|
`),
|
|
93
123
|
technique: z
|
|
94
124
|
.enum(['dash', 'hls', 'cmaf'])
|
|
@@ -112,9 +142,9 @@ Only used when \`technique\` is \`"cmaf"\`. Defines the filename for the generat
|
|
|
112
142
|
segment_duration: z
|
|
113
143
|
.number()
|
|
114
144
|
.int()
|
|
115
|
-
.
|
|
145
|
+
.optional()
|
|
116
146
|
.describe(`
|
|
117
|
-
The duration for each segment in seconds.
|
|
147
|
+
The duration for each segment in seconds. When omitted, defaults to 4 seconds for MPEG-Dash and CMAF, and 10 seconds for HLS.
|
|
118
148
|
`),
|
|
119
149
|
closed_captions: z
|
|
120
150
|
.boolean()
|
|
@@ -130,7 +160,11 @@ When set to \`true\` and using the \`"hls"\` technique, audio-only input files a
|
|
|
130
160
|
|
|
131
161
|
When enabled, video inputs only include their video stream in the output segments (any muxed audio is excluded). Provide audio separately as audio-only input files.
|
|
132
162
|
|
|
133
|
-
|
|
163
|
+
Each rendition’s \`LANGUAGE\` comes from the first audio stream’s \`language\` tag in its audio-only input file, or \`"und"\` when the tag is missing. Set the tag on [🤖/audio/encode](/docs/robots/audio-encode/) with \`"ffmpeg": {"metadata:s:a:0": "language=deu"}\`, for example.
|
|
164
|
+
|
|
165
|
+
The first audio-only input in \`use.steps\` order becomes \`DEFAULT=YES\`; the other renditions have \`DEFAULT=NO\`. All audio renditions have \`AUTOSELECT=YES\`. Their \`NAME\` uses the audio stream’s \`title\` tag when present, otherwise its language’s English name (for example, \`"eng"\` becomes “English” and \`"deu"\` becomes “German”). Untagged audio is named “Unknown”; unrecognized language codes are used as the name. Duplicate names receive a numeric suffix.
|
|
166
|
+
|
|
167
|
+
This option only enables alternate audio renditions with the \`"hls"\` technique and does not change packaging with \`"dash"\` or \`"cmaf"\`. CMAF puts all audio in one adaptation set labeled with the first audio language. Setting \`audio_group: true\` with CMAF, or providing CMAF inputs with more than one known audio language (including tracks muxed in a single video), adds an Assembly warning; packaging continues with the existing CMAF output. For multi-language audio, use \`technique: "hls"\` with \`audio_group: true\`.
|
|
134
168
|
`),
|
|
135
169
|
})
|
|
136
170
|
.strict();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"video-concat.d.ts","sourceRoot":"","sources":["../../../src/v3/robots/video-concat.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,cAAc,EACd,uBAAuB,EACxB,MAAM,+BAA+B,CAAA;AAEtC,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAA;AAW1B,eAAO,MAAM,IAAI,EAAE,cAsClB,CAAA;AAED,eAAO,MAAM,kCAAkC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"video-concat.d.ts","sourceRoot":"","sources":["../../../src/v3/robots/video-concat.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,cAAc,EACd,uBAAuB,EACxB,MAAM,+BAA+B,CAAA;AAEtC,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAA;AAW1B,eAAO,MAAM,IAAI,EAAE,cAsClB,CAAA;AAED,eAAO,MAAM,kCAAkC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkEpC,CAAA;AAEX,eAAO,MAAM,eAAe,EAAE,eAAe,CAAC,OAAO,kCAAkC,CAAC,KAAK,CACtC,CAAA;AAEvD,eAAO,MACa,kDAAkD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IACpD,gDAAgD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAChC,gEAAgE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAC/E,CAAA;AAEnB,KAAK,YAAY,GAAG,uBAAuB,CAAC,OAAO,eAAe,CAAC,CAAA;AAEnE,MAAM,MAAM,4BAA4B,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAA;AACjE,MAAM,MAAM,4CAA4C,GAAG,YAAY,CAAC,cAAc,CAAC,CAAA;AACvF,MAAM,MAAM,0CAA0C,GAAG,YAAY,CAAC,qBAAqB,CAAC,CAAA;AAC5F,MAAM,MAAM,+CAA+C,GAAG,YAAY,CAAC,qBAAqB,CAAC,CAAA;AACjG,MAAM,MAAM,0DAA0D,GACpE,YAAY,CAAC,4BAA4B,CAAC,CAAA;AAC5C,MAAM,MAAM,+DAA+D,GACzE,YAAY,CAAC,2BAA2B,CAAC,CAAA"}
|
|
@@ -72,9 +72,11 @@ Please note this parameter is independent of adding video fades between sections
|
|
|
72
72
|
.boolean()
|
|
73
73
|
.default(false)
|
|
74
74
|
.describe(`
|
|
75
|
-
When set to \`true\`, the concatenated video will contain chapter
|
|
75
|
+
When set to \`true\`, the concatenated video will contain a chapter marker where each input video starts in the output. Each chapter will be titled with the basename of the corresponding input video file. When a \`transition\` is enabled, the incoming clip’s chapter starts at the beginning of its transition, accounting for the overlap between clips.
|
|
76
76
|
|
|
77
77
|
This is useful for navigation in video players that support chapter-based seeking.
|
|
78
|
+
|
|
79
|
+
In MP4 output, chapter markers add a \`bin_data\` track containing the chapter information. This is normal and does not affect video or audio playback.
|
|
78
80
|
`),
|
|
79
81
|
sort_by: inputSortBySchema,
|
|
80
82
|
transition: z
|
|
@@ -87,7 +89,7 @@ Specifies the transition effect to apply between concatenated video clips.
|
|
|
87
89
|
- \`"crossfade"\`: Applies a crossfade transition where the end of one clip gradually blends into the beginning of the next clip. Both video and audio are crossfaded.
|
|
88
90
|
- \`"fade_to_black"\`: Applies a fade-to-black transition where each clip fades out to black before the next clip fades in from black.
|
|
89
91
|
|
|
90
|
-
When using \`"crossfade"\` or \`"fade_to_black"\`, the \`transition_duration\` parameter controls how long the transition lasts.
|
|
92
|
+
When using \`"crossfade"\` or \`"fade_to_black"\`, the \`transition_duration\` parameter controls how long the transition lasts. Both effects overlap adjacent clips and reduce the total output duration by the applied transition duration at each join. The applied duration is capped at half of the shorter clip in each pair.
|
|
91
93
|
`),
|
|
92
94
|
transition_duration: z
|
|
93
95
|
.number()
|
|
@@ -97,7 +99,9 @@ The duration of the transition effect in seconds. Only applies when \`transition
|
|
|
97
99
|
|
|
98
100
|
For example, a value of \`1.0\` creates a 1-second transition between clips. The value can be a float for sub-second precision (e.g., \`0.5\` for 500 milliseconds) and must be greater than \`0\` whenever transitions are enabled.
|
|
99
101
|
|
|
100
|
-
For crossfade transitions, this is the overlap duration where both clips are visible. For fade_to_black
|
|
102
|
+
For crossfade transitions, this is the overlap duration where both clips are visible. For \`"fade_to_black"\`, the video fades out over approximately the first 20% of the transition and fades in over the remaining 80% (about 0.2 seconds out and 0.8 seconds in for a 1-second transition). Audio is crossfaded throughout the transition for both effects.
|
|
103
|
+
|
|
104
|
+
The applied transition is capped at half of the shorter clip in each transition pair. Both effects shorten the output by this applied duration at each join.
|
|
101
105
|
`),
|
|
102
106
|
})
|
|
103
107
|
.strict();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"video-encode.d.ts","sourceRoot":"","sources":["../../../src/v3/robots/video-encode.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,+BAA+B,EAC/B,cAAc,EACd,uBAAuB,EACxB,MAAM,+BAA+B,CAAA;AAEtC,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAA;AAY1B,eAAO,MAAM,IAAI,EAAE,cAclB,CAAA;AAED,eAAO,MAAM,kCAAkC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"video-encode.d.ts","sourceRoot":"","sources":["../../../src/v3/robots/video-encode.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,+BAA+B,EAC/B,cAAc,EACd,uBAAuB,EACxB,MAAM,+BAA+B,CAAA;AAEtC,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAA;AAY1B,eAAO,MAAM,IAAI,EAAE,cAclB,CAAA;AAED,eAAO,MAAM,kCAAkC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiEpC,CAAA;AAEX,QAAA,MAAM,YAAY;;;;CAIjB,CAAA;AAED,eAAO,MAAM,eAAe,EAAE,+BAA+B,CAC3D,OAAO,kCAAkC,CAAC,KAAK,EAC/C,OAAO,YAAY,CACkE,CAAA;AAEvF,eAAO,MACa,kDAAkD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IACpD,gDAAgD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAChC,gEAAgE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAC/E,CAAA;AAEnB,KAAK,YAAY,GAAG,uBAAuB,CAAC,OAAO,eAAe,CAAC,CAAA;AAEnE,MAAM,MAAM,4BAA4B,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAA;AACjE,MAAM,MAAM,4CAA4C,GAAG,YAAY,CAAC,cAAc,CAAC,CAAA;AACvF,MAAM,MAAM,0CAA0C,GAAG,YAAY,CAAC,qBAAqB,CAAC,CAAA;AAC5F,MAAM,MAAM,+CAA+C,GAAG,YAAY,CAAC,qBAAqB,CAAC,CAAA;AACjG,MAAM,MAAM,0DAA0D,GACpE,YAAY,CAAC,4BAA4B,CAAC,CAAA;AAC5C,MAAM,MAAM,+DAA+D,GACzE,YAAY,CAAC,2BAA2B,CAAC,CAAA"}
|
|
@@ -22,6 +22,12 @@ export const robotVideoEncodeInstructionsSchema = robotBase
|
|
|
22
22
|
robot: z.literal('/video/encode').describe(`
|
|
23
23
|
The /video/encode Robot is a versatile tool for video processing that handles transcoding, resizing, and watermarking. It supports various formats including modern standards like HEVC (H.265), and provides features such as presets for common devices, custom FFmpeg parameters for powerusers, watermark positioning, and more.
|
|
24
24
|
|
|
25
|
+
## iPhone spatial audio
|
|
26
|
+
|
|
27
|
+
Videos recorded with iPhone spatial audio can contain a stereo AAC track alongside an Apple Positional Audio Codec (APAC) track. When unsupported audio is present, this <dfn>Robot</dfn> keeps one supported audio track by default. Spatial audio is not preserved or converted.
|
|
28
|
+
|
|
29
|
+
Files containing only unsupported audio still fail. Individual audio track selections and stream-copy requests keep the tracks you select; the output format must support copied tracks.
|
|
30
|
+
|
|
25
31
|
## Adding text overlays with FFmpeg
|
|
26
32
|
|
|
27
33
|
You can add text overlays to videos using FFmpeg's \`drawtext\` filter through this <dfn>Robot</dfn>'s \`ffmpeg\` parameter. Here are two examples — one with the default font and one with a custom font family name:
|
|
@@ -62,7 +62,7 @@ export declare const robotVideoGenerateInstructionsSchema: z.ZodObject<{
|
|
|
62
62
|
robot: z.ZodLiteral<"/video/generate">;
|
|
63
63
|
model: z.ZodOptional<z.ZodString>;
|
|
64
64
|
prompt: z.ZodString;
|
|
65
|
-
format: z.ZodOptional<z.ZodEnum<["mp4"
|
|
65
|
+
format: z.ZodOptional<z.ZodEnum<["mp4"]>>;
|
|
66
66
|
seed: z.ZodOptional<z.ZodNumber>;
|
|
67
67
|
aspect_ratio: z.ZodOptional<z.ZodString>;
|
|
68
68
|
height: z.ZodOptional<z.ZodNumber>;
|
|
@@ -83,6 +83,7 @@ export declare const robotVideoGenerateInstructionsSchema: z.ZodObject<{
|
|
|
83
83
|
ignore_errors: string[];
|
|
84
84
|
prompt: string;
|
|
85
85
|
duration?: number | undefined;
|
|
86
|
+
model?: string | undefined;
|
|
86
87
|
use?: string | string[] | {
|
|
87
88
|
name: string;
|
|
88
89
|
fields?: string | undefined;
|
|
@@ -102,8 +103,7 @@ export declare const robotVideoGenerateInstructionsSchema: z.ZodObject<{
|
|
|
102
103
|
queue?: "batch" | undefined;
|
|
103
104
|
width?: number | undefined;
|
|
104
105
|
height?: number | undefined;
|
|
105
|
-
|
|
106
|
-
format?: "gif" | "mp4" | undefined;
|
|
106
|
+
format?: "mp4" | undefined;
|
|
107
107
|
style?: string | undefined;
|
|
108
108
|
seed?: number | undefined;
|
|
109
109
|
aspect_ratio?: string | undefined;
|
|
@@ -118,6 +118,7 @@ export declare const robotVideoGenerateInstructionsSchema: z.ZodObject<{
|
|
|
118
118
|
prompt: string;
|
|
119
119
|
duration?: number | undefined;
|
|
120
120
|
result?: boolean | undefined;
|
|
121
|
+
model?: string | undefined;
|
|
121
122
|
use?: string | string[] | {
|
|
122
123
|
name: string;
|
|
123
124
|
fields?: string | undefined;
|
|
@@ -140,8 +141,7 @@ export declare const robotVideoGenerateInstructionsSchema: z.ZodObject<{
|
|
|
140
141
|
ignore_errors?: boolean | ("meta" | "execute")[] | undefined;
|
|
141
142
|
width?: number | undefined;
|
|
142
143
|
height?: number | undefined;
|
|
143
|
-
|
|
144
|
-
format?: "gif" | "mp4" | undefined;
|
|
144
|
+
format?: "mp4" | undefined;
|
|
145
145
|
style?: string | undefined;
|
|
146
146
|
seed?: number | undefined;
|
|
147
147
|
aspect_ratio?: string | undefined;
|
|
@@ -210,7 +210,7 @@ export declare const robotVideoGenerateInstructionsWithHiddenFieldsSchema: z.Zod
|
|
|
210
210
|
robot: z.ZodLiteral<"/video/generate">;
|
|
211
211
|
model: z.ZodOptional<z.ZodString>;
|
|
212
212
|
prompt: z.ZodString;
|
|
213
|
-
format: z.ZodOptional<z.ZodEnum<["mp4"
|
|
213
|
+
format: z.ZodOptional<z.ZodEnum<["mp4"]>>;
|
|
214
214
|
seed: z.ZodOptional<z.ZodNumber>;
|
|
215
215
|
aspect_ratio: z.ZodOptional<z.ZodString>;
|
|
216
216
|
height: z.ZodOptional<z.ZodNumber>;
|
|
@@ -227,14 +227,15 @@ export declare const robotVideoGenerateInstructionsWithHiddenFieldsSchema: z.Zod
|
|
|
227
227
|
provider: z.ZodDefault<z.ZodString>;
|
|
228
228
|
result: z.ZodOptional<z.ZodUnion<[z.ZodLiteral<"debug">, z.ZodDefault<z.ZodBoolean>]>>;
|
|
229
229
|
}, "strict", z.ZodTypeAny, {
|
|
230
|
+
provider: string;
|
|
230
231
|
robot: "/video/generate";
|
|
231
232
|
user_meta: Record<string, unknown>;
|
|
232
233
|
force_accept: boolean;
|
|
233
234
|
ignore_errors: string[];
|
|
234
|
-
provider: string;
|
|
235
235
|
prompt: string;
|
|
236
236
|
duration?: number | undefined;
|
|
237
237
|
result?: boolean | "debug" | undefined;
|
|
238
|
+
model?: string | undefined;
|
|
238
239
|
use?: string | string[] | {
|
|
239
240
|
name: string;
|
|
240
241
|
fields?: string | undefined;
|
|
@@ -254,8 +255,7 @@ export declare const robotVideoGenerateInstructionsWithHiddenFieldsSchema: z.Zod
|
|
|
254
255
|
queue?: "batch" | undefined;
|
|
255
256
|
width?: number | undefined;
|
|
256
257
|
height?: number | undefined;
|
|
257
|
-
|
|
258
|
-
format?: "gif" | "mp4" | undefined;
|
|
258
|
+
format?: "mp4" | undefined;
|
|
259
259
|
style?: string | undefined;
|
|
260
260
|
seed?: number | undefined;
|
|
261
261
|
aspect_ratio?: string | undefined;
|
|
@@ -270,6 +270,8 @@ export declare const robotVideoGenerateInstructionsWithHiddenFieldsSchema: z.Zod
|
|
|
270
270
|
prompt: string;
|
|
271
271
|
duration?: number | undefined;
|
|
272
272
|
result?: boolean | "debug" | undefined;
|
|
273
|
+
provider?: string | undefined;
|
|
274
|
+
model?: string | undefined;
|
|
273
275
|
use?: string | string[] | {
|
|
274
276
|
name: string;
|
|
275
277
|
fields?: string | undefined;
|
|
@@ -292,9 +294,7 @@ export declare const robotVideoGenerateInstructionsWithHiddenFieldsSchema: z.Zod
|
|
|
292
294
|
ignore_errors?: boolean | ("meta" | "execute")[] | undefined;
|
|
293
295
|
width?: number | undefined;
|
|
294
296
|
height?: number | undefined;
|
|
295
|
-
|
|
296
|
-
format?: "gif" | "mp4" | undefined;
|
|
297
|
-
provider?: string | undefined;
|
|
297
|
+
format?: "mp4" | undefined;
|
|
298
298
|
style?: string | undefined;
|
|
299
299
|
seed?: number | undefined;
|
|
300
300
|
aspect_ratio?: string | undefined;
|
|
@@ -366,7 +366,7 @@ export declare const interpolatableRobotVideoGenerateInstructionsSchema: z.ZodOb
|
|
|
366
366
|
robot: z.ZodLiteral<"/video/generate">;
|
|
367
367
|
model: z.ZodOptional<z.ZodString>;
|
|
368
368
|
prompt: z.ZodString;
|
|
369
|
-
format: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodEnum<["mp4"
|
|
369
|
+
format: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodEnum<["mp4"]>]>>;
|
|
370
370
|
seed: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodNumber]>>;
|
|
371
371
|
aspect_ratio: z.ZodOptional<z.ZodString>;
|
|
372
372
|
height: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodNumber]>>;
|
|
@@ -387,6 +387,7 @@ export declare const interpolatableRobotVideoGenerateInstructionsSchema: z.ZodOb
|
|
|
387
387
|
ignore_errors: string | string[];
|
|
388
388
|
prompt: string;
|
|
389
389
|
duration?: string | number | undefined;
|
|
390
|
+
model?: string | undefined;
|
|
390
391
|
use?: string | string[] | {
|
|
391
392
|
name: string;
|
|
392
393
|
fields?: string | undefined;
|
|
@@ -406,7 +407,6 @@ export declare const interpolatableRobotVideoGenerateInstructionsSchema: z.ZodOb
|
|
|
406
407
|
queue?: string | undefined;
|
|
407
408
|
width?: string | number | undefined;
|
|
408
409
|
height?: string | number | undefined;
|
|
409
|
-
model?: string | undefined;
|
|
410
410
|
format?: string | undefined;
|
|
411
411
|
style?: string | undefined;
|
|
412
412
|
seed?: string | number | undefined;
|
|
@@ -422,6 +422,7 @@ export declare const interpolatableRobotVideoGenerateInstructionsSchema: z.ZodOb
|
|
|
422
422
|
prompt: string;
|
|
423
423
|
duration?: string | number | undefined;
|
|
424
424
|
result?: string | boolean | undefined;
|
|
425
|
+
model?: string | undefined;
|
|
425
426
|
use?: string | string[] | {
|
|
426
427
|
name: string;
|
|
427
428
|
fields?: string | undefined;
|
|
@@ -444,7 +445,6 @@ export declare const interpolatableRobotVideoGenerateInstructionsSchema: z.ZodOb
|
|
|
444
445
|
ignore_errors?: string | boolean | ("meta" | "execute")[] | undefined;
|
|
445
446
|
width?: string | number | undefined;
|
|
446
447
|
height?: string | number | undefined;
|
|
447
|
-
model?: string | undefined;
|
|
448
448
|
format?: string | undefined;
|
|
449
449
|
style?: string | undefined;
|
|
450
450
|
seed?: string | number | undefined;
|
|
@@ -516,7 +516,7 @@ export declare const interpolatableRobotVideoGenerateInstructionsWithHiddenField
|
|
|
516
516
|
robot: z.ZodLiteral<"/video/generate">;
|
|
517
517
|
model: z.ZodOptional<z.ZodString>;
|
|
518
518
|
prompt: z.ZodString;
|
|
519
|
-
format: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodEnum<["mp4"
|
|
519
|
+
format: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodEnum<["mp4"]>]>>;
|
|
520
520
|
seed: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodNumber]>>;
|
|
521
521
|
aspect_ratio: z.ZodOptional<z.ZodString>;
|
|
522
522
|
height: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodNumber]>>;
|
|
@@ -532,14 +532,15 @@ export declare const interpolatableRobotVideoGenerateInstructionsWithHiddenField
|
|
|
532
532
|
provider: z.ZodDefault<z.ZodString>;
|
|
533
533
|
result: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodUnion<[z.ZodString, z.ZodLiteral<"debug">]>, z.ZodDefault<z.ZodUnion<[z.ZodString, z.ZodBoolean]>>]>>;
|
|
534
534
|
}, "strict", z.ZodTypeAny, {
|
|
535
|
+
provider: string;
|
|
535
536
|
robot: "/video/generate";
|
|
536
537
|
user_meta: Record<string, unknown>;
|
|
537
538
|
force_accept: string | boolean;
|
|
538
539
|
ignore_errors: string | string[];
|
|
539
|
-
provider: string;
|
|
540
540
|
prompt: string;
|
|
541
541
|
duration?: string | number | undefined;
|
|
542
542
|
result?: string | boolean | undefined;
|
|
543
|
+
model?: string | undefined;
|
|
543
544
|
use?: string | string[] | {
|
|
544
545
|
name: string;
|
|
545
546
|
fields?: string | undefined;
|
|
@@ -559,7 +560,6 @@ export declare const interpolatableRobotVideoGenerateInstructionsWithHiddenField
|
|
|
559
560
|
queue?: string | undefined;
|
|
560
561
|
width?: string | number | undefined;
|
|
561
562
|
height?: string | number | undefined;
|
|
562
|
-
model?: string | undefined;
|
|
563
563
|
format?: string | undefined;
|
|
564
564
|
style?: string | undefined;
|
|
565
565
|
seed?: string | number | undefined;
|
|
@@ -575,6 +575,8 @@ export declare const interpolatableRobotVideoGenerateInstructionsWithHiddenField
|
|
|
575
575
|
prompt: string;
|
|
576
576
|
duration?: string | number | undefined;
|
|
577
577
|
result?: string | boolean | undefined;
|
|
578
|
+
provider?: string | undefined;
|
|
579
|
+
model?: string | undefined;
|
|
578
580
|
use?: string | string[] | {
|
|
579
581
|
name: string;
|
|
580
582
|
fields?: string | undefined;
|
|
@@ -597,9 +599,7 @@ export declare const interpolatableRobotVideoGenerateInstructionsWithHiddenField
|
|
|
597
599
|
ignore_errors?: string | boolean | ("meta" | "execute")[] | undefined;
|
|
598
600
|
width?: string | number | undefined;
|
|
599
601
|
height?: string | number | undefined;
|
|
600
|
-
model?: string | undefined;
|
|
601
602
|
format?: string | undefined;
|
|
602
|
-
provider?: string | undefined;
|
|
603
603
|
style?: string | undefined;
|
|
604
604
|
seed?: string | number | undefined;
|
|
605
605
|
aspect_ratio?: string | undefined;
|
|
@@ -35,7 +35,7 @@ export const robotVideoGenerateInstructionsSchema = robotBase
|
|
|
35
35
|
.optional()
|
|
36
36
|
.describe(`The AI model to use for video generation. Defaults to ${videoGenerateDefaultModelIdentifier}.`),
|
|
37
37
|
prompt: z.string().describe('The prompt describing the desired video content.'),
|
|
38
|
-
format: z.enum(['mp4'
|
|
38
|
+
format: z.enum(['mp4']).optional().describe('Format of the generated video.'),
|
|
39
39
|
seed: z.number().optional().describe(robotParameterDocs.seed.description),
|
|
40
40
|
aspect_ratio: z.string().optional().describe('Aspect ratio of the generated video.'),
|
|
41
41
|
height: z.number().optional().describe('Height of the generated video.'),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"video-merge.d.ts","sourceRoot":"","sources":["../../../src/v3/robots/video-merge.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,+BAA+B,EAC/B,cAAc,EACd,uBAAuB,EACxB,MAAM,+BAA+B,CAAA;AAEtC,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAA;AAc1B,eAAO,MAAM,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"video-merge.d.ts","sourceRoot":"","sources":["../../../src/v3/robots/video-merge.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,+BAA+B,EAC/B,cAAc,EACd,uBAAuB,EACxB,MAAM,+BAA+B,CAAA;AAEtC,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAA;AAc1B,eAAO,MAAM,IAAI,EAAE,cA6BlB,CAAA;AAED,eAAO,MAAM,iCAAiC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAyFnC,CAAA;AAEX,QAAA,MAAM,YAAY;;CAEjB,CAAA;AAED,eAAO,MAAM,eAAe,EAAE,+BAA+B,CAC3D,OAAO,iCAAiC,CAAC,KAAK,EAC9C,OAAO,YAAY,CACiE,CAAA;AAEtF,eAAO,MACa,iDAAiD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IACnD,+CAA+C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAC/B,+DAA+D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAC9E,CAAA;AAEnB,KAAK,YAAY,GAAG,uBAAuB,CAAC,OAAO,eAAe,CAAC,CAAA;AAEnE,MAAM,MAAM,2BAA2B,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAA;AAChE,MAAM,MAAM,2CAA2C,GAAG,YAAY,CAAC,cAAc,CAAC,CAAA;AACtF,MAAM,MAAM,yCAAyC,GAAG,YAAY,CAAC,qBAAqB,CAAC,CAAA;AAC3F,MAAM,MAAM,8CAA8C,GAAG,YAAY,CAAC,qBAAqB,CAAC,CAAA;AAChG,MAAM,MAAM,yDAAyD,GACnE,YAAY,CAAC,4BAA4B,CAAC,CAAA;AAC5C,MAAM,MAAM,8DAA8D,GACxE,YAAY,CAAC,2BAA2B,CAAC,CAAA"}
|
|
@@ -6,6 +6,8 @@ export const meta = {
|
|
|
6
6
|
steps: {
|
|
7
7
|
merged: {
|
|
8
8
|
robot: '/video/merge',
|
|
9
|
+
preset: 'empty',
|
|
10
|
+
ffmpeg: { f: 'mp4' },
|
|
9
11
|
use: [
|
|
10
12
|
{ name: ':original', as: 'image' },
|
|
11
13
|
{ name: ':original', as: 'audio' },
|
|
@@ -31,7 +33,12 @@ export const robotVideoMergeInstructionsSchema = robotBase
|
|
|
31
33
|
.merge(robotUse)
|
|
32
34
|
.merge(robotFFmpegVideo)
|
|
33
35
|
.extend({
|
|
34
|
-
robot
|
|
36
|
+
// The robot literal's description supplies the Robot page introduction.
|
|
37
|
+
robot: z.literal('/video/merge').describe(`
|
|
38
|
+
When concatenating videos end-to-end, all inputs must have the same width and height, with or without a \`transition\`. For joining clips, use [🤖/video/concat](/docs/robots/video-concat/), which pre-transcodes inputs to matching specifications when needed.
|
|
39
|
+
|
|
40
|
+
When both \`preset\` and \`ffmpeg\` are omitted, this Robot uses the legacy \`"flash"\` preset and outputs FLV. Choose an output preset or set \`ffmpeg.f\` explicitly to select another format, such as \`"mp4"\`.
|
|
41
|
+
`),
|
|
35
42
|
resize_strategy: resize_strategy.describe(`
|
|
36
43
|
If the given width/height parameters are bigger than the input image's dimensions, then the \`resize_strategy\` determines how the image will be resized to match the provided width/height. See the [available resize strategies](/docs/topics/resize-strategies/).
|
|
37
44
|
`),
|
|
@@ -87,6 +94,7 @@ Stacks the input media vertically. All streams need to have the same pixel forma
|
|
|
87
94
|
The URL of an image to be merged with the audio or video. When this parameter is provided, the robot will download the image from the URL and merge it with the other media.
|
|
88
95
|
`),
|
|
89
96
|
sort_by: inputSortBySchema,
|
|
97
|
+
// Include join constraints in parameter help as well as the Robot introduction.
|
|
90
98
|
transition: z
|
|
91
99
|
.enum(['none', 'crossfade', 'fade_to_black'])
|
|
92
100
|
.default('none')
|
|
@@ -96,12 +104,18 @@ The type of transition effect to apply between concatenated video clips. Only ap
|
|
|
96
104
|
- \`"none"\` — No transition effect. Videos are joined end-to-end.
|
|
97
105
|
- \`"crossfade"\` — A gradual blend from one clip to the next (both video and audio).
|
|
98
106
|
- \`"fade_to_black"\` — The current clip fades out to black, then the next clip fades in from black.
|
|
107
|
+
|
|
108
|
+
Both \`"crossfade"\` and \`"fade_to_black"\` overlap adjacent clips and shorten the output by the applied \`transition_duration\` at each join. The applied duration is capped at half of the shorter clip in each pair.
|
|
109
|
+
|
|
110
|
+
All concatenated videos must have the same width and height, even when \`transition\` is \`"none"\`. For joining clips with different dimensions, use [🤖/video/concat](/docs/robots/video-concat/).
|
|
99
111
|
`),
|
|
100
112
|
transition_duration: z
|
|
101
113
|
.number()
|
|
102
114
|
.default(1)
|
|
103
115
|
.describe(`
|
|
104
116
|
The duration of the transition effect in seconds. Only applies when \`transition\` is not \`"none"\`. Supports float values (e.g., \`0.5\` for a 500ms transition) and must be greater than \`0\` whenever transitions are enabled. The applied transition is automatically capped at half of the shorter clip in each transition pair to prevent overlapping transitions.
|
|
117
|
+
|
|
118
|
+
For \`"crossfade"\`, this is the overlap duration where both clips are visible. For \`"fade_to_black"\`, the video fades out over approximately the first 20% of the transition and fades in over the remaining 80% (about 0.2 seconds out and 0.8 seconds in for a 1-second transition). Audio is crossfaded throughout the transition for both effects. Both effects shorten the output by the applied duration at each join.
|
|
105
119
|
`),
|
|
106
120
|
})
|
|
107
121
|
.strict();
|
|
@@ -1,6 +1,17 @@
|
|
|
1
1
|
import type { RobotDefinition, RobotMetaInput, RobotSchemaVariantTypes } from './_instructions-primitives.ts';
|
|
2
2
|
import { z } from 'zod/v3';
|
|
3
3
|
export declare const meta: RobotMetaInput;
|
|
4
|
+
/** A reusable clip window with the same time values accepted by video splitting. */
|
|
5
|
+
export declare const segmentSchema: z.ZodObject<{
|
|
6
|
+
from: z.ZodUnion<[z.ZodNumber, z.ZodString]>;
|
|
7
|
+
to: z.ZodUnion<[z.ZodNumber, z.ZodString]>;
|
|
8
|
+
}, "strict", z.ZodTypeAny, {
|
|
9
|
+
to: string | number;
|
|
10
|
+
from: string | number;
|
|
11
|
+
}, {
|
|
12
|
+
to: string | number;
|
|
13
|
+
from: string | number;
|
|
14
|
+
}>;
|
|
4
15
|
export declare const robotVideoSplitInstructionsSchema: z.ZodObject<{
|
|
5
16
|
interpolate: z.ZodOptional<z.ZodUnion<[z.ZodEffects<z.ZodUnion<[z.ZodBoolean, z.ZodEnum<["true", "false"]>]>, boolean, boolean | "true" | "false">, z.ZodRecord<z.ZodString, z.ZodEffects<z.ZodUnion<[z.ZodBoolean, z.ZodEnum<["true", "false"]>]>, boolean, boolean | "true" | "false">>]>>;
|
|
6
17
|
output_meta: z.ZodOptional<z.ZodUnion<[z.ZodRecord<z.ZodString, z.ZodBoolean>, z.ZodBoolean, z.ZodArray<z.ZodString, "many">]>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"video-split.d.ts","sourceRoot":"","sources":["../../../src/v3/robots/video-split.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,cAAc,EACd,uBAAuB,EACxB,MAAM,+BAA+B,CAAA;AAEtC,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAA;AAY1B,eAAO,MAAM,IAAI,EAAE,cAkBlB,CAAA;
|
|
1
|
+
{"version":3,"file":"video-split.d.ts","sourceRoot":"","sources":["../../../src/v3/robots/video-split.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,cAAc,EACd,uBAAuB,EACxB,MAAM,+BAA+B,CAAA;AAEtC,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAA;AAY1B,eAAO,MAAM,IAAI,EAAE,cAkBlB,CAAA;AAED,oFAAoF;AACpF,eAAO,MAAM,aAAa;;;;;;;;;EAaf,CAAA;AAEX,eAAO,MAAM,iCAAiC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkBnC,CAAA;AAEX,eAAO,MAAM,eAAe,EAAE,eAAe,CAAC,OAAO,iCAAiC,CAAC,KAAK,CACtC,CAAA;AAEtD,eAAO,MACa,iDAAiD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IACnD,+CAA+C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAC/B,+DAA+D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAC9E,CAAA;AAEnB,KAAK,YAAY,GAAG,uBAAuB,CAAC,OAAO,eAAe,CAAC,CAAA;AAEnE,MAAM,MAAM,2BAA2B,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAA;AAChE,MAAM,MAAM,2CAA2C,GAAG,YAAY,CAAC,cAAc,CAAC,CAAA;AACtF,MAAM,MAAM,yCAAyC,GAAG,YAAY,CAAC,qBAAqB,CAAC,CAAA;AAC3F,MAAM,MAAM,8CAA8C,GAAG,YAAY,CAAC,qBAAqB,CAAC,CAAA;AAChG,MAAM,MAAM,yDAAyD,GACnE,YAAY,CAAC,4BAA4B,CAAC,CAAA;AAC5C,MAAM,MAAM,8DAA8D,GACxE,YAAY,CAAC,2BAA2B,CAAC,CAAA"}
|
|
@@ -19,7 +19,8 @@ export const meta = {
|
|
|
19
19
|
uses_tools: ['ffmpeg'],
|
|
20
20
|
name: 'VideoSplitRobot',
|
|
21
21
|
};
|
|
22
|
-
|
|
22
|
+
/** A reusable clip window with the same time values accepted by video splitting. */
|
|
23
|
+
export const segmentSchema = z
|
|
23
24
|
.object({
|
|
24
25
|
from: z
|
|
25
26
|
.union([z.number(), z.string()])
|
|
@@ -35,6 +36,8 @@ export const robotVideoSplitInstructionsSchema = robotBase
|
|
|
35
36
|
.extend({
|
|
36
37
|
robot: z.literal('/video/split').describe(`
|
|
37
38
|
Splits a video into multiple segments based on an array of from/to durations. Each segment produces a separate output file. This is useful for cutting a video into parts, for example to insert ads later via [🤖/video/concat](/docs/robots/video-concat/).
|
|
39
|
+
|
|
40
|
+
For iPhone videos with spatial audio, see [iPhone spatial audio in 🤖/video/encode](/docs/robots/video-encode/#iphone-spatial-audio).
|
|
38
41
|
`),
|
|
39
42
|
segments: z
|
|
40
43
|
.array(segmentSchema)
|