Skip to content

Releases: PaulMarchiset/ffkit

v1.6.0

Choose a tag to compare

@github-actions github-actions released this 07 Jul 18:29
7f615d8

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

Choose a tag to compare

@github-actions github-actions released this 01 Jul 18:13

Batch processing, estimations and user presets !

Added

  • File list & batch workflow: a new FileList view 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 useFileSelection hook (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

Choose a tag to compare

@github-actions github-actions released this 14 Jun 10:41

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

Choose a tag to compare

@github-actions github-actions released this 07 Jun 20:18

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-named out_time_ms key); 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 .mp4 to preserve prior behavior.)

Changed

  • Internal cleanups: settings are loaded once at startup so get_settings is a
    pure read, and IPC calls were consolidated behind service wrappers — no
    user-facing behavior change.

v1.3.1

Choose a tag to compare

@github-actions github-actions released this 06 Jun 23:46

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

Choose a tag to compare

@github-actions github-actions released this 06 Jun 22:45

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

Choose a tag to compare

@PaulMarchiset PaulMarchiset released this 31 May 17:26

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 on windows-latest, so macOS/Linux installers are not
    produced.

v1.1.0

Choose a tag to compare

@PaulMarchiset PaulMarchiset released this 21 May 19:14

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

Choose a tag to compare

@PaulMarchiset PaulMarchiset released this 18 May 21:03

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 to 1.x until 1.1.0.

Beta

Beta Pre-release
Pre-release

Choose a tag to compare

@PaulMarchiset PaulMarchiset released this 18 May 21:02

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.