Animated thumbnails

Goal: understand what happens to a video between "uploaded" and "visible with an animated preview thumbnail," and where to watch that work happen.

The process queue

FrameCourier doesn't generate video thumbnails inline while you upload — that work is handed off to the same background job runner used for photos, the process queue. Every uploaded video enqueues a video_thumb job.

Upload to publish flow for videos Upload video saved Queue job waits for processing begins Thumbnail animated GIF + duration Publish visible to clients
Each uploaded video moves from upload to a queued job to a finished animated thumbnail before it can be seen in a published collection.

What the thumbnail job does

FrameCourier reads the video's duration, then builds a short animated GIF preview: it starts 10% into the video (so it skips black intro frames), runs for 3 seconds at 10 frames per second, and is scaled to 320px wide. That GIF is what you see looping in the video grid once processing finishes, in place of the spinner.

The video's duration is also detected during this job and stored against it, which is why the duration badge under a video only appears once thumbnailing has completed — not immediately at upload.

Watching it run

While videos in a collection are still processing, the video grid polls for status every few seconds and swaps spinners for the finished animated thumbnail as jobs complete — you don't need to refresh the page.

To see every job across your account in real time — not just for one collection — go to Queue in the sidebar.

See The process queue for the full page reference, including what each job status means and how to retry a failed job.

How long does it take?

Animated thumbnails are generated automatically in the background. Because video files are much larger than photos, a single thumbnail job typically takes longer to finish than a photo's thumbnail job — how much longer depends on the video's length and resolution.

If an animated thumbnail never appears and the job stays "pending" or "failed" in the Queue page for an extended period, there may be a processing delay on our side. Contact support and we'll look into it — it can't be fixed from the collection itself.

Related