> Canonical URL: https://codingcat.dev/course/automated-media-engineering-ffmpeg-yt-dlp-contact-sheets/lesson/automated-media-engineering-ffmpeg-yt-dlp-contact-sheets-lesson-3-contact-sheet

# Lesson 3: Building the 6-Across Contact Sheet & 12-Frame Fast-Move Strip | Flagship 5: Automated Media Engineering & Reference Extraction with FFmpeg & yt-dlp | CodingCat.dev Course

[🧶 Flagship 5: Automated Media Engineering & Reference Extraction with FFmpeg & yt-dlp](/course/automated-media-engineering-ffmpeg-yt-dlp-contact-sheets)Section 1.3 · Lesson 3 of 5[![](/logos/tags/oss-symbol-light.svg)![](/logos/tags/oss-symbol-dark.svg)Open Source](/topic/oss)[![](/logos/tags/ffmpeg-symbol-light.svg)![](/logos/tags/ffmpeg-symbol-dark.svg)FFmpeg](/topic/ffmpeg)[![](/logos/tags/video-symbol-light.svg)![](/logos/tags/video-symbol-dark.svg)Video](/topic/video)[← Prev Lesson](/course/automated-media-engineering-ffmpeg-yt-dlp-contact-sheets/lesson/automated-media-engineering-ffmpeg-yt-dlp-contact-sheets-lesson-2-beats-json)[Next Lesson →](/course/automated-media-engineering-ffmpeg-yt-dlp-contact-sheets/lesson/automated-media-engineering-ffmpeg-yt-dlp-contact-sheets-lesson-4-14-lufs)

# Lesson 3: Building the 6-Across Contact Sheet & 12-Frame Fast-Move Strip

