Metadata-Version: 2.1
Name: catframes
Version: 1.0.3
Summary: It concatenates a directory with images into a video via FFmpeg.
Home-page: https://github.com/georgy7/catframes
Author: Georgy Ustinov
Author-email: georgy.ustinov.hello@gmail.com
License: CC0 1.0 Universal
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3.3
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Requires-Python: >=3.3
License-File: LICENSE.txt

Catframes
=========

 | |Python versions: 3.3 and above| |PyPI| |License: CC0-1.0| |GitHub code size in bytes|

**This package is no longer supported!**
The new version is here: http://itustinov.ru/

Features
--------

1. Fixing negligible cropping (about 8 pixels)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

I don't remember exactly, why I did this.
Probably to prevent quality loss due to scaling.

.. figure:: https://github.com/georgy7/catframes/raw/master/ReadMe%20images/case1_1.png
   :alt: Feature 1, cropping

   Feature 1, cropping

.. figure:: https://github.com/georgy7/catframes/raw/master/ReadMe%20images/case1_2.png
   :alt: Feature 1, extending

   Feature 1, extending

The script aligns the frames to the
left-top corner.
You can use ``--color1`` argument to adjust the background color.

2. Fixing the case, one changes camera settings during a day
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

A video file has a static resolution, but a camera resolution may be
changed. If the change is small, this case will be indistinguishable
from the previous one. But the considerable changes can be processed
another way.

Aspect ratio difference < 0.45
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

In this case, the program will ignore aspect ratio and distort the frames.

To disable this, please use ``[-A|--never-change-aspect-ratio]`` argument.
You can combine this with ``--color2`` argument.

.. figure:: https://github.com/georgy7/catframes/raw/master/ReadMe%20images/case2_1.png
   :alt: Feature 2.1

Aspect ratio difference >= 0.45
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

In this case, the program will add margins.
You can use ``--color2`` argument to adjust their color.

.. figure:: https://github.com/georgy7/catframes/raw/master/ReadMe%20images/case2_2.png
   :alt: Feature 2.2

Requirements
------------

1. Python 3
2. pip
3. ImageMagick
4. FFmpeg

Installation
------------

On Ubuntu 18.10 and most of Linux distributions:

::

    sudo python3 -m pip install --prefix /usr/local --upgrade catframes

On Windows/ReactOS:

::

    pip install catframes

Usage
-----

|Usage video|

This script scans JPEG and PNG files in a folder based on the file
name extensions, *not* `their
signatures <https://en.wikipedia.org/wiki/List_of_file_signatures>`__.

You can also run the internal subtasks separately:

1. ``catframes_fix_resolution`` ensures, that all images in the current
   directory have the same resolution.

   1. Finds out, what resolution is most common in this directory.

      1. Renames corrupted images to ``{original_filename}_corrupted``.

   2. Converts all the pictures **in place** to this resolution.

2. ``catframes_to_video [--delete-images] [-o pathToFile.mp4]``
   compresses them all to a single video file with 1 frame per second.
   Please, use ``catframes_to_video [--help]`` for more information.

You can also use Catframes to detect common resolution in a folder.
This is a subtask of ``catframes_fix_resolution``.

::

    $ catframes_most_common_image_resolution_in_the_folder [--statistics|-s]

    1280x720 => 3
    800x800 => 2
    -------------
    Completed in 0.11370372772216797 seconds.

                       Method | Result
     ------------------------ | ---------------
                           mf | 1280x720
                        gtewa | 1280x800

::

    $ var1=`catframes_most_common_image_resolution_in_the_folder`
    $ echo $var1
    1280x720

Disclaimer
----------

*I make no representations or warranties of any kind concerning the
software, express, implied, statutory or otherwise, including without
limitation warranties of title, merchantability, fitness for a
particular purpose, non infringement, or the absence of latent or other
defects, accuracy, or the present or absence of errors, whether or not
discoverable, all to the greatest extent permissible under applicable
law.*

.. |GitHub code size in bytes| image:: https://img.shields.io/github/languages/code-size/georgy7/catframes.svg
   :target: #
.. |License: CC0-1.0| image:: https://img.shields.io/badge/License-CC0%201.0-lightgrey.svg
   :target: http://creativecommons.org/publicdomain/zero/1.0/
.. |Python versions: 3.3 and above| image:: https://img.shields.io/pypi/pyversions/catframes.svg?style=flat
   :target: #
.. |PyPI| image:: https://img.shields.io/pypi/v/catframes.svg
   :target: https://pypi.org/project/catframes/

.. |Usage video| image:: https://github.com/georgy7/catframes/raw/master/ReadMe%20images/usage_webm_thumbnail.png
   :target: https://github.com/georgy7/catframes/raw/master/ReadMe%20images/usage.webm
