Friendly FFmpeg wrapper CLI for Linux and macOS
Project description
mpegtic
Friendly FFmpeg wrapper CLI for Linux and macOS.
Requires system FFmpeg (ffmpeg + ffprobe on your PATH).
Install
Homebrew (macOS / Linuxbrew)
brew install lucidsleeping/mpegtic/mpegtic
This installs mpegtic and pulls in ffmpeg automatically.
Upgrade later with:
brew update
brew upgrade mpegtic
pip / pipx / uv
pip install mpegtic
# or
pipx install mpegtic
# or
uv tool install mpegtic
With pip/pipx/uv you still need system FFmpeg on your PATH
(brew install ffmpeg, or your distro package).
Pin a version (pip)
pip install mpegtic==0.1.1
Quick start
mpegtic 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 3
Dry-run any command:
mpegtic --dry-run --explain remux in.mp4 -o out.mkv
Raw FFmpeg escape hatch:
mpegtic -- -i in.mp4 -c copy out.mkv
mpegtic ffmpeg -- -i in.mp4 -vf scale=1280:-1 out.mp4
Defaults & profiles
mpegtic config init
mpegtic config show
mpegtic config set crf 20
mpegtic --profile web convert video.mov -f mp4
Config lives at ~/.config/mpegtic/config.toml (via platformdirs).
Commands
| 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 -- … |
Development
pip install -e ".[dev]"
pytest
Release checklist
- 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
Notes
Hard-burning (subtitle burn) needs an FFmpeg build with libass
(subtitles filter). Soft mux/extract/remove work without it.
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file mpegtic-0.1.1.tar.gz.
File metadata
- Download URL: mpegtic-0.1.1.tar.gz
- Upload date:
- Size: 22.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
70d4c6438a86d04583580f77241769b1317d4cb95f164e1ebabaccf32b1cea9d
|
|
| MD5 |
65bf01bd74e32cfdd5a70b9e86c698c4
|
|
| BLAKE2b-256 |
45ca2773cf7d830443e3d7da56a4fca3ff0ab7fda9d65d4e41d925c85c8c50e0
|
Provenance
The following attestation bundles were made for mpegtic-0.1.1.tar.gz:
Publisher:
publish.yml on lucidsleeping/mpegtic
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
mpegtic-0.1.1.tar.gz -
Subject digest:
70d4c6438a86d04583580f77241769b1317d4cb95f164e1ebabaccf32b1cea9d - Sigstore transparency entry: 2162630949
- Sigstore integration time:
-
Permalink:
lucidsleeping/mpegtic@89f0df355600426360d414d6bdc01ac5c812da59 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/lucidsleeping
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@89f0df355600426360d414d6bdc01ac5c812da59 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file mpegtic-0.1.1-py3-none-any.whl.
File metadata
- Download URL: mpegtic-0.1.1-py3-none-any.whl
- Upload date:
- Size: 29.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
40f719d1a83d7dd617e52c9db5ca5f10b3404d8ad3e03abfe49ff6979e3fd5e5
|
|
| MD5 |
07849a9c309bdee719759ae056872277
|
|
| BLAKE2b-256 |
777150c9b411a3efe04c83f19d191e53bc653912da6f7662c54a27e8b9f622c5
|
Provenance
The following attestation bundles were made for mpegtic-0.1.1-py3-none-any.whl:
Publisher:
publish.yml on lucidsleeping/mpegtic
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
mpegtic-0.1.1-py3-none-any.whl -
Subject digest:
40f719d1a83d7dd617e52c9db5ca5f10b3404d8ad3e03abfe49ff6979e3fd5e5 - Sigstore transparency entry: 2162631194
- Sigstore integration time:
-
Permalink:
lucidsleeping/mpegtic@89f0df355600426360d414d6bdc01ac5c812da59 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/lucidsleeping
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@89f0df355600426360d414d6bdc01ac5c812da59 -
Trigger Event:
workflow_dispatch
-
Statement type: