Development paused on FFAB until the community starts hitting me with bugs or feature requests. The current version of FFAB works great for my personal requirements, but I'm happy to put in more work if folks want / need more.
There are two large updates waiting for community green-light:
- Node Graph UI: Existing DAG code can handle it, the UI 'just' needs to be built.
- Video Filters: Also doable... duplicate the Audio Filter code, dream up UIs, then test.
Both are interesting, but (a) I'm an audio guy, and unable to exhaustively test video filters / unqualified to suggest video-centric UIs, and (b) the Node Graph UI is just a different way of visualizing the existing linear filter chain, so feels somewhat redundant (except in the case of ASPLIT parallel routing, where seeing nodes + cables would make sense).
With enough demand, I'll fire up the boilers and build.
FFAB is a cross-platform, complex audio batch processor, effects rack, command builder & graphical user interface for FFmpeg.
More info here: www.disuye.com/ffab
Check Releases for the latest DMG/ZIP files:
- macOS (Monterey+ Universal Binary) → FFAB.app
- Linux (x86 / Arm / Ubuntu24 +) → FFAB.AppImage
FFAB.app v1.0.3+ is now notarized by Apple → No more Gatekeeper issues!
Older versions are not notarized by Apple and may be blocked by macOS Gatekeeper.
- Monterey & Sonoma, right click FFAB.app, click Open, click Confirm
- Sequoia & Tahoe run this Terminal command:
xattr -cr /Applications/FFAB.app
Audio preview player may fail on some Linux versions.
- This can be fixed with community help!
- Launch FFAB.AppImage with this Terminal command:
GST_PLUGIN_SYSTEM_PATH=/usr/lib/$(uname -m)-linux-gnu/gstreamer-1.0 ./FFAB*.AppImage
- Developed on macOS Sequoia Silicon using Qt version 6.10.1
- Run
/scripts/dummyAGL.shand FFAB can also build with Qt 6.7.3 - Install
brew install ninja - Run
/scripts/ninja.shfor the debug version - Run
/scripts/ninja-release.shto build macOS Silicon & Universal .github/workflows/build-ffab-linux.ymlfor Linux x86_64 & ARM64
FFAB/
├── CMakeLists.txt
├── images/
│ ├── AppIcon.icns
│ ├── AppIcon.png
│ ├── fader-h.png
│ ├── fader-v.png
│ ├── log-bg-dark.png
│ ├── log-bg-light.png
│ ├── track-h.png
│ └── track-v.png
├── fonts/
│ └── FiraCode-VariableFont_wght.ttf
├── licenses/
│ ├── FFAB-license.txt
│ ├── FiraCode-OFL.txt
│ ├── GPLv3.txt
│ └── LGPLv3.txt
├── linux/
│ ├── ffab-512.png
│ └── ffab.desktop
└── src/
├── Core/
│ ├── AppConfig.h
│ ├── AudioFileScanner.h/cpp
│ ├── BatchProcessor.h/cpp
│ ├── CompandBandData.h
│ ├── Connection.h
│ ├── DAGCommandBuilder.h/cpp <- DAG-based FFmpeg command builder (v1.0)
│ ├── FFmpegDetector.h/cpp
│ ├── FFmpegRunner.h/cpp
│ ├── FFmpegSyntax.h/cpp
│ ├── FilterChain.h/cpp <- chain manager (routes through DAG) & old logic
│ ├── FilterGraph.h/cpp
│ ├── FilterNode.h
│ ├── JobListBuilder.h/cpp
│ ├── LogFileWriter.h/cpp
│ ├── OperationPreview.h/cpp
│ ├── Port.h
│ ├── Preferences.h/cpp
│ ├── PreviewGenerator.h/cpp
│ └── UpdateChecker.h/cpp
├── FFmpeg/
│ ├── FFmpegCommandBuilder.h/cpp
│ └── FFmpegPresets.h/cpp
├── Filters/
│ ├── AudioInputFilter.h/cpp
│ ├── AuxOutputFilter.h/cpp
│ ├── BaseFilter.h/cpp
│ ├── ChannelEqFilter.h/cpp
│ ├── CustomFFmpegFilter.h/cpp
│ ├── InputFilter.h/cpp
│ ├── MultiOutputFilter.h/cpp
│ ├── OutputFilter.h/cpp
│ ├── SmartAuxReturn.h/cpp
│ └── ff-*.h/cpp (118 FFmpeg filter wrappers)
├── UI/
│ ├── AsplitRowWidget.h/cpp
│ ├── BatchAdminPanel.h/cpp
│ ├── BatchConfirmDialog.h/cpp
│ ├── BatchSettingsWindow.h/cpp
│ ├── ChannelEqWidget.h/cpp
│ ├── CompandCurveWidget.h/cpp
│ ├── CollapsibleHelpSection.h/cpp
│ ├── CommandViewWindow.h/cpp
│ ├── FFmpegSetupDialog.h/cpp
│ ├── FileListWidget.h/cpp
│ ├── FilterChainWidget.h/cpp
│ ├── FilterMenuBuilder.h/cpp
│ ├── FilterParamsPanel.h/cpp
│ ├── InputBatchPanel.h/cpp
│ ├── InputPanel.h/cpp
│ ├── LogViewWindow.h/cpp
│ ├── LogWidget.h/cpp
│ ├── MainWindow.h/cpp
│ ├── OutputPanel.h/cpp
│ ├── OutputSettingsPanel.h/cpp
│ ├── PresetManager.h/cpp
│ ├── RegionPreviewWindow.h/cpp
│ ├── RotatedLabel.h
│ ├── SettingsDialog.h/cpp
│ └── WaveformPreviewWidget.h/cpp
├── Utils/
│ ├── FrequencySliderHelpers.h
│ ├── KeyCommands.h
│ ├── Logger.h/cpp
│ ├── Metadata.h/cpp
│ ├── PresetStorage.h/cpp
│ ├── SnapSlider.h
│ └── UnicodeSymbols.h
└── main.cpp
- VSCode
- Claude Code
- Affinity Designer
- Affinity Photo
- Qt
- FFmpeg
- ninja
- png2icns
FFAB is free / donationware, you can support this project by purchasing music from here:
