15 Июл.
2023
Рассказываем, как потоковая передача помогает снизить нагрузку на сеть, а также без задержек и потери качества транслировать видео.
Все больше сайтов используют видео для привлечения внимания. Размещают обзоры товаров, отзывы и рекламные акции. Многие сталкиваются с проблемами: задержкой запуска, подвисанием и чрезмерными нагрузками на сеть. Нас они тоже не обошли. В QForm раньше при установке нескольких видеовиджетов кадры подвисали при воспроизведении.
Мы не знаем, работают ли над этой проблемой конкуренты, но у многих видео до сих пор долго грузятся. Мы, в отличие от них, нашли способ, как побороть зависание.
Сначала определили, что нужно реализовать механизм, при котором запуск видео будет происходить последовательно и без подвисаний. Так люди будут спокойно смотреть ролики, а не раздраженно покидать страницу.
Для этого поставили себе задачи:
Идея состояла в том, чтобы пользователь получал видео непрерывным потоком. Передача потокового видео использует технологии сжатия и буферизации данных, благодаря чему трансляция ведется непрерывно при отправке потока как последовательности сжатых пакетов. Это значит, что видеофайл в сжатом виде хранится на веб-сервере. При просмотре данные передаются отдельными пакетами по мере загрузки, не снижая качество изображения и звука. Этот способ стал популярным благодаря стриминговым сервисам, таким как YouTube, а позже его подхватили и социальные сети (ВКонтакте).
В ходе анализа мы заметили, что у видеовиджетов других сервисов долгая обработка видео, а воспроизведение продолжается даже после открытия другого ролика. Это снижает производительность и тормозит просмотр.
Определившись с идеей, команда разработчиков приступила к задачам. Для создания обработчика в потоковое видео был взят язык программирования Go (Golang). На нем бэкенд-разработчики написали микросервис, который берет из хранилища в порядке очереди созданные видео, обрабатывает их и перекодирует с помощью библиотеки ff-mpeg. В процессе перекодирования файл разделяется на отрезки, каждый из которых сжимается. Эти кусочки и будут подгружаться в качестве сжатых пакетов при просмотре. Также в это время создается превью – семисекундный отрывок видео, который циклично будет проигрываться в зависимости от настроек показа (после загрузки страницы или при наведении мыши). По завершении процесса файл возвращается в хранилище. Пока происходит обработка, видеофайл недоступен для просмотра на сайте.
Далее, чтобы снизить нагрузку на сеть, мы добавили функции:
Таким образом обеспечивается быстрая и регулярная потоковая передача видео.
Трансляция будет идти без торможения и без потери качества.
По итогам проделанной работы запуск потоковой передачи помог снизить нагрузку и улучшить трансляцию видео. Теперь пользователю не нужно ждать полной загрузки файла, чтобы просмотреть ролик. Видео проигрывается по мере передачи пакетов.
В результате мы получили:
Размещайте отзывы, обзоры и рекламные ролики, чтобы оценить преимущества передачи видео непрерывным потоком.
Разобраться в QForm и использовать видеовиджет на своем сайте можно самостоятельно.
Но наша команда рада помочь: разработаем маркетинговую стратегию, продумаем ролики под конкретный товар или услугу, проведем съемку или предоставим инструкцию с описанием, сделаем монтаж и добавим в удобное место сайта.