9.0 KiB
📊 Сравнение логов: ДО и ПОСЛЕ исправлений
ДО исправлений (Проблема)
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"
Анализ проблемы:
- WebSocket подключился ✓
- Сервер ответил, но с ошибкой (Invalid room or password)
- Но видеофреймы вообще не отправлялись ❌
ПОСЛЕ исправлений (Решение)
Ожидаемые логи при подключении:
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 секунд)
Поиск проблем
Проблема: "Видео не отправляется"
Команда для проверки:
adb logcat | grep "Binary data sent"
Если выводится:
WebSocket: Binary data sent: 1048576 bytes
WebSocket: Binary data sent: 1048576 bytes
✅ Видео отправляется! Проверьте сервер.
Если ничего не выводится: ❌ Видео НЕ отправляется! Проверьте:
- WebSocket подключен?
adb logcat | grep "Connected!" - Камера запущена?
adb logcat | grep "Camera started" - Есть ошибки?
adb logcat | grep ERROR
Проблема: "Низкий FPS"
Команда для проверки:
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 (слишком медленно, проблема с обработкой)
Проблема: "Высокий объем данных"
Команда для проверки:
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 |
✅ |
Команды для диагностики
Все логи приложения
adb logcat | grep com.example.camcontrol
Только видео-логи
adb logcat | grep -E "CameraManager|WebSocket|StreamViewModel"
Только ошибки
adb logcat | grep "ERROR"
Отслеживание отправки в реальном времени
adb logcat | grep "Binary data sent" | tail -f
Сохранить логи в файл
adb logcat > camera_logs.txt 2>&1
# (Ctrl+C для остановки)
Помните:
- ✅ Много логов "Binary data sent" = видео отправляется
- ❌ Нет логов "Binary data sent" = видео НЕ отправляется
- 📊 Логи "FPS: X" показывают скорость отправки
Если все логи есть, но видео не показывается на сервере → проблема на сервере, не в приложении!