Skip to main content

Osprey

Dynamic, multi-stream video-analytics library built on NVIDIA DeepStream 8.0 — installable with pip, run bare-metal, no Docker.

from osprey.client import DeepStreamClient, FrameData

class VehicleCounter(DeepStreamClient):
    def _process_frame(self, frame: FrameData):
        for obj in frame.objects:
            self._draw_object(frame.surface, obj)   # box + tracking label

VehicleCounter().start()   # serves RTSP for every discovered stream

What Osprey installs for you

Osprey is a Python layer on top of the DeepStream SDK. The GStreamer plugins (nvstreammux, nvinfer, nvtracker, nvunixfdsink/src, nvdsosd, …) and the pyds bindings are not on PyPI. Rather than make you set that up by hand, Osprey ships an end-to-end bootstrap that reproduces, bare-metal, what the DeepStream container image build does — so a fresh Ubuntu 24.04 box becomes a working Osprey host with no Docker.

Target platform (DeepStream 8.0, x86/dGPU):

Component Version
OS Ubuntu 24.04
NVIDIA driver R570.133.20
CUDA 12.8
TensorRT 10.9.0.34
cuDNN 9.7.1
GStreamer 1.24.2

Quick start (end-to-end)

# 1. Install the Python package (pure-Python + precompiled parser .so)
pip install "osprey[server]"

# 2. Bootstrap the DeepStream stack bare-metal (needs root; ~one-time)
sudo osprey-bootstrap

# 3. Run
osprey-server     # FastAPI control plane on :8000  (POST /api/v1/add …)
osprey-client     # discovers sockets, serves RTSP per stream

osprey-bootstrap runs five stages (each also runnable on its own; see below). If the NVIDIA driver is (re)installed in stage 10, reboot before running the pipeline.

Bootstrap stages

Stage Does Mirrors
00_system_deps apt build toolchain + GStreamer runtime image apt layer
10_cuda_trt_cudnn driver R570 + CUDA 12.8 + cuDNN 9.7 + TensorRT 10.9 base image
20_deepstream_sdk DeepStream 8.0 SDK .deb from NGC → GStreamer plugins base image
30_pyds build + install pyds for your Python image bindings build
40_native_libs verify shipped parsers/serializer; TRT-plugin patch is manual image compile step

Useful toggles (read by the scripts, pass straight through):

sudo OSPREY_ASSUME_CUDA=1 osprey-bootstrap    # already have driver/CUDA/TRT/cuDNN
sudo OSPREY_ONLY=30 osprey-bootstrap          # run a single stage (e.g. just pyds)
sudo OSPREY_DS_VERSION=8.0 osprey-bootstrap   # override DeepStream version

Security note. Osprey does not auto-download or overwrite your system TensorRT library. Some ONNX models embed end-to-end NMS (EfficientNMS_TRT) and need a patched libnvinfer_plugin; because that means replacing a system library with an external binary, Osprey leaves it as a deliberate manual step (see the reference patch_libnvinfer.sh). Standard YOLO/RT-DETR detection and segmentation need no patch.


Already have DeepStream 8.0?

Skip the bootstrap and just use the library:

pip install "osprey[server]"
python3 -c "from osprey.client import DeepStreamClient; print('ok')"

The bundled native libraries (osprey/**/lib/*.so) are compiled for DeepStream 8.0 / CUDA 12.8 and match the platform table above.


CLIs

Command Purpose
osprey-bootstrap Bare-metal end-to-end DeepStream install (root)
osprey-server FastAPI control plane — add/remove streams at runtime
osprey-client Discover sockets, run app logic, serve RTSP
osprey-build-engines Pre-build TensorRT engines from GIE_N_CONFIG

Testing

To exercise the library in a GPU DeepStream container (install → REST add → GPU inference → RTSP output), see docs/TESTING.md. It's the exact runbook used to validate Osprey end-to-end.

Metadata

Release files for ospreyai 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distribution (wheel)

Table of built distributions (wheels) for ospreyai 0.1.1
File Interpreter ABI Platform
ospreyai-0.1.1-cp312-cp312-manylinux_2_39_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.39+ x86-64 Details

Release files / ospreyai-0.1.1-cp312-cp312-manylinux_2_39_x86_64.whl

Download URL ospreyai-0.1.1-cp312-cp312-manylinux_2_39_x86_64.whl
Size 106.9 kB
Tags CPython 3.12 Linux glibc 2.39+ x86-64
SHA-256 checksum
How to use checksums
5ec6450de89ef1b6b685c5f372ed9823da83273ae1c9c1df4d9b66468bd4f4ad
BLAKE2b-256 checksum
How to use checksums
8e93eea8e513e3389f98fbe4c472d348327b253d6198db54e318e09b1fffd223
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Security for ospreyai 0.1.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page