Skip to main content

Video glue for image folders.

Project description

Catframes

It concatenates frames.

With this software, you can

  • create a timelapse video
  • turn an animation rendered in a PNG sequence into a video
  • compress your selfies
  • compress a sequence of frames from CCTV

The script takes folders with images and outputs MP4 or WebM.

It has GUI: catmanager

What exactly does it do

  1. It takes the folders in the order you specify them.
  2. It sorts images by name in natural order in each folder separately.
  3. It checks the resolution of each image and counts their numbers.
  4. It heuristically chooses the video resolution from the collected data.
  5. It resizes each image (on the fly) to fit into that resolution, preserving the aspect ratio and aligning the images in the center.
  6. It overlays various text information on the frames, if you specified this in the arguments.
  7. It concatenates the frames, having a fairly high resistance to emergencies.

Installation

Do this as root for system-wide installation:

python3 -m pip install catframes

You can also copy catframes.py to /usr/local/bin manually. But then you will also need to install Pillow.

Dependencies that are not installable from PYPI:

  1. FFmpeg
  2. Monospaced fonts

Alpine: apk add ffmpeg font-dejavu

Debian/Ubuntu: apt-get install ffmpeg fonts-dejavu

Centos/RHEL: yum install ffmpeg dejavu-sans-mono-fonts

Windows: FFmpeg builds; Courier New included.

Usage

If you are launching the program for the first time, use --limit option to try different options on short video samples.

catframes --limit=3 sourceFolder sample.mp4

The command to run it with default settings looks like this:

catframes folderA folderB folderC result.webm

For automatic launches (through a CRON job, etc.), it's better to add --force and --sure options:

catframes -sf folderA folderB folderC result.webm

Default settings

Frame rate: 30 frames per second.

You may change it with -r parameter. Acceptable values are from 1 to 60. All source frames will be included, so this parameter determines speed of your video record.

Compression quality: medium.

You may change it with -q parameter. Acceptable values are poor, medium, high.

Margin (background) color: black.

You may change it with --margin-color. It takes values in formats #rrggbb and #rgb (hexadecimal digits; #abc means #aabbcc).

Text overlays

There is a 3 by 3 grid. You can place labels in all cells except the central one.

Please, use --left, --right, --top, --left-top, etc.

One of the cells may be reserved for important warnings. It is set by WARN value (in any case). By default, this is the top cell.

You can use any constant text in the labels, including line feeds (\n). You can also use a limited set of functions in curly brackets that output information about the source image or about the system.

To prevent special characters from being interpreted, you should use single quotes in Unix Shell, however, you must use double quotes in the Windows command line.

Example (Bash):

catframes \
    -r=5 --limit=10 \
    --left-top='Frame {frame:video}' \
    --left-bottom='{dir}/{fn}\n\nModified: {mtime}' \
    --right-bottom='Compressed {vtime:%Y-%m-%d %H:%M}' \
    folder video.webm

Read more about these functions in the docs.

See also

Documentation (in Russian, outdated)

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

catframes-2024.8.2.tar.gz (66.0 kB view details)

Uploaded Source

Built Distribution

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

catframes-2024.8.2-py3-none-any.whl (65.2 kB view details)

Uploaded Python 3

File details

Details for the file catframes-2024.8.2.tar.gz.

File metadata

  • Download URL: catframes-2024.8.2.tar.gz
  • Upload date:
  • Size: 66.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.11.4

File hashes

Hashes for catframes-2024.8.2.tar.gz
Algorithm Hash digest
SHA256 ae4cb2583489a7f12aed9676c011c37c8d167ac047f9e0e195cf38aec9811a45
MD5 dde07142abb08855ba2ea652cf8a2e44
BLAKE2b-256 15e7d18ce1f67cd86b8317c37c4fb314ae3526f5162a975bc651b74cc42e9002

See more details on using hashes here.

File details

Details for the file catframes-2024.8.2-py3-none-any.whl.

File metadata

  • Download URL: catframes-2024.8.2-py3-none-any.whl
  • Upload date:
  • Size: 65.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.11.4

File hashes

Hashes for catframes-2024.8.2-py3-none-any.whl
Algorithm Hash digest
SHA256 92acd06dcc86b42a5dc54bfda750140832f5b569b1e9f1aa9abe4978503a5f7a
MD5 e49312de47efd27087ba790e7c8e5472
BLAKE2b-256 99df9780830730b3ba0573af8de47d575f90b3db1a44bb536a881a5416eb3e0a

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