A high-performance Python tool for extracting frames from video files with multi-threading support and rich visualization features.
- Features
- Process Flow
- Prerequisites
- Virtual Environment Setup
- Installation
- Usage
- Output
- Contributing
- License
- Acknowledgments
- Multi-threaded frame extraction for optimal performance
- Real-time progress tracking with Rich console
- Detailed video metadata display
- Cross-platform compatibility
- Configurable thread count
- Robust error handling
- Jupyter Notebook integration support
- Python 3.6 or higher
- Required packages for CLI:
pip install opencv-python rich
- Additional packages for Jupyter Notebook:
pip install numpy matplotlib jupyter ipython
-
Create a virtual environment:
python -m venv venv
-
Activate the virtual environment:
Windows:
.\venv\Scripts\activate
Linux/Mac:
source venv/bin/activate -
Verify activation (you should see (venv) in your terminal):
python --version
-
Clone or download this repository
git clone https://github.com/ToolsHive/Forensi-Frame.git
-
Install all dependencies:
pip install -r requirements.txt
python script.py <video_path> <output_directory> [--threads N]
python script.py sample.mp4 frames --threads 8video_path: Path to the input video fileoutput_directory: Directory where extracted frames will be saved--threads: Number of threads to use (default: 4)
You can also use the provided Jupyter notebook Video_Frame_Extractor.ipynb for an interactive experience with additional visualization features.
- Frames are saved as sequential JPEG images
- Naming format:
frame_XXXX.jpg - Video metadata is displayed in a formatted table
- Progress bar shows extraction status
- Fork the repository
- Create feature branch (
git checkout -b feature/name) - Commit changes (
git commit -am 'Add feature') - Push branch (
git push origin feature/name) - Create Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- OpenCV for video processing capabilities
- Rich library for terminal visualization
- Python's concurrent.futures for multi-threading support
