Small and fast wrapper for FFmpeg.

Heavily vibe coded. Expect issues.
- Editing:
- Trim
- Crop
- Rotate
- Flip
- Resize
- Specific audio track export, or mix all tracks into one
- Custom FFmpeg command — the final command is shown and fully editable, and exactly that text is what runs
- Environment:
- Multi-track audio timeline
- Presets (edit, import, export)
- Hotkeys
Input: anything FFmpeg and mpv can read (MP4, MOV, AVI, MKV, WEBM, FLV, WMV, M4V, ...)
Output Codecs:
- Video: H.264, HEVC, VP8, VP9, AV1, ProRes, DNxHD, FFV1, and more (plus hardware encoders)
- Audio: AAC, MP3, Opus, Vorbis, AC-3, FLAC, ALAC, PCM
- FFmpeg + FFprobe — found next to the program first, then in
PATH(or set the paths in File → Settings). - Linux:
libmpv2(sudo apt install libmpv2·sudo pacman -S mpv·sudo dnf install mpv-libs). - Windows: nothing else if you use the zip that includes
libmpv-2.dll(and FFmpeg if it was bundled).
- Download the
.AppImagefrom the release page - Allow it to execute: Properties -> Permissions -> Execute, or
chmod +x ./FFcut-*.AppImage
It is recommended to use the Gear Lever application for any AppImage installations
- Download
ffcut-linux-x86_64.tar.gzfrom the release page - Unpack it wherever you like and run
./AppRun
Prerequisites
- Rust (https://rustup.rs)
- libmpv headers:
sudo apt install libmpv-dev pkg-config·sudo pacman -S mpv·sudo dnf install mpv-devel- FFmpeg (to run it)
git clone https://github.com/woysful/FFcut.git
cd ./FFcut
./build-linux.sh # -> dist/FFcut-<version>-x86_64.AppImage and dist/ffcut-linux-x86_64.tar.gz
BUNDLE_FFMPEG=1 ./build-linux.sh # also put ffmpeg/ffprobe from this machine insideFor a quick run without packaging: cargo run --release -p ffcut-app.
Dragging files into the window does not work on native Wayland (the windowing library, winit, has no support for it yet). Run through XWayland instead: File → Settings → Display server → X11, or ffcut --x11, or FFCUT_DISPLAY=x11. --wayland switches back.
Prerequisites
- FFmpeg — download FFmpeg binaries and place
ffmpeg.exeandffprobe.exeinC:\Windows\or next toffcut.exe, OR put them anywhere and add that folder toPATH(skip this if your zip already contains them)
- Download
FFcut-<version>-windows-x64.zipfrom the release page - Unzip it wherever you like and run
ffcut.exe
Prerequisites
- Rust with the MSVC toolchain (Visual Studio Build Tools)
- libmpv dev package (e.g.
mpv-dev-x86_64-*.7zfrom shinchiro builds): a folder withmpv.libandmpv-2.dll
git clone https://github.com/woysful/FFcut.git
cd FFcut
set MPV_DIR=C:\libmpv
set FFMPEG_DIR=C:\ffmpeg\bin
build-windows.batFFMPEG_DIR is optional (it bundles ffmpeg/ffprobe into the zip). Result: dist\FFcut-windows-x64.zip.
| key | Description |
|---|---|
| Ctrl+O / N | Import Video |
| Ctrl+S / E | Export Video |
| Ctrl+F | Video Fullscreen (Esc to leave) |
| F11 | Application Fullscreen |
| Space | Play/Pause |
| ← → | Previous/Next frame |
| , . | Previous/Next frame |
| Shift+← → | Seek 5 s |
| Q | Set trim start |
| E | Set trim end |
| R | Reset Trim |
| C | Toggle crop |
| A | Toggle loop |
crates/ffcut-core— all logic without UI:model(export settings),builder(settings → ffmpeg argv),cmdline(argv ⇄ editable text),probe(ffprobe),run(runs exactly the argv you see: progress, cancel, cleanup). Tested, including against real ffmpeg.crates/ffcut-app— the UI (egui + libmpv):player,app,update,ui/.- Tests:
cargo test --workspace(needsffmpeginPATH). - The version lives in one place:
[workspace.package]in the rootCargo.toml. Release = bump it, build, publish a GitHub Release taggedv<version>. - Debug env:
FFCUT_DEBUG=1,FFCUT_MPV_LOG=file,FFCUT_NO_AUDIO=1,FFCUT_MPV_DR=auto|yes,FFCUT_DISPLAY=x11|wayland,FFCUT_UPDATE_URL=<url>,FFCUT_NO_UPDATE=1. - Fonts: Manrope and JetBrains Mono (OFL), embedded from
crates/ffcut-app/assets/fonts.
Main principle: on export FFcut runs exactly the text in the command field. Nothing is filtered or reinterpreted.

0 comments
log in to comment.