Friendly FFmpeg wrapper CLI for Linux and macOS.
Requires system FFmpeg (ffmpeg + ffprobe on your PATH).
brew install lucidsleeping/mpegtic/mpegticThis installs mpegtic and pulls in ffmpeg automatically.
Upgrade later with:
brew update
brew upgrade mpegticpip install mpegtic
# or
pipx install mpegtic
# or
uv tool install mpegticWith pip/pipx/uv you still need system FFmpeg on your PATH
(brew install ffmpeg, or your distro package).
pip install mpegtic==0.1.1mpegtic info video.mkv
mpegtic remux video.mp4 -o video.mkv
mpegtic convert song.wav -f mp3
mpegtic streams remove video.mkv --subs all -o clean.mkv
mpegtic subtitle burn video.mkv --track 0
mpegtic compress video.mp4 --crf 28
mpegtic gif clip.mp4 --start 5 --duration 3Dry-run any command:
mpegtic --dry-run --explain remux in.mp4 -o out.mkvRaw FFmpeg escape hatch:
mpegtic -- -i in.mp4 -c copy out.mkv
mpegtic ffmpeg -- -i in.mp4 -vf scale=1280:-1 out.mp4mpegtic config init
mpegtic config show
mpegtic config set crf 20
mpegtic --profile web convert video.mov -f mp4Config lives at ~/.config/mpegtic/config.toml (via platformdirs).
| Area | Commands |
|---|---|
| Inspect | info |
| Containers | remux, convert, streams keep|remove|default |
| Subtitles | subtitle burn|extract|add|convert |
| Audio | audio extract|replace|volume|normalize |
| Video | trim, merge, split, resize, crop, rotate, speed, fps, compress, thumbnail, watermark, fade |
| GIF | gif |
| Config | config init|show|set|path |
| Escape | mpegtic -- …, mpegtic ffmpeg -- … |
pip install -e ".[dev]"
pytest- Bump
versioninpyproject.tomlandsrc/mpegtic/__init__.py python -m buildand testpip install dist/*.whl- Tag
vX.Y.Z(GitHub Actions publishes to PyPI) - Update
Formula/mpegtic.rbURL + sha256 from the PyPI sdist - Push formula to the Homebrew tap
Hard-burning (subtitle burn) needs an FFmpeg build with libass
(subtitles filter). Soft mux/extract/remove work without it.
MIT