File: README.md
LosslessCut aims to be the ultimate cross platform FFmpeg GUI for extremely fast and lossless operations on video, audio, subtitle and other related media files.
The main feature is lossless trimming and cutting of video and audio files, which is great for saving space by rough-cutting your large video files taken from a video camera, GoPro, drone, etc. It lets you quickly extract the good parts from your videos and discard many gigabytes of data without doing a slow re-encode and thereby losing quality. There are also many more use cases. Everything is extremely fast because it does an almost direct data copy, fueled by the awesome FFmpeg which does all the grunt work.
Table of contents
- Features
- Example lossless use cases
- Download
- Supported formats
- Documentation, usage & getting started
- Video demos
- Featured
- Attributions
Features
- Lossless cutting of most video and audio formats
- Smart cut (experimental)
- Losslessly cut out parts of video/audio (for cutting away commercials etc.)
- Losslessly rearrange the order of video/audio segments
- Lossless merge/concatenation of arbitrary files (with identical codecs parameters, e.g. from the same camera)
- Lossless multi track/stream editing
- Combine arbitrary tracks from multiple files (ex. add music or subtitle track to a video file)
- Remove unneeded tracks
- Replace or re-encode only some tracks
- Extract all tracks from a file (extract video, audio, subtitle, attachments and other tracks from one file into separate files)
- View technical data about all tracks. Edit file metadata, per-track metadata and per-track disposition
- Select video/audio tracks for playback. Playback multiple audio tracks simultaneously.
- Fast multi-file workflow (note: no mass/batch export yet)
- Keyboard shortcut workflow
- Losslessly remux video/audio into a different container (file) format
- Take full-resolution snapshots from videos in JPEG/PNG format (low or high quality)
- Export ranges of video frames to images (every nth frame, second, by scene change, best thumbnails)
- Export only from a selected time range (segment)
- Optionally include original timestamps in image file names
- Manual input of cutpoint times
- Apply a per-file timecode offset (and auto load timecode from file)
- Change rotation/orientation metadata in videos
- Timeline zoom and frame/keyframe jumping for cutting around keyframes
- Video thumbnails and audio waveform
- Saves per project cut segments to project file
- View FFmpeg last command log so you can modify and re-run recent commands on the command line
- Undo/redo
- Advanced segment query and mutation JS-based expression language.
- Give labels to cut segments, annotate with tags
- Import/export segments: MP4/MKV chapter marks, Text file, YouTube, CSV, CUE, XML (DaVinci, Final Cut Pro) and more
- MKV/MP4 embedded chapters marks editor
- View subtitles
- Customizable keyboard hotkeys
- Black scene detection, silent audio detection, and scene change detection
- Divide timeline into segments of length L, size (X MB), N number of segments or even randomized segments!
- Speed up / slow down video or audio file (changing FPS)
- Lossless crop and aspect ratio modification
- Basic CLI and HTTP API
- Show (DJI) embedded GPS track on a map
- Losslessly Download videos over HTTP (e.g. HLS
.m3u8) - Extremely fast removal of all non-keyframes (e.g. timelapse)
Example lossless use cases
- Cut out commercials from a recorded TV show (and re-format from TS to MP4).
- Remove audio tracks from a file.
- Extract music track from a video and cut it to your needs.
- Add music to a video (or replace existing audio track).
- Combine audio and video tracks from separate recordings.
- Include an external subtitle into a video
- Quickly change a H264/H265 MKV video to MOV or MP4 for playback on iPhone.
- Import a list of cut times from other tool as a EDL (edit decision list, CSV) and run these cuts with LosslessCut.
- Export a list of cut times as a CSV EDL and process these in another tool.
- Quickly cut a file by its MP4/MKV chapters.
- Quickly cut a YouTube video by its chapters (or music times from a comment).
- Change the language of a file's audio/subtitle tracks.
- Attach cover art / thumbnail to videos / audio from an external JPEG file or from a frame on the timeline.
- Change author, title, GPS position, recording time of a video.
- Fix rotation of a video that has the wrong orientation flag set.
- Loop a video / audio clip X times quickly without re-encoding, see #284.
- Convert a video or parts of it into X image files (not lossless)
- Losslessly split a video into one file per scene (note you probably have to shift segments, see #330.)
- Cut away silent parts from an audio/video file.
- Split video into segments to for example respect Twitter's 140 second limit.
- Annotate each segment with one or more tags, then use those tags to organize your segments or use it to create an output folder structure or hierarchy for your segments.
See also Recipe cookbook
Download
If you want to support my continued work on LosslessCut, and you want the advantage of a secure and simple installation process with automatic, stable updates, consider getting it from your favorite store:
For Linux I publish to the Snap Store:
If you prefer to download the executables manually, this will of course always be free (see also supported operating systems):
- macOS: Intel / Apple Silicon DMG (note that PKG does not work)
- Windows: 7zip (Windows 7, 8 and 8.1 is no longer supported after v3.50.0)
- Linux: x64 tar.bz2 / x64 AppImage / arm64 tar.bz2 / Raspberry Pi armv7l
- More releases - Note that APPX (Windows) and PKG (macOS) do not work)
- Latest nightly builds π§ͺ
Note that the above are the only official downloads. There are also unofficial releases like Flathub (not maintained by me). Difference between App Stores and GitHub download? Please see FAQ.
LosslessCut is maintained by me alone and will always remain free and open source. If it's useful to you, consider supporting my work. Alternatively donate to the FFmpeg team because they are doing the world a huge favor.
Supported formats
LosslessCut uses the Chromium browser's HTML5 video player, and not all formats/codecs are natively supported. Generally, the following file formats work: MP4, MOV, WebM, Matroska, OGG and WAV. Audio codecs: FLAC, MP3, Opus, PCM, Vorbis and AAC. Video codecs: H264, AV1, Theora, VP8, VP9 and H265 (with hardware decoder). Learn the difference between a codec and a format. Codecs and formats not listed above can still be converted to a supported format/codec from the File menu (try the option Fastest: FFmpeg-assisted playback first). A low quality version of the file will then be created and opened in the player. Note that the actual cut/export operation will still be performed on the original file, so it will be lossless. This allows for potentially opening any file that FFmpeg is able to decode.
Documentation
- Official website: LosslessCut.app
- Getting started, FAQ and usage documentation
- Troubleshooting and known issues and limitations
- Contributing
Video demos
- Common features
- How to add a thumbnail / cover art to an MP4
- How to add multi-language audio to a video
- Your video here?
Featured
- Console newsletter
- Hacker News 2024 2022 2020-10 2020-01 2016
- Wikipedia
- Your link here?
- theo (YouTube) 1 2
Attributions
- App icon made by Dimi Kazak from www.flaticon.com is licensed by CC 3.0 BY.
- Lottie animation by Chris Gannon.
- Thanks to Adi Abinun and @abdul-alhasany for UI work.
- Thanks to translators who helped translate the app. You can too!
- Thanks to everyone for supporting my open source work π
Made with β€οΈ in π³π΄
Follow me on GitHub, YouTube, IG, Twitter for more awesome content!
File: docs/index.md
Documentation
Please read the documentation before creating an issue. Thank you π
FAQ
- Q: Is there a keyboard shortcut to do X?
- A: First check the Keyboard shortcuts dialog. If you cannot find your shortcut there, see this issue.
- Q: How can I import multiple files into my project and edit them together?
- A: LosslessCut is not a non-linear editor (like Adobe Premiere) and it is not a linear editor (like Avidemux) - it is something in-between. You create segments on the timeline and the segments represent which portions of video will be exported. If you want more advanced workflows, you have to do it in multiple separate operations.
- Q: Can LosslessCut be automated using a CLI or API or do external post-processing?
- A: While it was never designed for advanced batching/automation, it does have a basic CLI and a HTTP API. More info: #980 #868.
- Q: I cannot find a particular button or function.
- A: Click the "advanced view" (baby icon) in the bottom left to enable additional functionality.
- Q: Where's the "Export options" dialog?
- A: Click the icon next to the export button (bottom right, "advanced view") to toggle whether to show this dialog before each export.
- Q: How to cut away a middle part of a video?
- A: Click the Yin Yang symbol ("advanced view"). It will invert the segments.
- Q What's the difference between the app in the Apple/Microsoft App Store vs. GitHub releases?
- A LosslessCut version in the App Stores is often a few versions behind the latest GitHub version, because I want to be sure that the new versions work perfectly before releasing in the App Stores. The GitHub version will contain new, untested features and may contain some bugs (even in existing functionality). I consider the newest GitHub versions to be a public "beta" test. Then, once I'm sure that the new version works well, I will release it in the App Stores as well to give a frictionless as possible experience for customers. They have exactly the same in-app features, except for a few platform limitations: Apple doesn't allow opening VOB files with App Store apps. Apple App Store apps run in a sandbox, and therefore need to prompt for output directory before allowing writing files.
- Q: What are all these
.llcfiles that get created?- A*: Their purpose is to save your segments so that when you exit/re-open LosslessCut you can continue where you left off. You can turn them off in app settings. See also #2115.
- Q: Can I download LosslessCut from other websites or package managers?
- A: Only the official sources specified here are maintained by me. Downloading LosslessCut from other sources such as other websites or package managers like WinGet or Homebrew entirely at your own risk, because those are not being maintained or vetted by me.
Commonly requested features
- Q: Can LosslessCut crop, resize, stretch, mirror/flip, reverse, overlay text/images, watermark, blur, redact, reduce quality/re-encode, create GIF, slideshow, burn subtitles, color grading, fade/transition between video clips, fade/combine/mix/merge audio tracks, mute audio channels or change audio volume?
- Q: When will you implement feature X?
- A: I have limited time and I have a lot of projects to work on, so I cannot promise any timeline. I will usually prioritize the issues with the most likes, see here for a list of the most popular issues.
- Q: Can LosslessCut do the same batch conversion operation on multiple files?
- A: Probably not, but you can probably do it yourself!
- Q: Is LosslessCut a portable app? Where is application data, settings and temp files stored?
- A: See LosslessCut is not a portable app. See Installation and files.
- Q: Can I export and replace the source file in-place?
- A: No, but you can export and automatically delete the input file (see keyboard shortcuts). If you want the output file to have the same name as the input file, you have to choose a different output folder.
- Q: Can you publish through winget, Flatpak, Docker or other software mangers?
- A: In general I don't want to maintain more build systems, but I could be open to linking to externally maintained build systems.
- Q: How to sync/shift audio/video tracks?
- A: This is not natively supported but it can be done with a workaround, see #216.
- Q: How do I overwrite input file?
- A: That is forbidden by design, for several reasons.
- Q: Can LosslessCut remember more choices, selections, settings?
- A: Maybe, see #371.
- Q: Does LosslessCut allow me to cut/merge multiple files in the same timeline?
- A: No, and I'm not sure if this will ever be implemented. Editing multiple files will have to be done in multiple steps. See #976.
See also π Recipe cookbook.
Troubleshooting
If you have a problem with the app or with a file, please see the π€ Troubleshooting, known issues and limitations.
Usage: Typical workflow
- Drag and drop a video file into player or use β/CTRL + O.
- SPACE to play/pause or β β , . or mouse/trackpad wheel to seek back/forth.
- Set the start/end times of the current segment by first moving the timeline cursor and then pressing I to set start time and O to set end time. You can also press hold SHIFT while dragging a segment with the mouse to move or resize it
- + to create another marker and repeat the previous step to convert it into a segment.
- B to split the segment at the timeline cursor.
- BACKSPACE to remove cutpoint/segment.
- If you create segments without an end time, it is a marker instead of a segment.
- Note that when exporting, all segments you create will be preserved and exported as new files. You can change this behavior with the Yin Yang symbol β―οΈ, in which case the behaviour is inverted and LosslessCut will instead skip all selected segments and export the parts between segments as files.
- Also note that start times will not be accurate, see Known issues.
- (optional) + to add another segment at the current cursor time. Then select the segment end time with O.
- (optional) If you want to merge all the selected segments into one file after cutting, change the
Export modefromSeparate filestoMerge cuts. - (optional) If you want to export to a certain output folder, press the
Working dir unsetbutton (defaults to same folder as source file). - (optional) If you want to change orientation, press the rotation button.
- (optional) By default, most audio, video and subtitle tracks from the input file will be cut and exported. Press the
Tracksbutton to customise and/or add new tracks from other files. - (optional) Select a new output format (remux).
- (optional) In the right-hand segments panel, right click a segment for options, or drag-drop to reorder. Segments will appear in this order in the merged output.
- When done, press the
Exportbutton (or E) to show an overview with export options. - (optional) Adjust any export options.
- (optional) Change the Output file name template.
- Then press
Exportagain to confirm the export - Press the Camera button (or C) if you want to take a JPEG/PNG snapshot from the current time.
- If you want to move the original file to trash, press the trash button.
- For best results you may need to trial and error with another output format (Matroska can hold nearly everything), change keyframe cut mode or disable some tracks (see known issues).
- Press SHIFT + / to view and edit all keyboard & mouse shortcuts.
- Note: The original video file will not be modified. Instead, a file is created file in the same directory as the original file with from/to timestamps in the file name.
- See Keyboard shortcuts dialog for more custom actions. (SHIFT + /)
Primer: Video/audio codecs vs. formats
Here's a little primer about video and audio formats for those not familiar. A common mistake when dealing with audio and video files, is to confuse formats, codecs, and file names. In short: A file's media format is a container that holds one or more codecs (audio/video/subtitle) inside of it. For example .mov is a container format, and H265/HEVC is a codec. Some formats support only a few kinds of codecs inside of them (e.g. .wav), while others support almost all codecs (e.g. Matroska). The most common formats are MP4/MOV (often .mp4,.mov,.m4a) and Matroska (often .mkv,.mka). Example: If you have a file named My video.mp4, this file most likely (but not necessarily) has the format MP4. Note that the extension of a file (in this case .mp4) doesn't really mean anything, and the file could in reality for example have the MOV format, or the extension could be .txt. Inside My video.mp4 there are multiple tracks/streams, each with their own codec. In this example, let's say that it contains one H264 track and one AAC track. In LosslessCut you can view and add/delete/modify these tracks.
Remuxing: If you change the output format in LosslessCut and export a file, you are remuxing the tracks/codecs into a different container format. When you do this, the operation is in theory lossless, meaning you will not lose any codec data and the different tracks will remain exactly the same, even though the format is now different (but some format metadata might get lost due to incompatibilities between container formats). There are limitations: Some popular codecs like VP8 or VP9 are not supported in popular formats like MP4, and some popular formats like Matroska (.mkv) are not natively supported in popular video players like iPhone or QuickTime.
If you want to reduce the size of a file using LosslessCut you have to "get rid of" something, either:
- Reduce the duration of the file (cut off start/end)
- Remove one or more tracks/streams (e.g. remove an audio track that you don't need)
Other than that you it's not possible convert a file losslessly to reduce its size, unless you re-encode and lose quality. For that, I recommend using a different tool like e.g. HandBrake.
Here is a great introduction to audio/video: howvideo.works.
Segments
Segments are the first class citizens of LosslessCut. A segment is a time-slice of your source media file, defined by a start time and an end time. When a segment has no end time, it's called a marker.
Segments have a segment number (their export order), and can optionally have a label and tags. Segments are be the basis of what gets exported.
Markers
A segment that has no end time is called a marker. It has no length and will be excluded from exports, but behaves similar to segments. Markers are distinctively visualized on the timeline with a vertical line and a number on top. You can convert markers to segments by setting their out-point (O). This can be done manually or automated with one of the many tools in LosslessCut. For example you can invert all segments on the timeline to convert all markers into segments.
Tracks
Tracks are different from segments, in that the tracks run in parallel. For example most videos have one video track and one audio track. When cutting, LosslessCut will cut all tracks equally, although there are some tracks that cannot be cut. The LosslessCut tracks panel is used to selectively enable/disable individual tracks for export and edit track or file metadata. It can also be used to change content disposition.
Import/export projects
LosslessCut default project file .llc is in a JSON5 format. It contains information about the segments in your timeline. LosslessCut also allows importing/exporting your project (segments) in a variety of file formats. See list of supported formats.
CSV files
- The CSV export/import function takes CSV files with one cut segment on each line. Each line contains three columns:
segment start,segment end,label. segment startandsegment endare expressed in seconds.segment endmay be empty, in that case it's a marker.- Use comma
,to separate the fields (not semicolon;)
Example `.csv` file
,56.9568,First segment starting at 0
70,842.33,"Another quoted label"
1234,,Last marker starting at 1234 secondsTSV files
Same as CSV but <tab> instead.