Engineering

VMAF 93, scene by scene

Video is the heaviest asset you can put on a storefront, so the encoder behind a shoppable-video app quietly decides whether video helps your conversion rate or hurts it. This is how Quinn's pipeline works — the quality target, the per-scene encoding, the delivery path, and the two architectural choices we made deliberately against the grain of the category. Every claim here is testable on your own store.

Free plan · $9–$49/mo flat · Unlimited at $49 · ~5 min setup

The quality target: VMAF 93

Most compression is specified the wrong way round — pick a bitrate, accept whatever quality falls out. We do the opposite: we set a quality target and let the encoder find the smallest file that meets it.

The target is VMAF 93. VMAF (Video Multi-Method Assessment Fusion) is the perceptual quality metric developed by Netflix and USC; it scores 0–100 by modelling what human vision actually notices rather than counting pixel differences the way PSNR does. It is the industry standard for answering "will a person see the difference?" — and at 93 the answer is no: the stream is perceptually indistinguishable from the source at normal viewing conditions.

Targeting quality rather than bitrate is what makes the output size honest. The file is not "a bit smaller"; it is as small as it can be while still being indistinguishable.

Per-scene, not per-file

Here is where most pipelines stop and ours does not. A single encoding setting applied to a whole video is always wrong somewhere, because different scenes are not equally hard to compress. A static shot of a model against a plain wall needs a fraction of the bits of a fast pan across a patterned fabric. Encode the whole file at one setting and you either waste bits on the easy scenes or break quality on the hard ones.

Quinn encodes with variable resolution and bitrate across scenes within the same video, with each scene independently pushed to the smallest configuration that still hits VMAF 93. The result is that for any given video, the output is the minimum possible size at that quality bar — measured scene by scene, not averaged across the file.

This is the difference between a good compression setting and an optimal one, and across a library of short-form fashion video it is where the large reductions actually come from.

Delivery: faststart, over Cloudflare

A small file still starts slowly if it is packaged badly. Every Quinn video is written with faststart — the MP4 moov atom (the index the player needs before it can decode anything) is moved to the front of the file. Without it, a player must fetch to the end of the file before the first frame appears. With it, playback can begin as soon as the first bytes arrive.

Files are then served over Cloudflare's CDN, so the bytes come from an edge near the shopper, and below-fold video is lazy-loaded so nothing is fetched for a widget the visitor never scrolls to.

Why we use a single stream, not adaptive bitrate

Most video-commerce providers offer multi-stream adaptive bitrate (ABR) delivery, usually HLS or DASH, and treat it as a feature. We deliberately do not, and the reason is the specific shape of this use case.

Empirically, a shopper on a storefront watches 3–4 reels on average before moving on. That is a very different workload from a 40-minute film, and ABR is designed for the film.

1. ABR costs you time-to-first-byte

Before an adaptive player can request a single frame of video it must fetch and parse manifests — typically a master playlist and then a variant playlist. That is two sequential round-trips before the video even starts loading. With a single stream there is no manifest layer at all: the player requests the file and begins. On a short clip that a shopper may watch for four seconds, startup latency is the experience.

2. Quality oscillation is worse than consistent quality

ABR typically begins at a conservative quality and steps up once it has measured the connection. That means the opening moments — the only moments many shoppers see — are the worst-looking ones, followed by a visible jump. Quality-of-experience research consistently finds that viewers penalise switching heavily, and prefer a stable stream to one that fluctuates even when the fluctuating one has a higher average bitrate.

Over 3–4 short reels, adaptation never gets the runway it needs to pay off, and the viewer just sees the artefacts of it adapting. So we serve one stream, already small enough to start instantly, at a quality that does not need to change.

To be clear about the trade-off: ABR is the right architecture for long-form video, live streaming, and very wide network variability. It is the wrong architecture for a stack of short reels on a product page. We optimised for the case we are actually in.

Why this decides whether store video is worth it

Verify all of it yourself

