github mifi/lossless-cut v3.70.0
3.70.0

pre-release2 hours ago

‼️ Note: this version has a bug where the Windows x64 ffmpeg.exe file is missing. Please use next version instead.

  • 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. hvc1 for Apple compatibility), language codes and metadata keys (title, language, handler_name), with warnings for invalid values
    • "Now" button for creation_time, multi-line editing for comment/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 hvc1 tag 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 .llc project 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 Origin header or a non-localhost Host header) 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-action arguments now accept JSON5 and are validated, and no longer try to open their arguments as files when no instance is running #3108; --settings-json is 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:

  • FFmpeg download scripts replaced by a single script/downloadFfmpeg.ts
  • .gitattributes forces LF line endings for lint-checked files (thanks @vizyul #3061)

Don't miss a new lossless-cut release

NewReleases is sending notifications on new releases.