Media Splitter
Split an audio or video file into segments, cut exact time ranges, or extract its audio track.
Media Splitter
Node type: utility:media_splitter
Category: Editing
Description
Splits an audio OR video file into an ordered array of segments via a server-side ffmpeg time-split. Three ways to drive it:
- Even chunking (default). Every segment is at most
maxSecondslong (default 14) and the cuts are plain time offsets, so the segments concatenate back continuously. A general-purpose cutter: for example, split a full TTS track into sub-15s slices to fan out one talking-avatar clip per slice (Seedance caps a clip at 15s). - Exact ranges. Set
rangesto cut specific windows:0-30, 30-45. See below. - Audio extraction. Set
extracttoaudioto re-encode every segment as audio-only mp3.
Cutting exact ranges
ranges takes comma-separated start-end pairs in seconds, decimals allowed:
0-30, 30-45
12.5-18, 90-95.25
Rules worth knowing:
rangesoverridesmaxSecondsandchunkCount. When it is set, those are not sent at all.- Ranges are used as given. They may sit out of order, overlap, or leave gaps, because they are explicit cuts and not a tiling of the source.
30-45, 0-10returns the 30-45 clip first. - They compose with
extract: audio, giving audio-only slices of those windows. - A malformed range fails the node and quotes the bad token. Nothing is silently dropped.
- A range whose end runs past the end of the media fails the node and tells you the real duration, rather than quietly returning a short clip.
- Up to 50 ranges per node.
Canvas ports
These appear as port handles on the left side of the node.
| ID | Label | Details |
|---|---|---|
media |
Audio or Video | UNKNOWN (required) |
Sidebar config
These render as form fields in the right-side config panel when the node is selected.
| ID | Label | Details |
|---|---|---|
extract |
Output | TEXT · default segments. One of segments or audio. Any other value fails the node |
ranges |
Ranges (seconds) | TEXT · optional. Exact cut windows, e.g. 0-30, 30-45. Overrides maxSeconds/chunkCount |
maxSeconds (default 14) and chunkCount are also honored by the executor, but they are not declared in the node catalog, so they have no sidebar field: set them through the API, the MCP surface, or an agent. ranges covers most of what they were used for.
Outputs
| ID | Label | Type |
|---|---|---|
segments |
Segment URLs | ARRAY |
segmentsDetailed |
Segments (detailed JSON) | JSON |
count |
Segment Count | NUMBER |
audio |
Audio Track | AUDIO |
segments is a plain string array of segment URLs; wire it into a Text Iterator's array input to fan out per-segment processing. segmentsDetailed carries { index, url, startSeconds, durationSeconds } per segment for inspection or timing-aware consumers.
Notes
- The
mediainput accepts a bare URL string or an object carryingurl/audioUrl/videoUrl/video/audio. - In
audiomode with no explicitmaxSeconds/chunkCount/ranges, the window defaults to 3600s, so the WHOLE track comes back as one file on theaudiooutput. That is the usual way to pull a reference video's soundtrack. - The
audiooutput is empty insegmentsmode.
Auto-generated from the Wireflow node registry.