- 🎬 Extract frames from any local video file with precise start/end timestamps
- 📺 YouTube support - paste a URL, pick quality, extract directly (yt-dlp powered)
- ⚡ Adjustable FPS - from 1 to 60 frames per second
- 🖼️ Multiple formats - PNG, JPG, WebP, BMP
- 🎚️ Quality & scale control - fine-tune output image quality and resolution
- 📁 Custom filename prefix - name your frames however you like
- 🗂️ Auto open folder when extraction completes
- 📋 Live process log - view ffmpeg/yt-dlp output in real time, copy to clipboard
- 🔋 Batteries included - ffmpeg & yt-dlp bundled, no manual installation needed
- 🖥️ Cross-platform - Windows, Linux, macOS, Android, iOS
Head to the Releases page and grab the build for your platform.
| Platform | File | Notes |
|---|---|---|
| 🪟 Windows | FrameExtractor-windows-installer.zip |
Extract & run .exe |
| 🪟 Windows Portable | FrameExtractor-windows-portable.zip |
No installation needed |
| 🐧 Linux | FrameExtractor-linux-installer.tar.gz |
Extract & run |
| 🐧 Linux Portable | FrameExtractor-linux-portable.tar.gz |
Self-contained folder |
| 🍎 macOS | FrameExtractor-macos-installer.dmg |
Open & drag to Applications |
| 🍎 macOS Portable | FrameExtractor-macos-portable.zip |
Extract & run anywhere |
| 🤖 Android | FrameExtractor-android.apk |
Enable "Install unknown apps" in settings |
| 📱 iOS | FrameExtractor-ios-unsigned.ipa |
Sideload via AltStore or TrollStore |
Note (iOS): Due to Apple sandbox restrictions, yt-dlp cannot run as a binary on iOS. The YouTube feature uses an API fallback instead.
- Flutter 3.22+
- Python 3.8+ (for the binary download script)
- Git
git clone https://github.com/nokarin-dev/frameextractor.git
cd frameextractor
flutter pub getThe app bundles ffmpeg and yt-dlp. Run the script to download them for your target platform:
# Windows + Linux
python3 scripts/prepare_binaries.py --platform windows linux
# All platforms
python3 scripts/prepare_binaries.py --allSources: ffmpeg (BtbN builds) · yt-dlp
# Debug run
flutter run -d linux # or windows / macos / android / ios
# Release builds
flutter build linux --release --dart-define=PORTABLE=false # installer
flutter build linux --release --dart-define=PORTABLE=true # portable
flutter build windows --release --dart-define=PORTABLE=false
flutter build windows --release --dart-define=PORTABLE=true
flutter build macos --release
flutter build apk --release # Android
flutter build ipa --release # iOS (requires Apple signing)| Installer | Portable | |
|---|---|---|
| Binary location | AppData/Local/FrameExtractor/bin/ (Win) or ~/.local/share/ (Linux) |
Same folder as executable |
Pass --dart-define |
PORTABLE=false |
PORTABLE=true |
| Platform | Tested |
|---|---|
| Windows | ✅ |
| Linux | ✅ |
| Android | ✅ |
| iOS | ❌ |
| macOS | ❌ |
FrameExtractor
Copyright © 2025-2026 nokarin-dev
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.