Discord video size limitations, Twitter media guidelines - I convert media on a daily basis. But with my ADHD, I often forget specific FFmpeg parameters and have to google them or ask GPT, which isnβt very convenient.
With that in mind, I built Frame - an FFmpeg GUI wrapper using Svelte and Tauri that doesnβt look like itβs 15 years old π
Letβs be honest, every developer has to build FFMPEG wrapper some day π
For now itβs MacOS only, but who knows!
https://github.com/66HEX/frame
Show HN: CompressX, my FFmpeg wrapper for macOS
FFmpeg GUI for Mac OS X - Community Forum - StackIdeas
Alternative to FFMPEGx Mac?
dmMediaConverter v1.8.0 - FFmpeg GUI [Mac/Linux/Windows] | MacRumors Forums
Videos
There are four options, sorted by complexity:
- Homebrew (or other package managers)
- Static builds
- Docker
- Compile yourself
To follow this you need to have a bit of knowledge using a terminal/shell under macOS.
1. Homebrew
Homebrew has a formula for stable FFmpeg releases. This will get you running pretty fast. First, install Homebrew.
Then install FFmpeg through the ffmpeg formula:
brew install ffmpeg
This will download a lot of dependencies such as x264, but after that you should be good to go.
To update ffmpeg later on, run:
brew update && brew upgrade ffmpeg
2. Static Builds
The FFmpeg project, on the download page, offers links to static builds for ffmpeg, which you can just download, extract, and use in a terminal.
Static builds cannot contain every possible encoder, mostly due to licensing issues. If you don't care about the specific bundled encoders, this is a nice and portable solution.
Once downloaded, extract the file, open up Terminal.app, and navigate to the directory where you unzipped the files, i.e. where you find a file called ffmpeg. Copy this file to /usr/local/bin:
cd ~/Downloads/
sudo mkdir -p /usr/local/bin/
sudo cp ./ffmpeg /usr/local/bin
sudo chmod ugo+x /usr/local/bin/ffmpeg
Now, if you use zsh (which is the default shell since macOS Catalina), add it to your $PATH:
open -e ~/.zshrc
Add this to the file at the end:
export PATH="/usr/local/bin:$PATH"
If you are using Bash, instead edit this file:
open -e ~/.bash_profile
Save it, and close the editor. Now restart your Terminal and which ffmpeg should return /usr/local/bin/ffmpeg.
3. Docker
If you have Docker installed you can run a Docker container that comes with ffmpeg preinstalled.
There are various ffmpeg Docker images out there, for instance linuxserver/ffmpeg (see other answer below).
To run this image to convert an input.mkv file into an output file, open a Terminal and run:
docker run --rm -it \
-v $(pwd):/config \
linuxserver/ffmpeg \
-i /config/input.mkv \
-c:v libx264 \
-b:v 4M \
-vf scale=1280:720 \
-c:a copy \
/config/output.mkv
Note that $(pwd) will be your current working directory, and the command expects that directory to contain the referenced input file input.mkv. The file will be mounted into the container (into the /config directory).
4. Compiling yourself
You can of course build FFmpeg tools yourself, following the OS X compilation guide. This guide will always be up to date, and by manually compiling you may be able to tweak a few parameters.
This takes some time and experience with the shell, so it's not recommended unless you need to produce a specific build of ffmpeg.
To uninstall whatever version of FFmpeg you installed we'd need to know how you've installed it in the first place.
Since Homebrew will install to /opt/homebrew (for Intel-based Macs: /usr/local/Cellar), and symlink to /usr/local/bin/ffmpeg, it probably won't cause any problems with other libraries. However, check the make install scripts of the versions you (supposedly) built yourself and see where they placed FFmpeg. Then just delete them from there β it won't interfere with Homebrew.
The segmentation fault you got could be due to improper linking between the x264 or libvpx libraries. Since Homebrew will take care of this, you shouldn't run into any issues. However, I have occasionally run into an error like this when upgrading Homebrew dependencies without having upgraded ffmpeg β in this case, just brew reinstall ffmpeg and you should be good to go.
Install FFmpeg on the new ARM silicon (M1 chip): Install Rosetta2 via terminal using:
/usr/sbin/softwareupdate --install-rosetta --agree-to-license
Once Rosetta2 installed we can install Homebrew for ARM M1 chip:
arch -x86_64 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
Once the installation is finished, use the next Homebrew command to install ffmpeg:
arch -x86_64 brew install ffmpeg
I know it hasn't been supported for years, but I've been using FFMPEGx for over a decade on Mac OS. I've loved it, but it's 32 bit. I just upgraded to Mojave instead of something newer to support still using it for my workflow, but it's starting to fail on encodes two or three times before actually working.
I want to move forward, but none of the software I've seen that does MP4 encoding works as well or gives the kind of control I want in a way that makes sense to me.
Can anyone recommend alternatives that they use regularly to provide a good front end on MacOS?
I especially liked FFMPEGx's features that let me set custom flags for iOS compatibility, and its ability to adjust bitrate to arbitrary sizes and other FFMPEG parameters so I could tune in the quality that's best for my work.
And yes, I've tried AME and Compressor, and neither of them are as effective as FFMPEGx.