Repository navigation
Releases
spleeter-onnx-1
Spleeter 5 stems by Deezer, under the MIT License, converted to ONNX here. It splits music into singing, piano, drums, bass and the rest: FFmpeg GUI runs it on the music Bandit v2 finds, to lay each instrument on the video as a track of its own.
| File | What it is |
|---|---|
| spleeter-5stems.onnx | Its five U-Nets in one file, converted from Deezer's TensorFlow checkpoint |
| LICENSE.txt | The MIT License, as upstream |
| NOTICE.txt | What the conversion does |
| PROVENANCE.txt, second build | Everything the files were made from, by each build |
| check.json | How the files compare with the authors' model, as each build checked them |
| SHA256SUMS.txt | The files' SHA-256, also below |
Made from what scripts/spleeter-onnx.lock pins (the upstream code, weights and licence, every hash checked) at 5988996, by the workflow, twice (ubuntu-24.04, and ubuntu-26.04 on two cores), with byte-identical results. Nothing was trained or changed: the NOTICE says what the conversion does. The licence and the notice are also inside each ONNX file (its metadata).
533f0f260e6bfd14f55027594ba443e9d5c1cd8a1507a67000fa312d5b2374cf spleeter-5stems.onnx
Paper: Spleeter: a fast and efficient music source separation tool with pre-trained models (Romain Hennequin et al., Deezer Research, JOSS 2020). Source: deezer/spleeter. The app never downloads a model by itself: the user's browser does, and the app checks the file against the SHA-256 it pins. Every model the app can use: docs/MODELS.md. This is not legal advice.
bandit-onnx-2
Bandit v2 (multilingual) by Karn N. Watcharasupat, Chih-Wei Wu and Iroro Orife, converted to ONNX here. It splits any sound into its dialogue, its music and its effects: FFmpeg GUI uses it to set a voice apart (its level, the dub) and to lay each part on the video as a track of its own.
Licence. The weights are under CC BY-SA 4.0 (Zenodo record 12701995), the authors' code under the Apache License 2.0. This ONNX file is an adaptation of those weights, and is licensed under CC BY-SA 4.0 too. Attribution: "Bandit v2, multilingual checkpoint" by Karn N. Watcharasupat, Chih-Wei Wu and Iroro Orife, from the record above, licensed CC BY-SA 4.0. Changed: converted to ONNX, with nothing trained; its frequency weights are kept as 32-bit floats and its masks put together in one step per part (see NOTICE.txt).
| File | What it is |
|---|---|
| bandit-v2-multi.onnx | The network, converted: from a sound's spectrogram, the masks of dialogue, music and effects |
| LICENSE.txt | The CC BY-SA 4.0 legal code (the weights' licence, and this file's) |
| NOTICE.txt | The attribution and what the conversion changes |
| PROVENANCE.txt, second build | Everything the files were made from, by each build |
| check.json | How the files compare with the authors' model, as each build checked them |
| SHA256SUMS.txt | The files' SHA-256, also below |
It replaces bandit-onnx-1 (built at 5988996), which put the masks together band by band, in 64-bit floats: the same masks, from a graph nearly three times bigger and slower to load. It stays published, unchanged.
Made from what scripts/bandit-onnx.lock pins (the upstream code, weights and licence, every hash checked) at e6ae5e7, by the workflow, twice (ubuntu-24.04, and ubuntu-26.04 on two cores), with byte-identical results. Nothing was trained: the NOTICE says what the conversion does. The licence and the notice are also inside each ONNX file (its metadata).
7836f01622021adc2fe2570f263ec365ef7677d598b51d27b015b94d869f2ff2 bandit-v2-multi.onnx
Paper: Remastering Divide and Remaster: A Cinematic Audio Source Separation Dataset with Multilingual Support (Karn N. Watcharasupat, Chih-Wei Wu, Iroro Orife, IEEE IS2 2024). Sources: kwatcharasupat/bandit-v2, the weights. The app never downloads a model by itself: the user's browser does, and the app checks the file against the SHA-256 it pins. Every model the app can use: docs/MODELS.md. This is not legal advice.
bandit-onnx-1
Bandit v2 (multilingual) by Karn N. Watcharasupat, Chih-Wei Wu and Iroro Orife, converted to ONNX here. It splits any sound into its dialogue, its music and its effects: FFmpeg GUI uses it to set a voice apart (its level, the dub) and to lay each part on the video as a track of its own.
Licence. The weights are under CC BY-SA 4.0 (Zenodo record 12701995), the authors' code under the Apache License 2.0. This ONNX file is an adaptation of those weights, and is licensed under CC BY-SA 4.0 too. Attribution: "Bandit v2, multilingual checkpoint" by Karn N. Watcharasupat, Chih-Wei Wu and Iroro Orife, from the record above, licensed CC BY-SA 4.0. Changed: converted to ONNX, with nothing trained or changed in its weights (see NOTICE.txt).
| File | What it is |
|---|---|
| bandit-v2-multi.onnx | The network, converted: from a sound's spectrogram, the masks of dialogue, music and effects |
| LICENSE.txt | The CC BY-SA 4.0 legal code (the weights' licence, and this file's) |
| NOTICE.txt | The attribution and what the conversion changes |
| PROVENANCE.txt, second build | Everything the files were made from, by each build |
| check.json | How the files compare with the authors' model, as each build checked them |
| SHA256SUMS.txt | The files' SHA-256, also below |
Made from what scripts/bandit-onnx.lock pins (the upstream code, weights and licence, every hash checked) at 5988996, by the workflow, twice (ubuntu-24.04, and ubuntu-26.04 on two cores), with byte-identical results. Nothing was trained or changed: the NOTICE says what the conversion does. The licence and the notice are also inside each ONNX file (its metadata).
1601a8dc45ddea3b0d3d16378c9e0d42ba7e2b6cef3bd832d5f8e93808a65fd4 bandit-v2-multi.onnx
Paper: Remastering Divide and Remaster: A Cinematic Audio Source Separation Dataset with Multilingual Support (Karn N. Watcharasupat, Chih-Wei Wu, Iroro Orife, IEEE IS2 2024). Sources: kwatcharasupat/bandit-v2, the weights. The app never downloads a model by itself: the user's browser does, and the app checks the file against the SHA-256 it pins. Every model the app can use: docs/MODELS.md. This is not legal advice.
edgetam-onnx-1
EdgeTAM by Meta, a Segment Anything 2 made for phones, under the Apache License 2.0, converted to ONNX here. From points marked "part of it" or "not", it finds the whole thing they point at: FFmpeg GUI uses it to correct a cut-out with brushes and for its "lift the subject" gesture.
| File | What it is |
|---|---|
| edgetam-image-encoder.onnx | The image encoder, converted: what the model sees in the picture, once per picture |
| edgetam-mask-decoder.onnx | The mask decoder, converted: the mask from the points, at every touch |
| LICENSE | The Apache License 2.0, as upstream |
| NOTICE | What the conversion does (Apache License 2.0, section 4(b)) |
| PROVENANCE, second build | Everything the files were made from, by each build |
| check.json | How the files compare with the authors' model, as each build checked them |
| SHA256SUMS | The files' SHA-256, also below |
Made from what scripts/edgetam-onnx.lock pins (the upstream code, weights and licence, every hash checked) at 480cc93, by the workflow, twice (ubuntu-24.04, and ubuntu-26.04 on two cores), with byte-identical results. Nothing was trained or changed: the NOTICE says what the conversion does. The licence and the notice are also inside each ONNX file (its metadata).
692c9365d13fbbd8fd5b32bdd0c7bd0377696bb0b20fa7d97f8a3a3c1e776f0d edgetam-image-encoder.onnx
df71726f03f1eb11ab0fda4648ad024569fbbe26ddd69e2a16354432158035a2 edgetam-mask-decoder.onnx
Paper: EdgeTAM: On-Device Track Anything Model (Chong Zhou et al., Meta, CVPR 2025). Source: facebookresearch/EdgeTAM. The app never downloads a model by itself: the user's browser does, and the app checks the file against the SHA-256 it pins. Every model the app can use: docs/MODELS.md. This is not legal advice.
birefnet-lite-onnx-1
BiRefNet-lite (general use) by Zheng Peng et al., under the MIT License, converted to ONNX here. It finds the subject of a picture with fine edges, hair included: FFmpeg GUI uses it for its finest subject cut-out.
| File | What it is |
|---|---|
| birefnet-lite-general.onnx | The model, converted: from a picture, its subject's mask |
| LICENSE.txt | The MIT License, as upstream |
| NOTICE.txt | What the conversion does |
| PROVENANCE.txt, second build | Everything the files were made from, by each build |
| check.json | How the files compare with the authors' model, as each build checked them |
| SHA256SUMS.txt | The files' SHA-256, also below |
Made from what scripts/birefnet-onnx.lock pins (the upstream code, weights and licence, every hash checked) at eb3f9c8, by the workflow, twice (ubuntu-24.04, and ubuntu-26.04 on two cores), with byte-identical results. Nothing was trained or changed: the NOTICE says what the conversion does. The licence and the notice are also inside each ONNX file (its metadata).
8b75d639b11e984fc7d3a6c0818a2dd2f62df0b19997e4e822099e72f8d9b774 birefnet-lite-general.onnx
Paper: Bilateral Reference for High-Resolution Dichotomous Image Segmentation (Zheng Peng et al., CAAI AIR 2024). Source: ZhengPeng7/BiRefNet. The app never downloads a model by itself: the user's browser does, and the app checks the file against the SHA-256 it pins. Every model the app can use: docs/MODELS.md. This is not legal advice.
ai-markers-1
The invisible AI marks of FFmpeg GUI: AudioSeal by Meta, converted to ONNX here, and TrustMark Q by Adobe, Adobe's own ONNX files unchanged, both under the MIT License. The app imports them before any other model and marks with them what its models make (EU AI Act, Article 50(2)).
The marks are made to carry nothing but "made with AI": the same for everyone, no identifier. That they carry none is not certain: see the README before sharing what must not lead back to you.
| File | What it is |
|---|---|
| audioseal-generator.onnx | AudioSeal's generator, converted: writes the mark into speech |
| audioseal-detector.onnx | AudioSeal's detector, converted: finds it |
| trustmark-encoder-q.onnx | TrustMark Q's encoder, Adobe's file: writes the mark into pictures |
| trustmark-decoder-q.onnx | TrustMark Q's decoder, Adobe's file: finds it |
| NOTICE.txt | What was converted and how, what is unchanged |
| PROVENANCE.txt, second build | Everything the files were made from |
| check.json | How the marks held up (compression, resizing), and that nothing unmarked was found marked |
| SHA256SUMS.txt | The files' SHA-256, also below |
| LICENSE-audioseal.txt, LICENSE-trustmark.txt | Their licences |
Made from what scripts/ai-markers.lock pins at e85f813, by the workflow, twice (ubuntu-24.04, and ubuntu-26.04 on two cores), with byte-identical results.
a389f9a5e3fa67a6a3a13480c3799875a5f3251d2d542fada6bd93b5c2bb53fa audioseal-detector.onnx
ecb230f2d38de821f72f04eda9c40b82f102e058263848f892be4f6e189dd0e7 audioseal-generator.onnx
ee3268f057c9dabef680e169302f5973d0589feea86189ed229a896cc3aa88df trustmark-decoder-q.onnx
19b3d1b25836130ffd78775a8f61539f993375d1823ef0e59ba5b8dffb4f892d trustmark-encoder-q.onnx
Papers: AudioSeal (R. San Roman et al., ICML 2024), TrustMark (T. Bui, S. Agarwal, J. Collomosse, ICCV 2025). Sources: facebookresearch/audioseal, adobe/trustmark. Every model the app can use: docs/MODELS.md. This is not legal advice.
Release v0.2-alpha
FFmpeg GUI v0.2-alpha
The second alpha, and a big one: the editor learns to translate and dub videos, separate a voice from the music, erase objects from pictures, draw vector graphics and write FFmpeg commands with you, and the transitions go from 25 to 101. As before, everything runs on your phone, fully offline, with the FFmpeg command always in view.
What's new
Smart features, on the phone
- Subtitle translation: subtitles (spoken ones, or any .srt / .ass file) are translated on the phone with Opus-MT, each line keeping its timing. The source language is detected automatically, and pairs without a model of their own go through English. Any language pair can be added.
- Dubbing: a natural voice reads every subtitle line where it appears, sped up slightly where a line would not fit, and the dub becomes a sound of its own on the timeline. Kokoro (54 voices in 7 languages) or Piper voices (125 voices in 34 languages listed, or any Piper voice you import), much quicker on a phone.
- One-tap dub: the editor's Dub tool listens to the video, translates it, sets the original voice apart and lays the new one, each step shown as it goes and undone on its own.
- Voice and music apart (Spleeter): keep the voice alone, remove it (karaoke), bring it forward for dialogue, or mix the two, per clip, heard live in the preview.
- Magic eraser in the picture editor and on overlays: paint over what should go and it is filled in with what should be behind it, with MI-GAN (quick) or LaMa (precise).
- Voices whose licence forbids commercial use, or whose licence is unknown, are marked and confirmed before every dub, and every file made with a dub is tagged as AI-generated (EU AI Act, Article 50).
- Every model is still imported by you and checked against a pinned SHA-256 before use. The app still has no internet permission.
Video editor
- 101 transitions in twelve families (basic, camera, motion, slide, wipe, light, glitch, blur, shapes, masks, 3D, social), each previewed live with the same math as the export.
- 3D punches (a fist punches the clip away, or into the picture) and a "technical difficulties" TV break with its own test card and tune.
- Effects on their own lane: sparks, fireworks, flames, smoke, snow, rain, confetti, dust, bokeh, hearts and math, plus magic transitions (fairy wand, explosion, flash). All drawn by the project's own scripts.
- 14 looks that change the picture while they last (black and white, old film, VHS, glitch, TV static, prism, shake, pulse, rainbow, strobe, pixelate, invert, mirror, glow), each with its strength, intensity and speed.
- Texts: outline, soft shadow, a box behind them, and your own .ttf / .otf fonts.
- Shapes, blend modes and a layers list to reorder everything by dragging.
- Audio mixer with linked clips; add many files at once; drag clips to reorder them.
- Live scrubbing, frame-by-frame steps and a smoother timeline.
New tools
- Command studio: write your own FFmpeg commands with suggestions from what the bundled FFmpeg supports, its docs at the cursor, a checker, recipes, a history with favourites and extra files of your own.
- SVG editor: shapes, text, pen curves, connectors, paint bucket, linear and radial gradients with any number of stops, boolean operations (union, subtract, intersect, exclude, divide), live symmetry and kaleidoscope, snapping to points and grids, layers. Any picture can be traced into a drawing, its shaded areas filled with fitted gradients.
- Create from scratch: a blank picture of any size, transparent, in one colour or a gradient, to draw, write and lay things on; your own presets are kept on the home screen.
- Compressor: make a video, picture or sound smaller, at a quality level (same quality, balanced, smallest) or to fit a target size (videos in two x265 passes, PNGs in 256 colours if you like).
Pictures
- Canvas resizing, rounded corners, layers, shapes and blend modes in the picture editor.
Around the app
- A new format picker and redesigned settings.
- A monochrome theme option, also on the welcome pages.
- A check for enough free storage before an export starts.
- Licences: every licence and notice of the app and of what it contains can now be read inside the app (Settings > About > Licences), with a clear statement of what is under the EUPL and what is under the GPL.
- Fixes: low-contrast text, toolbar outline, projects with a look reporting a missing file, and more.
Requirements
- Android 10 (API 29) or newer.
- 64-bit device (arm64-v8a or x86_64).
- The smart features need their models, downloaded with your browser and imported once from Settings > Smart features (from about 28 MB for the quick eraser to several hundred MB for speech and dubbing).
Known limitations and feedback
This is still an alpha. Most of what is listed above is new, and real-world files and devices vary wildly: expect rough edges, especially in the smart features on phones with little memory. If something breaks, please open an issue with your device model, Android version, the kind of file and the steps to reproduce it.
About updates: I'm a student developing FFmpeg GUI in my spare time. Releases ship when studies and exams allow. Issues and pull requests are read even during quiet periods.
Verifying this release
Signing certificate SHA-256: 46:4A:2F:87:7D:67:E9:6C:52:64:F3:19:FD:C8:DD:C0:5B:B6:34:C2:77:36:50:18:A2:A1:94:5F:51:A1:F9:5F
unsigned-sha256: 7c01e764a2e3ed8ca35ac5af82baf058b3577a71288b2766be48d0cff410140f
FFmpeg runtime (AAR) SHA-256: 3081cc13da8d82b5322161b7310613f2bf05bcf0ee820e15c685d5b3e4776fc2
Built, and rebuilt identical by IzzyOnDroid's builder, in this run.
Complete source of the APK (GPL-3.0): ffmpeg-gui-v0.2-alpha-source.tar.xz, SHA-256 0d992867c9b6d5d485f0621fdac56c7c18b667817e132a81a6ce55ad62fcba6c.
FFmpeg GUI's source code is free software under the EUPL v1.2. This APK also contains FFmpeg built with GPL libraries and eSpeak NG, so, as allowed by Article 5 of the EUPL, the APK as a whole is distributed under the GNU GPL v3; its complete source is attached to this release. Provided as is, without any warranty. If it's useful to you, you can support it on Ko-Fi!
Release v0.1-alpha
FFmpeg GUI v0.1-alpha
The first public release of FFmpeg GUI: a full-featured video, audio and photo editor for Android, powered by FFmpeg and on-device AI, in a responsive Material 3 Expressive interface.
Everything runs fully offline. Every change shows in a live preview before anything is rendered, and the generated FFmpeg command is always visible and editable.
What's in this release
🎬 Video editor
- Timeline of clips from one or more files: split, trim, reorder, duplicate, freeze frames, and photos as clips with Ken Burns motion.
- Speed controls with ready-made ramps and hand-drawn curves, reverse, crop, aspect ratio, rotation, mirroring, resolution and frame rate.
- 25 transitions between clips, previewed live.
- Keyframes with easing for zoom, pan, colour and volume; animated texts and overlays.
- Texts and picture-in-picture overlays on their own tracks, chroma key and colour key with spill removal.
- Multiple sound tracks with real waveforms, volume, speed, pitch shift, fades and equaliser.
- Burned-in subtitles (
.srt,.ass), undo and redo of every edit. - HDR: HDR videos (HDR10, HLG) tone-mapped to SDR, or an HDR look for SDR videos saved as real HDR (HLG, BT.2020, HEVC Main 10).
🧠 On-device smart features
- Subtitles from speech: speech recognition on the phone in 25 European languages, with styles, word highlighting and
.srtexport. - Transcripts: any audio or video file written down as
.txtor.srt, corrected line by line. - Subject cut-out: background removal without a green screen, refined with a magic brush (SlimSAM) and a precise brush.
🎧 Audio editor
- Dedicated editor with a large waveform, heard live as you edit.
- Ten-band equaliser with a draggable curve and presets, filters, noise gate, compressor, limiter, echo, reverb and modulation effects.
- EBU R128 loudness levelling (
loudnorm), silence trimming and splitting into parts. - Tags and cover art for MP3, M4A, FLAC, OGG and OPUS.
🖼️ Pictures & GIF
- Photo editor for any picture or any frame of a video, and export of every frame as a ZIP.
- Crop, straighten, perspective, light and colour adjustments, filters and effects.
- Background removal with transparency (PNG, WEBP, TIFF) and HDR look saved as Ultra HDR JPG.
- GIF editor with width, frame rate, colours, dithering and loops, previewed exactly as exported.
🛠️ Core
- Transparent FFmpeg: the generated command is always in view; copy it, edit it, or replace it with your own.
- Hardware video encoding where supported; exports keep running in the background, with progress in a notification.
- Layouts for phones, landscape, tablets and large screens.
Security and privacy by design
An app that handles your private media has to be trustworthy and verifiable, so a large part of the work behind this release went into the app's isolation and into hardening the supply chain.
On your device
- No internet access: the app does not declare the
INTERNETpermission, so Android does not let it open network sockets at all. - No unnecessary permissions: no storage, media, camera or microphone permission. Files arrive only through the system file picker or a share. The build fails if any dependency tries to add one of these permissions.
- No analytics or telemetry: no trackers, no crash reporters, no ads, no accounts.
- Safe file intake: raw
file://paths and links to the app's own private files are rejected, so other apps cannot trick it into reading or exposing them. - Locked-down playback: only the system and the app itself can control the media session.
- AI models checked before use: the models are not bundled and never downloaded by the app; you import them yourself, and every file must match a pinned SHA-256.
In the build
- FFmpeg built from source: FFmpegKitNext and the 52 libraries it compiles are pinned to exact commits, verified before and after the build, and compiled in an isolated Nix environment with a pinned toolchain.
- Reproducible FFmpeg runtime: it is built twice, independently, on different machines, and published only if both builds are identical byte for byte. The app accepts no FFmpeg runtime other than the one with that exact SHA-256.
- Pinned build tools: the FFmpeg build's Gradle distribution and every dependency it downloads are checked against pinned SHA-256 digests.
- Reproducible APK: the APK is built from the release tag in a clean environment, rebuilt from scratch with IzzyOnDroid's verification builder (rbtlog), and published only if both builds are identical byte for byte.
- Offline signing: the signing key never leaves my computer; the CI holds no secrets.
In short: the APK you install is built from the published source code, and anyone can check it.
Note
Hardening reduces risk, not bugs. This release comes with no warranty; you are encouraged to read the source and build it yourself. Found a flaw? Please let me know.
Requirements
- Android 10 (API 29) or newer.
- 64-bit device (
arm64-v8aorx86_64).
Known limitations & feedback
This is an alpha release. The core features are tested, but real-world media files and devices vary wildly. If you run into bugs, slowdowns or crashes, please open an issue with your device model, Android version, the type of file and the steps to reproduce it.
About updates: I'm a student developing FFmpeg GUI in my spare time. Releases will not follow a fixed schedule and will ship when studies and exams allow. Issues and pull requests are read even during quiet periods.
Verifying this release
- Signing certificate SHA-256:
46:4A:2F:87:7D:67:E9:6C:52:64:F3:19:FD:C8:DD:C0:5B:B6:34:C2:77:36:50:18:A2:A1:94:5F:51:A1:F9:5F - Unsigned APK SHA-256:
bd6bfcd1a1ffec5c13d57ade3fb56900b4fc039574f039ac5f9583dcaa074a5c - FFmpeg runtime (AAR) SHA-256:
3081cc13da8d82b5322161b7310613f2bf05bcf0ee820e15c685d5b3e4776fc2 - Built, and rebuilt identical with IzzyOnDroid's builder, in this run.
FFmpeg GUI's source code is free software under the EUPL v1.2. This APK also contains FFmpeg built with GPL libraries, so, as allowed by Article 5 of the EUPL, the APK as a whole is distributed under the GNU GPL v3. If it's useful to you, you can support it on Ko-fi.
FFmpeg runtime 6.1.1 (3081cc13da8d)
FFmpeg runtime of FFmpeg GUI: FFmpegKitNext 6.1.1, built from the sources pinned in
scripts/ffmpeg-kit-next.lock at 1033ba7, twice (ubuntu-24.04; ubuntu-26.04 on two cores),
with byte-identical results.
SHA-256: 3081cc13da8d82b5322161b7310613f2bf05bcf0ee820e15c685d5b3e4776fc2
Rebuild it with FFMPEG_KIT_WORKDIR=/var/tmp/ffmpeg-kit-next scripts/build-ffmpeg-kit-next.sh.