π¬ ffmPEG-this
Your Video editor within CLI π
A powerful and user-friendly TUI (Bubble Tea) for converting, manipulating, and inspecting media files using the power of FFmpeg. It provides a simple menu-driven interface to perform common audio and video tasks without needing to memorize complex FFmpeg commands.
β¨ Features
- Inspect Media Properties: View detailed information about video and audio streams, including codecs, resolution, frame rate, bitrates, and more.
- Convert & Transcode: Convert videos and audio to a wide range of popular formats (MP4, MKV, WebM, MP3, FLAC, WAV, GIF) with simple quality presets.
- Join Videos (Concatenate): Combine two or more videos into a single file. The tool automatically handles differences in resolution and audio sample rates for a seamless join.
- Trim (Cut) Videos: Easily cut a video to a specific start and end time without re-encoding for fast, lossless clips.
- Interactive Track Editing: Keep/remove/convert individual video/audio/subtitle tracks and generate an FFmpeg command deterministically.
- TUI Interface: A modern, keyboard-friendly terminal UI built with Bubble Tea.
π Usage
Prerequisite: Install FFmpeg
[NOTE] > ffwiz shells out to the ffmpeg and ffprobe executables. It does not bundle FFmpeg. Therefore, you must have FFmpeg installed on your system and available in your terminal's PATH.
For macOS users, the easiest way to install it is with Homebrew:
brew install ffmpeg
For Windows users, you can use a package manager like Chocolatey or Scoop:
# Using Chocolatey
choco install ffmpeg
# Using Scoop
scoop install ffmpeg
For other systems, please see the official download page: ffmpeg.org/download.html
There are several ways to use ffwiz:
1. Homebrew (macOS)
brew install fsx8/tap/ffwiz
2. Debian/Ubuntu β APT repository (recommended for servers)
# One-time setup: add the repository key and source
curl -fsSL https://fsx8.github.io/ffwiz/KEY.gpg | sudo gpg --dearmor -o /usr/share/keyrings/ffwiz-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/ffwiz-archive-keyring.gpg] https://fsx8.github.io/ffwiz/apt stable main" | sudo tee /etc/apt/sources.list.d/ffwiz.list
# Install / upgrade
sudo apt update && sudo apt install ffwiz
Packages are built for amd64 and arm64. The repository is auto-published on every GitHub Release by .github/workflows/apt.yml (GPG-signed Release/InRelease). For a one-off install without adding the repo, you can also apt install a .deb directly:
# Alternative: direct .deb install (no apt upgrade path)
curl -LO https://github.com/fsx8/ffwiz/releases/latest/download/ffwiz_<version>_linux_<arch>.deb
sudo apt install ./ffwiz_<version>_linux_<arch>.deb
3. Download from Release
If you prefer not to install the package, you can download a pre-built executable from the Releases page.
- Download the executable for your operating system (Windows, macOS, or Linux).
- Place it in a directory with your media files.
- Run the executable directly from your terminal.
4. Run from Source
If you want to run the script directly from the source code:
- Clone the repository:
git clone https://github.com/fsx8/ffwiz.git
cd ffwiz
- Run the app:
go run ./cmd/ffwiz
You can also pass an optional file or folder:
ffwiz /path/to/video.mp4
ffwiz /path/to/folder
π Star History
π₯ Contributors
π€ Contributing
Contributions are welcome! Please see the Contributing Guidelines for more information.
π§ͺ Unit Testing
The repository includes fast unit tests that validate FFmpeg argument generation without running FFmpeg.
go test ./...
π License
This project is licensed under the MIT License. See the LICENSE file for details.
Made with β€οΈ by fsx8