Система для одновременного просмотра и обработки потоков с нескольких камер (USB/IP) с возможностью интеграции в компьютерное зрение.
- Поддержка USB и IP-камер (через RTSP)
- Автоматическое переподключение при обрыве связи
- Настраиваемые параметры камер (разрешение, FPS)
- Многопоточная обработка кадров
- Гибкая система обратных вызовов для обработки видео
- Готовый GUI для просмотра потоков
- Конфигурирование через параметры конструктора
pip install omniviewfrom 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()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:[email protected]:9090",
],
max_cameras=4,
frame_callback=frame_callback
)
try:
manager.start()
except KeyboardInterrupt:
manager.stop()Основные методы:
start()- запускает менеджер камер (блокирующий вызов)stop()- корректно останавливает все потокиprocess_frames()- возвращает словарь текущих кадров (ID: кадр)
Параметры конструктора:
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
| 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) | Клавиши для выхода |
Параметры конструктора (Все те-же самые что у USBCameraManager, но с добавлением):
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
| rtsp_urls | list[str] | [] | Список RTSP URL |
Мы приветствуем ваш вклад! Вот как вы можете помочь:
- 🐛 Сообщайте об ошибках и запрашивайте функции через Issues
- 🔧 Отправляйте pull requests с улучшениями
- 📖 Улучшайте документацию
Данный проект защищён патентом. Все права защищены. Использование, копирование и распространение возможны только с письменного разрешения правообладателя.
| Страница 1 | Страница 2 |
|---|---|
![]() |
![]() |
Этот проект лицензирован под GPL-3.0 License — см. файл LICENSE для деталей.


