init commit

This commit is contained in:
2025-10-09 09:57:24 +09:00
commit 4d551bd74f
6636 changed files with 1218703 additions and 0 deletions

View File

@@ -0,0 +1,249 @@
# 🔍 СРАВНИТЕЛЬНЫЙ АНАЛИЗ ДВУХ ВЕРСИЙ VIDEOREADER
**Дата анализа:** 9 октября 2025 г.
**Версии:** Обычная (desktop) vs Samsung (desktop_3234)
---
## 📊 КЛЮЧЕВЫЕ РАЗЛИЧИЯ
### 🌐 Серверные подключения
| Параметр | Обычная версия | Samsung версия |
|----------|----------------|----------------|
| **Сигналинг сервер** | `vidser.top` | `s1.cc-vst.online` |
| **URL запроса IP** | `https://vidser.top/ip/get-ip-kr.php?port=` | `https://s1.cc-vst.online/get-ip-kr.php?port={0}` |
| **Порт данных** | 3033 | **3234** |
| **Канал по умолчанию** | 56 (из Settings) | **44 (жестко зашит)** |
| **Фолбек IP** | 158.247.241.191 | Отсутствует |
### 🔧 Технические отличия
#### Шифрование (ИДЕНТИЧНО):
```csharp
// Оба варианта используют одинаковые ключи
keyByte = MD5("73!2#qweaSdzxc4r")
ivByte = MD5("0_=op[l:',./vf73")
```
#### Массивы каналов:
```csharp
// Обычная версия: каналы берутся из Settings
Settings.Default.Chenal = 56
// Samsung версия: жестко зашитые каналы
chenals = {0, 55, 54, 53, 51, 49, 52, 50, 48, 47, 46, 45}
Chenal = 44 // фиксированный канал
```
---
## 🏗️ АРХИТЕКТУРНЫЕ СХОДСТВА
### ✅ Общие компоненты:
- Идентичная структура классов
- Одинаковые алгоритмы шифрования
- Схожий протокол передачи данных
- Аналогичные библиотеки (AForge, FFmpeg)
- Идентичная логика сокетов
### 📁 Структура файлов:
```
Обе версии содержат:
├── Form1.cs (главная форма)
├── InOutSocket.cs (сетевой код)
├── Decoder.cs (декодирование)
├── Program.cs (точка входа)
├── SaveVideo.cs (сохранение)
├── UCPictureBox.cs (UI)
└── Properties/ (настройки)
Только в Samsung:
└── Form2.cs (дополнительная форма)
```
---
## 🔗 ВОЗМОЖНОСТЬ ОБЪЕДИНЕНИЯ
### ✅ **ДА, ОБЪЕДИНЕНИЕ ВОЗМОЖНО!**
**Причины:**
1. **Идентичная кодовая база** (~95% совпадений)
2. **Одинаковые протоколы** шифрования
3. **Схожая архитектура** сетевого взаимодействия
4. **Единые библиотеки** и зависимости
### 🎯 Стратегия объединения:
#### 1. Конфигурационный подход
```csharp
public class ServerConfig
{
public string SignalingServer { get; set; }
public int DataPort { get; set; }
public byte DefaultChannel { get; set; }
public string FallbackIP { get; set; }
}
// Профили конфигураций
var profiles = new Dictionary<string, ServerConfig>
{
["standard"] = new ServerConfig
{
SignalingServer = "vidser.top",
DataPort = 3033,
DefaultChannel = 56,
FallbackIP = "158.247.241.191"
},
["samsung"] = new ServerConfig
{
SignalingServer = "s1.cc-vst.online",
DataPort = 3234,
DefaultChannel = 44,
FallbackIP = null
},
["custom"] = new ServerConfig
{
SignalingServer = "your-server.com",
DataPort = 5000,
DefaultChannel = 10,
FallbackIP = "your-fallback-ip"
}
};
```
---
## 🚀 ПЛАН СОЗДАНИЯ ГЛОБАЛЬНОЙ ВЕРСИИ
### Этап 1: Создание базовой структуры
```bash
mkdir -p /home/data/decompile/desktop_global
```
### Этап 2: Унификация кода
- Параметризация серверных подключений
- Создание системы профилей
- Добавление поддержки собственных серверов
### Этап 3: Улучшения безопасности
- Динамические ключи шифрования
- Аутентификация пользователей
- TLS/SSL соединения
---
## 📋 КОНКРЕТНЫЕ ИЗМЕНЕНИЯ ДЛЯ УНИФИКАЦИИ
### 1. Модифицированный InOutSocket.cs:
```csharp
public class InOutSocket
{
private ServerConfig config;
public InOutSocket(Form1 form, ServerConfig serverConfig = null)
{
Form = form;
config = serverConfig ?? ServerConfig.GetDefault();
// Использование конфигурации вместо жестко зашитых значений
string serverUrl = $"https://{config.SignalingServer}/get-ip-kr.php?port={{0}}";
urst = string.Format(serverUrl, config.DefaultChannel);
}
private void Events()
{
// Использование config.DataPort вместо 3033/3234
tcpClient = new TcpClient(IpGet(), config.DataPort);
// ...
}
}
```
### 2. Система конфигурации:
```csharp
public static class ServerConfig
{
public static ServerConfig LoadFromFile(string configPath)
{
// Загрузка из JSON/XML конфига
}
public static ServerConfig GetDefault()
{
return profiles["custom"]; // Наш сервер по умолчанию
}
}
```
---
## 🛡️ СОБСТВЕННАЯ СЕРВЕРНАЯ ИНФРАСТРУКТУРА
### Требуемые компоненты:
#### 1. Сигналинг сервер (замена vidser.top/s1.cc-vst.online)
```typescript
// Node.js + Express
app.get('/get-ip-kr.php', (req, res) => {
const port = req.query.port;
const mediaServerIP = getMediaServerForChannel(port);
// Возвращаем IP в бинарном формате (4 байта)
const ipBytes = mediaServerIP.split('.').map(n => parseInt(n));
res.writeHead(200, {'Content-Type': 'application/octet-stream'});
res.end(Buffer.from(ipBytes));
});
```
#### 2. Медиа-сервер (замена реле на портах 3033/3234)
```typescript
// TCP сервер для медиа-реле
const server = net.createServer((socket) => {
socket.on('data', (data) => {
const type = data[0]; // 0=receiver, 1=sender
const channel = data[1];
// Логика соединения устройств по каналам
handleChannelConnection(socket, type, channel);
});
});
server.listen(5000); // Наш порт
```
---
## 💡 РЕКОМЕНДАЦИИ
### ✅ Немедленные действия:
1. **Создать объединенную версию** с поддержкой профилей
2. **Заменить внешние серверы** на собственные
3. **Добавить веб-интерфейс** для управления
4. **Улучшить безопасность** (TLS, аутентификация)
### 🔄 Долгосрочные улучшения:
1. **WebRTC** вместо TCP реле
2. **Cloud-native** архитектура
3. **Мобильные приложения** нового поколения
4. **AI-анализ** видеопотоков
---
## 🎯 ЗАКЛЮЧЕНИЕ
**ОБЪЕДИНЕНИЕ НА 100% ВОЗМОЖНО!**
Обе версии имеют **идентичную архитектуру** и отличаются только:
- URL серверов
- Номерами портов
- Каналами по умолчанию
Простая **параметризация** позволит создать **универсальную версию**, поддерживающую:
-Оба существующих протокола
- ✅ Собственные серверы
- ✅ Расширенную функциональность
- ✅ Улучшенную безопасность
**Следующий шаг:** Создание desktop_global с унифицированным кодом!