-
-
Notifications
You must be signed in to change notification settings - Fork 1
Split Mode
Split mode cuts one MKV into several. A disc rip containing four episodes becomes four files; a recording with a 90-second intro becomes the same recording without it.
Cuts are frame-perfect: the boundary lands on the requested frame rather than being moved to the nearest keyframe. VFR timing, chapters, audio and subtitles are carried through. Video is HEVC or AVC.
For worked recipes see Examples: Split.
- Select Split in the navigation rail.
-
Press
F2to open the split configuration. - Set Source: a single MKV file, or a folder to process a batch.
- Set Output (optional. Empty means "next to the input file").
- Choose a Mode and fill in the field it reveals. The five modes are alternatives; pick exactly one.
- Optionally set a Template for output filenames and a Snap mode.
- Tick Dry-run for the first attempt. It computes the segments and writes nothing.
- Press OK, then
F5to scan. This enumerates the input files and fills the table; the log reportsSplit scan completed: N files. - Press
F10. With Dry-run on, this reads the chapters, extracts the timestamps, counts the frames and computes every segment, then stops without writing. - Click a row and read the segment plan in the detail panel. This is the review step.
- Untick Dry-run, press OK and
F10again to write the segments.

Split mode has no separate analyze step. F5 only lists the input files: the chapter count, frame count and segment boundaries are computed by F10, which is why Dry-run exists. With Dry-run on, F10 performs the whole preparation and fills in the plan without writing files.

