# StreamGrid ⚡
Ultra-fast multi-stream video display, Run real-time object detection across multiple video feeds with real-time speed. Whether you're on CPU or GPU, StreamGrid handles the load like a champ.
From smart surveillance to AI-powered dashboards, StreamGrid makes it effortless to display and analyze multiple video streams side-by-side, with [Ultralytics](https://github.com/ultralytics/ultralytics) YOLO-based detection running on all of them in real time.
[](https://github.com/RizwanMunawar/streamgrid/actions/workflows/ci.yml)
[](https://pepy.tech/projects/streamgrid)
[](https://pypi.org/project/streamgrid/)
## Installation
```bash
pip install streamgrid
```
## Quick Start
### Python
```python
from ultralytics import YOLO
from streamgrid import StreamGrid
# Use assets videos for testing
model = YOLO("yolo11n.pt")
StreamGrid(model=model)
# Use your own videos
sources = ["video1.mp4", "video2.mp4", "video3.mp4", "video4.mp4"]
StreamGrid(sources=sources, model=model)
```
## Performance (Beta, final benchmarks will be released soon)
StreamGrid automatically optimizes performance based on the number of streams:
- **1-2 streams**: 640×360 resolution, up to 15 FPS per stream
- **3-4 streams**: 480×270 resolution, up to 10 FPS total (CPU processing)
- **5-9 streams**: 320×180 resolution, up to 5 FPS per stream
- **10+ streams**: 240×135 resolution, up to 3 FPS per stream
*Note: Performance benchmarks are based on CPU processing. GPU acceleration can significantly improve throughput.*
## Contributing
We welcome contributions! Please feel free to submit a Pull Request or open an issue for discussion.
Raw data
{
"_id": null,
"home_page": null,
"name": "streamgrid",
"maintainer": "Muhammad Rizwan Munawar",
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": null,
"keywords": "video, streaming, display, multi-stream, opencv, real-time, python, ultralytics",
"author": "Muhammad Rizwan Munawar",
"author_email": null,
"download_url": "https://files.pythonhosted.org/packages/de/c4/17dc9ec6cabc7fb620dc017ca244aaa45a1cf647158b94d8cb54abb504ef/streamgrid-1.0.3.tar.gz",
"platform": null,
"description": "# StreamGrid \u26a1\n\nUltra-fast multi-stream video display, Run real-time object detection across multiple video feeds with real-time speed. Whether you're on CPU or GPU, StreamGrid handles the load like a champ.\n\nFrom smart surveillance to AI-powered dashboards, StreamGrid makes it effortless to display and analyze multiple video streams side-by-side, with [Ultralytics](https://github.com/ultralytics/ultralytics) YOLO-based detection running on all of them in real time.\n\n[](https://github.com/RizwanMunawar/streamgrid/actions/workflows/ci.yml)\n[](https://pepy.tech/projects/streamgrid)\n[](https://pypi.org/project/streamgrid/)\n\n## Installation\n\n```bash\npip install streamgrid\n```\n\n## Quick Start\n\n### Python\n\n```python\nfrom ultralytics import YOLO\nfrom streamgrid import StreamGrid\n\n# Use assets videos for testing\nmodel = YOLO(\"yolo11n.pt\")\nStreamGrid(model=model) \n\n# Use your own videos\nsources = [\"video1.mp4\", \"video2.mp4\", \"video3.mp4\", \"video4.mp4\"]\nStreamGrid(sources=sources, model=model)\n\n```\n\n## Performance (Beta, final benchmarks will be released soon)\n\nStreamGrid automatically optimizes performance based on the number of streams:\n\n- **1-2 streams**: 640\u00d7360 resolution, up to 15 FPS per stream\n- **3-4 streams**: 480\u00d7270 resolution, up to 10 FPS total (CPU processing)\n- **5-9 streams**: 320\u00d7180 resolution, up to 5 FPS per stream\n- **10+ streams**: 240\u00d7135 resolution, up to 3 FPS per stream\n\n*Note: Performance benchmarks are based on CPU processing. GPU acceleration can significantly improve throughput.*\n\n## Contributing\n\nWe welcome contributions! Please feel free to submit a Pull Request or open an issue for discussion.\n",
"bugtrack_url": null,
"license": null,
"summary": "Ultra-fast multi-stream: Display multiple video sources with object detection simultaneously using the CPU or GPU device.",
"version": "1.0.3",
"project_urls": {
"Documentation": "https://github.com/RizwanMunawar/streamgrid#readme",
"Homepage": "https://github.com/RizwanMunawar/streamgrid",
"Issues": "https://github.com/RizwanMunawar/streamgrid/issues",
"Repository": "https://github.com/RizwanMunawar/streamgrid"
},
"split_keywords": [
"video",
" streaming",
" display",
" multi-stream",
" opencv",
" real-time",
" python",
" ultralytics"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "20cd865f853ddc26d3e854435b74d68c76b60707a425db480f0f3da3d2b12d72",
"md5": "e35803a5b3ab15763f85757dfabe6adb",
"sha256": "41c522d333e4fc9157f9ed6627af76eeac86f6af11c4fde847fa105057afe7ec"
},
"downloads": -1,
"filename": "streamgrid-1.0.3-py3-none-any.whl",
"has_sig": false,
"md5_digest": "e35803a5b3ab15763f85757dfabe6adb",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8",
"size": 23255,
"upload_time": "2025-07-14T04:22:50",
"upload_time_iso_8601": "2025-07-14T04:22:50.122848Z",
"url": "https://files.pythonhosted.org/packages/20/cd/865f853ddc26d3e854435b74d68c76b60707a425db480f0f3da3d2b12d72/streamgrid-1.0.3-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "dec417dc9ec6cabc7fb620dc017ca244aaa45a1cf647158b94d8cb54abb504ef",
"md5": "e06394c2909bb89e4976b5540248ae7f",
"sha256": "fdecaedb71619499fc356ba3b11a445bd6969beb09b2a4ecf4eaa3943d1fba0b"
},
"downloads": -1,
"filename": "streamgrid-1.0.3.tar.gz",
"has_sig": false,
"md5_digest": "e06394c2909bb89e4976b5540248ae7f",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 23590,
"upload_time": "2025-07-14T04:22:51",
"upload_time_iso_8601": "2025-07-14T04:22:51.259231Z",
"url": "https://files.pythonhosted.org/packages/de/c4/17dc9ec6cabc7fb620dc017ca244aaa45a1cf647158b94d8cb54abb504ef/streamgrid-1.0.3.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-07-14 04:22:51",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "RizwanMunawar",
"github_project": "streamgrid#readme",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "streamgrid"
}