Разработка приложения (утилит) для преобразования данных.

Сергей5 лет в сервисе
Данные заказчика будут вам доступны после подачи заявки
03.07.2020

Цель работы— разработка 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.

Заявки фрилансеров