Repository navigation
Releases: mifi/lossless-cut
Release list
3.70.2
- (Windows) Fix detecting silent and black scenes, which found nothing in 3.70.0 and 3.70.1 #3174 #3178
- Fix extracting attachments showing an error even though they were extracted, and a warning about unprocessable streams when exporting files with attachments
- (Linux) The arm64 build now includes FFmpeg
- (Linux) Docks show LosslessCut's own icon for the AppImage when its launcher is installed under another name, e.g. by AppImageLauncher #3172
- Help links open the documentation on losslesscut.app, and the Discord link in the error report dialog now opens Discord
See 3.70.0 for the full list of changes.
3.70.1
3.70.0
- Upgrade bundled FFmpeg to 8.1 (fixes CVE-2026-8461) #2943 #3139
- New "Theme" setting (System default / Dark / Light) - LosslessCut can now follow the OS dark/light theme #3113
- Metadata editor improvements #3135 #3136 #3140 #3141
- Copy track or file metadata from another track or another loaded file with the new "Copy from" menu
- Apply a track metadata value (e.g.
language) to all other tracks of the same type with one click - Edited tracks and files are now highlighted in the tracks dialog, and changes can be reset per track, per file or all at once
- Suggestions for common codec tags (e.g.
hvc1for Apple compatibility), language codes and metadata keys (title,language,handler_name), with warnings for invalid values - "Now" button for
creation_time, multi-line editing forcomment/description, Esc to cancel an edit, and a notice when MP4/MOV may drop custom keys - Export dialog warns when an HEVC track will lack the
hvc1tag needed for Apple devices
- New setting "Video preview scaling" (advanced), e.g. to not upscale small videos #3125 #3134 (based on #3132 by @mangod12)
- The Change FPS dialog now accepts fractions like
30000/1001#2492 - Register
.llcproject files, so they can be double-clicked to open in LosslessCut (Windows, macOS) #3070 - (Linux) LosslessCut can now be chosen as "Open with" app for video and audio files (AppImage, snap) #288
- (Linux) AppImage no longer requires libfuse2 #3022
- Press Escape to leave an input field (or Enter to commit a cut time), so that keyboard shortcuts work again #2942
- Inserting a variable or resetting the output file name template can now be undone #3017
- Ctrl+Q now quits LosslessCut on Windows and Linux #2136
- Trackpad pinch zooms the timeline faster, and Shift now works as the mouse wheel zoom modifier #3118
- Show a subtle timeline progress indicator in fullscreen
- Bring back the time display when hovering the timeline
- Track import, subtitle and project import dialogs now open in the folder of the current video #3088 #3019 (thanks @Doomguy-BFG9000 #3096)
- Show sample rate (kHz) instead of frame rate for audio tracks in the tracks dialog #3099
- Improve contrast of the timeline cursor and keyframes on top of segments #1199
- Add GitHub link in the Help menu #2950
- Pull latest translations
Bug fixes:
- Compensate for FFmpeg seeking too early in MKV/WebM files with B-frames, which made keyframe cuts start from the previous keyframe (tested on synthetic files, feedback welcome) #1216 #2804 #3131 (thanks to #1984 for the investigation)
- Fix audio-only (e.g. M4A) cuts starting several seconds early/late for files that only flag some audio packets as keyframes #3087
- Fix wrong duration of exported segments when cutting a file with cover art (e.g. split M4A audiobooks) #3009
- Fix playback and "convert to supported format" of audio with unknown/non-standard channel layouts (e.g. DV/DVCPRO
.mov) #3038 - Fix black/silent scene detection finding nothing with FFmpeg 8.1
- Fix audio continuing to play after closing a file #2907
- Fix file modification time of smart cut output (it was up to one keyframe interval off) #3116, and of fully re-encoded segments (lossy mode) #3067 (thanks @mklaber #3068)
- Fix export failing when a segment label contains characters that are invalid in file names (e.g.
:) and "Sanitize file names" is off #2986 #3121, or control characters on Windows #3123 - Fix file name sanitizer not replacing
/and some punctuation #2982 (thanks @chrisrode #2983) - Long output file names no longer lose their file extension when truncated, exporting segments from files with very long names no longer produces duplicate names, and long non-Latin names are truncated correctly #2171 #3114 #3115
- Fix chapters having zero length, or missing when an input chapter has no title, when merging files that already have chapters #3124
- The merge compatibility check no longer warns about small differences in average frame rate #2759
- When the custom merge output file name template is invalid, the fallback name no longer says "cut-merged" #3115
- Fix typed cut times being lost when using frame or seconds timecode formats #2969 #3129; cut time inputs now keep the typed time when clicking elsewhere (Escape still cancels) #3133
- Fix importing Final Cut Pro / DaVinci Resolve XML files with only one clip or whole second times #3127
- Fix mouse wheel zoom direction (wheel up / pinch out zooms in again) #2962, and mouse wheel seeking sometimes stepping backwards #3118
- OS media keys no longer interfere with playback, and no empty media control is shown in the OS #3028
- The "hevc_mp4toannexb" track option toggle now correctly shows whether it is enabled #3135
- (Linux snap) Fix crash on startup #3002 #3026
- (Windows) Show a proper "FFmpeg executable not found" error instead of an error report when the (custom) FFmpeg executable is missing #2993
- Show a clear error when the source file was moved/deleted before extracting frames or tracks #3023
- Fix digits being laid out vertically instead of horizontally (regression in 3.69.0) #2911
- Simple mode: improvements, and no longer overwrite the merged files name template #2927
Other notable changes:
- "Create segments from keyframes" moved from the Tools menu to the Segments menu #3074 (thanks @ArianMoeini #3092)
- "Remove selected segments" moved to the bottom of the segments context menu, to avoid accidental clicks
- HTTP API: requests coming from a web browser (with an
Originheader or a non-localhostHostheader) are now rejected, to prevent websites from controlling LosslessCut. See API docs - CLI: relative file paths are now resolved correctly when LosslessCut is already running #1571 #3104 (based on a patch by Bell)
- CLI:
--keyboard-actionarguments now accept JSON5 and are validated, and no longer try to open their arguments as files when no instance is running #3108;--settings-jsonis now validated and invalid input is ignored instead of being written to the config #3106 - Security hardening: disable the RunAsNode and other unneeded Electron fuses #3059
- Upgrade Electron to 42.11.15 (security fixes), and fix the tar decompression DoS vulnerability in build dependencies
- Many other improvements and fixes
Dev:
3.69.0
Warning:
- Windows arm64 version is missing ffmpeg.exe - please use nightly build instead for Windows ARM.
- There is a bug when changing files while playing back where playback continues in the background, please use latest nightly build instead if you're experiencing this issue. #2907
Release notes:
- Add lossless cropping & aspect ratio override via bitstream and container metadata #643
- Alow shifting tracks for each file (
-itsoffset) #216 - Add "decimate video" tool to filter away all non-keyframes #2111
- Add Windows ARM 64 native build with native ffmpeg
- Move timecode out of timeline and make it copy-able #2592 #2691 #2800 #483 #2808
- Upgrade Electron to latest
- Add new "opposing" align mode #2654
- Add FFmpeg
-hwaccel autosetting for hardware acceleration of certain operations - Add API events
export-startandexport-complete - Allow deleting track metadata #2819
- Improve shift segments dialog #2839
- Show keyboard shortcuts inside button tooltips in UI
- Warn if trying to cut with too few keyframes around cutpoint #516 #2780 #2756
- (Linux) include app name in notification #2794
- Pull latest translations
Other notable changes:
- Advanced output directory selector #2101 #2115 #2755
- increase max file name length to 250 (truncation) #2779
- don't reset playback speed when using special playback modes #2889
- preserve chapters when merging files that already have chapters
- don't merge adjacent segments in combineOverlappingSegments #2896
- don't transfer segment name when filling gaps #2754
- always scroll up to zoom in #2703 #2786
- increase max keyframes to 10000
- Don't bind ctrl/cmd+c by default (they interfer with copying text)
- Many other improvements and fixes
3.68.0
Note: there's a bug with the app size of this version being larger.
Note: LosslessCut-win-x64.appx and LosslessCut-mac-universal.pkg are for the App Stores and cannot be used.
- Changed: Invert scroll zoom direction #2703
- Changed:
toggleStripAllaction to not invert selection - instead actually toggle all on/off - New setting: When opening a new file, ask about import chapters: "Always", "never" or "ask" #2699
- Add "Copy to clipboard and close" button for YouTube chapters #2675
- Add new keyboard actions for existing functions #2699
selectSegmentsByLabelselectSegmentsByExprlabelSelectedSegmentsmutateSegmentsByExpr
- Add new template variable
FILESfor all templates. It is a list ofSourceFileobjects. #2694 - Improve documentation
- Enable language Norsk Bokmål 🇳🇴
- Pull latest translations
- Bugfixes, improvements and dependency upgrades
3.67.2
- Remove "Fix video codec tag / ID" option (no more auto codec tag "fixing" as it turned out to also cause problems for some). Instead you can override codec tag for individual tracks in the "tracks" dialog
- Add a
hevc_metadata=aud=insertbitstream filter in the track editor #2518 #2626 - Improve dialogs #2622
- Fix capture frame timestamp transfer #2620
- Fix system language not saving #2606
- Remember advanced settings setting while the app runs #371
- Blur export button when clicking it to prevent it from holding focus #2625
- Fix broken selecting current segment when looping segments playback
- Show estimated segment file size in segment list #2630
- New action
generateOverviewWaveform#2490 - Allow testing/triggering actions from keyboard shortcuts page
- Encode flac when merging too #2636
- Enable flatpak #2471
- Fix segments history bug when history limit (100) exceeded
3.67.1
3.67.0
- Improve UI and accessibility #2561 (remove abandoned evergreen-ui and reduce usage of sweetalert)
- Use Shift + mouse click/drag to move/resize segments (configurable modifier key) #517 #2595 #483
- Use native web keyboard events (
KeyboardEvent.code): This makes keybindings consistently independent of keyboard layout. Also don't trigger hotkeys when some UI element or dialog is focused. - New action
play-selected-segments(once) #2557 - Implement file name template also for merge files #2403 #2489 #2054 #2400
- Persist whether or not window was maximized #2574 #989 #2396
- Persist settings
waveformMode,thumbnailsEnabled,keyframesEnabled#843 #2539 #371 - New reduce motion setting to override OS default - also improve reduce motion to include more animations/transitions #2580 #1410 #880 #371
- Set minimum window dimensions to 300x300 #2574
- Add
fixCodecTagoption #2518 - Always show invert mode button #2576 to avoid confusion
- Many more bugfixes and improvements
- Dialog buttons are now OS-dependent
- Add "What's new" #669
3.66.1
- Everything from v3.65.0 (pre-release)
- Upgraded FFmpeg to 8.0
- Upgraded Electron to 38 - note: they dropped support for macOS 11
‼️ - Drastically improve performance of FFmpeg-assisted playback for non-natively supported codecs/formats.
- Improve UI performance and increase max segments to 1000 #2473
- Add new file name template variables:
CUT_DURATION,CUT_FROM_NUM,CUT_TO_NUM#2486 - New
SEG_LABELarray in cut+merge mode #2428 - Toggle tracks by expression #2435 #1465 #371
- Cut also externally added tracks #896
- Allow setting timeline zero offset to current cursor time #2512 - this effectively also means allowing a negative time offset (new action
makeCursorTimeZero) - New keyboard actions:
toggleDarkMode: Toggle dark modetoggleStripCurrentFilter: Toggle tracks using current filtertoggleStripAll: Keep or discard all trackstoggleStripSubtitle: Keep or discard subtitle trackstoggleStripVideo: Keep or discard video tracks
- Allow importing CSV with 2 columns #2412
- CSV export/import tags as extra columns #2507
- Show number in batch list #2357
- Improve dark mode #1969
- Transfer labels when inverting segments #2362
- Improve creating segments flexibility: these functions now apply to the current segment. If not run without any segment, they will apply to whole timeline (like before). This allows things like running a binary search, see #2427. Applies to the following functions: "Create num segments", "Create fixed duration segments", "Create random segments"
Allow drag dropping files to batch list #2400 and tracks panel - Add new display format "total seconds" #254
- Show markers also in inverse mode #2408
- Implement basic OTIO importer #2441 #1340
- Allow utf8 letters when not in sanitize mode #889 #2482
- Allow spaces in file name, even if sanitize is enabled #2498
- Indicate when we are on a keyframe (approximately) #2155
- Select segment under cursor when playing back current segments #2456
- Allow reading all keyframes (action:
readAllKeyframesand menu item from file or current segment) #2490 #563 - Don't fill chapter gaps for matroska (it seems to support gaps)
- Experimental lossy encoding mode #372 e.g.
--lossy-mode "{ videoEncoder: 'libx264' }" - Support DJI Air 3 GPS from SRT (GPS map)
- When detecting segments, will now auto delete the currently selected segment #2427
- Many more bugfixes and improvements
3.65.0
Note: this version has some bugs related to playback/preview and rotation doesn't work. I'm waiting for Electron to possibly solve these issues before releasing a new version. In the meantime you can test with latest nightly build.
New features 🔥
- 🆕 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
.llcfile #1329 #885 #371 - 💿 Split timeline by byte size #1219
- Modify segments by JavaScript expression #2128 #2305
- Black/scene/silence detect
- 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_COUNTandEXPORT_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_NUMandSEG_NUM_INTvariables: they will now correspond to the original index of the segment as shown in the number on the segment list. new variablesSELECTED_SEG_NUMandSELECTED_SEG_NUM_INTcan 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
starttimes). 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 😉