mp4-to-jpg-click


Namemp4-to-jpg-click JSON
Version 1.3.0 PyPI version JSON
download
home_pageNone
SummaryA CLI tool to extract frames from MP4/MOV videos with intelligent frame skipping and duplicate detection
upload_time2024-11-21 00:24:00
maintainerNone
docs_urlNone
authorNone
requires_python>=3.11
licenseMIT
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"
}
        
Elapsed time: 0.63253s