The swiss army knife of lossless video/audio editing
When exporting multiple segments as separate files, LosslessCut offers you the ability to specify how the output files will be named in sequence using a template string. The template string is evaluated as a JavaScript template string, so you can use JavaScript syntax inside of it. The following variables are available in the template to customize the filenames:
Avail when merging? | Variable | Output |
---|---|---|
✅ | ${FILENAME} |
The original filename without the extension (e.g. Beach Trip for a file named Beach Trip.mp4 ). |
✅ | ${EXT} |
The extension of the file (e.g.: .mp4 , .mkv ). |
✅ | ${EPOCH_MS} |
Number of milliseconds since epoch (e.g. 1680852771465 ). Useful to generate a unique file name on every export to prevent accidental overwrite. |
${SEG_NUM} |
Number of the segment, padded string (e.g. 01 , 02 or 42 ). |
|
${SEG_NUM_INT} |
Number of the segment, as a raw integer (e.g. 1 , 2 or 42 ). Can be used with numeric arithmetics, e.g. ${SEG_NUM_INT+100} . |
|
${SEG_LABEL} |
The label of the segment (e.g. Getting_Lunch ). |
|
${SEG_SUFFIX} |
If a label exists for this segment, the label will be used, prepended by - . Otherwise, the segment number prepended by -seg will be used (e.g. -Getting_Lunch , -seg1 ). |
|
${CUT_FROM} |
The timestamp for the beginning of the segment in hh.mm.ss.sss format (e.g. 00.00.27.184 ). |
|
${CUT_TO} |
The timestamp for the ending of the segment in hh.mm.ss.sss format (e.g. 00.00.28.000 ). |
|
${SEG_TAGS.XX} |
Allows you to retrieve the tags for a given segment by name. If a tag is called foo, it can be accessed with ${SEG_TAGS.foo} . Note that if the tag does not exist, it will return the text undefined . You can work around this as follows: ${SEG_TAGS.foo ?? ''} |
Your files must always include at least one unique identifer (such as ${SEG_NUM}
or ${CUT_FROM}
), and it should end in ${EXT}
(or else players might not recognise the files). For instance, to achieve a filename sequence of Beach Trip - 1.mp4
, Beach Trip - 2.mp4
, Beach Trip - 3.mp4
, your format should read ${FILENAME} - ${SEG_NUM}${EXT}
LosslessCut also allows importing/exporting your project (segments) in a variety of file formats.
segment start
, segment end
, label
.segment start
and segment end
are expressed in seconds or left empty. Empty segment end
means segment ends at the duration of the video.,
to separate the fields (not semicolon ;
),56.9568,First segment starting at 0
70,842.33,"Another quoted label"
1234,,Last segment
Same as CSV but <tab>
instead.
See https://github.com/mifi/lossless-cut/issues/1340