Skip to content

freegatik/HLS_QR

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

📱 HLS QR Scanner

Мобильное приложение для сканирования QR-кодов с видеопотоками и одновременного воспроизведения HLS/MP4 стримов

Flutter Android Kotlin

🎯 Описание

HLS QR Scanner — это специализированное мобильное приложение для работы с видеопотоками через QR-коды. Приложение позволяет:

  • 📷 Сканировать QR-коды с URL видеопотоков
  • 🎬 Воспроизводить HLS/MP4 стримы в многоканальном режиме
  • 🏢 Интегрироваться с Devline — системой видеонаблюдения
  • 💾 Сохранять ссылки локально для быстрого доступа
  • 📱 Адаптироваться под портретную и ландшафтную ориентацию

✨ Основные возможности

🎥 Многоканальное воспроизведение

  • Одновременное воспроизведение до 4 видеопотоков
  • Умное управление ресурсами и буферизацией
  • Автоматическая оптимизация качества (до 1280x720)

📷 QR-сканер

  • Быстрое сканирование QR-кодов с URL
  • Поддержка вставки из буфера обмена
  • Автоматическое распознавание форматов

🏢 Devline интеграция

  • Поддержка Basic Authentication
  • Автоматическое получение списка камер
  • Отображение превью изображений

🔧 Техническая оптимизация

  • Visibility-based управление воспроизведением
  • Предзагрузка видео для плавного воспроизведения
  • Отключение аудио для экономии ресурсов

🛠 Технологический стек

Frontend

  • Flutter
  • Dart
  • Material Design 3

Видео и медиа

  • ExoPlayer — нативный Android плеер
  • video_player — Flutter видео плагин
  • mobile_scanner — QR-код сканер

Хранение данных

  • shared_preferences — локальное хранение настроек
  • visibility_detector — отслеживание видимости виджетов

Сетевые запросы

  • http — HTTP клиент
  • xml — парсинг XML ответов

🚀 Установка и запуск

Предварительные требования

  • Flutter SDK (версия 3.8.1+)
  • Android Studio / VS Code
  • Android SDK (API 26+)

Клонирование репозитория

git clone <repository-url>
cd hls_qr

Установка зависимостей

flutter pub get

Запуск приложения

# Debug режим
flutter run

# Release режим
flutter run --release

📖 Использование

1. Добавление видеопотоков

  • Нажмите "Сканировать QR" для сканирования QR-кода
  • Или "Вставить из буфера" для вставки URL из буфера обмена

2. Просмотр видео

  • Перейдите на вкладку "Плееры"
  • Видео автоматически начнет воспроизведение
  • Прокручивайте для просмотра всех потоков

3. Devline камеры

  • Отсканируйте QR-код с конфигурацией Devline
  • Приложение автоматически подключится к серверу
  • Выберите камеры для просмотра

🏗 Архитектура

Структура проекта

lib/
├── main.dart                 # Точка входа приложения
├── app.dart                  # Основной виджет приложения
└── features/
    ├── list/                 # Экран списка URL
    ├── scan/                 # QR-сканер
    ├── wall/                 # Видео-wall
    ├── urls/                 # Управление URL
    └── devline/              # Devline интеграция

Ключевые компоненты

  • UrlsStore — управление списком URL
  • ActivePlayers — контроль активных плееров
  • PlayerTile — виджет видеоплеера
  • ConcurrencyLimiter — ограничение одновременных операций

🔧 Настройка

Android конфигурация

Приложение использует кастомный ExoPlayer плагин для оптимизированного воспроизведения HLS потоков.

Буферизация

Настраиваемые параметры буферизации:

  • Минимальный буфер: 1 секунда
  • Максимальный буфер: 6 секунд
  • Буфер для воспроизведения: 250мс

About

Мобильное приложение для сканирования QR-кодов с видеопотоками и одновременного воспроизведения HLS/MP4 стримов

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors