{"id":17626483,"url":"https://github.com/georgy7/catframes","last_synced_at":"2025-09-01T00:37:43.355Z","repository":{"id":62561015,"uuid":"139848758","full_name":"georgy7/catframes","owner":"georgy7","description":"Image Sequence to Video Converter","archived":false,"fork":false,"pushed_at":"2025-03-10T10:35:37.000Z","size":4221,"stargazers_count":11,"open_issues_count":12,"forks_count":4,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-27T09:02:12.490Z","etag":null,"topics":["cctv","timelapse"],"latest_commit_sha":null,"homepage":"https://itustinov.ru/#en","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"zlib","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/georgy7.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-07-05T12:49:14.000Z","updated_at":"2025-01-09T11:21:47.000Z","dependencies_parsed_at":"2023-11-12T08:25:07.188Z","dependency_job_id":"fe9283ca-291c-47c7-911f-0fef59092fda","html_url":"https://github.com/georgy7/catframes","commit_stats":{"total_commits":354,"total_committers":6,"mean_commits":59.0,"dds":0.6242937853107344,"last_synced_commit":"1fa66930cd3e196a22493501545b06490f430354"},"previous_names":[],"tags_count":22,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/georgy7%2Fcatframes","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/georgy7%2Fcatframes/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/georgy7%2Fcatframes/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/georgy7%2Fcatframes/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/georgy7","download_url":"https://codeload.github.com/georgy7/catframes/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248758418,"owners_count":21156957,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cctv","timelapse"],"created_at":"2024-10-22T23:05:34.436Z","updated_at":"2025-04-13T18:15:07.286Z","avatar_url":"https://github.com/georgy7.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"Catframes\n=========\n\nIt concatenates frames.\n\nWith this software, you can\n\n* create a timelapse video\n* turn an animation rendered in a PNG sequence into a video\n* compress your selfies\n* compress a sequence of frames from CCTV\n\nThe script takes folders with images and outputs MP4 or WebM.\n\nIt has GUI: `catmanager`\n\n\nWhat exactly does it do\n-----------------------\n\n1. It takes the folders in the order you specify them.\n2. It sorts images by name in natural order in each folder separately.\n3. It checks the resolution of each image and counts their numbers.\n4. It heuristically chooses the video resolution from the collected data.\n5. It resizes each image (on the fly) to fit into that resolution, preserving the aspect ratio and aligning the images in the center.\n6. It overlays various text information on the frames, if you specified this in the arguments.\n7. It concatenates the frames, having a fairly high resistance to emergencies.\n\n\nInstallation\n------------\n\nDo this as root for system-wide installation:\n\n```\npython3 -m pip install catframes\n```\n\nOr you may install it only for your user:\n\n```\nsudo apt install pipx\npipx install catframes\npipx ensurepath\n```\n\nYou may also copy `catframes.py` to `/usr/local/bin` manually.\nBut then you will also need to install [Pillow](https://pypi.org/project/Pillow/#files).\n\nDependencies that are not installable from PYPI:\n\n1. FFmpeg\n2. Monospaced fonts\n\nAlpine: `apk add ffmpeg font-dejavu`\n\nDebian/Ubuntu: `apt-get install ffmpeg fonts-dejavu`\n\nCentos/RHEL: `yum install ffmpeg dejavu-sans-mono-fonts`\n\nWindows: [FFmpeg builds](https://ffmpeg.org/download.html); Courier New included.\n\n\nUsage\n-----\n\nIf you are launching the program for the first time,\nuse `--limit` option to try different options on short video samples.\n\n    catframes --limit=3 sourceFolder sample.mp4\n\nThe command to run it with default settings looks like this:\n\n    catframes folderA folderB folderC result.webm\n\nFor automatic launches (through a CRON job, etc.), it's better to add `--force` and `--sure` options:\n\n    catframes -sf folderA folderB folderC result.webm\n\n\nDefault settings\n----------------\n\n**Frame rate:** 30 frames per second.\n\nYou may change it with `-r` parameter.\nAcceptable values are from 1 to 60.\nAll source frames will be included, so this parameter\ndetermines speed of your video record.\n\n**Compression quality:** medium.\n\nYou may change it with `-q` parameter.\nAcceptable values are `poor`, `medium`, `high`.\n\n**Margin (background) color:** black.\n\nYou may change it with `--margin-color`.\nIt takes values in formats `#rrggbb` and `#rgb` (hexadecimal digits; `#abc` means `#aabbcc`).\n\n\nText overlays\n-------------\n\nThere is a 3 by 3 grid. You can place labels in all cells except the central one.\n\nPlease, use `--left`, `--right`, `--top`, `--left-top`, etc.\n\nOne of the cells may be reserved for important warnings.\nIt is set by `WARN` value (in any case). By default, this is the top cell.\n\nYou can use any constant text in the labels, including line feeds (`\\n`).\nYou can also use a limited set of functions in curly brackets that output\ninformation about the source image or about the system.\n\nTo prevent special characters from being interpreted, you should use\n*single quotes in Unix Shell*, however,\nyou must use double quotes in the Windows command line.\n\nExample (Bash):\n\n```\ncatframes \\\n    -r=5 --limit=10 \\\n    --left-top='Frame {frame:video}' \\\n    --left-bottom='{dir}/{fn}\\n\\nModified: {mtime}' \\\n    --right-bottom='Compressed {vtime:%Y-%m-%d %H:%M}' \\\n    folder video.webm\n```\n\nRead more about these functions in the docs.\n\n\nSee also\n--------\n\n**[Documentation](https://itustinov.ru/cona/latest/docs/html/catframes.html)** (in Russian, outdated)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgeorgy7%2Fcatframes","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgeorgy7%2Fcatframes","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgeorgy7%2Fcatframes/lists"}