Every claim here is falsifiable. Install on the free plan and:

  1. Compare transfer sizes. DevTools → Network → filter to media, then compare bytes transferred against the source file you uploaded.
  2. Check the request waterfall. You will see the video requested directly, with no .m3u8 or .mpd manifest fetches ahead of it — that is the single-stream architecture, visible.
  3. Run PageSpeed Insights before and after. Compare LCP, total blocking time and page weight with and without the widget.
  4. Check Online Store → Themes → Store speed for the effect on your own storefront.
  5. Look at the video on a phone. Put source and served stream side by side and examine the hard cases — fine fabric weave, hair, dark scenes, smooth gradients like skin or sky.

Why we built it in-house

Most shoppable-video apps are a widget layer on top of somebody else's transcoding service. That is a reasonable way to ship a product, but it caps how far compression can be pushed and puts quality tuning outside the vendor's control — you cannot set a per-scene VMAF target on an API you do not own.

We built the encoder because compression is the binding constraint in this category: it determines how much video a store can put on a page before speed costs more than the video earns. Owning it means the ratio keeps improving, and that quality can be tuned for the content that actually matters here — garments, skin, texture and motion.

The other half of store speed is the widget itself: how our Svelte components stay under 10 KB →

Questions

What quality target does Quinn encode to?

VMAF 93. VMAF is the perceptual quality metric developed by Netflix and USC that models what human vision actually notices, and at 93 the compressed stream is perceptually indistinguishable from the source at normal viewing conditions. Targeting quality rather than bitrate means the file is as small as it can be while still being indistinguishable.

What is per-scene encoding and why does it matter?

Different scenes are not equally hard to compress — a static shot needs far fewer bits than a fast pan across patterned fabric. Quinn varies resolution and bitrate across scenes within the same video, pushing each scene to the smallest configuration that still hits VMAF 93. One setting applied to a whole file always wastes bits on easy scenes or breaks quality on hard ones.

Why does Quinn use a single stream instead of adaptive bitrate?

Because shoppers watch 3–4 short reels on average, which is the opposite of the long-form workload ABR was designed for. ABR requires fetching and parsing two manifest files before any video loads, adding round-trips to time-to-first-byte, and it typically starts at conservative quality then visibly jumps. Quality-of-experience research shows viewers penalise switching and prefer a stable stream, so we serve one stream that starts instantly and does not need to change.

Is adaptive bitrate streaming better than single stream?

For long-form video, live streaming and very wide network variability, yes. For a stack of short reels on a product page it is the wrong trade: the manifest round-trips cost startup latency on clips watched for seconds, and adaptation never gets enough runway to pay off before the shopper scrolls on.

What is faststart and why does Quinn use it?

Faststart moves the MP4 moov atom — the index a player needs before it can decode anything — to the front of the file. Without it a player must fetch to the end of the file before the first frame appears; with it, playback begins as soon as the first bytes arrive. Files are then served from Cloudflare's CDN with below-fold video lazy-loaded.

How can I verify Quinn's compression claims myself?

Install on the free plan, then use DevTools' Network panel to compare transferred bytes against your source file, and check the waterfall for the absence of .m3u8 or .mpd manifest requests — that is the single-stream architecture visible. Run PageSpeed Insights before and after, and compare source and served video side by side on a phone.

What Quinn Shoppable Videos & Reels is

Quinn is a Shopify app that turns product videos — including your Instagram reels and TikTok videos, imported by link — into shoppable carousels, stories, floating widgets and grids anywhere on your store. Shoppers tap a product and add to cart or check out without leaving the video. It is Built for Shopify and rated 4.9★ across 105 reviews.

What it does
Makes videos & reels shoppable on Shopify — tap to add-to-cart
Import from
Instagram reels, TikTok, or direct MP4/MOV upload
Widgets
Carousel · stories · floating · grid · pop-up
Speed
Up to 20× compression from an in-house AI encoder — no perceptible loss in stream quality · CDN-served · lazy-loaded
Shopify status
Built for Shopify — of the major shoppable-video apps only Quinn and ReelUp hold the badge
Analytics
Conversion tracking with page & media revenue attribution
Setup
~5 minutes, no theme code
Pricing
Free plan · $9–$49/mo (Unlimited at $49) · 7-day trial
Works with
Instagram · TikTok · Meta Pixel · Google Analytics

More: Shoppable Videos overview · Compare platforms · Shopify CRO guide

Make your videos shoppable.

Import your Instagram reels and TikToks, tag your products, and let shoppers buy from inside the video — free plan, about five minutes, no theme code.

Add to Shopify →