2024.8.3 – 2024-10-29
- Logging: the folder with logs can be opened from the settings
- Explanation dialog "the folders do not contain images"
- NewTask window height on Linux so that all the buttons fit into the window
- Canceling CLI tasks from pythonw.exe by emulating the CTRL+C signal via standard input
- Waiting until Catframes process exits
2024.8.2 – 2024-09-16
- CLI application functioning on non-Windows platforms
2024.8.1 – 2024-09-16
Note: This release was yanked from PyPI.
- New task window: alpha blending of images with transparent backgrounds.
- Settings dialog: auto-closing on blur.
- Add folder dialog: it starts from the parent folder of the last added one.
- Command copy button (still wrong with line feeds).
- Now FPS is a number input (1-60), not a drop-down list.
2024.8.0 – 2024-08-31
Note: This release was yanked from PyPI.
- GUI application written in Tkinter. You can run it like this:
catmanager
- System option
--live-preview
(GUI related).
- The
WARN
overlay becomes optional. These warnings embedded in the video stream are quite useless for casual users who run the script manually, and whose data is not related to CCTV.
- We have eliminated network-related delays on some platforms (mostly Windows) by switching to pipes. Now the script writes uncompressed stream of pixels to the FFmpeg standard input. Thus, on some systems, the execution was accelerated three times.
- Web server. Firewall warnings will no longer appear.
- System option
--port-range
: it does not affect anything.
2024.4.0 – 2024-05-04
Some things in the source code have been renamed, and some comments have been translated into English.
2024.3.1 – 2024-04-03
- WSGIServer shutdown
2024.3.0 – 2024-03-31
- I preload frames in a separate thread. It's about 15 percent faster.
- Using other VP9 options results in slightly larger files, but 1.5–2 times faster.
2024.2.0 – 2024-02-07
- Destination file name is allowed (and ignored) with option
--resolutions
- No subsampling in high quality mode; moderate subsampling in medium quality mode
- Support for QOI and PCX input image formats
- Options
--trim-start
and--trim-end
2023.9.1 – 2023-10-19
- A bug in the resolution resolving algorithm, leading to division by zero in the presence of odd frame sizes due to incorrect use of rounded (to even) size.
2023.9.0 – 2023-09-24
The version numbers now almost match the SemVer recommendations.
- Video resolution resolving algorithm copes better with controversial situations.
- The ability to set the range of allowed ports (
-p min:max
). - The ability to make videos even from empty or non-existent folders (
--sure
).
- Options
--trim-start
and--trim-end
2023.5 – 2023-05-19
Not published in PYPI.
The script works in Python 3.7 again.
2022.10 – 2022-10-09
Not published in PYPI.
Complete re-implementation that uses a web server to pass frames to FFmpeg. Thus, intermediate results of image processing are not saved to the disk, which reduces its wear.
- The ability to compress images not from the current folder.
- The ability to concatenate multiple folders into one video.
- A DSL named OverLang to mark up overlays.
- Result guarantee: the video will be made under any circumstances!
- Warning screens (refers to the previous item). They are embedded in the video stream.
- It sorts files in natural order (in each folder separately).
- The text color and the background color of the text dynamically adjust to the video (the solid background fill is designed to make the text readable against a non-uniform background).
- Videos have black margins (black background) by default.
The first prototypes developed between 2018 and 2020 used FFmpeg with ImageMagick.
They had the following problems:
- The program used disk to process the frames. It was slow on HDD and wore out SSD.
- It processed the frames in-place. If something went wrong, the program could simply spoil the original data.
- It chose the most frequent resolution, which, under special circumstances, could lower the quality of most frames. I added an improved resolution selection method based on the weighted average only in September 2020.
- Its scaling heuristic was quite confusing and stupid.
- Lexicographic file sorting is usually not what you expect.
- Poor default settings (acid colors, one frame per second).
There was also an option to remove the original data after processing. It make sense, probably, when compressing CCTV frames.