How to split a video into n equal parts online
- Step 1Drop your video onto the splitter — Accepts
.mp4,.mov,.mkv,.webm,.avi,.m4v, and.ts. The file is read into the in-browser FFmpeg.wasm sandbox — nothing is uploaded. The tool probes the container to read its total duration before splitting. - Step 2Set the Number of parts — The single control is Number of parts, a number input clamped to 2–20 (default 2). Choosing 6 splits a 60-minute video into six ~10-minute segments. There is no fixed-duration or fixed-size mode here — this tool divides by count. If you need 25 MB chunks for email, see email-compressor; if you need exact in/out timecodes, see lossless-trimmer.
- Step 3Understand the keyframe rule before you run — Each part starts at the keyframe at or just before
i × (duration ÷ parts). For typical footage (a keyframe every 1–5 seconds) the cut is within a couple of seconds of the mathematical mark. There is no re-encode and therefore no frame-accurate option — the trade for lossless speed is keyframe-quantised boundaries. - Step 4Run the split — FFmpeg.wasm extracts each segment with
-ss START -i input -t SEGLEN -c copy -avoid_negative_ts make_zero.-avoid_negative_ts make_zerorebases each part's timestamps to start at zero so players don't show a negative or offset start time. - Step 5Download the ZIP — The result is one ZIP:
name-parts.zip, containingname-part-1.extthroughname-part-N.ext. Parts play independently in any standard player — no concatenation metadata is required. - Step 6Verify the part you care about — Open the first and last parts to confirm boundaries landed where you expect. If a part begins a beat early, that is the keyframe snap, not a bug. To recombine parts later (they share a codec) use the same-codec concat path in video-merger.
What the equal-split tool does (and does not) offer
The splitter exposes a single option. Modes that sound similar but are not implemented here are listed so you can route to the right sibling tool.
| Capability | In this tool? | Detail / where to go instead |
|---|---|---|
| Split into N equal parts | Yes | Number of parts input, 2–20. Segment length = duration ÷ parts |
| Stream-copy (no re-encode) | Yes | Always on — -c copy. There is no transcode option in this tool |
| Frame-accurate cuts | No | Boundaries snap to keyframes. For an exact in/out cut use lossless-trimmer |
| Fixed-duration chunks (e.g. every 10 min) | No | Compute the part count yourself: parts = ceil(total ÷ chunk), then enter it |
| Fixed file-size chunks (e.g. 25 MB) | No | Size depends on bitrate, not just time. Use email-compressor or discord-compressor to hit a byte target |
| Output container | Same as input | MP4→MP4, MOV→MOV, MKV→MKV, etc. No conversion happens |
Parts → approximate segment length
Equal split divides total runtime by the part count. Actual boundaries snap to the nearest prior keyframe, so each value is the target, not a guaranteed exact length.
| Source length | Parts = 2 | Parts = 4 | Parts = 6 | Parts = 10 |
|---|---|---|---|---|
| 20 min | 10:00 | 5:00 | 3:20 | 2:00 |
| 60 min | 30:00 | 15:00 | 10:00 | 6:00 |
| 90 min | 45:00 | 22:30 | 15:00 | 9:00 |
| 3 hr | 90:00 | 45:00 | 30:00 | 18:00 |
Tier limits for one input file
Video is sized by file bytes and batch count — there is no minutes cap. The splitter takes one file at a time.
| Tier | Max file size | Files per batch |
|---|---|---|
| Free | 1 GB | 1 |
| Pro | 10 GB | 5 |
| Pro + Media | 100 GB | 50 |
| Developer | 100 GB | Unlimited |
Cookbook
Concrete equal-split recipes. Each shows the part count you enter and what the tool produces.
Split a 60-minute recording into 6 even parts
The classic equal-split case: one long file, a round number of pieces. Enter 6 and the tool divides 60 minutes by 6.
Input: webinar-2026.mp4 (60:00, H.264/AAC) Option: Number of parts = 6 FFmpeg per part (i = 0..5): -ss <i*600> -i webinar-2026.mp4 -t 600 -c copy -avoid_negative_ts make_zero part_<i+1>.mp4 Output ZIP: webinar-2026-parts.zip webinar-2026-part-1.mp4 ... -part-6.mp4 (~10:00 each)
Pick a part count to approximate a target length
There is no 'split every 15 minutes' mode, but you can convert a target length to a part count with a one-line calculation, then enter it.
Goal: ~15-minute chunks from a 92-minute talk. parts = ceil(92 / 15) = 7 Enter 7 -> seven parts of ~13:09 each (92 / 7 = 13.14 min). Bump to 6 for ~15:20 chunks if you prefer slightly longer pieces.
Keep a 4K HEVC master lossless
Because the split is stream-copy, the codec and resolution are untouched — no quality decision to make.
Input: master_4k.mov (HEVC, 3840x2160, 8.4 GB) [Pro tier] Option: Number of parts = 4 Result: 4x .mov parts, still HEVC 3840x2160. No CRF, no preset, no re-encode -> bit-identical video.
MKV in, MKV out
Container is preserved across the split. An MKV with multiple audio/subtitle tracks keeps them in each part (stream-copy copies all mapped streams).
Input: film.mkv (HEVC + 2 audio + 1 subtitle track) Option: Number of parts = 3 Output: film-part-1.mkv, -part-2.mkv, -part-3.mkv Each .mkv retains the same track layout as the source.
Two parts as a quick A/B split
The minimum is 2. Useful when you just want a first-half / second-half break at the midpoint keyframe.
Input: interview.mp4 (44:20)
Option: Number of parts = 2
Output: interview-part-1.mp4 (~22:10),
interview-part-2.mp4 (~22:10)
Boundary snaps to the keyframe nearest 22:10.Edge cases and what actually happens
Part boundaries are not millisecond-exact
By designStream-copy cuts can only start on a keyframe, so each part begins at the keyframe at or before i × (duration ÷ parts). With a GOP of a few seconds, lengths vary by up to one keyframe interval. This is the cost of lossless, instant splitting. For a cut at an exact frame, re-encode with lossless-trimmer at precise in/out points.
You asked for fixed-duration or fixed-size chunks
Not supportedThe only option is part count. There is no 'every N minutes' or 'under N MB' mode. Convert a duration target to a count (ceil(total ÷ chunk)); for a byte target, time alone can't guarantee it because size depends on bitrate — use email-compressor or discord-compressor.
Part count below 2 or above 20
ClampedThe input is clamped to the 2–20 range and rounded to a whole number, so a typed 1 becomes 2 and 30 becomes 20. If you genuinely need more than 20 pieces, split into 20 first, then split a part again.
Source duration can't be read
ErrorThe tool probes the container for total duration before computing segment length. If the file is truncated, has no duration metadata, or is corrupt, it raises 'Could not determine video duration.' Remux or repair the file first, or try a complete copy of the source.
First part starts slightly before 0
Preserved-avoid_negative_ts make_zero rebases each part's timestamps to start at zero, so players show clean 00:00 starts and audio stays in sync rather than showing a negative initial PTS.
Audio-only or unusual track layout
SupportedStream-copy copies all mapped streams as-is, so multi-audio and subtitle tracks ride along in each part (in containers like MKV/MOV that hold them). The split point still follows the video keyframe grid.
Very short clip split into many parts
ExpectedSplitting a 12-second clip into 20 parts asks for ~0.6 s segments — shorter than a typical GOP. Several parts may collapse to a single keyframe or be near-empty because there is no nearer keyframe to cut on. Use fewer parts for short sources.
Variable frame rate (VFR) screen recordings
PreservedVFR sources (common from screen recorders) keep their timing because stream-copy doesn't touch frame timing. Boundaries still land on keyframes; the part durations reflect the real VFR timeline, not a fixed-fps assumption.
File exceeds your tier's size limit
RejectedFree caps a single file at 1 GB. A 6 GB master is rejected on Free; Pro (10 GB) or Pro + Media (100 GB) covers it. There is no duration cap — only file size and batch count.
Frequently asked questions
How many parts can I split into?
Any whole number from 2 to 20. The tool divides the source duration by your chosen count to get the target length for each part. Values outside 2–20 are clamped, and decimals are rounded to the nearest whole number.
Does splitting reduce quality?
No. The split uses FFmpeg stream-copy (-c copy), which copies the existing video and audio bitstreams without decoding or re-encoding. Each part is bit-identical to the matching section of the source — there is no generation loss and no CRF or bitrate to set.
Are the parts exactly equal in length?
They target equal length (duration ÷ parts), but each cut snaps to the nearest keyframe at or before that mark because stream-copy can only start on a keyframe. With a typical 1–5 second GOP, lengths vary by up to one keyframe interval. There is no frame-accurate mode in this tool.
What format are the output parts?
The same container as your input. Drop an MP4 and you get MP4 parts; an MKV yields MKV parts; a MOV yields MOV parts. No conversion happens — the codec, resolution, and pixel format are preserved.
How do I download the parts?
As a single ZIP named name-parts.zip, containing name-part-1.ext through name-part-N.ext. You download once rather than collecting individual files.
Can I split every 10 minutes instead of by count?
Not directly — there is no fixed-duration mode. Convert the target to a count: parts = ceil(total_minutes ÷ 10), then enter that. A 50-minute video at ~10-minute chunks is 5 parts.
Can I split to a target file size like 25 MB?
No. This tool splits by time, and file size depends on bitrate, not duration alone, so equal time does not mean equal bytes. To hit a byte target use email-compressor (Gmail/Outlook limits) or discord-compressor.
Which input formats are supported?
MP4, MOV, MKV, WEBM, AVI, M4V, and TS. Files with an unrecognised extension are treated as MP4. The container of each output part matches the detected input container.
Is my video uploaded anywhere?
No. Splitting runs entirely in your browser via FFmpeg.wasm. The file is read into an in-browser sandbox and never sent to a server, which is why even a 1 GB file works on the Free tier.
How large a file can I split?
Free allows one file up to 1 GB. Pro raises it to 10 GB, and Pro + Media / Developer to 100 GB. There is no minutes limit — sizing is by file bytes and batch count only.
Can I recombine the parts later?
Yes. Because all parts share the same codec, video-merger can concatenate them losslessly via the concat demuxer (stream-copy), reproducing the original within keyframe tolerance.
Why did some parts come out nearly empty?
You asked for more parts than the source has room for at the keyframe spacing — e.g. 20 parts of a 12-second clip. Each part needs at least one keyframe; when the requested segment is shorter than the GOP, parts collapse. Reduce the part count for short clips.
Privacy first
Every JAD Video tool runs entirely in your browser via WebCodecs and FFmpeg (WebAssembly). Your video files never leave your device — verified by zero outbound network requests during processing.