Разработка приложения (утилит) для преобразования данных.
Цель работы— разработка 2-х утилит для кодирования/декодирования данных.
1-я утилита«producer»получает на вход zip– файл,разбивает его на части определённого
размера, формирует для каждой части QR-код в виде файла изображения и записывает последовательность изображений в видеофайл формата MPEG-2 (Аудиокодек: MPEG
Layer II или Dolby AC-3) Битрейт аудио: 128 Кбит/с или выше или MPEG-4 (Видеокодек:H.264, Аудиокодек: AAC, Битрейт аудио: 128 Кбит/с или выше).Ориентировочныйбитрейт - 50 или 80 Мбит/с. Разрешения,
степень сжатия изображений и видео, битрейт, частота кадров, частота смены изображений QR-кодов,настройки формированияQR-кодовдолжны настраиваться. Настройки реализуются из файла конфигурации или командной строки.
1-я утилита может быть написана на любом языке используя произвольные зависимости.
Конечный пользователь утилиты №1 будет использовать утилиту «producer»для генерации видеофайла mp4 (формат видео может быть изменён по согласованию с Заказчиком).
2-я утилита«consumer»должна производить захват видео с экрана
при воспроизведении видеофайла, сгенерированного 1-й утилитой, и на базе захваченных и распознанных видеокадров с QR-кодами,последовательно восстановить исходный zipфайл.
2-я утилита должна быть написана только на Java без использования зависимостей или используя только хорошо известные (например, apache-commons-compress, guava и т. п.). Если разработку возможно значительно ускорить, то можно рассмотреть отказ от требования разработки на Java. При этом
можно рассмотреть Python, C# или какой-либо другой распространённый язык. Данная
утилита не должна использовать файл видео напрямую, она должна извлекать данные путем захвата экрана (возможно java.awt.Robot?), во время воспроизведения видео в видеопроигрывателе или браузере.
Сжатый в архив исполняемый файл для второй утилиты не должен превышать 1 МБ (Он должен быть либо небольшим либо иметь небольшой исходный код, который может быть собран на машине с ограниченным
доступом к сторонним библиотекам).
Конечный пользователь утилиты №2 будет:
1. Запускать утилиту «consumer»;
2. Открывать и воспроизводить видео в видеопроигрывателе
или браузере (в замедленном режиме, если необходимо);
3. Получать исходный zip-файл.
Обе утилиты должно иметь возможность легко скомпилиловаться с нуля нетехническим пользователем и разработаны с избеганием зависимостей от больших, экзотических сторонних библиотек. Утилиты должны
быть спроектированы таким образом, чтобы метод кодирования/декодирования информации мог быть достаточно легко изменён Заказчиком (с привлечением сторонных разработчиков), т. к. использование QR-кодана данном этапе обусловлено только разработкой MVP(еслиразработку возможно значительно
ускорить, то обсуждаемы варианты с применением другого метода кодирования),и достаточно неоптимально с точки зрения плотности информации, безопасности и т.п.
Видео не должно быть слишком длинным относительно размера исходного файла архива. По приблизительным оценкам, файл .zip размером 100 МБ должен быть восстановлен в течение
~ 10 минут. Ожидается, что приложение будет работать с видео с битрейтом 50-100 Мбит/с и экраном с разрешением 2560x 1440, но эти параметры должны быть настраиваемыми. Приложение должно
работать на ОС Windows 10.
Предполагаемая структура и схема работы утилит приведена на рисунке в Приложении 1.
Разработка описанных утилит должна быть разбита на 2 этапа:
Этап 1. Разработка 1-й и 2-й (или одной общей) демонстрационной утилиты. Для демонстрационной версии оба приложения могут использовать любые зависимости, необходимые для демонстрации функционала. Требования к размеру утилит, настройкам и т. п. не предъявляются.
Этап 2.Разработка 1-й и 2-й рабочей утилиты и инструкции пользователя. Для рабочей версии к обоим приложениям Предъявляются требования к размеру, настройкам и т. п.
Языки,библиотеки, версии сред разработки, форматы, инструменты, кодеки и т.п., должны быть согласованы с Заказчиком. Исходный код утилит должен быть хорошо откомментирован. Должны быть написаны инструкции пользователя утилит. Исходный код, права на исходный код передаются Заказчику. С Исполнителем подписывается NDA.
Заявки фрилансеров


