FFmpeg GUI
Frame is a native media conversion utility built in Rust. It provides a desktop interface for FFmpeg operations, with granular control over video, audio, image, subtitle, and metadata settings. The application uses a GPUI-CE front end and a reusable Rust conversion core for FFmpeg argument generation, source probing, compatibility validation, task control, and progress parsing.
[!WARNING] Unsigned Application Notice Since the application is currently not Developer ID or certificate signed, your operating system may flag it:
- macOS: Release artifacts are ad-hoc signed but not notarized. The system can flag the app and bundled binaries with a quarantine attribute. To run the app, remove the attribute manually after installing it:
xattr -dr com.apple.quarantine /Applications/Frame.app- Windows: Windows SmartScreen may prevent the application from starting. Click "More info" and then "Run anyway" to proceed.
If Frame helps you, consider supporting the project on GitHub Sponsors:
Current funding goals:
$99/year to sign and notarize macOS builds.$300-$700/year to sign
Windows builds and reduce SmartScreen friction.Sponsor contributions are used first for these release-signing costs.
See GitHub Sponsors for full sponsorship details, tier suggestions, and a launch checklist.
mp4, mov, mkv, avi, webm, mts, m2t, m2ts, gifmp3, m4a, wav, flacpng, jpg, jpeg, webp, bmp, tif, tiff, avif,
heic, heifmp4, mkv, webm, mov, m2t (188-byte MPEG-TS), mts
and m2ts (192-byte M2TS), gifmp3, m4a, wav, flacpng, jpg, webp, bmp, tifflibx264 (H.264 / AVC)libx265 (H.265 / HEVC)vp9 (Google VP9)prores (Apple ProRes)libsvtav1 (SVT-AV1)mpeg2video (MPEG-2 Video for transport streams)gif palette outputh264_videotoolbox, hevc_videotoolbox); Windows bundles include NVIDIA
NVENC encoders (h264_nvenc, hevc_nvenc, av1_nvenc). Linux bundles use
software encoders.png, mjpeg (JPEG), libwebp (WebP), bmp, tiff.aac, ac3, libopus, mp3, mp2, alac, flac,
pcm_s16le, Blu-ray pcm_bluray, plus optional libfdk_aac when available..srt / .ass / .vtt burn-in with font,
size, color, outline, and position controls; selectable text sidecars for
MP4/MOV/MKV/WebM; and .sup/PGS, DVB subtitle, DVB teletext, ARIB caption,
and HDMV subtitle workflows for M2T/MTS/M2TS. M2T converts bitmap PGS/DVDSub
to standard DVB subtitles instead of private data.ffprobe -show_programs.ffprobe.frame-core owns FFmpeg arguments, media rules,
probing types, filter construction, and validation logic.frame-app/resources/binaries/. Native bundles include
those tools and detect encoder capabilities from the bundled FFmpeg at startup.rfd, with extension filtering for supported media and
subtitle files.serde, serde_json.thiserror.The easiest way to get started is to download the latest release for your platform directly from GitHub.
Note: Since the application is not yet code-signed, you may need to manually approve it in your system settings.
Native release builds include a signed-manifest updater. Frame checks the latest GitHub Release manifest, verifies its Ed25519 signature and the SHA-256 hash of the selected platform asset, then installs through a small bundled helper.
Frame is available in the official WinGet repository under the 66HEX.Frame
identifier.
winget install --id 66HEX.Frame -eTo update:
winget upgrade --id 66HEX.Frame -eFor macOS users, Frame is available through the custom Homebrew tap:
brew tap 66HEX/frame
brew install --cask frameThe production Flatpak is distributed through Flathub under
io.github._66HEX.Frame. The Flathub build uses FFmpeg, FFprobe, codecs, and
media libraries from the Freedesktop runtime instead of bundled sidecar media
tools.
flatpak install flathub io.github._66HEX.FrameTo update:
flatpak update io.github._66HEX.FrameIf you prefer to build the application yourself or want to contribute, follow these steps.
1. Prerequisites
2. Clone the Repository
git clone https://github.com/66HEX/frame.git
cd frame3. Setup Runtime Binaries
Frame requires FFmpeg and FFprobe runtime binaries. Release and development tasks download the platform-specific tools into ignored local runtime paths. To prepare them manually:
cargo xtask setup-ffmpeg4. Run or Build
Development:
cargo xtask runProduction Build:
cargo xtask build --releaseRegenerate release workflows:
cargo xtask workflowsmacOS DMG:
cargo install cargo-bundle
cargo xtask bundle macosLinux tarball with .desktop metadata and hicolor icons:
cargo xtask bundle linuxWindows installer:
cargo xtask bundle windowsThe release binary embeds the Frame .ico resource during the normal Cargo
build so Explorer and the taskbar can resolve the application icon.
Run the main checks before submitting changes:
cargo xtask ciGPLv3 License. See LICENSE for details.
No open issues yet, or sync has not completed.