![Lesson 3: Building the 6-Across Contact Sheet & 12-Frame Fast-Move Strip Architecture Diagram](https://cdn.sanity.io/images/hfh83o0w/production/14bfed0286d9b04a4a2b528d5039b318eeefcde2-1376x768.png?w=1376&q=82&fit=max&auto=format)

## 1. The 15-Second Hook

Welcome to Lesson 3 of Flagship 5: Automated Media Engineering & Reference Extraction with FFmpeg & yt-dlp on CodingCat.dev. Today we break down Building the 6-Across Contact Sheet & 12-Frame Fast-Move Strip and see how it powers our deterministic 3D AJ and code-rendered video pipeline.

## 2. Architecture Mental Model (Visual Diagram)

Look at the architecture diagram: on the left, vibe-prompted animations suffer from timer drift and unreviewed layout bugs. On the right, Contact Sheet and Critic Gate enforce a deterministic frame contract.

## 3. Show Me the Code (scripts/build-contact-sheet.ts)

Copied! 🐾📄 scripts/build-contact-sheet.tstypescript

```
import { execFileSync } from "node:child_process";

export function renderContactSheet(mp4Path: string, outPng: string) {
  execFileSync("ffmpeg", [
    "-y", "-i", mp4Path,
    "-vf", "fps=2,scale=320:-1,tile=6x5",
    "-frames:v", "1", outPng,
  ]);
}
```

In scripts/build-contact-sheet.ts, we wire up the production implementation so both our browser runtime and headless renderer stay 100 percent synchronized.

## 4. Production Trade-Off Matrix

DimensionDeterministic 2026 PatternLegacy Anti-PatternWhy It Matters in ProductionDeterminismPure function of time t via window.seek(t)Non-deterministic timers & Math.random()Any frame renders identically on demand.Visual PolishContact-sheet critique loop + W3C tokensFirst unreviewed render ships as finalEliminates overlapping text and dead beats.3D & Mascot RigUnified 57-path 2D SVG + Three.js 3D GLB AJStatic flat raster imagesInteractive orbital 3D + 120 BPM lip-sync.Production Cost$0 open-source local RTX 5090 pipeline$1,200+ agency fee or per-minute SaaS cliffScales across 95+ lessons with zero marginal cost.

When we compare this deterministic 2026 pattern against legacy workflows in our trade-off matrix, we get exact frame reproducibility, automated critique gates, and zero licensing cost.

## 5. Verdict & AJ Pro-Tip

> AJ Pro-Tip: Always verify frame 300 twice during your contact-sheet critique pass to confirm your Contact Sheet setup has zero non-deterministic state leaks.

Adopt Contact Sheet inside your studio folder today so every future launch film and 3D mascot animation builds on a reusable harness. Hit Subscribe and let's continue!

✏️ Visual Architecture Diagram

## how this course connects together.

Follow AJ from first principles to production-ready architecture.

Let’s build it!✏️ Visual Diagram: Flagship 5: Automated Media Engineering & Refere…✓ Good PatternVISUAL DIAGRAM[Diagram Walkthrough]Step-by-step diagram breakdown for Flagship 5: Automated Media Engineering & Reference Extraction with FFmpeg & yt-dlp: Lesson 3: Building the 6-Across Contact Sheet & 12-Frame Fast-Move Strip: start with Core Architecture & Deterministic Implementation, implement Flagship 5: Automated Media Engineering & Reference Extraction with FFmpeg & yt-dlp, and ship to production.AAA Contrast Verified

## related deep dives.

[View All&rarr;](/blog)[![FFmpeg for AI Video Pipelines: Contact-Sheet Critics & Audio Mastering](https://cdn.sanity.io/images/hfh83o0w/production/9e096b31bcd2d92f9b5a57cbc93875ec8c6ce16c-1376x768.png?w=1376&q=82&fit=max&auto=format)](/course/ffmpeg-ai-video-contact-sheet-critics)November 4, 2026[![](/logos/tags/ai-symbol-light.svg)![](/logos/tags/ai-symbol-dark.svg)AI & Agents](/topic/ai)[![](/logos/tags/ffmpeg-symbol-light.svg)![](/logos/tags/ffmpeg-symbol-dark.svg)FFmpeg](/topic/ffmpeg)

### [FFmpeg for AI Video Pipelines: Contact-Sheet Critics & Audio Mastering](/course/ffmpeg-ai-video-contact-sheet-critics)

Master the exact FFmpeg filtergraphs that turn raw agent frames and synthesized audio into broadcast-ready MP4s, including automated contact-sheet defect detection.

[![Alex Patterson](https://cdn.sanity.io/media-libraries/mlttp0BZbCpV/images/a606dfaa381aab08ddbe16a33fe1d3e1fb37c927-400x400.jpg?w=96&h=96&q=82&fit=max&auto=format)Alex Patterson](/author/alex-patterson)[![Alex Patterson next to a dark-mode architecture diagram of 3D AJ and the 14 open-source video repositories](https://cdn.sanity.io/images/hfh83o0w/production/1a6c5bade322565ed55c3d0999dfe3c0332055c4-1376x768.png?w=1376&q=82&fit=max&auto=format)](/post/14-open-source-repos-code-driven-video-how-we-built-3d-aj)November 4, 2026[![](/logos/tags/ai-symbol-light.svg)![](/logos/tags/ai-symbol-dark.svg)AI & Agents](/topic/ai)[![](/logos/tags/video-symbol-light.svg)![](/logos/tags/video-symbol-dark.svg)Video](/topic/video)

### [The 14 Open-Source Repos Powering Code-Driven Video in 2026: How We Built 3D AJ the Cat](/post/14-open-source-repos-code-driven-video-how-we-built-3d-aj)

Why viral 'one-prompt' AI videos are actually 9,500-character production harnesses backed by deterministic frame functions, closed-form springs, and contact-sheet critique loops. Here is the full architectural breakdown of all 14 open-source repos and how we used them to build our interactive 3D AJ the Cat mascot and Course Factory.

[![Alex Patterson](https://cdn.sanity.io/media-libraries/mlttp0BZbCpV/images/a606dfaa381aab08ddbe16a33fe1d3e1fb37c927-400x400.jpg?w=96&h=96&q=82&fit=max&auto=format)Alex Patterson](/author/alex-patterson)[Course Outline](/course/automated-media-engineering-ffmpeg-yt-dlp-contact-sheets)

## Flagship 5: Automated Media Engineering & Reference Extraction with FFmpeg & yt-dlp

3/51

### Core Architecture & Deterministic Implementation

- [1.1Lesson 1: Reference Grammar Extraction with yt-dlp & 0.5s FFmpeg Frame Slicing](/course/automated-media-engineering-ffmpeg-yt-dlp-contact-sheets/lesson/automated-media-engineering-ffmpeg-yt-dlp-contact-sheets-lesson-1-yt-dlp)
- [1.2Lesson 2: Beat & Downbeat JSON Extraction with Librosa & FFmpeg Audio Pipes](/course/automated-media-engineering-ffmpeg-yt-dlp-contact-sheets/lesson/automated-media-engineering-ffmpeg-yt-dlp-contact-sheets-lesson-2-beats-json)
- [1.3Lesson 3: Building the 6-Across Contact Sheet & 12-Frame Fast-Move Strip▶](/course/automated-media-engineering-ffmpeg-yt-dlp-contact-sheets/lesson/automated-media-engineering-ffmpeg-yt-dlp-contact-sheets-lesson-3-contact-sheet)
- [1.4Lesson 4: EBU R128 (-14 LUFS) Loudness Normalization & Sidechain Ducking](/course/automated-media-engineering-ffmpeg-yt-dlp-contact-sheets/lesson/automated-media-engineering-ffmpeg-yt-dlp-contact-sheets-lesson-4-14-lufs)
- [1.5Lesson 5: Zero-Copy Frame Piping & Multi-Format H.264/AV1 Encoding](/course/automated-media-engineering-ffmpeg-yt-dlp-contact-sheets/lesson/automated-media-engineering-ffmpeg-yt-dlp-contact-sheets-lesson-5-ffmpeg-pipe)

@CodingCatDev on YouTube62.5K / 100K

Subscribe for new course lessons and architecture deep dives every week.

[Subscribe for New Lessons →](https://www.youtube.com/@codingcatdev?sub_confirmation=1)