← Back to blog

How Pixelmatic uses xform for video transcoding, HLS streaming, and analytics

Every once in a while a fellow SaaS founder will email us asking "what are you actually running your video on?" The plain answer is xform media, which is a sister product our team builds. So this post is partly a write-up for the people who ask, and partly for Pixelmatic customers who'd quite reasonably like to know what happens to their recordings after they hit publish.

What follows is a high-level walk through the things xform does for us, one section at a time.

A bit of background

Video infrastructure is one of the larger pieces of work in a product like Pixelmatic. Transcoding, streaming, a player, captions, analytics, attribution, all of it. A while back we built xform to handle exactly that, so when we started on Pixelmatic, the obvious thing was to lean on what we already had rather than do it twice. That's a big part of why Pixelmatic got to customers as quickly as it did.

It meant the team could spend its effort on the things only Pixelmatic needed to be: the recording experience, the team workspace, the editing tools, the brand. The video side, we already knew how to do.

A quieter benefit too. When something behaves oddly with a publish, we don't have to file a ticket with a vendor and wait. We can look at it from both sides. And we've been running our own production traffic through xform for a while, which tends to surface edge cases you'd never see from a happy-path demo. If something is going to break, we'd rather it break for us first.

What we ask xform to do

When you hit publish on a recording, xform handles a handful of different jobs in one go:

  • Transcoding the file into formats and quality levels that play smoothly on any device.
  • Hosting the video and serving a clean, branded player you can embed anywhere.
  • Generating captions (or accepting the ones you recorded with).
  • Making the spoken words across your library searchable.
  • Tracking per-view analytics, including UTM tags so you know where viewers came from.

The longer version is below.

Transcoding and adaptive streaming

A raw recording from your browser is fine to download, but it's not great to stream. xform takes the file and produces a ladder of renditions, different resolutions and bitrates, packaged as HLS. That's the same adaptive streaming format the major video platforms use.

In plain terms: your viewer's player picks the right quality for their connection, and switches up or down as the connection changes. Someone on hotel wifi gets a watchable stream, someone on fibre gets a sharper one, and nobody has to think about a quality setting.

Alongside the stream, xform produces a single downloadable MP4. So if a customer would rather grab the file than embed it, that's a click.

A branded, embeddable player

The player you see when you open a Pixelmatic video, or embed one on a website, is xform's. It plays the stream adaptively, supports captions, handles fullscreen and picture-in-picture, and the usual keyboard shortcuts.

It also carries through a bit of your team's brand. An accent colour, your logo. So when you drop a demo on your marketing site or share a walkthrough with a customer, the player doesn't look like it came from somewhere else.

Building and maintaining a custom video player is more work than it sounds. We're happy not to be the ones doing it.

Captions and searchable transcripts

Two things happen on the captions side.

If you recorded with live captions on in Pixelmatic, those captions get bundled into the video. The viewer can toggle them on or off, and the timing matches what you actually said.

If you didn't, xform generates captions automatically from the audio after upload. We pick those up and store them alongside the video record.

Either way, the captions become more than a viewer accessibility feature. The actual words people say in a recording become searchable across your team's library. A new hire looking for "how do we handle refunds" can find the 90-second clip where you explained it, without having to know the title or who recorded it. That's what we were getting at a couple of weeks ago when we wrote about a searchable async video library.

Per-view analytics

Publishing a video without seeing what happens to it is a bit like sending an email and never finding out if anyone opened it.

xform tracks every view. View counts, watch time, engagement curves, drop-off points, plus the basics like geography, device, and referrer. We pull all of that straight through to the analytics tab inside Pixelmatic, so you don't have to log into a separate dashboard to see it.

The engagement curve is the bit our customers say they reach for most. It tells you, second by second, where viewers stayed engaged and where they tuned out. Seeing where a sales prospect dropped off a demo is a different kind of feedback than just "they viewed it".

UTM tracking

If you've shared a video across a few channels (an email campaign, a LinkedIn post, a help centre article, a sales follow-up), you've probably wished you knew which channel was actually doing the work.

That's what UTM tracking is for. You add a few tags to your share link (source, medium, campaign), and xform attributes every view through that link to those tags. In the analytics dashboard, you can then see which campaigns drove the most views, the longest watch time, the strongest engagement, and which ones, honestly, didn't do much.

A few real applications we've seen customers (and ourselves) use it for:

  • Sales follow-up. Tag the link per rep, per deal, or per stage. See which prospects actually watched the demo, and which scrolled past.
  • Multi-channel campaigns. A product launch goes to email, LinkedIn, and a blog post. UTM tags tell you which channel paid back.
  • Testing thumbnails or titles. Two variants, two UTM tags. Real numbers on which one earned the click and held attention.
  • Internal newsletters. When you share a town-hall recording, you can see how many people actually opened and watched, not just clicked.

It's a small feature, but it quietly turns a video from a piece of content into a piece of data.

Why this set-up

If we'd reached for one of the big general-purpose video platforms, we'd have gotten most of the same primitives. The reason we run on xform specifically:

  • It's tuned for the SaaS embed use case, not consumer entertainment.
  • The pricing scales the way our business does, without us having to do elaborate credit accounting against per-minute billing.
  • Streaming, captions, analytics, and UTM tracking all sit in one place instead of three.
  • We can move quickly when something needs to change, because we're not waiting in a vendor's roadmap queue.

That last point is probably the one I'd lean on if you're picking video infrastructure for your own SaaS. Whatever you run on will shape your product over time, in small ways you don't see at the start. Worth picking something you can move with.

If you're curious about xform itself, the xform.media site is the place to look. And if you're a Pixelmatic customer who just wants to know what happens to your recordings after you hit publish, hopefully this gives you a clearer picture.

Until next time!

Wouter
Founder