# LosslessCut: lossless only when the codec parameters match

> LosslessCut is a GPL-2.0 desktop app that trims, cuts and rejoins video and audio by copying data rather than re-encoding it, with FFmpeg doing the work. The feature list is honest about its own edges: concatenation is lossless only for files with identical codec parameters, smart cut is marked experimental, and there is no mass or batch export.

**mifi/lossless-cut** — GitHub describes it as The swiss army knife of lossless video/audio editing. The repository metadata lists TypeScript as its primary language. The metadata lists the GPL-2.0 license. This article stays within the project description and details documented in the GitHub repository README.

- Repository: https://github.com/mifi/lossless-cut
- Website: https://losslesscut.app/
- Stars: 44,196 · Forks: 2,192
- Language: TypeScript
- License: GPL-2.0
- Published: 2026-08-13 · Updated: 2026-08-18 · Language: en
- Canonical page: https://hysenlabs.com/projects/mifi-lossless-cut

## Concatenation stays lossless only for files with identical codec parameters

The core claim is that cutting does not re-encode, because FFmpeg performs what the README calls an almost direct data copy. That holds for trimming, for reordering segments, for removing tracks and for remuxing into a different container. It does not hold for every join.

The feature list puts the condition in a parenthesis: lossless merge and concatenation of arbitrary files, with identical codecs parameters, giving the example of files from the same camera. Read strictly, joining a clip from one camera to a clip from another is not a lossless operation, and no amount of care in the timeline changes that. The two files have to agree on codec parameters, not merely on extension.

The related capabilities soften this rather than remove it. You can combine arbitrary tracks from multiple files, which is how you add a music track or an external subtitle to a video, replace or re-encode only some tracks, and extract every track into separate files. So the honest summary is: single-source material is fully lossless, and mixing sources means some track gets re-encoded. Deciding which one before you start is the whole difference between a two-minute job and an overnight one.

## The store builds are the paid ones, and the manual downloads are always free

There are several ways in, and they differ in more than format. The README points at the Apple App Store and the Microsoft Store first, framed as supporting the author's continued work in exchange for what it calls a secure and simple installation process with automatic, stable updates. For Linux it names the Snap Store. Manual executable downloads are described as always free.

The macOS manual route is a DMG, with separate builds for Intel and Apple Silicon, and the file carries a warning worth reading:

```text
https://github.com/mifi/lossless-cut/releases/latest/download/LosslessCut-mac-x64.dmg
```

The same line notes that PKG does not work. The Windows route is a 7zip archive rather than an installer. The repository also carries Flathub-style packaging files, a store badge, an AppStream appdata XML and a desktop entry, which is the shape of a Flathub submission, though the visible download list names Snap for Linux rather than Flatpak.

So the practical choice is between an auto-updating store build that supports the project and a manual download you update yourself. For a tool you use on a work machine, the update behaviour is the real difference, not the file format.

## Smart cut is marked experimental in the project's own feature list

The second entry in the feature list is Smart cut, and it carries the word experimental in a link to an issue rather than to documentation. That label is the most useful sentence in the list, because Smart cut is the feature that looks like magic: it finds a cut point without you setting one.

Around it sit features that are ordinary and dependable. Manual input of cutpoint times, timeline zoom, frame and keyframe jumping, a per-file timecode offset that can be auto-loaded from the file, keyboard shortcuts, undo and redo, and cut segments saved to a project file. There is also what the README calls extremely fast removal of all non-keyframes, which is the timelapse case, plus black scene detection, silent audio detection and scene change detection.

The consequence for planning is simple. Anything on your critical path should rest on the manual controls and the detectors, which are described plainly, and Smart cut should be something you try on a copy. A file trimmed by an experimental cut point is not something you want to discover was wrong after the originals are deleted.

## The bundled FFmpeg comes from the maintainer's own build repositories, pinned at 8.0-1

The npm scripts show exactly where the engine comes from. Separate download scripts per platform pull ffmpeg and ffprobe from the 8.0-1 tag of two repositories under the same owner, ffmpeg-build-script for macOS and ffmpeg-builds for Linux and Windows, then chmod them executable. The Linux script unpacks a gpl-shared tarball, moves the ffmpeg and ffprobe binaries into place and relocates the shared libraries into a lib directory next to them.

Two things follow. The FFmpeg you run is a build produced by a personal build pipeline rather than a binary from the FFmpeg project, which is a reasonable thing for a maintainer to do and a specific thing for a reviewer to weigh. And on Linux the build is dynamically linked against those relocated shared libraries, so the lib directory has to travel with the executable.

The version is pinned rather than floating, which is the right side of this to be on. What the repository does not document is the supported way to substitute your own FFmpeg build, so if you need a codec the bundled 8.0 build lacks, you are working outside what is written down here.

## No mass or batch export, and the FFmpeg command log is the escape hatch

The feature list contains its own limitation in a parenthesis: fast multi-file workflow, with a note that there is no mass or batch export yet. Those are different things. Having many projects open quickly is about your own hands; processing a folder unattended is not supported by the interface.