The left panel lists the files that F5 found, with a status per file:
| Status | Meaning |
|---|---|
Pending |
listed, nothing computed yet |
Running |
the pipeline is working on this file |
Done |
segments written successfully |
Error |
the file failed; the reason is in the detail panel and the log |
Stopped |
the batch was stopped before this file was reached |
Selecting a row shows its segment plan in the detail panel, alongside the file path, the status and any error message. The plan is populated once F10 has run, with or without Dry-run. A header line reports Resulting segments: N, followed by one card per segment titled Segment N:
| Field | Meaning |
|---|---|
| Output | filename the template produced |
| Start / End | segment boundaries as timestamps |
| Duration | length of the segment |
| Chapters | how many chapters fall inside the segment |
| Frames | number of frames in the segment |
The segment number in the card title is the value {n} resolves to in the naming template.
This is where a naming template, a chapter pattern or a set of ranges is verified before anything is written. With Dry-run ticked the plan is computed and displayed, and no file is created.
The log carries the same information plus the preparation detail: the chapter count (Found N chapters), the frame count, and the pipeline path chosen.
| Field | Notes |
|---|---|
| Source* | Required. A single MKV file, or a folder, with a folder, the scan prepares a batch and applies the same options to every file found. |
| Output | Must be a folder. Empty = each output goes next to its input file. |
| Source raw | Optional, single file only. An alternate file to read PTS from. See Source raw below. |
| Recursive | Only used when Source is a folder. Includes subfolders. |
| Force | Overwrite existing outputs. When off, segments that already exist are skipped. |
| Dry-run | Print segments and pipeline, write nothing. |
Batch mode suits a box set of identically-structured discs. The options are shared, so a chapter pattern of 5,5,5,6 must be correct for every file in the folder. If disc 3 has a different chapter count, that file fails with a pattern mismatch while the others succeed.
Mode is required and the five choices are mutually exclusive. The fields below it change depending on what you pick.
Groups the file's existing chapters into segments. Pattern 5,5,5,6 means: first five chapters into segment 1, next five into segment 2, next five into segment 3, last six into segment 4.
The sum must equal the file's chapter count exactly. Otherwise the job fails with a pattern-sum mismatch naming both numbers. The chapter count is reported in the log as Found N chapters when F10 runs, so a Dry-run pass is the way to read it before committing to a pattern.
Disc rips in which each episode occupies a fixed number of chapters fit this mode.
Explicit intervals, comma-separated:
00:00:00-00:21:40,00:21:40-END
The most controllable mode. Every boundary is yours. Overlapping ranges are allowed but warned about; ranges extending past the end of the file are clamped, also with a warning.
A list of cut points; produces N+1 segments:
20:00,40:00
That gives three segments: start→20:00, 20:00→40:00, 40:00→end. Cannot be combined with trim.
Drops content outside the given bounds and produces one output file. Fill either field or both:
| Field | Effect |
|---|---|
| Trim start | drop everything before this point |
| Trim end | drop everything after this point |
At least one is required. This is how you remove an intro, an outro, or both.
One output file per chapter. No parameters. Requires the file to have chapters.
Every time field, ranges, split points, trims, accepts:
| Format | Example | Meaning |
|---|---|---|
HH:MM:SS.mmm |
00:21:40.500 |
full timecode |
MM:SS.mmm |
21:40 |
minutes and seconds |
SS.mmm |
1300.5 |
plain decimal seconds |
f<frame> |
f31200 |
exact frame index |
END |
END |
the end of the file |
f<frame> is the precise option when you have the frame number from a frame-accurate player, and it sidesteps any rounding in timecode conversion. Time values are resolved against the file's actual PTS list, so they land on the right frame even on VFR content.
| Value | Behaviour |
|---|---|
off |
frame-perfect. The segment starts on exactly the frame you asked for. |
before |
move the start back to the previous keyframe |
after |
move the start forward to the next keyframe |
nearest |
move to whichever keyframe is closest |
Snap determines whether the job takes the fast or the slow path. See Fast path vs slow path.
Snap can produce warnings: a snapped boundary can absorb a whole short segment, or overlap the neighbouring one. Both are logged.
| Field | Notes |
|---|---|
| Template | Output filename template. Empty = the mode's default. |
| Extensions | Extensions to scan in folder batch mode. Default mkv, comma-separated. |
Defaults per mode:
| Mode | Default template |
|---|---|
| Chapter pattern, Ranges, Split at | {source_name}.part{n:02d}.mkv |
| Trim | {source_name}_trimmed.mkv |
| Chapters each | {source_name}.ch{n:02d}.mkv |
Tokens:
| Token | Value |
|---|---|
{source_name} |
input filename without extension |
{n} |
segment number, starting at 1 |
{n:02d} |
segment number zero-padded to 2 digits |
{n+213:03d} |
number with an offset, padded to 3 digits |
{n-1} |
number with a negative offset |
{start} |
segment start timestamp |
{end} |
segment end timestamp |
{chapter_name} |
name of the segment's first chapter |
The offset form continues an existing absolute episode numbering. For a disc holding episodes 214-217 of a long-running series:
Bleach.S12E{n+213:03d}.mkv
produces Bleach.S12E214.mkv through Bleach.S12E217.mkv.
Filenames are sanitised before use, and a segment that would overwrite the input file aborts the whole job rather than destroying your source.
A segment that starts mid-GOP cannot be copied directly: the frames before the next keyframe are predicted from data outside the segment. RemuxForge re-encodes that first GOP and copies everything after it losslessly. This is the slow path.
The fast path avoids re-encoding entirely by moving the boundary to a keyframe, so everything can be stream-copied with mkvmerge.
The selection rule is exact:
| Condition | Path |
|---|---|
Snap = off |
slow path, frame-perfect, re-encodes the first GOP of each segment |
Snap ≠ off and no Source raw (or Source raw = input) |
fast path: mkvmerge stream copy, no re-encoding |
Snap ≠ off but Source raw is a different file |
slow path; the log says fast path disabled: source raw
|
Snap is therefore the switch between two modes of operation: quick and lossless with boundaries that move, or exactly the requested frame at a higher cost.
On the fast path RemuxForge detects whether the file is CFR or VFR and preserves the timing accordingly. If the frame-rate mode cannot be determined, it stops with an error rather than guessing. Files containing FLAC audio take a slightly different fast route (mkvmerge for video, ffmpeg for the AV pair).
The slow path extracts the raw video bitstream, re-encodes the head GOP with parameters matched to the source (codec, pixel format, colour space, primaries, transfer, range, all read from the input), then remuxes audio, subtitles and chapters back in. The full sequence, including how VFR timing is carried across the cut, is in Internals.
If the boundaries come from chapter marks they already fall on keyframes, so nearest moves nothing and takes the fast path. For a boundary at a measured timecode, use off and allow for the longer run time.
An alternate file to read presentation timestamps from. Single file only: it is rejected in folder batch mode, and it must be a file, not a folder.
The case it exists for: your input is a re-encode of an original VFR release. The re-encode's own timestamps have been normalised and no longer describe the original timing, so cutting by timecode lands in the wrong place. Point Source raw at the original VFR file and the PTS are read from there while the frames are taken from the input.
The two files must have the same frame count. A mismatch stops the job rather than raising a warning, because differing frame counts mean the indices do not correspond and every boundary would land in the wrong place.
Using Source raw disables the fast path (see above).
| Element | Behaviour |
|---|---|
| Video | stream-copied, except the re-encoded head GOP on the slow path |
| VFR timing | preserved from the PTS list |
| Audio | remuxed into each segment |
| Subtitles | remuxed into each segment |
| Chapters | extracted up front and carried into the segments |
These are emitted by the pipeline, so they appear when F10 runs, including a Dry-run pass. Errors that stop a file also appear in that file's detail panel.
| Message | Meaning |
|---|---|
| pattern sum mismatch | your pattern's total ≠ the chapter count |
| range start/end clamped | a boundary was past the end of the file and was pulled in |
| overlapping ranges | your ranges overlap, allowed, but probably not intended |
| range start past EOF | a range starts after the file ends and produces nothing |
| snap would eat segment | snapping collapsed a segment to nothing |
| snap overlap | snapping made two segments overlap |
| segment would overwrite input | aborts the job: fix the template or the output folder |
| frame count mismatch | Source raw and input disagree on frame count |
| unsupported video codec | not HEVC or AVC |
| chapters-each requires chapters | the file has no chapters |
| skipping existing segment | output exists and Force is off |
- Examples: Split: worked recipes for discs, trims and renumbering
- Codec and Language Reference: time formats and template tokens
- Troubleshooting