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.1.tar.gz (24.0 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.1-py3-none-any.whl (26.7 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for clmp-4.0.1.tar.gz
Algorithm Hash digest
SHA256 cb2c075280eeb8b3a43e8acbd7ab455d57811043099422c6152397708323e7d4
MD5 90d6573e9ce923fe1db668b9a106e75a
BLAKE2b-256 bc6712ddf168548c1db0583ebbf949649b104d91bae133de99a48a4d1d413ba4

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for clmp-4.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 9ee4d8eb82df35dd2735fab051f2dd553091e2fff69886d2dd513b3b163c7614
MD5 99e8bec7db6bbbbdc93c5d14909dab4e
BLAKE2b-256 57a5503ace8cefe56951f91fa3d0617d78bc6ea50de6c74604d301fbb6678800

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