Auto-editor is a command-line application for automatically editing video and audio content. It analyzes media files to detect silent or still sections (based on audio loudness, motion, black frames, or subtitles) and automatically cuts them out, producing a more concise output. The tool supports a wide range of input and output formats, leveraging FFmpeg for media processing and offering export options tailored to popular video editing software like Adobe Premiere Pro, Final Cut Pro, DaVinci Resolve, Shotcut, and Kdenlive. The architecture is modular, with distinct modules for analysis (audio, motion, black detection, subtitle processing), rendering, export format handling, and command-line interface. Key features include a plugin-like system for edit methods (e.g., audio-based, motion-based), a caching mechanism to avoid redundant analysis, support for keyboard input via microphone, and integration with Whisper.cpp for speech transcription. The project also provides a web interface and supports advanced features like transitions, speed ramping, volume ducking, and keyframe-based effects. The codebase demonstrates strong engineering practices through its use of a custom expression language for defining edit decisions, SIMD-optimized performance critical paths, and a clear separation between media processing logic and user-facing functionality. Despite its complexity and reliance on external multimedia libraries, the project maintains active development with regular updates and cross-platform support.
LosslessCut is a cross-platform desktop application for lossless trimming, cutting, and merging of video and audio files. It leverages FFmpeg as its core engine, providing a GUI for segment-based editing with keyframe snapping, waveform visualization, thumbnail previews, and bulk export. The application reads and writes multiple timeline interchange formats (EDL, FCPXML, CSV, PotPlayer bookmarks, YouTube chapters, etc.) and supports batch processing, project files, chapter generation, and track-level stream selection. The architecture follows the Electron pattern: a main process (Node.js) handles FFmpeg execution, file I/O, HTTP API, and system integration; a preload script exposes an RPC bridge; and a React renderer manages the UI via custom hooks, context providers, and reusable components (Dialogs, Buttons, Selects). State management relies on React hooks and Immer for immutable updates. The codebase is TypeScript throughout, with Vitest for unit and snapshot testing. Key entry points include the main process entry at `src/main/index.ts`, the renderer entry at `src/renderer/src/index.tsx`, and the FFmpeg wrapper at `src/main/ffmpeg.ts`. Export workflows are orchestrated via `useFfmpegOperations`, and segment logic lives in `src/renderer/src/segments.ts` and `src/renderer/src/edlFormats.ts`. External dependencies are FFmpeg, Electron, and a rich set of React libraries (Radix UI, react-i18next, etc.). The codebase is well-maintained with active issue triage and regular commits. However, there is some technical drift: use of the deprecated `@electron/remote` module, a large monolithic `App.tsx` component, and reliance on manually bundled FFmpeg binaries. Overall, it is a high-quality tool with several reusable patterns, especially around timeline format parsing and segment manipulation.