Name | mp4-to-jpg-click JSON |
Version |
1.3.0
JSON |
| download |
home_page | None |
Summary | A CLI tool to extract frames from MP4/MOV videos with intelligent frame skipping and duplicate detection |
upload_time | 2024-11-21 00:24:00 |
maintainer | None |
docs_url | None |
author | None |
requires_python | >=3.11 |
license | MIT |
keywords |
cli
frame extraction
jpg
mp4
video
|
VCS |
|
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
# Video Frame Extraction Tool
This tool allows you to extract frames from video files, with features like deduplication and dynamic frame skipping.
## Features
This Video Frame Extraction Tool is designed to optimize your workflow with powerful, customizable features for handling video frame processing. Below are the standout capabilities:
+ **Versatile Video Format Support:** Work with popular video formats including .mp4 and .mov.
+ **Frame Deduplication:** Integrates an intelligent algorithm to eliminate similar frames, ensuring each extracted frame is unique. Customize the similarity threshold to fit your needs.
+ **Adaptive Frame Skipping:** Dynamically skips frames to maintain efficiency without sacrificing quality. The tool automatically adjusts skipping based on the video's FPS and duration, or you can customize the settings to your preferences.
+ **Custom Frame Limits:** Exercise complete control over your output. Set a cap on the maximum number of frames extracted from each video or across all your video processing tasks.
+ **Fast Processing:** Leverages the power of multi-core CPUs to speed up frame extraction, enabling parallel processing of video files.
+ **User-Friendly GUI:** A graphical user interface simplifies file selection and settings adjustments, making it accessible to users of all skill levels.
## Requirements
* Python 3.6+
* Required Python packages (listed in `requirements.txt`):
* `opencv-python`
* `tqdm`
* `loguru`
* `imagededup`
* `click`
* `tkinter`
## Installation
1. Clone the repository:
```bash
git clone [https://github.com/yourusername/video-frame-extraction-tool.git](https://github.com/yourusername/video-frame-extraction-tool.git)
cd video-frame-extraction-tool
```
2. Install the required Python packages:
```bash
pip install -r requirements.txt
```
Usage:
```bash
python extract_frames.py [OPTIONS]
```
## CLI arguments:
Tailor the tool's operation with command-line arguments to fit your project requirements:
+ **--threshold FLOAT** Set the similarity threshold for deduplication (range: 0.5 to 1.0). A higher value results in stricter deduplication.
+ **--no-deduplication** Disables the frame deduplication feature.
+ **--no-fps-skip** Stops the tool from skipping frames based on FPS, extracting every frame.
+ **--no-time-skip** Prevents frame skipping based on video duration.
+ **--max-frames INTEGER** Limit the total number of frames to be generated from all processed videos.
+ **--max-frames-per-video INTEGER** Specify a maximum number of frames to be extracted from each individual video.
Example usage:
```bash
python extract_frames.py --threshold 0.95 --max-frames 5000 --max-frames-per-video 1000
```
This fine-tuned approach provides a robust and flexible solution to efficiently manage frame extraction projects with precision control over output quality and operational parameters.
## How It Works
### Frame Extraction & Optimization
+ **Variable Frame Skipping:** Based on the set parameters and video characteristics (FPS and length), the tool calculates an optimal frame skipping strategy to balance between processing speed and output quality.
+ **Parallel Processing:** Distributes the workload across available CPU cores, significantly reducing the time required for frame extraction.
+ **Efficient Frame Saving:** Extracted frames are saved as JPG images, with an option to adjust the quality and resolution to meet specific needs.
### Deduplication for Quality Control:
+ Utilizes a CNN-based method to analyze and compare frames for near-duplicate detection.
+ Customizable threshold: Allows precision control over what is considered a duplicate, adjustable via the --threshold argument.
+ Organizes and relocates duplicates to a designated folder, ensuring your main output directory contains only unique frames.
### Contributing
Contributions are welcome! Please open issues or submit pull requests.
### Contact
For questions or feedback, please contact bussines@tadeasfort.com].
Raw data
{
"_id": null,
"home_page": null,
"name": "mp4-to-jpg-click",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.11",
"maintainer_email": null,
"keywords": "cli, frame extraction, jpg, mp4, video",
"author": null,
"author_email": "tadeasf <business@tadeasfort.com>",
"download_url": "https://files.pythonhosted.org/packages/0e/0b/5b56d736e0af9886052c3d4c70599407c0bd58b26a0d4f78c3a880619fd2/mp4_to_jpg_click-1.3.0.tar.gz",
"platform": null,
"description": "# Video Frame Extraction Tool\n\nThis tool allows you to extract frames from video files, with features like deduplication and dynamic frame skipping.\n\n## Features\n\nThis Video Frame Extraction Tool is designed to optimize your workflow with powerful, customizable features for handling video frame processing. Below are the standout capabilities:\n\n+ **Versatile Video Format Support:** Work with popular video formats including .mp4 and .mov.\n+ **Frame Deduplication:** Integrates an intelligent algorithm to eliminate similar frames, ensuring each extracted frame is unique. Customize the similarity threshold to fit your needs.\n+ **Adaptive Frame Skipping:** Dynamically skips frames to maintain efficiency without sacrificing quality. The tool automatically adjusts skipping based on the video's FPS and duration, or you can customize the settings to your preferences.\n+ **Custom Frame Limits:** Exercise complete control over your output. Set a cap on the maximum number of frames extracted from each video or across all your video processing tasks.\n+ **Fast Processing:** Leverages the power of multi-core CPUs to speed up frame extraction, enabling parallel processing of video files.\n+ **User-Friendly GUI:** A graphical user interface simplifies file selection and settings adjustments, making it accessible to users of all skill levels.\n\n\n## Requirements\n\n* Python 3.6+\n* Required Python packages (listed in `requirements.txt`):\n * `opencv-python`\n * `tqdm`\n * `loguru`\n * `imagededup`\n * `click`\n * `tkinter`\n\n## Installation\n\n1. Clone the repository:\n\n ```bash\n git clone [https://github.com/yourusername/video-frame-extraction-tool.git](https://github.com/yourusername/video-frame-extraction-tool.git)\n cd video-frame-extraction-tool\n ```\n2. Install the required Python packages:\n\n ```bash\n pip install -r requirements.txt\n ```\n\nUsage:\n\n ```bash\n python extract_frames.py [OPTIONS]\n ```\n\n## CLI arguments:\n\nTailor the tool's operation with command-line arguments to fit your project requirements:\n\n+ **--threshold FLOAT** Set the similarity threshold for deduplication (range: 0.5 to 1.0). A higher value results in stricter deduplication.\n+ **--no-deduplication** Disables the frame deduplication feature.\n+ **--no-fps-skip** Stops the tool from skipping frames based on FPS, extracting every frame.\n+ **--no-time-skip** Prevents frame skipping based on video duration.\n+ **--max-frames INTEGER** Limit the total number of frames to be generated from all processed videos.\n+ **--max-frames-per-video INTEGER** Specify a maximum number of frames to be extracted from each individual video.\n\n\nExample usage:\n ```bash\n python extract_frames.py --threshold 0.95 --max-frames 5000 --max-frames-per-video 1000\n ```\n\nThis fine-tuned approach provides a robust and flexible solution to efficiently manage frame extraction projects with precision control over output quality and operational parameters.\n## How It Works\n\n### Frame Extraction & Optimization\n\n+ **Variable Frame Skipping:** Based on the set parameters and video characteristics (FPS and length), the tool calculates an optimal frame skipping strategy to balance between processing speed and output quality.\n+ **Parallel Processing:** Distributes the workload across available CPU cores, significantly reducing the time required for frame extraction.\n+ **Efficient Frame Saving:** Extracted frames are saved as JPG images, with an option to adjust the quality and resolution to meet specific needs.\n\n### Deduplication for Quality Control:\n\n+ Utilizes a CNN-based method to analyze and compare frames for near-duplicate detection.\n+ Customizable threshold: Allows precision control over what is considered a duplicate, adjustable via the --threshold argument.\n+ Organizes and relocates duplicates to a designated folder, ensuring your main output directory contains only unique frames.\n\n### Contributing\nContributions are welcome! Please open issues or submit pull requests.\n\n### Contact\nFor questions or feedback, please contact bussines@tadeasfort.com].\n\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "A CLI tool to extract frames from MP4/MOV videos with intelligent frame skipping and duplicate detection",
"version": "1.3.0",
"project_urls": {
"Homepage": "https://github.com/tadeasf/mp4-to-jpg-click",
"Repository": "https://github.com/tadeasf/mp4-to-jpg-click"
},
"split_keywords": [
"cli",
" frame extraction",
" jpg",
" mp4",
" video"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "67dfe065a0cd1b363486340663a0bdac1aa649f67dc5abb36f61cefcdb66dc58",
"md5": "a185fd40315f014b6eed01f7ac8bea84",
"sha256": "82d86a2b254fb21923b09f17c7eb8f176e9f02c9f5effbfde8cba906fdf2b251"
},
"downloads": -1,
"filename": "mp4_to_jpg_click-1.3.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "a185fd40315f014b6eed01f7ac8bea84",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.11",
"size": 7162,
"upload_time": "2024-11-21T00:23:39",
"upload_time_iso_8601": "2024-11-21T00:23:39.317306Z",
"url": "https://files.pythonhosted.org/packages/67/df/e065a0cd1b363486340663a0bdac1aa649f67dc5abb36f61cefcdb66dc58/mp4_to_jpg_click-1.3.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "0e0b5b56d736e0af9886052c3d4c70599407c0bd58b26a0d4f78c3a880619fd2",
"md5": "46b8552d3a01e3526c2e25170fc41934",
"sha256": "1ddaa9be64fc1c131c41ca0730a3ad789d37e8389733545a3fa677356487c6ee"
},
"downloads": -1,
"filename": "mp4_to_jpg_click-1.3.0.tar.gz",
"has_sig": false,
"md5_digest": "46b8552d3a01e3526c2e25170fc41934",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.11",
"size": 65751,
"upload_time": "2024-11-21T00:24:00",
"upload_time_iso_8601": "2024-11-21T00:24:00.630892Z",
"url": "https://files.pythonhosted.org/packages/0e/0b/5b56d736e0af9886052c3d4c70599407c0bd58b26a0d4f78c3a880619fd2/mp4_to_jpg_click-1.3.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-11-21 00:24:00",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "tadeasf",
"github_project": "mp4-to-jpg-click",
"github_not_found": true,
"lcname": "mp4-to-jpg-click"
}