Skip to main content

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

  1. Bump version in pyproject.toml and src/mpegtic/__init__.py
  2. python -m build and test pip install dist/*.whl
  3. Tag vX.Y.Z (GitHub Actions publishes to PyPI)
  4. Update Formula/mpegtic.rb URL + sha256 from the PyPI sdist
  5. 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mpegtic-0.1.1.tar.gz (22.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mpegtic-0.1.1-py3-none-any.whl (29.1 kB view details)

Uploaded Python 3

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

Hashes for mpegtic-0.1.1.tar.gz
Algorithm Hash digest
SHA256 70d4c6438a86d04583580f77241769b1317d4cb95f164e1ebabaccf32b1cea9d
MD5 65bf01bd74e32cfdd5a70b9e86c698c4
BLAKE2b-256 45ca2773cf7d830443e3d7da56a4fca3ff0ab7fda9d65d4e41d925c85c8c50e0

See more details on using hashes here.

Provenance

The following attestation bundles were made for mpegtic-0.1.1.tar.gz:

Publisher: publish.yml on lucidsleeping/mpegtic

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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

Hashes for mpegtic-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 40f719d1a83d7dd617e52c9db5ca5f10b3404d8ad3e03abfe49ff6979e3fd5e5
MD5 07849a9c309bdee719759ae056872277
BLAKE2b-256 777150c9b411a3efe04c83f19d191e53bc653912da6f7662c54a27e8b9f622c5

See more details on using hashes here.

Provenance

The following attestation bundles were made for mpegtic-0.1.1-py3-none-any.whl:

Publisher: publish.yml on lucidsleeping/mpegtic

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page