LosslessCut is great for rough processing of large video files taken from a video camera, GoPro, drone, etc.

Lets you quickly extract the good parts from your videos and discard GB of data without losing quality. It doesn't do any decoding / encoding and is therefore extremely fast. Also allows for taking JPEG snapshots of the video at the selected time. This app uses the awesome ffmpeg for doing the grunt work. Also supports lossless cutting in the most common audio formats.

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. Or you can add a music or subtitle track to your video without needing to encode. Everything is extremely fast because it does an almost direct data copy, fueled by the awesome ffmpeg which does all the grunt work.

Features

  • Lossless cutting of most video and audio formats
  • Losslessly cut out parts of video/audio (for cutting away commercials etc.)
  • Lossless merge/concatenation of arbitrary files (with identical codecs parameters, e.g. from same camera)
  • Lossless stream editing: Combine arbitrary tracks from multiple files (ex. add music or subtitle track to a video file)
  • Losslessly extract all tracks from a file (extract video, audio, subtitle and other tracks from one file into separate files)
  • Remux into any compatible output format
  • Take full-resolution snapshots from videos in JPEG/PNG format
  • Manual input of cutpoint times
  • Apply a per-file timecode offset (and auto load timecode from file)
  • Change rotation/orientation metadata in videos
  • View technical data about all streams
  • Timeline zoom and frame/keyframe jumping for accurate cutting around keyframes
  • 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
  • Give labels to cut segments
  • View segment details, export/import cut segments as CSV
  • Import segments from: MP4/MKV chapters, Text file, YouTube, CSV, CUE, XML (DaVinci, Final Cut Pro)
  • Video thumbnails and audio waveform
  • Edit file metadata and per-stream metadata
  • Cut with chapter marks

Example lossless use cases

  • Cut out commercials from a recorded TV show
  • 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 a subtitle into a video
  • Quickly change a H264 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
  • Quickly cut a file by MP4/MKV chapters
  • Change the language of a file's audio/subtitle tracks
  • Change author, title, GPS position, recording time of a video
  • Export a list of cut times as a CSV EDL and process these in another tool
    • Without having to re-encode. You can also change format from TS to MP4 at the same time.
  • Fix rotation of a video that has the wrong orientation flag set
    • Great for rotating phone videos that come out the wrong way without actually re-encoding the video.
  • Loop a video / audio clip X times quickly without re-encoding

Re-encode only the audio track, leaving the video track

First export each track as individual files. Then use Handbrake or similar to re-encode the audio file. Then use the Tools->Merge in LosslessCut to merge the original video stream with your Handbrake output (or drag it into your original LosslessCut video to include it as a new track.)

Advanced multi-step workflows

Tip: you can use LosslessCut in multiple passes in order to achieve separate trimming of individual tracks:

  • Open a file an export all tracks
  • Open the exported track files independently and cut them as desired
  • Add the track back to the video and combine them to one output video

Supported formats:

Since LosslessCut is based on Chromium and uses the HTML5 video player, not all ffmpeg supported formats will be supported. The following formats/codecs should generally work: MP4, MOV, WebM, MKV, OGG, WAV, MP3, AAC, H264, Theora, VP8, VP9 For more information about supported formats / codecs, see https://www.chromium.org/audio-video.

Typical flow:

  • Drag drop a video file into player to load or use â/CTRL+O.
  • Press SPACE to play/pause
  • Select the cut start and end time
  • Press the scissors button to export the slice
  • Press the camera button to take a snapshot

The original video files will not be modified. Instead it creates a lossless export in the same directory as the original file with from/to timestamps. Note that the cut is currently not precise around the cutpoints, so video before/after the nearest keyframe will be lost. EXIF data is preserved.

Keyboard shortcuts:

  • SPACE, k Play/pause
  • j Slow down video
  • l Speed up video
  • ← Seek backward 1 sec
  • → Seek forward 1 sec
  • . (period) Tiny seek forward
  • , (comma) Tiny seek backward
  • i Mark in / cut start point
  • o Mark out / cut end point
  • e Export selection (in the same dir as the video)
  • c Capture snapshot (in the same dir as the video)

What's New

🆕 Markers: Segments that don't have any end time are now considered "markers". They are rendered differently, and are excluded from exports. Markers can be useful for bookmarking locations on the timeline and all markers can be batch exported as screenshots. More ideas for marker features are welcome!

  • Play multiple audio tracks simultaneously (with FFmpeg-assisted playback) #256 #936
  • Remember segment selected/deselected state inside .llc file #1329 #885 #371
  • Split timeline by byte size #1219
  • Modify segments by JavaScript expression #2128 #2305
  • Black/scene/silence detect
  • Remember dialog parameters (for current LosslessCut launch) #371 #2257
  • Allow selecting which audio/video track to use (current preview track) #2354
  • Streaming segment detection #2325
  • New shortcuts #2289
  • shift+alt+up Jump & seek to previous segment
  • shift+alt+down Jump & seek to next segment
  • shift+alt+pageup Jump & seek to first segment
  • shift+alt+pagedown Jump & seek to last segment
  • New action selectSegmentsAtCursor #1284 #254 (comment)
  • Improve waveform rendering #260
  • Make it faster and render around current time
  • Allow loading full waveform overview
  • Allow customising bottom waveform height
  • New file name template variables FILE_EXPORT_COUNT and EXPORT_COUNT #2296
  • Upgrade to electron v35 (drops support for macOS 10)
  • Upgrade to ffmpeg v7.1

More changes

  • Show loading indicator for mini waveform #260
  • change SEG_NUM and SEG_NUM_INT variables: they will now correspond to the original index of the segment as shown in the number on the segment list. new variables SELECTED_SEG_NUM and SELECTED_SEG_NUM_INT can be used for previous behavior (where the numbering is based on the segment's number in the list of selected segments).
  • All segments will now have a start time defined - llc project file version bumped to v2 (to migrate missing start times). Missing end time now means that the segment is a marker (previously it meant extend to end of timeline).
  • minor change: most operations will no longer take place if no segments selected #2335
  • Make "combine overlapping segments" also combine adjecent segments #2340
  • export confirm: allow adjusting all end frames too #2256
  • allow disabling remember window position closes #2240
  • don't create detected segments twice in mode 2, fixes #2236
  • improve segment list buttons
  • log more ffmpeg commands to cli
  • make playback rate indicator pop (when changing) - customer thought it was hard to see currently
  • implement CMX3600 EDL import #1340
  • import PBF as markers #993
  • fix webp on mac #1671
  • fix broken loop selected segments
  • Also: Removed old csv project auto import
  • Allow extracting markers as images
  • improve loader
  • fix time input placeholder #2346
  • Bugfixes and improvements