Как добавить видеоотзывы в WooCommerce без перегрузки сервера

Видео — самый убедительный формат, какой только может принять отзыв. Покупатель, который смотрит, как другой покупатель распаковывает товар, показывает его реальный размер или демонстрирует работу, конвертирует заметно чаще того, кто читает абзац текста. Магазины, которые добавляют видео на страницы товаров, обычно видят двузначный рост конверсии — видеоотзывы отвечают на вопросы, на которые не могут ответить ни фото, ни текст.

Так почему в большинстве магазинов WooCommerce отзывы всё ещё только текстовые? Потому что видео — это технически сложно. 30-секундный ролик с современного телефона весит 100–500 МБ. Сырые загрузки такого размера падают на типовом shared-хостинге, таймаутятся, съедают дисковые квоты, а если чинить это на сервере через FFmpeg — плавят CPU в рабочие часы.

Этот гайд объясняет два подхода, которые не работают, и один, который работает: сжатие видео в браузере — подход, используемый в PVR Media Reviews for WooCommerce, бесплатном плагине фото- и видеоотзывов для WooCommerce.

100–500 МБсырое 4K-видео со смартфона
~15 МБтот же ролик после сжатия в браузере
0%лишней нагрузки на CPU сервера — кодирование идёт на устройстве покупателя
Заполненная форма отзыва WooCommerce с четырьмя фото и двумя видео
Покупатель готовит полноценный медиаотзыв: текст, аватар, четыре фото и два видео — всё смонтировано до отправки.

🚫 Почему два «традиционных» подхода не работают

Подход 1: принимать сырые загрузки

Наивное решение — разрешить покупателям загружать оригинальные видеофайлы — сталкивается с реальностью сразу:

  • Дефолтный upload_max_filesize в PHP (обычно 2–8 МБ) отвергает видео с телефона outright; поднять его до 500 МБ через php.ini на shared-хостинге часто невозможно.
  • Мобильные покупатели бросают медленную загрузку 300-мегабайтного файла на мобильном интернете.
  • Каждый сохранённый отзыв добавляет сотни мегабайт в дисковое потребление и бэкап-архивы.

Подход 2: серверное кодирование через FFmpeg

Некоторые плагины принимают сырой файл и пробуют сжать его на сервере. Кодирование видео — одна из самых CPU-тяжёлых задач вообще: один 4K-транскод может загрузить все ядра на минуты. В магазине, где тот же сервер обрабатывает заказы, это означает лагающие страницы и потерянные заказы ровно в самый болезненный момент. Плюс на хостинге нужен FFmpeg — многие managed-хостинги его просто не дают.

⚠️ Когда серверный транскодинг имеет смысл

Для соцсети с выделенным транскодинг-кластером — возможно. Для магазина WooCommerce, где тот же сервер должен отдавать страницы товаров и обрабатывать заказы, — это пассив.

💡 Решение: сжимать в браузере покупателя

Каждый современный браузер несёт аппаратно-ускоренные медиа-API: Canvas для доступа к кадрам и MediaRecorder для перекодирования. PVR Media Reviews использует их, чтобы тяжёлая работа выполнялась на устройстве покупателя — до того как байт видео отправится на ваш сервер.

👣 Что реально происходит, по шагам

1
Выбор файла
Покупатель выбирает видео в форме отзыва. Плагин сверяет размер с настроенным порогом (по умолчанию 50 МБ, меняется в настройках).
2
Сжатие
Избыточные видео перекодируются локально: кадры рисуются на canvas в целевом разрешении (по умолчанию 720p), снимаются в поток и записываются MediaRecorder на заданном битрейте — с приоритетом MP4/H.264 и WebM как фолбэком.
3
Миниатюра
Постер-кадр снимается автоматически — с пропуском чёрных кадров — и загружается вместе с видео, чтобы в галерее никогда не появлялась пустая плитка.
4
Загрузка
Отправляется только лёгкий результат — с побайтовым прогрессом, барами по файлам и кнопкой отмены. Если сжатие вдруг не удалось, оригинал загружается как аккуратный фолбэк.
Модалка сжатия видео в PVR Media Reviews: видео проигрывается, пока браузер его сжимает
Модалка сжатия: покупатель видит своё видео, пока браузер его перекодирует, — с живым прогресс-баром и управлением mute и паузой.

