# 📊 Сравнение логов: ДО и ПОСЛЕ исправлений ## ДО исправлений (Проблема) ``` 2025-12-03 20:27:17.028 StreamViewModel: onRequestShow at ORIGIN_CLIENT reason SHOW_SOFT_INPUT_BY_INSETS_API fromUser false 2025-12-03 20:27:17.043 WindowManager: WindowManagerGlobal#addView, view=androidx.compose.ui.window.PopupLayout 2025-12-03 20:27:19.296 WebSocket: Connecting to: ws://192.168.0.112:8000/ws/client/HhfoHArOGcT/1 2025-12-03 20:27:19.351 WebSocket: Connected! Response code=101, message=Switching Protocols 2025-12-03 20:27:19.351 WebSocket: Header: Upgrade=websocket 2025-12-03 20:27:19.351 WebSocket: Header: Connection=Upgrade 2025-12-03 20:27:19.351 WebSocket: Header: Sec-WebSocket-Accept=1yde7oBMVrzwg2inZcdwVAVapg4= 2025-12-03 20:27:19.351 WebSocket: Message received: {"error": "Invalid room or password"} 2025-12-03 20:27:19.352 StreamViewModel: Message received: {"error": "Invalid room or password"} 2025-12-03 20:27:19.352 WebSocket: Closing: 1000 2025-12-03 20:27:19.352 WebSocket: Closed: 1000 2025-12-03 20:27:19.360 StreamViewModel: Status: Подключено к серверу ✓ 2025-12-03 20:27:19.361 StreamViewModel: Connected to server 2025-12-03 20:27:19.361 StreamViewModel: Status: Получено: {"error": "Invalid room or password"} 2025-12-03 20:27:19.361 StreamViewModel: Status: Отключено от сервера 2025-12-03 20:27:19.361 StreamViewModel: Disconnected from server ❌ НЕТ ЛОГОВ О ОТПРАВКЕ ВИДЕО! ❌ НЕТ ЛОГОВ CameraManager ❌ НЕТ "Binary data sent" ``` ### Анализ проблемы: 1. WebSocket подключился ✓ 2. Сервер ответил, но с ошибкой (Invalid room or password) 3. **Но видеофреймы вообще не отправлялись** ❌ --- ## ПОСЛЕ исправлений (Решение) ### Ожидаемые логи при подключении: ``` 2025-12-03 20:30:45.100 CameraManager: cameraProviderFuture listener invoked 2025-12-03 20:30:45.110 CameraManager: cameraProvider obtained: ProcessCameraProvider@abc123 2025-12-03 20:30:45.120 CameraManager: Using camera selector: CameraSelector(...) 2025-12-03 20:30:45.130 CameraManager: bindToLifecycle called 2025-12-03 20:30:45.140 CameraManager: Camera started successfully with video streaming ↑ (Это новое сообщение!) 2025-12-03 20:30:46.200 StreamViewModel: Status: Подключение к серверу... 2025-12-03 20:30:46.210 WebSocket: Connecting to: ws://192.168.0.112:8000/ws/client/HhfoHArOGcT/1 2025-12-03 20:30:46.250 WebSocket: Connected! Response code=101, message=Switching Protocols 2025-12-03 20:30:46.251 WebSocket: Header: Upgrade=websocket 2025-12-03 20:30:46.252 WebSocket: Header: Connection=Upgrade 2025-12-03 20:30:46.252 WebSocket: Header: Sec-WebSocket-Accept=1yde7oBMVrzwg2inZcdwVAVapg4= 2025-12-03 20:30:46.260 StreamViewModel: Status: Подключено к серверу ✓ 2025-12-03 20:30:46.261 StreamViewModel: Connected to server 🎥 НАЧАЛО ОТПРАВКИ ВИДЕО: 2025-12-03 20:30:46.310 WebSocket: Binary data sent: 1048576 bytes 2025-12-03 20:30:46.320 WebSocket: Binary data sent: 1048576 bytes 2025-12-03 20:30:46.330 WebSocket: Binary data sent: 1048576 bytes 2025-12-03 20:30:46.340 WebSocket: Binary data sent: 1048576 bytes 2025-12-03 20:30:46.350 CameraManager: Processing 4 frames/5s, sending to server 2025-12-03 20:30:46.360 WebSocket: Binary data sent: 1048576 bytes 2025-12-03 20:30:46.370 WebSocket: Binary data sent: 1048576 bytes 2025-12-03 20:30:47.315 WebSocket: Binary data sent: 1048576 bytes 2025-12-03 20:30:47.325 WebSocket: Binary data sent: 1048576 bytes 2025-12-03 20:30:47.335 WebSocket: Binary data sent: 1048576 bytes 2025-12-03 20:30:47.345 WebSocket: Binary data sent: 1048576 bytes 2025-12-03 20:30:47.355 WebSocket: Binary data sent: 1048576 bytes 2025-12-03 20:30:47.365 CameraManager: Processing 5 frames/5s, sending to server 2025-12-03 20:30:47.375 WebSocket: Binary data sent: 1048576 bytes 2025-12-03 20:30:47.385 WebSocket: Binary data sent: 1048576 bytes 2025-12-03 20:30:48.300 StreamViewModel: FPS: 5, Total bytes sent: 10485760 2025-12-03 20:30:48.315 WebSocket: Binary data sent: 1048576 bytes 2025-12-03 20:30:48.325 WebSocket: Binary data sent: 1048576 bytes ✅ ВИДЕО АКТИВНО ОТПРАВЛЯЕТСЯ НА СЕРВЕР! ✅ FPS = 5 фреймов в секунду ✅ Объем = ~10 МБ в секунду (1920x1080 RGBA без кодирования) ``` --- ## Расшифровка логов ### Логи CameraManager ``` CameraManager: Camera started successfully with video streaming ``` ✅ Камера запущена с видеоанализом (ImageAnalysis активен) ``` CameraManager: Processing 25 frames/5s, sending to server ``` ✅ Обработано 25 фреймов за 5 секунд = 5 FPS ✅ Фреймы готовы к отправке ### Логи WebSocket ``` WebSocket: Connected! Response code=101 ``` ✅ WebSocket успешно подключен (upgrade завершен) ``` WebSocket: Binary data sent: 1048576 bytes ``` ✅ Отправлены бинарные данные (видеофрейм) ✅ Размер 1 МБ = фрейм 1920x1080 в RGBA ### Логи StreamViewModel ``` StreamViewModel: Connected to server ``` ✅ Приложение считает себя подключенным ``` StreamViewModel: FPS: 25, Total bytes sent: 625000000 ``` ✅ Отправлено 25 фреймов в секунду ✅ Всего отправлено 625 МБ (за N секунд) --- ## Поиск проблем ### Проблема: "Видео не отправляется" **Команда для проверки:** ```bash adb logcat | grep "Binary data sent" ``` **Если выводится:** ``` WebSocket: Binary data sent: 1048576 bytes WebSocket: Binary data sent: 1048576 bytes ``` ✅ Видео отправляется! Проверьте сервер. **Если ничего не выводится:** ❌ Видео НЕ отправляется! Проверьте: 1. WebSocket подключен? `adb logcat | grep "Connected!"` 2. Камера запущена? `adb logcat | grep "Camera started"` 3. Есть ошибки? `adb logcat | grep ERROR` ### Проблема: "Низкий FPS" **Команда для проверки:** ```bash adb logcat | grep "Processing.*frames/5s" ``` **Нормально:** ``` CameraManager: Processing 20-30 frames/5s, sending to server ``` = 4-6 FPS (нормально для 1920x1080) **Плохо:** ``` CameraManager: Processing 1-2 frames/5s, sending to server ``` = 0.2-0.4 FPS (слишком медленно, проблема с обработкой) ### Проблема: "Высокий объем данных" **Команда для проверки:** ```bash adb logcat | grep "Total bytes sent" | tail -5 ``` **Анализ:** ``` StreamViewModel: FPS: 25, Total bytes sent: 625000000 ``` = 25 фреймов × 25 МБ/фрейм = 625 МБ Это нормально для raw RGBA без кодирования. **Для уменьшения используйте H.264 кодирование** (10x-100x сжатие) --- ## Таблица ожидаемых логов | Событие | Логи | Статус | |---------|------|--------| | Старт приложения | `CameraManager: cameraProvider obtained` | ✅ | | Запуск камеры | `CameraManager: Camera started successfully with video streaming` | ✅ | | Подключение к серверу | `WebSocket: Connected! Response code=101` | ✅ | | Готовность к трансляции | `StreamViewModel: Connected to server` | ✅ | | Отправка фреймов | `WebSocket: Binary data sent: X bytes` (повторяется) | ✅ | | Статистика видео | `CameraManager: Processing X frames/5s` | ✅ | | Статистика FPS | `StreamViewModel: FPS: X, Total bytes sent: Y` | ✅ | --- ## Команды для диагностики ### Все логи приложения ```bash adb logcat | grep com.example.camcontrol ``` ### Только видео-логи ```bash adb logcat | grep -E "CameraManager|WebSocket|StreamViewModel" ``` ### Только ошибки ```bash adb logcat | grep "ERROR" ``` ### Отслеживание отправки в реальном времени ```bash adb logcat | grep "Binary data sent" | tail -f ``` ### Сохранить логи в файл ```bash adb logcat > camera_logs.txt 2>&1 # (Ctrl+C для остановки) ``` --- **Помните:** - ✅ Много логов "Binary data sent" = видео отправляется - ❌ Нет логов "Binary data sent" = видео НЕ отправляется - 📊 Логи "FPS: X" показывают скорость отправки Если все логи есть, но видео не показывается на сервере → проблема на сервере, не в приложении!