Files
cam_control_android/LOGS_COMPARISON.md
2025-12-09 21:21:26 +09:00

9.0 KiB
Raw Permalink Blame History

📊 Сравнение логов: ДО и ПОСЛЕ исправлений

ДО исправлений (Проблема)

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 секунд)


Поиск проблем

Проблема: "Видео не отправляется"

Команда для проверки:

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"

Команда для проверки:

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" показывают скорость отправки

Если все логи есть, но видео не показывается на сервере → проблема на сервере, не в приложении!