# 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/)
[](https://deepwiki.com/RizwanMunawar/streamgrid)
<!-- DeepWiki badge generated by https://deepwiki.ryoppippi.com/ -->
## Installation
```bash
pip install streamgrid
```
## Quick Start
### Python
```python
from ultralytics import YOLO
from streamgrid import StreamGrid
# Load model
model = YOLO("yolo11n.pt")
# model = YOLO("yolo11n_openvino_model") ~2-3x faster
StreamGrid(model=model)
# Inference on GPU
StreamGrid(
sources=[
"path/to/video1.mp4", "path/to/video2.mp4",
"path/to/video3.mp4", "path/to/video4.mp4"
],
device="cuda")
# Store stream results in CSV file
StreamGrid(sources=sources, analytics=True)
```
### CLI (Command Line Interface)
```bash
streamgrid model=yolo11n.pt
# Run inference with GPU device
streamgrid model=yolo11n.pt device=0
# save the output
streamgrid model=yolo11n.pt device=cpu save=True
# Pass source
streamgrid model=yolo11n.pt sources=["video1.mp4", "video2.mp4"]
# Store Stream results in CSV file
streamgrid model=yolo11n.pt analytics=True
```
## 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/b6/34/1034de4b9df8d31ab77e5d8180357eeec61a877ec701c2cb337d1384f4ce/streamgrid-1.0.8.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[](https://deepwiki.com/RizwanMunawar/streamgrid)\n<!-- DeepWiki badge generated by https://deepwiki.ryoppippi.com/ -->\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# Load model\nmodel = YOLO(\"yolo11n.pt\")\n# model = YOLO(\"yolo11n_openvino_model\") ~2-3x faster\nStreamGrid(model=model) \n\n# Inference on GPU\nStreamGrid(\n sources=[\n \"path/to/video1.mp4\", \"path/to/video2.mp4\", \n \"path/to/video3.mp4\", \"path/to/video4.mp4\"\n ], \n device=\"cuda\")\n\n# Store stream results in CSV file\nStreamGrid(sources=sources, analytics=True)\n```\n\n### CLI (Command Line Interface)\n\n```bash\nstreamgrid model=yolo11n.pt\n\n# Run inference with GPU device\nstreamgrid model=yolo11n.pt device=0 \n\n# save the output\nstreamgrid model=yolo11n.pt device=cpu save=True\n\n# Pass source\nstreamgrid model=yolo11n.pt sources=[\"video1.mp4\", \"video2.mp4\"]\n\n# Store Stream results in CSV file\nstreamgrid model=yolo11n.pt analytics=True\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.8",
"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": "748b3eb3d2c423ac011b1d06aa1c189bf635a8b25ef851bfc2bc1f38018af1f1",
"md5": "bb39d2376eaca71d348c58d0cb2de0ee",
"sha256": "abdda61ee7d026d617b6598cbefdeb13fe7fc25ef0ff9fe73db16630c7c16256"
},
"downloads": -1,
"filename": "streamgrid-1.0.8-py3-none-any.whl",
"has_sig": false,
"md5_digest": "bb39d2376eaca71d348c58d0cb2de0ee",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8",
"size": 23859,
"upload_time": "2025-08-03T08:53:01",
"upload_time_iso_8601": "2025-08-03T08:53:01.218537Z",
"url": "https://files.pythonhosted.org/packages/74/8b/3eb3d2c423ac011b1d06aa1c189bf635a8b25ef851bfc2bc1f38018af1f1/streamgrid-1.0.8-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "b6341034de4b9df8d31ab77e5d8180357eeec61a877ec701c2cb337d1384f4ce",
"md5": "72461e6a4320752a0697b017ac7d6bbb",
"sha256": "f2e8e4445069a3a12d51e7e186cf7cec577f359919d6b2284d84ab70cd054510"
},
"downloads": -1,
"filename": "streamgrid-1.0.8.tar.gz",
"has_sig": false,
"md5_digest": "72461e6a4320752a0697b017ac7d6bbb",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 25067,
"upload_time": "2025-08-03T08:53:02",
"upload_time_iso_8601": "2025-08-03T08:53:02.283177Z",
"url": "https://files.pythonhosted.org/packages/b6/34/1034de4b9df8d31ab77e5d8180357eeec61a877ec701c2cb337d1384f4ce/streamgrid-1.0.8.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-08-03 08:53:02",
"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"
}