{"id":23326159,"url":"https://github.com/muratdemirci/droidcam-virtual-camera","last_synced_at":"2025-08-22T20:31:31.804Z","repository":{"id":266868764,"uuid":"894770509","full_name":"muratdemirci/droidcam-virtual-camera","owner":"muratdemirci","description":"DroidCam Virtual Camera is a Rust-based application designed to display live camera streaming client","archived":false,"fork":false,"pushed_at":"2024-11-27T00:42:28.000Z","size":4,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"dio","last_synced_at":"2024-12-15T03:05:50.582Z","etag":null,"topics":["droidcam","macos","rust","rust-lang","webcam"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/muratdemirci.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2024-11-27T00:40:49.000Z","updated_at":"2024-11-28T07:41:09.000Z","dependencies_parsed_at":"2024-12-06T17:07:31.790Z","dependency_job_id":"e2be45dd-3fa5-46b9-b3d2-7c4ff35fcc1c","html_url":"https://github.com/muratdemirci/droidcam-virtual-camera","commit_stats":null,"previous_names":["muratdemirci/droidcam-virtual-camera"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/muratdemirci%2Fdroidcam-virtual-camera","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/muratdemirci%2Fdroidcam-virtual-camera/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/muratdemirci%2Fdroidcam-virtual-camera/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/muratdemirci%2Fdroidcam-virtual-camera/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/muratdemirci","download_url":"https://codeload.github.com/muratdemirci/droidcam-virtual-camera/tar.gz/refs/heads/dio","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":230633749,"owners_count":18256740,"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":["droidcam","macos","rust","rust-lang","webcam"],"created_at":"2024-12-20T19:14:41.228Z","updated_at":"2024-12-20T19:14:41.860Z","avatar_url":"https://github.com/muratdemirci.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# DroidCam Virtual Camera\n\nDroidCam Virtual Camera is a Rust-based application designed to display live camera streams using the `egui` GUI framework. It connects to a remote video stream URL, decodes incoming frames in real-time, and renders them in a user-friendly interface.\n\n---\n\n## Features\n\n- **Real-Time Video Streaming:** Streams video from a specified URL.\n- **Automatic Reconnection:** Automatically attempts to reconnect if the connection drops.\n- **Efficient Frame Decoding:** Processes JPEG frames from a multipart stream efficiently.\n- **Customizable UI:** Leverages the `eframe` and `egui` frameworks for a responsive and modern user interface.\n- **Performance Optimized:** Supports TCP keep-alive and adjustable connection timeouts for optimal performance.\n\n---\n\n## Getting Started\n\n### Prerequisites\n\n- **Rust Toolchain**: Ensure that Rust and Cargo are installed. [Install Rust](https://www.rust-lang.org/tools/install)\n- **Dependencies**: The project relies on the following crates:\n  - `eframe` and `egui` for GUI.\n  - `reqwest` for HTTP requests.\n  - `tokio` for asynchronous runtime.\n  - `image` for image processing.\n  - `futures-util` for handling asynchronous streams.\n\n### Installation\n\n1. Clone the repository:\n\n   ```bash\n   git clone https://github.com/muratdemirci/droidcam-virtual-camera.git\n   cd droidcam-virtual-camera\n   ```\n\n2. Install dependencies:\n\n   ```bash\n   cargo build\n   ```\n\n3. Run the application:\n   ```bash\n   cargo run\n   ```\n\n---\n\n## Configuration\n\n### Default Stream URL\n\nThe application connects to the following default stream URL:\n\n```plaintext\nhttp://192.168.0.101:4747/video\n```\n\nYou can modify the `url` field in the `App` struct to connect to a different stream.\n\n---\n\n## Usage\n\n1. **Start the Application**: Launch the app using `cargo run`.\n2. **View the Stream**: If the stream is reachable, the application will display the video frames in real-time.\n3. **Reconnect Logic**: If the connection drops, the app will retry with an exponential backoff mechanism.\n4. **Adjust Window Size**: Resize the application window to fit your screen.\n\n---\n\n## Project Structure\n\n- **Main Application (`App`)**:\n  - Manages the video stream, connection logic, and frame decoding.\n- **Frame Decoding**:\n  - Extracts JPEG frames from a multipart stream.\n- **User Interface**:\n  - Displays video frames using `egui`'s image widget.\n- **Stream Task**:\n  - Runs in a separate asynchronous task for continuous streaming.\n\n---\n\n## Troubleshooting\n\n- **Connection Issues**:\n  - Ensure the URL is correct and reachable.\n  - Verify the device providing the stream is active.\n- **Decoding Errors**:\n  - Check the stream format; the application expects JPEG frames.\n  - Review error messages for specific issues with data format.\n\n---\n\n## Future Enhancements\n\n- Support for multiple camera streams.\n- Adjustable resolution and quality settings.\n- Integration with additional video formats (e.g., MJPEG).\n- Improved error handling and diagnostics.\n\n---\n\n## License\n\nThis project is licensed under the MIT License. See the `LICENSE` file for details.\n\n---\n\n## Contribution\n\nContributions are welcome! Feel free to open issues or submit pull requests.\n\n---\n\n## Author\n\nDeveloped by **[Murat Demirci]**.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmuratdemirci%2Fdroidcam-virtual-camera","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmuratdemirci%2Fdroidcam-virtual-camera","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmuratdemirci%2Fdroidcam-virtual-camera/lists"}