Заказчик обратился с запросом исследования, как добавить стриминг видео и аудио и поддержку iOS устройств на его сайт на фреймворке Spring. Доступа к коду сайта предоставлено не было, поэтому мы договорились, что я разработаю небольшой проект, демонстрирующий, как реализовать данную задачу.
Позднее возник новый запрос - изучить возможность использования hls стриминга вместе с audio context.
Я провёл исследование проблемы, в ходе которого выяснил, что для осуществления стриминга медиа, необходимо преобразовывать обычные mp4 и mp3 (и другие форматы) файлы в специальный формат, поддерживающий протокол адаптивного стриминга hls. Кроме того, поскольку ранее с фреймворком Spring я не был знаком, я изучил его в достаточной для реализации задачи степени.
Для решения задачи по audio context, был проведен ресерч готовых решений. Я обнаружил библиотеку hls-web-audio (и использующий её проект stem-player), предложил команде заказчика, и разработал технологический демонстратор её использования.
За 3 дня был разработан технологический демонстратор, который:
- Позволял загружать исходные видео и аудиофайлы
- Преобразовывал загруженные файлы в формат HLS в фоне с помощью утилиты ffmpeg
- Отдавал преобразованные файлы через стриминг на клиент
Также был сделан простейший веб-клиент для тестирование и демонстрации работоспособности.
С кодом демонстратора можно ознакомиться по ссылке.
Демонстратор и необходимые для его работы сервисы разворачиваются с помощью docker compose
По результатам ресерчей заказчик был удовлетворен и применил исследованные мной решения в своём проекте.