streamgrid


Namestreamgrid JSON
Version 1.0.8 PyPI version JSON
download
home_pageNone
SummaryUltra-fast multi-stream: Display multiple video sources with object detection simultaneously using the CPU or GPU device.
upload_time2025-08-03 08:53:02
maintainerMuhammad Rizwan Munawar
docs_urlNone
authorMuhammad Rizwan Munawar
requires_python>=3.8
licenseNone
keywords video streaming display multi-stream opencv real-time python ultralytics
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # 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.

[![Run CI](https://github.com/RizwanMunawar/streamgrid/actions/workflows/ci.yml/badge.svg)](https://github.com/RizwanMunawar/streamgrid/actions/workflows/ci.yml)
[![PyPI Downloads](https://static.pepy.tech/badge/streamgrid)](https://pepy.tech/projects/streamgrid)
[![PyPI version](https://img.shields.io/pypi/v/streamgrid.svg)](https://pypi.org/project/streamgrid/)
[![Explore streamgrid tech in DeepWiki](https://img.shields.io/badge/Explore-streamgrid_deepwki-blue.svg?logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAyCAYAAAAnWDnqAAAAAXNSR0IArs4c6QAAA05JREFUaEPtmUtyEzEQhtWTQyQLHNak2AB7ZnyXZMEjXMGeK/AIi+QuHrMnbChYY7MIh8g01fJoopFb0uhhEqqcbWTp06/uv1saEDv4O3n3dV60RfP947Mm9/SQc0ICFQgzfc4CYZoTPAswgSJCCUJUnAAoRHOAUOcATwbmVLWdGoH//PB8mnKqScAhsD0kYP3j/Yt5LPQe2KvcXmGvRHcDnpxfL2zOYJ1mFwrryWTz0advv1Ut4CJgf5uhDuDj5eUcAUoahrdY/56ebRWeraTjMt/00Sh3UDtjgHtQNHwcRGOC98BJEAEymycmYcWwOprTgcB6VZ5JK5TAJ+fXGLBm3FDAmn6oPPjR4rKCAoJCal2eAiQp2x0vxTPB3ALO2CRkwmDy5WohzBDwSEFKRwPbknEggCPB/imwrycgxX2NzoMCHhPkDwqYMr9tRcP5qNrMZHkVnOjRMWwLCcr8ohBVb1OMjxLwGCvjTikrsBOiA6fNyCrm8V1rP93iVPpwaE+gO0SsWmPiXB+jikdf6SizrT5qKasx5j8ABbHpFTx+vFXp9EnYQmLx02h1QTTrl6eDqxLnGjporxl3NL3agEvXdT0WmEost648sQOYAeJS9Q7bfUVoMGnjo4AZdUMQku50McDcMWcBPvr0SzbTAFDfvJqwLzgxwATnCgnp4wDl6Aa+Ax283gghmj+vj7feE2KBBRMW3FzOpLOADl0Isb5587h/U4gGvkt5v60Z1VLG8BhYjbzRwyQZemwAd6cCR5/XFWLYZRIMpX39AR0tjaGGiGzLVyhse5C9RKC6ai42ppWPKiBagOvaYk8lO7DajerabOZP46Lby5wKjw1HCRx7p9sVMOWGzb/vA1hwiWc6jm3MvQDTogQkiqIhJV0nBQBTU+3okKCFDy9WwferkHjtxib7t3xIUQtHxnIwtx4mpg26/HfwVNVDb4oI9RHmx5WGelRVlrtiw43zboCLaxv46AZeB3IlTkwouebTr1y2NjSpHz68WNFjHvupy3q8TFn3Hos2IAk4Ju5dCo8B3wP7VPr/FGaKiG+T+v+TQqIrOqMTL1VdWV1DdmcbO8KXBz6esmYWYKPwDL5b5FA1a0hwapHiom0r/cKaoqr+27/XcrS5UwSMbQAAAABJRU5ErkJggg==)](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[![Run CI](https://github.com/RizwanMunawar/streamgrid/actions/workflows/ci.yml/badge.svg)](https://github.com/RizwanMunawar/streamgrid/actions/workflows/ci.yml)\n[![PyPI Downloads](https://static.pepy.tech/badge/streamgrid)](https://pepy.tech/projects/streamgrid)\n[![PyPI version](https://img.shields.io/pypi/v/streamgrid.svg)](https://pypi.org/project/streamgrid/)\n[![Explore streamgrid tech in DeepWiki](https://img.shields.io/badge/Explore-streamgrid_deepwki-blue.svg?logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAyCAYAAAAnWDnqAAAAAXNSR0IArs4c6QAAA05JREFUaEPtmUtyEzEQhtWTQyQLHNak2AB7ZnyXZMEjXMGeK/AIi+QuHrMnbChYY7MIh8g01fJoopFb0uhhEqqcbWTp06/uv1saEDv4O3n3dV60RfP947Mm9/SQc0ICFQgzfc4CYZoTPAswgSJCCUJUnAAoRHOAUOcATwbmVLWdGoH//PB8mnKqScAhsD0kYP3j/Yt5LPQe2KvcXmGvRHcDnpxfL2zOYJ1mFwrryWTz0advv1Ut4CJgf5uhDuDj5eUcAUoahrdY/56ebRWeraTjMt/00Sh3UDtjgHtQNHwcRGOC98BJEAEymycmYcWwOprTgcB6VZ5JK5TAJ+fXGLBm3FDAmn6oPPjR4rKCAoJCal2eAiQp2x0vxTPB3ALO2CRkwmDy5WohzBDwSEFKRwPbknEggCPB/imwrycgxX2NzoMCHhPkDwqYMr9tRcP5qNrMZHkVnOjRMWwLCcr8ohBVb1OMjxLwGCvjTikrsBOiA6fNyCrm8V1rP93iVPpwaE+gO0SsWmPiXB+jikdf6SizrT5qKasx5j8ABbHpFTx+vFXp9EnYQmLx02h1QTTrl6eDqxLnGjporxl3NL3agEvXdT0WmEost648sQOYAeJS9Q7bfUVoMGnjo4AZdUMQku50McDcMWcBPvr0SzbTAFDfvJqwLzgxwATnCgnp4wDl6Aa+Ax283gghmj+vj7feE2KBBRMW3FzOpLOADl0Isb5587h/U4gGvkt5v60Z1VLG8BhYjbzRwyQZemwAd6cCR5/XFWLYZRIMpX39AR0tjaGGiGzLVyhse5C9RKC6ai42ppWPKiBagOvaYk8lO7DajerabOZP46Lby5wKjw1HCRx7p9sVMOWGzb/vA1hwiWc6jm3MvQDTogQkiqIhJV0nBQBTU+3okKCFDy9WwferkHjtxib7t3xIUQtHxnIwtx4mpg26/HfwVNVDb4oI9RHmx5WGelRVlrtiw43zboCLaxv46AZeB3IlTkwouebTr1y2NjSpHz68WNFjHvupy3q8TFn3Hos2IAk4Ju5dCo8B3wP7VPr/FGaKiG+T+v+TQqIrOqMTL1VdWV1DdmcbO8KXBz6esmYWYKPwDL5b5FA1a0hwapHiom0r/cKaoqr+27/XcrS5UwSMbQAAAABJRU5ErkJggg==)](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"
}
        
Elapsed time: 1.39809s