Receiving video stream from multiple cameras (usb/ip) for further processing
Project description
Omniview
Система для одновременного просмотра и обработки потоков с нескольких камер (USB/IP) с возможностью интеграции в компьютерное зрение.
🚀 Возможности
- Поддержка USB и IP-камер (через RTSP)
- Автоматическое переподключение при обрыве связи
- Настраиваемые параметры камер (разрешение, FPS)
- Многопоточная обработка кадров
- Гибкая система обратных вызовов для обработки видео
- Готовый GUI для просмотра потоков
- Конфигурирование через параметры конструктора
⚙️ Установка
- Клонируйте репозиторий:
git clone https://github.com/DIMFLIX/OmniView.git
cd OmniView
-
Установите пакетный менеджер
-
Установите зависимости:
uv sync
- Запустите базовый пример
python example.py
🛠️ Использование
Базовый пример для USB камер
from omniview.managers import USBCameraManager
def frame_callback(camera_id, frame):
# Your framing
pass
if __name__ == "__main__":
manager = USBCameraManager(
show_gui=True,
max_cameras=4,
frame_callback=frame_callback
)
try:
manager.start()
except KeyboardInterrupt:
manager.stop()
Базовый пример для IP камер
from omniview.managers import IPCameraManager
def frame_callback(camera_id, frame):
# Your framing
pass
if __name__ == "__main__":
manager = IPCameraManager(
show_gui=True,
rtsp_urls=[
"rtsp://admin:12345@192.168.0.1:9090",
],
max_cameras=4,
frame_callback=frame_callback
)
try:
manager.start()
except KeyboardInterrupt:
manager.stop()
📚 API
Основные методы:
start()- запускает менеджер камер (блокирующий вызов)stop()- корректно останавливает все потокиprocess_frames()- возвращает словарь текущих кадров (ID: кадр)
Класс USBCameraManager
Параметры конструктора:
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
| show_gui | bool | True | Показывать окна с видео |
| max_cameras | int | 10 | Макс. количество камер |
| frame_width | int | 640 | Ширина кадра |
| frame_height | int | 480 | Высота кадра |
| fps | int | 30 | Целевой FPS |
| min_uptime | float | 5.0 | Мин. время работы (сек) |
| frame_callback | function | None | Callback для обработки кадров |
| exit_keys | tuple | (ord('q'),27) | Клавиши для выхода |
Класс IPCameraManager
Параметры конструктора (Все те-же самые что у USBCameraManager, но с добавлением):
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
| rtsp_urls | list[str] | [] | Список RTSP URL |
🤝 Развитие проекта
Приветствуются:
- Отчеты об ошибках
- Pull requests
- Идеи по улучшению
- Примеры использования
📄 Лицензия
Проект распространяется под лицензией GNU GPL v3. Подробности см. в файле LICENSE.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file omniview-1.0.0.tar.gz.
File metadata
- Download URL: omniview-1.0.0.tar.gz
- Upload date:
- Size: 21.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8355c74e0c623772e814a7c3b28aff8768a8d1d3ce71eff7f771ab3eb18f3da7
|
|
| MD5 |
65e645c68434f570f8002370507d9d77
|
|
| BLAKE2b-256 |
47d2315783a83e1aa72cd7b91451283c6b075bdbf7940327c82dc6437bd8af55
|
File details
Details for the file omniview-1.0.0-py3-none-any.whl.
File metadata
- Download URL: omniview-1.0.0-py3-none-any.whl
- Upload date:
- Size: 20.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
878c2d7900e8b25998e44afc19d13b6b73cd6edece7441e54be892af55ab21ee
|
|
| MD5 |
62d45d628d2acc7fa1d93d0f323d0d39
|
|
| BLAKE2b-256 |
6e01839446cc90154cebef580b0314050e70f0abdfe2b413477e446413aa9483
|