Почему видео остаётся видимым при сжатии

Деталь, которая выглядит косметической, но на деле критична: видео покупателя продолжает проигрываться в небольшой модалке, пока сжимается. Браузерные движки агрессивно оптимизируют: у video-элемента, спрятанного в фоновой вкладке, рендеринг троттлится или приостанавливается — цикл захвата кадров заикается, а на выходе получаются чёрные или замороженные кадры. Видео на экране держит конвейер живым. PVR дополнительно ставит сжатие на автопаузу, когда покупатель уходит с вкладки, и возобновляет при возвращении — ничего не портится молча.

Поэтому же в модалке есть пауза, mute и отмена: покупатель управляет процессом, который на длинном ролике может занять минуту, — вместо того чтобы смотреть на замершую форму и гадать, что там происходит.

📤 Фаза загрузки честная, а не фиктивная

После сохранения текста отзыва форма переключается на отдельный экран загрузки. Процент прогресса считается от фактически подготовленного payload — сжатых фото и видео, — а не от размеров оригинальных файлов с камеры, так что то, что видит покупатель, соответствует реальности. У каждого файла в очереди — свой прогресс-бар, вся пачка отменяется одним кликом, а сбой одного файла не отменяет остальные.

Режим загрузки формы отзыва WooCommerce с динамическим прогресс-баром и процентами
Режим загрузки: форму отзыва сменяет сфокусированный экран прогресса с живым процентом, статусами по файлам и кнопкой отмены.

Когда всё завершается, покупатель видит экран благодарности с анимированной галочкой — мелочь, но она закрывает цикл и радикально сокращает тикеты «а мой отзыв отправился?».

⚡ Что это значит для вашего магазина

⚡
0% CPU сервера на видео
Кодирование происходит в браузере покупателя. Хостинг продолжает отдавать страницы и обрабатывать заказы.
🌐
Работает на любом хостинге
Ни FFmpeg, ни cron-задач, ни VPS не требуется. Shared-хостинг подходит — а если PHP-лимиты тесные, встроенный менеджер лимитов безопасно поднимет их за вас.
💾
Файлы меньше на ~90%
Сжатые видео плюс серверные WebP-варианты для фото держат дисковое потребление и бэкапы компактными.
📱
Больше завершённых отправок
Быстрые загрузки в мобильных сетях и видимый прогресс — меньше брошенных отзывов.

🖼️ А фото? Тоже оптимизируются

Та же клиент-первая философия распространяется и на фото: они ресайзятся до целевого разрешения, пережимаются с выбранным качеством, авто-поворачиваются по EXIF и могут получить вотермарку — всё до загрузки. На сервере каждое фото дополнительно сохраняется в трёх WebP-вариантах (миниатюра сетки, превью модалки, лайтбокс), так что страница товара остаётся быстрой, сколько бы медиаотзывов вы ни накопили.

🖥️ Живое демо — посмотрите на реальном магазине

Весь сценарий работает на нашем демо-магазине: страница товара с фото- и видеоотзывами — откройте «Написать отзыв» и попробуйте форму сами.

Добавляйте видеоотзывы безопасным способом

PVR Media Reviews — бесплатный плагин фото- и видеоотзывов для WooCommerce: сжатие видео в браузере, честный прогресс загрузки, медиагалереи, голосование «полезно» и rich snippets — с вашими данными на вашем хостинге. Без подписки и без квот на медиа.

Скачать бесплатную версию Возможности Pro — $59 разово