Record and save time-lapse videos while you work.
Project description
TimeLapser
TimeLapser is a Python CLI tool for recording screen activity and saving it as a video file. It uses OpenCV and FFMPEG for video encoding and supports multiple monitor setups. You can customize the recording settings such as frame rate, video format, and monitor selection. The tool also provides functionality to list available monitors and display a recording timer.
Features
- Record screen activity from a selected monitor.
- Save recordings in MP4 or AVI format.
- Specify the output directory.
- Option to set the frames per second (FPS) for recording.
- Display a timer showing elapsed recording time.
- List available monitors with their resolutions.
Requirements
- Python 3.10+
- OpenCV (
cv2
) - NumPy
- MSS
- Pynput
- Rich
- FFMPEG (Ensure FFMPEG is installed and accessible in your PATH)
Installation
-
Install using
pip
:pip install timelapser
Or install from GitHub:
pip install git+https://github.com/asibhossen897/timelapser.git
-
Ensure FFMPEG is installed:
To check if FFMPEG is installed, run the following command:
ffmpeg -version
If FFMPEG is not installed, you can install it using the following commands:
-
Linux:
-
Ubuntu/Debian
sudo apt-get update sudo apt-get install ffmpeg
-
RHEL/CentOS/Fedora
sudo yum install ffmpeg
-
Arch Linux
sudo pacman -S ffmpeg
-
-
macOS:
brew install ffmpeg
-
Windows: Download and install from the FFMPEG official site and add it to your PATH.
-
Important: The program will not work if FFMPEG is not installed.
Usage
Start Recording
To start recording, use the record
command:
timelapser record --fps 30 --mp4 --monitor_index 0 --output_dir Recordings
or Download and use timelapser.py
file from the GitHub repository:
python timelapser.py record --fps 30 --mp4 --monitor_index 0 --output_dir Recordings
Options:
--fps
: Frames per second (e.g., 30, Default is 100).--mp4
: Save the video in MP4 format. Use--avi
for AVI format.--monitor_index
: Index of the monitor to record from (default is 0).--output_dir
: Directory where the video will be saved (default is "Outputs").
Stop Recording
To stop recording, press Q
on your keyboard.
List Monitors
To list all available monitors and their resolutions, use:
timelapser list-monitors
Code Organization
timelapser/main.py
: Contains the CLI commands and main logic for recording and listing monitors.timelapser/recorder.py
: Contains functions for creating videos, recording frames, and handling output directories.timelapser/utils.py
: Contains utility functions for generating timestamps and video formats.requirements.txt
: Lists the Python dependencies.
Bugs and Feature Requests
- When you have any bug or feature request, please open an issue on GitHub.
Contributing
Feel free to contribute to this project by submitting issues, feature requests, or pull requests. Ensure you follow the coding style and include tests for new features.
License
This project is licensed under the MIT License. See the LICENSE file for details.
Contact
For any questions or feedback, please contact dev.asib@proton.me.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file timelapser-0.1.1.tar.gz
.
File metadata
- Download URL: timelapser-0.1.1.tar.gz
- Upload date:
- Size: 5.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.9.19
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4fbd29765cf94b76bb2bda20bac93f5211768675c0f4956b33882aa956649ecd |
|
MD5 | 34efa20c3d7ee481bdf69ee39d1ade06 |
|
BLAKE2b-256 | 39cddfa06a5c9ed372202b8d80569bd5aff14f2a30b731afc4061fbadfa0d496 |
File details
Details for the file timelapser-0.1.1-py3-none-any.whl
.
File metadata
- Download URL: timelapser-0.1.1-py3-none-any.whl
- Upload date:
- Size: 6.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.9.19
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 80f534587f9a6afc7f375f22681e35a119de3bc0122d384527d48b0223e37dd5 |
|
MD5 | b942c7b32846c00f792a9997fed56cdc |
|
BLAKE2b-256 | 96620a03d042e02bedc3bc55c5564e426b57ed57cabbb5d61ede935f8e427b1f |