What exists instead is worth knowing, because it is how the project expects that gap to be filled. There is a log of the last FFmpeg command, viewable so you can modify and re-run recent commands on the command line. There is a JavaScript-based expression language for querying and mutating segments. There is import and export of segments through MP4 and MKV chapter marks, text files, YouTube, CSV, CUE and XML for DaVinci and Final Cut Pro. And there is a CLI and an HTTP API, both described in the repository's docs, with the CLI called basic in the same list.

For a folder of two hundred files, that means the workflow is a loop you write against the CLI or the expression language, not a button. Budget for it, and check the docs before assuming the HTTP API is a stable contract for something you build on.

## The CSV, CUE and Final Cut Pro paths make it an interchange tool first

Read the use cases and a pattern emerges: LosslessCut is repeatedly used to get from one tool to another. Cut commercials out of a recorded show and reformat the TS to MP4. Change an H264 or H265 MKV to MOV or MP4 for playback on a phone. Import a list of cut times from another tool as an EDL and run those cuts. Export a list of cut times as a CSV EDL and process it elsewhere. Fix a video whose rotation flag is wrong. Attach cover art from an external JPEG or from a frame on the timeline.

The MKV and MP4 embedded chapter marks editor and the segment import formats are the load-bearing part of that. Chapters are how a decision gets recorded in a way another tool can read, and a segment tagged with a label becomes a folder structure or a filter rather than a filename you have to remember.

The consequence is a division of labour. This project decides where things start and stop; something else renders. If you want a single tool that cuts and exports a finished file with effects, transitions and a timeline, this is the wrong program, and no amount of the feature list changes that.

## Four TypeScript projects, a manual test directory, and a release from June

The tree shows how the app is built. Four tsconfig files split the code into common, main, node and web projects, so the Electron main process and the renderer are type-checked as separate programs, and a type error in one is not caught by the other's configuration. Builds run through electron-vite with the entry point at out/main/index.js, on Yarn with a .yarn directory and a yarn.lock, and unit tests run under vitest. Alongside them sits a directory named test-manual, which is the honest signal: the interface is verified by a checklist a person walks through, not by an automated end-to-end suite.

The rest of the tree is packaging. Three entitlement plists for the Mac App Store build, including one for a login helper, which is how a build from that store keeps a background process alive. A versioned directory for per-release configuration, an i18next setup with scan and base configs alongside a locales directory, and AppStream and desktop entry files for the Linux desktop listing.

On releases: 3.67.2 on 2025-12-04, 3.68.0 on 2026-01-29 and 3.69.0 on 2026-06-04, with the last push to master on 2026-09-23. Fixes land on master well before a tag appears, so the build you get from a store and the source in the repository are different ages. The code is GPL-2.0, which matters if you intend to redistribute it rather than use it.

## Conclusion

Choose LosslessCut when you need to remove or reorder large amounts of video without paying for a re-encode, and especially when your clips come from one camera so the codec parameters match. Do not choose it to batch-process a library, because the project states there is no mass or batch export yet, and do not expect its command line to replace a render pipeline, because the same file calls the CLI basic and points you at the FFmpeg command log instead. Verify two things before you commit: which install channel you will use, since store builds and manual downloads update on different schedules, and whether your files share codec parameters, because that one fact decides whether concatenation stays lossless.

## FAQ

### What is a LosslessCut?

It is a cross-platform desktop application for trimming, cutting and rearranging video, audio and subtitle files without re-encoding, with FFmpeg doing an almost direct data copy. It also handles track-level work: combining tracks from several files, removing tracks, remuxing into another container, editing metadata, and exporting frames as images.

### Is LosslessCut free?

The manual executable downloads are described as always free, and the Apple App Store and Microsoft Store versions are the route the README frames as supporting the author's work in exchange for automatic updates. A Snap Store build is published for Linux, and the project is released under GPL-2.0.

### How do I install LosslessCut?

The README points to the Apple App Store and the Microsoft Store for automatic updates, the Snap Store for Linux, or a manual download. On macOS the manual route is a DMG for Intel or Apple Silicon and the README notes that PKG does not work; on Windows it is a 7zip archive rather than an installer.

### How do I use LosslessCut to trim video?

You set cutpoints on a timeline, either by hand with manual input of cutpoint times or by jumping frame by frame around keyframes, and the cut is a data copy rather than a re-encode. Cut segments are saved to a project file, a per-file timecode offset can be applied or auto-loaded from the file, and undo and redo cover the edits.

### How do I combine videos with LosslessCut?

Concatenation is lossless only for files with identical codec parameters, with the README giving files from the same camera as the example. Mixing sources means some track is re-encoded, though you can combine arbitrary tracks from multiple files, replace or re-encode only selected tracks, and losslessly remux into a different container.

### Is LosslessCut safe?

The store installations are described as a secure and simple installation process with automatic, stable updates, while manual executable downloads are always free. The media work is done by an FFmpeg and ffprobe build pulled from the maintainer's own build repositories at the 8.0-1 tag, not from an upstream FFmpeg release.

## Sources

- [Official documentation](https://losslesscut.app/)
- [Official README](https://github.com/mifi/lossless-cut#readme)
- [Project repository](https://github.com/mifi/lossless-cut)
- [Release notes](https://github.com/mifi/lossless-cut/releases)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/mifi-lossless-cut
