Remove deprecated files and scripts to streamline the codebase
- Deleted unused API test files, RTSP diagnostic scripts, and development utility scripts to reduce clutter. - Removed outdated database schema and modularization proposal documents to maintain focus on current architecture. - Cleaned up configuration files and logging scripts that are no longer in use, enhancing project maintainability.
This commit is contained in:
113
scripts/test_rtsp.py
Normal file
113
scripts/test_rtsp.py
Normal file
@@ -0,0 +1,113 @@
|
||||
#!/usr/bin/env python3
|
||||
"""
|
||||
Quick test script to verify RTSP streaming is working.
|
||||
Tests API endpoints and MediaMTX status.
|
||||
"""
|
||||
import requests
|
||||
import json
|
||||
import time
|
||||
import sys
|
||||
|
||||
API_BASE = "http://exp-dash:8000"
|
||||
MEDIAMTX_BASE = "http://exp-dash:8889"
|
||||
CAMERA = "camera1"
|
||||
|
||||
def test_api_rtsp():
|
||||
"""Test RTSP start endpoint"""
|
||||
print(f"\n{'='*60}")
|
||||
print(f"Testing RTSP streaming for {CAMERA}")
|
||||
print(f"{'='*60}\n")
|
||||
|
||||
# 1. Check if camera exists
|
||||
print(f"1. Checking camera status...")
|
||||
try:
|
||||
resp = requests.get(f"{API_BASE}/cameras/{CAMERA}/status", timeout=5)
|
||||
if resp.status_code == 200:
|
||||
print(f" ✅ Camera {CAMERA} found")
|
||||
print(f" Status: {json.dumps(resp.json(), indent=2)}")
|
||||
else:
|
||||
print(f" ❌ Camera {CAMERA} not found (status: {resp.status_code})")
|
||||
return False
|
||||
except Exception as e:
|
||||
print(f" ❌ Error checking camera: {e}")
|
||||
return False
|
||||
|
||||
# 2. Start RTSP streaming
|
||||
print(f"\n2. Starting RTSP streaming...")
|
||||
try:
|
||||
resp = requests.post(f"{API_BASE}/cameras/{CAMERA}/start-rtsp", timeout=10)
|
||||
print(f" Response status: {resp.status_code}")
|
||||
print(f" Response: {json.dumps(resp.json(), indent=2)}")
|
||||
|
||||
if resp.status_code == 200 and resp.json().get("success"):
|
||||
print(f" ✅ RTSP streaming started successfully")
|
||||
rtsp_url = resp.json().get("rtsp_url", "N/A")
|
||||
print(f" RTSP URL: {rtsp_url}")
|
||||
else:
|
||||
print(f" ❌ Failed to start RTSP streaming")
|
||||
return False
|
||||
except Exception as e:
|
||||
print(f" ❌ Error starting RTSP: {e}")
|
||||
return False
|
||||
|
||||
# 3. Wait a moment for FFmpeg to start
|
||||
print(f"\n3. Waiting for stream to initialize (5 seconds)...")
|
||||
time.sleep(5)
|
||||
|
||||
# 4. Check MediaMTX for the stream
|
||||
print(f"\n4. Checking MediaMTX for stream...")
|
||||
try:
|
||||
resp = requests.get(f"{MEDIAMTX_BASE}/v2/paths/list", timeout=5)
|
||||
if resp.status_code == 200:
|
||||
paths = resp.json()
|
||||
print(f" MediaMTX paths: {json.dumps(paths, indent=2)}")
|
||||
|
||||
# Check if our camera path exists
|
||||
if isinstance(paths, dict) and "items" in paths:
|
||||
items = paths.get("items", {})
|
||||
if CAMERA in items:
|
||||
path_info = items[CAMERA]
|
||||
source_ready = path_info.get("sourceReady", False)
|
||||
readers = path_info.get("readers", [])
|
||||
print(f" ✅ Path '{CAMERA}' found in MediaMTX")
|
||||
print(f" Source ready: {source_ready}")
|
||||
print(f" Active readers: {len(readers)}")
|
||||
if source_ready:
|
||||
print(f" ✅ Stream is ready!")
|
||||
else:
|
||||
print(f" ⚠️ Stream not ready yet (sourceReady=false)")
|
||||
else:
|
||||
print(f" ❌ Path '{CAMERA}' not found in MediaMTX")
|
||||
print(f" Available paths: {list(items.keys())}")
|
||||
else:
|
||||
print(f" ⚠️ Unexpected response format from MediaMTX")
|
||||
else:
|
||||
print(f" ⚠️ MediaMTX API returned status {resp.status_code}")
|
||||
except Exception as e:
|
||||
print(f" ⚠️ Error checking MediaMTX: {e}")
|
||||
|
||||
# 5. Check specific path
|
||||
print(f"\n5. Getting detailed info for path '{CAMERA}'...")
|
||||
try:
|
||||
resp = requests.get(f"{MEDIAMTX_BASE}/v2/paths/get/{CAMERA}", timeout=5)
|
||||
if resp.status_code == 200:
|
||||
info = resp.json()
|
||||
print(f" Path info: {json.dumps(info, indent=2)}")
|
||||
else:
|
||||
print(f" Path not found (status: {resp.status_code})")
|
||||
except Exception as e:
|
||||
print(f" Error: {e}")
|
||||
|
||||
print(f"\n{'='*60}")
|
||||
print(f"Test complete!")
|
||||
print(f"Try viewing the stream with:")
|
||||
print(f" vlc rtsp://exp-dash:8554/{CAMERA}")
|
||||
print(f" ffplay -rtsp_transport tcp rtsp://exp-dash:8554/{CAMERA}")
|
||||
print(f"{'='*60}\n")
|
||||
|
||||
return True
|
||||
|
||||
if __name__ == "__main__":
|
||||
test_api_rtsp()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user