Skip to main content

CLI Movie Package — Turn MP4 videos into colored ASCII terminal animations with audio

Project description

CLMP — CLI Movie Package

Turn any MP4 video into a high-performance colored ASCII animation that plays entirely in your terminal — with audio.

Installation

pip install clmp

Requirements

  • Python 3.8+
  • FFmpeg — must be on your PATH (used for audio extraction and decoding)

Note: CLMP will offer to install FFmpeg for you automatically if it's not found.

Features

  • Blazing Fast Delta-Rendering — Uses a virtual back-buffer to only update changed characters, enabling 120+ FPS playback in native terminals.
  • Colored ASCII art — each character is tinted with the original pixel color using 24-bit ANSI truecolor.
  • Frame-Dropping Audio Sync — Professional audio-led synchronization that automatically drops video frames to stay perfectly locked to the audio clock.
  • Embedded audio — audio is extracted as OGG Vorbis and played back in sync via sounddevice.
  • Full playback controls — pause, speed up/down, seek, volume, quit.
  • Persistent Settings — Customize your experience (jump size, volume steps) via clmp set.
  • Auto-scaling — fits to any terminal size using nearest-neighbor resampling.
  • Compact format — frames are zlib-compressed, audio stored as OGG Vorbis.
  • Cross-platform — works on Windows, macOS, and Linux.

Usage

Encode

Convert an MP4 to a .clmp file:

clmp encode input.mp4 output.clmp

Options:

Flag Default Description
--fps 12 Target playback framerate
--width 160 ASCII columns
--height 45 ASCII rows

Play

clmp play output.clmp

Options:

Flag Description
--speed 1.0 Initial playback speed multiplier
--loop Loop the video
--no-scale Disable auto terminal scaling
--no-color Disable colored output
--no-audio Disable audio playback

Configure

Use clmp set to customize your playback experience. Settings are saved in ~/.clmp/settings.json.

# Set jump distance to 5 seconds
clmp set --jump 5

# Set volume increments to 5%
clmp set --vol-step 5

# Set default starting volume
clmp set --volume 50

Controls

Key Action
Space Pause / resume
+ / - Speed up / slow down (±0.25x)
/ Volume up / down (Customizable step)
/ Seek backward / forward (Customizable seconds)
q Quit

.clmp Format (v4)

Binary file layout (little-endian):

┌─────────────────────────────────────────┐
│ Header (79 bytes)                       │
│   4s   magic          "CLMP"            │
│   B    version        4                 │
│   H    cols           ASCII width       │
│   H    rows           ASCII height      │
│   f    fps            playback fps      │
│   I    frame_count    number of frames  │
│   64s  source_name    original filename │
├─────────────────────────────────────────┤
│ Frames (repeated × frame_count)         │
│   I    ascii_size     compressed size   │
│   ...  ascii_data     zlib(ASCII text)  │
│   I    color_size     compressed size   │
│   ...  color_data     zlib(RGB bytes)   │
├─────────────────────────────────────────┤
│ Audio                                   │
│   I    audio_size     0 = no audio      │
│   ...  audio_data     raw OGG bytes     │
└─────────────────────────────────────────┘

License

GNU General Public License v3 (GPLv3) (GPL-3.0-only)

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

clmp-4.0.2.tar.gz (24.4 kB view details)

Uploaded Source

Built Distribution

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

clmp-4.0.2-py3-none-any.whl (27.0 kB view details)

Uploaded Python 3

File details

Details for the file clmp-4.0.2.tar.gz.

File metadata

  • Download URL: clmp-4.0.2.tar.gz
  • Upload date:
  • Size: 24.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.4

File hashes

Hashes for clmp-4.0.2.tar.gz
Algorithm Hash digest
SHA256 26658a3463ae04e5d5dda6d829a39af6d5e3b9d61790a81a8e2605dd9efaadb7
MD5 540ca6ddfae11e91d1ed935a0e269b5e
BLAKE2b-256 d89d573d0908d4daa69eec02d8286517c1c4d03c50c6356b548928eb2ffbbc3d

See more details on using hashes here.

File details

Details for the file clmp-4.0.2-py3-none-any.whl.

File metadata

  • Download URL: clmp-4.0.2-py3-none-any.whl
  • Upload date:
  • Size: 27.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.4

File hashes

Hashes for clmp-4.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 01fa4333642de7b3a58d71042767da4cd5fcd0cf0cee81909b0e2c2a1f64021c
MD5 b7366a49eb10a8a4ade7f03fbe99d4e8
BLAKE2b-256 30dc297194f9b81ed1664fdafe3cc377fc6e65b1710fb6c4f2fb34dee07bffb3

See more details on using hashes here.

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