Releases: PaulMarchiset/ffkit
Release list
v1.6.0
FFkit for the WORLD - Welcome Linux and macOS!
Added
- Linux hardware encoding support with VAAPI.
- macOS platform support groundwork, including GPU detection and window integration.
Changed
- The job pipeline was refactored around a cleaner event layer and backend flow.
- Output handling was hardened to keep custom destinations and reduce path issues.
- Default output naming is now safer by default.
- Simple mode and command handling were cleaned up internally to support the new architecture.
- Settings, select controls, and placeholder hints were refined for better usability.
- A redesigned UX/UI elements and better update popup with clearer visuals.
Fixed
- Custom output destinations now survive conversion start.
- Failed jobs now surface the real ffmpeg error line.
- Output-path edge cases are handled more safely.
Known issues
- macOS traffic lights, macOS GPU detection, and Linux VAAPI still need real hardware verification.
- macOS builds are still unsigned / not notarized.
- Linux ffmpeg is still built from a nightly master snapshot.
- Linux QSV is not handled yet and falls back to software encoding.
v1.5.0
Batch processing, estimations and user presets !
Added
- File list & batch workflow: a new
FileListview to manage multiple uploads, batch conversions and see per-file status. - Size estimates and a batch progress view to preview expected output sizes before converting.
- Media info modal to inspect file metadata from the UI.
- Watermark support: add an image overlay with positioning options.
- Custom user presets: save and reuse encoding presets from the app.
- Update banner and size/estimate helpers to guide upgrade and packaging choices.
Changed
- SimpleMode & output model unified so user-chosen output destinations are preserved across flows.
- Extracted file-selection behavior into a reusable
useFileSelectionhook (enables FileList and cleaner file flows). - IPC layer folded into domain services for tighter, less error-prone integration between frontend and backend.
- Lots of UI/UX polish around batch flows, SimpleMode integration and settings to support the new features.
- FFmpeg 8.1.2 update
Fixed
- Custom destination override no longer gets lost when starting a conversion.
- E2E/test baseline repairs and small reliability fixes around job handling and command dispatch.
v1.4.0
Hello, ready to Baguette?
(A smoother experience across translation, themes, and job workflow)
Added
- French translation, alongside English localization support.
- Audio waveform preview in Trim.
- System notifications when a job finishes.
- A new way to open Settings from anywhere in the app.
- A clearer installer interface.
Changed
- The loading, cancel, and completion views were redesigned.
- The job progress and result screens were refreshed for readability.
- Theme support was expanded to include light, dark, and system modes, with smoother transitions.
- The text animation on the home screen can now be disabled.
- Settings layout and controls were cleaned up and made easier to use.
Fixed
- Job completion and progress flow are more consistent.
- Theme switching and UI state handling are more reliable.
v1.3.2
A patch release fixing two visible bugs — wildly inaccurate progress/ETA and wrong output file extensions — plus a faster job start.
Fixed
- Progress and ETA were 1000× off. ffmpeg reports encode position in
microseconds (under a misleadingly-namedout_time_mskey); it was read as
milliseconds. Now normalized correctly, so the progress bar and time-remaining
are accurate. - Output files now use the right extension. Each template declares the
container it actually encodes, so "to WebM" produces.webm, "to MOV".mov,
audio extracts.mp3/.wav, GIF.gif, etc. — instead of everything being
written as.mp4. (Stream-copy templates — strip audio/video, trim — still
keep.mp4to preserve prior behavior.)
Changed
- Internal cleanups: settings are loaded once at startup so
get_settingsis a
pure read, and IPC calls were consolidated behind service wrappers — no
user-facing behavior change.
v1.3.1
A patch release: smaller, version-pinned FFmpeg in the installer, plus CI fixes. No app behavior changes.
Changed
- Bundled FFmpeg is now pinned to the 8.1.1 "essentials" GPL build (from a rolling nightly), for a smaller and reproducible installer size. Covers the common codecs (x264/x265/VP8-9/AAC/Opus/…).
v1.3.0
The Settings screen was rebuilt for a cleaner !
Added
- Richer output-name patterns. The naming pattern now understands
{date},
{quality}, and{ext}on top of{name}— e.g.{name}-{quality}-{date}.
Changed
- Settings completely redesigned for a cleaner look that matches the rest of
the app. The whole screen was restyled: every row now carries an explanatory
subtitle, native OS dropdowns were replaced with custom styled menus, max
concurrent jobs uses a −/+ stepper, default quality is a segmented icon
picker, the running version and live update status are shown inline, and the
save button spans the full width. - Quieter visual language overall — selected states moved from accent-colored
highlights to neutral surface tones; the command editor gained a$prompt.
Fixed
- Updater artifacts are generated (
createUpdaterArtifacts: true), so the
signed manifest the in-app updater needs is produced at release time.
v1.2.0
Adds a working in-app updater and surfaces which hardware encoder will be used, on top of a large internal rewrite.
Added
- In-app updater. A "Check for updates" action in Settings checks GitHub
Releases, verifies the download's Ed25519 signature, shows download progress,
installs in place, and relaunches. - Frameless custom window with native-style minimize / maximize / close
controls.
Changed
- Documented the bundled FFmpeg build (FFmpeg 8.1, GPL) in
docs/bundled-binaries.md. - Large internal rearchitecture to React context + a services layer (jobs,
settings, files, updates) and an extracted backend progress reader — no
user-facing behavior change, but more stable state and progress handling.
Known issues
- Release builds are still Windows (NSIS) only: the bundle config lists all
targets, but CI builds onwindows-latest, so macOS/Linux installers are not
produced.
v1.1.0
Run and manage several conversions at once, with hardware encoders detected correctly and a more consistent interface.
Added
- Multiple concurrent jobs with a job dock — previously only one job was
tracked at a time. Background jobs are listed and can be dismissed/cleared. - Encoder badge showing the active hardware encoder and whether it was
probe-confirmed or kept based on detected GPU hardware (introduced with the
1.0.1 codec patch). - Command-replacement confirmation — prompts before discarding a command you
edited by hand when you apply a different preset. - Template parameter panel — dedicated inputs for templates that need values
(e.g. trim start/end, target framerate).
Changed
- Many small visual-consistency changes: colors and borders unified into a
single design-token palette, refreshed iOS app icons, and the brand fonts
(PP Mori / Sirba) committed into the build with additional weights.
Fixed
- Hardware encoders wrongly reported as unavailable. Detection previously
relied only on a synthetic probe encode, which could fail on capable systems
(notably NVENC). It is now backed by GPU-presence detection, so an encoder is
kept when the matching GPU is found. - Closed two event-listener race conditions (file drag-drop and job progress
events) that could drop events or leak listeners.
Initial release
Graduates from the 0.9.0 beta with categorized presets and real-time encode progress.
Added
- Categorized feature templates — Compress, Convert, Resize, Extract, Edit —
replacing the beta's flat list. - Animated job progress with phase-aware status words
(Probing → analysis → planning → encoding → finishing → Done). - Live encode stats — percentage, estimated time remaining, frames per
second, and output file size.
Changed
- Reworked Simple and Advanced mode layouts, styling, and command generation.
Known issues
- Shipped under the internal version string
0.1.0; the displayed version was
not aligned to1.xuntil 1.1.0.
Beta
The foundation: a two-mode GUI over a bundled FFmpeg, with one-click presets, hardware-encoder probing, drag-and-drop, and live job progress.
Added
- Simple and Advanced modes — one-click presets, or edit the underlying
FFmpeg command directly. - Bundled FFmpeg — ships as a sidecar binary inside the app; no system
install or PATH changes required. - One-click feature templates — compress (H.264/H.265), convert
(MP4/WebM/MOV), extract audio (MP3/WAV), resize (1080p/720p/480p), trim,
change framerate, make GIF, strip audio/video. - Quality presets — Low, Medium, Lossless.
- Hardware-encoder probing for NVENC, QSV, AMF, VideoToolbox, and VAAPI
(H.264 / HEVC), with automatic best-encoder selection. - Drag-and-drop file loading.
- Brand typography (PP Mori / Sirba) and the core dark theme.
- Media probing, live job progress, and persisted settings.
Known issues
- Encoder detection relied solely on probe encodes and could report a present
GPU encoder as unavailable (fixed in 1.1.0). - Feature templates were a single flat list with no category grouping (added in
1.0.0) OS and Windows only.