How to Add Video Reviews to WooCommerce Without Crashing Your Server

Video is the most convincing format a customer review can take. A shopper who watches another buyer unbox the product, show its real size, or demonstrate how it works converts far more often than one who reads a paragraph of text. Studies consistently put the uplift for video-backed product pages in double digits — and products with video reviews routinely outperform those with photos alone.

So why do most WooCommerce stores still have text-only reviews? Because video is technically hard. A 30-second clip from a modern phone weighs 100–500 MB. Raw uploads of that size fail on typical shared hosting, time out, fill disk quotas, and — if you try to fix it server-side with FFmpeg — melt your CPU during business hours.

This guide explains the two approaches that fail, and the one that works: in-browser video compression, the approach used by PVR Media Reviews for WooCommerce — a free photo & video reviews plugin for WooCommerce.

100–500MBa raw 4K smartphone video
~15MBthe same clip after browser compression
0%extra server CPU — encoding happens on the customer's device
Completed WooCommerce review form with four photos and two videos attached
A customer preparing a full media review: text, avatar, four photos and two videos — all staged before submission.

Why the two "traditional" approaches fail

Approach 1: accept raw uploads

The naive solution — letting customers upload their original video files — collides with reality immediately:

  • PHP's default upload_max_filesize (usually 2–8 MB) rejects phone videos outright; raising it to 500 MB via php.ini is often impossible on shared hosting.
  • Mobile customers abandon slow uploads of a 300 MB file on cellular data.
  • Every stored review adds hundreds of megabytes to your disk usage and backup archives.

Approach 2: server-side FFmpeg encoding

Some plugins accept the raw file and try to compress it on the server. Video encoding is one of the most CPU-intensive workloads there is: a single 4K transcode can saturate all cores for minutes. On a store where the same server is also processing checkouts, that means laggy pages and dropped orders exactly when it hurts most. It also requires FFmpeg on the host — which many managed hosts simply don't provide.

Server-side transcoding is a reasonable choice for a social network with a dedicated transcoding cluster. For a WooCommerce store — where the same server must also serve product pages and checkouts — it is a liability.

The solution: compress in the customer's browser

Every modern browser ships with hardware-accelerated media APIs: Canvas for frame access and MediaRecorder for re-encoding. PVR Media Reviews uses them to do the heavy lifting on the customer's device — before a single byte of video is sent to your server.

What actually happens, step by step

1
Selection
The customer picks a video in the review form. The plugin checks its size against your configured threshold (50 MB by default, adjustable in settings).
2
Compression
Oversized videos are re-encoded locally: frames are drawn to a canvas at your target resolution (720p by default), captured as a stream, and recorded with MediaRecorder at a configured bitrate — preferring MP4/H.264, with a WebM fallback.
3
Thumbnail
A poster frame is captured automatically — skipping black frames — and uploaded alongside the video, so your gallery never shows a blank tile.
4
Upload
Only the lightweight result is sent — with byte-level progress, per-file bars, and a cancel button. If compression ever fails, the original file is uploaded as a graceful fallback.
Video compression modal in PVR Media Reviews playing the video while the browser compresses it
The compression modal: the customer sees their video playing while the browser re-encodes it, with a live progress bar, mute and pause controls.

Why the video stays visible during compression

One detail that looks cosmetic but is actually essential: the customer's video keeps playing in a small modal while it is being compressed. Browser engines optimize aggressively — a video element hidden in a background tab gets its rendering throttled or paused, which stalls the frame-capture loop and produces black or frozen output. Keeping the video on screen keeps the pipeline alive. PVR additionally auto-pauses compression when the customer switches tabs and resumes it when they return, so nothing is silently corrupted.

This is also why the modal includes pause, mute, and cancel controls: the customer stays in control of a process that may take a minute on a long clip — instead of staring at a frozen form wondering whether anything is happening.

The upload phase is honest, not fake

After the review text is saved, the form switches into a dedicated upload screen. The progress percentage is computed from the actual prepared payload — compressed photos and videos — not from the original camera file sizes, so what the customer sees matches reality. Each queued file shows its own progress bar, the whole batch can be cancelled with one click, and a failed file doesn't abort the rest of the batch.

Upload mode of the WooCommerce review form with dynamic progress bar and percentage
Upload mode: the review form is replaced by a focused progress screen with a live percentage, per-file status, and a cancel option.

When everything finishes, the customer sees a thank-you screen with an animated checkmark — a small thing, but it closes the loop and dramatically reduces "did my review go through?" support tickets.

What this means for your store

0% server CPU for video
Encoding happens in the customer's browser. Your hosting keeps serving pages and checkouts.
🌐
Any hosting works
No FFmpeg, no cron jobs, no VPS required. Shared hosting is fine — and if PHP limits are tight, the plugin's built-in limits manager can raise them safely for you.
💾
~90% smaller files
Compressed videos plus server-side WebP variants for photos keep disk usage and backups lean.
📱
More completed submissions
Fast uploads on mobile networks and visible progress mean fewer abandoned reviews.

And the photos? Also optimized

The same client-first philosophy applies to photos: they are resized to your target resolution, re-compressed at your chosen quality, auto-rotated by EXIF data, and can be watermarked — all before upload. On the server, each photo is additionally stored as three WebP variants (grid thumbnail, modal preview, lightbox), so the product page stays fast no matter how many media reviews you accumulate.

Add video reviews the safe way

PVR Media Reviews is a free photo & video reviews plugin for WooCommerce: in-browser video compression, honest upload progress, media galleries, helpful voting, and rich snippets — with your data on your own hosting. No subscription, no media quotas.

Download Free Plugin See Pro Features — $39 one-time