RTASP - Real-Time Annotation and Stream Processing ✍
RTASP to modularny system do wykrywania, przetwarzania i analizy strumieni wideo w czasie rzeczywistym. System umożliwia łatwą integrację z kamerami IP, mikrofonami i innymi źródłami sygnału, a także zapewnia zaawansowane możliwości adnotacji i analizy przy użyciu modułów AI.
Główne funkcje
- Automatyczne wykrywanie kamer RTSP w sieci lokalnej
- Zarządzanie strumieniami wideo z różnych źródeł
- Przetwarzanie AI (wykrywanie ruchu, obiektów, twarzy, rozpoznawanie mowy)
- Interfejs webowy do zarządzania systemem
- Protokół komunikacyjny MCP (Message Communication Protocol) do integracji modułów
- Nagrywanie i wykonywanie zrzutów ekranu
- Modułowa architektura umożliwiająca łatwe rozszerzanie funkcjonalności
Szybka instalacja
Aby zainstalować RTASP na systemie Debian/Ubuntu/Raspberry Pi OS, wykonaj następującą komendę:
curl -sSL https://raw.githubusercontent.com/rt-asp/python/main/scripts/quick-install.sh | sudo bash
System zostanie zainstalowany w katalogu /opt/rtasp i uruchomiony jako usługa systemd.
Wymagania systemowe
- Python 3.8 lub nowszy
- System operacyjny: Debian, Ubuntu, Raspberry Pi OS (lub inny oparty na Linuxie)
- Minimum 2GB RAM (4GB zalecane)
- Minimum 1GB wolnego miejsca na dysku (więcej w przypadku nagrywania strumieni)
Ręczna instalacja
-
Sklonuj repozytorium:
git clone https://github.com/rt-asp/python.git rtasp cd rtasp
-
Uruchom skrypt instalacyjny:
sudo bash scripts/install.sh
-
Po instalacji, RTASP zostanie uruchomiony jako usługa systemd. Możesz uzyskać dostęp do interfejsu webowego pod adresem
http://localhost:8080lubhttp://<adres-ip-serwera>:8080.
Konfiguracja
Główny plik konfiguracyjny znajduje się w /opt/rtasp/config/config.yaml. Możesz go edytować, aby dostosować system do swoich potrzeb. Po dokonaniu zmian, uruchom ponownie usługę:
sudo systemctl restart rtasp.service
Ręczne uruchamianie
RTASP można również uruchomić ręcznie:
rtasp # Używa domyślnej konfiguracji
# Lub z określonym plikiem konfiguracyjnym:
rtasp -c /ścieżka/do/config.yaml
# Tryb skanowania sieci w poszukiwaniu kamer RTSP:
rtasp -s
Struktura projektu
rtasp/
├── config/ # Katalog konfiguracyjny
├── core/ # Główne moduły systemu
├── ai_modules/ # Moduły przetwarzania AI
├── web/ # Interfejs webowy
├── models/ # Folder na modele AI
├── tools/ # Narzędzia pomocnicze
├── scripts/ # Skrypty pomocnicze
├── tests/ # Testy jednostkowe
├── docs/ # Dokumentacja
├── main.py # Główny plik uruchomieniowy
└── requirements.txt # Zależności Pythona
Protokół komunikacyjny MCP
System wykorzystuje wewnętrzny protokół komunikacyjny MCP (Message Communication Protocol) oparty na wzorcu Publish-Subscribe. Umożliwia to luźne powiązanie komponentów systemu i łatwą rozbudowę.
Przykład użycia MCP:
from core.mcp import MCPClient
# Utworzenie klienta MCP
client = MCPClient(broker, client_id="my_module")
# Subskrypcja zdarzeń
client.subscribe("stream/+/frame", handle_frame)
client.subscribe("ai/face_recognition/result", handle_face_result)
# Publikowanie zdarzeń
client.publish("command/stream/start/camera1", {})
Moduły AI
System zawiera następujące moduły AI:
- motion_detection - wykrywanie ruchu w strumieniu wideo
- object_detection - wykrywanie i klasyfikacja obiektów
- face_recognition - rozpoznawanie twarzy
- speech_recognition - rozpoznawanie mowy
- audio_processor - analiza dźwięku
Rozszerzanie systemu
RTASP został zaprojektowany z myślą o łatwej rozbudowie. Możesz tworzyć własne moduły AI, dodawać nowe źródła strumieni i integrować system z innymi aplikacjami.
Tworzenie własnego modułu AI
- Utwórz nowy plik w katalogu
ai_modules:
# ai_modules/my_custom_module.py
import cv2
import numpy as np
class MyCustomModule:
def __init__(self, config=None):
self.config = config or {}
def process_frame(self, frame):
# Przetwarzanie klatki wideo
processed_frame = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
return {
"processed_frame": processed_frame,
"result": "Przykładowy wynik"
}
def process_audio(self, audio_chunk):
# Opcjonalne przetwarzanie audio
return None
- Zarejestruj moduł w
ai_modules/__init__.py:
from .my_custom_module import MyCustomModule
available_modules = {
# Inne moduły...
"my_custom_module": MyCustomModule
}
- Włącz moduł w konfiguracji:
ai:
enabled_modules: ["motion_detection", "my_custom_module"]
Rozwiązywanie problemów
Jeśli napotkasz problemy:
-
Sprawdź logi systemowe:
journalctl -u rtasp.service -f
-
Sprawdź status usługi:
systemctl status rtasp.service
-
Sprawdź logi aplikacji:
cat /opt/rtasp/logs/rtasp.log
Licencja
RTASP jest udostępniany na licencji MIT. Szczegóły znajdziesz w pliku LICENSE.
Kontakt i zgłaszanie problemów
Jeśli napotkasz problemy lub masz sugestie, utwórz zgłoszenie na GitHub.
Projekt RTASP (Real-Time Audio and Stream Processing)
- Modular Documentation made possible by the FlatEdit project.
Metadata
Release files for rtasp 0.1.7
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| rtasp-0.1.7.tar.gz | 12.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| rtasp-0.1.7-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 21.6 kB
Release files / rtasp-0.1.7.tar.gz
| Download URL | rtasp-0.1.7.tar.gz |
|---|---|
| Size | 12.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
30e7761baaa807472a3fee45754db56a7e666e1423650610e143f609b6e3f384
|
|
BLAKE2b-256 checksum How to use checksums |
645d0687f429932eabc6a0b2be77d20b289b0e41a429b5e605ce6d15d8f03dbe
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.12.9
|
Release files / rtasp-0.1.7-py3-none-any.whl
| Download URL | rtasp-0.1.7-py3-none-any.whl |
|---|---|
| Size | 9.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
ea7380c4f672df763dd909c14f220894d5a0679eec8392d769492ef3240b855c
|
|
BLAKE2b-256 checksum How to use checksums |
e8802c1c3980ba346fe8626be8b506e29d599e5bcfba4dd2f1c526bddc144471
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.12.9
|