{"id":26967371,"url":"https://github.com/warjohn/bmp2yuv","last_synced_at":"2025-04-03T08:50:52.941Z","repository":{"id":277116065,"uuid":"931382645","full_name":"warjohn/BMP2YUV","owner":"warjohn","description":"converter BMP2YUV and also overlay images into video","archived":false,"fork":false,"pushed_at":"2025-03-02T13:30:32.000Z","size":56616,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-02T14:27:52.035Z","etag":null,"topics":["bmp2yuv","converter","overlay","overlay-bmp2yuv","yuv"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/warjohn.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2025-02-12T07:20:04.000Z","updated_at":"2025-03-02T13:30:36.000Z","dependencies_parsed_at":"2025-02-12T08:51:30.789Z","dependency_job_id":null,"html_url":"https://github.com/warjohn/BMP2YUV","commit_stats":null,"previous_names":["warjohn/bmp2yuv"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/warjohn%2FBMP2YUV","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/warjohn%2FBMP2YUV/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/warjohn%2FBMP2YUV/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/warjohn%2FBMP2YUV/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/warjohn","download_url":"https://codeload.github.com/warjohn/BMP2YUV/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246970335,"owners_count":20862508,"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":["bmp2yuv","converter","overlay","overlay-bmp2yuv","yuv"],"created_at":"2025-04-03T08:50:52.320Z","updated_at":"2025-04-03T08:50:52.927Z","avatar_url":"https://github.com/warjohn.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# BMP to YUV Converter and Video Processor\n\n## Table of Contents\n1. [Overview](#overview)\n2. [Features](#features)\n3. [Requirements](#requirements)\n4. [Installation](#installation)\n5. [Usage](#usage)\n6. [Directory Structure](#directory-structure)\n7. [Contributing](#contributing)\n8. [License](#license)\n\n---\n\n## Overview\n\nThis project is designed to convert BMP images into YUV420P format and process video files by inserting overlays. The core functionality includes:\n- Reading BMP files and converting them into YUV420P format.\n- Inverting the YUV data vertically.\n- Inserting overlays into YUV video streams.\n- Saving the processed YUV data into a file.\n\nThe code is structured using Object-Oriented Programming (OOP) principles, ensuring modularity, reusability, and maintainability.\n\n---\n\n## Features\n\n- **BMP to YUV Conversion**: Converts 24-bit BMP images into YUV420P format.\n- **Parallel Processing**: Utilizes multi-threading for efficient conversion of Y, U, and V channels.\n- **Video Overlay**: Inserts a YUV overlay into a video stream.\n- **Modular Design**: Divided into reusable classes (`BMPToYUVConverter`, `BMPreader`, `SaveYUV`, `VideoYUV`) for better organization and abstract classes (`ConvertAnyFormat2YUV`, `ImageReader`, `SaveImage`, `VideoProcessor`)\n\n---\n\n## Requirements\n\nTo build and run this project, you need the following:\n\n- **Compiler**: A modern C++ compiler supporting C++17 or later (e.g., GCC, Clang, MSVC).\n- **Build System**: CMake (version 3.10 or later).\n- **Standard Libraries**: STL (for vectors, threads, etc.).\n- **Optional**: FFmpeg for testing and validating YUV files.\n\n---\n\n## Installation\n\n### Step 1: Clone the Repository\n\n```bash\ngit clone https://github.com/your-repo-url.git\ncd your-repo-name\n```\n\n### Step 2: Create a Build Directory\n```bash\nmkdir build\ncd build\n```\n\n### Step 3: Configure with CMake\n```bash\ncmake ..\n```\n\n### Step 4: Build the Project\n```bash\nmake\n```\n\nFor Windows users, you can use your preferred IDE (e.g., Visual Studio) or run: \n```bash\ncmake --build . --config Release\n```\n\n\n## Usage\n\nConvert BMP to YUV : \n- Place your BMP image in the project directory.\n- Run the executable:\n```bash\n./bin/main input.bmp output.yuv\n```\n\n## Directory Structure \n```bash\nproject-root/\n│\n├── bin/               # Executable files (generated during build)\n├── build/             # Intermediate build files (CMake output)\n├── include/           # Header files (.h)\n├── src/               # Source files (.cpp)\n├── CMakeLists.txt     # CMake configuration file\n├── README.md          # This file\n└── .gitignore         # Git ignore rules\n```\n\n## Contributing\nContributions are welcome! If you find any issues or have suggestions for improvement, please open an issue or submit a pull request.\n\n\n## License\nThis project is licensed under the MIT License. See the LICENSE  file for details. \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwarjohn%2Fbmp2yuv","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwarjohn%2Fbmp2yuv","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwarjohn%2Fbmp2yuv/lists"}