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

241 lines
9.0 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 📊 Сравнение логов: ДО и ПОСЛЕ исправлений
## ДО исправлений (Проблема)
```
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" показывают скорость отправки
Если все логи есть, но видео не показывается на сервере → проблема на сервере, не в приложении!